aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/js/admin.js
blob: ef3536151f03618e4eef152845b0044a1e7cb84d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, {
/******/ 				configurable: false,
/******/ 				enumerable: true,
/******/ 				get: getter
/******/ 			});
/******/ 		}
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "/";
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 46);
/******/ })
/************************************************************************/
/******/ ({

/***/ 11:
/***/ (function(module, exports) {

eval("/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */\r\nmodule.exports = __webpack_amd_options__;\r\n\n/* WEBPACK VAR INJECTION */}.call(exports, {}))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vYW1kLW9wdGlvbnMuanM/NWY3MSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBIiwiZmlsZSI6IjExLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFscyBfX3dlYnBhY2tfYW1kX29wdGlvbnNfXyAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19hbWRfb3B0aW9uc19fO1xyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAod2VicGFjaykvYnVpbGRpbi9hbWQtb3B0aW9ucy5qc1xuLy8gbW9kdWxlIGlkID0gMTFcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///11\n");

/***/ }),

/***/ 46:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(47);


/***/ }),

/***/ 47:
/***/ (function(module, exports, __webpack_require__) {

eval("window.$ = window.jQuery = __webpack_require__(48);\n__webpack_require__(49);\n__webpack_require__(50);\n__webpack_require__(51);\n__webpack_require__(52);\n__webpack_require__(53);\n__webpack_require__(54);\nwindow.Chart = __webpack_require__(55);\n\n$(function () {\n    'use strict';\n    /* ChartJS\n     * -------\n     * Charts\n     */\n\n    // sales example chart\n\n    var salesChartCanvas = $('#salesChart').get(0).getContext('2d');\n    var salesChart = new Chart(salesChartCanvas);\n    var salesChartData = {\n        labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n        datasets: [{\n            label: 'Electronics',\n            fillColor: 'rgb(210, 214, 222)',\n            strokeColor: 'rgb(210, 214, 222)',\n            pointColor: 'rgb(210, 214, 222)',\n            pointStrokeColor: '#c1c7d1',\n            pointHighlightFill: '#fff',\n            pointHighlightStroke: 'rgb(220,220,220)',\n            data: [65, 59, 80, 81, 56, 55, 40]\n        }, {\n            label: 'Digital Goods',\n            fillColor: 'rgba(60,141,188,0.9)',\n            strokeColor: 'rgba(60,141,188,0.8)',\n            pointColor: '#3b8bba',\n            pointStrokeColor: 'rgba(60,141,188,1)',\n            pointHighlightFill: '#fff',\n            pointHighlightStroke: 'rgba(60,141,188,1)',\n            data: [28, 48, 40, 19, 86, 27, 90]\n        }]\n    };\n    var salesChartOptions = {\n        showScale: true,\n        scaleShowGridLines: false,\n        scaleGridLineColor: 'rgba(0,0,0,.05)',\n        scaleGridLineWidth: 1,\n        scaleShowHorizontalLines: true,\n        scaleShowVerticalLines: true,\n        bezierCurve: true,\n        bezierCurveTension: 0.3,\n        pointDot: false,\n        pointDotRadius: 4,\n        pointDotStrokeWidth: 1,\n        pointHitDetectionRadius: 20,\n        datasetStroke: true,\n        datasetStrokeWidth: 2,\n        datasetFill: true,\n        legendTemplate: '<ul class=\\'<%=name.toLowerCase()%>-legend\\'><% for (var i=0; i<datasets.length; i++){%><li><span style=\\'background-color:<%=datasets[i].lineColor%>\\'></span><%=datasets[i].label%></li><%}%></ul>',\n        maintainAspectRatio: true,\n        responsive: true\n    };\n    salesChart.Line(salesChartData, salesChartOptions);\n\n    // -------------\n    // - PIE CHART -\n    // -------------\n    var pieChartCanvas = $('#pieChart').get(0).getContext('2d');\n    var pieChart = new Chart(pieChartCanvas);\n    var PieData = [{\n        value: 700,\n        color: '#f56954',\n        highlight: '#f56954',\n        label: 'Chrome'\n    }, {\n        value: 500,\n        color: '#00a65a',\n        highlight: '#00a65a',\n        label: 'IE'\n    }, {\n        value: 400,\n        color: '#f39c12',\n        highlight: '#f39c12',\n        label: 'FireFox'\n    }, {\n        value: 600,\n        color: '#00c0ef',\n        highlight: '#00c0ef',\n        label: 'Safari'\n    }, {\n        value: 300,\n        color: '#3c8dbc',\n        highlight: '#3c8dbc',\n        label: 'Opera'\n    }, {\n        value: 100,\n        color: '#d2d6de',\n        highlight: '#d2d6de',\n        label: 'Navigator'\n    }];\n    var pieOptions = {\n        segmentShowStroke: true,\n        segmentStrokeColor: '#fff',\n        segmentStrokeWidth: 1,\n        percentageInnerCutout: 50,\n        animationSteps: 100,\n        animationEasing: 'easeOutBounce',\n        animateRotate: true,\n        animateScale: false,\n        responsive: true,\n        maintainAspectRatio: false,\n        legendTemplate: '<ul class=\\'<%=name.toLowerCase()%>-legend\\'><% for (var i=0; i<segments.length; i++){%><li><span style=\\'background-color:<%=segments[i].fillColor%>\\'></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>',\n        tooltipTemplate: '<%=value %> <%=label%> users'\n    };\n    pieChart.Doughnut(PieData, pieOptions);\n\n    /* jVector Maps\n     * ------------\n     * Create a world map with markers\n     */\n    $('#world-map-markers').vectorMap({\n        map: 'world_mill_en',\n        normalizeFunction: 'polynomial',\n        hoverOpacity: 0.7,\n        hoverColor: false,\n        backgroundColor: 'transparent',\n        regionStyle: {\n            initial: {\n                fill: 'rgba(210, 214, 222, 1)',\n                'fill-opacity': 1,\n                stroke: 'none',\n                'stroke-width': 0,\n                'stroke-opacity': 1\n            },\n            hover: {\n                'fill-opacity': 0.7,\n                cursor: 'pointer'\n            },\n            selected: {\n                fill: 'yellow'\n            },\n            selectedHover: {}\n        },\n        markerStyle: {\n            initial: {\n                fill: '#00a65a',\n                stroke: '#111'\n            }\n        },\n        markers: [{\n            latLng: [41.90, 12.45],\n            name: 'Vatican City'\n        }, {\n            latLng: [43.73, 7.41],\n            name: 'Monaco'\n        }, {\n            latLng: [-0.52, 166.93],\n            name: 'Nauru'\n        }, {\n            latLng: [-8.51, 179.21],\n            name: 'Tuvalu'\n        }, {\n            latLng: [43.93, 12.46],\n            name: 'San Marino'\n        }, {\n            latLng: [47.14, 9.52],\n            name: 'Liechtenstein'\n        }, {\n            latLng: [7.11, 171.06],\n            name: 'Marshall Islands'\n        }, {\n            latLng: [17.3, -62.73],\n            name: 'Saint Kitts and Nevis'\n        }, {\n            latLng: [3.2, 73.22],\n            name: 'Maldives'\n        }, {\n            latLng: [35.88, 14.5],\n            name: 'Malta'\n        }, {\n            latLng: [12.05, -61.75],\n            name: 'Grenada'\n        }, {\n            latLng: [13.16, -61.23],\n            name: 'Saint Vincent and the Grenadines'\n        }, {\n            latLng: [13.16, -59.55],\n            name: 'Barbados'\n        }, {\n            latLng: [17.11, -61.85],\n            name: 'Antigua and Barbuda'\n        }, {\n            latLng: [-4.61, 55.45],\n            name: 'Seychelles'\n        }, {\n            latLng: [7.35, 134.46],\n            name: 'Palau'\n        }, {\n            latLng: [42.5, 1.51],\n            name: 'Andorra'\n        }, {\n            latLng: [14.01, -60.98],\n            name: 'Saint Lucia'\n        }, {\n            latLng: [6.91, 158.18],\n            name: 'Federated States of Micronesia'\n        }, {\n            latLng: [1.3, 103.8],\n            name: 'Singapore'\n        }, {\n            latLng: [1.46, 173.03],\n            name: 'Kiribati'\n        }, {\n            latLng: [-21.13, -175.2],\n            name: 'Tonga'\n        }, {\n            latLng: [15.3, -61.38],\n            name: 'Dominica'\n        }, {\n            latLng: [-20.2, 57.5],\n            name: 'Mauritius'\n        }, {\n            latLng: [26.02, 50.55],\n            name: 'Bahrain'\n        }, {\n            latLng: [0.33, 6.73],\n            name: 'São Tomé and Príncipe'\n        }]\n    });\n});\n\n//---------------------------------------------------------END OF CHARTS------------------------------------------------------//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2FkbWluLmpzPzI5ODYiXSwibmFtZXMiOlsid2luZG93IiwiJCIsImpRdWVyeSIsInJlcXVpcmUiLCJDaGFydCIsInNhbGVzQ2hhcnRDYW52YXMiLCJnZXQiLCJnZXRDb250ZXh0Iiwic2FsZXNDaGFydCIsInNhbGVzQ2hhcnREYXRhIiwibGFiZWxzIiwiZGF0YXNldHMiLCJsYWJlbCIsImZpbGxDb2xvciIsInN0cm9rZUNvbG9yIiwicG9pbnRDb2xvciIsInBvaW50U3Ryb2tlQ29sb3IiLCJwb2ludEhpZ2hsaWdodEZpbGwiLCJwb2ludEhpZ2hsaWdodFN0cm9rZSIsImRhdGEiLCJzYWxlc0NoYXJ0T3B0aW9ucyIsInNob3dTY2FsZSIsInNjYWxlU2hvd0dyaWRMaW5lcyIsInNjYWxlR3JpZExpbmVDb2xvciIsInNjYWxlR3JpZExpbmVXaWR0aCIsInNjYWxlU2hvd0hvcml6b250YWxMaW5lcyIsInNjYWxlU2hvd1ZlcnRpY2FsTGluZXMiLCJiZXppZXJDdXJ2ZSIsImJlemllckN1cnZlVGVuc2lvbiIsInBvaW50RG90IiwicG9pbnREb3RSYWRpdXMiLCJwb2ludERvdFN0cm9rZVdpZHRoIiwicG9pbnRIaXREZXRlY3Rpb25SYWRpdXMiLCJkYXRhc2V0U3Ryb2tlIiwiZGF0YXNldFN0cm9rZVdpZHRoIiwiZGF0YXNldEZpbGwiLCJsZWdlbmRUZW1wbGF0ZSIsIm1haW50YWluQXNwZWN0UmF0aW8iLCJyZXNwb25zaXZlIiwiTGluZSIsInBpZUNoYXJ0Q2FudmFzIiwicGllQ2hhcnQiLCJQaWVEYXRhIiwidmFsdWUiLCJjb2xvciIsImhpZ2hsaWdodCIsInBpZU9wdGlvbnMiLCJzZWdtZW50U2hvd1N0cm9rZSIsInNlZ21lbnRTdHJva2VDb2xvciIsInNlZ21lbnRTdHJva2VXaWR0aCIsInBlcmNlbnRhZ2VJbm5lckN1dG91dCIsImFuaW1hdGlvblN0ZXBzIiwiYW5pbWF0aW9uRWFzaW5nIiwiYW5pbWF0ZVJvdGF0ZSIsImFuaW1hdGVTY2FsZSIsInRvb2x0aXBUZW1wbGF0ZSIsIkRvdWdobnV0IiwidmVjdG9yTWFwIiwibWFwIiwibm9ybWFsaXplRnVuY3Rpb24iLCJob3Zlck9wYWNpdHkiLCJob3ZlckNvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwicmVnaW9uU3R5bGUiLCJpbml0aWFsIiwiZmlsbCIsInN0cm9rZSIsImhvdmVyIiwiY3Vyc29yIiwic2VsZWN0ZWQiLCJzZWxlY3RlZEhvdmVyIiwibWFya2VyU3R5bGUiLCJtYXJrZXJzIiwibGF0TG5nIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUFBLE9BQU9DLENBQVAsR0FBV0QsT0FBT0UsTUFBUCxHQUFnQixtQkFBQUMsQ0FBUSxFQUFSLENBQTNCO0FBQ0EsbUJBQUFBLENBQVEsRUFBUjtBQUNBLG1CQUFBQSxDQUFRLEVBQVI7QUFDQSxtQkFBQUEsQ0FBUSxFQUFSO0FBQ0EsbUJBQUFBLENBQVEsRUFBUjtBQUNBLG1CQUFBQSxDQUFRLEVBQVI7QUFDQSxtQkFBQUEsQ0FBUSxFQUFSO0FBQ0FILE9BQU9JLEtBQVAsR0FBZSxtQkFBQUQsQ0FBUSxFQUFSLENBQWY7O0FBR0FGLEVBQUUsWUFBWTtBQUNWO0FBQ0E7Ozs7O0FBS0E7O0FBQ0EsUUFBSUksbUJBQW1CSixFQUFFLGFBQUYsRUFBaUJLLEdBQWpCLENBQXFCLENBQXJCLEVBQXdCQyxVQUF4QixDQUFtQyxJQUFuQyxDQUF2QjtBQUNBLFFBQUlDLGFBQWEsSUFBSUosS0FBSixDQUFVQyxnQkFBVixDQUFqQjtBQUNBLFFBQUlJLGlCQUFpQjtBQUNqQkMsZ0JBQVEsQ0FBQyxTQUFELEVBQVksVUFBWixFQUF3QixPQUF4QixFQUFpQyxPQUFqQyxFQUEwQyxLQUExQyxFQUFpRCxNQUFqRCxFQUF5RCxNQUF6RCxDQURTO0FBRWpCQyxrQkFBVSxDQUFDO0FBQ0hDLG1CQUFPLGFBREo7QUFFSEMsdUJBQVcsb0JBRlI7QUFHSEMseUJBQWEsb0JBSFY7QUFJSEMsd0JBQVksb0JBSlQ7QUFLSEMsOEJBQWtC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Rkw7QUFDSUQsb0JBQVEsQ0FBQyxDQUFDLEtBQUYsRUFBUyxDQUFDLEtBQVYsQ0FEWjtBQUVJQyxrQkFBTTtBQUZWLFNBcEZLLEVBd0ZMO0FBQ0lELG9CQUFRLENBQUMsSUFBRCxFQUFPLENBQUMsS0FBUixDQURaO0FBRUlDLGtCQUFNO0FBRlYsU0F4RkssRUE0Rkw7QUFDSUQsb0JBQVEsQ0FBQyxDQUFDLElBQUYsRUFBUSxJQUFSLENBRFo7QUFFSUMsa0JBQU07QUFGVixTQTVGSyxFQWdHTDtBQUNJRCxvQkFBUSxDQUFDLEtBQUQsRUFBUSxLQUFSLENBRFo7QUFFSUMsa0JBQU07QUFGVixTQWhHSyxFQW9HTDtBQUNJRCxvQkFBUSxDQUFDLElBQUQsRUFBTyxJQUFQLENBRFo7QUFFSUMsa0JBQU07QUFGVixTQXBHSztBQTdCcUIsS0FBbEM7QUF1SUgsQ0E5UEQ7O0FBa1FBIiwiZmlsZSI6IjQ3LmpzIiwic291cmNlc0NvbnRlbnQiOlsid2luZG93LiQgPSB3aW5kb3cualF1ZXJ5ID0gcmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvanF1ZXJ5L2Rpc3QvanF1ZXJ5Lm1pbi5qc1wiKTtcbnJlcXVpcmUoXCIuLi8uLi8uLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9kaXN0L2pzL2Jvb3RzdHJhcC5taW4uanNcIik7XG5yZXF1aXJlKFwiLi4vLi4vLi4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvYm93ZXJfY29tcG9uZW50cy9mYXN0Y2xpY2svbGliL2Zhc3RjbGljay5qc1wiKTtcbnJlcXVpcmUoXCIuLi8uLi8uLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9kaXN0L2pzL2FkbWlubHRlLm1pbi5qc1wiKTtcbnJlcXVpcmUoXCIuLi8uLi8uLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9wbHVnaW5zL2p2ZWN0b3JtYXAvanF1ZXJ5LWp2ZWN0b3JtYXAtMS4yLjIubWluLmpzXCIpO1xucmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL3BsdWdpbnMvanZlY3Rvcm1hcC9qcXVlcnktanZlY3Rvcm1hcC13b3JsZC1taWxsLWVuLmpzXCIpO1xucmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvanF1ZXJ5LXNsaW1zY3JvbGwvanF1ZXJ5LnNsaW1zY3JvbGwubWluLmpzXCIpO1xud2luZG93LkNoYXJ0ID0gcmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvY2hhcnQuanMvQ2hhcnQuanNcIik7XG5cblxuJChmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIC8qIENoYXJ0SlNcbiAgICAgKiAtLS0tLS0tXG4gICAgICogQ2hhcnRzXG4gICAgICovXG5cbiAgICAvLyBzYWxlcyBleGFtcGxlIGNoYXJ0XG4gICAgdmFyIHNhbGVzQ2hhcnRDYW52YXMgPSAkKCcjc2FsZXNDaGFydCcpLmdldCgwKS5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHZhciBzYWxlc0NoYXJ0ID0gbmV3IENoYXJ0KHNhbGVzQ2hhcnRDYW52YXMpO1xuICAgIHZhciBzYWxlc0NoYXJ0RGF0YSA9IHtcbiAgICAgICAgbGFiZWxzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseSddLFxuICAgICAgICBkYXRhc2V0czogW3tcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0VsZWN0cm9uaWNzJyxcbiAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZ2IoMjEwLCAyMTQsIDIyMiknLFxuICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOiAncmdiKDIxMCwgMjE0LCAyMjIpJyxcbiAgICAgICAgICAgICAgICBwb2ludENvbG9yOiAncmdiKDIxMCwgMjE0LCAyMjIpJyxcbiAgICAgICAgICAgICAgICBwb2ludFN0cm9rZUNvbG9yOiAnI2MxYzdkMScsXG4gICAgICAgICAgICAgICAgcG9pbnRIaWdobGlnaHRGaWxsOiAnI2ZmZicsXG4gICAgICAgICAgICAgICAgcG9pbnRIaWdobGlnaHRTdHJva2U6ICdyZ2IoMjIwLDIyMCwyMjApJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBbNjUsIDU5LCA4MCwgODEsIDU2LCA1NSwgNDBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnRGlnaXRhbCBHb29kcycsXG4gICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmdiYSg2MCwxNDEsMTg4LDAuOSknLFxuICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOiAncmdiYSg2MCwxNDEsMTg4LDAuOCknLFxuICAgICAgICAgICAgICAgIHBvaW50Q29sb3I6ICcjM2I4YmJhJyxcbiAgICAgICAgICAgICAgICBwb2ludFN0cm9rZUNvbG9yOiAncmdiYSg2MCwxNDEsMTg4LDEpJyxcbiAgICAgICAgICAgICAgICBwb2ludEhpZ2hsaWdodEZpbGw6ICcjZmZmJyxcbiAgICAgICAgICAgICAgICBwb2ludEhpZ2hsaWdodFN0cm9rZTogJ3JnYmEoNjAsMTQxLDE4OCwxKScsXG4gICAgICAgICAgICAgICAgZGF0YTogWzI4LCA0OCwgNDAsIDE5LCA4NiwgMjcsIDkwXVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfTtcbiAgICB2YXIgc2FsZXNDaGFydE9wdGlvbnMgPSB7XG4gICAgICAgIHNob3dTY2FsZTogdHJ1ZSxcbiAgICAgICAgc2NhbGVTaG93R3JpZExpbmVzOiBmYWxzZSxcbiAgICAgICAgc2NhbGVHcmlkTGluZUNvbG9yOiAncmdiYSgwLDAsMCwuMDUpJyxcbiAgICAgICAgc2NhbGVHcmlkTGluZVdpZHRoOiAxLFxuICAgICAgICBzY2FsZVNob3dIb3Jpem9udGFsTGluZXM6IHRydWUsXG4gICAgICAgIHNjYWxlU2hvd1ZlcnRpY2FsTGluZXM6IHRydWUsXG4gICAgICAgIGJlemllckN1cnZlOiB0cnVlLFxuICAgICAgICBiZXppZXJDdXJ2ZVRlbnNpb246IDAuMyxcbiAgICAgICAgcG9pbnREb3Q6IGZhbHNlLFxuICAgICAgICBwb2ludERvdFJhZGl1czogNCxcbiAgICAgICAgcG9pbnREb3RTdHJva2VXaWR0aDogMSxcbiAgICAgICAgcG9pbnRIaXREZXRlY3Rpb25SYWRpdXM6IDIwLFxuICAgICAgICBkYXRhc2V0U3Ryb2tlOiB0cnVlLFxuICAgICAgICBkYXRhc2V0U3Ryb2tlV2lkdGg6IDIsXG4gICAgICAgIGRhdGFzZXRGaWxsOiB0cnVlLFxuICAgICAgICBsZWdlbmRUZW1wbGF0ZTogJzx1bCBjbGFzcz1cXCc8JT1uYW1lLnRvTG93ZXJDYXNlKCklPi1sZWdlbmRcXCc+PCUgZm9yICh2YXIgaT0wOyBpPGRhdGFzZXRzLmxlbmd0aDsgaSsrKXslPjxsaT48c3BhbiBzdHlsZT1cXCdiYWNrZ3JvdW5kLWNvbG9yOjwlPWRhdGFzZXRzW2ldLmxpbmVDb2xvciU+XFwnPjwvc3Bhbj48JT1kYXRhc2V0c1tpXS5sYWJlbCU+PC9saT48JX0lPjwvdWw+JyxcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZVxuICAgIH07XG4gICAgc2FsZXNDaGFydC5MaW5lKHNhbGVzQ2hhcnREYXRhLCBzYWxlc0NoYXJ0T3B0aW9ucyk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tXG4gICAgLy8gLSBQSUUgQ0hBUlQgLVxuICAgIC8vIC0tLS0tLS0tLS0tLS1cbiAgICB2YXIgcGllQ2hhcnRDYW52YXMgPSAkKCcjcGllQ2hhcnQnKS5nZXQoMCkuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB2YXIgcGllQ2hhcnQgPSBuZXcgQ2hhcnQocGllQ2hhcnRDYW52YXMpO1xuICAgIHZhciBQaWVEYXRhID0gW3tcbiAgICAgICAgICAgIHZhbHVlOiA3MDAsXG4gICAgICAgICAgICBjb2xvcjogJyNmNTY5NTQnLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnI2Y1Njk1NCcsXG4gICAgICAgICAgICBsYWJlbDogJ0Nocm9tZSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IDUwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnIzAwYTY1YScsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjMDBhNjVhJyxcbiAgICAgICAgICAgIGxhYmVsOiAnSUUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiA0MDAsXG4gICAgICAgICAgICBjb2xvcjogJyNmMzljMTInLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnI2YzOWMxMicsXG4gICAgICAgICAgICBsYWJlbDogJ0ZpcmVGb3gnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiA2MDAsXG4gICAgICAgICAgICBjb2xvcjogJyMwMGMwZWYnLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnIzAwYzBlZicsXG4gICAgICAgICAgICBsYWJlbDogJ1NhZmFyaSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IDMwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnIzNjOGRiYycsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjM2M4ZGJjJyxcbiAgICAgICAgICAgIGxhYmVsOiAnT3BlcmEnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAxMDAsXG4gICAgICAgICAgICBjb2xvcjogJyNkMmQ2ZGUnLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnI2QyZDZkZScsXG4gICAgICAgICAgICBsYWJlbDogJ05hdmlnYXRvcidcbiAgICAgICAgfVxuICAgIF07XG4gICAgdmFyIHBpZU9wdGlvbnMgPSB7XG4gICAgICAgIHNlZ21lbnRTaG93U3Ryb2tlOiB0cnVlLFxuICAgICAgICBzZWdtZW50U3Ryb2tlQ29sb3I6ICcjZmZmJyxcbiAgICAgICAgc2VnbWVudFN0cm9rZVdpZHRoOiAxLFxuICAgICAgICBwZXJjZW50YWdlSW5uZXJDdXRvdXQ6IDUwLFxuICAgICAgICBhbmltYXRpb25TdGVwczogMTAwLFxuICAgICAgICBhbmltYXRpb25FYXNpbmc6ICdlYXNlT3V0Qm91bmNlJyxcbiAgICAgICAgYW5pbWF0ZVJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgYW5pbWF0ZVNjYWxlOiBmYWxzZSxcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgIGxlZ2VuZFRlbXBsYXRlOiAnPHVsIGNsYXNzPVxcJzwlPW5hbWUudG9Mb3dlckNhc2UoKSU+LWxlZ2VuZFxcJz48JSBmb3IgKHZhciBpPTA7IGk8c2VnbWVudHMubGVuZ3RoOyBpKyspeyU+PGxpPjxzcGFuIHN0eWxlPVxcJ2JhY2tncm91bmQtY29sb3I6PCU9c2VnbWVudHNbaV0uZmlsbENvbG9yJT5cXCc+PC9zcGFuPjwlaWYoc2VnbWVudHNbaV0ubGFiZWwpeyU+PCU9c2VnbWVudHNbaV0ubGFiZWwlPjwlfSU+PC9saT48JX0lPjwvdWw+JyxcbiAgICAgICAgdG9vbHRpcFRlbXBsYXRlOiAnPCU9dmFsdWUgJT4gPCU9bGFiZWwlPiB1c2VycydcbiAgICB9O1xuICAgIHBpZUNoYXJ0LkRvdWdobnV0KFBpZURhdGEsIHBpZU9wdGlvbnMpO1xuXG5cbiAgICAvKiBqVmVjdG9yIE1hcHNcbiAgICAgKiAtLS0tLS0tLS0tLS1cbiAgICAgKiBDcmVhdGUgYSB3b3JsZCBtYXAgd2l0aCBtYXJrZXJzXG4gICAgICovXG4gICAgJCgnI3dvcmxkLW1hcC1tYXJrZXJzJykudmVjdG9yTWFwKHtcbiAgICAgICAgbWFwOiAnd29ybGRfbWlsbF9lbicsXG4gICAgICAgIG5vcm1hbGl6ZUZ1bmN0aW9uOiAncG9seW5vbWlhbCcsXG4gICAgICAgIGhvdmVyT3BhY2l0eTogMC43LFxuICAgICAgICBob3ZlckNvbG9yOiBmYWxzZSxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICByZWdpb25TdHlsZToge1xuICAgICAgICAgICAgaW5pdGlhbDoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICdyZ2JhKDIxMCwgMjE0LCAyMjIsIDEpJyxcbiAgICAgICAgICAgICAgICAnZmlsbC1vcGFjaXR5JzogMSxcbiAgICAgICAgICAgICAgICBzdHJva2U6ICdub25lJyxcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLXdpZHRoJzogMCxcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLW9wYWNpdHknOiAxXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICAgICAgICAnZmlsbC1vcGFjaXR5JzogMC43LFxuICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IHtcbiAgICAgICAgICAgICAgICBmaWxsOiAneWVsbG93J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbGVjdGVkSG92ZXI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIG1hcmtlclN0eWxlOiB7XG4gICAgICAgICAgICBpbml0aWFsOiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJyMwMGE2NWEnLFxuICAgICAgICAgICAgICAgIHN0cm9rZTogJyMxMTEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1hcmtlcnM6IFt7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbNDEuOTAsIDEyLjQ1XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnVmF0aWNhbiBDaXR5J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0My43MywgNy40MV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01vbmFjbydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbLTAuNTIsIDE2Ni45M10sXG4gICAgICAgICAgICAgICAgbmFtZTogJ05hdXJ1J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFstOC41MSwgMTc5LjIxXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnVHV2YWx1J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0My45MywgMTIuNDZdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTYW4gTWFyaW5vJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0Ny4xNCwgOS41Ml0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ0xpZWNodGVuc3RlaW4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzcuMTEsIDE3MS4wNl0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01hcnNoYWxsIElzbGFuZHMnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzE3LjMsIC02Mi43M10sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1NhaW50IEtpdHRzIGFuZCBOZXZpcydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMy4yLCA3My4yMl0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01hbGRpdmVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFszNS44OCwgMTQuNV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01hbHRhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxMi4wNSwgLTYxLjc1XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnR3JlbmFkYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMTMuMTYsIC02MS4yM10sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxMy4xNiwgLTU5LjU1XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQmFyYmFkb3MnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzE3LjExLCAtNjEuODVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBbnRpZ3VhIGFuZCBCYXJidWRhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFstNC42MSwgNTUuNDVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTZXljaGVsbGVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs3LjM1LCAxMzQuNDZdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdQYWxhdSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbNDIuNSwgMS41MV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ0FuZG9ycmEnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzE0LjAxLCAtNjAuOThdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTYWludCBMdWNpYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbNi45MSwgMTU4LjE4XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnRmVkZXJhdGVkIFN0YXRlcyBvZiBNaWNyb25lc2lhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxLjMsIDEwMy44XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2luZ2Fwb3JlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxLjQ2LCAxNzMuMDNdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdLaXJpYmF0aSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbLTIxLjEzLCAtMTc1LjJdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdUb25nYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMTUuMywgLTYxLjM4XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnRG9taW5pY2EnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWy0yMC4yLCA1Ny41XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTWF1cml0aXVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsyNi4wMiwgNTAuNTVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdCYWhyYWluJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFswLjMzLCA2LjczXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnU8OjbyBUb23DqSBhbmQgUHLDrW5jaXBlJ1xuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfSk7XG59KTtcblxuXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5EIE9GIENIQVJUUy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9hc3NldHMvanMvYWRtaW4uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///47\n");

/***/ }),

/***/ 48:
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(e,t){\"use strict\";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return\"function\"==typeof t&&\"number\"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement(\"script\");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?l[c.call(e)]||\"object\":typeof e}var b=\"3.3.1\",w=function(e,t){return new w.fn.init(e,t)},T=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;w.fn=w.prototype={jquery:\"3.3.1\",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:\"jQuery\"+(\"3.3.1\"+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==c.call(e))&&(!(t=i(e))||\"function\"==typeof(n=f.call(t,\"constructor\")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?\"\":(e+\"\").replace(T,\"\")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,\"string\"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),\"function\"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){l[\"[object \"+t+\"]\"]=t.toLowerCase()});function C(e){var t=!!e&&\"length\"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b=\"sizzle\"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",M=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",R=\"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",I=\"\\\\[\"+M+\"*(\"+R+\")(?:\"+M+\"*([*^$|!~]?=)\"+M+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+R+\"))|)\"+M+\"*\\\\]\",W=\":(\"+R+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+I+\")*)|.*)\\\\)|)\",$=new RegExp(M+\"+\",\"g\"),B=new RegExp(\"^\"+M+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+M+\"+$\",\"g\"),F=new RegExp(\"^\"+M+\"*,\"+M+\"*\"),_=new RegExp(\"^\"+M+\"*([>+~]|\"+M+\")\"+M+\"*\"),z=new RegExp(\"=\"+M+\"*([^\\\\]'\\\"]*?)\"+M+\"*\\\\]\",\"g\"),X=new RegExp(W),U=new RegExp(\"^\"+R+\"$\"),V={ID:new RegExp(\"^#(\"+R+\")\"),CLASS:new RegExp(\"^\\\\.(\"+R+\")\"),TAG:new RegExp(\"^(\"+R+\"|[*])\"),ATTR:new RegExp(\"^\"+I),PSEUDO:new RegExp(\"^\"+W),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+P+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\\d$/i,Q=/^[^{]+\\{\\s*\\[native \\w/,J=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,K=/[+~]/,Z=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+M+\"?|(\"+M+\")|.)\",\"ig\"),ee=function(e,t,n){var r=\"0x\"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ne=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&(\"form\"in e||\"label\"in e)},{dir:\"parentNode\",next:\"legend\"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],\"string\"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+\" \"]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if(\"object\"!==t.nodeName.toLowerCase()){(c=t.getAttribute(\"id\"))?c=c.replace(te,ne):t.setAttribute(\"id\",c=b),s=(h=a(e)).length;while(s--)h[s]=\"#\"+c+\" \"+ve(h[s]);v=h.join(\",\"),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute(\"id\")}}}return u(e.replace(B,\"$1\"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+\" \")>r.cacheLength&&delete t[e.shift()],t[n+\" \"]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split(\"|\"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return\"input\"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return(\"input\"===n||\"button\"===n)&&t.type===e}}function de(e){return function(t){return\"form\"in t?t.parentNode&&!1===t.disabled?\"label\"in t?\"label\"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:\"label\"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&\"HTML\"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener(\"unload\",re,!1):i.attachEvent&&i.attachEvent(\"onunload\",re)),n.attributes=ue(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute(\"id\")===t}},r.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return n&&n.value===t}},r.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML=\"<a id='\"+b+\"'></a><select id='\"+b+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&y.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||y.push(\"\\\\[\"+M+\"*(?:value|\"+P+\")\"),e.querySelectorAll(\"[id~=\"+b+\"-]\").length||y.push(\"~=\"),e.querySelectorAll(\":checked\").length||y.push(\":checked\"),e.querySelectorAll(\"a#\"+b+\"+*\").length||y.push(\".#.+[+~]\")}),ue(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=d.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&y.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&y.push(\":enabled\",\":disabled\"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&y.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),y.push(\",.*:\")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,\"*\"),m.call(e,\"[s!='']:x\"),v.push(\"!=\",W)}),y=y.length&&new RegExp(y.join(\"|\")),v=v.length&&new RegExp(v.join(\"|\")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,\"='$1']\"),n.matchesSelector&&g&&!S[t+\" \"]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+\"\").replace(te,ne)},oe.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n=\"\",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||\"\").replace(Z,ee),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&E(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?\"!=\"===t:!t||(i+=\"\",\"=\"===t?i===n:\"!=\"===t?i!==n:\"^=\"===t?n&&0===i.indexOf(n):\"*=\"===t?n&&i.indexOf(n)>-1:\"$=\"===t?n&&i.slice(-n.length)===n:\"~=\"===t?(\" \"+i.replace($,\" \")+\" \").indexOf(n)>-1:\"|=\"===t&&(i===n||i.slice(0,n.length+1)===n+\"-\"))}},CHILD:function(e,t,n,r,i){var o=\"nth\"!==e.slice(0,3),a=\"last\"!==e.slice(-4),s=\"of-type\"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?\"nextSibling\":\"previousSibling\",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g=\"only\"===e&&!h&&\"nextSibling\"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error(\"unsupported pseudo: \"+e);return i[b]?i(t):i.length>1?(n=[e,e,\"\",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,\"$1\"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||\"\")||oe.error(\"unsupported lang: \"+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute(\"xml:lang\")||t.getAttribute(\"lang\"))return(n=n.toLowerCase())===e||0===n.indexOf(e+\"-\")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+\" \"];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B,\" \")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&\"parentNode\"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||\"*\",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[\" \"],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:\" \"===e[u-2].type?\"*\":\"\"})).replace(B,\"$1\"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m=\"0\",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG(\"*\",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+\" \"];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p=\"function\"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&\"ID\"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split(\"\").sort(D).join(\"\")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement(\"fieldset\"))}),ue(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||le(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||le(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute(\"disabled\")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[\":\"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):\"string\"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,\"string\"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,\"string\"==typeof e){if(!(i=\"<\"===e[0]&&\">\"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,\"parentNode\")},parentsUntil:function(e,t,n){return k(e,\"parentNode\",n)},next:function(e){return P(e,\"nextSibling\")},prev:function(e){return P(e,\"previousSibling\")},nextAll:function(e){return k(e,\"nextSibling\")},prevAll:function(e){return k(e,\"previousSibling\")},nextUntil:function(e,t,n){return k(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return k(e,\"previousSibling\",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,\"iframe\")?e.contentDocument:(N(e,\"template\")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return\"Until\"!==e.slice(-5)&&(r=n),r&&\"string\"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\\x20\\t\\r\\n\\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e=\"string\"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:\"\")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&\"string\"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n=\"\",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=\"\"),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[[\"notify\",\"progress\",w.Callbacks(\"memory\"),w.Callbacks(\"memory\"),2],[\"resolve\",\"done\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),1,\"rejected\"]],r=\"pending\",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},\"catch\":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+\"With\"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError(\"Thenable self-resolution\");l=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+\"With\"](this===o?void 0:this,arguments),this},o[t[0]+\"With\"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),\"pending\"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn(\"jQuery.Deferred exception: \"+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)[\"catch\"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener(\"DOMContentLoaded\",_),e.removeEventListener(\"load\",_),w.ready()}\"complete\"===r.readyState||\"loading\"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener(\"DOMContentLoaded\",_),e.addEventListener(\"load\",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,\"ms-\").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,ee=/[A-Z]/g;function te(e){return\"true\"===e||\"false\"!==e&&(\"null\"===e?null:e===+e+\"\"?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(ee,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,\"hasDataAttrs\"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf(\"data-\")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks(\"once memory\").add(function(){J.remove(e,[t+\"queue\",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return\"string\"!=typeof e&&(t=e,e=\"fx\",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),\"fx\"===e&&\"inprogress\"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";while(a--)(n=J.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,ie=new RegExp(\"^(?:([+-])=|)(\"+re+\")([a-z%]*)$\",\"i\"),oe=[\"Top\",\"Right\",\"Bottom\",\"Left\"],ae=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&w.contains(e.ownerDocument,e)&&\"none\"===w.css(e,\"display\")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,\"\")},u=s(),l=n&&n[3]||(w.cssNumber[t]?\"\":\"px\"),c=(w.cssNumber[t]||\"px\"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,\"display\"),t.parentNode.removeChild(t),\"none\"===i&&(i=\"block\"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?(\"none\"===n&&(i[o]=J.get(r,\"display\")||null,i[o]||(r.style.display=\"\")),\"\"===r.style.display&&ae(r)&&(i[o]=ce(r))):\"none\"!==n&&(i[o]=\"none\",J.set(r,\"display\",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i,he=/^$|^module$|\\/(?:java|ecma)script/i,ge={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],\"globalEval\",!t||J.get(t[n],\"globalEval\"))}var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if(\"object\"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement(\"div\")),s=(de.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=\"\"}else p.push(t.createTextNode(o));f.textContent=\"\",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),\"script\"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||\"\")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement(\"div\")),t=r.createElement(\"input\");t.setAttribute(\"type\",\"radio\"),t.setAttribute(\"checked\",\"checked\"),t.setAttribute(\"name\",\"t\"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML=\"<textarea>x</textarea>\",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){\"string\"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return\"undefined\"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||\"\").match(M)||[\"\"]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||\"\").match(M)||[\"\"]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||\"\").split(\".\").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,\"handle events\")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,\"events\")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:\"focusin\"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:\"focusout\"},click:{trigger:function(){if(\"checkbox\"===this.type&&this.click&&N(this,\"input\"))return this.click(),!1},_default:function(e){return N(e.target,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,\"char\":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,Ae=/<script|<style|<link/i,je=/checked\\s*(?:[^=]|=\\s*.checked.)/i,qe=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function Le(e,t){return N(e,\"table\")&&N(11!==t.nodeType?t:t.firstChild,\"tr\")?w(e).children(\"tbody\")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function Oe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();\"input\"===n&&pe.test(e.type)?t.checked=e.checked:\"input\"!==n&&\"textarea\"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&\"string\"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,\"script\"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,\"script\"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||\"\")&&!J.access(l,\"globalEval\")&&w.contains(c,l)&&(l.src&&\"module\"!==(l.type||\"\").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,\"\"),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,\"script\")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,\"<$1></$2>\")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,\"script\")).length>0&&ve(a,!u&&ye(e,\"script\")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp(\"^(\"+re+\")(?!px)[a-z%]+$\",\"i\"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join(\"|\"),\"i\");!function(){function t(){if(c){l.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",c.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i=\"1%\"!==t.top,u=12===n(t.marginLeft),c.style.right=\"60%\",s=36===n(t.right),o=36===n(t.width),c.style.position=\"absolute\",a=36===c.offsetWidth||\"absolute\",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement(\"div\"),c=r.createElement(\"div\");c.style&&(c.style.backgroundClip=\"content-box\",c.cloneNode(!0).style.backgroundClip=\"\",h.clearCloneStyle=\"content-box\"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Ve={letterSpacing:\"0\",fontWeight:\"400\"},Ge=[\"Webkit\",\"Moz\",\"ms\"],Ye=r.createElement(\"div\").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function Ze(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?(\"content\"===n&&(u-=w.css(e,\"padding\"+oe[a],!0,i)),\"margin\"!==n&&(u-=w.css(e,\"border\"+oe[a]+\"Width\",!0,i))):(u+=w.css(e,\"padding\"+oe[a],!0,i),\"padding\"!==n?u+=w.css(e,\"border\"+oe[a]+\"Width\",!0,i):s+=w.css(e,\"border\"+oe[a]+\"Width\",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o=\"border-box\"===w.css(e,\"boxSizing\",!1,r),a=o;if(We.test(i)){if(!n)return i;i=\"auto\"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),(\"auto\"===i||!parseFloat(i)&&\"inline\"===w.css(e,\"display\",!1,r))&&(i=e[\"offset\"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?\"border\":\"content\"),a,r,i)+\"px\"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o=\"number\"),null!=n&&n===n&&(\"number\"===o&&(n+=i&&i[3]||(w.cssNumber[s]?\"\":\"px\")),h.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),\"normal\"===i&&t in Ve&&(i=Ve[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each([\"height\",\"width\"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a=\"border-box\"===w.css(e,\"boxSizing\",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,\"border\",!1,o)-.5)),s&&(i=ie.exec(n))&&\"px\"!==(i[3]||\"px\")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,\"marginLeft\"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),w.each({margin:\"\",padding:\"\",border:\"Width\"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o=\"string\"==typeof n?n.split(\" \"):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},\"margin\"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?\"\":\"px\")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=oe[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f=\"width\"in t||\"height\"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,\"fxshow\");n.queue||(null==(a=w._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,\"fx\").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(g?\"hide\":\"show\")){if(\"show\"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,\"display\")),\"none\"===(c=w.css(e,\"display\"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,\"display\"),fe([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===w.css(e,\"float\")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l=\"none\"===c?\"\":c)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?\"hidden\"in y&&(g=y.hidden):y=J.access(e,\"fxshow\",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,\"fxshow\");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&\"expand\"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=[\"*\"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&\"object\"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,\"finish\"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return\"string\"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||\"fx\",[]),this.each(function(){var t=!0,i=null!=e&&e+\"queueHooks\",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||\"fx\"),this.each(function(){var t,n=J.get(this),r=n[e+\"queue\"],i=n[e+\"queueHooks\"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each([\"toggle\",\"show\",\"hide\"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||\"boolean\"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut(\"show\"),slideUp:ut(\"hide\"),slideToggle:ut(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||\"fx\",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement(\"input\"),t=r.createElement(\"select\").appendChild(r.createElement(\"option\"));e.type=\"checkbox\",h.checkOn=\"\"!==e.value,h.optSelected=t.selected,(e=r.createElement(\"input\")).value=\"t\",e.type=\"radio\",h.radioValue=\"t\"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return\"undefined\"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&\"radio\"===t&&N(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,\"tabindex\");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(\" \")}function mt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function xt(e){return Array.isArray(e)?e:\"string\"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&\" \"+vt(i)+\" \"){a=0;while(o=t[a++])r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=vt(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&\" \"+vt(i)+\" \"){a=0;while(o=t[a++])while(r.indexOf(\" \"+o+\" \")>-1)r=r.replace(\" \"+o+\" \",\" \");i!==(s=vt(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(e,t){var n=typeof e,r=\"string\"===n||Array.isArray(e);return\"boolean\"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&\"boolean\"!==n||((t=mt(this))&&J.set(this,\"__className__\",t),this.setAttribute&&this.setAttribute(\"class\",t||!1===e?\"\":J.get(this,\"__className__\")||\"\"))})},hasClass:function(e){var t,n,r=0;t=\" \"+e+\" \";while(n=this[r++])if(1===n.nodeType&&(\" \"+vt(mt(n))+\" \").indexOf(t)>-1)return!0;return!1}});var bt=/\\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i=\"\":\"number\"==typeof i?i+=\"\":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?\"\":e+\"\"})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&\"set\"in t&&void 0!==t.set(this,i,\"value\")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&\"get\"in t&&void 0!==(n=t.get(i,\"value\"))?n:\"string\"==typeof(n=i.value)?n.replace(bt,\"\"):null==n?\"\":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,\"value\");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,\"optgroup\"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each([\"radio\",\"checkbox\"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),h.focusin=\"onfocusin\"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,\"type\")?t.type:t,x=f.call(t,\"namespace\")?t.namespace.split(\".\"):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(\".\")>-1&&(m=(x=m.split(\".\")).shift(),x.sort()),c=m.indexOf(\":\")<0&&\"on\"+m,t=t[w.expando]?t:new w.Event(m,\"object\"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join(\".\"),t.rnamespace=t.namespace?new RegExp(\"(^|\\\\.)\"+x.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,\"events\")||{})[t.type]&&J.get(s,\"handle\"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\\?/;w.parseXML=function(t){var n;if(!t||\"string\"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,\"text/xml\")}catch(e){n=void 0}return n&&!n.getElementsByTagName(\"parsererror\").length||w.error(\"Invalid XML: \"+t),n};var St=/\\[\\]$/,Dt=/\\r?\\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+\"[\"+(\"object\"==typeof i&&null!=i?t:\"\")+\"]\",i,n,r)});else if(n||\"object\"!==x(t))r(e,t);else for(i in t)jt(e+\"[\"+i+\"]\",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join(\"&\")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,\"elements\");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(\":disabled\")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,\"\\r\\n\")}}):{name:t.name,value:n.replace(Dt,\"\\r\\n\")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\\/\\//,It={},Wt={},$t=\"*/\".concat(\"*\"),Bt=r.createElement(\"a\");Bt.href=Ct.href;function Ft(e){return function(t,n){\"string\"!=typeof t&&(n=t,t=\"*\");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])\"+\"===r[0]?(r=r.slice(1)||\"*\",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return\"string\"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i[\"*\"]&&a(\"*\")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while(\"*\"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e[\"throws\"])t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:\"GET\",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":$t,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){\"object\"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks(\"once memory\"),x=h.statusCode||{},b={},T={},C=\"canceled\",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+\"\").replace(Rt,Ct.protocol+\"//\"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||\"*\").toLowerCase().match(M)||[\"\"],null==h.crossDomain){l=r.createElement(\"a\");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+\"//\"+Bt.host!=l.protocol+\"//\"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&\"string\"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger(\"ajaxStart\"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,\"\"),h.hasContent?h.data&&h.processData&&0===(h.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(h.data=h.data.replace(qt,\"+\")):(d=h.url.slice(o.length),h.data&&(h.processData||\"string\"==typeof h.data)&&(o+=(kt.test(o)?\"&\":\"?\")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,\"$1\"),d=(kt.test(o)?\"&\":\"?\")+\"_=\"+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader(\"If-Modified-Since\",w.lastModified[o]),w.etag[o]&&E.setRequestHeader(\"If-None-Match\",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader(\"Content-Type\",h.contentType),E.setRequestHeader(\"Accept\",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+(\"*\"!==h.dataTypes[0]?\", \"+$t+\"; q=0.01\":\"\"):h.accepts[\"*\"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C=\"abort\",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger(\"ajaxSend\",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort(\"timeout\")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,\"No Transport\");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||\"\",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader(\"Last-Modified\"))&&(w.lastModified[o]=T),(T=E.getResponseHeader(\"etag\"))&&(w.etag[o]=T)),204===t||\"HEAD\"===h.type?C=\"nocontent\":304===t?C=\"notmodified\":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C=\"error\",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+\"\",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?\"ajaxSuccess\":\"ajaxError\",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger(\"ajaxComplete\",[E,h]),--w.active||w.event.trigger(\"ajaxStop\")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,\"json\")},getScript:function(e,t){return w.get(e,void 0,t,\"script\")}}),w.each([\"get\",\"post\"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,\"throws\":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&\"withCredentials\"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i[\"X-Requested-With\"]||(i[\"X-Requested-With\"]=\"XMLHttpRequest\");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,\"abort\"===e?s.abort():\"error\"===e?\"number\"!=typeof s.status?o(0,\"error\"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,\"text\"!==(s.responseType||\"text\")||\"string\"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n(\"error\"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n(\"abort\");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),w.ajaxTransport(\"script\",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(\"<script>\").prop({charset:e.scriptCharset,src:e.url}).on(\"load error\",n=function(e){t.remove(),n=null,e&&o(\"error\"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\\?(?=&|$)|\\?\\?/;w.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Yt.pop()||w.expando+\"_\"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter(\"json jsonp\",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?\"url\":\"string\"==typeof t.data&&0===(t.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Qt.test(t.data)&&\"data\");if(s||\"jsonp\"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,\"$1\"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?\"&\":\"?\")+t.jsonp+\"=\"+i),t.converters[\"script json\"]=function(){return a||w.error(i+\" was not called\"),a[0]},t.dataTypes[0]=\"json\",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),\"script\"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument(\"\").body;return e.innerHTML=\"<form></form><form></form>\",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if(\"string\"!=typeof e)return[];\"boolean\"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),a.length>0&&w.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?w(\"<div>\").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,\"position\"),f=w(e),p={};\"static\"===c&&(e.style.position=\"relative\"),s=f.offset(),o=w.css(e,\"top\"),u=w.css(e,\"left\"),(l=(\"absolute\"===c||\"fixed\"===c)&&(o+u).indexOf(\"auto\")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),\"using\"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===w.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===w.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,\"borderTopWidth\",!0),i.left+=w.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-w.css(r,\"marginTop\",!0),left:t.left-i.left-w.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===w.css(e,\"position\"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(e,t){var n=\"pageYOffset\"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each([\"top\",\"left\"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+\"px\":n})}),w.each({Height:\"height\",Width:\"width\"},function(e,t){w.each({padding:\"inner\"+e,content:t,\"\":\"outer\"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||\"boolean\"!=typeof i),s=n||(!0===i||!0===o?\"margin\":\"border\");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf(\"outer\")?t[\"inner\"+e]:t.document.documentElement[\"client\"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body[\"scroll\"+e],o[\"scroll\"+e],t.body[\"offset\"+e],o[\"offset\"+e],o[\"client\"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),w.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==\"function\"&&__webpack_require__(11)&&!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function(){return w}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2pxdWVyeS9kaXN0L2pxdWVyeS5taW4uanM/OTVkYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGVBQWUsYUFBYSx1R0FBdUcsMkVBQTJFLFlBQVksTUFBTSxzREFBc0QsYUFBYSw0RkFBNEYsbUVBQW1FLGlCQUFpQix3REFBd0QsaUJBQWlCLDZCQUE2QixJQUFJLDRCQUE0QixrQkFBa0IseUNBQXlDLDJDQUEyQyxnREFBZ0QsY0FBYyw2RkFBNkYsOEJBQThCLDBCQUEwQix3Q0FBd0Msa0JBQWtCLHlEQUF5RCxvQkFBb0IsaUJBQWlCLDREQUE0RCx1QkFBdUIsb0NBQW9DLDJCQUEyQixrQkFBa0Isc0JBQXNCLGlCQUFpQiwrQ0FBK0MscUJBQXFCLEdBQUcsa0JBQWtCLCtDQUErQyxrQkFBa0Isa0JBQWtCLGlCQUFpQixtQkFBbUIsZ0JBQWdCLGlDQUFpQyw4Q0FBOEMsZ0JBQWdCLDJDQUEyQyxvQ0FBb0MsaUNBQWlDLGtDQUFrQyw2QkFBNkIsZ0RBQWdELHFDQUFxQyxzQkFBc0IsSUFBSSxpTEFBaUwsNkNBQTZDLFNBQVMsV0FBVyx3RkFBd0YsbUJBQW1CLGtCQUFrQiwyQkFBMkIsUUFBUSxxSUFBcUksMkJBQTJCLE1BQU0sb0JBQW9CLFNBQVMsd0JBQXdCLEtBQUssb0JBQW9CLFVBQVUsU0FBUyxlQUFlLElBQUksc0NBQXNDLGtEQUFrRCxTQUFTLGtCQUFrQix1Q0FBdUMseUJBQXlCLFlBQVksaUZBQWlGLHlCQUF5QixnQ0FBZ0MscUJBQXFCLG1DQUFtQyxJQUFJLGdCQUFnQixvQkFBb0Isc0JBQXNCLG1DQUFtQyxJQUFJLHFDQUFxQyxTQUFTLHFCQUFxQixpQkFBaUIsdUJBQXVCLElBQUkscUNBQXFDLGlEQUFpRCxxQkFBcUIsa0JBQWtCLCtLQUErSyxvQ0FBb0MsRUFBRSxjQUFjLHlDQUF5Qyw0RUFBNEUsa0JBQWtCLDBIQUEwSCx1QkFBdUIsS0FBSyx5RUFBeUUsdUJBQXVCLElBQUkseUJBQXlCLFNBQVMsaXFCQUFpcUIsdWNBQXVjLDJEQUEyRCxJQUFJLDBGQUEwRixJQUFJLDRDQUE0QyxtQkFBbUIsaUdBQWlHLDJFQUEyRSwrRkFBK0YsZUFBZSxJQUFJLG1CQUFtQixpREFBaUQsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLDZFQUE2RSxTQUFTLEdBQUcsNkJBQTZCLHFCQUFxQixlQUFlLG1CQUFtQixxQkFBcUIsZUFBZSxxQkFBcUIsd0RBQXdELGlFQUFpRSxzREFBc0Qsb0NBQW9DLFVBQVUscUNBQXFDLCtCQUErQix3RUFBd0UsS0FBSyxzREFBc0QsZ0hBQWdILHVDQUF1QyxpQkFBaUIsNkNBQTZDLHVGQUF1RixrQ0FBa0MsK0NBQStDLFNBQVMsMENBQTBDLFVBQVUsUUFBUSxpQ0FBaUMsa0NBQWtDLGNBQWMsU0FBUyxnQkFBZ0IsbUVBQW1FLFNBQVMsZUFBZSxpQkFBaUIsZUFBZSxrQ0FBa0MsSUFBSSxhQUFhLFNBQVMsU0FBUyxRQUFRLGtEQUFrRCxpQkFBaUIsOEJBQThCLCtCQUErQixpQkFBaUIsNEVBQTRFLGNBQWMsNkNBQTZDLGNBQWMsZUFBZSxtQkFBbUIsc0RBQXNELGVBQWUsbUJBQW1CLCtCQUErQiwrQ0FBK0MsZUFBZSxtQkFBbUIsc05BQXNOLGVBQWUsc0JBQXNCLDZCQUE2QixvQ0FBb0MseUNBQXlDLEVBQUUsRUFBRSxlQUFlLHdEQUF3RCxlQUFlLHdCQUF3Qiw4Q0FBOEMsK0JBQStCLDhCQUE4QixpQ0FBaUMsc1BBQXNQLG9EQUFvRCx3Q0FBd0MsOEVBQThFLHFGQUFxRixrRkFBa0YscUNBQXFDLHNCQUFzQixtQkFBbUIsaUNBQWlDLHlCQUF5Qiw0Q0FBNEMsMEJBQTBCLGlCQUFpQiwyQkFBMkIsc0JBQXNCLG1CQUFtQix1RUFBdUUsdUJBQXVCLHlCQUF5Qiw0Q0FBNEMsZ0NBQWdDLE1BQU0sdURBQXVELDZCQUE2QixzRUFBc0UsVUFBVSxrREFBa0QsOEdBQThHLGVBQWUsMkNBQTJDLFlBQVkseUNBQXlDLFNBQVMsU0FBUyxzREFBc0Qsc0ZBQXNGLCtEQUErRCw4Y0FBOGMsaUJBQWlCLGdHQUFnRywrQkFBK0IsNFdBQTRXLG1KQUFtSix1RUFBdUUsb0pBQW9KLDJEQUEyRCw0SEFBNEgsZUFBZSw0Q0FBNEMsU0FBUyxtQkFBbUIsdUJBQXVCLDREQUE0RCxzUEFBc1AsZUFBZSx1QkFBdUIsb0RBQW9ELDZEQUE2RCx3QkFBd0IsSUFBSSxrQ0FBa0MsSUFBSSxrQ0FBa0Msc0JBQXNCLGdEQUFnRCxNQUFNLDBCQUEwQix5QkFBeUIsa0NBQWtDLGtJQUFrSSxrQkFBa0IseUVBQXlFLFVBQVUsaUNBQWlDLDJCQUEyQiw0Q0FBNEMsdUJBQXVCLCtCQUErQiwrRkFBK0YsMkdBQTJHLHVCQUF1Qiw0QkFBNEIsc0JBQXNCLDZEQUE2RCwyQkFBMkIsbUJBQW1CLGtFQUFrRSx1Q0FBdUMsMkJBQTJCLGdCQUFnQiwwQkFBMEIsNEJBQTRCLE1BQU0seUJBQXlCLHVEQUF1RCxtQkFBbUIsRUFBRSx3QkFBd0Isd0NBQXdDLDRCQUE0QixTQUFTLGtCQUFrQixvREFBb0QsUUFBUSxXQUFXLEtBQUssMEJBQTBCLE1BQU0saUJBQWlCLE1BQU0sK0JBQStCLE1BQU0sdUJBQXVCLFlBQVksaUJBQWlCLHVIQUF1SCxtQkFBbUIsaU1BQWlNLG9CQUFvQixvQkFBb0Isb0xBQW9MLFNBQVMsZ0JBQWdCLG9DQUFvQyx5QkFBeUIsU0FBUyxhQUFhLGlEQUFpRCxtQkFBbUIsZUFBZSxxRUFBcUUsMEhBQTBILEVBQUUsc0JBQXNCLG1CQUFtQixtQkFBbUIsaVFBQWlRLDJCQUEyQixrRUFBa0UsZ0NBQWdDLHFCQUFxQixpQkFBaUIsbUhBQW1ILE1BQU0sTUFBTSxTQUFTLElBQUksdUVBQXVFLGtDQUFrQyxTQUFTLHdDQUF3QyxnQ0FBZ0MsaUNBQWlDLG9EQUFvRCxzRUFBc0UsYUFBYSxPQUFPLDJDQUEyQyxpQ0FBaUMseUpBQXlKLGlDQUFpQywwQkFBMEIsbUNBQW1DLHNCQUFzQix3RkFBd0Ysd0dBQXdHLDBCQUEwQixzQ0FBc0MsY0FBYyxnQkFBZ0IsS0FBSyxVQUFVLG1CQUFtQixxQ0FBcUMsaUNBQWlDLGtDQUFrQyxxQ0FBcUMsa0JBQWtCLGdEQUFnRCxxQkFBcUIsbUJBQW1CLHlCQUF5QiwwQkFBMEIscUNBQXFDLHdEQUF3RCxzQkFBc0IsbUdBQW1HLE1BQU0sR0FBRyxxSEFBcUgsd0NBQXdDLFVBQVUscUJBQXFCLGtDQUFrQyw0QkFBNEIsa0JBQWtCLGFBQWEsbUJBQW1CLHlGQUF5RixvREFBb0QsK0JBQStCLDJEQUEyRCxzQkFBc0IsZ0VBQWdFLG1CQUFtQixtQkFBbUIsRUFBRSx5Q0FBeUMsU0FBUyxvQkFBb0IsMEJBQTBCLG9CQUFvQiwwQkFBMEIsbUJBQW1CLDBCQUEwQixvQkFBb0IsK0JBQStCLG1EQUFtRCxrQkFBa0IsTUFBTSx3SEFBd0gscUJBQXFCLFVBQVUsd0JBQXdCLFlBQVksd0JBQXdCLGtCQUFrQix3QkFBd0IsWUFBWSxJQUFJLGVBQWUsU0FBUyx1QkFBdUIsWUFBWSxJQUFJLGVBQWUsU0FBUyx3QkFBd0Isb0JBQW9CLE9BQU8sV0FBVyxTQUFTLHdCQUF3QixvQkFBb0IsTUFBTSxXQUFXLFNBQVMsR0FBRywyQkFBMkIsU0FBUyxrREFBa0Qsb0JBQW9CLFNBQVMsbUJBQW1CLG9CQUFvQixlQUFlLGlGQUFpRiw2QkFBNkIsMkJBQTJCLHVCQUF1QixTQUFTLDBHQUEwRyxpQ0FBaUMsdUJBQXVCLDhFQUE4RSx5QkFBeUIsdUJBQXVCLFlBQVksaURBQWlELGVBQWUsNEJBQTRCLElBQUksa0JBQWtCLFNBQVMsbUJBQW1CLHdEQUF3RCwrQkFBK0Isa0RBQWtELFNBQVMsaUJBQWlCLGtCQUFrQixNQUFNLHVEQUF1RCwwREFBMEQsb0NBQW9DLDRDQUE0QyxLQUFLLGlEQUFpRCxpQ0FBaUMsVUFBVSxlQUFlLGtDQUFrQyxlQUFlLG1DQUFtQyxTQUFTLE1BQU0sbUJBQW1CLHVCQUF1QixJQUFJLGlCQUFpQixTQUFTLHVCQUF1Qix3Q0FBd0MsSUFBSSx1REFBdUQsU0FBUyx5QkFBeUIsc0VBQXNFLHdIQUF3SCxvQkFBb0IsaUNBQWlDLDJDQUEyQyxNQUFNLFNBQVMsTUFBTSxnQkFBZ0IsbUNBQW1DLGlCQUFpQixXQUFXLDREQUE0RCxxRUFBcUUsRUFBRSxlQUFlLCtGQUErRixhQUFhLHdCQUF3QixpQkFBaUIsMEJBQTBCLHlEQUF5RCxnQkFBZ0IsRUFBRSxJQUFJLCtDQUErQyxLQUFLLHdEQUF3RCxVQUFVLElBQUksbUNBQW1DLG9EQUFvRCwrQkFBK0IsNkVBQTZFLFVBQVUsYUFBYSxpQkFBaUIsb0RBQW9ELDJHQUEyRyx1QkFBdUIsc0JBQXNCLEtBQUssU0FBUyx3Q0FBd0MsK0JBQStCLFVBQVUsTUFBTSxTQUFTLGlDQUFpQyxrQkFBa0IsSUFBSSwwQkFBMEIsTUFBTSw4Q0FBOEMsUUFBUSwrREFBK0QsdUJBQXVCLGlCQUFpQixrQ0FBa0MsMkJBQTJCLE9BQU8sdUJBQXVCLDhDQUE4Qyw0QkFBNEIsU0FBUywrQkFBK0IsaUVBQWlFLHlCQUF5QixvR0FBb0csa0VBQWtFLHNEQUFzRCxvQ0FBb0MsV0FBVyxxQ0FBcUMsNEZBQTRGLDREQUE0RCxRQUFRLGlFQUFpRSx3R0FBd0csZ0VBQWdFLGlCQUFpQiw4RUFBOEUsK0NBQStDLDREQUE0RCwrQkFBK0IsNEdBQTRHLDhCQUE4QixnRUFBZ0UsaUJBQWlCLHdDQUF3Qyx3QkFBd0IsTUFBTSwwRkFBMEYsS0FBSyxJQUFJLDhLQUE4SyxzQkFBc0Isc0JBQXNCLGtEQUFrRCx1QkFBdUIsVUFBVSxTQUFTLGlCQUFpQixhQUFhLEVBQUUsaURBQWlELFNBQVMsNkJBQTZCLGdCQUFnQiw4REFBOEQsd0VBQXdFLGtCQUFrQixtQ0FBbUMsMEJBQTBCLGtDQUFrQyxpQkFBaUIsMENBQTBDLDBCQUEwQixrQkFBa0IseUJBQXlCLFdBQVcsa0lBQWtJLHNCQUFzQixHQUFHLGNBQWMsaUJBQWlCLDZCQUE2QixtRUFBbUUsUUFBUSxJQUFJLHNDQUFzQyxHQUFHLDZCQUE2QixJQUFJLHFCQUFxQiw2QkFBNkIsb0JBQW9CLHdDQUF3QyxpQkFBaUIsd0NBQXdDLGdCQUFnQixvRUFBb0UsRUFBRSw4Q0FBOEMsMkJBQTJCLFFBQVEsa0JBQWtCLDhCQUE4QixxSkFBcUosU0FBUyx3TEFBd0wsWUFBWSxpRUFBaUUsMkdBQTJHLHdCQUF3QiwwQ0FBMEMseUNBQXlDLGFBQWEsZ0JBQWdCLDJCQUEyQiw4QkFBOEIsWUFBWSxJQUFJLHNDQUFzQyxFQUFFLHVCQUF1Qix3REFBd0QsbUJBQW1CLElBQUksa0JBQWtCLFNBQVMsZ0dBQWdHLFVBQVUsTUFBTSxvREFBb0QsbUJBQW1CLDJJQUEySSxtQkFBbUIsZ0VBQWdFLHFCQUFxQixvRUFBb0UsRUFBRSxnQkFBZ0IsZ0NBQWdDLFNBQVMsUUFBUSxtQkFBbUIsbUJBQW1CLGlDQUFpQyxxQkFBcUIseUJBQXlCLDhCQUE4QiwyQkFBMkIsa0JBQWtCLDBCQUEwQixrQkFBa0IsOEJBQThCLHFCQUFxQiwwQkFBMEIscUJBQXFCLDhCQUE4QiwyQkFBMkIsNEJBQTRCLDJCQUEyQixnQ0FBZ0Msc0JBQXNCLDBCQUEwQixnQkFBZ0Isc0JBQXNCLHVCQUF1QixzQkFBc0IscUdBQXFHLGVBQWUsc0JBQXNCLHNCQUFzQiw2SkFBNkosRUFBRSwwQkFBMEIsY0FBYyxTQUFTLDJDQUEyQyxRQUFRLElBQUksd0JBQXdCLHFDQUFxQyxJQUFJLHdDQUF3Qyx1QkFBdUIsU0FBUyxNQUFNLFlBQVksZ0ZBQWdGLHFDQUFxQyxJQUFJLGVBQWUseURBQXlELHVCQUF1QixzRUFBc0UsRUFBRSw2QkFBNkIsbUJBQW1CLHNDQUFzQyxNQUFNLHNEQUFzRCxPQUFPLGlCQUFpQixzQ0FBc0Msa0JBQWtCLHNCQUFzQixvQkFBb0IsMEJBQTBCLHFCQUFxQixTQUFTLGlCQUFpQixrQ0FBa0MsbUJBQW1CLFVBQVUsd0JBQXdCLG9FQUFvRSxpQkFBaUIsdUNBQXVDLGtCQUFrQixZQUFZLFVBQVUsY0FBYyxTQUFTLGNBQWMsUUFBUSxvQkFBb0IsTUFBTSxJQUFJLHNHQUFzRyxTQUFTLHFCQUFxQixVQUFVLHFCQUFxQixzUUFBc1EsaUJBQWlCLFNBQVMsbUJBQW1CLDhDQUE4QyxxQkFBcUIsc0JBQXNCLGlCQUFpQixnQkFBZ0IsOEJBQThCLHVCQUF1QiwwQkFBMEIsbUJBQW1CLGlDQUFpQyxtSEFBbUgsRUFBRSxTQUFTLFlBQVksc0JBQXNCLFFBQVEsb0JBQW9CLGtCQUFrQixvQ0FBb0MsUUFBUSxXQUFXLGtGQUFrRiw4TUFBOE0sa0JBQWtCLElBQUksSUFBSSxTQUFTLHlIQUF5SCwyRkFBMkYsOEJBQThCLG9HQUFvRyxZQUFZLHFCQUFxQixnQ0FBZ0MsTUFBTSw4QkFBOEIsa0JBQWtCLGtDQUFrQyxJQUFJLG9HQUFvRywyREFBMkQsMkJBQTJCLGdDQUFnQyxrQkFBa0IsdUZBQXVGLG1CQUFtQixnRkFBZ0YsMkdBQTJHLGdDQUFnQyxvQkFBb0IsRUFBRSwrREFBK0QsdUNBQXVDLGdIQUFnSCw4QkFBOEIsd0JBQXdCLFFBQVEsR0FBRyxtQkFBbUIsdUJBQXVCLHNDQUFzQyxvQkFBb0IsT0FBTyxXQUFXLHlDQUF5QyxnR0FBZ0csc0JBQXNCLGFBQWEsc0ZBQXNGLCtLQUErSyw4QkFBOEIsNkJBQTZCLG9CQUFvQixLQUFLLGdDQUFnQyx5RkFBeUYsc0JBQXNCLFdBQVcsSUFBSSwyQ0FBMkMscUNBQXFDLHlCQUF5QixnQkFBZ0IsdUJBQXVCLGNBQWMsdUNBQXVDLGtCQUFrQixxREFBcUQsYUFBYSwrQkFBK0IscUJBQXFCLGtCQUFrQixzQkFBc0IsZUFBZSwyRUFBMkUsd0JBQXdCLE1BQU0scUJBQXFCLHNCQUFzQixnQ0FBZ0MsNkJBQTZCLFNBQVMsbUJBQW1CLHVFQUF1RSx3QkFBd0Isb0dBQW9HLHNCQUFzQix3QkFBd0IsZUFBZSxlQUFlLHVFQUF1RSx5QkFBeUIsOEZBQThGLHFCQUFxQixzQkFBc0IseUNBQXlDLDZCQUE2QixTQUFTLDRCQUE0QixlQUFlLHdGQUF3RixtQkFBbUIsTUFBTSxvSEFBb0gsSUFBSSxRQUFRLFVBQVUsYUFBYSxjQUFjLFNBQVMsVUFBVSxvQkFBb0Isa0NBQWtDLHNCQUFzQix1QkFBdUIsMEJBQTBCLGNBQWMsdUJBQXVCLHVCQUF1QiwyQkFBMkIsZUFBZSxlQUFlLG1CQUFtQixzQ0FBc0MsZUFBZSx1RUFBdUUsV0FBVyxtRkFBbUYsMkJBQTJCLFNBQVMsOENBQThDLGNBQWMscUJBQXFCLE1BQU0sa0JBQWtCLG9DQUFvQyxpQ0FBaUMsMEJBQTBCLGdCQUFnQixFQUFFLG9DQUFvQyx3QkFBd0IsNEJBQTRCLGlCQUFpQixHQUFHLFlBQVksc0JBQXNCLE1BQU0sc0hBQXNILHVCQUF1QixVQUFVLDRFQUE0RSxnQkFBZ0IsNkhBQTZILDJCQUEyQixxQkFBcUIsaUNBQWlDLGdEQUFnRCwwQkFBMEIsRUFBRSxHQUFHLGVBQWUsb0JBQW9CLFFBQVEsc0hBQXNILHdCQUF3Qix1RUFBdUUsRUFBRSxxQkFBcUIsNEJBQTRCLGtCQUFrQixFQUFFLHdCQUF3Qiw4QkFBOEIsdUJBQXVCLDJEQUEyRCwyQkFBMkIsNkNBQTZDLHdFQUF3RSx5QkFBeUIsRUFBRSw2SkFBNkosd0hBQXdILHNCQUFzQixhQUFhLDJDQUEyQyxtQkFBbUIsMkJBQTJCLFVBQVUscUJBQXFCLDRCQUE0QixlQUFlLFlBQVkscUJBQXFCLGlHQUFpRyxnQkFBZ0IsdUJBQXVCLGtFQUFrRSw4QkFBOEIsdUZBQXVGLFVBQVUsZUFBZSw2Q0FBNkMsd0lBQXdJLGlCQUFpQixnQ0FBZ0MsSUFBSSw0TUFBNE0sUUFBUSxJQUFJLDBDQUEwQyxTQUFTLGFBQWEsZ0JBQWdCLG1CQUFtQixpQkFBaUIsZ0JBQWdCLG9CQUFvQix5RUFBeUUsdUNBQXVDLEdBQUcsRUFBRSwrR0FBK0csMFBBQTBQLG9GQUFvRixpQkFBaUIsTUFBTSwrTEFBK0wsaUJBQWlCLHVCQUF1QixJQUFJLDBEQUEwRCxpQkFBaUIsRUFBRSx1QkFBdUIscUVBQXFFLElBQUksc0VBQXNFLG9CQUFvQix5SkFBeUosd0JBQXdCLHdEQUF3RCxpQ0FBaUMscUJBQXFCLG9EQUFvRCxvRkFBb0YsSUFBSSw4Q0FBOEMsU0FBUyxZQUFZLGdHQUFnRywyUUFBMlEsR0FBRyxnSEFBZ0gsY0FBYyxTQUFTLGNBQWMsU0FBUyxjQUFjLElBQUksdUJBQXVCLFdBQVcseUJBQXlCLFFBQVEsdUJBQXVCLHNDQUFzQyw4QkFBOEIsU0FBUyxpSEFBaUgsb0JBQW9CLGtDQUFrQywwQ0FBMEMsb0RBQW9ELDBCQUEwQixFQUFFLFNBQVMsU0FBUyx5QkFBeUIscUNBQXFDLE1BQU0sZ0lBQWdJLHdDQUF3QyxtR0FBbUcsc0NBQXNDLGtHQUFrRyw0REFBNEQsYUFBYSxrSUFBa0ksaVFBQWlRLDRCQUE0QixtREFBbUQsb0JBQW9CLG9DQUFvQyw0RUFBNEUsd0JBQXdCLDBIQUEwSCx5TUFBeU0sd0dBQXdHLGdEQUFnRCxpREFBaUQsc0JBQXNCLDBGQUEwRiw0Q0FBNEMsZUFBZSxtQkFBbUIsc0JBQXNCLDBFQUEwRSxzQ0FBc0MsNkNBQTZDLDJCQUEyQix1TEFBdUwsb0dBQW9HLDZEQUE2RCx3QkFBd0IsZ0RBQWdELHdEQUF3RCxTQUFTLDZFQUE2RSxhQUFhLEtBQUssSUFBSSxvSUFBb0ksa0JBQWtCLGtCQUFrQixFQUFFLGtDQUFrQywyQkFBMkIsSUFBSSx1QkFBdUIsMkNBQTJDLGtEQUFrRCxtREFBbUQsWUFBWSxtREFBbUQsaUJBQWlCLDhCQUE4QixrREFBa0QsR0FBRyxFQUFFLGlCQUFpQixxQ0FBcUMsVUFBVSxNQUFNLFlBQVksUUFBUSxtQkFBbUIsa0RBQWtELHdCQUF3QixPQUFPLG1CQUFtQixnREFBZ0QseUJBQXlCLFFBQVEsbUJBQW1CLDhFQUE4RSxzQkFBc0Isd0JBQXdCLGVBQWUseUJBQXlCLDhFQUE4RSwrQkFBK0Isa0RBQWtELHVCQUF1QixzREFBc0QsZ1lBQWdZLG9CQUFvQiw0SUFBNEkseUJBQXlCLG9FQUFvRSw0QkFBNEIseUJBQXlCLHVFQUF1RSxxQ0FBcUMseUJBQXlCLGlIQUFpSCxTQUFTLCtWQUErVixlQUFlLCtJQUErSSwwQkFBMEIsa0dBQWtHLGVBQWUsb0JBQW9CLDZDQUE2Qyw2Q0FBNkMsdUdBQXVHLGVBQWUscUJBQXFCLHdCQUF3Qix1QkFBdUIsMEJBQTBCLHFCQUFxQixRQUFRLDhKQUE4Six1QkFBdUIsOEJBQThCLFlBQVksdUZBQXVGLDJCQUEyQixHQUFHLEVBQUUscU5BQXFOLGlCQUFpQiwyRkFBMkYsZUFBZSwyREFBMkQsZUFBZSwyRkFBMkYsaUJBQWlCLG9CQUFvQixtQkFBbUIsMERBQTBELDRCQUE0QixpQ0FBaUMsSUFBSSw2QkFBNkIsMENBQTBDLGlCQUFpQixpQkFBaUIsK0JBQStCLDhHQUE4RyxxQkFBcUIsZ0JBQWdCLG1EQUFtRCxtRkFBbUYsY0FBYyw4Q0FBOEMsRUFBRSw4RkFBOEYsMENBQTBDLElBQUksa0ZBQWtGLHVEQUF1RCxJQUFJLDZMQUE2TCxTQUFTLG1CQUFtQixrQ0FBa0MsZUFBZSwySUFBMkksU0FBUyxVQUFVLDBCQUEwQixpQ0FBaUMsdUJBQXVCLDhEQUE4RCwwR0FBMEcsSUFBSSxrQkFBa0IsbURBQW1ELElBQUksa0JBQWtCLGFBQWEsOERBQThELHVCQUF1QixvQ0FBb0Msa0JBQWtCLGFBQWEsbUJBQW1CLG1GQUFtRixvQkFBb0Isc0NBQXNDLGVBQWUsbUJBQW1CLHFCQUFxQixvQkFBb0Isa0JBQWtCLGtCQUFrQiwwQkFBMEIsNERBQTRELCtFQUErRSxFQUFFLDBCQUEwQixtQkFBbUIscUNBQXFDLG9GQUFvRixFQUFFLG9CQUFvQixxQ0FBcUMsNkRBQTZELGlCQUFpQixnQ0FBZ0MsRUFBRSxtQkFBbUIscUNBQXFDLHNEQUFzRCxFQUFFLGtCQUFrQixxQ0FBcUMsa0VBQWtFLEVBQUUsa0JBQWtCLGNBQWMsa0JBQWtCLDZEQUE2RCxZQUFZLHFCQUFxQixzREFBc0QseUJBQXlCLEVBQUUsa0JBQWtCLDBCQUEwQixpQkFBaUIsbUJBQW1CLGlEQUFpRCxpRkFBaUYscUJBQXFCLElBQUksS0FBSyxJQUFJLHNCQUFzQixrREFBa0QsSUFBSSxXQUFXLDBCQUEwQiwwQkFBMEIsd0JBQXdCLFNBQVMscUNBQXFDLHNCQUFzQix1RUFBdUUsS0FBSyxVQUFVLHlHQUF5RyxlQUFlLG9CQUFvQix1Q0FBdUMsS0FBSyxpRUFBaUUsMEJBQTBCLEVBQUUsZ0VBQWdFLGtDQUFrQyxnREFBZ0QsaUNBQWlDLFlBQVksYUFBYSxNQUFNLG1DQUFtQyxjQUFjLFdBQVcsZUFBZSxVQUFVLDZDQUE2QyxjQUFjLHNCQUFzQixnQkFBZ0IsWUFBWSxXQUFXLFlBQVksVUFBVSx5Q0FBeUMsNEJBQTRCLHFMQUFxTCxjQUFjLGlDQUFpQyxnRUFBZ0UsNEpBQTRKLDZCQUE2QixhQUFhLDJCQUEyQixhQUFhLDBCQUEwQixhQUFhLCtCQUErQixhQUFhLDBCQUEwQixjQUFjLEdBQUcsR0FBRyxtQkFBbUIsc0JBQXNCLCtSQUErUixpQkFBaUIsT0FBTyxlQUFlLGlEQUFpRCxrQkFBa0IsZ0RBQWdELHdEQUF3RCxLQUFLLG1DQUFtQywwREFBMEQsZUFBZSxvQkFBb0IsZ0RBQWdELHVDQUF1QyxlQUFlLG9CQUFvQix1Q0FBdUMsbUJBQW1CLGlCQUFpQixnREFBZ0QseUJBQXlCLDhCQUE4Qix1Q0FBdUMsS0FBSyxJQUFJLDZSQUE2UixpR0FBaUcsbUJBQW1CLHVFQUF1RSxlQUFlLGVBQWUsU0FBUywyT0FBMk8sVUFBVSxVQUFVLFNBQVMsa0JBQWtCLE1BQU0sc0JBQXNCLHNCQUFzQixZQUFZLDBLQUEwSyxZQUFZLHlCQUF5QiwrQ0FBK0Msd0NBQXdDLGlIQUFpSCwrUkFBK1IsdUJBQXVCLGlCQUFpQixpTkFBaU4sMENBQTBDLGVBQWUsb0JBQW9CLGlJQUFpSSxpQkFBaUIsRUFBRSxxQkFBcUIsNEVBQTRFLDhOQUE4Tiw4REFBOEQsaUZBQWlGLGFBQWEsWUFBWSxzQ0FBc0MsUUFBUSxVQUFVLG9DQUFvQyxlQUFlLGlCQUFpQixtQkFBbUIsZ0JBQWdCLHVDQUF1QyxJQUFJLG9DQUFvQyxVQUFVLHdDQUF3QyxlQUFlLGtCQUFrQiw4QkFBOEIsWUFBWSxLQUFLLHFCQUFxQix1QkFBdUIsSUFBSSwrQkFBK0IsU0FBUyw0Q0FBNEMsMEJBQTBCLEVBQUUsdUJBQXVCLHdDQUF3Qyx5QkFBeUIsMENBQTBDLHdKQUF3SixnQkFBZ0IsOEJBQThCLDREQUE0RCxpQkFBaUIsZ0NBQWdDLDBTQUEwUyx3REFBd0QsVUFBVSxnQkFBZ0IsTUFBTSx3SUFBd0ksaUJBQWlCLG1MQUFtTCxpREFBaUQsZ0JBQWdCLDREQUE0RCxXQUFXLG1CQUFtQixTQUFTLG1CQUFtQiwrQkFBK0Isa0JBQWtCLHFDQUFxQyx1REFBdUQsY0FBYyxvSEFBb0gsY0FBYywrQkFBK0IsVUFBVSxnQkFBZ0IsaUJBQWlCLGFBQWEsVUFBVSxZQUFZLElBQUksOENBQThDLGtDQUFrQyxtQkFBbUIseUVBQXlFLElBQUksbUNBQW1DLG1CQUFtQiwyREFBMkQsbURBQW1ELHlHQUF5RyxnQkFBZ0IsbUNBQW1DLG9CQUFvQixvREFBb0QsRUFBRSxHQUFHLGlDQUFpQyx3REFBd0QsMENBQTBDLEtBQUssMkJBQTJCLGlEQUFpRCwwVEFBMFQsWUFBWSw0SEFBNEgsNkVBQTZFLFFBQVEsbUVBQW1FLFVBQVUsbURBQW1ELGdDQUFnQyw2QkFBNkIsMkVBQTJFLGlCQUFpQixjQUFjLHVJQUF1SSwwQkFBMEIsc0NBQXNDLFlBQVksbUJBQW1CLG9FQUFvRSxjQUFjLGVBQWUsY0FBYyxzR0FBc0csSUFBSSx1QkFBdUIsNkZBQTZGLGNBQWMsd0JBQXdCLHNCQUFzQixnQkFBZ0IsMEJBQTBCLHNIQUFzSCxtRUFBbUUsMEJBQTBCLGtCQUFrQiw4QkFBOEIsaUJBQWlCLFNBQVMsSUFBSSx1QkFBdUIsc0ZBQXNGLFlBQVksK0JBQStCLElBQUksMEhBQTBILDBMQUEwTCxpQ0FBaUMsS0FBSyx5QkFBeUIsVUFBVSxtQkFBbUIsNEJBQTRCLG1DQUFtQyxFQUFFLHVCQUF1QixnQ0FBZ0MseUJBQXlCLElBQUksdUVBQXVFLHlDQUF5QyxrREFBa0QsMEJBQTBCLHVDQUF1QyxLQUFLLGdFQUFnRSw0T0FBNE8sNERBQTRELEdBQUcsY0FBYyx5QkFBeUIsOERBQThELFVBQVUsUUFBUSwyQkFBMkIsdURBQXVELHlCQUF5QixPQUFPLHVDQUF1QyxxRUFBcUUsc0JBQXNCLGtCQUFrQixhQUFhLG9CQUFvQixvR0FBb0csNERBQTRELDhCQUE4QixxREFBcUQsZUFBZSxJQUFJLG1GQUFtRix5QkFBeUIsRUFBRSxvQkFBb0IsK0NBQStDLGlGQUFpRiw4RUFBOEUsSUFBSSxzRUFBc0UsUUFBUSxJQUFJLDhDQUE4QyxnQkFBZ0IsR0FBRyxnREFBZ0QsY0FBYyx3QkFBd0IsMEZBQTBGLFVBQVUseUVBQXlFLGVBQWUsVUFBVSxlQUFlLGFBQWEsa0JBQWtCLGVBQWUsd0JBQXdCLDhCQUE4QixtQ0FBbUMscUJBQXFCLGtCQUFrQixXQUFXLDBDQUEwQyxnQ0FBZ0Msd0JBQXdCLDhCQUE4Qix3Q0FBd0MsaUJBQWlCLHNCQUFzQixRQUFRLGNBQWMsK0JBQStCLDBCQUEwQix1RUFBdUUsd0JBQXdCLGtCQUFrQixtQkFBbUIsRUFBRSxZQUFZLGtHQUFrRyxtSkFBbUosR0FBRyw0QkFBNEIsYUFBYSxtQkFBbUIsNkNBQTZDLHdCQUF3Qiw0QkFBNEIscUJBQXFCLEdBQUcsWUFBWSxxQkFBcUIscUJBQXFCLHdXQUF3VyxZQUFZLE1BQU0sa0JBQWtCLDZDQUE2QyxjQUFjLG9EQUFvRCwwQkFBMEIsMEJBQTBCLDBEQUEwRCxNQUFNLG9CQUFvQixzREFBc0QsNkRBQTZELHlCQUF5QixzQkFBc0IsMEJBQTBCLCtEQUErRCxFQUFFLGdFQUFnRSxhQUFhLG1CQUFtQiw2Q0FBNkMsd0JBQXdCLDRCQUE0Qiw2QkFBNkIsR0FBRyxZQUFZLHFCQUFxQixxQkFBcUIsZ01BQWdNLFlBQVksVUFBVSxnQkFBZ0IsZ0NBQWdDLGdGQUFnRixVQUFVLHFDQUFxQyx3Q0FBd0MsZ0JBQWdCLG1CQUFtQix3REFBd0QsaUJBQWlCLG1CQUFtQiwrREFBK0QsaUpBQWlKLG1DQUFtQyxFQUFFLGVBQWUsaUNBQWlDLGVBQWUsbURBQW1ELGVBQWUsK0RBQStELGFBQWEscUJBQXFCLHNCQUFzQixxQ0FBcUMsMENBQTBDLEVBQUUsa0ZBQWtGLElBQUksa0RBQWtELHlDQUF5QyxZQUFZLHlCQUF5QixzQkFBc0IscUNBQXFDLDZDQUE2QyxFQUFFLGtEQUFrRCxrRkFBa0YsSUFBSSx3RUFBd0UseUNBQXlDLFlBQVksMkJBQTJCLGdEQUFnRCwrRkFBK0YsaURBQWlELHVCQUF1QixZQUFZLE1BQU0sc0JBQXNCLDREQUE0RCx5S0FBeUssRUFBRSxzQkFBc0IsWUFBWSxZQUFZLGdGQUFnRixVQUFVLEVBQUUsYUFBYSxhQUFhLGdCQUFnQixxQkFBcUIsd0RBQXdELE1BQU0sc0lBQXNJLHVCQUF1QixrSUFBa0ksRUFBRSxnTEFBZ0wsWUFBWSxVQUFVLFFBQVEsZ0JBQWdCLDZCQUE2QixnQ0FBZ0MsU0FBUyxnQkFBZ0IsNkZBQTZGLGtCQUFrQixJQUFJLHVHQUF1RywyQkFBMkIsVUFBVSxTQUFTLG1CQUFtQixnREFBZ0QsK0VBQStFLG9DQUFvQyx5Q0FBeUMsa0JBQWtCLGtCQUFrQixpRUFBaUUsOENBQThDLG1EQUFtRCxFQUFFLDRCQUE0Qix3REFBd0QscUJBQXFCLGtCQUFrQiwwQkFBMEIsMkdBQTJHLDBiQUEwYiw0Q0FBNEMsMkJBQTJCLHVEQUF1RCxFQUFFLDZCQUE2QixtRUFBbUUsSUFBSSxvR0FBb0csa0lBQWtJLDhUQUE4VCwwQkFBMEIsOEJBQThCLHNCQUFzQixFQUFFLDJCQUEyQixlQUFlLHNCQUFzQiw0QkFBNEIsMEJBQTBCLEVBQUUsOEJBQThCLGNBQWMsdUNBQXVDLHFCQUFxQixnQ0FBZ0MsZUFBZSxrQkFBa0IsNkNBQTZDLG9CQUFvQixpQkFBaUIsK0NBQStDLHFEQUFxRCxxQkFBcUIsaURBQWlELGtFQUFrRSxFQUFFLHdDQUF3Qyx1QkFBdUIsTUFBTSxzQ0FBc0MsSUFBSSxrREFBa0QsU0FBUyxTQUFTLHVGQUF1Riw4R0FBOEcscUJBQXFCLE1BQU0sMkNBQTJDLDRFQUE0RSxFQUFFLGtDQUFrQyx5Q0FBeUMsc0JBQXNCLDJCQUEyQixpQkFBaUIsd0VBQXdFLHVFQUF1RSx3QkFBd0IsRUFBRSwrQkFBK0IsbUJBQW1CLGNBQWMscUJBQXFCLHNDQUFzQywyQkFBMkIsMkJBQTJCLDhCQUE4Qiw2QkFBNkIsb0JBQW9CLGdCQUFnQiw2R0FBNkcsb0JBQW9CLG9CQUFvQix5REFBeUQsT0FBTyx3Q0FBd0MsR0FBRyx3Q0FBd0MsU0FBUyxFQUFFLDhLQUE4SyxNQUFNLDZDQUE2QyxnQkFBZ0IsZUFBZSxxQkFBcUIsZ0NBQWdDLHlDQUF5QywwR0FBMEcscUJBQXFCLFFBQVEsVUFBVSxjQUFjLE1BQU0sNkNBQTZDLGVBQWUsbUZBQW1GLElBQUksMENBQTBDLGlCQUFpQix5Q0FBeUMsMkNBQTJDLFlBQVksNkJBQTZCLG1CQUFtQix1Q0FBdUMsMkZBQTJGLHVDQUF1QyxhQUFhLE1BQU0sbUJBQW1CLEtBQUssWUFBWSxvQ0FBb0MsSUFBSSxNQUFNLFNBQVMsT0FBTyx3Q0FBd0MscUJBQXFCLGtCQUFrQix1QkFBdUIsaUVBQWlFLFlBQVksOElBQThJLHdCQUF3QixzR0FBc0csa0RBQWtELE1BQU0sbUNBQW1DLFNBQVMsT0FBTyxTQUFTLE9BQU8saUVBQWlFLE9BQU8sd0JBQXdCLFVBQVUsd0JBQXdCLFFBQVEsZUFBZSxxSUFBcUkseUJBQXlCLG1IQUFtSCxXQUFXLDRDQUE0QyxpQkFBaUIsMERBQTBELGFBQWEsNEVBQTRFLGNBQWMsbUJBQW1CLHlCQUF5Qix5REFBeUQsOERBQThELDJDQUEyQyx3Q0FBd0Msa0lBQWtJLEtBQUssS0FBSyxpQkFBaUIsMkNBQTJDLE1BQU0sTUFBTSxPQUFPLEtBQUssOENBQThDLHFCQUFxQixzQkFBc0Isa0NBQWtDLGdCQUFnQixnQ0FBZ0MseUVBQXlFLDhCQUE4QixvQ0FBb0Msd0JBQXdCLE1BQU0sZ0NBQWdDLGlDQUFpQyxZQUFZLG1CQUFtQixXQUFXLG1DQUFtQyxzTUFBc00sdUJBQXVCLElBQUksMEZBQTBGLFNBQVMsa0JBQWtCLGtIQUFrSCw2MkJBQTYyQiw2QkFBNkIsc0RBQXNELHFFQUFxRSxpRkFBaUYsNERBQTRELGlEQUFpRCxtQkFBbUIsYUFBYSxJQUFJLGlCQUFpQixTQUFTLGFBQWEsU0FBUywwQkFBMEIsb0JBQW9CLGtCQUFrQiw0b0JBQTRvQixTQUFTLHlCQUF5QiwyQkFBMkIseUJBQXlCLG1DQUFtQyxzQ0FBc0MsdUJBQXVCLG9EQUFvRCx5Q0FBeUMsMEJBQTBCLHlCQUF5QixlQUFlLDJFQUEyRSxFQUFFLGNBQWMsb0JBQW9CLE1BQU0scUpBQXFKLFdBQVcsZ0RBQWdELFNBQVMscUJBQXFCLHVCQUF1QixrQ0FBa0Msa0NBQWtDLHVCQUF1Qiw2QkFBNkIsa0NBQWtDLEVBQUUsa0JBQWtCLFdBQVcsNkJBQTZCLG9DQUFvQyxFQUFFLG9CQUFvQixrREFBa0QscUNBQXFDLFFBQVEsb0NBQW9DLGlDQUFpQyxvQ0FBb0MsbUVBQW1FLCtCQUErQixJQUFJLDRCQUE0QixZQUFZLFFBQVEsZUFBZSx5QkFBeUIsK0VBQStFLFFBQVEscUNBQXFDLG1CQUFtQixnQkFBZ0IsMkdBQTJHLDhJQUE4SSxzQ0FBc0MsY0FBYyxrQkFBa0IsdVJBQXVSLGtCQUFrQixFQUFFLG9CQUFvQiw4QkFBOEIsZ0hBQWdILDBDQUEwQyxPQUFPLEVBQUUsY0FBYyxJQUFJLG1DQUFtQyxTQUFTLGNBQWMsa0JBQWtCLFNBQVMsOEJBQThCLHNDQUFzQyxlQUFlLFNBQVMsbUdBQW1HLFdBQVcsaUNBQWlDLGFBQWEsMEJBQTBCLDJCQUEyQix1Q0FBdUMsNkRBQTZELHVDQUF1QyxrQkFBa0IsUUFBUSxPQUFPLG1CQUFtQixzQkFBc0Isa0NBQWtDLGdDQUFnQyx3REFBd0QsMkJBQTJCLGtCQUFrQixVQUFVLEVBQUUsaUNBQWlDLGFBQWEsMENBQTBDLG1DQUFtQyxxQkFBcUIsK0NBQStDLHdLQUF3SyxpUEFBaVAsNENBQTRDLDhDQUE4QyxZQUFZLHFCQUFxQixvSEFBb0gsV0FBVyxrQ0FBa0MsbURBQW1ELHdFQUF3RSwrQkFBK0IsK0JBQStCLGdDQUFnQyxVQUFVLDJRQUEyUSwyQkFBMkIsa0NBQWtDLHlIQUF5SCwyQ0FBMkMsbUJBQW1CLGtFQUFrRSwwQkFBMEIsa0JBQWtCLHNDQUFzQyxFQUFFLE9BQU8sbUdBQW1HLG9CQUFvQixxQkFBcUIsc0NBQXNDLG1DQUFtQyxrQkFBa0IsU0FBUyxXQUFXLDBCQUEwQixvREFBb0QsaVFBQWlRLHdIQUF3SCxjQUFjLG1CQUFtQixpRUFBaUUsNkJBQTZCLEVBQUUsa0JBQWtCLGtHQUFrRyxrREFBa0QsR0FBRyxjQUFjLHFCQUFxQixZQUFZLHVCQUF1QixjQUFjLDZEQUE2RCxLQUFLLHNFQUFzRSw0RkFBNEYsc0hBQXNILE9BQU8sc0ZBQXNGLHlCQUF5QiwyQkFBMkIsd0JBQXdCLHlEQUF5RCxhQUFhLEdBQUcsVUFBVSxpREFBaUQsZUFBZSx3QkFBd0Isb0JBQW9CLDhCQUE4QixNQUFNLDRFQUE0RSx5REFBeUQsd0JBQXdCLHNDQUFzQywrQ0FBK0MsMkRBQTJELEVBQUUsVUFBVSw4QkFBOEIsZUFBZSxRQUFRLHlDQUF5QyxlQUFlLHNCQUFzQix5RkFBeUYsOEJBQThCLE1BQU0sK1BBQStQLGtCQUFrQixFQUFFLDBOQUEwTixzQkFBc0IsK0RBQStELGVBQWUsb0JBQW9CLDRDQUE0QyxlQUFlLHFCQUFxQiwyQkFBMkIsc0JBQXNCLDBCQUEwQiw0QkFBNEIsd0JBQXdCLDRCQUE0QixvRUFBb0Usd0JBQXdCLFVBQVUsdUZBQXVGLG9EQUFvRCxrQ0FBa0MseUJBQXlCLDRCQUE0Qix1SkFBdUosZ0JBQWdCLDREQUE0RCxtSUFBc0UsU0FBUztBQUFBLHFHQUFFLHVCQUF1QixnQ0FBZ0MsMERBQTBELHVCQUF1QiIsImZpbGUiOiI0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBqUXVlcnkgdjMuMy4xIHwgKGMpIEpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IGpxdWVyeS5vcmcvbGljZW5zZSAqL1xuIWZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7XCJvYmplY3RcIj09dHlwZW9mIG1vZHVsZSYmXCJvYmplY3RcIj09dHlwZW9mIG1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWUuZG9jdW1lbnQ/dChlLCEwKTpmdW5jdGlvbihlKXtpZighZS5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoXCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50XCIpO3JldHVybiB0KGUpfTp0KGUpfShcInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49W10scj1lLmRvY3VtZW50LGk9T2JqZWN0LmdldFByb3RvdHlwZU9mLG89bi5zbGljZSxhPW4uY29uY2F0LHM9bi5wdXNoLHU9bi5pbmRleE9mLGw9e30sYz1sLnRvU3RyaW5nLGY9bC5oYXNPd25Qcm9wZXJ0eSxwPWYudG9TdHJpbmcsZD1wLmNhbGwoT2JqZWN0KSxoPXt9LGc9ZnVuY3Rpb24gZSh0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiZcIm51bWJlclwiIT10eXBlb2YgdC5ub2RlVHlwZX0seT1mdW5jdGlvbiBlKHQpe3JldHVybiBudWxsIT10JiZ0PT09dC53aW5kb3d9LHY9e3R5cGU6ITAsc3JjOiEwLG5vTW9kdWxlOiEwfTtmdW5jdGlvbiBtKGUsdCxuKXt2YXIgaSxvPSh0PXR8fHIpLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7aWYoby50ZXh0PWUsbilmb3IoaSBpbiB2KW5baV0mJihvW2ldPW5baV0pO3QuaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHgoZSl7cmV0dXJuIG51bGw9PWU/ZStcIlwiOlwib2JqZWN0XCI9PXR5cGVvZiBlfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2xbYy5jYWxsKGUpXXx8XCJvYmplY3RcIjp0eXBlb2YgZX12YXIgYj1cIjMuMy4xXCIsdz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgdy5mbi5pbml0KGUsdCl9LFQ9L15bXFxzXFx1RkVGRlxceEEwXSt8W1xcc1xcdUZFRkZcXHhBMF0rJC9nO3cuZm49dy5wcm90b3R5cGU9e2pxdWVyeTpcIjMuMy4xXCIsY29uc3RydWN0b3I6dyxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIG8uY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP28uY2FsbCh0aGlzKTplPDA/dGhpc1tlK3RoaXMubGVuZ3RoXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9dy5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHR9LGVhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIHcuZWFjaCh0aGlzLGUpfSxtYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcubWFwKHRoaXMsZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5jYWxsKHQsbix0KX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobj49MCYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDpzLHNvcnQ6bi5zb3J0LHNwbGljZTpuLnNwbGljZX0sdy5leHRlbmQ9dy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoXCJib29sZWFuXCI9PXR5cGVvZiBhJiYobD1hLGE9YXJndW1lbnRzW3NdfHx7fSxzKyspLFwib2JqZWN0XCI9PXR5cGVvZiBhfHxnKGEpfHwoYT17fSkscz09PXUmJihhPXRoaXMscy0tKTtzPHU7cysrKWlmKG51bGwhPShlPWFyZ3VtZW50c1tzXSkpZm9yKHQgaW4gZSluPWFbdF0sYSE9PShyPWVbdF0pJiYobCYmciYmKHcuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhpPyhpPSExLG89biYmQXJyYXkuaXNBcnJheShuKT9uOltdKTpvPW4mJncuaXNQbGFpbk9iamVjdChuKT9uOnt9LGFbdF09dy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LHcuZXh0ZW5kKHtleHBhbmRvOlwialF1ZXJ5XCIrKFwiMy4zLjFcIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cXEQvZyxcIlwiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fFwiW29iamVjdCBPYmplY3RdXCIhPT1jLmNhbGwoZSkpJiYoISh0PWkoZSkpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZihuPWYuY2FsbCh0LFwiY29uc3RydWN0b3JcIikmJnQuY29uc3RydWN0b3IpJiZwLmNhbGwobik9PT1kKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUpe20oZSl9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTA7aWYoQyhlKSl7Zm9yKG49ZS5sZW5ndGg7cjxuO3IrKylpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWt9ZWxzZSBmb3IociBpbiBlKWlmKCExPT09dC5jYWxsKGVbcl0scixlW3JdKSlicmVhaztyZXR1cm4gZX0sdHJpbTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT9cIlwiOihlK1wiXCIpLnJlcGxhY2UoVCxcIlwiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dHx8W107cmV0dXJuIG51bGwhPWUmJihDKE9iamVjdChlKSk/dy5tZXJnZShuLFwic3RyaW5nXCI9PXR5cGVvZiBlP1tlXTplKTpzLmNhbGwobixlKSksbn0saW5BcnJheTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG51bGw9PXQ/LTE6dS5jYWxsKHQsZSxuKX0sbWVyZ2U6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49K3QubGVuZ3RoLHI9MCxpPWUubGVuZ3RoO3I8bjtyKyspZVtpKytdPXRbcl07cmV0dXJuIGUubGVuZ3RoPWksZX0sZ3JlcDpmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByLGk9W10sbz0wLGE9ZS5sZW5ndGgscz0hbjtvPGE7bysrKShyPSF0KGVbb10sbykpIT09cyYmaS5wdXNoKGVbb10pO3JldHVybiBpfSxtYXA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbz0wLHM9W107aWYoQyhlKSlmb3Iocj1lLmxlbmd0aDtvPHI7bysrKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmcy5wdXNoKGkpO2Vsc2UgZm9yKG8gaW4gZSludWxsIT0oaT10KGVbb10sbyxuKSkmJnMucHVzaChpKTtyZXR1cm4gYS5hcHBseShbXSxzKX0sZ3VpZDoxLHN1cHBvcnQ6aH0pLFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKHcuZm5bU3ltYm9sLml0ZXJhdG9yXT1uW1N5bWJvbC5pdGVyYXRvcl0pLHcuZWFjaChcIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sXCIuc3BsaXQoXCIgXCIpLGZ1bmN0aW9uKGUsdCl7bFtcIltvYmplY3QgXCIrdCtcIl1cIl09dC50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gQyhlKXt2YXIgdD0hIWUmJlwibGVuZ3RoXCJpbiBlJiZlLmxlbmd0aCxuPXgoZSk7cmV0dXJuIWcoZSkmJiF5KGUpJiYoXCJhcnJheVwiPT09bnx8MD09PXR8fFwibnVtYmVyXCI9PXR5cGVvZiB0JiZ0PjAmJnQtMSBpbiBlKX12YXIgRT1mdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscyx1LGwsYyxmLHAsZCxoLGcseSx2LG0seCxiPVwic2l6emxlXCIrMSpuZXcgRGF0ZSx3PWUuZG9jdW1lbnQsVD0wLEM9MCxFPWFlKCksaz1hZSgpLFM9YWUoKSxEPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10JiYoZj0hMCksMH0sTj17fS5oYXNPd25Qcm9wZXJ0eSxBPVtdLGo9QS5wb3AscT1BLnB1c2gsTD1BLnB1c2gsSD1BLnNsaWNlLE89ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspaWYoZVtuXT09PXQpcmV0dXJuIG47cmV0dXJuLTF9LFA9XCJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZFwiLE09XCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiLFI9XCIoPzpcXFxcXFxcXC58W1xcXFx3LV18W15cXDAtXFxcXHhhMF0pK1wiLEk9XCJcXFxcW1wiK00rXCIqKFwiK1IrXCIpKD86XCIrTStcIiooWypeJHwhfl0/PSlcIitNK1wiKig/OicoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcInwoXCIrUitcIikpfClcIitNK1wiKlxcXFxdXCIsVz1cIjooXCIrUitcIikoPzpcXFxcKCgoJygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwiKXwoKD86XFxcXFxcXFwufFteXFxcXFxcXFwoKVtcXFxcXV18XCIrSStcIikqKXwuKilcXFxcKXwpXCIsJD1uZXcgUmVnRXhwKE0rXCIrXCIsXCJnXCIpLEI9bmV3IFJlZ0V4cChcIl5cIitNK1wiK3woKD86XnxbXlxcXFxcXFxcXSkoPzpcXFxcXFxcXC4pKilcIitNK1wiKyRcIixcImdcIiksRj1uZXcgUmVnRXhwKFwiXlwiK00rXCIqLFwiK00rXCIqXCIpLF89bmV3IFJlZ0V4cChcIl5cIitNK1wiKihbPit+XXxcIitNK1wiKVwiK00rXCIqXCIpLHo9bmV3IFJlZ0V4cChcIj1cIitNK1wiKihbXlxcXFxdJ1xcXCJdKj8pXCIrTStcIipcXFxcXVwiLFwiZ1wiKSxYPW5ldyBSZWdFeHAoVyksVT1uZXcgUmVnRXhwKFwiXlwiK1IrXCIkXCIpLFY9e0lEOm5ldyBSZWdFeHAoXCJeIyhcIitSK1wiKVwiKSxDTEFTUzpuZXcgUmVnRXhwKFwiXlxcXFwuKFwiK1IrXCIpXCIpLFRBRzpuZXcgUmVnRXhwKFwiXihcIitSK1wifFsqXSlcIiksQVRUUjpuZXcgUmVnRXhwKFwiXlwiK0kpLFBTRVVETzpuZXcgUmVnRXhwKFwiXlwiK1cpLENISUxEOm5ldyBSZWdFeHAoXCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXFxcKFwiK00rXCIqKGV2ZW58b2RkfCgoWystXXwpKFxcXFxkKilufClcIitNK1wiKig/OihbKy1dfClcIitNK1wiKihcXFxcZCspfCkpXCIrTStcIipcXFxcKXwpXCIsXCJpXCIpLGJvb2w6bmV3IFJlZ0V4cChcIl4oPzpcIitQK1wiKSRcIixcImlcIiksbmVlZHNDb250ZXh0Om5ldyBSZWdFeHAoXCJeXCIrTStcIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcXFwoXCIrTStcIiooKD86LVxcXFxkKT9cXFxcZCopXCIrTStcIipcXFxcKXwpKD89W14tXXwkKVwiLFwiaVwiKX0sRz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFk9L15oXFxkJC9pLFE9L15bXntdK1xce1xccypcXFtuYXRpdmUgXFx3LyxKPS9eKD86IyhbXFx3LV0rKXwoXFx3Kyl8XFwuKFtcXHctXSspKSQvLEs9L1srfl0vLFo9bmV3IFJlZ0V4cChcIlxcXFxcXFxcKFtcXFxcZGEtZl17MSw2fVwiK00rXCI/fChcIitNK1wiKXwuKVwiLFwiaWdcIiksZWU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVwiMHhcIit0LTY1NTM2O3JldHVybiByIT09cnx8bj90OnI8MD9TdHJpbmcuZnJvbUNoYXJDb2RlKHIrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUocj4+MTB8NTUyOTYsMTAyMyZyfDU2MzIwKX0sdGU9LyhbXFwwLVxceDFmXFx4N2ZdfF4tP1xcZCl8Xi0kfFteXFwwLVxceDFmXFx4N2YtXFx1RkZGRlxcdy1dL2csbmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9cIlxcMFwiPT09ZT9cIlxcdWZmZmRcIjplLnNsaWNlKDAsLTEpK1wiXFxcXFwiK2UuY2hhckNvZGVBdChlLmxlbmd0aC0xKS50b1N0cmluZygxNikrXCIgXCI6XCJcXFxcXCIrZX0scmU9ZnVuY3Rpb24oKXtwKCl9LGllPW1lKGZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZS5kaXNhYmxlZCYmKFwiZm9ybVwiaW4gZXx8XCJsYWJlbFwiaW4gZSl9LHtkaXI6XCJwYXJlbnROb2RlXCIsbmV4dDpcImxlZ2VuZFwifSk7dHJ5e0wuYXBwbHkoQT1ILmNhbGwody5jaGlsZE5vZGVzKSx3LmNoaWxkTm9kZXMpLEFbdy5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZSl7TD17YXBwbHk6QS5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtxLmFwcGx5KGUsSC5jYWxsKHQpKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aCxyPTA7d2hpbGUoZVtuKytdPXRbcisrXSk7ZS5sZW5ndGg9bi0xfX19ZnVuY3Rpb24gb2UoZSx0LHIsaSl7dmFyIG8scyxsLGMsZixoLHYsbT10JiZ0Lm93bmVyRG9jdW1lbnQsVD10P3Qubm9kZVR5cGU6OTtpZihyPXJ8fFtdLFwic3RyaW5nXCIhPXR5cGVvZiBlfHwhZXx8MSE9PVQmJjkhPT1UJiYxMSE9PVQpcmV0dXJuIHI7aWYoIWkmJigodD90Lm93bmVyRG9jdW1lbnR8fHQ6dykhPT1kJiZwKHQpLHQ9dHx8ZCxnKSl7aWYoMTEhPT1UJiYoZj1KLmV4ZWMoZSkpKWlmKG89ZlsxXSl7aWYoOT09PVQpe2lmKCEobD10LmdldEVsZW1lbnRCeUlkKG8pKSlyZXR1cm4gcjtpZihsLmlkPT09bylyZXR1cm4gci5wdXNoKGwpLHJ9ZWxzZSBpZihtJiYobD1tLmdldEVsZW1lbnRCeUlkKG8pKSYmeCh0LGwpJiZsLmlkPT09bylyZXR1cm4gci5wdXNoKGwpLHJ9ZWxzZXtpZihmWzJdKXJldHVybiBMLmFwcGx5KHIsdC5nZXRFbGVtZW50c0J5VGFnTmFtZShlKSkscjtpZigobz1mWzNdKSYmbi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZ0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEwuYXBwbHkocix0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUobykpLHJ9aWYobi5xc2EmJiFTW2UrXCIgXCJdJiYoIXl8fCF5LnRlc3QoZSkpKXtpZigxIT09VCltPXQsdj1lO2Vsc2UgaWYoXCJvYmplY3RcIiE9PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7KGM9dC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSk/Yz1jLnJlcGxhY2UodGUsbmUpOnQuc2V0QXR0cmlidXRlKFwiaWRcIixjPWIpLHM9KGg9YShlKSkubGVuZ3RoO3doaWxlKHMtLSloW3NdPVwiI1wiK2MrXCIgXCIrdmUoaFtzXSk7dj1oLmpvaW4oXCIsXCIpLG09Sy50ZXN0KGUpJiZnZSh0LnBhcmVudE5vZGUpfHx0fWlmKHYpdHJ5e3JldHVybiBMLmFwcGx5KHIsbS5xdWVyeVNlbGVjdG9yQWxsKHYpKSxyfWNhdGNoKGUpe31maW5hbGx5e2M9PT1iJiZ0LnJlbW92ZUF0dHJpYnV0ZShcImlkXCIpfX19cmV0dXJuIHUoZS5yZXBsYWNlKEIsXCIkMVwiKSx0LHIsaSl9ZnVuY3Rpb24gYWUoKXt2YXIgZT1bXTtmdW5jdGlvbiB0KG4saSl7cmV0dXJuIGUucHVzaChuK1wiIFwiKT5yLmNhY2hlTGVuZ3RoJiZkZWxldGUgdFtlLnNoaWZ0KCldLHRbbitcIiBcIl09aX1yZXR1cm4gdH1mdW5jdGlvbiBzZShlKXtyZXR1cm4gZVtiXT0hMCxlfWZ1bmN0aW9uIHVlKGUpe3ZhciB0PWQuY3JlYXRlRWxlbWVudChcImZpZWxkc2V0XCIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2goZSl7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIGxlKGUsdCl7dmFyIG49ZS5zcGxpdChcInxcIiksaT1uLmxlbmd0aDt3aGlsZShpLS0pci5hdHRySGFuZGxlW25baV1dPXR9ZnVuY3Rpb24gY2UoZSx0KXt2YXIgbj10JiZlLHI9biYmMT09PWUubm9kZVR5cGUmJjE9PT10Lm5vZGVUeXBlJiZlLnNvdXJjZUluZGV4LXQuc291cmNlSW5kZXg7aWYocilyZXR1cm4gcjtpZihuKXdoaWxlKG49bi5uZXh0U2libGluZylpZihuPT09dClyZXR1cm4tMTtyZXR1cm4gZT8xOi0xfWZ1bmN0aW9uIGZlKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm5cImlucHV0XCI9PT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJnQudHlwZT09PWV9fWZ1bmN0aW9uIHBlKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKFwiaW5wdXRcIj09PW58fFwiYnV0dG9uXCI9PT1uKSYmdC50eXBlPT09ZX19ZnVuY3Rpb24gZGUoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVyblwiZm9ybVwiaW4gdD90LnBhcmVudE5vZGUmJiExPT09dC5kaXNhYmxlZD9cImxhYmVsXCJpbiB0P1wibGFiZWxcImluIHQucGFyZW50Tm9kZT90LnBhcmVudE5vZGUuZGlzYWJsZWQ9PT1lOnQuZGlzYWJsZWQ9PT1lOnQuaXNEaXNhYmxlZD09PWV8fHQuaXNEaXNhYmxlZCE9PSFlJiZpZSh0KT09PWU6dC5kaXNhYmxlZD09PWU6XCJsYWJlbFwiaW4gdCYmdC5kaXNhYmxlZD09PWV9fWZ1bmN0aW9uIGhlKGUpe3JldHVybiBzZShmdW5jdGlvbih0KXtyZXR1cm4gdD0rdCxzZShmdW5jdGlvbihuLHIpe3ZhciBpLG89ZShbXSxuLmxlbmd0aCx0KSxhPW8ubGVuZ3RoO3doaWxlKGEtLSluW2k9b1thXV0mJihuW2ldPSEocltpXT1uW2ldKSl9KX0pfWZ1bmN0aW9uIGdlKGUpe3JldHVybiBlJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZX1uPW9lLnN1cHBvcnQ9e30sbz1vZS5pc1hNTD1mdW5jdGlvbihlKXt2YXIgdD1lJiYoZS5vd25lckRvY3VtZW50fHxlKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuISF0JiZcIkhUTUxcIiE9PXQubm9kZU5hbWV9LHA9b2Uuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsaSxhPWU/ZS5vd25lckRvY3VtZW50fHxlOnc7cmV0dXJuIGEhPT1kJiY5PT09YS5ub2RlVHlwZSYmYS5kb2N1bWVudEVsZW1lbnQ/KGQ9YSxoPWQuZG9jdW1lbnRFbGVtZW50LGc9IW8oZCksdyE9PWQmJihpPWQuZGVmYXVsdFZpZXcpJiZpLnRvcCE9PWkmJihpLmFkZEV2ZW50TGlzdGVuZXI/aS5hZGRFdmVudExpc3RlbmVyKFwidW5sb2FkXCIscmUsITEpOmkuYXR0YWNoRXZlbnQmJmkuYXR0YWNoRXZlbnQoXCJvbnVubG9hZFwiLHJlKSksbi5hdHRyaWJ1dGVzPXVlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNsYXNzTmFtZT1cImlcIiwhZS5nZXRBdHRyaWJ1dGUoXCJjbGFzc05hbWVcIil9KSxuLmdldEVsZW1lbnRzQnlUYWdOYW1lPXVlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGVuZENoaWxkKGQuY3JlYXRlQ29tbWVudChcIlwiKSksIWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCIqXCIpLmxlbmd0aH0pLG4uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1RLnRlc3QoZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxuLmdldEJ5SWQ9dWUoZnVuY3Rpb24oZSl7cmV0dXJuIGguYXBwZW5kQ2hpbGQoZSkuaWQ9YiwhZC5nZXRFbGVtZW50c0J5TmFtZXx8IWQuZ2V0RWxlbWVudHNCeU5hbWUoYikubGVuZ3RofSksbi5nZXRCeUlkPyhyLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoWixlZSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZShcImlkXCIpPT09dH19LHIuZmluZC5JRD1mdW5jdGlvbihlLHQpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0LmdldEVsZW1lbnRCeUlkJiZnKXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuP1tuXTpbXX19KTooci5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKFosZWUpO3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1cInVuZGVmaW5lZFwiIT10eXBlb2YgZS5nZXRBdHRyaWJ1dGVOb2RlJiZlLmdldEF0dHJpYnV0ZU5vZGUoXCJpZFwiKTtyZXR1cm4gbiYmbi52YWx1ZT09PXR9fSxyLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgdC5nZXRFbGVtZW50QnlJZCYmZyl7dmFyIG4scixpLG89dC5nZXRFbGVtZW50QnlJZChlKTtpZihvKXtpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoXCJpZFwiKSkmJm4udmFsdWU9PT1lKXJldHVybltvXTtpPXQuZ2V0RWxlbWVudHNCeU5hbWUoZSkscj0wO3doaWxlKG89aVtyKytdKWlmKChuPW8uZ2V0QXR0cmlidXRlTm9kZShcImlkXCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dfXJldHVybltdfX0pLHIuZmluZC5UQUc9bi5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihlLHQpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lP3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk6bi5xc2E/dC5xdWVyeVNlbGVjdG9yQWxsKGUpOnZvaWQgMH06ZnVuY3Rpb24oZSx0KXt2YXIgbixyPVtdLGk9MCxvPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk7aWYoXCIqXCI9PT1lKXt3aGlsZShuPW9baSsrXSkxPT09bi5ub2RlVHlwZSYmci5wdXNoKG4pO3JldHVybiByfXJldHVybiBvfSxyLmZpbmQuQ0xBU1M9bi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZmdW5jdGlvbihlLHQpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmcpcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKX0sdj1bXSx5PVtdLChuLnFzYT1RLnRlc3QoZC5xdWVyeVNlbGVjdG9yQWxsKSkmJih1ZShmdW5jdGlvbihlKXtoLmFwcGVuZENoaWxkKGUpLmlubmVySFRNTD1cIjxhIGlkPSdcIitiK1wiJz48L2E+PHNlbGVjdCBpZD0nXCIrYitcIi1cXHJcXFxcJyBtc2FsbG93Y2FwdHVyZT0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiLGUucXVlcnlTZWxlY3RvckFsbChcIlttc2FsbG93Y2FwdHVyZV49JyddXCIpLmxlbmd0aCYmeS5wdXNoKFwiWypeJF09XCIrTStcIiooPzonJ3xcXFwiXFxcIilcIiksZS5xdWVyeVNlbGVjdG9yQWxsKFwiW3NlbGVjdGVkXVwiKS5sZW5ndGh8fHkucHVzaChcIlxcXFxbXCIrTStcIiooPzp2YWx1ZXxcIitQK1wiKVwiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbaWR+PVwiK2IrXCItXVwiKS5sZW5ndGh8fHkucHVzaChcIn49XCIpLGUucXVlcnlTZWxlY3RvckFsbChcIjpjaGVja2VkXCIpLmxlbmd0aHx8eS5wdXNoKFwiOmNoZWNrZWRcIiksZS5xdWVyeVNlbGVjdG9yQWxsKFwiYSNcIitiK1wiKypcIikubGVuZ3RofHx5LnB1c2goXCIuIy4rWyt+XVwiKX0pLHVlKGZ1bmN0aW9uKGUpe2UuaW5uZXJIVE1MPVwiPGEgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT48c2VsZWN0IGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbi8+PC9zZWxlY3Q+XCI7dmFyIHQ9ZC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7dC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJoaWRkZW5cIiksZS5hcHBlbmRDaGlsZCh0KS5zZXRBdHRyaWJ1dGUoXCJuYW1lXCIsXCJEXCIpLGUucXVlcnlTZWxlY3RvckFsbChcIltuYW1lPWRdXCIpLmxlbmd0aCYmeS5wdXNoKFwibmFtZVwiK00rXCIqWypeJHwhfl0/PVwiKSwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKFwiOmVuYWJsZWRcIikubGVuZ3RoJiZ5LnB1c2goXCI6ZW5hYmxlZFwiLFwiOmRpc2FibGVkXCIpLGguYXBwZW5kQ2hpbGQoZSkuZGlzYWJsZWQ9ITAsMiE9PWUucXVlcnlTZWxlY3RvckFsbChcIjpkaXNhYmxlZFwiKS5sZW5ndGgmJnkucHVzaChcIjplbmFibGVkXCIsXCI6ZGlzYWJsZWRcIiksZS5xdWVyeVNlbGVjdG9yQWxsKFwiKiw6eFwiKSx5LnB1c2goXCIsLio6XCIpfSkpLChuLm1hdGNoZXNTZWxlY3Rvcj1RLnRlc3QobT1oLm1hdGNoZXN8fGgud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxoLm1vek1hdGNoZXNTZWxlY3Rvcnx8aC5vTWF0Y2hlc1NlbGVjdG9yfHxoLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJnVlKGZ1bmN0aW9uKGUpe24uZGlzY29ubmVjdGVkTWF0Y2g9bS5jYWxsKGUsXCIqXCIpLG0uY2FsbChlLFwiW3MhPScnXTp4XCIpLHYucHVzaChcIiE9XCIsVyl9KSx5PXkubGVuZ3RoJiZuZXcgUmVnRXhwKHkuam9pbihcInxcIikpLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKFwifFwiKSksdD1RLnRlc3QoaC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikseD10fHxRLnRlc3QoaC5jb250YWlucyk/ZnVuY3Rpb24oZSx0KXt2YXIgbj05PT09ZS5ub2RlVHlwZT9lLmRvY3VtZW50RWxlbWVudDplLHI9dCYmdC5wYXJlbnROb2RlO3JldHVybiBlPT09cnx8ISghcnx8MSE9PXIubm9kZVR5cGV8fCEobi5jb250YWlucz9uLmNvbnRhaW5zKHIpOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJjE2JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24ocikpKX06ZnVuY3Rpb24oZSx0KXtpZih0KXdoaWxlKHQ9dC5wYXJlbnROb2RlKWlmKHQ9PT1lKXJldHVybiEwO3JldHVybiExfSxEPXQ/ZnVuY3Rpb24oZSx0KXtpZihlPT09dClyZXR1cm4gZj0hMCwwO3ZhciByPSFlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSF0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiByfHwoMSYocj0oZS5vd25lckRvY3VtZW50fHxlKT09PSh0Lm93bmVyRG9jdW1lbnR8fHQpP2UuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk6MSl8fCFuLnNvcnREZXRhY2hlZCYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKT09PXI/ZT09PWR8fGUub3duZXJEb2N1bWVudD09PXcmJngodyxlKT8tMTp0PT09ZHx8dC5vd25lckRvY3VtZW50PT09dyYmeCh3LHQpPzE6Yz9PKGMsZSktTyhjLHQpOjA6NCZyPy0xOjEpfTpmdW5jdGlvbihlLHQpe2lmKGU9PT10KXJldHVybiBmPSEwLDA7dmFyIG4scj0wLGk9ZS5wYXJlbnROb2RlLG89dC5wYXJlbnROb2RlLGE9W2VdLHM9W3RdO2lmKCFpfHwhbylyZXR1cm4gZT09PWQ/LTE6dD09PWQ/MTppPy0xOm8/MTpjP08oYyxlKS1PKGMsdCk6MDtpZihpPT09bylyZXR1cm4gY2UoZSx0KTtuPWU7d2hpbGUobj1uLnBhcmVudE5vZGUpYS51bnNoaWZ0KG4pO249dDt3aGlsZShuPW4ucGFyZW50Tm9kZSlzLnVuc2hpZnQobik7d2hpbGUoYVtyXT09PXNbcl0pcisrO3JldHVybiByP2NlKGFbcl0sc1tyXSk6YVtyXT09PXc/LTE6c1tyXT09PXc/MTowfSxkKTpkfSxvZS5tYXRjaGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG9lKGUsbnVsbCxudWxsLHQpfSxvZS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oZSx0KXtpZigoZS5vd25lckRvY3VtZW50fHxlKSE9PWQmJnAoZSksdD10LnJlcGxhY2UoeixcIj0nJDEnXVwiKSxuLm1hdGNoZXNTZWxlY3RvciYmZyYmIVNbdCtcIiBcIl0mJighdnx8IXYudGVzdCh0KSkmJigheXx8IXkudGVzdCh0KSkpdHJ5e3ZhciByPW0uY2FsbChlLHQpO2lmKHJ8fG4uZGlzY29ubmVjdGVkTWF0Y2h8fGUuZG9jdW1lbnQmJjExIT09ZS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gcn1jYXRjaChlKXt9cmV0dXJuIG9lKHQsZCxudWxsLFtlXSkubGVuZ3RoPjB9LG9lLmNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUub3duZXJEb2N1bWVudHx8ZSkhPT1kJiZwKGUpLHgoZSx0KX0sb2UuYXR0cj1mdW5jdGlvbihlLHQpeyhlLm93bmVyRG9jdW1lbnR8fGUpIT09ZCYmcChlKTt2YXIgaT1yLmF0dHJIYW5kbGVbdC50b0xvd2VyQ2FzZSgpXSxvPWkmJk4uY2FsbChyLmF0dHJIYW5kbGUsdC50b0xvd2VyQ2FzZSgpKT9pKGUsdCwhZyk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1vP286bi5hdHRyaWJ1dGVzfHwhZz9lLmdldEF0dHJpYnV0ZSh0KToobz1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZvLnNwZWNpZmllZD9vLnZhbHVlOm51bGx9LG9lLmVzY2FwZT1mdW5jdGlvbihlKXtyZXR1cm4oZStcIlwiKS5yZXBsYWNlKHRlLG5lKX0sb2UuZXJyb3I9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKFwiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogXCIrZSl9LG9lLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQscj1bXSxpPTAsbz0wO2lmKGY9IW4uZGV0ZWN0RHVwbGljYXRlcyxjPSFuLnNvcnRTdGFibGUmJmUuc2xpY2UoMCksZS5zb3J0KEQpLGYpe3doaWxlKHQ9ZVtvKytdKXQ9PT1lW29dJiYoaT1yLnB1c2gobykpO3doaWxlKGktLSllLnNwbGljZShyW2ldLDEpfXJldHVybiBjPW51bGwsZX0saT1vZS5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49XCJcIixyPTAsbz1lLm5vZGVUeXBlO2lmKG8pe2lmKDE9PT1vfHw5PT09b3x8MTE9PT1vKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZS50ZXh0Q29udGVudClyZXR1cm4gZS50ZXh0Q29udGVudDtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpbis9aShlKX1lbHNlIGlmKDM9PT1vfHw0PT09bylyZXR1cm4gZS5ub2RlVmFsdWV9ZWxzZSB3aGlsZSh0PWVbcisrXSluKz1pKHQpO3JldHVybiBufSwocj1vZS5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpzZSxtYXRjaDpWLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7XCI+XCI6e2RpcjpcInBhcmVudE5vZGVcIixmaXJzdDohMH0sXCIgXCI6e2RpcjpcInBhcmVudE5vZGVcIn0sXCIrXCI6e2RpcjpcInByZXZpb3VzU2libGluZ1wiLGZpcnN0OiEwfSxcIn5cIjp7ZGlyOlwicHJldmlvdXNTaWJsaW5nXCJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS5yZXBsYWNlKFosZWUpLGVbM109KGVbM118fGVbNF18fGVbNV18fFwiXCIpLnJlcGxhY2UoWixlZSksXCJ+PVwiPT09ZVsyXSYmKGVbM109XCIgXCIrZVszXStcIiBcIiksZS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnRvTG93ZXJDYXNlKCksXCJudGhcIj09PWVbMV0uc2xpY2UoMCwzKT8oZVszXXx8b2UuZXJyb3IoZVswXSksZVs0XT0rKGVbNF0/ZVs1XSsoZVs2XXx8MSk6MiooXCJldmVuXCI9PT1lWzNdfHxcIm9kZFwiPT09ZVszXSkpLGVbNV09KyhlWzddK2VbOF18fFwib2RkXCI9PT1lWzNdKSk6ZVszXSYmb2UuZXJyb3IoZVswXSksZX0sUFNFVURPOmZ1bmN0aW9uKGUpe3ZhciB0LG49IWVbNl0mJmVbMl07cmV0dXJuIFYuQ0hJTEQudGVzdChlWzBdKT9udWxsOihlWzNdP2VbMl09ZVs0XXx8ZVs1XXx8XCJcIjpuJiZYLnRlc3QobikmJih0PWEobiwhMCkpJiYodD1uLmluZGV4T2YoXCIpXCIsbi5sZW5ndGgtdCktbi5sZW5ndGgpJiYoZVswXT1lWzBdLnNsaWNlKDAsdCksZVsyXT1uLnNsaWNlKDAsdCkpLGUuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoWixlZSkudG9Mb3dlckNhc2UoKTtyZXR1cm5cIipcIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXR9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1FW2UrXCIgXCJdO3JldHVybiB0fHwodD1uZXcgUmVnRXhwKFwiKF58XCIrTStcIilcIitlK1wiKFwiK00rXCJ8JClcIikpJiZFKGUsZnVuY3Rpb24oZSl7cmV0dXJuIHQudGVzdChcInN0cmluZ1wiPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHxcInVuZGVmaW5lZFwiIT10eXBlb2YgZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCIpfSl9LEFUVFI6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmdW5jdGlvbihyKXt2YXIgaT1vZS5hdHRyKHIsZSk7cmV0dXJuIG51bGw9PWk/XCIhPVwiPT09dDohdHx8KGkrPVwiXCIsXCI9XCI9PT10P2k9PT1uOlwiIT1cIj09PXQ/aSE9PW46XCJePVwiPT09dD9uJiYwPT09aS5pbmRleE9mKG4pOlwiKj1cIj09PXQ/biYmaS5pbmRleE9mKG4pPi0xOlwiJD1cIj09PXQ/biYmaS5zbGljZSgtbi5sZW5ndGgpPT09bjpcIn49XCI9PT10PyhcIiBcIitpLnJlcGxhY2UoJCxcIiBcIikrXCIgXCIpLmluZGV4T2Yobik+LTE6XCJ8PVwiPT09dCYmKGk9PT1ufHxpLnNsaWNlKDAsbi5sZW5ndGgrMSk9PT1uK1wiLVwiKSl9fSxDSElMRDpmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvPVwibnRoXCIhPT1lLnNsaWNlKDAsMyksYT1cImxhc3RcIiE9PWUuc2xpY2UoLTQpLHM9XCJvZi10eXBlXCI9PT10O3JldHVybiAxPT09ciYmMD09PWk/ZnVuY3Rpb24oZSl7cmV0dXJuISFlLnBhcmVudE5vZGV9OmZ1bmN0aW9uKHQsbix1KXt2YXIgbCxjLGYscCxkLGgsZz1vIT09YT9cIm5leHRTaWJsaW5nXCI6XCJwcmV2aW91c1NpYmxpbmdcIix5PXQucGFyZW50Tm9kZSx2PXMmJnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxtPSF1JiYhcyx4PSExO2lmKHkpe2lmKG8pe3doaWxlKGcpe3A9dDt3aGlsZShwPXBbZ10paWYocz9wLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT12OjE9PT1wLm5vZGVUeXBlKXJldHVybiExO2g9Zz1cIm9ubHlcIj09PWUmJiFoJiZcIm5leHRTaWJsaW5nXCJ9cmV0dXJuITB9aWYoaD1bYT95LmZpcnN0Q2hpbGQ6eS5sYXN0Q2hpbGRdLGEmJm0pe3g9KGQ9KGw9KGM9KGY9KHA9eSlbYl18fChwW2JdPXt9KSlbcC51bmlxdWVJRF18fChmW3AudW5pcXVlSURdPXt9KSlbZV18fFtdKVswXT09PVQmJmxbMV0pJiZsWzJdLHA9ZCYmeS5jaGlsZE5vZGVzW2RdO3doaWxlKHA9KytkJiZwJiZwW2ddfHwoeD1kPTApfHxoLnBvcCgpKWlmKDE9PT1wLm5vZGVUeXBlJiYrK3gmJnA9PT10KXtjW2VdPVtULGQseF07YnJlYWt9fWVsc2UgaWYobSYmKHg9ZD0obD0oYz0oZj0ocD10KVtiXXx8KHBbYl09e30pKVtwLnVuaXF1ZUlEXXx8KGZbcC51bmlxdWVJRF09e30pKVtlXXx8W10pWzBdPT09VCYmbFsxXSksITE9PT14KXdoaWxlKHA9KytkJiZwJiZwW2ddfHwoeD1kPTApfHxoLnBvcCgpKWlmKChzP3Aubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXY6MT09PXAubm9kZVR5cGUpJiYrK3gmJihtJiYoKGM9KGY9cFtiXXx8KHBbYl09e30pKVtwLnVuaXF1ZUlEXXx8KGZbcC51bmlxdWVJRF09e30pKVtlXT1bVCx4XSkscD09PXQpKWJyZWFrO3JldHVybih4LT1pKT09PXJ8fHglcj09MCYmeC9yPj0wfX19LFBTRVVETzpmdW5jdGlvbihlLHQpe3ZhciBuLGk9ci5wc2V1ZG9zW2VdfHxyLnNldEZpbHRlcnNbZS50b0xvd2VyQ2FzZSgpXXx8b2UuZXJyb3IoXCJ1bnN1cHBvcnRlZCBwc2V1ZG86IFwiK2UpO3JldHVybiBpW2JdP2kodCk6aS5sZW5ndGg+MT8obj1bZSxlLFwiXCIsdF0sci5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGUudG9Mb3dlckNhc2UoKSk/c2UoZnVuY3Rpb24oZSxuKXt2YXIgcixvPWkoZSx0KSxhPW8ubGVuZ3RoO3doaWxlKGEtLSllW3I9TyhlLG9bYV0pXT0hKG5bcl09b1thXSl9KTpmdW5jdGlvbihlKXtyZXR1cm4gaShlLDAsbil9KTppfX0scHNldWRvczp7bm90OnNlKGZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49W10scj1zKGUucmVwbGFjZShCLFwiJDFcIikpO3JldHVybiByW2JdP3NlKGZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBvLGE9cihlLG51bGwsaSxbXSkscz1lLmxlbmd0aDt3aGlsZShzLS0pKG89YVtzXSkmJihlW3NdPSEodFtzXT1vKSl9KTpmdW5jdGlvbihlLGksbyl7cmV0dXJuIHRbMF09ZSxyKHQsbnVsbCxvLG4pLHRbMF09bnVsbCwhbi5wb3AoKX19KSxoYXM6c2UoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBvZShlLHQpLmxlbmd0aD4wfX0pLGNvbnRhaW5zOnNlKGZ1bmN0aW9uKGUpe3JldHVybiBlPWUucmVwbGFjZShaLGVlKSxmdW5jdGlvbih0KXtyZXR1cm4odC50ZXh0Q29udGVudHx8dC5pbm5lclRleHR8fGkodCkpLmluZGV4T2YoZSk+LTF9fSksbGFuZzpzZShmdW5jdGlvbihlKXtyZXR1cm4gVS50ZXN0KGV8fFwiXCIpfHxvZS5lcnJvcihcInVuc3VwcG9ydGVkIGxhbmc6IFwiK2UpLGU9ZS5yZXBsYWNlKFosZWUpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24odCl7dmFyIG47ZG97aWYobj1nP3QubGFuZzp0LmdldEF0dHJpYnV0ZShcInhtbDpsYW5nXCIpfHx0LmdldEF0dHJpYnV0ZShcImxhbmdcIikpcmV0dXJuKG49bi50b0xvd2VyQ2FzZSgpKT09PWV8fDA9PT1uLmluZGV4T2YoZStcIi1cIil9d2hpbGUoKHQ9dC5wYXJlbnROb2RlKSYmMT09PXQubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbih0KXt2YXIgbj1lLmxvY2F0aW9uJiZlLmxvY2F0aW9uLmhhc2g7cmV0dXJuIG4mJm4uc2xpY2UoMSk9PT10LmlkfSxyb290OmZ1bmN0aW9uKGUpe3JldHVybiBlPT09aH0sZm9jdXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1kLmFjdGl2ZUVsZW1lbnQmJighZC5oYXNGb2N1c3x8ZC5oYXNGb2N1cygpKSYmISEoZS50eXBlfHxlLmhyZWZ8fH5lLnRhYkluZGV4KX0sZW5hYmxlZDpkZSghMSksZGlzYWJsZWQ6ZGUoITApLGNoZWNrZWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PXQmJiEhZS5jaGVja2VkfHxcIm9wdGlvblwiPT09dCYmISFlLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWUuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGUpe2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylpZihlLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihlKXtyZXR1cm4hci5wc2V1ZG9zLmVtcHR5KGUpfSxoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIFkudGVzdChlLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIEcudGVzdChlLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm5cImlucHV0XCI9PT10JiZcImJ1dHRvblwiPT09ZS50eXBlfHxcImJ1dHRvblwiPT09dH0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm5cImlucHV0XCI9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJlwidGV4dFwiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpKXx8XCJ0ZXh0XCI9PT10LnRvTG93ZXJDYXNlKCkpfSxmaXJzdDpoZShmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6aGUoZnVuY3Rpb24oZSx0KXtyZXR1cm5bdC0xXX0pLGVxOmhlKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm5bbjwwP24rdDpuXX0pLGV2ZW46aGUoZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MDtuPHQ7bis9MillLnB1c2gobik7cmV0dXJuIGV9KSxvZGQ6aGUoZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MTtuPHQ7bis9MillLnB1c2gobik7cmV0dXJuIGV9KSxsdDpoZShmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPW48MD9uK3Q6bjstLXI+PTA7KWUucHVzaChyKTtyZXR1cm4gZX0pLGd0OmhlKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDpuOysrcjx0OyllLnB1c2gocik7cmV0dXJuIGV9KX19KS5wc2V1ZG9zLm50aD1yLnBzZXVkb3MuZXE7Zm9yKHQgaW57cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pci5wc2V1ZG9zW3RdPWZlKHQpO2Zvcih0IGlue3N1Ym1pdDohMCxyZXNldDohMH0pci5wc2V1ZG9zW3RdPXBlKHQpO2Z1bmN0aW9uIHllKCl7fXllLnByb3RvdHlwZT1yLmZpbHRlcnM9ci5wc2V1ZG9zLHIuc2V0RmlsdGVycz1uZXcgeWUsYT1vZS50b2tlbml6ZT1mdW5jdGlvbihlLHQpe3ZhciBuLGksbyxhLHMsdSxsLGM9a1tlK1wiIFwiXTtpZihjKXJldHVybiB0PzA6Yy5zbGljZSgwKTtzPWUsdT1bXSxsPXIucHJlRmlsdGVyO3doaWxlKHMpe24mJiEoaT1GLmV4ZWMocykpfHwoaSYmKHM9cy5zbGljZShpWzBdLmxlbmd0aCl8fHMpLHUucHVzaChvPVtdKSksbj0hMSwoaT1fLmV4ZWMocykpJiYobj1pLnNoaWZ0KCksby5wdXNoKHt2YWx1ZTpuLHR5cGU6aVswXS5yZXBsYWNlKEIsXCIgXCIpfSkscz1zLnNsaWNlKG4ubGVuZ3RoKSk7Zm9yKGEgaW4gci5maWx0ZXIpIShpPVZbYV0uZXhlYyhzKSl8fGxbYV0mJiEoaT1sW2FdKGkpKXx8KG49aS5zaGlmdCgpLG8ucHVzaCh7dmFsdWU6bix0eXBlOmEsbWF0Y2hlczppfSkscz1zLnNsaWNlKG4ubGVuZ3RoKSk7aWYoIW4pYnJlYWt9cmV0dXJuIHQ/cy5sZW5ndGg6cz9vZS5lcnJvcihlKTprKGUsdSkuc2xpY2UoMCl9O2Z1bmN0aW9uIHZlKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj1cIlwiO3Q8bjt0Kyspcis9ZVt0XS52YWx1ZTtyZXR1cm4gcn1mdW5jdGlvbiBtZShlLHQsbil7dmFyIHI9dC5kaXIsaT10Lm5leHQsbz1pfHxyLGE9biYmXCJwYXJlbnROb2RlXCI9PT1vLHM9QysrO3JldHVybiB0LmZpcnN0P2Z1bmN0aW9uKHQsbixpKXt3aGlsZSh0PXRbcl0paWYoMT09PXQubm9kZVR5cGV8fGEpcmV0dXJuIGUodCxuLGkpO3JldHVybiExfTpmdW5jdGlvbih0LG4sdSl7dmFyIGwsYyxmLHA9W1Qsc107aWYodSl7d2hpbGUodD10W3JdKWlmKCgxPT09dC5ub2RlVHlwZXx8YSkmJmUodCxuLHUpKXJldHVybiEwfWVsc2Ugd2hpbGUodD10W3JdKWlmKDE9PT10Lm5vZGVUeXBlfHxhKWlmKGY9dFtiXXx8KHRbYl09e30pLGM9Zlt0LnVuaXF1ZUlEXXx8KGZbdC51bmlxdWVJRF09e30pLGkmJmk9PT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpdD10W3JdfHx0O2Vsc2V7aWYoKGw9Y1tvXSkmJmxbMF09PT1UJiZsWzFdPT09cylyZXR1cm4gcFsyXT1sWzJdO2lmKGNbb109cCxwWzJdPWUodCxuLHUpKXJldHVybiEwfXJldHVybiExfX1mdW5jdGlvbiB4ZShlKXtyZXR1cm4gZS5sZW5ndGg+MT9mdW5jdGlvbih0LG4scil7dmFyIGk9ZS5sZW5ndGg7d2hpbGUoaS0tKWlmKCFlW2ldKHQsbixyKSlyZXR1cm4hMTtyZXR1cm4hMH06ZVswXX1mdW5jdGlvbiBiZShlLHQsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKW9lKGUsdFtyXSxuKTtyZXR1cm4gbn1mdW5jdGlvbiB3ZShlLHQsbixyLGkpe2Zvcih2YXIgbyxhPVtdLHM9MCx1PWUubGVuZ3RoLGw9bnVsbCE9dDtzPHU7cysrKShvPWVbc10pJiYobiYmIW4obyxyLGkpfHwoYS5wdXNoKG8pLGwmJnQucHVzaChzKSkpO3JldHVybiBhfWZ1bmN0aW9uIFRlKGUsdCxuLHIsaSxvKXtyZXR1cm4gciYmIXJbYl0mJihyPVRlKHIpKSxpJiYhaVtiXSYmKGk9VGUoaSxvKSksc2UoZnVuY3Rpb24obyxhLHMsdSl7dmFyIGwsYyxmLHA9W10sZD1bXSxoPWEubGVuZ3RoLGc9b3x8YmUodHx8XCIqXCIscy5ub2RlVHlwZT9bc106cyxbXSkseT0hZXx8IW8mJnQ/Zzp3ZShnLHAsZSxzLHUpLHY9bj9pfHwobz9lOmh8fHIpP1tdOmE6eTtpZihuJiZuKHksdixzLHUpLHIpe2w9d2UodixkKSxyKGwsW10scyx1KSxjPWwubGVuZ3RoO3doaWxlKGMtLSkoZj1sW2NdKSYmKHZbZFtjXV09ISh5W2RbY11dPWYpKX1pZihvKXtpZihpfHxlKXtpZihpKXtsPVtdLGM9di5sZW5ndGg7d2hpbGUoYy0tKShmPXZbY10pJiZsLnB1c2goeVtjXT1mKTtpKG51bGwsdj1bXSxsLHUpfWM9di5sZW5ndGg7d2hpbGUoYy0tKShmPXZbY10pJiYobD1pP08obyxmKTpwW2NdKT4tMSYmKG9bbF09IShhW2xdPWYpKX19ZWxzZSB2PXdlKHY9PT1hP3Yuc3BsaWNlKGgsdi5sZW5ndGgpOnYpLGk/aShudWxsLGEsdix1KTpMLmFwcGx5KGEsdil9KX1mdW5jdGlvbiBDZShlKXtmb3IodmFyIHQsbixpLG89ZS5sZW5ndGgsYT1yLnJlbGF0aXZlW2VbMF0udHlwZV0scz1hfHxyLnJlbGF0aXZlW1wiIFwiXSx1PWE/MTowLGM9bWUoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fSxzLCEwKSxmPW1lKGZ1bmN0aW9uKGUpe3JldHVybiBPKHQsZSk+LTF9LHMsITApLHA9W2Z1bmN0aW9uKGUsbixyKXt2YXIgaT0hYSYmKHJ8fG4hPT1sKXx8KCh0PW4pLm5vZGVUeXBlP2MoZSxuLHIpOmYoZSxuLHIpKTtyZXR1cm4gdD1udWxsLGl9XTt1PG87dSsrKWlmKG49ci5yZWxhdGl2ZVtlW3VdLnR5cGVdKXA9W21lKHhlKHApLG4pXTtlbHNle2lmKChuPXIuZmlsdGVyW2VbdV0udHlwZV0uYXBwbHkobnVsbCxlW3VdLm1hdGNoZXMpKVtiXSl7Zm9yKGk9Kyt1O2k8bztpKyspaWYoci5yZWxhdGl2ZVtlW2ldLnR5cGVdKWJyZWFrO3JldHVybiBUZSh1PjEmJnhlKHApLHU+MSYmdmUoZS5zbGljZSgwLHUtMSkuY29uY2F0KHt2YWx1ZTpcIiBcIj09PWVbdS0yXS50eXBlP1wiKlwiOlwiXCJ9KSkucmVwbGFjZShCLFwiJDFcIiksbix1PGkmJkNlKGUuc2xpY2UodSxpKSksaTxvJiZDZShlPWUuc2xpY2UoaSkpLGk8byYmdmUoZSkpfXAucHVzaChuKX1yZXR1cm4geGUocCl9ZnVuY3Rpb24gRWUoZSx0KXt2YXIgbj10Lmxlbmd0aD4wLGk9ZS5sZW5ndGg+MCxvPWZ1bmN0aW9uKG8sYSxzLHUsYyl7dmFyIGYsaCx5LHY9MCxtPVwiMFwiLHg9byYmW10sYj1bXSx3PWwsQz1vfHxpJiZyLmZpbmQuVEFHKFwiKlwiLGMpLEU9VCs9bnVsbD09dz8xOk1hdGgucmFuZG9tKCl8fC4xLGs9Qy5sZW5ndGg7Zm9yKGMmJihsPWE9PT1kfHxhfHxjKTttIT09ayYmbnVsbCE9KGY9Q1ttXSk7bSsrKXtpZihpJiZmKXtoPTAsYXx8Zi5vd25lckRvY3VtZW50PT09ZHx8KHAoZikscz0hZyk7d2hpbGUoeT1lW2grK10paWYoeShmLGF8fGQscykpe3UucHVzaChmKTticmVha31jJiYoVD1FKX1uJiYoKGY9IXkmJmYpJiZ2LS0sbyYmeC5wdXNoKGYpKX1pZih2Kz1tLG4mJm0hPT12KXtoPTA7d2hpbGUoeT10W2grK10peSh4LGIsYSxzKTtpZihvKXtpZih2PjApd2hpbGUobS0tKXhbbV18fGJbbV18fChiW21dPWouY2FsbCh1KSk7Yj13ZShiKX1MLmFwcGx5KHUsYiksYyYmIW8mJmIubGVuZ3RoPjAmJnYrdC5sZW5ndGg+MSYmb2UudW5pcXVlU29ydCh1KX1yZXR1cm4gYyYmKFQ9RSxsPXcpLHh9O3JldHVybiBuP3NlKG8pOm99cmV0dXJuIHM9b2UuY29tcGlsZT1mdW5jdGlvbihlLHQpe3ZhciBuLHI9W10saT1bXSxvPVNbZStcIiBcIl07aWYoIW8pe3R8fCh0PWEoZSkpLG49dC5sZW5ndGg7d2hpbGUobi0tKShvPUNlKHRbbl0pKVtiXT9yLnB1c2gobyk6aS5wdXNoKG8pOyhvPVMoZSxFZShpLHIpKSkuc2VsZWN0b3I9ZX1yZXR1cm4gb30sdT1vZS5zZWxlY3Q9ZnVuY3Rpb24oZSx0LG4saSl7dmFyIG8sdSxsLGMsZixwPVwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUsZD0haSYmYShlPXAuc2VsZWN0b3J8fGUpO2lmKG49bnx8W10sMT09PWQubGVuZ3RoKXtpZigodT1kWzBdPWRbMF0uc2xpY2UoMCkpLmxlbmd0aD4yJiZcIklEXCI9PT0obD11WzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmZyYmci5yZWxhdGl2ZVt1WzFdLnR5cGVdKXtpZighKHQ9KHIuZmluZC5JRChsLm1hdGNoZXNbMF0ucmVwbGFjZShaLGVlKSx0KXx8W10pWzBdKSlyZXR1cm4gbjtwJiYodD10LnBhcmVudE5vZGUpLGU9ZS5zbGljZSh1LnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1vPVYubmVlZHNDb250ZXh0LnRlc3QoZSk/MDp1Lmxlbmd0aDt3aGlsZShvLS0pe2lmKGw9dVtvXSxyLnJlbGF0aXZlW2M9bC50eXBlXSlicmVhaztpZigoZj1yLmZpbmRbY10pJiYoaT1mKGwubWF0Y2hlc1swXS5yZXBsYWNlKFosZWUpLEsudGVzdCh1WzBdLnR5cGUpJiZnZSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKHUuc3BsaWNlKG8sMSksIShlPWkubGVuZ3RoJiZ2ZSh1KSkpcmV0dXJuIEwuYXBwbHkobixpKSxuO2JyZWFrfX19cmV0dXJuKHB8fHMoZSxkKSkoaSx0LCFnLG4sIXR8fEsudGVzdChlKSYmZ2UodC5wYXJlbnROb2RlKXx8dCksbn0sbi5zb3J0U3RhYmxlPWIuc3BsaXQoXCJcIikuc29ydChEKS5qb2luKFwiXCIpPT09YixuLmRldGVjdER1cGxpY2F0ZXM9ISFmLHAoKSxuLnNvcnREZXRhY2hlZD11ZShmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQuY3JlYXRlRWxlbWVudChcImZpZWxkc2V0XCIpKX0pLHVlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD1cIjxhIGhyZWY9JyMnPjwvYT5cIixcIiNcIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpfSl8fGxlKFwidHlwZXxocmVmfGhlaWdodHx3aWR0aFwiLGZ1bmN0aW9uKGUsdCxuKXtpZighbilyZXR1cm4gZS5nZXRBdHRyaWJ1dGUodCxcInR5cGVcIj09PXQudG9Mb3dlckNhc2UoKT8xOjIpfSksbi5hdHRyaWJ1dGVzJiZ1ZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9XCI8aW5wdXQvPlwiLGUuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiLFwiXCIpLFwiXCI9PT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKFwidmFsdWVcIil9KXx8bGUoXCJ2YWx1ZVwiLGZ1bmN0aW9uKGUsdCxuKXtpZighbiYmXCJpbnB1dFwiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiBlLmRlZmF1bHRWYWx1ZX0pLHVlKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lLmdldEF0dHJpYnV0ZShcImRpc2FibGVkXCIpfSl8fGxlKFAsZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKCFuKXJldHVybiEwPT09ZVt0XT90LnRvTG93ZXJDYXNlKCk6KHI9ZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKSYmci5zcGVjaWZpZWQ/ci52YWx1ZTpudWxsfSksb2V9KGUpO3cuZmluZD1FLHcuZXhwcj1FLnNlbGVjdG9ycyx3LmV4cHJbXCI6XCJdPXcuZXhwci5wc2V1ZG9zLHcudW5pcXVlU29ydD13LnVuaXF1ZT1FLnVuaXF1ZVNvcnQsdy50ZXh0PUUuZ2V0VGV4dCx3LmlzWE1MRG9jPUUuaXNYTUwsdy5jb250YWlucz1FLmNvbnRhaW5zLHcuZXNjYXBlU2VsZWN0b3I9RS5lc2NhcGU7dmFyIGs9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLGk9dm9pZCAwIT09bjt3aGlsZSgoZT1lW3RdKSYmOSE9PWUubm9kZVR5cGUpaWYoMT09PWUubm9kZVR5cGUpe2lmKGkmJncoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxTPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxEPXcuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gTihlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9dmFyIEE9L148KFthLXpdW15cXC9cXDA+OlxceDIwXFx0XFxyXFxuXFxmXSopW1xceDIwXFx0XFxyXFxuXFxmXSpcXC8/Pig/OjxcXC9cXDE+fCkkL2k7ZnVuY3Rpb24gaihlLHQsbil7cmV0dXJuIGcodCk/dy5ncmVwKGUsZnVuY3Rpb24oZSxyKXtyZXR1cm4hIXQuY2FsbChlLHIsZSkhPT1ufSk6dC5ub2RlVHlwZT93LmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PXQhPT1ufSk6XCJzdHJpbmdcIiE9dHlwZW9mIHQ/dy5ncmVwKGUsZnVuY3Rpb24oZSl7cmV0dXJuIHUuY2FsbCh0LGUpPi0xIT09bn0pOncuZmlsdGVyKHQsZSxuKX13LmZpbHRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9XCI6bm90KFwiK2UrXCIpXCIpLDE9PT10Lmxlbmd0aCYmMT09PXIubm9kZVR5cGU/dy5maW5kLm1hdGNoZXNTZWxlY3RvcihyLGUpP1tyXTpbXTp3LmZpbmQubWF0Y2hlcyhlLHcuZ3JlcCh0LGZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZX0pKX0sdy5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyPXRoaXMubGVuZ3RoLGk9dGhpcztpZihcInN0cmluZ1wiIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wdXNoU3RhY2sodyhlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO3Q8cjt0KyspaWYody5jb250YWlucyhpW3RdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihuPXRoaXMucHVzaFN0YWNrKFtdKSx0PTA7dDxyO3QrKyl3LmZpbmQoZSxpW3RdLG4pO3JldHVybiByPjE/dy51bmlxdWVTb3J0KG4pOm59LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhaih0aGlzLFwic3RyaW5nXCI9PXR5cGVvZiBlJiZELnRlc3QoZSk/dyhlKTplfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBxLEw9L14oPzpcXHMqKDxbXFx3XFxXXSs+KVtePl0qfCMoW1xcdy1dKykpJC87KHcuZm4uaW5pdD1mdW5jdGlvbihlLHQsbil7dmFyIGksbztpZighZSlyZXR1cm4gdGhpcztpZihuPW58fHEsXCJzdHJpbmdcIj09dHlwZW9mIGUpe2lmKCEoaT1cIjxcIj09PWVbMF0mJlwiPlwiPT09ZVtlLmxlbmd0aC0xXSYmZS5sZW5ndGg+PTM/W251bGwsZSxudWxsXTpMLmV4ZWMoZSkpfHwhaVsxXSYmdClyZXR1cm4hdHx8dC5qcXVlcnk/KHR8fG4pLmZpbmQoZSk6dGhpcy5jb25zdHJ1Y3Rvcih0KS5maW5kKGUpO2lmKGlbMV0pe2lmKHQ9dCBpbnN0YW5jZW9mIHc/dFswXTp0LHcubWVyZ2UodGhpcyx3LnBhcnNlSFRNTChpWzFdLHQmJnQubm9kZVR5cGU/dC5vd25lckRvY3VtZW50fHx0OnIsITApKSxBLnRlc3QoaVsxXSkmJncuaXNQbGFpbk9iamVjdCh0KSlmb3IoaSBpbiB0KWcodGhpc1tpXSk/dGhpc1tpXSh0W2ldKTp0aGlzLmF0dHIoaSx0W2ldKTtyZXR1cm4gdGhpc31yZXR1cm4obz1yLmdldEVsZW1lbnRCeUlkKGlbMl0pKSYmKHRoaXNbMF09byx0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzWzBdPWUsdGhpcy5sZW5ndGg9MSx0aGlzKTpnKGUpP3ZvaWQgMCE9PW4ucmVhZHk/bi5yZWFkeShlKTplKHcpOncubWFrZUFycmF5KGUsdGhpcyl9KS5wcm90b3R5cGU9dy5mbixxPXcocik7dmFyIEg9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sTz17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTt3LmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGUpe3ZhciB0PXcoZSx0aGlzKSxuPXQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bjtlKyspaWYody5jb250YWlucyh0aGlzLHRbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTAsaT10aGlzLmxlbmd0aCxvPVtdLGE9XCJzdHJpbmdcIiE9dHlwZW9mIGUmJncoZSk7aWYoIUQudGVzdChlKSlmb3IoO3I8aTtyKyspZm9yKG49dGhpc1tyXTtuJiZuIT09dDtuPW4ucGFyZW50Tm9kZSlpZihuLm5vZGVUeXBlPDExJiYoYT9hLmluZGV4KG4pPi0xOjE9PT1uLm5vZGVUeXBlJiZ3LmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sZSkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubGVuZ3RoPjE/dy51bmlxdWVTb3J0KG8pOm8pfSxpbmRleDpmdW5jdGlvbihlKXtyZXR1cm4gZT9cInN0cmluZ1wiPT10eXBlb2YgZT91LmNhbGwodyhlKSx0aGlzWzBdKTp1LmNhbGwodGhpcyxlLmpxdWVyeT9lWzBdOmUpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcudW5pcXVlU29ydCh3Lm1lcmdlKHRoaXMuZ2V0KCksdyhlLHQpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFkZChudWxsPT1lP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGUpKX19KTtmdW5jdGlvbiBQKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX13LmVhY2goe3BhcmVudDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJjExIT09dC5ub2RlVHlwZT90Om51bGx9LHBhcmVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSxcInBhcmVudE5vZGVcIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGsoZSxcInBhcmVudE5vZGVcIixuKX0sbmV4dDpmdW5jdGlvbihlKXtyZXR1cm4gUChlLFwibmV4dFNpYmxpbmdcIil9LHByZXY6ZnVuY3Rpb24oZSl7cmV0dXJuIFAoZSxcInByZXZpb3VzU2libGluZ1wiKX0sbmV4dEFsbDpmdW5jdGlvbihlKXtyZXR1cm4gayhlLFwibmV4dFNpYmxpbmdcIil9LHByZXZBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIGsoZSxcInByZXZpb3VzU2libGluZ1wiKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gayhlLFwibmV4dFNpYmxpbmdcIixuKX0scHJldlVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gayhlLFwicHJldmlvdXNTaWJsaW5nXCIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKGUpe3JldHVybiBTKChlLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGUpfSxjaGlsZHJlbjpmdW5jdGlvbihlKXtyZXR1cm4gUyhlLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihlKXtyZXR1cm4gTihlLFwiaWZyYW1lXCIpP2UuY29udGVudERvY3VtZW50OihOKGUsXCJ0ZW1wbGF0ZVwiKSYmKGU9ZS5jb250ZW50fHxlKSx3Lm1lcmdlKFtdLGUuY2hpbGROb2RlcykpfX0sZnVuY3Rpb24oZSx0KXt3LmZuW2VdPWZ1bmN0aW9uKG4scil7dmFyIGk9dy5tYXAodGhpcyx0LG4pO3JldHVyblwiVW50aWxcIiE9PWUuc2xpY2UoLTUpJiYocj1uKSxyJiZcInN0cmluZ1wiPT10eXBlb2YgciYmKGk9dy5maWx0ZXIocixpKSksdGhpcy5sZW5ndGg+MSYmKE9bZV18fHcudW5pcXVlU29ydChpKSxILnRlc3QoZSkmJmkucmV2ZXJzZSgpKSx0aGlzLnB1c2hTdGFjayhpKX19KTt2YXIgTT0vW15cXHgyMFxcdFxcclxcblxcZl0rL2c7ZnVuY3Rpb24gUihlKXt2YXIgdD17fTtyZXR1cm4gdy5lYWNoKGUubWF0Y2goTSl8fFtdLGZ1bmN0aW9uKGUsbil7dFtuXT0hMH0pLHR9dy5DYWxsYmFja3M9ZnVuY3Rpb24oZSl7ZT1cInN0cmluZ1wiPT10eXBlb2YgZT9SKGUpOncuZXh0ZW5kKHt9LGUpO3ZhciB0LG4scixpLG89W10sYT1bXSxzPS0xLHU9ZnVuY3Rpb24oKXtmb3IoaT1pfHxlLm9uY2Uscj10PSEwO2EubGVuZ3RoO3M9LTEpe249YS5zaGlmdCgpO3doaWxlKCsrczxvLmxlbmd0aCkhMT09PW9bc10uYXBwbHkoblswXSxuWzFdKSYmZS5zdG9wT25GYWxzZSYmKHM9by5sZW5ndGgsbj0hMSl9ZS5tZW1vcnl8fChuPSExKSx0PSExLGkmJihvPW4/W106XCJcIil9LGw9e2FkZDpmdW5jdGlvbigpe3JldHVybiBvJiYobiYmIXQmJihzPW8ubGVuZ3RoLTEsYS5wdXNoKG4pKSxmdW5jdGlvbiB0KG4pe3cuZWFjaChuLGZ1bmN0aW9uKG4scil7ZyhyKT9lLnVuaXF1ZSYmbC5oYXMocil8fG8ucHVzaChyKTpyJiZyLmxlbmd0aCYmXCJzdHJpbmdcIiE9PXgocikmJnQocil9KX0oYXJndW1lbnRzKSxuJiYhdCYmdSgpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdy5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbihlLHQpe3ZhciBuO3doaWxlKChuPXcuaW5BcnJheSh0LG8sbikpPi0xKW8uc3BsaWNlKG4sMSksbjw9cyYmcy0tfSksdGhpc30saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBlP3cuaW5BcnJheShlLG8pPi0xOm8ubGVuZ3RoPjB9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIG8mJihvPVtdKSx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGk9YT1bXSxvPW49XCJcIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFvfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGk9YT1bXSxufHx0fHwobz1uPVwiXCIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhaX0sZmlyZVdpdGg6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gaXx8KG49W2UsKG49bnx8W10pLnNsaWNlP24uc2xpY2UoKTpuXSxhLnB1c2gobiksdHx8dSgpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGwuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFyfX07cmV0dXJuIGx9O2Z1bmN0aW9uIEkoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gVyhlKXt0aHJvdyBlfWZ1bmN0aW9uICQoZSx0LG4scil7dmFyIGk7dHJ5e2UmJmcoaT1lLnByb21pc2UpP2kuY2FsbChlKS5kb25lKHQpLmZhaWwobik6ZSYmZyhpPWUudGhlbik/aS5jYWxsKGUsdCxuKTp0LmFwcGx5KHZvaWQgMCxbZV0uc2xpY2UocikpfWNhdGNoKGUpe24uYXBwbHkodm9pZCAwLFtlXSl9fXcuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbih0KXt2YXIgbj1bW1wibm90aWZ5XCIsXCJwcm9ncmVzc1wiLHcuQ2FsbGJhY2tzKFwibWVtb3J5XCIpLHcuQ2FsbGJhY2tzKFwibWVtb3J5XCIpLDJdLFtcInJlc29sdmVcIixcImRvbmVcIix3LkNhbGxiYWNrcyhcIm9uY2UgbWVtb3J5XCIpLHcuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksMCxcInJlc29sdmVkXCJdLFtcInJlamVjdFwiLFwiZmFpbFwiLHcuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksdy5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKSwxLFwicmVqZWN0ZWRcIl1dLHI9XCJwZW5kaW5nXCIsaT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIG8uZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSxcImNhdGNoXCI6ZnVuY3Rpb24oZSl7cmV0dXJuIGkudGhlbihudWxsLGUpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzO3JldHVybiB3LkRlZmVycmVkKGZ1bmN0aW9uKHQpe3cuZWFjaChuLGZ1bmN0aW9uKG4scil7dmFyIGk9ZyhlW3JbNF1dKSYmZVtyWzRdXTtvW3JbMV1dKGZ1bmN0aW9uKCl7dmFyIGU9aSYmaS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZSYmZyhlLnByb21pc2UpP2UucHJvbWlzZSgpLnByb2dyZXNzKHQubm90aWZ5KS5kb25lKHQucmVzb2x2ZSkuZmFpbCh0LnJlamVjdCk6dFtyWzBdK1wiV2l0aFwiXSh0aGlzLGk/W2VdOmFyZ3VtZW50cyl9KX0pLGU9bnVsbH0pLnByb21pc2UoKX0sdGhlbjpmdW5jdGlvbih0LHIsaSl7dmFyIG89MDtmdW5jdGlvbiBhKHQsbixyLGkpe3JldHVybiBmdW5jdGlvbigpe3ZhciBzPXRoaXMsdT1hcmd1bWVudHMsbD1mdW5jdGlvbigpe3ZhciBlLGw7aWYoISh0PG8pKXtpZigoZT1yLmFwcGx5KHMsdSkpPT09bi5wcm9taXNlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvblwiKTtsPWUmJihcIm9iamVjdFwiPT10eXBlb2YgZXx8XCJmdW5jdGlvblwiPT10eXBlb2YgZSkmJmUudGhlbixnKGwpP2k/bC5jYWxsKGUsYShvLG4sSSxpKSxhKG8sbixXLGkpKToobysrLGwuY2FsbChlLGEobyxuLEksaSksYShvLG4sVyxpKSxhKG8sbixJLG4ubm90aWZ5V2l0aCkpKToociE9PUkmJihzPXZvaWQgMCx1PVtlXSksKGl8fG4ucmVzb2x2ZVdpdGgpKHMsdSkpfX0sYz1pP2w6ZnVuY3Rpb24oKXt0cnl7bCgpfWNhdGNoKGUpe3cuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayYmdy5EZWZlcnJlZC5leGNlcHRpb25Ib29rKGUsYy5zdGFja1RyYWNlKSx0KzE+PW8mJihyIT09VyYmKHM9dm9pZCAwLHU9W2VdKSxuLnJlamVjdFdpdGgocyx1KSl9fTt0P2MoKToody5EZWZlcnJlZC5nZXRTdGFja0hvb2smJihjLnN0YWNrVHJhY2U9dy5EZWZlcnJlZC5nZXRTdGFja0hvb2soKSksZS5zZXRUaW1lb3V0KGMpKX19cmV0dXJuIHcuRGVmZXJyZWQoZnVuY3Rpb24oZSl7blswXVszXS5hZGQoYSgwLGUsZyhpKT9pOkksZS5ub3RpZnlXaXRoKSksblsxXVszXS5hZGQoYSgwLGUsZyh0KT90OkkpKSxuWzJdWzNdLmFkZChhKDAsZSxnKHIpP3I6VykpfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lP3cuZXh0ZW5kKGUsaSk6aX19LG89e307cmV0dXJuIHcuZWFjaChuLGZ1bmN0aW9uKGUsdCl7dmFyIGE9dFsyXSxzPXRbNV07aVt0WzFdXT1hLmFkZCxzJiZhLmFkZChmdW5jdGlvbigpe3I9c30sblszLWVdWzJdLmRpc2FibGUsblszLWVdWzNdLmRpc2FibGUsblswXVsyXS5sb2NrLG5bMF1bM10ubG9jayksYS5hZGQodFszXS5maXJlKSxvW3RbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIG9bdFswXStcIldpdGhcIl0odGhpcz09PW8/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxvW3RbMF0rXCJXaXRoXCJdPWEuZmlyZVdpdGh9KSxpLnByb21pc2UobyksdCYmdC5jYWxsKG8sbyksb30sd2hlbjpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49dCxyPUFycmF5KG4pLGk9by5jYWxsKGFyZ3VtZW50cyksYT13LkRlZmVycmVkKCkscz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7cltlXT10aGlzLGlbZV09YXJndW1lbnRzLmxlbmd0aD4xP28uY2FsbChhcmd1bWVudHMpOm4sLS10fHxhLnJlc29sdmVXaXRoKHIsaSl9fTtpZih0PD0xJiYoJChlLGEuZG9uZShzKG4pKS5yZXNvbHZlLGEucmVqZWN0LCF0KSxcInBlbmRpbmdcIj09PWEuc3RhdGUoKXx8ZyhpW25dJiZpW25dLnRoZW4pKSlyZXR1cm4gYS50aGVuKCk7d2hpbGUobi0tKSQoaVtuXSxzKG4pLGEucmVqZWN0KTtyZXR1cm4gYS5wcm9taXNlKCl9fSk7dmFyIEI9L14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87dy5EZWZlcnJlZC5leGNlcHRpb25Ib29rPWZ1bmN0aW9uKHQsbil7ZS5jb25zb2xlJiZlLmNvbnNvbGUud2FybiYmdCYmQi50ZXN0KHQubmFtZSkmJmUuY29uc29sZS53YXJuKFwialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogXCIrdC5tZXNzYWdlLHQuc3RhY2ssbil9LHcucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24odCl7ZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgdH0pfTt2YXIgRj13LkRlZmVycmVkKCk7dy5mbi5yZWFkeT1mdW5jdGlvbihlKXtyZXR1cm4gRi50aGVuKGUpW1wiY2F0Y2hcIl0oZnVuY3Rpb24oZSl7dy5yZWFkeUV4Y2VwdGlvbihlKX0pLHRoaXN9LHcuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGUpeyghMD09PWU/LS13LnJlYWR5V2FpdDp3LmlzUmVhZHkpfHwody5pc1JlYWR5PSEwLCEwIT09ZSYmLS13LnJlYWR5V2FpdD4wfHxGLnJlc29sdmVXaXRoKHIsW3ddKSl9fSksdy5yZWFkeS50aGVuPUYudGhlbjtmdW5jdGlvbiBfKCl7ci5yZW1vdmVFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLF8pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImxvYWRcIixfKSx3LnJlYWR5KCl9XCJjb21wbGV0ZVwiPT09ci5yZWFkeVN0YXRlfHxcImxvYWRpbmdcIiE9PXIucmVhZHlTdGF0ZSYmIXIuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsP2Uuc2V0VGltZW91dCh3LnJlYWR5KTooci5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLF8pLGUuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixfKSk7dmFyIHo9ZnVuY3Rpb24oZSx0LG4scixpLG8sYSl7dmFyIHM9MCx1PWUubGVuZ3RoLGw9bnVsbD09bjtpZihcIm9iamVjdFwiPT09eChuKSl7aT0hMDtmb3IocyBpbiBuKXooZSx0LHMsbltzXSwhMCxvLGEpfWVsc2UgaWYodm9pZCAwIT09ciYmKGk9ITAsZyhyKXx8KGE9ITApLGwmJihhPyh0LmNhbGwoZSxyKSx0PW51bGwpOihsPXQsdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGwuY2FsbCh3KGUpLG4pfSkpLHQpKWZvcig7czx1O3MrKyl0KGVbc10sbixhP3I6ci5jYWxsKGVbc10scyx0KGVbc10sbikpKTtyZXR1cm4gaT9lOmw/dC5jYWxsKGUpOnU/dChlWzBdLG4pOm99LFg9L14tbXMtLyxVPS8tKFthLXpdKS9nO2Z1bmN0aW9uIFYoZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIEcoZSl7cmV0dXJuIGUucmVwbGFjZShYLFwibXMtXCIpLnJlcGxhY2UoVSxWKX12YXIgWT1mdW5jdGlvbihlKXtyZXR1cm4gMT09PWUubm9kZVR5cGV8fDk9PT1lLm5vZGVUeXBlfHwhK2Uubm9kZVR5cGV9O2Z1bmN0aW9uIFEoKXt0aGlzLmV4cGFuZG89dy5leHBhbmRvK1EudWlkKyt9US51aWQ9MSxRLnByb3RvdHlwZT17Y2FjaGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZVt0aGlzLmV4cGFuZG9dO3JldHVybiB0fHwodD17fSxZKGUpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dDpPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0aGlzLmV4cGFuZG8se3ZhbHVlOnQsY29uZmlndXJhYmxlOiEwfSkpKSx0fSxzZXQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9dGhpcy5jYWNoZShlKTtpZihcInN0cmluZ1wiPT10eXBlb2YgdClpW0codCldPW47ZWxzZSBmb3IociBpbiB0KWlbRyhyKV09dFtyXTtyZXR1cm4gaX0sZ2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5jYWNoZShlKTplW3RoaXMuZXhwYW5kb10mJmVbdGhpcy5leHBhbmRvXVtHKHQpXX0sYWNjZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09dHx8dCYmXCJzdHJpbmdcIj09dHlwZW9mIHQmJnZvaWQgMD09PW4/dGhpcy5nZXQoZSx0KToodGhpcy5zZXQoZSx0LG4pLHZvaWQgMCE9PW4/bjp0KX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1lW3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09cil7aWYodm9pZCAwIT09dCl7bj0odD1BcnJheS5pc0FycmF5KHQpP3QubWFwKEcpOih0PUcodCkpaW4gcj9bdF06dC5tYXRjaChNKXx8W10pLmxlbmd0aDt3aGlsZShuLS0pZGVsZXRlIHJbdFtuXV19KHZvaWQgMD09PXR8fHcuaXNFbXB0eU9iamVjdChyKSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGVbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGUpe3ZhciB0PWVbdGhpcy5leHBhbmRvXTtyZXR1cm4gdm9pZCAwIT09dCYmIXcuaXNFbXB0eU9iamVjdCh0KX19O3ZhciBKPW5ldyBRLEs9bmV3IFEsWj0vXig/Olxce1tcXHdcXFddKlxcfXxcXFtbXFx3XFxXXSpcXF0pJC8sZWU9L1tBLVpdL2c7ZnVuY3Rpb24gdGUoZSl7cmV0dXJuXCJ0cnVlXCI9PT1lfHxcImZhbHNlXCIhPT1lJiYoXCJudWxsXCI9PT1lP251bGw6ZT09PStlK1wiXCI/K2U6Wi50ZXN0KGUpP0pTT04ucGFyc2UoZSk6ZSl9ZnVuY3Rpb24gbmUoZSx0LG4pe3ZhciByO2lmKHZvaWQgMD09PW4mJjE9PT1lLm5vZGVUeXBlKWlmKHI9XCJkYXRhLVwiK3QucmVwbGFjZShlZSxcIi0kJlwiKS50b0xvd2VyQ2FzZSgpLFwic3RyaW5nXCI9PXR5cGVvZihuPWUuZ2V0QXR0cmlidXRlKHIpKSl7dHJ5e249dGUobil9Y2F0Y2goZSl7fUsuc2V0KGUsdCxuKX1lbHNlIG49dm9pZCAwO3JldHVybiBufXcuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBLLmhhc0RhdGEoZSl8fEouaGFzRGF0YShlKX0sZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIEsuYWNjZXNzKGUsdCxuKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe0sucmVtb3ZlKGUsdCl9LF9kYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gSi5hY2Nlc3MoZSx0LG4pfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe0oucmVtb3ZlKGUsdCl9fSksdy5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbz10aGlzWzBdLGE9byYmby5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWUpe2lmKHRoaXMubGVuZ3RoJiYoaT1LLmdldChvKSwxPT09by5ub2RlVHlwZSYmIUouZ2V0KG8sXCJoYXNEYXRhQXR0cnNcIikpKXtuPWEubGVuZ3RoO3doaWxlKG4tLSlhW25dJiYwPT09KHI9YVtuXS5uYW1lKS5pbmRleE9mKFwiZGF0YS1cIikmJihyPUcoci5zbGljZSg1KSksbmUobyxyLGlbcl0pKTtKLnNldChvLFwiaGFzRGF0YUF0dHJzXCIsITApfXJldHVybiBpfXJldHVyblwib2JqZWN0XCI9PXR5cGVvZiBlP3RoaXMuZWFjaChmdW5jdGlvbigpe0suc2V0KHRoaXMsZSl9KTp6KHRoaXMsZnVuY3Rpb24odCl7dmFyIG47aWYobyYmdm9pZCAwPT09dCl7aWYodm9pZCAwIT09KG49Sy5nZXQobyxlKSkpcmV0dXJuIG47aWYodm9pZCAwIT09KG49bmUobyxlKSkpcmV0dXJuIG59ZWxzZSB0aGlzLmVhY2goZnVuY3Rpb24oKXtLLnNldCh0aGlzLGUsdCl9KX0sbnVsbCx0LGFyZ3VtZW50cy5sZW5ndGg+MSxudWxsLCEwKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Sy5yZW1vdmUodGhpcyxlKX0pfX0pLHcuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoZSlyZXR1cm4gdD0odHx8XCJmeFwiKStcInF1ZXVlXCIscj1KLmdldChlLHQpLG4mJighcnx8QXJyYXkuaXNBcnJheShuKT9yPUouYWNjZXNzKGUsdCx3Lm1ha2VBcnJheShuKSk6ci5wdXNoKG4pKSxyfHxbXX0sZGVxdWV1ZTpmdW5jdGlvbihlLHQpe3Q9dHx8XCJmeFwiO3ZhciBuPXcucXVldWUoZSx0KSxyPW4ubGVuZ3RoLGk9bi5zaGlmdCgpLG89dy5fcXVldWVIb29rcyhlLHQpLGE9ZnVuY3Rpb24oKXt3LmRlcXVldWUoZSx0KX07XCJpbnByb2dyZXNzXCI9PT1pJiYoaT1uLnNoaWZ0KCksci0tKSxpJiYoXCJmeFwiPT09dCYmbi51bnNoaWZ0KFwiaW5wcm9ncmVzc1wiKSxkZWxldGUgby5zdG9wLGkuY2FsbChlLGEsbykpLCFyJiZvJiZvLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10K1wicXVldWVIb29rc1wiO3JldHVybiBKLmdldChlLG4pfHxKLmFjY2VzcyhlLG4se2VtcHR5OncuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIikuYWRkKGZ1bmN0aW9uKCl7Si5yZW1vdmUoZSxbdCtcInF1ZXVlXCIsbl0pfSl9KX19KSx3LmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj0yO3JldHVyblwic3RyaW5nXCIhPXR5cGVvZiBlJiYodD1lLGU9XCJmeFwiLG4tLSksYXJndW1lbnRzLmxlbmd0aDxuP3cucXVldWUodGhpc1swXSxlKTp2b2lkIDA9PT10P3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49dy5xdWV1ZSh0aGlzLGUsdCk7dy5fcXVldWVIb29rcyh0aGlzLGUpLFwiZnhcIj09PWUmJlwiaW5wcm9ncmVzc1wiIT09blswXSYmdy5kZXF1ZXVlKHRoaXMsZSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dy5kZXF1ZXVlKHRoaXMsZSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5xdWV1ZShlfHxcImZ4XCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0xLGk9dy5EZWZlcnJlZCgpLG89dGhpcyxhPXRoaXMubGVuZ3RoLHM9ZnVuY3Rpb24oKXstLXJ8fGkucmVzb2x2ZVdpdGgobyxbb10pfTtcInN0cmluZ1wiIT10eXBlb2YgZSYmKHQ9ZSxlPXZvaWQgMCksZT1lfHxcImZ4XCI7d2hpbGUoYS0tKShuPUouZ2V0KG9bYV0sZStcInF1ZXVlSG9va3NcIikpJiZuLmVtcHR5JiYocisrLG4uZW1wdHkuYWRkKHMpKTtyZXR1cm4gcygpLGkucHJvbWlzZSh0KX19KTt2YXIgcmU9L1srLV0/KD86XFxkKlxcLnwpXFxkKyg/OltlRV1bKy1dP1xcZCt8KS8uc291cmNlLGllPW5ldyBSZWdFeHAoXCJeKD86KFsrLV0pPXwpKFwiK3JlK1wiKShbYS16JV0qKSRcIixcImlcIiksb2U9W1wiVG9wXCIsXCJSaWdodFwiLFwiQm90dG9tXCIsXCJMZWZ0XCJdLGFlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuXCJub25lXCI9PT0oZT10fHxlKS5zdHlsZS5kaXNwbGF5fHxcIlwiPT09ZS5zdHlsZS5kaXNwbGF5JiZ3LmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKSYmXCJub25lXCI9PT13LmNzcyhlLFwiZGlzcGxheVwiKX0sc2U9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbyxhPXt9O2ZvcihvIGluIHQpYVtvXT1lLnN0eWxlW29dLGUuc3R5bGVbb109dFtvXTtpPW4uYXBwbHkoZSxyfHxbXSk7Zm9yKG8gaW4gdCllLnN0eWxlW29dPWFbb107cmV0dXJuIGl9O2Z1bmN0aW9uIHVlKGUsdCxuLHIpe3ZhciBpLG8sYT0yMCxzPXI/ZnVuY3Rpb24oKXtyZXR1cm4gci5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gdy5jc3MoZSx0LFwiXCIpfSx1PXMoKSxsPW4mJm5bM118fCh3LmNzc051bWJlclt0XT9cIlwiOlwicHhcIiksYz0ody5jc3NOdW1iZXJbdF18fFwicHhcIiE9PWwmJit1KSYmaWUuZXhlYyh3LmNzcyhlLHQpKTtpZihjJiZjWzNdIT09bCl7dS89MixsPWx8fGNbM10sYz0rdXx8MTt3aGlsZShhLS0pdy5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLHcuc3R5bGUoZSx0LGMrbCksbj1ufHxbXX1yZXR1cm4gbiYmKGM9K2N8fCt1fHwwLGk9blsxXT9jKyhuWzFdKzEpKm5bMl06K25bMl0sciYmKHIudW5pdD1sLHIuc3RhcnQ9YyxyLmVuZD1pKSksaX12YXIgbGU9e307ZnVuY3Rpb24gY2UoZSl7dmFyIHQsbj1lLm93bmVyRG9jdW1lbnQscj1lLm5vZGVOYW1lLGk9bGVbcl07cmV0dXJuIGl8fCh0PW4uYm9keS5hcHBlbmRDaGlsZChuLmNyZWF0ZUVsZW1lbnQocikpLGk9dy5jc3ModCxcImRpc3BsYXlcIiksdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLFwibm9uZVwiPT09aSYmKGk9XCJibG9ja1wiKSxsZVtyXT1pLGkpfWZ1bmN0aW9uIGZlKGUsdCl7Zm9yKHZhciBuLHIsaT1bXSxvPTAsYT1lLmxlbmd0aDtvPGE7bysrKShyPWVbb10pLnN0eWxlJiYobj1yLnN0eWxlLmRpc3BsYXksdD8oXCJub25lXCI9PT1uJiYoaVtvXT1KLmdldChyLFwiZGlzcGxheVwiKXx8bnVsbCxpW29dfHwoci5zdHlsZS5kaXNwbGF5PVwiXCIpKSxcIlwiPT09ci5zdHlsZS5kaXNwbGF5JiZhZShyKSYmKGlbb109Y2UocikpKTpcIm5vbmVcIiE9PW4mJihpW29dPVwibm9uZVwiLEouc2V0KHIsXCJkaXNwbGF5XCIsbikpKTtmb3Iobz0wO288YTtvKyspbnVsbCE9aVtvXSYmKGVbb10uc3R5bGUuZGlzcGxheT1pW29dKTtyZXR1cm4gZX13LmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBmZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgZT9lP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe2FlKHRoaXMpP3codGhpcykuc2hvdygpOncodGhpcykuaGlkZSgpfSl9fSk7dmFyIHBlPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLGRlPS88KFthLXpdW15cXC9cXDA+XFx4MjBcXHRcXHJcXG5cXGZdKykvaSxoZT0vXiR8Xm1vZHVsZSR8XFwvKD86amF2YXxlY21hKXNjcmlwdC9pLGdlPXtvcHRpb246WzEsXCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+XCIsXCI8L3NlbGVjdD5cIl0sdGhlYWQ6WzEsXCI8dGFibGU+XCIsXCI8L3RhYmxlPlwiXSxjb2w6WzIsXCI8dGFibGU+PGNvbGdyb3VwPlwiLFwiPC9jb2xncm91cD48L3RhYmxlPlwiXSx0cjpbMixcIjx0YWJsZT48dGJvZHk+XCIsXCI8L3Rib2R5PjwvdGFibGU+XCJdLHRkOlszLFwiPHRhYmxlPjx0Ym9keT48dHI+XCIsXCI8L3RyPjwvdGJvZHk+PC90YWJsZT5cIl0sX2RlZmF1bHQ6WzAsXCJcIixcIlwiXX07Z2Uub3B0Z3JvdXA9Z2Uub3B0aW9uLGdlLnRib2R5PWdlLnRmb290PWdlLmNvbGdyb3VwPWdlLmNhcHRpb249Z2UudGhlYWQsZ2UudGg9Z2UudGQ7ZnVuY3Rpb24geWUoZSx0KXt2YXIgbjtyZXR1cm4gbj1cInVuZGVmaW5lZFwiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKHR8fFwiKlwiKTpcInVuZGVmaW5lZFwiIT10eXBlb2YgZS5xdWVyeVNlbGVjdG9yQWxsP2UucXVlcnlTZWxlY3RvckFsbCh0fHxcIipcIik6W10sdm9pZCAwPT09dHx8dCYmTihlLHQpP3cubWVyZ2UoW2VdLG4pOm59ZnVuY3Rpb24gdmUoZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspSi5zZXQoZVtuXSxcImdsb2JhbEV2YWxcIiwhdHx8Si5nZXQodFtuXSxcImdsb2JhbEV2YWxcIikpfXZhciBtZT0vPHwmIz9cXHcrOy87ZnVuY3Rpb24geGUoZSx0LG4scixpKXtmb3IodmFyIG8sYSxzLHUsbCxjLGY9dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscD1bXSxkPTAsaD1lLmxlbmd0aDtkPGg7ZCsrKWlmKChvPWVbZF0pfHwwPT09bylpZihcIm9iamVjdFwiPT09eChvKSl3Lm1lcmdlKHAsby5ub2RlVHlwZT9bb106byk7ZWxzZSBpZihtZS50ZXN0KG8pKXthPWF8fGYuYXBwZW5kQ2hpbGQodC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKSxzPShkZS5leGVjKG8pfHxbXCJcIixcIlwiXSlbMV0udG9Mb3dlckNhc2UoKSx1PWdlW3NdfHxnZS5fZGVmYXVsdCxhLmlubmVySFRNTD11WzFdK3cuaHRtbFByZWZpbHRlcihvKSt1WzJdLGM9dVswXTt3aGlsZShjLS0pYT1hLmxhc3RDaGlsZDt3Lm1lcmdlKHAsYS5jaGlsZE5vZGVzKSwoYT1mLmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PVwiXCJ9ZWxzZSBwLnB1c2godC5jcmVhdGVUZXh0Tm9kZShvKSk7Zi50ZXh0Q29udGVudD1cIlwiLGQ9MDt3aGlsZShvPXBbZCsrXSlpZihyJiZ3LmluQXJyYXkobyxyKT4tMSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPXcuY29udGFpbnMoby5vd25lckRvY3VtZW50LG8pLGE9eWUoZi5hcHBlbmRDaGlsZChvKSxcInNjcmlwdFwiKSxsJiZ2ZShhKSxuKXtjPTA7d2hpbGUobz1hW2MrK10paGUudGVzdChvLnR5cGV8fFwiXCIpJiZuLnB1c2gobyl9cmV0dXJuIGZ9IWZ1bmN0aW9uKCl7dmFyIGU9ci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuYXBwZW5kQ2hpbGQoci5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKSx0PXIuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO3Quc2V0QXR0cmlidXRlKFwidHlwZVwiLFwicmFkaW9cIiksdC5zZXRBdHRyaWJ1dGUoXCJjaGVja2VkXCIsXCJjaGVja2VkXCIpLHQuc2V0QXR0cmlidXRlKFwibmFtZVwiLFwidFwiKSxlLmFwcGVuZENoaWxkKHQpLGguY2hlY2tDbG9uZT1lLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxlLmlubmVySFRNTD1cIjx0ZXh0YXJlYT54PC90ZXh0YXJlYT5cIixoLm5vQ2xvbmVDaGVja2VkPSEhZS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWV9KCk7dmFyIGJlPXIuZG9jdW1lbnRFbGVtZW50LHdlPS9ea2V5LyxUZT0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnV8ZHJhZ3xkcm9wKXxjbGljay8sQ2U9L14oW14uXSopKD86XFwuKC4rKXwpLztmdW5jdGlvbiBFZSgpe3JldHVybiEwfWZ1bmN0aW9uIGtlKCl7cmV0dXJuITF9ZnVuY3Rpb24gU2UoKXt0cnl7cmV0dXJuIHIuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fWZ1bmN0aW9uIERlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXtcInN0cmluZ1wiIT10eXBlb2YgbiYmKHI9cnx8bixuPXZvaWQgMCk7Zm9yKHMgaW4gdClEZShlLHMsbixyLHRbc10sbyk7cmV0dXJuIGV9aWYobnVsbD09ciYmbnVsbD09aT8oaT1uLHI9bj12b2lkIDApOm51bGw9PWkmJihcInN0cmluZ1wiPT10eXBlb2Ygbj8oaT1yLHI9dm9pZCAwKTooaT1yLHI9bixuPXZvaWQgMCkpLCExPT09aSlpPWtlO2Vsc2UgaWYoIWkpcmV0dXJuIGU7cmV0dXJuIDE9PT1vJiYoYT1pLChpPWZ1bmN0aW9uKGUpe3JldHVybiB3KCkub2ZmKGUpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkuZ3VpZD1hLmd1aWR8fChhLmd1aWQ9dy5ndWlkKyspKSxlLmVhY2goZnVuY3Rpb24oKXt3LmV2ZW50LmFkZCh0aGlzLHQsaSxyLG4pfSl9dy5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvLGEscyx1LGwsYyxmLHAsZCxoLGcseT1KLmdldChlKTtpZih5KXtuLmhhbmRsZXImJihuPShvPW4pLmhhbmRsZXIsaT1vLnNlbGVjdG9yKSxpJiZ3LmZpbmQubWF0Y2hlc1NlbGVjdG9yKGJlLGkpLG4uZ3VpZHx8KG4uZ3VpZD13Lmd1aWQrKyksKHU9eS5ldmVudHMpfHwodT15LmV2ZW50cz17fSksKGE9eS5oYW5kbGUpfHwoYT15LmhhbmRsZT1mdW5jdGlvbih0KXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgdyYmdy5ldmVudC50cmlnZ2VyZWQhPT10LnR5cGU/dy5ldmVudC5kaXNwYXRjaC5hcHBseShlLGFyZ3VtZW50cyk6dm9pZCAwfSksbD0odD0odHx8XCJcIikubWF0Y2goTSl8fFtcIlwiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9Q2UuZXhlYyh0W2xdKXx8W10pWzFdLGg9KHNbMl18fFwiXCIpLnNwbGl0KFwiLlwiKS5zb3J0KCksZCYmKGY9dy5ldmVudC5zcGVjaWFsW2RdfHx7fSxkPShpP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkLGY9dy5ldmVudC5zcGVjaWFsW2RdfHx7fSxjPXcuZXh0ZW5kKHt0eXBlOmQsb3JpZ1R5cGU6ZyxkYXRhOnIsaGFuZGxlcjpuLGd1aWQ6bi5ndWlkLHNlbGVjdG9yOmksbmVlZHNDb250ZXh0OmkmJncuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChpKSxuYW1lc3BhY2U6aC5qb2luKFwiLlwiKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwoZSxyLGgsYSl8fGUuYWRkRXZlbnRMaXN0ZW5lciYmZS5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbChlLGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSx3LmV2ZW50Lmdsb2JhbFtkXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHk9Si5oYXNEYXRhKGUpJiZKLmdldChlKTtpZih5JiYodT15LmV2ZW50cykpe2w9KHQ9KHR8fFwiXCIpLm1hdGNoKE0pfHxbXCJcIl0pLmxlbmd0aDt3aGlsZShsLS0paWYocz1DZS5leGVjKHRbbF0pfHxbXSxkPWc9c1sxXSxoPShzWzJdfHxcIlwiKS5zcGxpdChcIi5cIikuc29ydCgpLGQpe2Y9dy5ldmVudC5zcGVjaWFsW2RdfHx7fSxwPXVbZD0ocj9mLmRlbGVnYXRlVHlwZTpmLmJpbmRUeXBlKXx8ZF18fFtdLHM9c1syXSYmbmV3IFJlZ0V4cChcIihefFxcXFwuKVwiK2guam9pbihcIlxcXFwuKD86LipcXFxcLnwpXCIpK1wiKFxcXFwufCQpXCIpLGE9bz1wLmxlbmd0aDt3aGlsZShvLS0pYz1wW29dLCFpJiZnIT09Yy5vcmlnVHlwZXx8biYmbi5ndWlkIT09Yy5ndWlkfHxzJiYhcy50ZXN0KGMubmFtZXNwYWNlKXx8ciYmciE9PWMuc2VsZWN0b3ImJihcIioqXCIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx5LmhhbmRsZSl8fHcucmVtb3ZlRXZlbnQoZSxkLHkuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KXcuZXZlbnQucmVtb3ZlKGUsZCt0W2xdLG4sciwhMCk7dy5pc0VtcHR5T2JqZWN0KHUpJiZKLnJlbW92ZShlLFwiaGFuZGxlIGV2ZW50c1wiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGUpe3ZhciB0PXcuZXZlbnQuZml4KGUpLG4scixpLG8sYSxzLHU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGw9KEouZ2V0KHRoaXMsXCJldmVudHNcIil8fHt9KVt0LnR5cGVdfHxbXSxjPXcuZXZlbnQuc3BlY2lhbFt0LnR5cGVdfHx7fTtmb3IodVswXT10LG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXVbbl09YXJndW1lbnRzW25dO2lmKHQuZGVsZWdhdGVUYXJnZXQ9dGhpcywhYy5wcmVEaXNwYXRjaHx8ITEhPT1jLnByZURpc3BhdGNoLmNhbGwodGhpcyx0KSl7cz13LmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyx0LGwpLG49MDt3aGlsZSgobz1zW24rK10pJiYhdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXt0LmN1cnJlbnRUYXJnZXQ9by5lbGVtLHI9MDt3aGlsZSgoYT1vLmhhbmRsZXJzW3IrK10pJiYhdC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKXQucm5hbWVzcGFjZSYmIXQucm5hbWVzcGFjZS50ZXN0KGEubmFtZXNwYWNlKXx8KHQuaGFuZGxlT2JqPWEsdC5kYXRhPWEuZGF0YSx2b2lkIDAhPT0oaT0oKHcuZXZlbnQuc3BlY2lhbFthLm9yaWdUeXBlXXx8e30pLmhhbmRsZXx8YS5oYW5kbGVyKS5hcHBseShvLmVsZW0sdSkpJiYhMT09PSh0LnJlc3VsdD1pKSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGMucG9zdERpc3BhdGNoJiZjLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsdCksdC5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvLGEscz1bXSx1PXQuZGVsZWdhdGVDb3VudCxsPWUudGFyZ2V0O2lmKHUmJmwubm9kZVR5cGUmJiEoXCJjbGlja1wiPT09ZS50eXBlJiZlLmJ1dHRvbj49MSkpZm9yKDtsIT09dGhpcztsPWwucGFyZW50Tm9kZXx8dGhpcylpZigxPT09bC5ub2RlVHlwZSYmKFwiY2xpY2tcIiE9PWUudHlwZXx8ITAhPT1sLmRpc2FibGVkKSl7Zm9yKG89W10sYT17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1hW2k9KHI9dFtuXSkuc2VsZWN0b3IrXCIgXCJdJiYoYVtpXT1yLm5lZWRzQ29udGV4dD93KGksdGhpcykuaW5kZXgobCk+LTE6dy5maW5kKGksdGhpcyxudWxsLFtsXSkubGVuZ3RoKSxhW2ldJiZvLnB1c2gocik7by5sZW5ndGgmJnMucHVzaCh7ZWxlbTpsLGhhbmRsZXJzOm99KX1yZXR1cm4gbD10aGlzLHU8dC5sZW5ndGgmJnMucHVzaCh7ZWxlbTpsLGhhbmRsZXJzOnQuc2xpY2UodSl9KSxzfSxhZGRQcm9wOmZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuRXZlbnQucHJvdG90eXBlLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpnKHQpP2Z1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiB0KHRoaXMub3JpZ2luYWxFdmVudCl9OmZ1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiB0aGlzLm9yaWdpbmFsRXZlbnRbZV19LHNldDpmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSl9fSl9LGZpeDpmdW5jdGlvbihlKXtyZXR1cm4gZVt3LmV4cGFuZG9dP2U6bmV3IHcuRXZlbnQoZSl9LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXMhPT1TZSgpJiZ0aGlzLmZvY3VzKXJldHVybiB0aGlzLmZvY3VzKCksITF9LGRlbGVnYXRlVHlwZTpcImZvY3VzaW5cIn0sYmx1cjp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXM9PT1TZSgpJiZ0aGlzLmJsdXIpcmV0dXJuIHRoaXMuYmx1cigpLCExfSxkZWxlZ2F0ZVR5cGU6XCJmb2N1c291dFwifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKFwiY2hlY2tib3hcIj09PXRoaXMudHlwZSYmdGhpcy5jbGljayYmTih0aGlzLFwiaW5wdXRcIikpcmV0dXJuIHRoaXMuY2xpY2soKSwhMX0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE4oZS50YXJnZXQsXCJhXCIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZS5yZXN1bHQmJmUub3JpZ2luYWxFdmVudCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX19LHcucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oZSx0LG4pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbil9LHcuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiB3LkV2ZW50KSlyZXR1cm4gbmV3IHcuRXZlbnQoZSx0KTtlJiZlLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1lLHRoaXMudHlwZT1lLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1lLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09ZS5yZXR1cm5WYWx1ZT9FZTprZSx0aGlzLnRhcmdldD1lLnRhcmdldCYmMz09PWUudGFyZ2V0Lm5vZGVUeXBlP2UudGFyZ2V0LnBhcmVudE5vZGU6ZS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWUuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9ZS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9ZSx0JiZ3LmV4dGVuZCh0aGlzLHQpLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbdy5leHBhbmRvXT0hMH0sdy5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOncuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOmtlLGlzUHJvcGFnYXRpb25TdG9wcGVkOmtlLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmtlLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPUVlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPUVlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1FZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sdy5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLFwiY2hhclwiOiEwLGNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOmZ1bmN0aW9uKGUpe3ZhciB0PWUuYnV0dG9uO3JldHVybiBudWxsPT1lLndoaWNoJiZ3ZS50ZXN0KGUudHlwZSk/bnVsbCE9ZS5jaGFyQ29kZT9lLmNoYXJDb2RlOmUua2V5Q29kZTohZS53aGljaCYmdm9pZCAwIT09dCYmVGUudGVzdChlLnR5cGUpPzEmdD8xOjImdD8zOjQmdD8yOjA6ZS53aGljaH19LHcuZXZlbnQuYWRkUHJvcCksdy5lYWNoKHttb3VzZWVudGVyOlwibW91c2VvdmVyXCIsbW91c2VsZWF2ZTpcIm1vdXNlb3V0XCIscG9pbnRlcmVudGVyOlwicG9pbnRlcm92ZXJcIixwb2ludGVybGVhdmU6XCJwb2ludGVyb3V0XCJ9LGZ1bmN0aW9uKGUsdCl7dy5ldmVudC5zcGVjaWFsW2VdPXtkZWxlZ2F0ZVR5cGU6dCxiaW5kVHlwZTp0LGhhbmRsZTpmdW5jdGlvbihlKXt2YXIgbixyPXRoaXMsaT1lLnJlbGF0ZWRUYXJnZXQsbz1lLmhhbmRsZU9iajtyZXR1cm4gaSYmKGk9PT1yfHx3LmNvbnRhaW5zKHIsaSkpfHwoZS50eXBlPW8ub3JpZ1R5cGUsbj1vLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT10KSxufX19KSx3LmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIERlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gRGUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosdyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZStcIi5cIityLm5hbWVzcGFjZTpyLm9yaWdUeXBlLHIuc2VsZWN0b3Isci5oYW5kbGVyKSx0aGlzO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBlKXtmb3IoaSBpbiBlKXRoaXMub2ZmKGksdCxlW2ldKTtyZXR1cm4gdGhpc31yZXR1cm4hMSE9PXQmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49a2UpLHRoaXMuZWFjaChmdW5jdGlvbigpe3cuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIE5lPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFthLXpdW15cXC9cXDA+XFx4MjBcXHRcXHJcXG5cXGZdKilbXj5dKilcXC8+L2dpLEFlPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLGplPS9jaGVja2VkXFxzKig/OltePV18PVxccyouY2hlY2tlZC4pL2kscWU9L15cXHMqPCEoPzpcXFtDREFUQVxcW3wtLSl8KD86XFxdXFxdfC0tKT5cXHMqJC9nO2Z1bmN0aW9uIExlKGUsdCl7cmV0dXJuIE4oZSxcInRhYmxlXCIpJiZOKDExIT09dC5ub2RlVHlwZT90OnQuZmlyc3RDaGlsZCxcInRyXCIpP3coZSkuY2hpbGRyZW4oXCJ0Ym9keVwiKVswXXx8ZTplfWZ1bmN0aW9uIEhlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZShcInR5cGVcIikpK1wiL1wiK2UudHlwZSxlfWZ1bmN0aW9uIE9lKGUpe3JldHVyblwidHJ1ZS9cIj09PShlLnR5cGV8fFwiXCIpLnNsaWNlKDAsNSk/ZS50eXBlPWUudHlwZS5zbGljZSg1KTplLnJlbW92ZUF0dHJpYnV0ZShcInR5cGVcIiksZX1mdW5jdGlvbiBQZShlLHQpe3ZhciBuLHIsaSxvLGEscyx1LGw7aWYoMT09PXQubm9kZVR5cGUpe2lmKEouaGFzRGF0YShlKSYmKG89Si5hY2Nlc3MoZSksYT1KLnNldCh0LG8pLGw9by5ldmVudHMpKXtkZWxldGUgYS5oYW5kbGUsYS5ldmVudHM9e307Zm9yKGkgaW4gbClmb3Iobj0wLHI9bFtpXS5sZW5ndGg7bjxyO24rKyl3LmV2ZW50LmFkZCh0LGksbFtpXVtuXSl9Sy5oYXNEYXRhKGUpJiYocz1LLmFjY2VzcyhlKSx1PXcuZXh0ZW5kKHt9LHMpLEsuc2V0KHQsdSkpfX1mdW5jdGlvbiBNZShlLHQpe3ZhciBuPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcImlucHV0XCI9PT1uJiZwZS50ZXN0KGUudHlwZSk/dC5jaGVja2VkPWUuY2hlY2tlZDpcImlucHV0XCIhPT1uJiZcInRleHRhcmVhXCIhPT1ufHwodC5kZWZhdWx0VmFsdWU9ZS5kZWZhdWx0VmFsdWUpfWZ1bmN0aW9uIFJlKGUsdCxuLHIpe3Q9YS5hcHBseShbXSx0KTt2YXIgaSxvLHMsdSxsLGMsZj0wLHA9ZS5sZW5ndGgsZD1wLTEseT10WzBdLHY9Zyh5KTtpZih2fHxwPjEmJlwic3RyaW5nXCI9PXR5cGVvZiB5JiYhaC5jaGVja0Nsb25lJiZqZS50ZXN0KHkpKXJldHVybiBlLmVhY2goZnVuY3Rpb24oaSl7dmFyIG89ZS5lcShpKTt2JiYodFswXT15LmNhbGwodGhpcyxpLG8uaHRtbCgpKSksUmUobyx0LG4scil9KTtpZihwJiYoaT14ZSh0LGVbMF0ub3duZXJEb2N1bWVudCwhMSxlLHIpLG89aS5maXJzdENoaWxkLDE9PT1pLmNoaWxkTm9kZXMubGVuZ3RoJiYoaT1vKSxvfHxyKSl7Zm9yKHU9KHM9dy5tYXAoeWUoaSxcInNjcmlwdFwiKSxIZSkpLmxlbmd0aDtmPHA7ZisrKWw9aSxmIT09ZCYmKGw9dy5jbG9uZShsLCEwLCEwKSx1JiZ3Lm1lcmdlKHMseWUobCxcInNjcmlwdFwiKSkpLG4uY2FsbChlW2ZdLGwsZik7aWYodSlmb3IoYz1zW3MubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsdy5tYXAocyxPZSksZj0wO2Y8dTtmKyspbD1zW2ZdLGhlLnRlc3QobC50eXBlfHxcIlwiKSYmIUouYWNjZXNzKGwsXCJnbG9iYWxFdmFsXCIpJiZ3LmNvbnRhaW5zKGMsbCkmJihsLnNyYyYmXCJtb2R1bGVcIiE9PShsLnR5cGV8fFwiXCIpLnRvTG93ZXJDYXNlKCk/dy5fZXZhbFVybCYmdy5fZXZhbFVybChsLnNyYyk6bShsLnRleHRDb250ZW50LnJlcGxhY2UocWUsXCJcIiksYyxsKSl9cmV0dXJuIGV9ZnVuY3Rpb24gSWUoZSx0LG4pe2Zvcih2YXIgcixpPXQ/dy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fHcuY2xlYW5EYXRhKHllKHIpKSxyLnBhcmVudE5vZGUmJihuJiZ3LmNvbnRhaW5zKHIub3duZXJEb2N1bWVudCxyKSYmdmUoeWUocixcInNjcmlwdFwiKSksci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpKTtyZXR1cm4gZX13LmV4dGVuZCh7aHRtbFByZWZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKE5lLFwiPCQxPjwvJDI+XCIpfSxjbG9uZTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscz1lLmNsb25lTm9kZSghMCksdT13LmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKTtpZighKGgubm9DbG9uZUNoZWNrZWR8fDEhPT1lLm5vZGVUeXBlJiYxMSE9PWUubm9kZVR5cGV8fHcuaXNYTUxEb2MoZSkpKWZvcihhPXllKHMpLHI9MCxpPShvPXllKGUpKS5sZW5ndGg7cjxpO3IrKylNZShvW3JdLGFbcl0pO2lmKHQpaWYobilmb3Iobz1vfHx5ZShlKSxhPWF8fHllKHMpLHI9MCxpPW8ubGVuZ3RoO3I8aTtyKyspUGUob1tyXSxhW3JdKTtlbHNlIFBlKGUscyk7cmV0dXJuKGE9eWUocyxcInNjcmlwdFwiKSkubGVuZ3RoPjAmJnZlKGEsIXUmJnllKGUsXCJzY3JpcHRcIikpLHN9LGNsZWFuRGF0YTpmdW5jdGlvbihlKXtmb3IodmFyIHQsbixyLGk9dy5ldmVudC5zcGVjaWFsLG89MDt2b2lkIDAhPT0obj1lW29dKTtvKyspaWYoWShuKSl7aWYodD1uW0ouZXhwYW5kb10pe2lmKHQuZXZlbnRzKWZvcihyIGluIHQuZXZlbnRzKWlbcl0/dy5ldmVudC5yZW1vdmUobixyKTp3LnJlbW92ZUV2ZW50KG4scix0LmhhbmRsZSk7bltKLmV4cGFuZG9dPXZvaWQgMH1uW0suZXhwYW5kb10mJihuW0suZXhwYW5kb109dm9pZCAwKX19fSksdy5mbi5leHRlbmQoe2RldGFjaDpmdW5jdGlvbihlKXtyZXR1cm4gSWUodGhpcyxlLCEwKX0scmVtb3ZlOmZ1bmN0aW9uKGUpe3JldHVybiBJZSh0aGlzLGUpfSx0ZXh0OmZ1bmN0aW9uKGUpe3JldHVybiB6KHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/dy50ZXh0KHRoaXMpOnRoaXMuZW1wdHkoKS5lYWNoKGZ1bmN0aW9uKCl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fCh0aGlzLnRleHRDb250ZW50PWUpfSl9LG51bGwsZSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIFJlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHxMZSh0aGlzLGUpLmFwcGVuZENoaWxkKGUpfSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gUmUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciB0PUxlKHRoaXMsZSk7dC5pbnNlcnRCZWZvcmUoZSx0LmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gUmUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gUmUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdGhpcy5uZXh0U2libGluZyl9KX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD0wO251bGwhPShlPXRoaXNbdF0pO3QrKykxPT09ZS5ub2RlVHlwZSYmKHcuY2xlYW5EYXRhKHllKGUsITEpKSxlLnRleHRDb250ZW50PVwiXCIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiB3LmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiB6KHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiYhQWUudGVzdChlKSYmIWdlWyhkZS5leGVjKGUpfHxbXCJcIixcIlwiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9dy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKHcuY2xlYW5EYXRhKHllKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIFJlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMucGFyZW50Tm9kZTt3LmluQXJyYXkodGhpcyxlKTwwJiYody5jbGVhbkRhdGEoeWUodGhpcykpLG4mJm4ucmVwbGFjZUNoaWxkKHQsdGhpcykpfSxlKX19KSx3LmVhY2goe2FwcGVuZFRvOlwiYXBwZW5kXCIscHJlcGVuZFRvOlwicHJlcGVuZFwiLGluc2VydEJlZm9yZTpcImJlZm9yZVwiLGluc2VydEFmdGVyOlwiYWZ0ZXJcIixyZXBsYWNlQWxsOlwicmVwbGFjZVdpdGhcIn0sZnVuY3Rpb24oZSx0KXt3LmZuW2VdPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbixyPVtdLGk9dyhlKSxvPWkubGVuZ3RoLTEsYT0wO2E8PW87YSsrKW49YT09PW8/dGhpczp0aGlzLmNsb25lKCEwKSx3KGlbYV0pW3RdKG4pLHMuYXBwbHkocixuLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2socil9fSk7dmFyIFdlPW5ldyBSZWdFeHAoXCJeKFwiK3JlK1wiKSg/IXB4KVthLXolXSskXCIsXCJpXCIpLCRlPWZ1bmN0aW9uKHQpe3ZhciBuPXQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gbiYmbi5vcGVuZXJ8fChuPWUpLG4uZ2V0Q29tcHV0ZWRTdHlsZSh0KX0sQmU9bmV3IFJlZ0V4cChvZS5qb2luKFwifFwiKSxcImlcIik7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe2lmKGMpe2wuc3R5bGUuY3NzVGV4dD1cInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjBcIixjLnN0eWxlLmNzc1RleHQ9XCJwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpzY3JvbGw7bWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt3aWR0aDo2MCU7dG9wOjElXCIsYmUuYXBwZW5kQ2hpbGQobCkuYXBwZW5kQ2hpbGQoYyk7dmFyIHQ9ZS5nZXRDb21wdXRlZFN0eWxlKGMpO2k9XCIxJVwiIT09dC50b3AsdT0xMj09PW4odC5tYXJnaW5MZWZ0KSxjLnN0eWxlLnJpZ2h0PVwiNjAlXCIscz0zNj09PW4odC5yaWdodCksbz0zNj09PW4odC53aWR0aCksYy5zdHlsZS5wb3NpdGlvbj1cImFic29sdXRlXCIsYT0zNj09PWMub2Zmc2V0V2lkdGh8fFwiYWJzb2x1dGVcIixiZS5yZW1vdmVDaGlsZChsKSxjPW51bGx9fWZ1bmN0aW9uIG4oZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIGksbyxhLHMsdSxsPXIuY3JlYXRlRWxlbWVudChcImRpdlwiKSxjPXIuY3JlYXRlRWxlbWVudChcImRpdlwiKTtjLnN0eWxlJiYoYy5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD1cImNvbnRlbnQtYm94XCIsYy5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPVwiXCIsaC5jbGVhckNsb25lU3R5bGU9XCJjb250ZW50LWJveFwiPT09Yy5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCx3LmV4dGVuZChoLHtib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiB0KCksb30scGl4ZWxCb3hTdHlsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLHN9LHBpeGVsUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGl9LHJlbGlhYmxlTWFyZ2luTGVmdDpmdW5jdGlvbigpe3JldHVybiB0KCksdX0sc2Nyb2xsYm94U2l6ZTpmdW5jdGlvbigpe3JldHVybiB0KCksYX19KSl9KCk7ZnVuY3Rpb24gRmUoZSx0LG4pe3ZhciByLGksbyxhLHM9ZS5zdHlsZTtyZXR1cm4obj1ufHwkZShlKSkmJihcIlwiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8dy5jb250YWlucyhlLm93bmVyRG9jdW1lbnQsZSl8fChhPXcuc3R5bGUoZSx0KSksIWgucGl4ZWxCb3hTdHlsZXMoKSYmV2UudGVzdChhKSYmQmUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hK1wiXCI6YX1mdW5jdGlvbiBfZShlLHQpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtpZighZSgpKXJldHVybih0aGlzLmdldD10KS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZGVsZXRlIHRoaXMuZ2V0fX19dmFyIHplPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxYZT0vXi0tLyxVZT17cG9zaXRpb246XCJhYnNvbHV0ZVwiLHZpc2liaWxpdHk6XCJoaWRkZW5cIixkaXNwbGF5OlwiYmxvY2tcIn0sVmU9e2xldHRlclNwYWNpbmc6XCIwXCIsZm9udFdlaWdodDpcIjQwMFwifSxHZT1bXCJXZWJraXRcIixcIk1velwiLFwibXNcIl0sWWU9ci5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlO2Z1bmN0aW9uIFFlKGUpe2lmKGUgaW4gWWUpcmV0dXJuIGU7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1HZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPUdlW25dK3QpaW4gWWUpcmV0dXJuIGV9ZnVuY3Rpb24gSmUoZSl7dmFyIHQ9dy5jc3NQcm9wc1tlXTtyZXR1cm4gdHx8KHQ9dy5jc3NQcm9wc1tlXT1RZShlKXx8ZSksdH1mdW5jdGlvbiBLZShlLHQsbil7dmFyIHI9aWUuZXhlYyh0KTtyZXR1cm4gcj9NYXRoLm1heCgwLHJbMl0tKG58fDApKSsoclszXXx8XCJweFwiKTp0fWZ1bmN0aW9uIFplKGUsdCxuLHIsaSxvKXt2YXIgYT1cIndpZHRoXCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj9cImJvcmRlclwiOlwiY29udGVudFwiKSlyZXR1cm4gMDtmb3IoO2E8NDthKz0yKVwibWFyZ2luXCI9PT1uJiYodSs9dy5jc3MoZSxuK29lW2FdLCEwLGkpKSxyPyhcImNvbnRlbnRcIj09PW4mJih1LT13LmNzcyhlLFwicGFkZGluZ1wiK29lW2FdLCEwLGkpKSxcIm1hcmdpblwiIT09biYmKHUtPXcuY3NzKGUsXCJib3JkZXJcIitvZVthXStcIldpZHRoXCIsITAsaSkpKToodSs9dy5jc3MoZSxcInBhZGRpbmdcIitvZVthXSwhMCxpKSxcInBhZGRpbmdcIiE9PW4/dSs9dy5jc3MoZSxcImJvcmRlclwiK29lW2FdK1wiV2lkdGhcIiwhMCxpKTpzKz13LmNzcyhlLFwiYm9yZGVyXCIrb2VbYV0rXCJXaWR0aFwiLCEwLGkpKTtyZXR1cm4hciYmbz49MCYmKHUrPU1hdGgubWF4KDAsTWF0aC5jZWlsKGVbXCJvZmZzZXRcIit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKSksdX1mdW5jdGlvbiBldChlLHQsbil7dmFyIHI9JGUoZSksaT1GZShlLHQsciksbz1cImJvcmRlci1ib3hcIj09PXcuY3NzKGUsXCJib3hTaXppbmdcIiwhMSxyKSxhPW87aWYoV2UudGVzdChpKSl7aWYoIW4pcmV0dXJuIGk7aT1cImF1dG9cIn1yZXR1cm4gYT1hJiYoaC5ib3hTaXppbmdSZWxpYWJsZSgpfHxpPT09ZS5zdHlsZVt0XSksKFwiYXV0b1wiPT09aXx8IXBhcnNlRmxvYXQoaSkmJlwiaW5saW5lXCI9PT13LmNzcyhlLFwiZGlzcGxheVwiLCExLHIpKSYmKGk9ZVtcIm9mZnNldFwiK3RbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpXSxhPSEwKSwoaT1wYXJzZUZsb2F0KGkpfHwwKStaZShlLHQsbnx8KG8/XCJib3JkZXJcIjpcImNvbnRlbnRcIiksYSxyLGkpK1wicHhcIn13LmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPUZlKGUsXCJvcGFjaXR5XCIpO3JldHVyblwiXCI9PT1uP1wiMVwiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6e30sc3R5bGU6ZnVuY3Rpb24oZSx0LG4scil7aWYoZSYmMyE9PWUubm9kZVR5cGUmJjghPT1lLm5vZGVUeXBlJiZlLnN0eWxlKXt2YXIgaSxvLGEscz1HKHQpLHU9WGUudGVzdCh0KSxsPWUuc3R5bGU7aWYodXx8KHQ9SmUocykpLGE9dy5jc3NIb29rc1t0XXx8dy5jc3NIb29rc1tzXSx2b2lkIDA9PT1uKXJldHVybiBhJiZcImdldFwiaW4gYSYmdm9pZCAwIT09KGk9YS5nZXQoZSwhMSxyKSk/aTpsW3RdO1wic3RyaW5nXCI9PShvPXR5cGVvZiBuKSYmKGk9aWUuZXhlYyhuKSkmJmlbMV0mJihuPXVlKGUsdCxpKSxvPVwibnVtYmVyXCIpLG51bGwhPW4mJm49PT1uJiYoXCJudW1iZXJcIj09PW8mJihuKz1pJiZpWzNdfHwody5jc3NOdW1iZXJbc10/XCJcIjpcInB4XCIpKSxoLmNsZWFyQ2xvbmVTdHlsZXx8XCJcIiE9PW58fDAhPT10LmluZGV4T2YoXCJiYWNrZ3JvdW5kXCIpfHwobFt0XT1cImluaGVyaXRcIiksYSYmXCJzZXRcImluIGEmJnZvaWQgMD09PShuPWEuc2V0KGUsbixyKSl8fCh1P2wuc2V0UHJvcGVydHkodCxuKTpsW3RdPW4pKX19LGNzczpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscz1HKHQpO3JldHVybiBYZS50ZXN0KHQpfHwodD1KZShzKSksKGE9dy5jc3NIb29rc1t0XXx8dy5jc3NIb29rc1tzXSkmJlwiZ2V0XCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1GZShlLHQscikpLFwibm9ybWFsXCI9PT1pJiZ0IGluIFZlJiYoaT1WZVt0XSksXCJcIj09PW58fG4/KG89cGFyc2VGbG9hdChpKSwhMD09PW58fGlzRmluaXRlKG8pP298fDA6aSk6aX19KSx3LmVhY2goW1wiaGVpZ2h0XCIsXCJ3aWR0aFwiXSxmdW5jdGlvbihlLHQpe3cuY3NzSG9va3NbdF09e2dldDpmdW5jdGlvbihlLG4scil7aWYobilyZXR1cm4hemUudGVzdCh3LmNzcyhlLFwiZGlzcGxheVwiKSl8fGUuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg/ZXQoZSx0LHIpOnNlKGUsVWUsZnVuY3Rpb24oKXtyZXR1cm4gZXQoZSx0LHIpfSl9LHNldDpmdW5jdGlvbihlLG4scil7dmFyIGksbz0kZShlKSxhPVwiYm9yZGVyLWJveFwiPT09dy5jc3MoZSxcImJveFNpemluZ1wiLCExLG8pLHM9ciYmWmUoZSx0LHIsYSxvKTtyZXR1cm4gYSYmaC5zY3JvbGxib3hTaXplKCk9PT1vLnBvc2l0aW9uJiYocy09TWF0aC5jZWlsKGVbXCJvZmZzZXRcIit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tcGFyc2VGbG9hdChvW3RdKS1aZShlLHQsXCJib3JkZXJcIiwhMSxvKS0uNSkpLHMmJihpPWllLmV4ZWMobikpJiZcInB4XCIhPT0oaVszXXx8XCJweFwiKSYmKGUuc3R5bGVbdF09bixuPXcuY3NzKGUsdCkpLEtlKGUsbixzKX19fSksdy5jc3NIb29rcy5tYXJnaW5MZWZ0PV9lKGgucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGUsdCl7aWYodClyZXR1cm4ocGFyc2VGbG9hdChGZShlLFwibWFyZ2luTGVmdFwiKSl8fGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1zZShlLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKStcInB4XCJ9KSx3LmVhY2goe21hcmdpbjpcIlwiLHBhZGRpbmc6XCJcIixib3JkZXI6XCJXaWR0aFwifSxmdW5jdGlvbihlLHQpe3cuY3NzSG9va3NbZSt0XT17ZXhwYW5kOmZ1bmN0aW9uKG4pe2Zvcih2YXIgcj0wLGk9e30sbz1cInN0cmluZ1wiPT10eXBlb2Ygbj9uLnNwbGl0KFwiIFwiKTpbbl07cjw0O3IrKylpW2Urb2Vbcl0rdF09b1tyXXx8b1tyLTJdfHxvWzBdO3JldHVybiBpfX0sXCJtYXJnaW5cIiE9PWUmJih3LmNzc0hvb2tzW2UrdF0uc2V0PUtlKX0pLHcuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4geih0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPSRlKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPXcuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj93LnN0eWxlKGUsdCxuKTp3LmNzcyhlLHQpfSxlLHQsYXJndW1lbnRzLmxlbmd0aD4xKX19KTtmdW5jdGlvbiB0dChlLHQsbixyLGkpe3JldHVybiBuZXcgdHQucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX13LlR3ZWVuPXR0LHR0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dHQsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8dy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fCh3LmNzc051bWJlcltuXT9cIlwiOlwicHhcIil9LGN1cjpmdW5jdGlvbigpe3ZhciBlPXR0LnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBlJiZlLmdldD9lLmdldCh0aGlzKTp0dC5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oZSl7dmFyIHQsbj10dC5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPXQ9dy5lYXNpbmdbdGhpcy5lYXNpbmddKGUsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9dD1lLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSp0K3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLG4mJm4uc2V0P24uc2V0KHRoaXMpOnR0LnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LHR0LnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT10dC5wcm90b3R5cGUsdHQucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9dy5jc3MoZS5lbGVtLGUucHJvcCxcIlwiKSkmJlwiYXV0b1wiIT09dD90OjB9LHNldDpmdW5jdGlvbihlKXt3LmZ4LnN0ZXBbZS5wcm9wXT93LmZ4LnN0ZXBbZS5wcm9wXShlKToxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsPT1lLmVsZW0uc3R5bGVbdy5jc3NQcm9wc1tlLnByb3BdXSYmIXcuY3NzSG9va3NbZS5wcm9wXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzp3LnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSx0dC5wcm9wSG9va3Muc2Nyb2xsVG9wPXR0LnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LHcuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6XCJzd2luZ1wifSx3LmZ4PXR0LnByb3RvdHlwZS5pbml0LHcuZnguc3RlcD17fTt2YXIgbnQscnQsaXQ9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLG90PS9xdWV1ZUhvb2tzJC87ZnVuY3Rpb24gYXQoKXtydCYmKCExPT09ci5oaWRkZW4mJmUucmVxdWVzdEFuaW1hdGlvbkZyYW1lP2UucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGF0KTplLnNldFRpbWVvdXQoYXQsdy5meC5pbnRlcnZhbCksdy5meC50aWNrKCkpfWZ1bmN0aW9uIHN0KCl7cmV0dXJuIGUuc2V0VGltZW91dChmdW5jdGlvbigpe250PXZvaWQgMH0pLG50PURhdGUubm93KCl9ZnVuY3Rpb24gdXQoZSx0KXt2YXIgbixyPTAsaT17aGVpZ2h0OmV9O2Zvcih0PXQ/MTowO3I8NDtyKz0yLXQpaVtcIm1hcmdpblwiKyhuPW9lW3JdKV09aVtcInBhZGRpbmdcIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiBsdChlLHQsbil7Zm9yKHZhciByLGk9KHB0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KHB0LnR3ZWVuZXJzW1wiKlwiXSksbz0wLGE9aS5sZW5ndGg7bzxhO28rKylpZihyPWlbb10uY2FsbChuLHQsZSkpcmV0dXJuIHJ9ZnVuY3Rpb24gY3QoZSx0LG4pe3ZhciByLGksbyxhLHMsdSxsLGMsZj1cIndpZHRoXCJpbiB0fHxcImhlaWdodFwiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx5PUouZ2V0KGUsXCJmeHNob3dcIik7bi5xdWV1ZXx8KG51bGw9PShhPXcuX3F1ZXVlSG9va3MoZSxcImZ4XCIpKS51bnF1ZXVlZCYmKGEudW5xdWV1ZWQ9MCxzPWEuZW1wdHkuZmlyZSxhLmVtcHR5LmZpcmU9ZnVuY3Rpb24oKXthLnVucXVldWVkfHxzKCl9KSxhLnVucXVldWVkKysscC5hbHdheXMoZnVuY3Rpb24oKXtwLmFsd2F5cyhmdW5jdGlvbigpe2EudW5xdWV1ZWQtLSx3LnF1ZXVlKGUsXCJmeFwiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSk7Zm9yKHIgaW4gdClpZihpPXRbcl0saXQudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHxcInRvZ2dsZVwiPT09aSxpPT09KGc/XCJoaWRlXCI6XCJzaG93XCIpKXtpZihcInNob3dcIiE9PWl8fCF5fHx2b2lkIDA9PT15W3JdKWNvbnRpbnVlO2c9ITB9ZFtyXT15JiZ5W3JdfHx3LnN0eWxlKGUscil9aWYoKHU9IXcuaXNFbXB0eU9iamVjdCh0KSl8fCF3LmlzRW1wdHlPYmplY3QoZCkpe2YmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9eSYmeS5kaXNwbGF5KSYmKGw9Si5nZXQoZSxcImRpc3BsYXlcIikpLFwibm9uZVwiPT09KGM9dy5jc3MoZSxcImRpc3BsYXlcIikpJiYobD9jPWw6KGZlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz13LmNzcyhlLFwiZGlzcGxheVwiKSxmZShbZV0pKSksKFwiaW5saW5lXCI9PT1jfHxcImlubGluZS1ibG9ja1wiPT09YyYmbnVsbCE9bCkmJlwibm9uZVwiPT09dy5jc3MoZSxcImZsb2F0XCIpJiYodXx8KHAuZG9uZShmdW5jdGlvbigpe2guZGlzcGxheT1sfSksbnVsbD09bCYmKGM9aC5kaXNwbGF5LGw9XCJub25lXCI9PT1jP1wiXCI6YykpLGguZGlzcGxheT1cImlubGluZS1ibG9ja1wiKSksbi5vdmVyZmxvdyYmKGgub3ZlcmZsb3c9XCJoaWRkZW5cIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMTtmb3IociBpbiBkKXV8fCh5P1wiaGlkZGVuXCJpbiB5JiYoZz15LmhpZGRlbik6eT1KLmFjY2VzcyhlLFwiZnhzaG93XCIse2Rpc3BsYXk6bH0pLG8mJih5LmhpZGRlbj0hZyksZyYmZmUoW2VdLCEwKSxwLmRvbmUoZnVuY3Rpb24oKXtnfHxmZShbZV0pLEoucmVtb3ZlKGUsXCJmeHNob3dcIik7Zm9yKHIgaW4gZCl3LnN0eWxlKGUscixkW3JdKX0pKSx1PWx0KGc/eVtyXTowLHIscCksciBpbiB5fHwoeVtyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfX1mdW5jdGlvbiBmdChlLHQpe3ZhciBuLHIsaSxvLGE7Zm9yKG4gaW4gZSlpZihyPUcobiksaT10W3JdLG89ZVtuXSxBcnJheS5pc0FycmF5KG8pJiYoaT1vWzFdLG89ZVtuXT1vWzBdKSxuIT09ciYmKGVbcl09byxkZWxldGUgZVtuXSksKGE9dy5jc3NIb29rc1tyXSkmJlwiZXhwYW5kXCJpbiBhKXtvPWEuZXhwYW5kKG8pLGRlbGV0ZSBlW3JdO2ZvcihuIGluIG8pbiBpbiBlfHwoZVtuXT1vW25dLHRbbl09aSl9ZWxzZSB0W3JdPWl9ZnVuY3Rpb24gcHQoZSx0LG4pe3ZhciByLGksbz0wLGE9cHQucHJlZmlsdGVycy5sZW5ndGgscz13LkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIHUuZWxlbX0pLHU9ZnVuY3Rpb24oKXtpZihpKXJldHVybiExO2Zvcih2YXIgdD1udHx8c3QoKSxuPU1hdGgubWF4KDAsbC5zdGFydFRpbWUrbC5kdXJhdGlvbi10KSxyPTEtKG4vbC5kdXJhdGlvbnx8MCksbz0wLGE9bC50d2VlbnMubGVuZ3RoO288YTtvKyspbC50d2VlbnNbb10ucnVuKHIpO3JldHVybiBzLm5vdGlmeVdpdGgoZSxbbCxyLG5dKSxyPDEmJmE/bjooYXx8cy5ub3RpZnlXaXRoKGUsW2wsMSwwXSkscy5yZXNvbHZlV2l0aChlLFtsXSksITEpfSxsPXMucHJvbWlzZSh7ZWxlbTplLHByb3BzOncuZXh0ZW5kKHt9LHQpLG9wdHM6dy5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e30sZWFzaW5nOncuZWFzaW5nLl9kZWZhdWx0fSxuKSxvcmlnaW5hbFByb3BlcnRpZXM6dCxvcmlnaW5hbE9wdGlvbnM6bixzdGFydFRpbWU6bnR8fHN0KCksZHVyYXRpb246bi5kdXJhdGlvbix0d2VlbnM6W10sY3JlYXRlVHdlZW46ZnVuY3Rpb24odCxuKXt2YXIgcj13LlR3ZWVuKGUsbC5vcHRzLHQsbixsLm9wdHMuc3BlY2lhbEVhc2luZ1t0XXx8bC5vcHRzLmVhc2luZyk7cmV0dXJuIGwudHdlZW5zLnB1c2gocikscn0sc3RvcDpmdW5jdGlvbih0KXt2YXIgbj0wLHI9dD9sLnR3ZWVucy5sZW5ndGg6MDtpZihpKXJldHVybiB0aGlzO2ZvcihpPSEwO248cjtuKyspbC50d2VlbnNbbl0ucnVuKDEpO3JldHVybiB0PyhzLm5vdGlmeVdpdGgoZSxbbCwxLDBdKSxzLnJlc29sdmVXaXRoKGUsW2wsdF0pKTpzLnJlamVjdFdpdGgoZSxbbCx0XSksdGhpc319KSxjPWwucHJvcHM7Zm9yKGZ0KGMsbC5vcHRzLnNwZWNpYWxFYXNpbmcpO288YTtvKyspaWYocj1wdC5wcmVmaWx0ZXJzW29dLmNhbGwobCxlLGMsbC5vcHRzKSlyZXR1cm4gZyhyLnN0b3ApJiYody5fcXVldWVIb29rcyhsLmVsZW0sbC5vcHRzLnF1ZXVlKS5zdG9wPXIuc3RvcC5iaW5kKHIpKSxyO3JldHVybiB3Lm1hcChjLGx0LGwpLGcobC5vcHRzLnN0YXJ0KSYmbC5vcHRzLnN0YXJ0LmNhbGwoZSxsKSxsLnByb2dyZXNzKGwub3B0cy5wcm9ncmVzcykuZG9uZShsLm9wdHMuZG9uZSxsLm9wdHMuY29tcGxldGUpLmZhaWwobC5vcHRzLmZhaWwpLmFsd2F5cyhsLm9wdHMuYWx3YXlzKSx3LmZ4LnRpbWVyKHcuZXh0ZW5kKHUse2VsZW06ZSxhbmltOmwscXVldWU6bC5vcHRzLnF1ZXVlfSkpLGx9dy5BbmltYXRpb249dy5leHRlbmQocHQse3R3ZWVuZXJzOntcIipcIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHVlKG4uZWxlbSxlLGllLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7ZyhlKT8odD1lLGU9W1wiKlwiXSk6ZT1lLm1hdGNoKE0pO2Zvcih2YXIgbixyPTAsaT1lLmxlbmd0aDtyPGk7cisrKW49ZVtyXSxwdC50d2VlbmVyc1tuXT1wdC50d2VlbmVyc1tuXXx8W10scHQudHdlZW5lcnNbbl0udW5zaGlmdCh0KX0scHJlZmlsdGVyczpbY3RdLHByZWZpbHRlcjpmdW5jdGlvbihlLHQpe3Q/cHQucHJlZmlsdGVycy51bnNoaWZ0KGUpOnB0LnByZWZpbHRlcnMucHVzaChlKX19KSx3LnNwZWVkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lJiZcIm9iamVjdFwiPT10eXBlb2YgZT93LmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fGcoZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIWcodCkmJnR9O3JldHVybiB3LmZ4Lm9mZj9yLmR1cmF0aW9uPTA6XCJudW1iZXJcIiE9dHlwZW9mIHIuZHVyYXRpb24mJihyLmR1cmF0aW9uIGluIHcuZnguc3BlZWRzP3IuZHVyYXRpb249dy5meC5zcGVlZHNbci5kdXJhdGlvbl06ci5kdXJhdGlvbj13LmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9ci5xdWV1ZSYmITAhPT1yLnF1ZXVlfHwoci5xdWV1ZT1cImZ4XCIpLHIub2xkPXIuY29tcGxldGUsci5jb21wbGV0ZT1mdW5jdGlvbigpe2coci5vbGQpJiZyLm9sZC5jYWxsKHRoaXMpLHIucXVldWUmJncuZGVxdWV1ZSh0aGlzLHIucXVldWUpfSxyfSx3LmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLmZpbHRlcihhZSkuY3NzKFwib3BhY2l0eVwiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbihlLHQsbixyKXt2YXIgaT13LmlzRW1wdHlPYmplY3QoZSksbz13LnNwZWVkKHQsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIHQ9cHQodGhpcyx3LmV4dGVuZCh7fSxlKSxvKTsoaXx8Si5nZXQodGhpcyxcImZpbmlzaFwiKSkmJnQuc3RvcCghMCl9O3JldHVybiBhLmZpbmlzaD1hLGl8fCExPT09by5xdWV1ZT90aGlzLmVhY2goYSk6dGhpcy5xdWV1ZShvLnF1ZXVlLGEpfSxzdG9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1mdW5jdGlvbihlKXt2YXIgdD1lLnN0b3A7ZGVsZXRlIGUuc3RvcCx0KG4pfTtyZXR1cm5cInN0cmluZ1wiIT10eXBlb2YgZSYmKG49dCx0PWUsZT12b2lkIDApLHQmJiExIT09ZSYmdGhpcy5xdWV1ZShlfHxcImZ4XCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PSEwLGk9bnVsbCE9ZSYmZStcInF1ZXVlSG9va3NcIixvPXcudGltZXJzLGE9Si5nZXQodGhpcyk7aWYoaSlhW2ldJiZhW2ldLnN0b3AmJnIoYVtpXSk7ZWxzZSBmb3IoaSBpbiBhKWFbaV0mJmFbaV0uc3RvcCYmb3QudGVzdChpKSYmcihhW2ldKTtmb3IoaT1vLmxlbmd0aDtpLS07KW9baV0uZWxlbSE9PXRoaXN8fG51bGwhPWUmJm9baV0ucXVldWUhPT1lfHwob1tpXS5hbmltLnN0b3AobiksdD0hMSxvLnNwbGljZShpLDEpKTshdCYmbnx8dy5kZXF1ZXVlKHRoaXMsZSl9KX0sZmluaXNoOmZ1bmN0aW9uKGUpe3JldHVybiExIT09ZSYmKGU9ZXx8XCJmeFwiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxuPUouZ2V0KHRoaXMpLHI9bltlK1wicXVldWVcIl0saT1uW2UrXCJxdWV1ZUhvb2tzXCJdLG89dy50aW1lcnMsYT1yP3IubGVuZ3RoOjA7Zm9yKG4uZmluaXNoPSEwLHcucXVldWUodGhpcyxlLFtdKSxpJiZpLnN0b3AmJmkuc3RvcC5jYWxsKHRoaXMsITApLHQ9by5sZW5ndGg7dC0tOylvW3RdLmVsZW09PT10aGlzJiZvW3RdLnF1ZXVlPT09ZSYmKG9bdF0uYW5pbS5zdG9wKCEwKSxvLnNwbGljZSh0LDEpKTtmb3IodD0wO3Q8YTt0Kyspclt0XSYmclt0XS5maW5pc2gmJnJbdF0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIG4uZmluaXNofSl9fSksdy5lYWNoKFtcInRvZ2dsZVwiLFwic2hvd1wiLFwiaGlkZVwiXSxmdW5jdGlvbihlLHQpe3ZhciBuPXcuZm5bdF07dy5mblt0XT1mdW5jdGlvbihlLHIsaSl7cmV0dXJuIG51bGw9PWV8fFwiYm9vbGVhblwiPT10eXBlb2YgZT9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUodXQodCwhMCksZSxyLGkpfX0pLHcuZWFjaCh7c2xpZGVEb3duOnV0KFwic2hvd1wiKSxzbGlkZVVwOnV0KFwiaGlkZVwiKSxzbGlkZVRvZ2dsZTp1dChcInRvZ2dsZVwiKSxmYWRlSW46e29wYWNpdHk6XCJzaG93XCJ9LGZhZGVPdXQ6e29wYWNpdHk6XCJoaWRlXCJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6XCJ0b2dnbGVcIn19LGZ1bmN0aW9uKGUsdCl7dy5mbltlXT1mdW5jdGlvbihlLG4scil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh0LGUsbixyKX19KSx3LnRpbWVycz1bXSx3LmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj13LnRpbWVycztmb3IobnQ9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHx3LmZ4LnN0b3AoKSxudD12b2lkIDB9LHcuZngudGltZXI9ZnVuY3Rpb24oZSl7dy50aW1lcnMucHVzaChlKSx3LmZ4LnN0YXJ0KCl9LHcuZnguaW50ZXJ2YWw9MTMsdy5meC5zdGFydD1mdW5jdGlvbigpe3J0fHwocnQ9ITAsYXQoKSl9LHcuZnguc3RvcD1mdW5jdGlvbigpe3J0PW51bGx9LHcuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHcuZm4uZGVsYXk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdD13LmZ4P3cuZnguc3BlZWRzW3RdfHx0OnQsbj1ufHxcImZ4XCIsdGhpcy5xdWV1ZShuLGZ1bmN0aW9uKG4scil7dmFyIGk9ZS5zZXRUaW1lb3V0KG4sdCk7ci5zdG9wPWZ1bmN0aW9uKCl7ZS5jbGVhclRpbWVvdXQoaSl9fSl9LGZ1bmN0aW9uKCl7dmFyIGU9ci5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiksdD1yLmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIikuYXBwZW5kQ2hpbGQoci5jcmVhdGVFbGVtZW50KFwib3B0aW9uXCIpKTtlLnR5cGU9XCJjaGVja2JveFwiLGguY2hlY2tPbj1cIlwiIT09ZS52YWx1ZSxoLm9wdFNlbGVjdGVkPXQuc2VsZWN0ZWQsKGU9ci5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIikpLnZhbHVlPVwidFwiLGUudHlwZT1cInJhZGlvXCIsaC5yYWRpb1ZhbHVlPVwidFwiPT09ZS52YWx1ZX0oKTt2YXIgZHQsaHQ9dy5leHByLmF0dHJIYW5kbGU7dy5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4geih0aGlzLHcuYXR0cixlLHQsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dy5yZW1vdmVBdHRyKHRoaXMsZSl9KX19KSx3LmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPWUubm9kZVR5cGU7aWYoMyE9PW8mJjghPT1vJiYyIT09bylyZXR1cm5cInVuZGVmaW5lZFwiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/dy5wcm9wKGUsdCxuKTooMT09PW8mJncuaXNYTUxEb2MoZSl8fChpPXcuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fCh3LmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP2R0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCB3LnJlbW92ZUF0dHIoZSx0KTppJiZcInNldFwiaW4gaSYmdm9pZCAwIT09KHI9aS5zZXQoZSxuLHQpKT9yOihlLnNldEF0dHJpYnV0ZSh0LG4rXCJcIiksbik6aSYmXCJnZXRcImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPXcuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZighaC5yYWRpb1ZhbHVlJiZcInJhZGlvXCI9PT10JiZOKGUsXCJpbnB1dFwiKSl7dmFyIG49ZS52YWx1ZTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goTSk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSksZHQ9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P3cucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LHcuZWFjaCh3LmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1xcdysvZyksZnVuY3Rpb24oZSx0KXt2YXIgbj1odFt0XXx8dy5maW5kLmF0dHI7aHRbdF09ZnVuY3Rpb24oZSx0LHIpe3ZhciBpLG8sYT10LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHJ8fChvPWh0W2FdLGh0W2FdPWksaT1udWxsIT1uKGUsdCxyKT9hOm51bGwsaHRbYV09byksaX19KTt2YXIgZ3Q9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSx5dD0vXig/OmF8YXJlYSkkL2k7dy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4geih0aGlzLHcucHJvcCxlLHQsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdy5wcm9wRml4W2VdfHxlXX0pfX0pLHcuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmdy5pc1hNTERvYyhlKXx8KHQ9dy5wcm9wRml4W3RdfHx0LGk9dy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmXCJzZXRcImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjplW3RdPW46aSYmXCJnZXRcImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOmVbdF19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihlKXt2YXIgdD13LmZpbmQuYXR0cihlLFwidGFiaW5kZXhcIik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6Z3QudGVzdChlLm5vZGVOYW1lKXx8eXQudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7XCJmb3JcIjpcImh0bWxGb3JcIixcImNsYXNzXCI6XCJjbGFzc05hbWVcIn19KSxoLm9wdFNlbGVjdGVkfHwody5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsbnVsbH0sc2V0OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTt0JiYodC5zZWxlY3RlZEluZGV4LHQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pLHcuZWFjaChbXCJ0YWJJbmRleFwiLFwicmVhZE9ubHlcIixcIm1heExlbmd0aFwiLFwiY2VsbFNwYWNpbmdcIixcImNlbGxQYWRkaW5nXCIsXCJyb3dTcGFuXCIsXCJjb2xTcGFuXCIsXCJ1c2VNYXBcIixcImZyYW1lQm9yZGVyXCIsXCJjb250ZW50RWRpdGFibGVcIl0sZnVuY3Rpb24oKXt3LnByb3BGaXhbdGhpcy50b0xvd2VyQ2FzZSgpXT10aGlzfSk7ZnVuY3Rpb24gdnQoZSl7cmV0dXJuKGUubWF0Y2goTSl8fFtdKS5qb2luKFwiIFwiKX1mdW5jdGlvbiBtdChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCJ9ZnVuY3Rpb24geHQoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpcInN0cmluZ1wiPT10eXBlb2YgZT9lLm1hdGNoKE0pfHxbXTpbXX13LmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHMsdT0wO2lmKGcoZSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih0KXt3KHRoaXMpLmFkZENsYXNzKGUuY2FsbCh0aGlzLHQsbXQodGhpcykpKX0pO2lmKCh0PXh0KGUpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT1tdChuKSxyPTE9PT1uLm5vZGVUeXBlJiZcIiBcIit2dChpKStcIiBcIil7YT0wO3doaWxlKG89dFthKytdKXIuaW5kZXhPZihcIiBcIitvK1wiIFwiKTwwJiYocis9bytcIiBcIik7aSE9PShzPXZ0KHIpKSYmbi5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscyx1PTA7aWYoZyhlKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3codGhpcykucmVtb3ZlQ2xhc3MoZS5jYWxsKHRoaXMsdCxtdCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cihcImNsYXNzXCIsXCJcIik7aWYoKHQ9eHQoZSkpLmxlbmd0aCl3aGlsZShuPXRoaXNbdSsrXSlpZihpPW10KG4pLHI9MT09PW4ubm9kZVR5cGUmJlwiIFwiK3Z0KGkpK1wiIFwiKXthPTA7d2hpbGUobz10W2ErK10pd2hpbGUoci5pbmRleE9mKFwiIFwiK28rXCIgXCIpPi0xKXI9ci5yZXBsYWNlKFwiIFwiK28rXCIgXCIsXCIgXCIpO2khPT0ocz12dChyKSkmJm4uc2V0QXR0cmlidXRlKFwiY2xhc3NcIixzKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10eXBlb2YgZSxyPVwic3RyaW5nXCI9PT1ufHxBcnJheS5pc0FycmF5KGUpO3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgdCYmcj90P3RoaXMuYWRkQ2xhc3MoZSk6dGhpcy5yZW1vdmVDbGFzcyhlKTpnKGUpP3RoaXMuZWFjaChmdW5jdGlvbihuKXt3KHRoaXMpLnRvZ2dsZUNsYXNzKGUuY2FsbCh0aGlzLG4sbXQodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxpLG8sYTtpZihyKXtpPTAsbz13KHRoaXMpLGE9eHQoZSk7d2hpbGUodD1hW2krK10pby5oYXNDbGFzcyh0KT9vLnJlbW92ZUNsYXNzKHQpOm8uYWRkQ2xhc3ModCl9ZWxzZSB2b2lkIDAhPT1lJiZcImJvb2xlYW5cIiE9PW58fCgodD1tdCh0aGlzKSkmJkouc2V0KHRoaXMsXCJfX2NsYXNzTmFtZV9fXCIsdCksdGhpcy5zZXRBdHRyaWJ1dGUmJnRoaXMuc2V0QXR0cmlidXRlKFwiY2xhc3NcIix0fHwhMT09PWU/XCJcIjpKLmdldCh0aGlzLFwiX19jbGFzc05hbWVfX1wiKXx8XCJcIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9XCIgXCIrZStcIiBcIjt3aGlsZShuPXRoaXNbcisrXSlpZigxPT09bi5ub2RlVHlwZSYmKFwiIFwiK3Z0KG10KG4pKStcIiBcIikuaW5kZXhPZih0KT4tMSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgYnQ9L1xcci9nO3cuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9dGhpc1swXTt7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gcj1nKGUpLHRoaXMuZWFjaChmdW5jdGlvbihuKXt2YXIgaTsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PShpPXI/ZS5jYWxsKHRoaXMsbix3KHRoaXMpLnZhbCgpKTplKT9pPVwiXCI6XCJudW1iZXJcIj09dHlwZW9mIGk/aSs9XCJcIjpBcnJheS5pc0FycmF5KGkpJiYoaT13Lm1hcChpLGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP1wiXCI6ZStcIlwifSkpLCh0PXcudmFsSG9va3NbdGhpcy50eXBlXXx8dy52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmXCJzZXRcImluIHQmJnZvaWQgMCE9PXQuc2V0KHRoaXMsaSxcInZhbHVlXCIpfHwodGhpcy52YWx1ZT1pKSl9KTtpZihpKXJldHVybih0PXcudmFsSG9va3NbaS50eXBlXXx8dy52YWxIb29rc1tpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmXCJnZXRcImluIHQmJnZvaWQgMCE9PShuPXQuZ2V0KGksXCJ2YWx1ZVwiKSk/bjpcInN0cmluZ1wiPT10eXBlb2Yobj1pLnZhbHVlKT9uLnJlcGxhY2UoYnQsXCJcIik6bnVsbD09bj9cIlwiOm59fX0pLHcuZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9dy5maW5kLmF0dHIoZSxcInZhbHVlXCIpO3JldHVybiBudWxsIT10P3Q6dnQody50ZXh0KGUpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpPWUub3B0aW9ucyxvPWUuc2VsZWN0ZWRJbmRleCxhPVwic2VsZWN0LW9uZVwiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhTihuLnBhcmVudE5vZGUsXCJvcHRncm91cFwiKSkpe2lmKHQ9dyhuKS52YWwoKSxhKXJldHVybiB0O3MucHVzaCh0KX1yZXR1cm4gc30sc2V0OmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpPWUub3B0aW9ucyxvPXcubWFrZUFycmF5KHQpLGE9aS5sZW5ndGg7d2hpbGUoYS0tKSgocj1pW2FdKS5zZWxlY3RlZD13LmluQXJyYXkody52YWxIb29rcy5vcHRpb24uZ2V0KHIpLG8pPi0xKSYmKG49ITApO3JldHVybiBufHwoZS5zZWxlY3RlZEluZGV4PS0xKSxvfX19fSksdy5lYWNoKFtcInJhZGlvXCIsXCJjaGVja2JveFwiXSxmdW5jdGlvbigpe3cudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD13LmluQXJyYXkodyhlKS52YWwoKSx0KT4tMX19LGguY2hlY2tPbnx8KHcudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKT9cIm9uXCI6ZS52YWx1ZX0pfSksaC5mb2N1c2luPVwib25mb2N1c2luXCJpbiBlO3ZhciB3dD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sVHQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07dy5leHRlbmQody5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbih0LG4saSxvKXt2YXIgYSxzLHUsbCxjLHAsZCxoLHY9W2l8fHJdLG09Zi5jYWxsKHQsXCJ0eXBlXCIpP3QudHlwZTp0LHg9Zi5jYWxsKHQsXCJuYW1lc3BhY2VcIik/dC5uYW1lc3BhY2Uuc3BsaXQoXCIuXCIpOltdO2lmKHM9aD11PWk9aXx8ciwzIT09aS5ub2RlVHlwZSYmOCE9PWkubm9kZVR5cGUmJiF3dC50ZXN0KG0rdy5ldmVudC50cmlnZ2VyZWQpJiYobS5pbmRleE9mKFwiLlwiKT4tMSYmKG09KHg9bS5zcGxpdChcIi5cIikpLnNoaWZ0KCkseC5zb3J0KCkpLGM9bS5pbmRleE9mKFwiOlwiKTwwJiZcIm9uXCIrbSx0PXRbdy5leHBhbmRvXT90Om5ldyB3LkV2ZW50KG0sXCJvYmplY3RcIj09dHlwZW9mIHQmJnQpLHQuaXNUcmlnZ2VyPW8/MjozLHQubmFtZXNwYWNlPXguam9pbihcIi5cIiksdC5ybmFtZXNwYWNlPXQubmFtZXNwYWNlP25ldyBSZWdFeHAoXCIoXnxcXFxcLilcIit4LmpvaW4oXCJcXFxcLig/Oi4qXFxcXC58KVwiKStcIihcXFxcLnwkKVwiKTpudWxsLHQucmVzdWx0PXZvaWQgMCx0LnRhcmdldHx8KHQudGFyZ2V0PWkpLG49bnVsbD09bj9bdF06dy5tYWtlQXJyYXkobixbdF0pLGQ9dy5ldmVudC5zcGVjaWFsW21dfHx7fSxvfHwhZC50cmlnZ2VyfHwhMSE9PWQudHJpZ2dlci5hcHBseShpLG4pKSl7aWYoIW8mJiFkLm5vQnViYmxlJiYheShpKSl7Zm9yKGw9ZC5kZWxlZ2F0ZVR5cGV8fG0sd3QudGVzdChsK20pfHwocz1zLnBhcmVudE5vZGUpO3M7cz1zLnBhcmVudE5vZGUpdi5wdXNoKHMpLHU9czt1PT09KGkub3duZXJEb2N1bWVudHx8cikmJnYucHVzaCh1LmRlZmF1bHRWaWV3fHx1LnBhcmVudFdpbmRvd3x8ZSl9YT0wO3doaWxlKChzPXZbYSsrXSkmJiF0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpaD1zLHQudHlwZT1hPjE/bDpkLmJpbmRUeXBlfHxtLChwPShKLmdldChzLFwiZXZlbnRzXCIpfHx7fSlbdC50eXBlXSYmSi5nZXQocyxcImhhbmRsZVwiKSkmJnAuYXBwbHkocyxuKSwocD1jJiZzW2NdKSYmcC5hcHBseSYmWShzKSYmKHQucmVzdWx0PXAuYXBwbHkocyxuKSwhMT09PXQucmVzdWx0JiZ0LnByZXZlbnREZWZhdWx0KCkpO3JldHVybiB0LnR5cGU9bSxvfHx0LmlzRGVmYXVsdFByZXZlbnRlZCgpfHxkLl9kZWZhdWx0JiYhMSE9PWQuX2RlZmF1bHQuYXBwbHkodi5wb3AoKSxuKXx8IVkoaSl8fGMmJmcoaVttXSkmJiF5KGkpJiYoKHU9aVtjXSkmJihpW2NdPW51bGwpLHcuZXZlbnQudHJpZ2dlcmVkPW0sdC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZoLmFkZEV2ZW50TGlzdGVuZXIobSxUdCksaVttXSgpLHQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmaC5yZW1vdmVFdmVudExpc3RlbmVyKG0sVHQpLHcuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCx1JiYoaVtjXT11KSksdC5yZXN1bHR9fSxzaW11bGF0ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dy5leHRlbmQobmV3IHcuRXZlbnQsbix7dHlwZTplLGlzU2ltdWxhdGVkOiEwfSk7dy5ldmVudC50cmlnZ2VyKHIsbnVsbCx0KX19KSx3LmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt3LmV2ZW50LnRyaWdnZXIoZSx0LHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpc1swXTtpZihuKXJldHVybiB3LmV2ZW50LnRyaWdnZXIoZSx0LG4sITApfX0pLGguZm9jdXNpbnx8dy5lYWNoKHtmb2N1czpcImZvY3VzaW5cIixibHVyOlwiZm9jdXNvdXRcIn0sZnVuY3Rpb24oZSx0KXt2YXIgbj1mdW5jdGlvbihlKXt3LmV2ZW50LnNpbXVsYXRlKHQsZS50YXJnZXQsdy5ldmVudC5maXgoZSkpfTt3LmV2ZW50LnNwZWNpYWxbdF09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGk9Si5hY2Nlc3Mocix0KTtpfHxyLmFkZEV2ZW50TGlzdGVuZXIoZSxuLCEwKSxKLmFjY2VzcyhyLHQsKGl8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciByPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxpPUouYWNjZXNzKHIsdCktMTtpP0ouYWNjZXNzKHIsdCxpKTooci5yZW1vdmVFdmVudExpc3RlbmVyKGUsbiwhMCksSi5yZW1vdmUocix0KSl9fX0pO3ZhciBDdD1lLmxvY2F0aW9uLEV0PURhdGUubm93KCksa3Q9L1xcPy87dy5wYXJzZVhNTD1mdW5jdGlvbih0KXt2YXIgbjtpZighdHx8XCJzdHJpbmdcIiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7dHJ5e249KG5ldyBlLkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKHQsXCJ0ZXh0L3htbFwiKX1jYXRjaChlKXtuPXZvaWQgMH1yZXR1cm4gbiYmIW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJwYXJzZXJlcnJvclwiKS5sZW5ndGh8fHcuZXJyb3IoXCJJbnZhbGlkIFhNTDogXCIrdCksbn07dmFyIFN0PS9cXFtcXF0kLyxEdD0vXFxyP1xcbi9nLE50PS9eKD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSxBdD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7ZnVuY3Rpb24ganQoZSx0LG4scil7dmFyIGk7aWYoQXJyYXkuaXNBcnJheSh0KSl3LmVhY2godCxmdW5jdGlvbih0LGkpe258fFN0LnRlc3QoZSk/cihlLGkpOmp0KGUrXCJbXCIrKFwib2JqZWN0XCI9PXR5cGVvZiBpJiZudWxsIT1pP3Q6XCJcIikrXCJdXCIsaSxuLHIpfSk7ZWxzZSBpZihufHxcIm9iamVjdFwiIT09eCh0KSlyKGUsdCk7ZWxzZSBmb3IoaSBpbiB0KWp0KGUrXCJbXCIraStcIl1cIix0W2ldLG4scil9dy5wYXJhbT1mdW5jdGlvbihlLHQpe3ZhciBuLHI9W10saT1mdW5jdGlvbihlLHQpe3ZhciBuPWcodCk/dCgpOnQ7cltyLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGUpK1wiPVwiK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uP1wiXCI6bil9O2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhdy5pc1BsYWluT2JqZWN0KGUpKXcuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpanQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbihcIiZcIil9LHcuZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdy5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBlPXcucHJvcCh0aGlzLFwiZWxlbWVudHNcIik7cmV0dXJuIGU/dy5tYWtlQXJyYXkoZSk6dGhpc30pLmZpbHRlcihmdW5jdGlvbigpe3ZhciBlPXRoaXMudHlwZTtyZXR1cm4gdGhpcy5uYW1lJiYhdyh0aGlzKS5pcyhcIjpkaXNhYmxlZFwiKSYmQXQudGVzdCh0aGlzLm5vZGVOYW1lKSYmIU50LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPXcodGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP3cubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShEdCxcIlxcclxcblwiKX19KTp7bmFtZTp0Lm5hbWUsdmFsdWU6bi5yZXBsYWNlKER0LFwiXFxyXFxuXCIpfX0pLmdldCgpfX0pO3ZhciBxdD0vJTIwL2csTHQ9LyMuKiQvLEh0PS8oWz8mXSlfPVteJl0qLyxPdD0vXiguKj8pOlsgXFx0XSooW15cXHJcXG5dKikkL2dtLFB0PS9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLE10PS9eKD86R0VUfEhFQUQpJC8sUnQ9L15cXC9cXC8vLEl0PXt9LFd0PXt9LCR0PVwiKi9cIi5jb25jYXQoXCIqXCIpLEJ0PXIuY3JlYXRlRWxlbWVudChcImFcIik7QnQuaHJlZj1DdC5ocmVmO2Z1bmN0aW9uIEZ0KGUpe3JldHVybiBmdW5jdGlvbih0LG4pe1wic3RyaW5nXCIhPXR5cGVvZiB0JiYobj10LHQ9XCIqXCIpO3ZhciByLGk9MCxvPXQudG9Mb3dlckNhc2UoKS5tYXRjaChNKXx8W107aWYoZyhuKSl3aGlsZShyPW9baSsrXSlcIitcIj09PXJbMF0/KHI9ci5zbGljZSgxKXx8XCIqXCIsKGVbcl09ZVtyXXx8W10pLnVuc2hpZnQobikpOihlW3JdPWVbcl18fFtdKS5wdXNoKG4pfX1mdW5jdGlvbiBfdChlLHQsbixyKXt2YXIgaT17fSxvPWU9PT1XdDtmdW5jdGlvbiBhKHMpe3ZhciB1O3JldHVybiBpW3NdPSEwLHcuZWFjaChlW3NdfHxbXSxmdW5jdGlvbihlLHMpe3ZhciBsPXModCxuLHIpO3JldHVyblwic3RyaW5nXCIhPXR5cGVvZiBsfHxvfHxpW2xdP28/ISh1PWwpOnZvaWQgMDoodC5kYXRhVHlwZXMudW5zaGlmdChsKSxhKGwpLCExKX0pLHV9cmV0dXJuIGEodC5kYXRhVHlwZXNbMF0pfHwhaVtcIipcIl0mJmEoXCIqXCIpfWZ1bmN0aW9uIHp0KGUsdCl7dmFyIG4scixpPXcuYWpheFNldHRpbmdzLmZsYXRPcHRpb25zfHx7fTtmb3IobiBpbiB0KXZvaWQgMCE9PXRbbl0mJigoaVtuXT9lOnJ8fChyPXt9KSlbbl09dFtuXSk7cmV0dXJuIHImJncuZXh0ZW5kKCEwLGUsciksZX1mdW5jdGlvbiBYdChlLHQsbil7dmFyIHIsaSxvLGEscz1lLmNvbnRlbnRzLHU9ZS5kYXRhVHlwZXM7d2hpbGUoXCIqXCI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKFwiQ29udGVudC1UeXBlXCIpKTtpZihyKWZvcihpIGluIHMpaWYoc1tpXSYmc1tpXS50ZXN0KHIpKXt1LnVuc2hpZnQoaSk7YnJlYWt9aWYodVswXWluIG4pbz11WzBdO2Vsc2V7Zm9yKGkgaW4gbil7aWYoIXVbMF18fGUuY29udmVydGVyc1tpK1wiIFwiK3VbMF1dKXtvPWk7YnJlYWt9YXx8KGE9aSl9bz1vfHxhfWlmKG8pcmV0dXJuIG8hPT11WzBdJiZ1LnVuc2hpZnQobyksbltvXX1mdW5jdGlvbiBVdChlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKFwiKlwiPT09bylvPXU7ZWxzZSBpZihcIipcIiE9PXUmJnUhPT1vKXtpZighKGE9bFt1K1wiIFwiK29dfHxsW1wiKiBcIitvXSkpZm9yKGkgaW4gbClpZigocz1pLnNwbGl0KFwiIFwiKSlbMV09PT1vJiYoYT1sW3UrXCIgXCIrc1swXV18fGxbXCIqIFwiK3NbMF1dKSl7ITA9PT1hP2E9bFtpXTohMCE9PWxbaV0mJihvPXNbMF0sYy51bnNoaWZ0KHNbMV0pKTticmVha31pZighMCE9PWEpaWYoYSYmZVtcInRocm93c1wiXSl0PWEodCk7ZWxzZSB0cnl7dD1hKHQpfWNhdGNoKGUpe3JldHVybntzdGF0ZTpcInBhcnNlcmVycm9yXCIsZXJyb3I6YT9lOlwiTm8gY29udmVyc2lvbiBmcm9tIFwiK3UrXCIgdG8gXCIrb319fXJldHVybntzdGF0ZTpcInN1Y2Nlc3NcIixkYXRhOnR9fXcuZXh0ZW5kKHthY3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxhamF4U2V0dGluZ3M6e3VybDpDdC5ocmVmLHR5cGU6XCJHRVRcIixpc0xvY2FsOlB0LnRlc3QoQ3QucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZTpcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOFwiLGFjY2VwdHM6e1wiKlwiOiR0LHRleHQ6XCJ0ZXh0L3BsYWluXCIsaHRtbDpcInRleHQvaHRtbFwiLHhtbDpcImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWxcIixqc29uOlwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0XCJ9LGNvbnRlbnRzOnt4bWw6L1xcYnhtbFxcYi8saHRtbDovXFxiaHRtbC8sanNvbjovXFxianNvblxcYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6XCJyZXNwb25zZVhNTFwiLHRleHQ6XCJyZXNwb25zZVRleHRcIixqc29uOlwicmVzcG9uc2VKU09OXCJ9LGNvbnZlcnRlcnM6e1wiKiB0ZXh0XCI6U3RyaW5nLFwidGV4dCBodG1sXCI6ITAsXCJ0ZXh0IGpzb25cIjpKU09OLnBhcnNlLFwidGV4dCB4bWxcIjp3LnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD96dCh6dChlLHcuYWpheFNldHRpbmdzKSx0KTp6dCh3LmFqYXhTZXR0aW5ncyxlKX0sYWpheFByZWZpbHRlcjpGdChJdCksYWpheFRyYW5zcG9ydDpGdChXdCksYWpheDpmdW5jdGlvbih0LG4pe1wib2JqZWN0XCI9PXR5cGVvZiB0JiYobj10LHQ9dm9pZCAwKSxuPW58fHt9O3ZhciBpLG8sYSxzLHUsbCxjLGYscCxkLGg9dy5hamF4U2V0dXAoe30sbiksZz1oLmNvbnRleHR8fGgseT1oLmNvbnRleHQmJihnLm5vZGVUeXBlfHxnLmpxdWVyeSk/dyhnKTp3LmV2ZW50LHY9dy5EZWZlcnJlZCgpLG09dy5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKSx4PWguc3RhdHVzQ29kZXx8e30sYj17fSxUPXt9LEM9XCJjYW5jZWxlZFwiLEU9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihlKXt2YXIgdDtpZihjKXtpZighcyl7cz17fTt3aGlsZSh0PU90LmV4ZWMoYSkpc1t0WzFdLnRvTG93ZXJDYXNlKCldPXRbMl19dD1zW2UudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PXQ/bnVsbDp0fSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gYz9hOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09YyYmKGU9VFtlLnRvTG93ZXJDYXNlKCldPVRbZS50b0xvd2VyQ2FzZSgpXXx8ZSxiW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWMmJihoLm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihjKUUuYWx3YXlzKGVbRS5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpeFt0XT1beFt0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8QztyZXR1cm4gaSYmaS5hYm9ydCh0KSxrKDAsdCksdGhpc319O2lmKHYucHJvbWlzZShFKSxoLnVybD0oKHR8fGgudXJsfHxDdC5ocmVmKStcIlwiKS5yZXBsYWNlKFJ0LEN0LnByb3RvY29sK1wiLy9cIiksaC50eXBlPW4ubWV0aG9kfHxuLnR5cGV8fGgubWV0aG9kfHxoLnR5cGUsaC5kYXRhVHlwZXM9KGguZGF0YVR5cGV8fFwiKlwiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKE0pfHxbXCJcIl0sbnVsbD09aC5jcm9zc0RvbWFpbil7bD1yLmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3RyeXtsLmhyZWY9aC51cmwsbC5ocmVmPWwuaHJlZixoLmNyb3NzRG9tYWluPUJ0LnByb3RvY29sK1wiLy9cIitCdC5ob3N0IT1sLnByb3RvY29sK1wiLy9cIitsLmhvc3R9Y2F0Y2goZSl7aC5jcm9zc0RvbWFpbj0hMH19aWYoaC5kYXRhJiZoLnByb2Nlc3NEYXRhJiZcInN0cmluZ1wiIT10eXBlb2YgaC5kYXRhJiYoaC5kYXRhPXcucGFyYW0oaC5kYXRhLGgudHJhZGl0aW9uYWwpKSxfdChJdCxoLG4sRSksYylyZXR1cm4gRTsoZj13LmV2ZW50JiZoLmdsb2JhbCkmJjA9PXcuYWN0aXZlKysmJncuZXZlbnQudHJpZ2dlcihcImFqYXhTdGFydFwiKSxoLnR5cGU9aC50eXBlLnRvVXBwZXJDYXNlKCksaC5oYXNDb250ZW50PSFNdC50ZXN0KGgudHlwZSksbz1oLnVybC5yZXBsYWNlKEx0LFwiXCIpLGguaGFzQ29udGVudD9oLmRhdGEmJmgucHJvY2Vzc0RhdGEmJjA9PT0oaC5jb250ZW50VHlwZXx8XCJcIikuaW5kZXhPZihcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKSYmKGguZGF0YT1oLmRhdGEucmVwbGFjZShxdCxcIitcIikpOihkPWgudXJsLnNsaWNlKG8ubGVuZ3RoKSxoLmRhdGEmJihoLnByb2Nlc3NEYXRhfHxcInN0cmluZ1wiPT10eXBlb2YgaC5kYXRhKSYmKG8rPShrdC50ZXN0KG8pP1wiJlwiOlwiP1wiKStoLmRhdGEsZGVsZXRlIGguZGF0YSksITE9PT1oLmNhY2hlJiYobz1vLnJlcGxhY2UoSHQsXCIkMVwiKSxkPShrdC50ZXN0KG8pP1wiJlwiOlwiP1wiKStcIl89XCIrRXQrKytkKSxoLnVybD1vK2QpLGguaWZNb2RpZmllZCYmKHcubGFzdE1vZGlmaWVkW29dJiZFLnNldFJlcXVlc3RIZWFkZXIoXCJJZi1Nb2RpZmllZC1TaW5jZVwiLHcubGFzdE1vZGlmaWVkW29dKSx3LmV0YWdbb10mJkUuc2V0UmVxdWVzdEhlYWRlcihcIklmLU5vbmUtTWF0Y2hcIix3LmV0YWdbb10pKSwoaC5kYXRhJiZoLmhhc0NvbnRlbnQmJiExIT09aC5jb250ZW50VHlwZXx8bi5jb250ZW50VHlwZSkmJkUuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLGguY29udGVudFR5cGUpLEUuc2V0UmVxdWVzdEhlYWRlcihcIkFjY2VwdFwiLGguZGF0YVR5cGVzWzBdJiZoLmFjY2VwdHNbaC5kYXRhVHlwZXNbMF1dP2guYWNjZXB0c1toLmRhdGFUeXBlc1swXV0rKFwiKlwiIT09aC5kYXRhVHlwZXNbMF0/XCIsIFwiKyR0K1wiOyBxPTAuMDFcIjpcIlwiKTpoLmFjY2VwdHNbXCIqXCJdKTtmb3IocCBpbiBoLmhlYWRlcnMpRS5zZXRSZXF1ZXN0SGVhZGVyKHAsaC5oZWFkZXJzW3BdKTtpZihoLmJlZm9yZVNlbmQmJighMT09PWguYmVmb3JlU2VuZC5jYWxsKGcsRSxoKXx8YykpcmV0dXJuIEUuYWJvcnQoKTtpZihDPVwiYWJvcnRcIixtLmFkZChoLmNvbXBsZXRlKSxFLmRvbmUoaC5zdWNjZXNzKSxFLmZhaWwoaC5lcnJvciksaT1fdChXdCxoLG4sRSkpe2lmKEUucmVhZHlTdGF0ZT0xLGYmJnkudHJpZ2dlcihcImFqYXhTZW5kXCIsW0UsaF0pLGMpcmV0dXJuIEU7aC5hc3luYyYmaC50aW1lb3V0PjAmJih1PWUuc2V0VGltZW91dChmdW5jdGlvbigpe0UuYWJvcnQoXCJ0aW1lb3V0XCIpfSxoLnRpbWVvdXQpKTt0cnl7Yz0hMSxpLnNlbmQoYixrKX1jYXRjaChlKXtpZihjKXRocm93IGU7aygtMSxlKX19ZWxzZSBrKC0xLFwiTm8gVHJhbnNwb3J0XCIpO2Z1bmN0aW9uIGsodCxuLHIscyl7dmFyIGwscCxkLGIsVCxDPW47Y3x8KGM9ITAsdSYmZS5jbGVhclRpbWVvdXQodSksaT12b2lkIDAsYT1zfHxcIlwiLEUucmVhZHlTdGF0ZT10PjA/NDowLGw9dD49MjAwJiZ0PDMwMHx8MzA0PT09dCxyJiYoYj1YdChoLEUscikpLGI9VXQoaCxiLEUsbCksbD8oaC5pZk1vZGlmaWVkJiYoKFQ9RS5nZXRSZXNwb25zZUhlYWRlcihcIkxhc3QtTW9kaWZpZWRcIikpJiYody5sYXN0TW9kaWZpZWRbb109VCksKFQ9RS5nZXRSZXNwb25zZUhlYWRlcihcImV0YWdcIikpJiYody5ldGFnW29dPVQpKSwyMDQ9PT10fHxcIkhFQURcIj09PWgudHlwZT9DPVwibm9jb250ZW50XCI6MzA0PT09dD9DPVwibm90bW9kaWZpZWRcIjooQz1iLnN0YXRlLHA9Yi5kYXRhLGw9IShkPWIuZXJyb3IpKSk6KGQ9QywhdCYmQ3x8KEM9XCJlcnJvclwiLHQ8MCYmKHQ9MCkpKSxFLnN0YXR1cz10LEUuc3RhdHVzVGV4dD0obnx8QykrXCJcIixsP3YucmVzb2x2ZVdpdGgoZyxbcCxDLEVdKTp2LnJlamVjdFdpdGgoZyxbRSxDLGRdKSxFLnN0YXR1c0NvZGUoeCkseD12b2lkIDAsZiYmeS50cmlnZ2VyKGw/XCJhamF4U3VjY2Vzc1wiOlwiYWpheEVycm9yXCIsW0UsaCxsP3A6ZF0pLG0uZmlyZVdpdGgoZyxbRSxDXSksZiYmKHkudHJpZ2dlcihcImFqYXhDb21wbGV0ZVwiLFtFLGhdKSwtLXcuYWN0aXZlfHx3LmV2ZW50LnRyaWdnZXIoXCJhamF4U3RvcFwiKSkpfXJldHVybiBFfSxnZXRKU09OOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdy5nZXQoZSx0LG4sXCJqc29uXCIpfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdy5nZXQoZSx2b2lkIDAsdCxcInNjcmlwdFwiKX19KSx3LmVhY2goW1wiZ2V0XCIsXCJwb3N0XCJdLGZ1bmN0aW9uKGUsdCl7d1t0XT1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gZyhuKSYmKGk9aXx8cixyPW4sbj12b2lkIDApLHcuYWpheCh3LmV4dGVuZCh7dXJsOmUsdHlwZTp0LGRhdGFUeXBlOmksZGF0YTpuLHN1Y2Nlc3M6cn0sdy5pc1BsYWluT2JqZWN0KGUpJiZlKSl9fSksdy5fZXZhbFVybD1mdW5jdGlvbihlKXtyZXR1cm4gdy5hamF4KHt1cmw6ZSx0eXBlOlwiR0VUXCIsZGF0YVR5cGU6XCJzY3JpcHRcIixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsXCJ0aHJvd3NcIjohMH0pfSx3LmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpc1swXSYmKGcoZSkmJihlPWUuY2FsbCh0aGlzWzBdKSksdD13KGUsdGhpc1swXS5vd25lckRvY3VtZW50KS5lcSgwKS5jbG9uZSghMCksdGhpc1swXS5wYXJlbnROb2RlJiZ0Lmluc2VydEJlZm9yZSh0aGlzWzBdKSx0Lm1hcChmdW5jdGlvbigpe3ZhciBlPXRoaXM7d2hpbGUoZS5maXJzdEVsZW1lbnRDaGlsZCllPWUuZmlyc3RFbGVtZW50Q2hpbGQ7cmV0dXJuIGV9KS5hcHBlbmQodGhpcykpLHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihlKXtyZXR1cm4gZyhlKT90aGlzLmVhY2goZnVuY3Rpb24odCl7dyh0aGlzKS53cmFwSW5uZXIoZS5jYWxsKHRoaXMsdCkpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dyh0aGlzKSxuPXQuY29udGVudHMoKTtuLmxlbmd0aD9uLndyYXBBbGwoZSk6dC5hcHBlbmQoZSl9KX0sd3JhcDpmdW5jdGlvbihlKXt2YXIgdD1nKGUpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obil7dyh0aGlzKS53cmFwQWxsKHQ/ZS5jYWxsKHRoaXMsbik6ZSl9KX0sdW53cmFwOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnBhcmVudChlKS5ub3QoXCJib2R5XCIpLmVhY2goZnVuY3Rpb24oKXt3KHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLHcuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hdy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sdy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LHcuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IGUuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIFZ0PXswOjIwMCwxMjIzOjIwNH0sR3Q9dy5hamF4U2V0dGluZ3MueGhyKCk7aC5jb3JzPSEhR3QmJlwid2l0aENyZWRlbnRpYWxzXCJpbiBHdCxoLmFqYXg9R3Q9ISFHdCx3LmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24odCl7dmFyIG4scjtpZihoLmNvcnN8fEd0JiYhdC5jcm9zc0RvbWFpbilyZXR1cm57c2VuZDpmdW5jdGlvbihpLG8pe3ZhciBhLHM9dC54aHIoKTtpZihzLm9wZW4odC50eXBlLHQudXJsLHQuYXN5bmMsdC51c2VybmFtZSx0LnBhc3N3b3JkKSx0LnhockZpZWxkcylmb3IoYSBpbiB0LnhockZpZWxkcylzW2FdPXQueGhyRmllbGRzW2FdO3QubWltZVR5cGUmJnMub3ZlcnJpZGVNaW1lVHlwZSYmcy5vdmVycmlkZU1pbWVUeXBlKHQubWltZVR5cGUpLHQuY3Jvc3NEb21haW58fGlbXCJYLVJlcXVlc3RlZC1XaXRoXCJdfHwoaVtcIlgtUmVxdWVzdGVkLVdpdGhcIl09XCJYTUxIdHRwUmVxdWVzdFwiKTtmb3IoYSBpbiBpKXMuc2V0UmVxdWVzdEhlYWRlcihhLGlbYV0pO249ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7biYmKG49cj1zLm9ubG9hZD1zLm9uZXJyb3I9cy5vbmFib3J0PXMub250aW1lb3V0PXMub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsXCJhYm9ydFwiPT09ZT9zLmFib3J0KCk6XCJlcnJvclwiPT09ZT9cIm51bWJlclwiIT10eXBlb2Ygcy5zdGF0dXM/bygwLFwiZXJyb3JcIik6byhzLnN0YXR1cyxzLnN0YXR1c1RleHQpOm8oVnRbcy5zdGF0dXNdfHxzLnN0YXR1cyxzLnN0YXR1c1RleHQsXCJ0ZXh0XCIhPT0ocy5yZXNwb25zZVR5cGV8fFwidGV4dFwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIHMucmVzcG9uc2VUZXh0P3tiaW5hcnk6cy5yZXNwb25zZX06e3RleHQ6cy5yZXNwb25zZVRleHR9LHMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19LHMub25sb2FkPW4oKSxyPXMub25lcnJvcj1zLm9udGltZW91dD1uKFwiZXJyb3JcIiksdm9pZCAwIT09cy5vbmFib3J0P3Mub25hYm9ydD1yOnMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXMucmVhZHlTdGF0ZSYmZS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7biYmcigpfSl9LG49bihcImFib3J0XCIpO3RyeXtzLnNlbmQodC5oYXNDb250ZW50JiZ0LmRhdGF8fG51bGwpfWNhdGNoKGUpe2lmKG4pdGhyb3cgZX19LGFib3J0OmZ1bmN0aW9uKCl7biYmbigpfX19KSx3LmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7ZS5jcm9zc0RvbWFpbiYmKGUuY29udGVudHMuc2NyaXB0PSExKX0pLHcuYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6XCJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdFwifSxjb250ZW50czp7c2NyaXB0Oi9cXGIoPzpqYXZhfGVjbWEpc2NyaXB0XFxiL30sY29udmVydGVyczp7XCJ0ZXh0IHNjcmlwdFwiOmZ1bmN0aW9uKGUpe3JldHVybiB3Lmdsb2JhbEV2YWwoZSksZX19fSksdy5hamF4UHJlZmlsdGVyKFwic2NyaXB0XCIsZnVuY3Rpb24oZSl7dm9pZCAwPT09ZS5jYWNoZSYmKGUuY2FjaGU9ITEpLGUuY3Jvc3NEb21haW4mJihlLnR5cGU9XCJHRVRcIil9KSx3LmFqYXhUcmFuc3BvcnQoXCJzY3JpcHRcIixmdW5jdGlvbihlKXtpZihlLmNyb3NzRG9tYWluKXt2YXIgdCxuO3JldHVybntzZW5kOmZ1bmN0aW9uKGksbyl7dD13KFwiPHNjcmlwdD5cIikucHJvcCh7Y2hhcnNldDplLnNjcmlwdENoYXJzZXQsc3JjOmUudXJsfSkub24oXCJsb2FkIGVycm9yXCIsbj1mdW5jdGlvbihlKXt0LnJlbW92ZSgpLG49bnVsbCxlJiZvKFwiZXJyb3JcIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxyLmhlYWQuYXBwZW5kQ2hpbGQodFswXSl9LGFib3J0OmZ1bmN0aW9uKCl7biYmbigpfX19fSk7dmFyIFl0PVtdLFF0PS8oPSlcXD8oPz0mfCQpfFxcP1xcPy87dy5hamF4U2V0dXAoe2pzb25wOlwiY2FsbGJhY2tcIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9WXQucG9wKCl8fHcuZXhwYW5kbytcIl9cIitFdCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksdy5hamF4UHJlZmlsdGVyKFwianNvbiBqc29ucFwiLGZ1bmN0aW9uKHQsbixyKXt2YXIgaSxvLGEscz0hMSE9PXQuanNvbnAmJihRdC50ZXN0KHQudXJsKT9cInVybFwiOlwic3RyaW5nXCI9PXR5cGVvZiB0LmRhdGEmJjA9PT0odC5jb250ZW50VHlwZXx8XCJcIikuaW5kZXhPZihcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKSYmUXQudGVzdCh0LmRhdGEpJiZcImRhdGFcIik7aWYoc3x8XCJqc29ucFwiPT09dC5kYXRhVHlwZXNbMF0pcmV0dXJuIGk9dC5qc29ucENhbGxiYWNrPWcodC5qc29ucENhbGxiYWNrKT90Lmpzb25wQ2FsbGJhY2soKTp0Lmpzb25wQ2FsbGJhY2sscz90W3NdPXRbc10ucmVwbGFjZShRdCxcIiQxXCIraSk6ITEhPT10Lmpzb25wJiYodC51cmwrPShrdC50ZXN0KHQudXJsKT9cIiZcIjpcIj9cIikrdC5qc29ucCtcIj1cIitpKSx0LmNvbnZlcnRlcnNbXCJzY3JpcHQganNvblwiXT1mdW5jdGlvbigpe3JldHVybiBhfHx3LmVycm9yKGkrXCIgd2FzIG5vdCBjYWxsZWRcIiksYVswXX0sdC5kYXRhVHlwZXNbMF09XCJqc29uXCIsbz1lW2ldLGVbaV09ZnVuY3Rpb24oKXthPWFyZ3VtZW50c30sci5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1vP3coZSkucmVtb3ZlUHJvcChpKTplW2ldPW8sdFtpXSYmKHQuanNvbnBDYWxsYmFjaz1uLmpzb25wQ2FsbGJhY2ssWXQucHVzaChpKSksYSYmZyhvKSYmbyhhWzBdKSxhPW89dm9pZCAwfSksXCJzY3JpcHRcIn0pLGguY3JlYXRlSFRNTERvY3VtZW50PWZ1bmN0aW9uKCl7dmFyIGU9ci5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoXCJcIikuYm9keTtyZXR1cm4gZS5pbm5lckhUTUw9XCI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPlwiLDI9PT1lLmNoaWxkTm9kZXMubGVuZ3RofSgpLHcucGFyc2VIVE1MPWZ1bmN0aW9uKGUsdCxuKXtpZihcInN0cmluZ1wiIT10eXBlb2YgZSlyZXR1cm5bXTtcImJvb2xlYW5cIj09dHlwZW9mIHQmJihuPXQsdD0hMSk7dmFyIGksbyxhO3JldHVybiB0fHwoaC5jcmVhdGVIVE1MRG9jdW1lbnQ/KChpPSh0PXIuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KFwiXCIpKS5jcmVhdGVFbGVtZW50KFwiYmFzZVwiKSkuaHJlZj1yLmxvY2F0aW9uLmhyZWYsdC5oZWFkLmFwcGVuZENoaWxkKGkpKTp0PXIpLG89QS5leGVjKGUpLGE9IW4mJltdLG8/W3QuY3JlYXRlRWxlbWVudChvWzFdKV06KG89eGUoW2VdLHQsYSksYSYmYS5sZW5ndGgmJncoYSkucmVtb3ZlKCksdy5tZXJnZShbXSxvLmNoaWxkTm9kZXMpKX0sdy5mbi5sb2FkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT10aGlzLHM9ZS5pbmRleE9mKFwiIFwiKTtyZXR1cm4gcz4tMSYmKHI9dnQoZS5zbGljZShzKSksZT1lLnNsaWNlKDAscykpLGcodCk/KG49dCx0PXZvaWQgMCk6dCYmXCJvYmplY3RcIj09dHlwZW9mIHQmJihpPVwiUE9TVFwiKSxhLmxlbmd0aD4wJiZ3LmFqYXgoe3VybDplLHR5cGU6aXx8XCJHRVRcIixkYXRhVHlwZTpcImh0bWxcIixkYXRhOnR9KS5kb25lKGZ1bmN0aW9uKGUpe289YXJndW1lbnRzLGEuaHRtbChyP3coXCI8ZGl2PlwiKS5hcHBlbmQody5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSx3LmVhY2goW1wiYWpheFN0YXJ0XCIsXCJhamF4U3RvcFwiLFwiYWpheENvbXBsZXRlXCIsXCJhamF4RXJyb3JcIixcImFqYXhTdWNjZXNzXCIsXCJhamF4U2VuZFwiXSxmdW5jdGlvbihlLHQpe3cuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSx3LmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihlKXtyZXR1cm4gdy5ncmVwKHcudGltZXJzLGZ1bmN0aW9uKHQpe3JldHVybiBlPT09dC5lbGVtfSkubGVuZ3RofSx3Lm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPXcuY3NzKGUsXCJwb3NpdGlvblwiKSxmPXcoZSkscD17fTtcInN0YXRpY1wiPT09YyYmKGUuc3R5bGUucG9zaXRpb249XCJyZWxhdGl2ZVwiKSxzPWYub2Zmc2V0KCksbz13LmNzcyhlLFwidG9wXCIpLHU9dy5jc3MoZSxcImxlZnRcIiksKGw9KFwiYWJzb2x1dGVcIj09PWN8fFwiZml4ZWRcIj09PWMpJiYobyt1KS5pbmRleE9mKFwiYXV0b1wiKT4tMSk/KGE9KHI9Zi5wb3NpdGlvbigpKS50b3AsaT1yLmxlZnQpOihhPXBhcnNlRmxvYXQobyl8fDAsaT1wYXJzZUZsb2F0KHUpfHwwKSxnKHQpJiYodD10LmNhbGwoZSxuLHcuZXh0ZW5kKHt9LHMpKSksbnVsbCE9dC50b3AmJihwLnRvcD10LnRvcC1zLnRvcCthKSxudWxsIT10LmxlZnQmJihwLmxlZnQ9dC5sZWZ0LXMubGVmdCtpKSxcInVzaW5nXCJpbiB0P3QudXNpbmcuY2FsbChlLHApOmYuY3NzKHApfX0sdy5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihlKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1lP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3cub2Zmc2V0LnNldE9mZnNldCh0aGlzLGUsdCl9KTt2YXIgdCxuLHI9dGhpc1swXTtpZihyKXJldHVybiByLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyh0PXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDp0LnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6dC5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfX0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgZSx0LG4scj10aGlzWzBdLGk9e3RvcDowLGxlZnQ6MH07aWYoXCJmaXhlZFwiPT09dy5jc3MocixcInBvc2l0aW9uXCIpKXQ9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle3Q9dGhpcy5vZmZzZXQoKSxuPXIub3duZXJEb2N1bWVudCxlPXIub2Zmc2V0UGFyZW50fHxuLmRvY3VtZW50RWxlbWVudDt3aGlsZShlJiYoZT09PW4uYm9keXx8ZT09PW4uZG9jdW1lbnRFbGVtZW50KSYmXCJzdGF0aWNcIj09PXcuY3NzKGUsXCJwb3NpdGlvblwiKSllPWUucGFyZW50Tm9kZTtlJiZlIT09ciYmMT09PWUubm9kZVR5cGUmJigoaT13KGUpLm9mZnNldCgpKS50b3ArPXcuY3NzKGUsXCJib3JkZXJUb3BXaWR0aFwiLCEwKSxpLmxlZnQrPXcuY3NzKGUsXCJib3JkZXJMZWZ0V2lkdGhcIiwhMCkpfXJldHVybnt0b3A6dC50b3AtaS50b3Atdy5jc3MocixcIm1hcmdpblRvcFwiLCEwKSxsZWZ0OnQubGVmdC1pLmxlZnQtdy5jc3MocixcIm1hcmdpbkxlZnRcIiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnQ7d2hpbGUoZSYmXCJzdGF0aWNcIj09PXcuY3NzKGUsXCJwb3NpdGlvblwiKSllPWUub2Zmc2V0UGFyZW50O3JldHVybiBlfHxiZX0pfX0pLHcuZWFjaCh7c2Nyb2xsTGVmdDpcInBhZ2VYT2Zmc2V0XCIsc2Nyb2xsVG9wOlwicGFnZVlPZmZzZXRcIn0sZnVuY3Rpb24oZSx0KXt2YXIgbj1cInBhZ2VZT2Zmc2V0XCI9PT10O3cuZm5bZV09ZnVuY3Rpb24ocil7cmV0dXJuIHoodGhpcyxmdW5jdGlvbihlLHIsaSl7dmFyIG87aWYoeShlKT9vPWU6OT09PWUubm9kZVR5cGUmJihvPWUuZGVmYXVsdFZpZXcpLHZvaWQgMD09PWkpcmV0dXJuIG8/b1t0XTplW3JdO28/by5zY3JvbGxUbyhuP28ucGFnZVhPZmZzZXQ6aSxuP2k6by5wYWdlWU9mZnNldCk6ZVtyXT1pfSxlLHIsYXJndW1lbnRzLmxlbmd0aCl9fSksdy5lYWNoKFtcInRvcFwiLFwibGVmdFwiXSxmdW5jdGlvbihlLHQpe3cuY3NzSG9va3NbdF09X2UoaC5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGUsbil7aWYobilyZXR1cm4gbj1GZShlLHQpLFdlLnRlc3Qobik/dyhlKS5wb3NpdGlvbigpW3RdK1wicHhcIjpufSl9KSx3LmVhY2goe0hlaWdodDpcImhlaWdodFwiLFdpZHRoOlwid2lkdGhcIn0sZnVuY3Rpb24oZSx0KXt3LmVhY2goe3BhZGRpbmc6XCJpbm5lclwiK2UsY29udGVudDp0LFwiXCI6XCJvdXRlclwiK2V9LGZ1bmN0aW9uKG4scil7dy5mbltyXT1mdW5jdGlvbihpLG8pe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgmJihufHxcImJvb2xlYW5cIiE9dHlwZW9mIGkpLHM9bnx8KCEwPT09aXx8ITA9PT1vP1wibWFyZ2luXCI6XCJib3JkZXJcIik7cmV0dXJuIHoodGhpcyxmdW5jdGlvbih0LG4saSl7dmFyIG87cmV0dXJuIHkodCk/MD09PXIuaW5kZXhPZihcIm91dGVyXCIpP3RbXCJpbm5lclwiK2VdOnQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W1wiY2xpZW50XCIrZV06OT09PXQubm9kZVR5cGU/KG89dC5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgodC5ib2R5W1wic2Nyb2xsXCIrZV0sb1tcInNjcm9sbFwiK2VdLHQuYm9keVtcIm9mZnNldFwiK2VdLG9bXCJvZmZzZXRcIitlXSxvW1wiY2xpZW50XCIrZV0pKTp2b2lkIDA9PT1pP3cuY3NzKHQsbixzKTp3LnN0eWxlKHQsbixpLHMpfSx0LGE/aTp2b2lkIDAsYSl9fSl9KSx3LmVhY2goXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51XCIuc3BsaXQoXCIgXCIpLGZ1bmN0aW9uKGUsdCl7dy5mblt0XT1mdW5jdGlvbihlLG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjA/dGhpcy5vbih0LG51bGwsZSxuKTp0aGlzLnRyaWdnZXIodCl9fSksdy5mbi5leHRlbmQoe2hvdmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMubW91c2VlbnRlcihlKS5tb3VzZWxlYXZlKHR8fGUpfX0pLHcuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5vbihlLG51bGwsdCxuKX0sdW5iaW5kOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub2ZmKGUsbnVsbCx0KX0sZGVsZWdhdGU6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMub24odCxlLG4scil9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihlLFwiKipcIik6dGhpcy5vZmYodCxlfHxcIioqXCIsbil9fSksdy5wcm94eT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaTtpZihcInN0cmluZ1wiPT10eXBlb2YgdCYmKG49ZVt0XSx0PWUsZT1uKSxnKGUpKXJldHVybiByPW8uY2FsbChhcmd1bWVudHMsMiksaT1mdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHR8fHRoaXMsci5jb25jYXQoby5jYWxsKGFyZ3VtZW50cykpKX0saS5ndWlkPWUuZ3VpZD1lLmd1aWR8fHcuZ3VpZCsrLGl9LHcuaG9sZFJlYWR5PWZ1bmN0aW9uKGUpe2U/dy5yZWFkeVdhaXQrKzp3LnJlYWR5KCEwKX0sdy5pc0FycmF5PUFycmF5LmlzQXJyYXksdy5wYXJzZUpTT049SlNPTi5wYXJzZSx3Lm5vZGVOYW1lPU4sdy5pc0Z1bmN0aW9uPWcsdy5pc1dpbmRvdz15LHcuY2FtZWxDYXNlPUcsdy50eXBlPXgsdy5ub3c9RGF0ZS5ub3csdy5pc051bWVyaWM9ZnVuY3Rpb24oZSl7dmFyIHQ9dy50eXBlKGUpO3JldHVybihcIm51bWJlclwiPT09dHx8XCJzdHJpbmdcIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sXCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoXCJqcXVlcnlcIixbXSxmdW5jdGlvbigpe3JldHVybiB3fSk7dmFyIEp0PWUualF1ZXJ5LEt0PWUuJDtyZXR1cm4gdy5ub0NvbmZsaWN0PWZ1bmN0aW9uKHQpe3JldHVybiBlLiQ9PT13JiYoZS4kPUt0KSx0JiZlLmpRdWVyeT09PXcmJihlLmpRdWVyeT1KdCksd30sdHx8KGUualF1ZXJ5PWUuJD13KSx3fSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvanF1ZXJ5L2Rpc3QvanF1ZXJ5Lm1pbi5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///48\n");

/***/ }),

/***/ 49:
/***/ (function(module, exports) {

eval("/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under the MIT license\n */\nif(\"undefined\"==typeof jQuery)throw new Error(\"Bootstrap's JavaScript requires jQuery\");+function(a){\"use strict\";var b=a.fn.jquery.split(\" \")[0].split(\".\");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error(\"Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4\")}(jQuery),+function(a){\"use strict\";function b(){var a=document.createElement(\"bootstrap\"),b={WebkitTransition:\"webkitTransitionEnd\",MozTransition:\"transitionend\",OTransition:\"oTransitionEnd otransitionend\",transition:\"transitionend\"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(\"bsTransitionEnd\",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){\"use strict\";function b(b){return this.each(function(){var c=a(this),e=c.data(\"bs.alert\");e||c.data(\"bs.alert\",e=new d(this)),\"string\"==typeof b&&e[b].call(c)})}var c='[data-dismiss=\"alert\"]',d=function(b){a(b).on(\"click\",c,this.close)};d.VERSION=\"3.3.7\",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger(\"closed.bs.alert\").remove()}var e=a(this),f=e.attr(\"data-target\");f||(f=e.attr(\"href\"),f=f&&f.replace(/.*(?=#[^\\s]*$)/,\"\"));var g=a(\"#\"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(\".alert\")),g.trigger(b=a.Event(\"close.bs.alert\")),b.isDefaultPrevented()||(g.removeClass(\"in\"),a.support.transition&&g.hasClass(\"fade\")?g.one(\"bsTransitionEnd\",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on(\"click.bs.alert.data-api\",c,d.prototype.close)}(jQuery),+function(a){\"use strict\";function b(b){return this.each(function(){var d=a(this),e=d.data(\"bs.button\"),f=\"object\"==typeof b&&b;e||d.data(\"bs.button\",e=new c(this,f)),\"toggle\"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION=\"3.3.7\",c.DEFAULTS={loadingText:\"loading...\"},c.prototype.setState=function(b){var c=\"disabled\",d=this.$element,e=d.is(\"input\")?\"val\":\"html\",f=d.data();b+=\"Text\",null==f.resetText&&d.data(\"resetText\",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),\"loadingText\"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle=\"buttons\"]');if(b.length){var c=this.$element.find(\"input\");\"radio\"==c.prop(\"type\")?(c.prop(\"checked\")&&(a=!1),b.find(\".active\").removeClass(\"active\"),this.$element.addClass(\"active\")):\"checkbox\"==c.prop(\"type\")&&(c.prop(\"checked\")!==this.$element.hasClass(\"active\")&&(a=!1),this.$element.toggleClass(\"active\")),c.prop(\"checked\",this.$element.hasClass(\"active\")),a&&c.trigger(\"change\")}else this.$element.attr(\"aria-pressed\",!this.$element.hasClass(\"active\")),this.$element.toggleClass(\"active\")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on(\"click.bs.button.data-api\",'[data-toggle^=\"button\"]',function(c){var d=a(c.target).closest(\".btn\");b.call(d,\"toggle\"),a(c.target).is('input[type=\"radio\"], input[type=\"checkbox\"]')||(c.preventDefault(),d.is(\"input,button\")?d.trigger(\"focus\"):d.find(\"input:visible,button:visible\").first().trigger(\"focus\"))}).on(\"focus.bs.button.data-api blur.bs.button.data-api\",'[data-toggle^=\"button\"]',function(b){a(b.target).closest(\".btn\").toggleClass(\"focus\",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){\"use strict\";function b(b){return this.each(function(){var d=a(this),e=d.data(\"bs.carousel\"),f=a.extend({},c.DEFAULTS,d.data(),\"object\"==typeof b&&b),g=\"string\"==typeof b?b:f.slide;e||d.data(\"bs.carousel\",e=new c(this,f)),\"number\"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(\".carousel-indicators\"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on(\"keydown.bs.carousel\",a.proxy(this.keydown,this)),\"hover\"==this.options.pause&&!(\"ontouchstart\"in document.documentElement)&&this.$element.on(\"mouseenter.bs.carousel\",a.proxy(this.pause,this)).on(\"mouseleave.bs.carousel\",a.proxy(this.cycle,this))};c.VERSION=\"3.3.7\",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:\"hover\",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(\".item\"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d=\"prev\"==a&&0===c||\"next\"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e=\"prev\"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(\".item.active\"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one(\"slid.bs.carousel\",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?\"next\":\"prev\",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(\".next, .prev\").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide(\"next\")},c.prototype.prev=function(){if(!this.sliding)return this.slide(\"prev\")},c.prototype.slide=function(b,d){var e=this.$element.find(\".item.active\"),f=d||this.getItemForDirection(b,e),g=this.interval,h=\"next\"==b?\"left\":\"right\",i=this;if(f.hasClass(\"active\"))return this.sliding=!1;var j=f[0],k=a.Event(\"slide.bs.carousel\",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(\".active\").removeClass(\"active\");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass(\"active\")}var m=a.Event(\"slid.bs.carousel\",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass(\"slide\")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one(\"bsTransitionEnd\",function(){f.removeClass([b,h].join(\" \")).addClass(\"active\"),e.removeClass([\"active\",h].join(\" \")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass(\"active\"),f.addClass(\"active\"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr(\"data-target\")||(d=e.attr(\"href\"))&&d.replace(/.*(?=#[^\\s]+$)/,\"\"));if(f.hasClass(\"carousel\")){var g=a.extend({},f.data(),e.data()),h=e.attr(\"data-slide-to\");h&&(g.interval=!1),b.call(f,g),h&&f.data(\"bs.carousel\").to(h),c.preventDefault()}};a(document).on(\"click.bs.carousel.data-api\",\"[data-slide]\",e).on(\"click.bs.carousel.data-api\",\"[data-slide-to]\",e),a(window).on(\"load\",function(){a('[data-ride=\"carousel\"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){\"use strict\";function b(b){var c,d=b.attr(\"data-target\")||(c=b.attr(\"href\"))&&c.replace(/.*(?=#[^\\s]+$)/,\"\");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data(\"bs.collapse\"),f=a.extend({},d.DEFAULTS,c.data(),\"object\"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data(\"bs.collapse\",e=new d(this,f)),\"string\"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle=\"collapse\"][href=\"#'+b.id+'\"],[data-toggle=\"collapse\"][data-target=\"#'+b.id+'\"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION=\"3.3.7\",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass(\"width\");return a?\"width\":\"height\"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass(\"in\")){var b,e=this.$parent&&this.$parent.children(\".panel\").children(\".in, .collapsing\");if(!(e&&e.length&&(b=e.data(\"bs.collapse\"),b&&b.transitioning))){var f=a.Event(\"show.bs.collapse\");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,\"hide\"),b||e.data(\"bs.collapse\",null));var g=this.dimension();this.$element.removeClass(\"collapse\").addClass(\"collapsing\")[g](0).attr(\"aria-expanded\",!0),this.$trigger.removeClass(\"collapsed\").attr(\"aria-expanded\",!0),this.transitioning=1;var h=function(){this.$element.removeClass(\"collapsing\").addClass(\"collapse in\")[g](\"\"),this.transitioning=0,this.$element.trigger(\"shown.bs.collapse\")};if(!a.support.transition)return h.call(this);var i=a.camelCase([\"scroll\",g].join(\"-\"));this.$element.one(\"bsTransitionEnd\",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass(\"in\")){var b=a.Event(\"hide.bs.collapse\");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass(\"collapsing\").removeClass(\"collapse in\").attr(\"aria-expanded\",!1),this.$trigger.addClass(\"collapsed\").attr(\"aria-expanded\",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass(\"collapsing\").addClass(\"collapse\").trigger(\"hidden.bs.collapse\")};return a.support.transition?void this.$element[c](0).one(\"bsTransitionEnd\",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass(\"in\")?\"hide\":\"show\"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle=\"collapse\"][data-parent=\"'+this.options.parent+'\"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass(\"in\");a.attr(\"aria-expanded\",c),b.toggleClass(\"collapsed\",!c).attr(\"aria-expanded\",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on(\"click.bs.collapse.data-api\",'[data-toggle=\"collapse\"]',function(d){var e=a(this);e.attr(\"data-target\")||d.preventDefault();var f=b(e),g=f.data(\"bs.collapse\"),h=g?\"toggle\":e.data();c.call(f,h)})}(jQuery),+function(a){\"use strict\";function b(b){var c=b.attr(\"data-target\");c||(c=b.attr(\"href\"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\\s]*$)/,\"\"));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass(\"open\")&&(c&&\"click\"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event(\"hide.bs.dropdown\",f)),c.isDefaultPrevented()||(d.attr(\"aria-expanded\",\"false\"),e.removeClass(\"open\").trigger(a.Event(\"hidden.bs.dropdown\",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data(\"bs.dropdown\");d||c.data(\"bs.dropdown\",d=new g(this)),\"string\"==typeof b&&d[b].call(c)})}var e=\".dropdown-backdrop\",f='[data-toggle=\"dropdown\"]',g=function(b){a(b).on(\"click.bs.dropdown\",this.toggle)};g.VERSION=\"3.3.7\",g.prototype.toggle=function(d){var e=a(this);if(!e.is(\".disabled, :disabled\")){var f=b(e),g=f.hasClass(\"open\");if(c(),!g){\"ontouchstart\"in document.documentElement&&!f.closest(\".navbar-nav\").length&&a(document.createElement(\"div\")).addClass(\"dropdown-backdrop\").insertAfter(a(this)).on(\"click\",c);var h={relatedTarget:this};if(f.trigger(d=a.Event(\"show.bs.dropdown\",h)),d.isDefaultPrevented())return;e.trigger(\"focus\").attr(\"aria-expanded\",\"true\"),f.toggleClass(\"open\").trigger(a.Event(\"shown.bs.dropdown\",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(\".disabled, :disabled\")){var e=b(d),g=e.hasClass(\"open\");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger(\"focus\"),d.trigger(\"click\");var h=\" li:not(.disabled):visible a\",i=e.find(\".dropdown-menu\"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger(\"focus\")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on(\"click.bs.dropdown.data-api\",c).on(\"click.bs.dropdown.data-api\",\".dropdown form\",function(a){a.stopPropagation()}).on(\"click.bs.dropdown.data-api\",f,g.prototype.toggle).on(\"keydown.bs.dropdown.data-api\",f,g.prototype.keydown).on(\"keydown.bs.dropdown.data-api\",\".dropdown-menu\",g.prototype.keydown)}(jQuery),+function(a){\"use strict\";function b(b,d){return this.each(function(){var e=a(this),f=e.data(\"bs.modal\"),g=a.extend({},c.DEFAULTS,e.data(),\"object\"==typeof b&&b);f||e.data(\"bs.modal\",f=new c(this,g)),\"string\"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(\".modal-dialog\"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(\".modal-content\").load(this.options.remote,a.proxy(function(){this.$element.trigger(\"loaded.bs.modal\")},this))};c.VERSION=\"3.3.7\",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event(\"show.bs.modal\",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass(\"modal-open\"),this.escape(),this.resize(),this.$element.on(\"click.dismiss.bs.modal\",'[data-dismiss=\"modal\"]',a.proxy(this.hide,this)),this.$dialog.on(\"mousedown.dismiss.bs.modal\",function(){d.$element.one(\"mouseup.dismiss.bs.modal\",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass(\"fade\");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass(\"in\"),d.enforceFocus();var f=a.Event(\"shown.bs.modal\",{relatedTarget:b});e?d.$dialog.one(\"bsTransitionEnd\",function(){d.$element.trigger(\"focus\").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger(\"focus\").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event(\"hide.bs.modal\"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off(\"focusin.bs.modal\"),this.$element.removeClass(\"in\").off(\"click.dismiss.bs.modal\").off(\"mouseup.dismiss.bs.modal\"),this.$dialog.off(\"mousedown.dismiss.bs.modal\"),a.support.transition&&this.$element.hasClass(\"fade\")?this.$element.one(\"bsTransitionEnd\",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off(\"focusin.bs.modal\").on(\"focusin.bs.modal\",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger(\"focus\")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on(\"keydown.dismiss.bs.modal\",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off(\"keydown.dismiss.bs.modal\")},c.prototype.resize=function(){this.isShown?a(window).on(\"resize.bs.modal\",a.proxy(this.handleUpdate,this)):a(window).off(\"resize.bs.modal\")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass(\"modal-open\"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger(\"hidden.bs.modal\")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass(\"fade\")?\"fade\":\"\";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement(\"div\")).addClass(\"modal-backdrop \"+e).appendTo(this.$body),this.$element.on(\"click.dismiss.bs.modal\",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&(\"static\"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass(\"in\"),!b)return;f?this.$backdrop.one(\"bsTransitionEnd\",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass(\"in\");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass(\"fade\")?this.$backdrop.one(\"bsTransitionEnd\",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:\"\",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:\"\"})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:\"\",paddingRight:\"\"})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css(\"padding-right\")||0,10);this.originalBodyPad=document.body.style.paddingRight||\"\",this.bodyIsOverflowing&&this.$body.css(\"padding-right\",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css(\"padding-right\",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement(\"div\");a.className=\"modal-scrollbar-measure\",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on(\"click.bs.modal.data-api\",'[data-toggle=\"modal\"]',function(c){var d=a(this),e=d.attr(\"href\"),f=a(d.attr(\"data-target\")||e&&e.replace(/.*(?=#[^\\s]+$)/,\"\")),g=f.data(\"bs.modal\")?\"toggle\":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is(\"a\")&&c.preventDefault(),f.one(\"show.bs.modal\",function(a){a.isDefaultPrevented()||f.one(\"hidden.bs.modal\",function(){d.is(\":visible\")&&d.trigger(\"focus\")})}),b.call(f,g,this)})}(jQuery),+function(a){\"use strict\";function b(b){return this.each(function(){var d=a(this),e=d.data(\"bs.tooltip\"),f=\"object\"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data(\"bs.tooltip\",e=new c(this,f)),\"string\"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init(\"tooltip\",a,b)};c.VERSION=\"3.3.7\",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:\"top\",selector:!1,template:'<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',trigger:\"hover focus\",title:\"\",delay:0,html:!1,container:!1,viewport:{selector:\"body\",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error(\"`selector` option must be specified when initializing \"+this.type+\" on the window.document object!\");for(var e=this.options.trigger.split(\" \"),f=e.length;f--;){var g=e[f];if(\"click\"==g)this.$element.on(\"click.\"+this.type,this.options.selector,a.proxy(this.toggle,this));else if(\"manual\"!=g){var h=\"hover\"==g?\"mouseenter\":\"focusin\",i=\"hover\"==g?\"mouseleave\":\"focusout\";this.$element.on(h+\".\"+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+\".\"+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:\"manual\",selector:\"\"}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&\"number\"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data(\"bs.\"+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data(\"bs.\"+this.type,c)),b instanceof a.Event&&(c.inState[\"focusin\"==b.type?\"focus\":\"hover\"]=!0),c.tip().hasClass(\"in\")||\"in\"==c.hoverState?void(c.hoverState=\"in\"):(clearTimeout(c.timeout),c.hoverState=\"in\",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){\"in\"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data(\"bs.\"+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data(\"bs.\"+this.type,c)),b instanceof a.Event&&(c.inState[\"focusout\"==b.type?\"focus\":\"hover\"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState=\"out\",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){\"out\"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event(\"show.bs.\"+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr(\"id\",g),this.$element.attr(\"aria-describedby\",g),this.options.animation&&f.addClass(\"fade\");var h=\"function\"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\\s?auto?\\s?/i,j=i.test(h);j&&(h=h.replace(i,\"\")||\"top\"),f.detach().css({top:0,left:0,display:\"block\"}).addClass(h).data(\"bs.\"+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger(\"inserted.bs.\"+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h=\"bottom\"==h&&k.bottom+m>o.bottom?\"top\":\"top\"==h&&k.top-m<o.top?\"bottom\":\"right\"==h&&k.right+l>o.width?\"left\":\"left\"==h&&k.left-l<o.left?\"right\":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger(\"shown.bs.\"+e.type),e.hoverState=null,\"out\"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass(\"fade\")?f.one(\"bsTransitionEnd\",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css(\"margin-top\"),10),h=parseInt(d.css(\"margin-left\"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass(\"in\");var i=d[0].offsetWidth,j=d[0].offsetHeight;\"top\"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?\"offsetWidth\":\"offsetHeight\";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?\"left\":\"top\",50*(1-a/b)+\"%\").css(c?\"top\":\"left\",\"\")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(\".tooltip-inner\")[this.options.html?\"html\":\"text\"](b),a.removeClass(\"fade in top bottom left right\")},c.prototype.hide=function(b){function d(){\"in\"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr(\"aria-describedby\").trigger(\"hidden.bs.\"+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event(\"hide.bs.\"+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass(\"in\"),a.support.transition&&f.hasClass(\"fade\")?f.one(\"bsTransitionEnd\",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr(\"title\")||\"string\"!=typeof a.attr(\"data-original-title\"))&&a.attr(\"data-original-title\",a.attr(\"title\")||\"\").attr(\"title\",\"\")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d=\"BODY\"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return\"bottom\"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:\"top\"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:\"left\"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr(\"data-original-title\")||(\"function\"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+\" `template` option must consist of exactly 1 top-level element!\");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(\".tooltip-arrow\")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data(\"bs.\"+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data(\"bs.\"+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass(\"in\")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off(\".\"+a.type).removeData(\"bs.\"+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){\"use strict\";function b(b){return this.each(function(){var d=a(this),e=d.data(\"bs.popover\"),f=\"object\"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data(\"bs.popover\",e=new c(this,f)),\"string\"==typeof b&&e[b]())})}var c=function(a,b){this.init(\"popover\",a,b)};if(!a.fn.tooltip)throw new Error(\"Popover requires tooltip.js\");c.VERSION=\"3.3.7\",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:\"right\",trigger:\"click\",content:\"\",template:'<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(\".popover-title\")[this.options.html?\"html\":\"text\"](b),a.find(\".popover-content\").children().detach().end()[this.options.html?\"string\"==typeof c?\"html\":\"append\":\"text\"](c),a.removeClass(\"fade top bottom left right in\"),a.find(\".popover-title\").html()||a.find(\".popover-title\").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr(\"data-content\")||(\"function\"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(\".arrow\")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){\"use strict\";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||\"\")+\" .nav li > a\",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on(\"scroll.bs.scrollspy\",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data(\"bs.scrollspy\"),f=\"object\"==typeof c&&c;e||d.data(\"bs.scrollspy\",e=new b(this,f)),\"string\"==typeof c&&e[c]()})}b.VERSION=\"3.3.7\",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c=\"offset\",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c=\"position\",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data(\"target\")||b.attr(\"href\"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(\":visible\")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){\nthis.activeTarget=b,this.clear();var c=this.selector+'[data-target=\"'+b+'\"],'+this.selector+'[href=\"'+b+'\"]',d=a(c).parents(\"li\").addClass(\"active\");d.parent(\".dropdown-menu\").length&&(d=d.closest(\"li.dropdown\").addClass(\"active\")),d.trigger(\"activate.bs.scrollspy\")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,\".active\").removeClass(\"active\")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on(\"load.bs.scrollspy.data-api\",function(){a('[data-spy=\"scroll\"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){\"use strict\";function b(b){return this.each(function(){var d=a(this),e=d.data(\"bs.tab\");e||d.data(\"bs.tab\",e=new c(this)),\"string\"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION=\"3.3.7\",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest(\"ul:not(.dropdown-menu)\"),d=b.data(\"target\");if(d||(d=b.attr(\"href\"),d=d&&d.replace(/.*(?=#[^\\s]*$)/,\"\")),!b.parent(\"li\").hasClass(\"active\")){var e=c.find(\".active:last a\"),f=a.Event(\"hide.bs.tab\",{relatedTarget:b[0]}),g=a.Event(\"show.bs.tab\",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest(\"li\"),c),this.activate(h,h.parent(),function(){e.trigger({type:\"hidden.bs.tab\",relatedTarget:b[0]}),b.trigger({type:\"shown.bs.tab\",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass(\"active\").find(\"> .dropdown-menu > .active\").removeClass(\"active\").end().find('[data-toggle=\"tab\"]').attr(\"aria-expanded\",!1),b.addClass(\"active\").find('[data-toggle=\"tab\"]').attr(\"aria-expanded\",!0),h?(b[0].offsetWidth,b.addClass(\"in\")):b.removeClass(\"fade\"),b.parent(\".dropdown-menu\").length&&b.closest(\"li.dropdown\").addClass(\"active\").end().find('[data-toggle=\"tab\"]').attr(\"aria-expanded\",!0),e&&e()}var g=d.find(\"> .active\"),h=e&&a.support.transition&&(g.length&&g.hasClass(\"fade\")||!!d.find(\"> .fade\").length);g.length&&h?g.one(\"bsTransitionEnd\",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass(\"in\")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),\"show\")};a(document).on(\"click.bs.tab.data-api\",'[data-toggle=\"tab\"]',e).on(\"click.bs.tab.data-api\",'[data-toggle=\"pill\"]',e)}(jQuery),+function(a){\"use strict\";function b(b){return this.each(function(){var d=a(this),e=d.data(\"bs.affix\"),f=\"object\"==typeof b&&b;e||d.data(\"bs.affix\",e=new c(this,f)),\"string\"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on(\"scroll.bs.affix.data-api\",a.proxy(this.checkPosition,this)).on(\"click.bs.affix.data-api\",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION=\"3.3.7\",c.RESET=\"affix affix-top affix-bottom\",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&\"top\"==this.affixed)return e<c&&\"top\";if(\"bottom\"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&\"bottom\":!(e+g<=a-d)&&\"bottom\";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?\"top\":null!=d&&i+j>=a-d&&\"bottom\"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass(\"affix\");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(\":visible\")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());\"object\"!=typeof d&&(f=e=d),\"function\"==typeof e&&(e=d.top(this.$element)),\"function\"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css(\"top\",\"\");var i=\"affix\"+(h?\"-\"+h:\"\"),j=a.Event(i+\".bs.affix\");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin=\"bottom\"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace(\"affix\",\"affixed\")+\".bs.affix\")}\"bottom\"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on(\"load\",function(){a('[data-spy=\"affix\"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9kaXN0L2pzL2Jvb3RzdHJhcC5taW4uanM/OGZhMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0ZBQXdGLGFBQWEsYUFBYSwyQ0FBMkMsZ0tBQWdLLHNCQUFzQixhQUFhLGFBQWEsNkNBQTZDLDZJQUE2SSw2Q0FBNkMsVUFBVSxTQUFTLHNDQUFzQyxnQkFBZ0IseUNBQXlDLEtBQUssRUFBRSxpQkFBaUIsMkNBQTJDLDRCQUE0QixjQUFjLGlGQUFpRiwyRkFBMkYsMEVBQTBFLEVBQUUsRUFBRSxzQkFBc0IsYUFBYSxjQUFjLDRCQUE0QixtQ0FBbUMscUVBQXFFLEVBQUUsNkNBQTZDLCtCQUErQiwwRUFBMEUsYUFBYSwrQ0FBK0Msc0NBQXNDLDBEQUEwRCxzQkFBc0Isa1FBQWtRLGlCQUFpQix1RUFBdUUseUJBQXlCLCtEQUErRCxzQkFBc0IsYUFBYSxjQUFjLDRCQUE0Qiw0REFBNEQsK0VBQStFLEVBQUUsb0JBQW9CLDJDQUEyQyxrQ0FBa0MsOEJBQThCLHlCQUF5QixrQ0FBa0MseUVBQXlFLHNGQUFzRiw0TEFBNEwsVUFBVSwrQkFBK0IsNERBQTRELGFBQWEsa0NBQWtDLHNVQUFzVSwrR0FBK0csa0JBQWtCLDBFQUEwRSwwQkFBMEIsaUZBQWlGLGtDQUFrQywrTUFBK00sOEZBQThGLDZFQUE2RSxFQUFFLHNCQUFzQixhQUFhLGNBQWMsNEJBQTRCLG1EQUFtRCwyRUFBMkUsMkdBQTJHLEVBQUUsb0JBQW9CLHVkQUF1ZCx3REFBd0QsK0NBQStDLGlDQUFpQyw4Q0FBOEMsZ0JBQWdCLG9CQUFvQixNQUFNLG9CQUFvQixNQUFNLGVBQWUsb0JBQW9CLCtCQUErQiw0TEFBNEwsc0NBQXNDLG1GQUFtRiwrQ0FBK0Msa0ZBQWtGLGtDQUFrQyxnREFBZ0QseUJBQXlCLDRCQUE0QixnRkFB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QUFjLDRCQUE0QiwyREFBMkQsaUVBQWlFLEVBQUUsb0JBQW9CLHdCQUF3QixpU0FBaVMscUVBQXFFLHVCQUF1Qix3Q0FBd0MsZ0ZBQWdGLGtEQUFrRCxnR0FBZ0csNkNBQTZDLHVEQUF1RCx3Q0FBd0MsOENBQThDLHFEQUFxRCx3REFBd0QsaUNBQWlDLG1EQUFtRCwrQ0FBK0Msc0NBQXNDLGlDQUFpQyxpSUFBaUksNkhBQTZILDZCQUE2QixvQkFBb0IsOENBQThDLG9EQUFvRCwwREFBMEQsbUtBQW1LLG1DQUFtQyxVQUFVLElBQUksaUJBQWlCLHVFQUF1RSx5QkFBeUIsZ0NBQWdDLHdDQUF3Qyx5QkFBeUIscUJBQXFCLGtIQUFrSCxFQUFFLEVBQUUiLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqL1xuaWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoXCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeVwiKTsrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGI9YS5mbi5qcXVlcnkuc3BsaXQoXCIgXCIpWzBdLnNwbGl0KFwiLlwiKTtpZihiWzBdPDImJmJbMV08OXx8MT09YlswXSYmOT09YlsxXSYmYlsyXTwxfHxiWzBdPjMpdGhyb3cgbmV3IEVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXIsIGJ1dCBsb3dlciB0aGFuIHZlcnNpb24gNFwiKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJib290c3RyYXBcIiksYj17V2Via2l0VHJhbnNpdGlvbjpcIndlYmtpdFRyYW5zaXRpb25FbmRcIixNb3pUcmFuc2l0aW9uOlwidHJhbnNpdGlvbmVuZFwiLE9UcmFuc2l0aW9uOlwib1RyYW5zaXRpb25FbmQgb3RyYW5zaXRpb25lbmRcIix0cmFuc2l0aW9uOlwidHJhbnNpdGlvbmVuZFwifTtmb3IodmFyIGMgaW4gYilpZih2b2lkIDAhPT1hLnN0eWxlW2NdKXJldHVybntlbmQ6YltjXX07cmV0dXJuITF9YS5mbi5lbXVsYXRlVHJhbnNpdGlvbkVuZD1mdW5jdGlvbihiKXt2YXIgYz0hMSxkPXRoaXM7YSh0aGlzKS5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixmdW5jdGlvbigpe2M9ITB9KTt2YXIgZT1mdW5jdGlvbigpe2N8fGEoZCkudHJpZ2dlcihhLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpfTtyZXR1cm4gc2V0VGltZW91dChlLGIpLHRoaXN9LGEoZnVuY3Rpb24oKXthLnN1cHBvcnQudHJhbnNpdGlvbj1iKCksYS5zdXBwb3J0LnRyYW5zaXRpb24mJihhLmV2ZW50LnNwZWNpYWwuYnNUcmFuc2l0aW9uRW5kPXtiaW5kVHlwZTphLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsZGVsZWdhdGVUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxoYW5kbGU6ZnVuY3Rpb24oYil7aWYoYShiLnRhcmdldCkuaXModGhpcykpcmV0dXJuIGIuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZT1jLmRhdGEoXCJicy5hbGVydFwiKTtlfHxjLmRhdGEoXCJicy5hbGVydFwiLGU9bmV3IGQodGhpcykpLFwic3RyaW5nXCI9PXR5cGVvZiBiJiZlW2JdLmNhbGwoYyl9KX12YXIgYz0nW2RhdGEtZGlzbWlzcz1cImFsZXJ0XCJdJyxkPWZ1bmN0aW9uKGIpe2EoYikub24oXCJjbGlja1wiLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj1cIjMuMy43XCIsZC5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxkLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbihiKXtmdW5jdGlvbiBjKCl7Zy5kZXRhY2goKS50cmlnZ2VyKFwiY2xvc2VkLmJzLmFsZXJ0XCIpLnJlbW92ZSgpfXZhciBlPWEodGhpcyksZj1lLmF0dHIoXCJkYXRhLXRhcmdldFwiKTtmfHwoZj1lLmF0dHIoXCJocmVmXCIpLGY9ZiYmZi5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLFwiXCIpKTt2YXIgZz1hKFwiI1wiPT09Zj9bXTpmKTtiJiZiLnByZXZlbnREZWZhdWx0KCksZy5sZW5ndGh8fChnPWUuY2xvc2VzdChcIi5hbGVydFwiKSksZy50cmlnZ2VyKGI9YS5FdmVudChcImNsb3NlLmJzLmFsZXJ0XCIpKSxiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoZy5yZW1vdmVDbGFzcyhcImluXCIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZnLmhhc0NsYXNzKFwiZmFkZVwiKT9nLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLGMpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTik6YygpKX07dmFyIGU9YS5mbi5hbGVydDthLmZuLmFsZXJ0PWIsYS5mbi5hbGVydC5Db25zdHJ1Y3Rvcj1kLGEuZm4uYWxlcnQubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmFsZXJ0PWUsdGhpc30sYShkb2N1bWVudCkub24oXCJjbGljay5icy5hbGVydC5kYXRhLWFwaVwiLGMsZC5wcm90b3R5cGUuY2xvc2UpfShqUXVlcnkpLCtmdW5jdGlvbihhKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKFwiYnMuYnV0dG9uXCIpLGY9XCJvYmplY3RcIj09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKFwiYnMuYnV0dG9uXCIsZT1uZXcgYyh0aGlzLGYpKSxcInRvZ2dsZVwiPT1iP2UudG9nZ2xlKCk6YiYmZS5zZXRTdGF0ZShiKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQpLHRoaXMuaXNMb2FkaW5nPSExfTtjLlZFUlNJT049XCIzLjMuN1wiLGMuREVGQVVMVFM9e2xvYWRpbmdUZXh0OlwibG9hZGluZy4uLlwifSxjLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihiKXt2YXIgYz1cImRpc2FibGVkXCIsZD10aGlzLiRlbGVtZW50LGU9ZC5pcyhcImlucHV0XCIpP1widmFsXCI6XCJodG1sXCIsZj1kLmRhdGEoKTtiKz1cIlRleHRcIixudWxsPT1mLnJlc2V0VGV4dCYmZC5kYXRhKFwicmVzZXRUZXh0XCIsZFtlXSgpKSxzZXRUaW1lb3V0KGEucHJveHkoZnVuY3Rpb24oKXtkW2VdKG51bGw9PWZbYl0/dGhpcy5vcHRpb25zW2JdOmZbYl0pLFwibG9hZGluZ1RleHRcIj09Yj8odGhpcy5pc0xvYWRpbmc9ITAsZC5hZGRDbGFzcyhjKS5hdHRyKGMsYykucHJvcChjLCEwKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxkLnJlbW92ZUNsYXNzKGMpLnJlbW92ZUF0dHIoYykucHJvcChjLCExKSl9LHRoaXMpLDApfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt2YXIgYT0hMCxiPXRoaXMuJGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXScpO2lmKGIubGVuZ3RoKXt2YXIgYz10aGlzLiRlbGVtZW50LmZpbmQoXCJpbnB1dFwiKTtcInJhZGlvXCI9PWMucHJvcChcInR5cGVcIik/KGMucHJvcChcImNoZWNrZWRcIikmJihhPSExKSxiLmZpbmQoXCIuYWN0aXZlXCIpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpLHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoXCJhY3RpdmVcIikpOlwiY2hlY2tib3hcIj09Yy5wcm9wKFwidHlwZVwiKSYmKGMucHJvcChcImNoZWNrZWRcIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwiYWN0aXZlXCIpJiYoYT0hMSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcyhcImFjdGl2ZVwiKSksYy5wcm9wKFwiY2hlY2tlZFwiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoXCJhY3RpdmVcIikpLGEmJmMudHJpZ2dlcihcImNoYW5nZVwiKX1lbHNlIHRoaXMuJGVsZW1lbnQuYXR0cihcImFyaWEtcHJlc3NlZFwiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwiYWN0aXZlXCIpKSx0aGlzLiRlbGVtZW50LnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpfTt2YXIgZD1hLmZuLmJ1dHRvbjthLmZuLmJ1dHRvbj1iLGEuZm4uYnV0dG9uLkNvbnN0cnVjdG9yPWMsYS5mbi5idXR0b24ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmJ1dHRvbj1kLHRoaXN9LGEoZG9jdW1lbnQpLm9uKFwiY2xpY2suYnMuYnV0dG9uLmRhdGEtYXBpXCIsJ1tkYXRhLXRvZ2dsZV49XCJidXR0b25cIl0nLGZ1bmN0aW9uKGMpe3ZhciBkPWEoYy50YXJnZXQpLmNsb3Nlc3QoXCIuYnRuXCIpO2IuY2FsbChkLFwidG9nZ2xlXCIpLGEoYy50YXJnZXQpLmlzKCdpbnB1dFt0eXBlPVwicmFkaW9cIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXScpfHwoYy5wcmV2ZW50RGVmYXVsdCgpLGQuaXMoXCJpbnB1dCxidXR0b25cIik/ZC50cmlnZ2VyKFwiZm9jdXNcIik6ZC5maW5kKFwiaW5wdXQ6dmlzaWJsZSxidXR0b246dmlzaWJsZVwiKS5maXJzdCgpLnRyaWdnZXIoXCJmb2N1c1wiKSl9KS5vbihcImZvY3VzLmJzLmJ1dHRvbi5kYXRhLWFwaSBibHVyLmJzLmJ1dHRvbi5kYXRhLWFwaVwiLCdbZGF0YS10b2dnbGVePVwiYnV0dG9uXCJdJyxmdW5jdGlvbihiKXthKGIudGFyZ2V0KS5jbG9zZXN0KFwiLmJ0blwiKS50b2dnbGVDbGFzcyhcImZvY3VzXCIsL15mb2N1cyhpbik/JC8udGVzdChiLnR5cGUpKX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKFwiYnMuY2Fyb3VzZWxcIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBiJiZiKSxnPVwic3RyaW5nXCI9PXR5cGVvZiBiP2I6Zi5zbGlkZTtlfHxkLmRhdGEoXCJicy5jYXJvdXNlbFwiLGU9bmV3IGModGhpcyxmKSksXCJudW1iZXJcIj09dHlwZW9mIGI/ZS50byhiKTpnP2VbZ10oKTpmLmludGVydmFsJiZlLnBhdXNlKCkuY3ljbGUoKX0pfXZhciBjPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMuJGluZGljYXRvcnM9dGhpcy4kZWxlbWVudC5maW5kKFwiLmNhcm91c2VsLWluZGljYXRvcnNcIiksdGhpcy5vcHRpb25zPWMsdGhpcy5wYXVzZWQ9bnVsbCx0aGlzLnNsaWRpbmc9bnVsbCx0aGlzLmludGVydmFsPW51bGwsdGhpcy4kYWN0aXZlPW51bGwsdGhpcy4kaXRlbXM9bnVsbCx0aGlzLm9wdGlvbnMua2V5Ym9hcmQmJnRoaXMuJGVsZW1lbnQub24oXCJrZXlkb3duLmJzLmNhcm91c2VsXCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLFwiaG92ZXJcIj09dGhpcy5vcHRpb25zLnBhdXNlJiYhKFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpJiZ0aGlzLiRlbGVtZW50Lm9uKFwibW91c2VlbnRlci5icy5jYXJvdXNlbFwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oXCJtb3VzZWxlYXZlLmJzLmNhcm91c2VsXCIsYS5wcm94eSh0aGlzLmN5Y2xlLHRoaXMpKX07Yy5WRVJTSU9OPVwiMy4zLjdcIixjLlRSQU5TSVRJT05fRFVSQVRJT049NjAwLGMuREVGQVVMVFM9e2ludGVydmFsOjVlMyxwYXVzZTpcImhvdmVyXCIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oXCIuaXRlbVwiKSx0aGlzLiRpdGVtcy5pbmRleChhfHx0aGlzLiRhY3RpdmUpfSxjLnByb3RvdHlwZS5nZXRJdGVtRm9yRGlyZWN0aW9uPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5nZXRJdGVtSW5kZXgoYiksZD1cInByZXZcIj09YSYmMD09PWN8fFwibmV4dFwiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9XCJwcmV2XCI9PWE/LTE6MSxmPShjK2UpJXRoaXMuJGl0ZW1zLmxlbmd0aDtyZXR1cm4gdGhpcy4kaXRlbXMuZXEoZil9LGMucHJvdG90eXBlLnRvPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlzLmdldEl0ZW1JbmRleCh0aGlzLiRhY3RpdmU9dGhpcy4kZWxlbWVudC5maW5kKFwiLml0ZW0uYWN0aXZlXCIpKTtpZighKGE+dGhpcy4kaXRlbXMubGVuZ3RoLTF8fGE8MCkpcmV0dXJuIHRoaXMuc2xpZGluZz90aGlzLiRlbGVtZW50Lm9uZShcInNsaWQuYnMuY2Fyb3VzZWxcIixmdW5jdGlvbigpe2IudG8oYSl9KTpjPT1hP3RoaXMucGF1c2UoKS5jeWNsZSgpOnRoaXMuc2xpZGUoYT5jP1wibmV4dFwiOlwicHJldlwiLHRoaXMuJGl0ZW1zLmVxKGEpKX0sYy5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oYil7cmV0dXJuIGJ8fCh0aGlzLnBhdXNlZD0hMCksdGhpcy4kZWxlbWVudC5maW5kKFwiLm5leHQsIC5wcmV2XCIpLmxlbmd0aCYmYS5zdXBwb3J0LnRyYW5zaXRpb24mJih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKSx0aGlzLmN5Y2xlKCEwKSksdGhpcy5pbnRlcnZhbD1jbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXN9LGMucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighdGhpcy5zbGlkaW5nKXJldHVybiB0aGlzLnNsaWRlKFwibmV4dFwiKX0sYy5wcm90b3R5cGUucHJldj1mdW5jdGlvbigpe2lmKCF0aGlzLnNsaWRpbmcpcmV0dXJuIHRoaXMuc2xpZGUoXCJwcmV2XCIpfSxjLnByb3RvdHlwZS5zbGlkZT1mdW5jdGlvbihiLGQpe3ZhciBlPXRoaXMuJGVsZW1lbnQuZmluZChcIi5pdGVtLmFjdGl2ZVwiKSxmPWR8fHRoaXMuZ2V0SXRlbUZvckRpcmVjdGlvbihiLGUpLGc9dGhpcy5pbnRlcnZhbCxoPVwibmV4dFwiPT1iP1wibGVmdFwiOlwicmlnaHRcIixpPXRoaXM7aWYoZi5oYXNDbGFzcyhcImFjdGl2ZVwiKSlyZXR1cm4gdGhpcy5zbGlkaW5nPSExO3ZhciBqPWZbMF0saz1hLkV2ZW50KFwic2xpZGUuYnMuY2Fyb3VzZWxcIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGspLCFrLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZih0aGlzLnNsaWRpbmc9ITAsZyYmdGhpcy5wYXVzZSgpLHRoaXMuJGluZGljYXRvcnMubGVuZ3RoKXt0aGlzLiRpbmRpY2F0b3JzLmZpbmQoXCIuYWN0aXZlXCIpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO3ZhciBsPWEodGhpcy4kaW5kaWNhdG9ycy5jaGlsZHJlbigpW3RoaXMuZ2V0SXRlbUluZGV4KGYpXSk7bCYmbC5hZGRDbGFzcyhcImFjdGl2ZVwiKX12YXIgbT1hLkV2ZW50KFwic2xpZC5icy5jYXJvdXNlbFwiLHtyZWxhdGVkVGFyZ2V0OmosZGlyZWN0aW9uOmh9KTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoXCJzbGlkZVwiKT8oZi5hZGRDbGFzcyhiKSxmWzBdLm9mZnNldFdpZHRoLGUuYWRkQ2xhc3MoaCksZi5hZGRDbGFzcyhoKSxlLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcyhbYixoXS5qb2luKFwiIFwiKSkuYWRkQ2xhc3MoXCJhY3RpdmVcIiksZS5yZW1vdmVDbGFzcyhbXCJhY3RpdmVcIixoXS5qb2luKFwiIFwiKSksaS5zbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLiRlbGVtZW50LnRyaWdnZXIobSl9LDApfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKSk6KGUucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIiksZi5hZGRDbGFzcyhcImFjdGl2ZVwiKSx0aGlzLnNsaWRpbmc9ITEsdGhpcy4kZWxlbWVudC50cmlnZ2VyKG0pKSxnJiZ0aGlzLmN5Y2xlKCksdGhpc319O3ZhciBkPWEuZm4uY2Fyb3VzZWw7YS5mbi5jYXJvdXNlbD1iLGEuZm4uY2Fyb3VzZWwuQ29uc3RydWN0b3I9YyxhLmZuLmNhcm91c2VsLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jYXJvdXNlbD1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe3ZhciBkLGU9YSh0aGlzKSxmPWEoZS5hdHRyKFwiZGF0YS10YXJnZXRcIil8fChkPWUuYXR0cihcImhyZWZcIikpJiZkLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sXCJcIikpO2lmKGYuaGFzQ2xhc3MoXCJjYXJvdXNlbFwiKSl7dmFyIGc9YS5leHRlbmQoe30sZi5kYXRhKCksZS5kYXRhKCkpLGg9ZS5hdHRyKFwiZGF0YS1zbGlkZS10b1wiKTtoJiYoZy5pbnRlcnZhbD0hMSksYi5jYWxsKGYsZyksaCYmZi5kYXRhKFwiYnMuY2Fyb3VzZWxcIikudG8oaCksYy5wcmV2ZW50RGVmYXVsdCgpfX07YShkb2N1bWVudCkub24oXCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaVwiLFwiW2RhdGEtc2xpZGVdXCIsZSkub24oXCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaVwiLFwiW2RhdGEtc2xpZGUtdG9dXCIsZSksYSh3aW5kb3cpLm9uKFwibG9hZFwiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtcmlkZT1cImNhcm91c2VsXCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyk7Yi5jYWxsKGMsYy5kYXRhKCkpfSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiKXt2YXIgYyxkPWIuYXR0cihcImRhdGEtdGFyZ2V0XCIpfHwoYz1iLmF0dHIoXCJocmVmXCIpKSYmYy5yZXBsYWNlKC8uKig/PSNbXlxcc10rJCkvLFwiXCIpO3JldHVybiBhKGQpfWZ1bmN0aW9uIGMoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZT1jLmRhdGEoXCJicy5jb2xsYXBzZVwiKSxmPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYy5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIGImJmIpOyFlJiZmLnRvZ2dsZSYmL3Nob3d8aGlkZS8udGVzdChiKSYmKGYudG9nZ2xlPSExKSxlfHxjLmRhdGEoXCJicy5jb2xsYXBzZVwiLGU9bmV3IGQodGhpcyxmKSksXCJzdHJpbmdcIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBkPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxkLkRFRkFVTFRTLGMpLHRoaXMuJHRyaWdnZXI9YSgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnK2IuaWQrJ1wiXSxbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXRhcmdldD1cIiMnK2IuaWQrJ1wiXScpLHRoaXMudHJhbnNpdGlvbmluZz1udWxsLHRoaXMub3B0aW9ucy5wYXJlbnQ/dGhpcy4kcGFyZW50PXRoaXMuZ2V0UGFyZW50KCk6dGhpcy5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy4kZWxlbWVudCx0aGlzLiR0cmlnZ2VyKSx0aGlzLm9wdGlvbnMudG9nZ2xlJiZ0aGlzLnRvZ2dsZSgpfTtkLlZFUlNJT049XCIzLjMuN1wiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0zNTAsZC5ERUZBVUxUUz17dG9nZ2xlOiEwfSxkLnByb3RvdHlwZS5kaW1lbnNpb249ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwid2lkdGhcIik7cmV0dXJuIGE/XCJ3aWR0aFwiOlwiaGVpZ2h0XCJ9LGQucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXtpZighdGhpcy50cmFuc2l0aW9uaW5nJiYhdGhpcy4kZWxlbWVudC5oYXNDbGFzcyhcImluXCIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmNoaWxkcmVuKFwiLnBhbmVsXCIpLmNoaWxkcmVuKFwiLmluLCAuY29sbGFwc2luZ1wiKTtpZighKGUmJmUubGVuZ3RoJiYoYj1lLmRhdGEoXCJicy5jb2xsYXBzZVwiKSxiJiZiLnRyYW5zaXRpb25pbmcpKSl7dmFyIGY9YS5FdmVudChcInNob3cuYnMuY29sbGFwc2VcIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGYpLCFmLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtlJiZlLmxlbmd0aCYmKGMuY2FsbChlLFwiaGlkZVwiKSxifHxlLmRhdGEoXCJicy5jb2xsYXBzZVwiLG51bGwpKTt2YXIgZz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJjb2xsYXBzZVwiKS5hZGRDbGFzcyhcImNvbGxhcHNpbmdcIilbZ10oMCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMCksdGhpcy4kdHJpZ2dlci5yZW1vdmVDbGFzcyhcImNvbGxhcHNlZFwiKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgaD1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJjb2xsYXBzaW5nXCIpLmFkZENsYXNzKFwiY29sbGFwc2UgaW5cIilbZ10oXCJcIiksdGhpcy50cmFuc2l0aW9uaW5nPTAsdGhpcy4kZWxlbWVudC50cmlnZ2VyKFwic2hvd24uYnMuY29sbGFwc2VcIil9O2lmKCFhLnN1cHBvcnQudHJhbnNpdGlvbilyZXR1cm4gaC5jYWxsKHRoaXMpO3ZhciBpPWEuY2FtZWxDYXNlKFtcInNjcm9sbFwiLGddLmpvaW4oXCItXCIpKTt0aGlzLiRlbGVtZW50Lm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLGEucHJveHkoaCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKVtnXSh0aGlzLiRlbGVtZW50WzBdW2ldKX19fX0sZC5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoXCJpblwiKSl7dmFyIGI9YS5FdmVudChcImhpZGUuYnMuY29sbGFwc2VcIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpLCFiLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgYz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnRbY10odGhpcy4kZWxlbWVudFtjXSgpKVswXS5vZmZzZXRIZWlnaHQsdGhpcy4kZWxlbWVudC5hZGRDbGFzcyhcImNvbGxhcHNpbmdcIikucmVtb3ZlQ2xhc3MoXCJjb2xsYXBzZSBpblwiKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCExKSx0aGlzLiR0cmlnZ2VyLmFkZENsYXNzKFwiY29sbGFwc2VkXCIpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITEpLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBlPWZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uaW5nPTAsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhcImNvbGxhcHNpbmdcIikuYWRkQ2xhc3MoXCJjb2xsYXBzZVwiKS50cmlnZ2VyKFwiaGlkZGVuLmJzLmNvbGxhcHNlXCIpfTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24/dm9pZCB0aGlzLiRlbGVtZW50W2NdKDApLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLGEucHJveHkoZSx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTplLmNhbGwodGhpcyl9fX0sZC5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dGhpc1t0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKFwiaW5cIik/XCJoaWRlXCI6XCJzaG93XCJdKCl9LGQucHJvdG90eXBlLmdldFBhcmVudD1mdW5jdGlvbigpe3JldHVybiBhKHRoaXMub3B0aW9ucy5wYXJlbnQpLmZpbmQoJ1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtcGFyZW50PVwiJyt0aGlzLm9wdGlvbnMucGFyZW50KydcIl0nKS5lYWNoKGEucHJveHkoZnVuY3Rpb24oYyxkKXt2YXIgZT1hKGQpO3RoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGIoZSksZSl9LHRoaXMpKS5lbmQoKX0sZC5wcm90b3R5cGUuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5oYXNDbGFzcyhcImluXCIpO2EuYXR0cihcImFyaWEtZXhwYW5kZWRcIixjKSxiLnRvZ2dsZUNsYXNzKFwiY29sbGFwc2VkXCIsIWMpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsYyl9O3ZhciBlPWEuZm4uY29sbGFwc2U7YS5mbi5jb2xsYXBzZT1jLGEuZm4uY29sbGFwc2UuQ29uc3RydWN0b3I9ZCxhLmZuLmNvbGxhcHNlLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jb2xsYXBzZT1lLHRoaXN9LGEoZG9jdW1lbnQpLm9uKFwiY2xpY2suYnMuY29sbGFwc2UuZGF0YS1hcGlcIiwnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0nLGZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7ZS5hdHRyKFwiZGF0YS10YXJnZXRcIil8fGQucHJldmVudERlZmF1bHQoKTt2YXIgZj1iKGUpLGc9Zi5kYXRhKFwiYnMuY29sbGFwc2VcIiksaD1nP1widG9nZ2xlXCI6ZS5kYXRhKCk7Yy5jYWxsKGYsaCl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiKXt2YXIgYz1iLmF0dHIoXCJkYXRhLXRhcmdldFwiKTtjfHwoYz1iLmF0dHIoXCJocmVmXCIpLGM9YyYmLyNbQS1aYS16XS8udGVzdChjKSYmYy5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLFwiXCIpKTt2YXIgZD1jJiZhKGMpO3JldHVybiBkJiZkLmxlbmd0aD9kOmIucGFyZW50KCl9ZnVuY3Rpb24gYyhjKXtjJiYzPT09Yy53aGljaHx8KGEoZSkucmVtb3ZlKCksYShmKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWIoZCksZj17cmVsYXRlZFRhcmdldDp0aGlzfTtlLmhhc0NsYXNzKFwib3BlblwiKSYmKGMmJlwiY2xpY2tcIj09Yy50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpJiZhLmNvbnRhaW5zKGVbMF0sYy50YXJnZXQpfHwoZS50cmlnZ2VyKGM9YS5FdmVudChcImhpZGUuYnMuZHJvcGRvd25cIixmKSksYy5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KGQuYXR0cihcImFyaWEtZXhwYW5kZWRcIixcImZhbHNlXCIpLGUucmVtb3ZlQ2xhc3MoXCJvcGVuXCIpLnRyaWdnZXIoYS5FdmVudChcImhpZGRlbi5icy5kcm9wZG93blwiLGYpKSkpKX0pKX1mdW5jdGlvbiBkKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGQ9Yy5kYXRhKFwiYnMuZHJvcGRvd25cIik7ZHx8Yy5kYXRhKFwiYnMuZHJvcGRvd25cIixkPW5ldyBnKHRoaXMpKSxcInN0cmluZ1wiPT10eXBlb2YgYiYmZFtiXS5jYWxsKGMpfSl9dmFyIGU9XCIuZHJvcGRvd24tYmFja2Ryb3BcIixmPSdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXScsZz1mdW5jdGlvbihiKXthKGIpLm9uKFwiY2xpY2suYnMuZHJvcGRvd25cIix0aGlzLnRvZ2dsZSl9O2cuVkVSU0lPTj1cIjMuMy43XCIsZy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7aWYoIWUuaXMoXCIuZGlzYWJsZWQsIDpkaXNhYmxlZFwiKSl7dmFyIGY9YihlKSxnPWYuaGFzQ2xhc3MoXCJvcGVuXCIpO2lmKGMoKSwhZyl7XCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWYuY2xvc2VzdChcIi5uYXZiYXItbmF2XCIpLmxlbmd0aCYmYShkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5hZGRDbGFzcyhcImRyb3Bkb3duLWJhY2tkcm9wXCIpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKFwiY2xpY2tcIixjKTt2YXIgaD17cmVsYXRlZFRhcmdldDp0aGlzfTtpZihmLnRyaWdnZXIoZD1hLkV2ZW50KFwic2hvdy5icy5kcm9wZG93blwiLGgpKSxkLmlzRGVmYXVsdFByZXZlbnRlZCgpKXJldHVybjtlLnRyaWdnZXIoXCJmb2N1c1wiKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLFwidHJ1ZVwiKSxmLnRvZ2dsZUNsYXNzKFwib3BlblwiKS50cmlnZ2VyKGEuRXZlbnQoXCJzaG93bi5icy5kcm9wZG93blwiLGgpKX1yZXR1cm4hMX19LGcucHJvdG90eXBlLmtleWRvd249ZnVuY3Rpb24oYyl7aWYoLygzOHw0MHwyN3wzMikvLnRlc3QoYy53aGljaCkmJiEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpKXt2YXIgZD1hKHRoaXMpO2lmKGMucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLCFkLmlzKFwiLmRpc2FibGVkLCA6ZGlzYWJsZWRcIikpe3ZhciBlPWIoZCksZz1lLmhhc0NsYXNzKFwib3BlblwiKTtpZighZyYmMjchPWMud2hpY2h8fGcmJjI3PT1jLndoaWNoKXJldHVybiAyNz09Yy53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoXCJmb2N1c1wiKSxkLnRyaWdnZXIoXCJjbGlja1wiKTt2YXIgaD1cIiBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGFcIixpPWUuZmluZChcIi5kcm9wZG93bi1tZW51XCIraCk7aWYoaS5sZW5ndGgpe3ZhciBqPWkuaW5kZXgoYy50YXJnZXQpOzM4PT1jLndoaWNoJiZqPjAmJmotLSw0MD09Yy53aGljaCYmajxpLmxlbmd0aC0xJiZqKyssfmp8fChqPTApLGkuZXEoaikudHJpZ2dlcihcImZvY3VzXCIpfX19fTt2YXIgaD1hLmZuLmRyb3Bkb3duO2EuZm4uZHJvcGRvd249ZCxhLmZuLmRyb3Bkb3duLkNvbnN0cnVjdG9yPWcsYS5mbi5kcm9wZG93bi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uZHJvcGRvd249aCx0aGlzfSxhKGRvY3VtZW50KS5vbihcImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpXCIsYykub24oXCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaVwiLFwiLmRyb3Bkb3duIGZvcm1cIixmdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpfSkub24oXCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaVwiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbihcImtleWRvd24uYnMuZHJvcGRvd24uZGF0YS1hcGlcIixmLGcucHJvdG90eXBlLmtleWRvd24pLm9uKFwia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaVwiLFwiLmRyb3Bkb3duLW1lbnVcIixnLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiLGQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1hKHRoaXMpLGY9ZS5kYXRhKFwiYnMubW9kYWxcIiksZz1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGUuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBiJiZiKTtmfHxlLmRhdGEoXCJicy5tb2RhbFwiLGY9bmV3IGModGhpcyxnKSksXCJzdHJpbmdcIj09dHlwZW9mIGI/ZltiXShkKTpnLnNob3cmJmYuc2hvdyhkKX0pfXZhciBjPWZ1bmN0aW9uKGIsYyl7dGhpcy5vcHRpb25zPWMsdGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRkaWFsb2c9dGhpcy4kZWxlbWVudC5maW5kKFwiLm1vZGFsLWRpYWxvZ1wiKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLm9wdGlvbnMucmVtb3RlJiZ0aGlzLiRlbGVtZW50LmZpbmQoXCIubW9kYWwtY29udGVudFwiKS5sb2FkKHRoaXMub3B0aW9ucy5yZW1vdGUsYS5wcm94eShmdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQudHJpZ2dlcihcImxvYWRlZC5icy5tb2RhbFwiKX0sdGhpcykpfTtjLlZFUlNJT049XCIzLjMuN1wiLGMuVFJBTlNJVElPTl9EVVJBVElPTj0zMDAsYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzaG93OiEwfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3coYSl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPWEuRXZlbnQoXCJzaG93LmJzLm1vZGFsXCIse3JlbGF0ZWRUYXJnZXQ6Yn0pO3RoaXMuJGVsZW1lbnQudHJpZ2dlcihlKSx0aGlzLmlzU2hvd258fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fCh0aGlzLmlzU2hvd249ITAsdGhpcy5jaGVja1Njcm9sbGJhcigpLHRoaXMuc2V0U2Nyb2xsYmFyKCksdGhpcy4kYm9keS5hZGRDbGFzcyhcIm1vZGFsLW9wZW5cIiksdGhpcy5lc2NhcGUoKSx0aGlzLnJlc2l6ZSgpLHRoaXMuJGVsZW1lbnQub24oXCJjbGljay5kaXNtaXNzLmJzLm1vZGFsXCIsJ1tkYXRhLWRpc21pc3M9XCJtb2RhbFwiXScsYS5wcm94eSh0aGlzLmhpZGUsdGhpcykpLHRoaXMuJGRpYWxvZy5vbihcIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsXCIsZnVuY3Rpb24oKXtkLiRlbGVtZW50Lm9uZShcIm1vdXNldXAuZGlzbWlzcy5icy5tb2RhbFwiLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmlzKGQuJGVsZW1lbnQpJiYoZC5pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKFwiZmFkZVwiKTtkLiRlbGVtZW50LnBhcmVudCgpLmxlbmd0aHx8ZC4kZWxlbWVudC5hcHBlbmRUbyhkLiRib2R5KSxkLiRlbGVtZW50LnNob3coKS5zY3JvbGxUb3AoMCksZC5hZGp1c3REaWFsb2coKSxlJiZkLiRlbGVtZW50WzBdLm9mZnNldFdpZHRoLGQuJGVsZW1lbnQuYWRkQ2xhc3MoXCJpblwiKSxkLmVuZm9yY2VGb2N1cygpO3ZhciBmPWEuRXZlbnQoXCJzaG93bi5icy5tb2RhbFwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTtlP2QuJGRpYWxvZy5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixmdW5jdGlvbigpe2QuJGVsZW1lbnQudHJpZ2dlcihcImZvY3VzXCIpLnRyaWdnZXIoZil9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmQuJGVsZW1lbnQudHJpZ2dlcihcImZvY3VzXCIpLnRyaWdnZXIoZil9KSl9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGI9YS5FdmVudChcImhpZGUuYnMubW9kYWxcIiksdGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpLHRoaXMuaXNTaG93biYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJih0aGlzLmlzU2hvd249ITEsdGhpcy5lc2NhcGUoKSx0aGlzLnJlc2l6ZSgpLGEoZG9jdW1lbnQpLm9mZihcImZvY3VzaW4uYnMubW9kYWxcIiksdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhcImluXCIpLm9mZihcImNsaWNrLmRpc21pc3MuYnMubW9kYWxcIikub2ZmKFwibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsXCIpLHRoaXMuJGRpYWxvZy5vZmYoXCJtb3VzZWRvd24uZGlzbWlzcy5icy5tb2RhbFwiKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcyhcImZhZGVcIik/dGhpcy4kZWxlbWVudC5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixhLnByb3h5KHRoaXMuaGlkZU1vZGFsLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOnRoaXMuaGlkZU1vZGFsKCkpfSxjLnByb3RvdHlwZS5lbmZvcmNlRm9jdXM9ZnVuY3Rpb24oKXthKGRvY3VtZW50KS5vZmYoXCJmb2N1c2luLmJzLm1vZGFsXCIpLm9uKFwiZm9jdXNpbi5icy5tb2RhbFwiLGEucHJveHkoZnVuY3Rpb24oYSl7ZG9jdW1lbnQ9PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudFswXT09PWEudGFyZ2V0fHx0aGlzLiRlbGVtZW50LmhhcyhhLnRhcmdldCkubGVuZ3RofHx0aGlzLiRlbGVtZW50LnRyaWdnZXIoXCJmb2N1c1wiKX0sdGhpcykpfSxjLnByb3RvdHlwZS5lc2NhcGU9ZnVuY3Rpb24oKXt0aGlzLmlzU2hvd24mJnRoaXMub3B0aW9ucy5rZXlib2FyZD90aGlzLiRlbGVtZW50Lm9uKFwia2V5ZG93bi5kaXNtaXNzLmJzLm1vZGFsXCIsYS5wcm94eShmdW5jdGlvbihhKXsyNz09YS53aGljaCYmdGhpcy5oaWRlKCl9LHRoaXMpKTp0aGlzLmlzU2hvd258fHRoaXMuJGVsZW1lbnQub2ZmKFwia2V5ZG93bi5kaXNtaXNzLmJzLm1vZGFsXCIpfSxjLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt0aGlzLmlzU2hvd24/YSh3aW5kb3cpLm9uKFwicmVzaXplLmJzLm1vZGFsXCIsYS5wcm94eSh0aGlzLmhhbmRsZVVwZGF0ZSx0aGlzKSk6YSh3aW5kb3cpLm9mZihcInJlc2l6ZS5icy5tb2RhbFwiKX0sYy5wcm90b3R5cGUuaGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLiRlbGVtZW50LmhpZGUoKSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7YS4kYm9keS5yZW1vdmVDbGFzcyhcIm1vZGFsLW9wZW5cIiksYS5yZXNldEFkanVzdG1lbnRzKCksYS5yZXNldFNjcm9sbGJhcigpLGEuJGVsZW1lbnQudHJpZ2dlcihcImhpZGRlbi5icy5tb2RhbFwiKX0pfSxjLnByb3RvdHlwZS5yZW1vdmVCYWNrZHJvcD1mdW5jdGlvbigpe3RoaXMuJGJhY2tkcm9wJiZ0aGlzLiRiYWNrZHJvcC5yZW1vdmUoKSx0aGlzLiRiYWNrZHJvcD1udWxsfSxjLnByb3RvdHlwZS5iYWNrZHJvcD1mdW5jdGlvbihiKXt2YXIgZD10aGlzLGU9dGhpcy4kZWxlbWVudC5oYXNDbGFzcyhcImZhZGVcIik/XCJmYWRlXCI6XCJcIjtpZih0aGlzLmlzU2hvd24mJnRoaXMub3B0aW9ucy5iYWNrZHJvcCl7dmFyIGY9YS5zdXBwb3J0LnRyYW5zaXRpb24mJmU7aWYodGhpcy4kYmFja2Ryb3A9YShkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5hZGRDbGFzcyhcIm1vZGFsLWJhY2tkcm9wIFwiK2UpLmFwcGVuZFRvKHRoaXMuJGJvZHkpLHRoaXMuJGVsZW1lbnQub24oXCJjbGljay5kaXNtaXNzLmJzLm1vZGFsXCIsYS5wcm94eShmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrP3ZvaWQodGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrPSExKTp2b2lkKGEudGFyZ2V0PT09YS5jdXJyZW50VGFyZ2V0JiYoXCJzdGF0aWNcIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSkpfSx0aGlzKSksZiYmdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGgsdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoXCJpblwiKSwhYilyZXR1cm47Zj90aGlzLiRiYWNrZHJvcC5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixiKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pOmIoKX1lbHNlIGlmKCF0aGlzLmlzU2hvd24mJnRoaXMuJGJhY2tkcm9wKXt0aGlzLiRiYWNrZHJvcC5yZW1vdmVDbGFzcyhcImluXCIpO3ZhciBnPWZ1bmN0aW9uKCl7ZC5yZW1vdmVCYWNrZHJvcCgpLGImJmIoKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoXCJmYWRlXCIpP3RoaXMuJGJhY2tkcm9wLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLGcpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6ZygpfWVsc2UgYiYmYigpfSxjLnByb3RvdHlwZS5oYW5kbGVVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmFkanVzdERpYWxvZygpfSxjLnByb3RvdHlwZS5hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDohdGhpcy5ib2R5SXNPdmVyZmxvd2luZyYmYT90aGlzLnNjcm9sbGJhcldpZHRoOlwiXCIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiFhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6XCJcIn0pfSxjLnByb3RvdHlwZS5yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OlwiXCIscGFkZGluZ1JpZ2h0OlwiXCJ9KX0sYy5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aDtpZighYSl7dmFyIGI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2E9Yi5yaWdodC1NYXRoLmFicyhiLmxlZnQpfXRoaXMuYm9keUlzT3ZlcmZsb3dpbmc9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDxhLHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKFwicGFkZGluZy1yaWdodFwiKXx8MCwxMCk7dGhpcy5vcmlnaW5hbEJvZHlQYWQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHR8fFwiXCIsdGhpcy5ib2R5SXNPdmVyZmxvd2luZyYmdGhpcy4kYm9keS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIsYSt0aGlzLnNjcm9sbGJhcldpZHRoKX0sYy5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt0aGlzLiRib2R5LmNzcyhcInBhZGRpbmctcmlnaHRcIix0aGlzLm9yaWdpbmFsQm9keVBhZCl9LGMucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2EuY2xhc3NOYW1lPVwibW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmVcIix0aGlzLiRib2R5LmFwcGVuZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGg7cmV0dXJuIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoYSksYn07dmFyIGQ9YS5mbi5tb2RhbDthLmZuLm1vZGFsPWIsYS5mbi5tb2RhbC5Db25zdHJ1Y3Rvcj1jLGEuZm4ubW9kYWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLm1vZGFsPWQsdGhpc30sYShkb2N1bWVudCkub24oXCJjbGljay5icy5tb2RhbC5kYXRhLWFwaVwiLCdbZGF0YS10b2dnbGU9XCJtb2RhbFwiXScsZnVuY3Rpb24oYyl7dmFyIGQ9YSh0aGlzKSxlPWQuYXR0cihcImhyZWZcIiksZj1hKGQuYXR0cihcImRhdGEtdGFyZ2V0XCIpfHxlJiZlLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sXCJcIikpLGc9Zi5kYXRhKFwiYnMubW9kYWxcIik/XCJ0b2dnbGVcIjphLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChlKSYmZX0sZi5kYXRhKCksZC5kYXRhKCkpO2QuaXMoXCJhXCIpJiZjLnByZXZlbnREZWZhdWx0KCksZi5vbmUoXCJzaG93LmJzLm1vZGFsXCIsZnVuY3Rpb24oYSl7YS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8Zi5vbmUoXCJoaWRkZW4uYnMubW9kYWxcIixmdW5jdGlvbigpe2QuaXMoXCI6dmlzaWJsZVwiKSYmZC50cmlnZ2VyKFwiZm9jdXNcIil9KX0pLGIuY2FsbChmLGcsdGhpcyl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YShcImJzLnRvb2x0aXBcIiksZj1cIm9iamVjdFwiPT10eXBlb2YgYiYmYjshZSYmL2Rlc3Ryb3l8aGlkZS8udGVzdChiKXx8KGV8fGQuZGF0YShcImJzLnRvb2x0aXBcIixlPW5ldyBjKHRoaXMsZikpLFwic3RyaW5nXCI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KFwidG9vbHRpcFwiLGEsYil9O2MuVkVSU0lPTj1cIjMuMy43XCIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXthbmltYXRpb246ITAscGxhY2VtZW50OlwidG9wXCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJ0b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIj48ZGl2IGNsYXNzPVwidG9vbHRpcC1hcnJvd1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJ0b29sdGlwLWlubmVyXCI+PC9kaXY+PC9kaXY+Jyx0cmlnZ2VyOlwiaG92ZXIgZm9jdXNcIix0aXRsZTpcIlwiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOlwiYm9keVwiLHBhZGRpbmc6MH19LGMucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oYixjLGQpe2lmKHRoaXMuZW5hYmxlZD0hMCx0aGlzLnR5cGU9Yix0aGlzLiRlbGVtZW50PWEoYyksdGhpcy5vcHRpb25zPXRoaXMuZ2V0T3B0aW9ucyhkKSx0aGlzLiR2aWV3cG9ydD10aGlzLm9wdGlvbnMudmlld3BvcnQmJmEoYS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy52aWV3cG9ydCk/dGhpcy5vcHRpb25zLnZpZXdwb3J0LmNhbGwodGhpcyx0aGlzLiRlbGVtZW50KTp0aGlzLm9wdGlvbnMudmlld3BvcnQuc2VsZWN0b3J8fHRoaXMub3B0aW9ucy52aWV3cG9ydCksdGhpcy5pblN0YXRlPXtjbGljazohMSxob3ZlcjohMSxmb2N1czohMX0sdGhpcy4kZWxlbWVudFswXWluc3RhbmNlb2YgZG9jdW1lbnQuY29uc3RydWN0b3ImJiF0aGlzLm9wdGlvbnMuc2VsZWN0b3IpdGhyb3cgbmV3IEVycm9yKFwiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgXCIrdGhpcy50eXBlK1wiIG9uIHRoZSB3aW5kb3cuZG9jdW1lbnQgb2JqZWN0IVwiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoXCIgXCIpLGY9ZS5sZW5ndGg7Zi0tOyl7dmFyIGc9ZVtmXTtpZihcImNsaWNrXCI9PWcpdGhpcy4kZWxlbWVudC5vbihcImNsaWNrLlwiK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZihcIm1hbnVhbFwiIT1nKXt2YXIgaD1cImhvdmVyXCI9PWc/XCJtb3VzZWVudGVyXCI6XCJmb2N1c2luXCIsaT1cImhvdmVyXCI9PWc/XCJtb3VzZWxlYXZlXCI6XCJmb2N1c291dFwiO3RoaXMuJGVsZW1lbnQub24oaCtcIi5cIit0aGlzLnR5cGUsdGhpcy5vcHRpb25zLnNlbGVjdG9yLGEucHJveHkodGhpcy5lbnRlcix0aGlzKSksdGhpcy4kZWxlbWVudC5vbihpK1wiLlwiK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOlwibWFudWFsXCIsc2VsZWN0b3I6XCJcIn0pOnRoaXMuZml4VGl0bGUoKX0sYy5wcm90b3R5cGUuZ2V0RGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy5ERUZBVUxUU30sYy5wcm90b3R5cGUuZ2V0T3B0aW9ucz1mdW5jdGlvbihiKXtyZXR1cm4gYj1hLmV4dGVuZCh7fSx0aGlzLmdldERlZmF1bHRzKCksdGhpcy4kZWxlbWVudC5kYXRhKCksYiksYi5kZWxheSYmXCJudW1iZXJcIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlKTtyZXR1cm4gY3x8KGM9bmV3IHRoaXMuY29uc3RydWN0b3IoYi5jdXJyZW50VGFyZ2V0LHRoaXMuZ2V0RGVsZWdhdGVPcHRpb25zKCkpLGEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlLGMpKSxiIGluc3RhbmNlb2YgYS5FdmVudCYmKGMuaW5TdGF0ZVtcImZvY3VzaW5cIj09Yi50eXBlP1wiZm9jdXNcIjpcImhvdmVyXCJdPSEwKSxjLnRpcCgpLmhhc0NsYXNzKFwiaW5cIil8fFwiaW5cIj09Yy5ob3ZlclN0YXRlP3ZvaWQoYy5ob3ZlclN0YXRlPVwiaW5cIik6KGNsZWFyVGltZW91dChjLnRpbWVvdXQpLGMuaG92ZXJTdGF0ZT1cImluXCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XCJpblwiPT1jLmhvdmVyU3RhdGUmJmMuc2hvdygpfSxjLm9wdGlvbnMuZGVsYXkuc2hvdykpOmMuc2hvdygpKX0sYy5wcm90b3R5cGUuaXNJblN0YXRlVHJ1ZT1mdW5jdGlvbigpe2Zvcih2YXIgYSBpbiB0aGlzLmluU3RhdGUpaWYodGhpcy5pblN0YXRlW2FdKXJldHVybiEwO3JldHVybiExfSxjLnByb3RvdHlwZS5sZWF2ZT1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlKTtpZihjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoXCJicy5cIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlW1wiZm9jdXNvdXRcIj09Yi50eXBlP1wiZm9jdXNcIjpcImhvdmVyXCJdPSExKSwhYy5pc0luU3RhdGVUcnVlKCkpcmV0dXJuIGNsZWFyVGltZW91dChjLnRpbWVvdXQpLGMuaG92ZXJTdGF0ZT1cIm91dFwiLGMub3B0aW9ucy5kZWxheSYmYy5vcHRpb25zLmRlbGF5LmhpZGU/dm9pZChjLnRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe1wib3V0XCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXt2YXIgYj1hLkV2ZW50KFwic2hvdy5icy5cIit0aGlzLnR5cGUpO2lmKHRoaXMuaGFzQ29udGVudCgpJiZ0aGlzLmVuYWJsZWQpe3RoaXMuJGVsZW1lbnQudHJpZ2dlcihiKTt2YXIgZD1hLmNvbnRhaW5zKHRoaXMuJGVsZW1lbnRbMF0ub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy4kZWxlbWVudFswXSk7aWYoYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8IWQpcmV0dXJuO3ZhciBlPXRoaXMsZj10aGlzLnRpcCgpLGc9dGhpcy5nZXRVSUQodGhpcy50eXBlKTt0aGlzLnNldENvbnRlbnQoKSxmLmF0dHIoXCJpZFwiLGcpLHRoaXMuJGVsZW1lbnQuYXR0cihcImFyaWEtZGVzY3JpYmVkYnlcIixnKSx0aGlzLm9wdGlvbnMuYW5pbWF0aW9uJiZmLmFkZENsYXNzKFwiZmFkZVwiKTt2YXIgaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLm9wdGlvbnMucGxhY2VtZW50P3RoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLGZbMF0sdGhpcy4kZWxlbWVudFswXSk6dGhpcy5vcHRpb25zLnBsYWNlbWVudCxpPS9cXHM/YXV0bz9cXHM/L2ksaj1pLnRlc3QoaCk7aiYmKGg9aC5yZXBsYWNlKGksXCJcIil8fFwidG9wXCIpLGYuZGV0YWNoKCkuY3NzKHt0b3A6MCxsZWZ0OjAsZGlzcGxheTpcImJsb2NrXCJ9KS5hZGRDbGFzcyhoKS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlLHRoaXMpLHRoaXMub3B0aW9ucy5jb250YWluZXI/Zi5hcHBlbmRUbyh0aGlzLm9wdGlvbnMuY29udGFpbmVyKTpmLmluc2VydEFmdGVyKHRoaXMuJGVsZW1lbnQpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihcImluc2VydGVkLmJzLlwiK3RoaXMudHlwZSk7dmFyIGs9dGhpcy5nZXRQb3NpdGlvbigpLGw9ZlswXS5vZmZzZXRXaWR0aCxtPWZbMF0ub2Zmc2V0SGVpZ2h0O2lmKGope3ZhciBuPWgsbz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtoPVwiYm90dG9tXCI9PWgmJmsuYm90dG9tK20+by5ib3R0b20/XCJ0b3BcIjpcInRvcFwiPT1oJiZrLnRvcC1tPG8udG9wP1wiYm90dG9tXCI6XCJyaWdodFwiPT1oJiZrLnJpZ2h0K2w+by53aWR0aD9cImxlZnRcIjpcImxlZnRcIj09aCYmay5sZWZ0LWw8by5sZWZ0P1wicmlnaHRcIjpoLGYucmVtb3ZlQ2xhc3MobikuYWRkQ2xhc3MoaCl9dmFyIHA9dGhpcy5nZXRDYWxjdWxhdGVkT2Zmc2V0KGgsayxsLG0pO3RoaXMuYXBwbHlQbGFjZW1lbnQocCxoKTt2YXIgcT1mdW5jdGlvbigpe3ZhciBhPWUuaG92ZXJTdGF0ZTtlLiRlbGVtZW50LnRyaWdnZXIoXCJzaG93bi5icy5cIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLFwib3V0XCI9PWEmJmUubGVhdmUoZSl9O2Euc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiR0aXAuaGFzQ2xhc3MoXCJmYWRlXCIpP2Yub25lKFwiYnNUcmFuc2l0aW9uRW5kXCIscSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpxKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcyhcIm1hcmdpbi10b3BcIiksMTApLGg9cGFyc2VJbnQoZC5jc3MoXCJtYXJnaW4tbGVmdFwiKSwxMCk7aXNOYU4oZykmJihnPTApLGlzTmFOKGgpJiYoaD0wKSxiLnRvcCs9ZyxiLmxlZnQrPWgsYS5vZmZzZXQuc2V0T2Zmc2V0KGRbMF0sYS5leHRlbmQoe3VzaW5nOmZ1bmN0aW9uKGEpe2QuY3NzKHt0b3A6TWF0aC5yb3VuZChhLnRvcCksbGVmdDpNYXRoLnJvdW5kKGEubGVmdCl9KX19LGIpLDApLGQuYWRkQ2xhc3MoXCJpblwiKTt2YXIgaT1kWzBdLm9mZnNldFdpZHRoLGo9ZFswXS5vZmZzZXRIZWlnaHQ7XCJ0b3BcIj09YyYmaiE9ZiYmKGIudG9wPWIudG9wK2Ytaik7dmFyIGs9dGhpcy5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGEoYyxiLGksaik7ay5sZWZ0P2IubGVmdCs9ay5sZWZ0OmIudG9wKz1rLnRvcDt2YXIgbD0vdG9wfGJvdHRvbS8udGVzdChjKSxtPWw/MiprLmxlZnQtZStpOjIqay50b3AtZitqLG49bD9cIm9mZnNldFdpZHRoXCI6XCJvZmZzZXRIZWlnaHRcIjtkLm9mZnNldChiKSx0aGlzLnJlcGxhY2VBcnJvdyhtLGRbMF1bbl0sbCl9LGMucHJvdG90eXBlLnJlcGxhY2VBcnJvdz1mdW5jdGlvbihhLGIsYyl7dGhpcy5hcnJvdygpLmNzcyhjP1wibGVmdFwiOlwidG9wXCIsNTAqKDEtYS9iKStcIiVcIikuY3NzKGM/XCJ0b3BcIjpcImxlZnRcIixcIlwiKX0sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCk7YS5maW5kKFwiLnRvb2x0aXAtaW5uZXJcIilbdGhpcy5vcHRpb25zLmh0bWw/XCJodG1sXCI6XCJ0ZXh0XCJdKGIpLGEucmVtb3ZlQ2xhc3MoXCJmYWRlIGluIHRvcCBib3R0b20gbGVmdCByaWdodFwiKX0sYy5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbihiKXtmdW5jdGlvbiBkKCl7XCJpblwiIT1lLmhvdmVyU3RhdGUmJmYuZGV0YWNoKCksZS4kZWxlbWVudCYmZS4kZWxlbWVudC5yZW1vdmVBdHRyKFwiYXJpYS1kZXNjcmliZWRieVwiKS50cmlnZ2VyKFwiaGlkZGVuLmJzLlwiK2UudHlwZSksYiYmYigpfXZhciBlPXRoaXMsZj1hKHRoaXMuJHRpcCksZz1hLkV2ZW50KFwiaGlkZS5icy5cIit0aGlzLnR5cGUpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSwhZy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm4gZi5yZW1vdmVDbGFzcyhcImluXCIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZmLmhhc0NsYXNzKFwiZmFkZVwiKT9mLm9uZShcImJzVHJhbnNpdGlvbkVuZFwiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXN9LGMucHJvdG90eXBlLmZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudDsoYS5hdHRyKFwidGl0bGVcIil8fFwic3RyaW5nXCIhPXR5cGVvZiBhLmF0dHIoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpKSYmYS5hdHRyKFwiZGF0YS1vcmlnaW5hbC10aXRsZVwiLGEuYXR0cihcInRpdGxlXCIpfHxcIlwiKS5hdHRyKFwidGl0bGVcIixcIlwiKX0sYy5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl9LGMucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGIpe2I9Ynx8dGhpcy4kZWxlbWVudDt2YXIgYz1iWzBdLGQ9XCJCT0RZXCI9PWMudGFnTmFtZSxlPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bnVsbD09ZS53aWR0aCYmKGU9YS5leHRlbmQoe30sZSx7d2lkdGg6ZS5yaWdodC1lLmxlZnQsaGVpZ2h0OmUuYm90dG9tLWUudG9wfSkpO3ZhciBmPXdpbmRvdy5TVkdFbGVtZW50JiZjIGluc3RhbmNlb2Ygd2luZG93LlNWR0VsZW1lbnQsZz1kP3t0b3A6MCxsZWZ0OjB9OmY/bnVsbDpiLm9mZnNldCgpLGg9e3Njcm9sbDpkP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOmIuc2Nyb2xsVG9wKCl9LGk9ZD97d2lkdGg6YSh3aW5kb3cpLndpZHRoKCksaGVpZ2h0OmEod2luZG93KS5oZWlnaHQoKX06bnVsbDtyZXR1cm4gYS5leHRlbmQoe30sZSxoLGksZyl9LGMucHJvdG90eXBlLmdldENhbGN1bGF0ZWRPZmZzZXQ9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuXCJib3R0b21cIj09YT97dG9wOmIudG9wK2IuaGVpZ2h0LGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OlwidG9wXCI9PWE/e3RvcDpiLnRvcC1kLGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OlwibGVmdFwiPT1hP3t0b3A6Yi50b3ArYi5oZWlnaHQvMi1kLzIsbGVmdDpiLmxlZnQtY306e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdCtiLndpZHRofX0sYy5wcm90b3R5cGUuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXt0b3A6MCxsZWZ0OjB9O2lmKCF0aGlzLiR2aWV3cG9ydClyZXR1cm4gZTt2YXIgZj10aGlzLm9wdGlvbnMudmlld3BvcnQmJnRoaXMub3B0aW9ucy52aWV3cG9ydC5wYWRkaW5nfHwwLGc9dGhpcy5nZXRQb3NpdGlvbih0aGlzLiR2aWV3cG9ydCk7aWYoL3JpZ2h0fGxlZnQvLnRlc3QoYSkpe3ZhciBoPWIudG9wLWYtZy5zY3JvbGwsaT1iLnRvcCtmLWcuc2Nyb2xsK2Q7aDxnLnRvcD9lLnRvcD1nLnRvcC1oOmk+Zy50b3ArZy5oZWlnaHQmJihlLnRvcD1nLnRvcCtnLmhlaWdodC1pKX1lbHNle3ZhciBqPWIubGVmdC1mLGs9Yi5sZWZ0K2YrYztqPGcubGVmdD9lLmxlZnQ9Zy5sZWZ0LWo6az5nLnJpZ2h0JiYoZS5sZWZ0PWcubGVmdCtnLndpZHRoLWspfXJldHVybiBlfSxjLnByb3RvdHlwZS5nZXRUaXRsZT1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kZWxlbWVudCxjPXRoaXMub3B0aW9ucztyZXR1cm4gYT1iLmF0dHIoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpfHwoXCJmdW5jdGlvblwiPT10eXBlb2YgYy50aXRsZT9jLnRpdGxlLmNhbGwoYlswXSk6Yy50aXRsZSl9LGMucHJvdG90eXBlLmdldFVJRD1mdW5jdGlvbihhKXtkbyBhKz1+figxZTYqTWF0aC5yYW5kb20oKSk7d2hpbGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpO3JldHVybiBhfSxjLnByb3RvdHlwZS50aXA9ZnVuY3Rpb24oKXtpZighdGhpcy4kdGlwJiYodGhpcy4kdGlwPWEodGhpcy5vcHRpb25zLnRlbXBsYXRlKSwxIT10aGlzLiR0aXAubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IodGhpcy50eXBlK1wiIGB0ZW1wbGF0ZWAgb3B0aW9uIG11c3QgY29uc2lzdCBvZiBleGFjdGx5IDEgdG9wLWxldmVsIGVsZW1lbnQhXCIpO3JldHVybiB0aGlzLiR0aXB9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoXCIudG9vbHRpcC1hcnJvd1wiKX0sYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExfSxjLnByb3RvdHlwZS50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSF0aGlzLmVuYWJsZWR9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2ImJihjPWEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKFwiYnMuXCIrdGhpcy50eXBlKSxjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoXCJicy5cIit0aGlzLnR5cGUsYykpKSxiPyhjLmluU3RhdGUuY2xpY2s9IWMuaW5TdGF0ZS5jbGljayxjLmlzSW5TdGF0ZVRydWUoKT9jLmVudGVyKGMpOmMubGVhdmUoYykpOmMudGlwKCkuaGFzQ2xhc3MoXCJpblwiKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKFwiLlwiK2EudHlwZSkucmVtb3ZlRGF0YShcImJzLlwiK2EudHlwZSksYS4kdGlwJiZhLiR0aXAuZGV0YWNoKCksYS4kdGlwPW51bGwsYS4kYXJyb3c9bnVsbCxhLiR2aWV3cG9ydD1udWxsLGEuJGVsZW1lbnQ9bnVsbH0pfTt2YXIgZD1hLmZuLnRvb2x0aXA7YS5mbi50b29sdGlwPWIsYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yPWMsYS5mbi50b29sdGlwLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi50b29sdGlwPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoXCJicy5wb3BvdmVyXCIpLGY9XCJvYmplY3RcIj09dHlwZW9mIGImJmI7IWUmJi9kZXN0cm95fGhpZGUvLnRlc3QoYil8fChlfHxkLmRhdGEoXCJicy5wb3BvdmVyXCIsZT1uZXcgYyh0aGlzLGYpKSxcInN0cmluZ1wiPT10eXBlb2YgYiYmZVtiXSgpKX0pfXZhciBjPWZ1bmN0aW9uKGEsYil7dGhpcy5pbml0KFwicG9wb3ZlclwiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKFwiUG9wb3ZlciByZXF1aXJlcyB0b29sdGlwLmpzXCIpO2MuVkVSU0lPTj1cIjMuMy43XCIsYy5ERUZBVUxUUz1hLmV4dGVuZCh7fSxhLmZuLnRvb2x0aXAuQ29uc3RydWN0b3IuREVGQVVMVFMse3BsYWNlbWVudDpcInJpZ2h0XCIsdHJpZ2dlcjpcImNsaWNrXCIsY29udGVudDpcIlwiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwicG9wb3ZlclwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGgzIGNsYXNzPVwicG9wb3Zlci10aXRsZVwiPjwvaDM+PGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudFwiPjwvZGl2PjwvZGl2Pid9KSxjLnByb3RvdHlwZT1hLmV4dGVuZCh7fSxhLmZuLnRvb2x0aXAuQ29uc3RydWN0b3IucHJvdG90eXBlKSxjLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1jLGMucHJvdG90eXBlLmdldERlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIGMuREVGQVVMVFN9LGMucHJvdG90eXBlLnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnRpcCgpLGI9dGhpcy5nZXRUaXRsZSgpLGM9dGhpcy5nZXRDb250ZW50KCk7YS5maW5kKFwiLnBvcG92ZXItdGl0bGVcIilbdGhpcy5vcHRpb25zLmh0bWw/XCJodG1sXCI6XCJ0ZXh0XCJdKGIpLGEuZmluZChcIi5wb3BvdmVyLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5kZXRhY2goKS5lbmQoKVt0aGlzLm9wdGlvbnMuaHRtbD9cInN0cmluZ1wiPT10eXBlb2YgYz9cImh0bWxcIjpcImFwcGVuZFwiOlwidGV4dFwiXShjKSxhLnJlbW92ZUNsYXNzKFwiZmFkZSB0b3AgYm90dG9tIGxlZnQgcmlnaHQgaW5cIiksYS5maW5kKFwiLnBvcG92ZXItdGl0bGVcIikuaHRtbCgpfHxhLmZpbmQoXCIucG9wb3Zlci10aXRsZVwiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cihcImRhdGEtY29udGVudFwiKXx8KFwiZnVuY3Rpb25cIj09dHlwZW9mIGIuY29udGVudD9iLmNvbnRlbnQuY2FsbChhWzBdKTpiLmNvbnRlbnQpfSxjLnByb3RvdHlwZS5hcnJvdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRhcnJvdz10aGlzLiRhcnJvd3x8dGhpcy50aXAoKS5maW5kKFwiLmFycm93XCIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYyxkKXt0aGlzLiRib2R5PWEoZG9jdW1lbnQuYm9keSksdGhpcy4kc2Nyb2xsRWxlbWVudD1hKGEoYykuaXMoZG9jdW1lbnQuYm9keSk/d2luZG93OmMpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxiLkRFRkFVTFRTLGQpLHRoaXMuc2VsZWN0b3I9KHRoaXMub3B0aW9ucy50YXJnZXR8fFwiXCIpK1wiIC5uYXYgbGkgPiBhXCIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbihcInNjcm9sbC5icy5zY3JvbGxzcHlcIixhLnByb3h5KHRoaXMucHJvY2Vzcyx0aGlzKSksdGhpcy5yZWZyZXNoKCksdGhpcy5wcm9jZXNzKCl9ZnVuY3Rpb24gYyhjKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YShcImJzLnNjcm9sbHNweVwiKSxmPVwib2JqZWN0XCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YShcImJzLnNjcm9sbHNweVwiLGU9bmV3IGIodGhpcyxmKSksXCJzdHJpbmdcIj09dHlwZW9mIGMmJmVbY10oKX0pfWIuVkVSU0lPTj1cIjMuMy43XCIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPVwib2Zmc2V0XCIsZD0wO3RoaXMub2Zmc2V0cz1bXSx0aGlzLnRhcmdldHM9W10sdGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxhLmlzV2luZG93KHRoaXMuJHNjcm9sbEVsZW1lbnRbMF0pfHwoYz1cInBvc2l0aW9uXCIsZD10aGlzLiRzY3JvbGxFbGVtZW50LnNjcm9sbFRvcCgpKSx0aGlzLiRib2R5LmZpbmQodGhpcy5zZWxlY3RvcikubWFwKGZ1bmN0aW9uKCl7dmFyIGI9YSh0aGlzKSxlPWIuZGF0YShcInRhcmdldFwiKXx8Yi5hdHRyKFwiaHJlZlwiKSxmPS9eIy4vLnRlc3QoZSkmJmEoZSk7cmV0dXJuIGYmJmYubGVuZ3RoJiZmLmlzKFwiOnZpc2libGVcIikmJltbZltjXSgpLnRvcCtkLGVdXXx8bnVsbH0pLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYVswXS1iWzBdfSkuZWFjaChmdW5jdGlvbigpe2Iub2Zmc2V0cy5wdXNoKHRoaXNbMF0pLGIudGFyZ2V0cy5wdXNoKHRoaXNbMV0pfSl9LGIucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24oKXt2YXIgYSxiPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkrdGhpcy5vcHRpb25zLm9mZnNldCxjPXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksZD10aGlzLm9wdGlvbnMub2Zmc2V0K2MtdGhpcy4kc2Nyb2xsRWxlbWVudC5oZWlnaHQoKSxlPXRoaXMub2Zmc2V0cyxmPXRoaXMudGFyZ2V0cyxnPXRoaXMuYWN0aXZlVGFyZ2V0O2lmKHRoaXMuc2Nyb2xsSGVpZ2h0IT1jJiZ0aGlzLnJlZnJlc2goKSxiPj1kKXJldHVybiBnIT0oYT1mW2YubGVuZ3RoLTFdKSYmdGhpcy5hY3RpdmF0ZShhKTtpZihnJiZiPGVbMF0pcmV0dXJuIHRoaXMuYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5jbGVhcigpO2ZvcihhPWUubGVuZ3RoO2EtLTspZyE9ZlthXSYmYj49ZVthXSYmKHZvaWQgMD09PWVbYSsxXXx8YjxlW2ErMV0pJiZ0aGlzLmFjdGl2YXRlKGZbYV0pfSxiLnByb3RvdHlwZS5hY3RpdmF0ZT1mdW5jdGlvbihiKXtcbnRoaXMuYWN0aXZlVGFyZ2V0PWIsdGhpcy5jbGVhcigpO3ZhciBjPXRoaXMuc2VsZWN0b3IrJ1tkYXRhLXRhcmdldD1cIicrYisnXCJdLCcrdGhpcy5zZWxlY3RvcisnW2hyZWY9XCInK2IrJ1wiXScsZD1hKGMpLnBhcmVudHMoXCJsaVwiKS5hZGRDbGFzcyhcImFjdGl2ZVwiKTtkLnBhcmVudChcIi5kcm9wZG93bi1tZW51XCIpLmxlbmd0aCYmKGQ9ZC5jbG9zZXN0KFwibGkuZHJvcGRvd25cIikuYWRkQ2xhc3MoXCJhY3RpdmVcIikpLGQudHJpZ2dlcihcImFjdGl2YXRlLmJzLnNjcm9sbHNweVwiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LFwiLmFjdGl2ZVwiKS5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKX07dmFyIGQ9YS5mbi5zY3JvbGxzcHk7YS5mbi5zY3JvbGxzcHk9YyxhLmZuLnNjcm9sbHNweS5Db25zdHJ1Y3Rvcj1iLGEuZm4uc2Nyb2xsc3B5Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5zY3JvbGxzcHk9ZCx0aGlzfSxhKHdpbmRvdykub24oXCJsb2FkLmJzLnNjcm9sbHNweS5kYXRhLWFwaVwiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PVwic2Nyb2xsXCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBiPWEodGhpcyk7Yy5jYWxsKGIsYi5kYXRhKCkpfSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YShcImJzLnRhYlwiKTtlfHxkLmRhdGEoXCJicy50YWJcIixlPW5ldyBjKHRoaXMpKSxcInN0cmluZ1wiPT10eXBlb2YgYiYmZVtiXSgpfSl9dmFyIGM9ZnVuY3Rpb24oYil7dGhpcy5lbGVtZW50PWEoYil9O2MuVkVSU0lPTj1cIjMuMy43XCIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KFwidWw6bm90KC5kcm9wZG93bi1tZW51KVwiKSxkPWIuZGF0YShcInRhcmdldFwiKTtpZihkfHwoZD1iLmF0dHIoXCJocmVmXCIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLFwiXCIpKSwhYi5wYXJlbnQoXCJsaVwiKS5oYXNDbGFzcyhcImFjdGl2ZVwiKSl7dmFyIGU9Yy5maW5kKFwiLmFjdGl2ZTpsYXN0IGFcIiksZj1hLkV2ZW50KFwiaGlkZS5icy50YWJcIix7cmVsYXRlZFRhcmdldDpiWzBdfSksZz1hLkV2ZW50KFwic2hvdy5icy50YWJcIix7cmVsYXRlZFRhcmdldDplWzBdfSk7aWYoZS50cmlnZ2VyKGYpLGIudHJpZ2dlcihnKSwhZy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIWYuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBoPWEoZCk7dGhpcy5hY3RpdmF0ZShiLmNsb3Nlc3QoXCJsaVwiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZTpcImhpZGRlbi5icy50YWJcIixyZWxhdGVkVGFyZ2V0OmJbMF19KSxiLnRyaWdnZXIoe3R5cGU6XCJzaG93bi5icy50YWJcIixyZWxhdGVkVGFyZ2V0OmVbMF19KX0pfX19LGMucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIsZCxlKXtmdW5jdGlvbiBmKCl7Zy5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKS5maW5kKFwiPiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmVcIikucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIikuZW5kKCkuZmluZCgnW2RhdGEtdG9nZ2xlPVwidGFiXCJdJykuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMSksYi5hZGRDbGFzcyhcImFjdGl2ZVwiKS5maW5kKCdbZGF0YS10b2dnbGU9XCJ0YWJcIl0nKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSxoPyhiWzBdLm9mZnNldFdpZHRoLGIuYWRkQ2xhc3MoXCJpblwiKSk6Yi5yZW1vdmVDbGFzcyhcImZhZGVcIiksYi5wYXJlbnQoXCIuZHJvcGRvd24tbWVudVwiKS5sZW5ndGgmJmIuY2xvc2VzdChcImxpLmRyb3Bkb3duXCIpLmFkZENsYXNzKFwiYWN0aXZlXCIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT1cInRhYlwiXScpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITApLGUmJmUoKX12YXIgZz1kLmZpbmQoXCI+IC5hY3RpdmVcIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKFwiZmFkZVwiKXx8ISFkLmZpbmQoXCI+IC5mYWRlXCIpLmxlbmd0aCk7Zy5sZW5ndGgmJmg/Zy5vbmUoXCJic1RyYW5zaXRpb25FbmRcIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKFwiaW5cIil9O3ZhciBkPWEuZm4udGFiO2EuZm4udGFiPWIsYS5mbi50YWIuQ29uc3RydWN0b3I9YyxhLmZuLnRhYi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udGFiPWQsdGhpc307dmFyIGU9ZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpLGIuY2FsbChhKHRoaXMpLFwic2hvd1wiKX07YShkb2N1bWVudCkub24oXCJjbGljay5icy50YWIuZGF0YS1hcGlcIiwnW2RhdGEtdG9nZ2xlPVwidGFiXCJdJyxlKS5vbihcImNsaWNrLmJzLnRhYi5kYXRhLWFwaVwiLCdbZGF0YS10b2dnbGU9XCJwaWxsXCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YShcImJzLmFmZml4XCIpLGY9XCJvYmplY3RcIj09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKFwiYnMuYWZmaXhcIixlPW5ldyBjKHRoaXMsZikpLFwic3RyaW5nXCI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiLGQpe3RoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQpLHRoaXMuJHRhcmdldD1hKHRoaXMub3B0aW9ucy50YXJnZXQpLm9uKFwic2Nyb2xsLmJzLmFmZml4LmRhdGEtYXBpXCIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKFwiY2xpY2suYnMuYWZmaXguZGF0YS1hcGlcIixhLnByb3h5KHRoaXMuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3AsdGhpcykpLHRoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLmFmZml4ZWQ9bnVsbCx0aGlzLnVucGluPW51bGwsdGhpcy5waW5uZWRPZmZzZXQ9bnVsbCx0aGlzLmNoZWNrUG9zaXRpb24oKX07Yy5WRVJTSU9OPVwiMy4zLjdcIixjLlJFU0VUPVwiYWZmaXggYWZmaXgtdG9wIGFmZml4LWJvdHRvbVwiLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmXCJ0b3BcIj09dGhpcy5hZmZpeGVkKXJldHVybiBlPGMmJlwidG9wXCI7aWYoXCJib3R0b21cIj09dGhpcy5hZmZpeGVkKXJldHVybiBudWxsIT1jPyEoZSt0aGlzLnVucGluPD1mLnRvcCkmJlwiYm90dG9tXCI6IShlK2c8PWEtZCkmJlwiYm90dG9tXCI7dmFyIGg9bnVsbD09dGhpcy5hZmZpeGVkLGk9aD9lOmYudG9wLGo9aD9nOmI7cmV0dXJuIG51bGwhPWMmJmU8PWM/XCJ0b3BcIjpudWxsIT1kJiZpK2o+PWEtZCYmXCJib3R0b21cIn0sYy5wcm90b3R5cGUuZ2V0UGlubmVkT2Zmc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5waW5uZWRPZmZzZXQpcmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0O3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoXCJhZmZpeFwiKTt2YXIgYT10aGlzLiR0YXJnZXQuc2Nyb2xsVG9wKCksYj10aGlzLiRlbGVtZW50Lm9mZnNldCgpO3JldHVybiB0aGlzLnBpbm5lZE9mZnNldD1iLnRvcC1hfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uV2l0aEV2ZW50TG9vcD1mdW5jdGlvbigpe3NldFRpbWVvdXQoYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcyksMSl9LGMucHJvdG90eXBlLmNoZWNrUG9zaXRpb249ZnVuY3Rpb24oKXtpZih0aGlzLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikpe3ZhciBiPXRoaXMuJGVsZW1lbnQuaGVpZ2h0KCksZD10aGlzLm9wdGlvbnMub2Zmc2V0LGU9ZC50b3AsZj1kLmJvdHRvbSxnPU1hdGgubWF4KGEoZG9jdW1lbnQpLmhlaWdodCgpLGEoZG9jdW1lbnQuYm9keSkuaGVpZ2h0KCkpO1wib2JqZWN0XCIhPXR5cGVvZiBkJiYoZj1lPWQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihlPWQudG9wKHRoaXMuJGVsZW1lbnQpKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBmJiYoZj1kLmJvdHRvbSh0aGlzLiRlbGVtZW50KSk7dmFyIGg9dGhpcy5nZXRTdGF0ZShnLGIsZSxmKTtpZih0aGlzLmFmZml4ZWQhPWgpe251bGwhPXRoaXMudW5waW4mJnRoaXMuJGVsZW1lbnQuY3NzKFwidG9wXCIsXCJcIik7dmFyIGk9XCJhZmZpeFwiKyhoP1wiLVwiK2g6XCJcIiksaj1hLkV2ZW50KGkrXCIuYnMuYWZmaXhcIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGopLGouaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO3RoaXMuYWZmaXhlZD1oLHRoaXMudW5waW49XCJib3R0b21cIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZShcImFmZml4XCIsXCJhZmZpeGVkXCIpK1wiLmJzLmFmZml4XCIpfVwiYm90dG9tXCI9PWgmJnRoaXMuJGVsZW1lbnQub2Zmc2V0KHt0b3A6Zy1iLWZ9KX19O3ZhciBkPWEuZm4uYWZmaXg7YS5mbi5hZmZpeD1iLGEuZm4uYWZmaXguQ29uc3RydWN0b3I9YyxhLmZuLmFmZml4Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5hZmZpeD1kLHRoaXN9LGEod2luZG93KS5vbihcImxvYWRcIixmdW5jdGlvbigpe2EoJ1tkYXRhLXNweT1cImFmZml4XCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9kaXN0L2pzL2Jvb3RzdHJhcC5taW4uanNcbi8vIG1vZHVsZSBpZCA9IDQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///49\n");

/***/ }),

/***/ 50:
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_RESULT__;;(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.\n\t *\n\t * @codingstandard ftlabs-jsv2\n\t * @copyright The Financial Times Limited [All Rights Reserved]\n\t * @license MIT License (see LICENSE.txt)\n\t */\n\n\t/*jslint browser:true, node:true*/\n\t/*global define, Event, Node*/\n\n\n\t/**\n\t * Instantiate fast-clicking listeners on the specified layer.\n\t *\n\t * @constructor\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tfunction FastClick(layer, options) {\n\t\tvar oldOnClick;\n\n\t\toptions = options || {};\n\n\t\t/**\n\t\t * Whether a click is currently being tracked.\n\t\t *\n\t\t * @type boolean\n\t\t */\n\t\tthis.trackingClick = false;\n\n\n\t\t/**\n\t\t * Timestamp for when click tracking started.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.trackingClickStart = 0;\n\n\n\t\t/**\n\t\t * The element being tracked for a click.\n\t\t *\n\t\t * @type EventTarget\n\t\t */\n\t\tthis.targetElement = null;\n\n\n\t\t/**\n\t\t * X-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartX = 0;\n\n\n\t\t/**\n\t\t * Y-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartY = 0;\n\n\n\t\t/**\n\t\t * ID of the last touch, retrieved from Touch.identifier.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.lastTouchIdentifier = 0;\n\n\n\t\t/**\n\t\t * Touchmove boundary, beyond which a click will be cancelled.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchBoundary = options.touchBoundary || 10;\n\n\n\t\t/**\n\t\t * The FastClick layer.\n\t\t *\n\t\t * @type Element\n\t\t */\n\t\tthis.layer = layer;\n\n\t\t/**\n\t\t * The minimum time between tap(touchstart and touchend) events\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapDelay = options.tapDelay || 200;\n\n\t\t/**\n\t\t * The maximum time for a tap\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapTimeout = options.tapTimeout || 700;\n\n\t\tif (FastClick.notNeeded(layer)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Some old versions of Android don't have Function.prototype.bind\n\t\tfunction bind(method, context) {\n\t\t\treturn function() { return method.apply(context, arguments); };\n\t\t}\n\n\n\t\tvar methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];\n\t\tvar context = this;\n\t\tfor (var i = 0, l = methods.length; i < l; i++) {\n\t\t\tcontext[methods[i]] = bind(context[methods[i]], context);\n\t\t}\n\n\t\t// Set up event handlers as required\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.addEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.addEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.addEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.addEventListener('click', this.onClick, true);\n\t\tlayer.addEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.addEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.addEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.addEventListener('touchcancel', this.onTouchCancel, false);\n\n\t\t// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick\n\t\t// layer when they are cancelled.\n\t\tif (!Event.prototype.stopImmediatePropagation) {\n\t\t\tlayer.removeEventListener = function(type, callback, capture) {\n\t\t\t\tvar rmv = Node.prototype.removeEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\trmv.call(layer, type, callback.hijacked || callback, capture);\n\t\t\t\t} else {\n\t\t\t\t\trmv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlayer.addEventListener = function(type, callback, capture) {\n\t\t\t\tvar adv = Node.prototype.addEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\tadv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {\n\t\t\t\t\t\tif (!event.propagationStopped) {\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}), capture);\n\t\t\t\t} else {\n\t\t\t\t\tadv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// If a handler is already declared in the element's onclick attribute, it will be fired before\n\t\t// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and\n\t\t// adding it as listener.\n\t\tif (typeof layer.onclick === 'function') {\n\n\t\t\t// Android browser on at least 3.2 requires a new reference to the function in layer.onclick\n\t\t\t// - the old one won't work if passed to addEventListener directly.\n\t\t\toldOnClick = layer.onclick;\n\t\t\tlayer.addEventListener('click', function(event) {\n\t\t\t\toldOnClick(event);\n\t\t\t}, false);\n\t\t\tlayer.onclick = null;\n\t\t}\n\t}\n\n\t/**\n\t* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.\n\t*\n\t* @type boolean\n\t*/\n\tvar deviceIsWindowsPhone = navigator.userAgent.indexOf(\"Windows Phone\") >= 0;\n\n\t/**\n\t * Android requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS 4 requires an exception for select elements.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS4 = deviceIsIOS && (/OS 4_\\d(_\\d)?/).test(navigator.userAgent);\n\n\n\t/**\n\t * iOS 6.0-7.* requires the target element to be manually derived\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\\d/).test(navigator.userAgent);\n\n\t/**\n\t * BlackBerry requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;\n\n\t/**\n\t * Determine whether a given element requires a native click.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element needs a native click\n\t */\n\tFastClick.prototype.needsClick = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\n\t\t// Don't send a synthetic click to disabled inputs (issue #62)\n\t\tcase 'button':\n\t\tcase 'select':\n\t\tcase 'textarea':\n\t\t\tif (target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'input':\n\n\t\t\t// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)\n\t\t\tif ((deviceIsIOS && target.type === 'file') || target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'label':\n\t\tcase 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames\n\t\tcase 'video':\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (/\\bneedsclick\\b/).test(target.className);\n\t};\n\n\n\t/**\n\t * Determine whether a given element requires a call to focus to simulate click into element.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.\n\t */\n\tFastClick.prototype.needsFocus = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\t\tcase 'textarea':\n\t\t\treturn true;\n\t\tcase 'select':\n\t\t\treturn !deviceIsAndroid;\n\t\tcase 'input':\n\t\t\tswitch (target.type) {\n\t\t\tcase 'button':\n\t\t\tcase 'checkbox':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'radio':\n\t\t\tcase 'submit':\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// No point in attempting to focus disabled inputs\n\t\t\treturn !target.disabled && !target.readOnly;\n\t\tdefault:\n\t\t\treturn (/\\bneedsfocus\\b/).test(target.className);\n\t\t}\n\t};\n\n\n\t/**\n\t * Send a click event to the specified element.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t * @param {Event} event\n\t */\n\tFastClick.prototype.sendClick = function(targetElement, event) {\n\t\tvar clickEvent, touch;\n\n\t\t// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)\n\t\tif (document.activeElement && document.activeElement !== targetElement) {\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\n\t\ttouch = event.changedTouches[0];\n\n\t\t// Synthesise a click event, with an extra attribute so it can be tracked\n\t\tclickEvent = document.createEvent('MouseEvents');\n\t\tclickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);\n\t\tclickEvent.forwardedTouchEvent = true;\n\t\ttargetElement.dispatchEvent(clickEvent);\n\t};\n\n\tFastClick.prototype.determineEventType = function(targetElement) {\n\n\t\t//Issue #159: Android Chrome Select Box does not open with a synthetic click event\n\t\tif (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {\n\t\t\treturn 'mousedown';\n\t\t}\n\n\t\treturn 'click';\n\t};\n\n\n\t/**\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.focus = function(targetElement) {\n\t\tvar length;\n\n\t\t// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.\n\t\tif (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {\n\t\t\tlength = targetElement.value.length;\n\t\t\ttargetElement.setSelectionRange(length, length);\n\t\t} else {\n\t\t\ttargetElement.focus();\n\t\t}\n\t};\n\n\n\t/**\n\t * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.updateScrollParent = function(targetElement) {\n\t\tvar scrollParent, parentElement;\n\n\t\tscrollParent = targetElement.fastClickScrollParent;\n\n\t\t// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the\n\t\t// target element was moved to another parent.\n\t\tif (!scrollParent || !scrollParent.contains(targetElement)) {\n\t\t\tparentElement = targetElement;\n\t\t\tdo {\n\t\t\t\tif (parentElement.scrollHeight > parentElement.offsetHeight) {\n\t\t\t\t\tscrollParent = parentElement;\n\t\t\t\t\ttargetElement.fastClickScrollParent = parentElement;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparentElement = parentElement.parentElement;\n\t\t\t} while (parentElement);\n\t\t}\n\n\t\t// Always update the scroll top tracker if possible.\n\t\tif (scrollParent) {\n\t\t\tscrollParent.fastClickLastScrollTop = scrollParent.scrollTop;\n\t\t}\n\t};\n\n\n\t/**\n\t * @param {EventTarget} targetElement\n\t * @returns {Element|EventTarget}\n\t */\n\tFastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {\n\n\t\t// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.\n\t\tif (eventTarget.nodeType === Node.TEXT_NODE) {\n\t\t\treturn eventTarget.parentNode;\n\t\t}\n\n\t\treturn eventTarget;\n\t};\n\n\n\t/**\n\t * On touch start, record the position and scroll offset.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchStart = function(event) {\n\t\tvar targetElement, touch, selection;\n\n\t\t// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).\n\t\tif (event.targetTouches.length > 1) {\n\t\t\treturn true;\n\t\t}\n\n\t\ttargetElement = this.getTargetElementFromEventTarget(event.target);\n\t\ttouch = event.targetTouches[0];\n\n\t\tif (deviceIsIOS) {\n\n\t\t\t// Only trusted events will deselect text on iOS (issue #49)\n\t\t\tselection = window.getSelection();\n\t\t\tif (selection.rangeCount && !selection.isCollapsed) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!deviceIsIOS4) {\n\n\t\t\t\t// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):\n\t\t\t\t// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched\n\t\t\t\t// with the same identifier as the touch event that previously triggered the click that triggered the alert.\n\t\t\t\t// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an\n\t\t\t\t// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.\n\t\t\t\t// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,\n\t\t\t\t// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,\n\t\t\t\t// random integers, it's safe to to continue if the identifier is 0 here.\n\t\t\t\tif (touch.identifier && touch.identifier === this.lastTouchIdentifier) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastTouchIdentifier = touch.identifier;\n\n\t\t\t\t// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:\n\t\t\t\t// 1) the user does a fling scroll on the scrollable layer\n\t\t\t\t// 2) the user stops the fling scroll with another tap\n\t\t\t\t// then the event.target of the last 'touchend' event will be the element that was under the user's finger\n\t\t\t\t// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check\n\t\t\t\t// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).\n\t\t\t\tthis.updateScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackingClick = true;\n\t\tthis.trackingClickStart = event.timeStamp;\n\t\tthis.targetElement = targetElement;\n\n\t\tthis.touchStartX = touch.pageX;\n\t\tthis.touchStartY = touch.pageY;\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.touchHasMoved = function(event) {\n\t\tvar touch = event.changedTouches[0], boundary = this.touchBoundary;\n\n\t\tif (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Update the last position.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchMove = function(event) {\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the touch has moved, cancel the click tracking\n\t\tif (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {\n\t\t\tthis.trackingClick = false;\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Attempt to find the labelled control for the given label element.\n\t *\n\t * @param {EventTarget|HTMLLabelElement} labelElement\n\t * @returns {Element|null}\n\t */\n\tFastClick.prototype.findControl = function(labelElement) {\n\n\t\t// Fast path for newer browsers supporting the HTML5 control attribute\n\t\tif (labelElement.control !== undefined) {\n\t\t\treturn labelElement.control;\n\t\t}\n\n\t\t// All browsers under test that support touch events also support the HTML5 htmlFor attribute\n\t\tif (labelElement.htmlFor) {\n\t\t\treturn document.getElementById(labelElement.htmlFor);\n\t\t}\n\n\t\t// If no for attribute exists, attempt to retrieve the first labellable descendant element\n\t\t// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label\n\t\treturn labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');\n\t};\n\n\n\t/**\n\t * On touch end, determine whether to send a click event at once.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchEnd = function(event) {\n\t\tvar forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;\n\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tthis.cancelNextClick = true;\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Reset to prevent wrong click cancel on input (issue #156).\n\t\tthis.cancelNextClick = false;\n\n\t\tthis.lastClickTime = event.timeStamp;\n\n\t\ttrackingClickStart = this.trackingClickStart;\n\t\tthis.trackingClick = false;\n\t\tthis.trackingClickStart = 0;\n\n\t\t// On some iOS devices, the targetElement supplied with the event is invalid if the layer\n\t\t// is performing a transition or scroll, and has to be re-detected manually. Note that\n\t\t// for this to function correctly, it must be called *after* the event target is checked!\n\t\t// See issue #57; also filed as rdar://13048589 .\n\t\tif (deviceIsIOSWithBadTarget) {\n\t\t\ttouch = event.changedTouches[0];\n\n\t\t\t// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null\n\t\t\ttargetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;\n\t\t\ttargetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;\n\t\t}\n\n\t\ttargetTagName = targetElement.tagName.toLowerCase();\n\t\tif (targetTagName === 'label') {\n\t\t\tforElement = this.findControl(targetElement);\n\t\t\tif (forElement) {\n\t\t\t\tthis.focus(targetElement);\n\t\t\t\tif (deviceIsAndroid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\ttargetElement = forElement;\n\t\t\t}\n\t\t} else if (this.needsFocus(targetElement)) {\n\n\t\t\t// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.\n\t\t\t// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).\n\t\t\tif ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.focus(targetElement);\n\t\t\tthis.sendClick(targetElement, event);\n\n\t\t\t// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.\n\t\t\t// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)\n\t\t\tif (!deviceIsIOS || targetTagName !== 'select') {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (deviceIsIOS && !deviceIsIOS4) {\n\n\t\t\t// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled\n\t\t\t// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).\n\t\t\tscrollParent = targetElement.fastClickScrollParent;\n\t\t\tif (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Prevent the actual click from going though - unless the target node is marked as requiring\n\t\t// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.\n\t\tif (!this.needsClick(targetElement)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendClick(targetElement, event);\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * On touch cancel, stop tracking the click.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.onTouchCancel = function() {\n\t\tthis.trackingClick = false;\n\t\tthis.targetElement = null;\n\t};\n\n\n\t/**\n\t * Determine mouse events which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onMouse = function(event) {\n\n\t\t// If a target element was never set (because a touch event was never fired) allow the event\n\t\tif (!this.targetElement) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (event.forwardedTouchEvent) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Programmatically generated events targeting a specific element should be permitted\n\t\tif (!event.cancelable) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Derive and check the target element to see whether the mouse event needs to be permitted;\n\t\t// unless explicitly enabled, prevent non-touch click events from triggering actions,\n\t\t// to prevent ghost/doubleclicks.\n\t\tif (!this.needsClick(this.targetElement) || this.cancelNextClick) {\n\n\t\t\t// Prevent any user-added listeners declared on FastClick element from being fired.\n\t\t\tif (event.stopImmediatePropagation) {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t} else {\n\n\t\t\t\t// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t\t\tevent.propagationStopped = true;\n\t\t\t}\n\n\t\t\t// Cancel the event\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the mouse event is permitted, return true for the action to go through.\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * On actual clicks, determine whether this is a touch-generated click, a click action occurring\n\t * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or\n\t * an actual click which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onClick = function(event) {\n\t\tvar permitted;\n\n\t\t// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.\n\t\tif (this.trackingClick) {\n\t\t\tthis.targetElement = null;\n\t\t\tthis.trackingClick = false;\n\t\t\treturn true;\n\t\t}\n\n\t\t// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.\n\t\tif (event.target.type === 'submit' && event.detail === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tpermitted = this.onMouse(event);\n\n\t\t// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.\n\t\tif (!permitted) {\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\t// If clicks are permitted, return true for the action to go through.\n\t\treturn permitted;\n\t};\n\n\n\t/**\n\t * Remove all FastClick's event listeners.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.destroy = function() {\n\t\tvar layer = this.layer;\n\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.removeEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.removeEventListener('click', this.onClick, true);\n\t\tlayer.removeEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.removeEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.removeEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.removeEventListener('touchcancel', this.onTouchCancel, false);\n\t};\n\n\n\t/**\n\t * Check whether FastClick is needed.\n\t *\n\t * @param {Element} layer The layer to listen on\n\t */\n\tFastClick.notNeeded = function(layer) {\n\t\tvar metaViewport;\n\t\tvar chromeVersion;\n\t\tvar blackberryVersion;\n\t\tvar firefoxVersion;\n\n\t\t// Devices that don't support touch don't need FastClick\n\t\tif (typeof window.ontouchstart === 'undefined') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Chrome version - zero for other browsers\n\t\tchromeVersion = +(/Chrome\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (chromeVersion) {\n\n\t\t\tif (deviceIsAndroid) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// Chrome on Android with user-scalable=\"no\" doesn't need FastClick (issue #89)\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Chrome 32 and above with width=device-width or less don't need FastClick\n\t\t\t\t\tif (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Chrome desktop doesn't need FastClick (issue #15)\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (deviceIsBlackBerry10) {\n\t\t\tblackberryVersion = navigator.userAgent.match(/Version\\/([0-9]*)\\.([0-9]*)/);\n\n\t\t\t// BlackBerry 10.3+ does not require Fastclick library.\n\t\t\t// https://github.com/ftlabs/fastclick/issues/251\n\t\t\tif (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// user-scalable=no eliminates click delay.\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// width=device-width (or less than device-width) eliminates click delay.\n\t\t\t\t\tif (document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)\n\t\tif (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Firefox version - zero for other browsers\n\t\tfirefoxVersion = +(/Firefox\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (firefoxVersion >= 27) {\n\t\t\t// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896\n\n\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\t\t\tif (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version\n\t\t// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx\n\t\tif (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Factory method for creating a FastClick object\n\t *\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tFastClick.attach = function(layer, options) {\n\t\treturn new FastClick(layer, options);\n\t};\n\n\n\tif (true) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n\t\t\treturn FastClick;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = FastClick.attach;\n\t\tmodule.exports.FastClick = FastClick;\n\t} else {\n\t\twindow.FastClick = FastClick;\n\t}\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2Zhc3RjbGljay9saWIvZmFzdGNsaWNrLmpzPzk2ODgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQUM7QUFDRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksUUFBUTtBQUNwQixZQUFZLE9BQU8sWUFBWTtBQUMvQjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQix5Q0FBeUM7QUFDL0Q7OztBQUdBO0FBQ0E7QUFDQSxxQ0FBcUMsT0FBTztBQUM1QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtB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RUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLFlBQVksTUFBTTtBQUNsQixjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxNQUFNO0FBQ2xCLGNBQWM7QUFDZDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCLFlBQVksT0FBTyxZQUFZO0FBQy9CO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQUE7QUFDSCxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjsoZnVuY3Rpb24gKCkge1xuXHQndXNlIHN0cmljdCc7XG5cblx0LyoqXG5cdCAqIEBwcmVzZXJ2ZSBGYXN0Q2xpY2s6IHBvbHlmaWxsIHRvIHJlbW92ZSBjbGljayBkZWxheXMgb24gYnJvd3NlcnMgd2l0aCB0b3VjaCBVSXMuXG5cdCAqXG5cdCAqIEBjb2RpbmdzdGFuZGFyZCBmdGxhYnMtanN2MlxuXHQgKiBAY29weXJpZ2h0IFRoZSBGaW5hbmNpYWwgVGltZXMgTGltaXRlZCBbQWxsIFJpZ2h0cyBSZXNlcnZlZF1cblx0ICogQGxpY2Vuc2UgTUlUIExpY2Vuc2UgKHNlZSBMSUNFTlNFLnR4dClcblx0ICovXG5cblx0Lypqc2xpbnQgYnJvd3Nlcjp0cnVlLCBub2RlOnRydWUqL1xuXHQvKmdsb2JhbCBkZWZpbmUsIEV2ZW50LCBOb2RlKi9cblxuXG5cdC8qKlxuXHQgKiBJbnN0YW50aWF0ZSBmYXN0LWNsaWNraW5nIGxpc3RlbmVycyBvbiB0aGUgc3BlY2lmaWVkIGxheWVyLlxuXHQgKlxuXHQgKiBAY29uc3RydWN0b3Jcblx0ICogQHBhcmFtIHtFbGVtZW50fSBsYXllciBUaGUgbGF5ZXIgdG8gbGlzdGVuIG9uXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzXG5cdCAqL1xuXHRmdW5jdGlvbiBGYXN0Q2xpY2sobGF5ZXIsIG9wdGlvbnMpIHtcblx0XHR2YXIgb2xkT25DbGljaztcblxuXHRcdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG5cdFx0LyoqXG5cdFx0ICogV2hldGhlciBhIGNsaWNrIGlzIGN1cnJlbnRseSBiZWluZyB0cmFja2VkLlxuXHRcdCAqXG5cdFx0ICogQHR5cGUgYm9vbGVhblxuXHRcdCAqL1xuXHRcdHRoaXMudHJhY2tpbmdDbGljayA9IGZhbHNlO1xuXG5cblx0XHQvKipcblx0XHQgKiBUaW1lc3RhbXAgZm9yIHdoZW4gY2xpY2sgdHJhY2tpbmcgc3RhcnRlZC5cblx0XHQgKlxuXHRcdCAqIEB0eXBlIG51bWJlclxuXHRcdCAqL1xuXHRcdHRoaXMudHJhY2tpbmdDbGlja1N0YXJ0ID0gMDtcblxuXG5cdFx0LyoqXG5cdFx0ICogVGhlIGVsZW1lbnQgYmVpbmcgdHJhY2tlZCBmb3IgYSBjbGljay5cblx0XHQgKlxuXHRcdCAqIEB0eXBlIEV2ZW50VGFyZ2V0XG5cdFx0ICovXG5cdFx0dGhpcy50YXJnZXRFbGVtZW50ID0gbnVsbDtcblxuXG5cdFx0LyoqXG5cdFx0ICogWC1jb29yZGluYXRlIG9mIHRvdWNoIHN0YXJ0IGV2ZW50LlxuXHRcdCAqXG5cdFx0ICogQHR5cGUgbnVtYmVyXG5cdFx0ICovXG5cdFx0dGhpcy50b3VjaFN0YXJ0WCA9IDA7XG5cblxuXHRcdC8qKlxuXHRcdCAqIFktY29vcmRpbmF0ZSBvZiB0b3VjaCBzdGFydCBldmVudC5cblx0XHQgKlxuXHRcdCAqIEB0eXBlIG51bWJlclxuXHRcdCAqL1xuXHRcdHRoaXMudG91Y2hTdGFydFkgPSAwO1xuXG5cblx0XHQvKipcblx0XHQgKiBJRCBvZiB0aGUgbGFzdCB0b3VjaCwgcmV0cmlldmVkIGZyb20gVG91Y2guaWRlbnRpZmllci5cblx0XHQgKlxuXHRcdCAqIEB0eXBlIG51bWJlclxuXHRcdCAqL1xuXHRcdHRoaXMubGFzdFRvdWNoSWRlbnRpZmllciA9IDA7XG5cblxuXHRcdC8qKlxuXHRcdCAqIFRvdWNobW92ZSBib3VuZGFyeSwgYmV5b25kIHdoaWNoIGEgY2xpY2sgd2lsbCBiZSBjYW5jZWxsZWQuXG5cdFx0ICpcblx0XHQgKiBAdHlwZSBudW1iZXJcblx0XHQgKi9cblx0XHR0aGlzLnRvdWNoQm91bmRhcnkgPSBvcHRpb25zLnRvdWNoQm91bmRhcnkgfHwgMTA7XG5cblxuXHRcdC8qKlxuXHRcdCAqIFRoZSBGYXN0Q2xpY2sgbGF5ZXIuXG5cdFx0ICpcblx0XHQgKiBAdHlwZSBFbGVtZW50XG5cdFx0ICovXG5cdFx0dGhpcy5sYXllciA9IGxheWVyO1xuXG5cdFx0LyoqXG5cdFx0ICogVGhlIG1pbmltdW0gdGltZSBiZXR3ZWVuIHRhcCh0b3VjaHN0YXJ0IGFuZCB0b3VjaGVuZCkgZXZlbnRzXG5cdFx0ICpcblx0XHQgKiBAdHlwZSBudW1iZXJcblx0XHQgKi9cblx0XHR0aGlzLnRhcERlbGF5ID0gb3B0aW9ucy50YXBEZWxheSB8fCAyMDA7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgbWF4aW11bSB0aW1lIGZvciBhIHRhcFxuXHRcdCAqXG5cdFx0ICogQHR5cGUgbnVtYmVyXG5cdFx0ICovXG5cdFx0dGhpcy50YXBUaW1lb3V0ID0gb3B0aW9ucy50YXBUaW1lb3V0IHx8IDcwMDtcblxuXHRcdGlmIChGYXN0Q2xpY2subm90TmVlZGVkKGxheWVyKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIFNvbWUgb2xkIHZlcnNpb25zIG9mIEFuZHJvaWQgZG9uJ3QgaGF2ZSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZFxuXHRcdGZ1bmN0aW9uIGJpbmQobWV0aG9kLCBjb250ZXh0KSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBtZXRob2QuYXBwbHkoY29udGV4dCwgYXJndW1lbnRzKTsgfTtcblx0XHR9XG5cblxuXHRcdHZhciBtZXRob2RzID0gWydvbk1vdXNlJywgJ29uQ2xpY2snLCAnb25Ub3VjaFN0YXJ0JywgJ29uVG91Y2hNb3ZlJywgJ29uVG91Y2hFbmQnLCAnb25Ub3VjaENhbmNlbCddO1xuXHRcdHZhciBjb250ZXh0ID0gdGhpcztcblx0XHRmb3IgKHZhciBpID0gMCwgbCA9IG1ldGhvZHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG5cdFx0XHRjb250ZXh0W21ldGhvZHNbaV1dID0gYmluZChjb250ZXh0W21ldGhvZHNbaV1dLCBjb250ZXh0KTtcblx0XHR9XG5cblx0XHQvLyBTZXQgdXAgZXZlbnQgaGFuZGxlcnMgYXMgcmVxdWlyZWRcblx0XHRpZiAoZGV2aWNlSXNBbmRyb2lkKSB7XG5cdFx0XHRsYXllci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLm9uTW91c2UsIHRydWUpO1xuXHRcdFx0bGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbk1vdXNlLCB0cnVlKTtcblx0XHRcdGxheWVyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2UsIHRydWUpO1xuXHRcdH1cblxuXHRcdGxheWVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5vbkNsaWNrLCB0cnVlKTtcblx0XHRsYXllci5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoU3RhcnQsIGZhbHNlKTtcblx0XHRsYXllci5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlLCBmYWxzZSk7XG5cdFx0bGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLm9uVG91Y2hFbmQsIGZhbHNlKTtcblx0XHRsYXllci5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIHRoaXMub25Ub3VjaENhbmNlbCwgZmFsc2UpO1xuXG5cdFx0Ly8gSGFjayBpcyByZXF1aXJlZCBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IEV2ZW50I3N0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiAoZS5nLiBBbmRyb2lkIDIpXG5cdFx0Ly8gd2hpY2ggaXMgaG93IEZhc3RDbGljayBub3JtYWxseSBzdG9wcyBjbGljayBldmVudHMgYnViYmxpbmcgdG8gY2FsbGJhY2tzIHJlZ2lzdGVyZWQgb24gdGhlIEZhc3RDbGlja1xuXHRcdC8vIGxheWVyIHdoZW4gdGhleSBhcmUgY2FuY2VsbGVkLlxuXHRcdGlmICghRXZlbnQucHJvdG90eXBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbikge1xuXHRcdFx0bGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGNhbGxiYWNrLCBjYXB0dXJlKSB7XG5cdFx0XHRcdHZhciBybXYgPSBOb2RlLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyO1xuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ2NsaWNrJykge1xuXHRcdFx0XHRcdHJtdi5jYWxsKGxheWVyLCB0eXBlLCBjYWxsYmFjay5oaWphY2tlZCB8fCBjYWxsYmFjaywgY2FwdHVyZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cm12LmNhbGwobGF5ZXIsIHR5cGUsIGNhbGxiYWNrLCBjYXB0dXJlKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdFx0bGF5ZXIuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGNhbGxiYWNrLCBjYXB0dXJlKSB7XG5cdFx0XHRcdHZhciBhZHYgPSBOb2RlLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyO1xuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ2NsaWNrJykge1xuXHRcdFx0XHRcdGFkdi5jYWxsKGxheWVyLCB0eXBlLCBjYWxsYmFjay5oaWphY2tlZCB8fCAoY2FsbGJhY2suaGlqYWNrZWQgPSBmdW5jdGlvbihldmVudCkge1xuXHRcdFx0XHRcdFx0aWYgKCFldmVudC5wcm9wYWdhdGlvblN0b3BwZWQpIHtcblx0XHRcdFx0XHRcdFx0Y2FsbGJhY2soZXZlbnQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pLCBjYXB0dXJlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhZHYuY2FsbChsYXllciwgdHlwZSwgY2FsbGJhY2ssIGNhcHR1cmUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdC8vIElmIGEgaGFuZGxlciBpcyBhbHJlYWR5IGRlY2xhcmVkIGluIHRoZSBlbGVtZW50J3Mgb25jbGljayBhdHRyaWJ1dGUsIGl0IHdpbGwgYmUgZmlyZWQgYmVmb3JlXG5cdFx0Ly8gRmFzdENsaWNrJ3Mgb25DbGljayBoYW5kbGVyLiBGaXggdGhpcyBieSBwdWxsaW5nIG91dCB0aGUgdXNlci1kZWZpbmVkIGhhbmRsZXIgZnVuY3Rpb24gYW5kXG5cdFx0Ly8gYWRkaW5nIGl0IGFzIGxpc3RlbmVyLlxuXHRcdGlmICh0eXBlb2YgbGF5ZXIub25jbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuXG5cdFx0XHQvLyBBbmRyb2lkIGJyb3dzZXIgb24gYXQgbGVhc3QgMy4yIHJlcXVpcmVzIGEgbmV3IHJlZmVyZW5jZSB0byB0aGUgZnVuY3Rpb24gaW4gbGF5ZXIub25jbGlja1xuXHRcdFx0Ly8gLSB0aGUgb2xkIG9uZSB3b24ndCB3b3JrIGlmIHBhc3NlZCB0byBhZGRFdmVudExpc3RlbmVyIGRpcmVjdGx5LlxuXHRcdFx0b2xkT25DbGljayA9IGxheWVyLm9uY2xpY2s7XG5cdFx0XHRsYXllci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7XG5cdFx0XHRcdG9sZE9uQ2xpY2soZXZlbnQpO1xuXHRcdFx0fSwgZmFsc2UpO1xuXHRcdFx0bGF5ZXIub25jbGljayA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCogV2luZG93cyBQaG9uZSA4LjEgZmFrZXMgdXNlciBhZ2VudCBzdHJpbmcgdG8gbG9vayBsaWtlIEFuZHJvaWQgYW5kIGlQaG9uZS5cblx0KlxuXHQqIEB0eXBlIGJvb2xlYW5cblx0Ki9cblx0dmFyIGRldmljZUlzV2luZG93c1Bob25lID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKFwiV2luZG93cyBQaG9uZVwiKSA+PSAwO1xuXG5cdC8qKlxuXHQgKiBBbmRyb2lkIHJlcXVpcmVzIGV4Y2VwdGlvbnMuXG5cdCAqXG5cdCAqIEB0eXBlIGJvb2xlYW5cblx0ICovXG5cdHZhciBkZXZpY2VJc0FuZHJvaWQgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0FuZHJvaWQnKSA+IDAgJiYgIWRldmljZUlzV2luZG93c1Bob25lO1xuXG5cblx0LyoqXG5cdCAqIGlPUyByZXF1aXJlcyBleGNlcHRpb25zLlxuXHQgKlxuXHQgKiBAdHlwZSBib29sZWFuXG5cdCAqL1xuXHR2YXIgZGV2aWNlSXNJT1MgPSAvaVAoYWR8aG9uZXxvZCkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIWRldmljZUlzV2luZG93c1Bob25lO1xuXG5cblx0LyoqXG5cdCAqIGlPUyA0IHJlcXVpcmVzIGFuIGV4Y2VwdGlvbiBmb3Igc2VsZWN0IGVsZW1lbnRzLlxuXHQgKlxuXHQgKiBAdHlwZSBib29sZWFuXG5cdCAqL1xuXHR2YXIgZGV2aWNlSXNJT1M0ID0gZGV2aWNlSXNJT1MgJiYgKC9PUyA0X1xcZChfXFxkKT8vKS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG5cblx0LyoqXG5cdCAqIGlPUyA2LjAtNy4qIHJlcXVpcmVzIHRoZSB0YXJnZXQgZWxlbWVudCB0byBiZSBtYW51YWxseSBkZXJpdmVkXG5cdCAqXG5cdCAqIEB0eXBlIGJvb2xlYW5cblx0ICovXG5cdHZhciBkZXZpY2VJc0lPU1dpdGhCYWRUYXJnZXQgPSBkZXZpY2VJc0lPUyAmJiAoL09TIFs2LTddX1xcZC8pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cblx0LyoqXG5cdCAqIEJsYWNrQmVycnkgcmVxdWlyZXMgZXhjZXB0aW9ucy5cblx0ICpcblx0ICogQHR5cGUgYm9vbGVhblxuXHQgKi9cblx0dmFyIGRldmljZUlzQmxhY2tCZXJyeTEwID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdCQjEwJykgPiAwO1xuXG5cdC8qKlxuXHQgKiBEZXRlcm1pbmUgd2hldGhlciBhIGdpdmVuIGVsZW1lbnQgcmVxdWlyZXMgYSBuYXRpdmUgY2xpY2suXG5cdCAqXG5cdCAqIEBwYXJhbSB7RXZlbnRUYXJnZXR8RWxlbWVudH0gdGFyZ2V0IFRhcmdldCBET00gZWxlbWVudFxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IG5lZWRzIGEgbmF0aXZlIGNsaWNrXG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLm5lZWRzQ2xpY2sgPSBmdW5jdGlvbih0YXJnZXQpIHtcblx0XHRzd2l0Y2ggKHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSB7XG5cblx0XHQvLyBEb24ndCBzZW5kIGEgc3ludGhldGljIGNsaWNrIHRvIGRpc2FibGVkIGlucHV0cyAoaXNzdWUgIzYyKVxuXHRcdGNhc2UgJ2J1dHRvbic6XG5cdFx0Y2FzZSAnc2VsZWN0Jzpcblx0XHRjYXNlICd0ZXh0YXJlYSc6XG5cdFx0XHRpZiAodGFyZ2V0LmRpc2FibGVkKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRicmVhaztcblx0XHRjYXNlICdpbnB1dCc6XG5cblx0XHRcdC8vIEZpbGUgaW5wdXRzIG5lZWQgcmVhbCBjbGlja3Mgb24gaU9TIDYgZHVlIHRvIGEgYnJvd3NlciBidWcgKGlzc3VlICM2OClcblx0XHRcdGlmICgoZGV2aWNlSXNJT1MgJiYgdGFyZ2V0LnR5cGUgPT09ICdmaWxlJykgfHwgdGFyZ2V0LmRpc2FibGVkKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRicmVhaztcblx0XHRjYXNlICdsYWJlbCc6XG5cdFx0Y2FzZSAnaWZyYW1lJzogLy8gaU9TOCBob21lc2NyZWVuIGFwcHMgY2FuIHByZXZlbnQgZXZlbnRzIGJ1YmJsaW5nIGludG8gZnJhbWVzXG5cdFx0Y2FzZSAndmlkZW8nOlxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuICgvXFxibmVlZHNjbGlja1xcYi8pLnRlc3QodGFyZ2V0LmNsYXNzTmFtZSk7XG5cdH07XG5cblxuXHQvKipcblx0ICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBnaXZlbiBlbGVtZW50IHJlcXVpcmVzIGEgY2FsbCB0byBmb2N1cyB0byBzaW11bGF0ZSBjbGljayBpbnRvIGVsZW1lbnQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7RXZlbnRUYXJnZXR8RWxlbWVudH0gdGFyZ2V0IFRhcmdldCBET00gZWxlbWVudFxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IHJlcXVpcmVzIGEgY2FsbCB0byBmb2N1cyB0byBzaW11bGF0ZSBuYXRpdmUgY2xpY2suXG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLm5lZWRzRm9jdXMgPSBmdW5jdGlvbih0YXJnZXQpIHtcblx0XHRzd2l0Y2ggKHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSB7XG5cdFx0Y2FzZSAndGV4dGFyZWEnOlxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0Y2FzZSAnc2VsZWN0Jzpcblx0XHRcdHJldHVybiAhZGV2aWNlSXNBbmRyb2lkO1xuXHRcdGNhc2UgJ2lucHV0Jzpcblx0XHRcdHN3aXRjaCAodGFyZ2V0LnR5cGUpIHtcblx0XHRcdGNhc2UgJ2J1dHRvbic6XG5cdFx0XHRjYXNlICdjaGVja2JveCc6XG5cdFx0XHRjYXNlICdmaWxlJzpcblx0XHRcdGNhc2UgJ2ltYWdlJzpcblx0XHRcdGNhc2UgJ3JhZGlvJzpcblx0XHRcdGNhc2UgJ3N1Ym1pdCc6XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTm8gcG9pbnQgaW4gYXR0ZW1wdGluZyB0byBmb2N1cyBkaXNhYmxlZCBpbnB1dHNcblx0XHRcdHJldHVybiAhdGFyZ2V0LmRpc2FibGVkICYmICF0YXJnZXQucmVhZE9ubHk7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAoL1xcYm5lZWRzZm9jdXNcXGIvKS50ZXN0KHRhcmdldC5jbGFzc05hbWUpO1xuXHRcdH1cblx0fTtcblxuXG5cdC8qKlxuXHQgKiBTZW5kIGEgY2xpY2sgZXZlbnQgdG8gdGhlIHNwZWNpZmllZCBlbGVtZW50LlxuXHQgKlxuXHQgKiBAcGFyYW0ge0V2ZW50VGFyZ2V0fEVsZW1lbnR9IHRhcmdldEVsZW1lbnRcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcblx0ICovXG5cdEZhc3RDbGljay5wcm90b3R5cGUuc2VuZENsaWNrID0gZnVuY3Rpb24odGFyZ2V0RWxlbWVudCwgZXZlbnQpIHtcblx0XHR2YXIgY2xpY2tFdmVudCwgdG91Y2g7XG5cblx0XHQvLyBPbiBzb21lIEFuZHJvaWQgZGV2aWNlcyBhY3RpdmVFbGVtZW50IG5lZWRzIHRvIGJlIGJsdXJyZWQgb3RoZXJ3aXNlIHRoZSBzeW50aGV0aWMgY2xpY2sgd2lsbCBoYXZlIG5vIGVmZmVjdCAoIzI0KVxuXHRcdGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRhcmdldEVsZW1lbnQpIHtcblx0XHRcdGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuXHRcdH1cblxuXHRcdHRvdWNoID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07XG5cblx0XHQvLyBTeW50aGVzaXNlIGEgY2xpY2sgZXZlbnQsIHdpdGggYW4gZXh0cmEgYXR0cmlidXRlIHNvIGl0IGNhbiBiZSB0cmFja2VkXG5cdFx0Y2xpY2tFdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50cycpO1xuXHRcdGNsaWNrRXZlbnQuaW5pdE1vdXNlRXZlbnQodGhpcy5kZXRlcm1pbmVFdmVudFR5cGUodGFyZ2V0RWxlbWVudCksIHRydWUsIHRydWUsIHdpbmRvdywgMSwgdG91Y2guc2NyZWVuWCwgdG91Y2guc2NyZWVuWSwgdG91Y2guY2xpZW50WCwgdG91Y2guY2xpZW50WSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpO1xuXHRcdGNsaWNrRXZlbnQuZm9yd2FyZGVkVG91Y2hFdmVudCA9IHRydWU7XG5cdFx0dGFyZ2V0RWxlbWVudC5kaXNwYXRjaEV2ZW50KGNsaWNrRXZlbnQpO1xuXHR9O1xuXG5cdEZhc3RDbGljay5wcm90b3R5cGUuZGV0ZXJtaW5lRXZlbnRUeXBlID0gZnVuY3Rpb24odGFyZ2V0RWxlbWVudCkge1xuXG5cdFx0Ly9Jc3N1ZSAjMTU5OiBBbmRyb2lkIENocm9tZSBTZWxlY3QgQm94IGRvZXMgbm90IG9wZW4gd2l0aCBhIHN5bnRoZXRpYyBjbGljayBldmVudFxuXHRcdGlmIChkZXZpY2VJc0FuZHJvaWQgJiYgdGFyZ2V0RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzZWxlY3QnKSB7XG5cdFx0XHRyZXR1cm4gJ21vdXNlZG93bic7XG5cdFx0fVxuXG5cdFx0cmV0dXJuICdjbGljayc7XG5cdH07XG5cblxuXHQvKipcblx0ICogQHBhcmFtIHtFdmVudFRhcmdldHxFbGVtZW50fSB0YXJnZXRFbGVtZW50XG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLmZvY3VzID0gZnVuY3Rpb24odGFyZ2V0RWxlbWVudCkge1xuXHRcdHZhciBsZW5ndGg7XG5cblx0XHQvLyBJc3N1ZSAjMTYwOiBvbiBpT1MgNywgc29tZSBpbnB1dCBlbGVtZW50cyAoZS5nLiBkYXRlIGRhdGV0aW1lIG1vbnRoKSB0aHJvdyBhIHZhZ3VlIFR5cGVFcnJvciBvbiBzZXRTZWxlY3Rpb25SYW5nZS4gVGhlc2UgZWxlbWVudHMgZG9uJ3QgaGF2ZSBhbiBpbnRlZ2VyIHZhbHVlIGZvciB0aGUgc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVuZCBwcm9wZXJ0aWVzLCBidXQgdW5mb3J0dW5hdGVseSB0aGF0IGNhbid0IGJlIHVzZWQgZm9yIGRldGVjdGlvbiBiZWNhdXNlIGFjY2Vzc2luZyB0aGUgcHJvcGVydGllcyBhbHNvIHRocm93cyBhIFR5cGVFcnJvci4gSnVzdCBjaGVjayB0aGUgdHlwZSBpbnN0ZWFkLiBGaWxlZCBhcyBBcHBsZSBidWcgIzE1MTIyNzI0LlxuXHRcdGlmIChkZXZpY2VJc0lPUyAmJiB0YXJnZXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlICYmIHRhcmdldEVsZW1lbnQudHlwZS5pbmRleE9mKCdkYXRlJykgIT09IDAgJiYgdGFyZ2V0RWxlbWVudC50eXBlICE9PSAndGltZScgJiYgdGFyZ2V0RWxlbWVudC50eXBlICE9PSAnbW9udGgnKSB7XG5cdFx0XHRsZW5ndGggPSB0YXJnZXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcblx0XHRcdHRhcmdldEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UobGVuZ3RoLCBsZW5ndGgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0YXJnZXRFbGVtZW50LmZvY3VzKCk7XG5cdFx0fVxuXHR9O1xuXG5cblx0LyoqXG5cdCAqIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIHRhcmdldCBlbGVtZW50IGlzIGEgY2hpbGQgb2YgYSBzY3JvbGxhYmxlIGxheWVyIGFuZCBpZiBzbywgc2V0IGEgZmxhZyBvbiBpdC5cblx0ICpcblx0ICogQHBhcmFtIHtFdmVudFRhcmdldHxFbGVtZW50fSB0YXJnZXRFbGVtZW50XG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLnVwZGF0ZVNjcm9sbFBhcmVudCA9IGZ1bmN0aW9uKHRhcmdldEVsZW1lbnQpIHtcblx0XHR2YXIgc2Nyb2xsUGFyZW50LCBwYXJlbnRFbGVtZW50O1xuXG5cdFx0c2Nyb2xsUGFyZW50ID0gdGFyZ2V0RWxlbWVudC5mYXN0Q2xpY2tTY3JvbGxQYXJlbnQ7XG5cblx0XHQvLyBBdHRlbXB0IHRvIGRpc2NvdmVyIHdoZXRoZXIgdGhlIHRhcmdldCBlbGVtZW50IGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBzY3JvbGxhYmxlIGxheWVyLiBSZS1jaGVjayBpZiB0aGVcblx0XHQvLyB0YXJnZXQgZWxlbWVudCB3YXMgbW92ZWQgdG8gYW5vdGhlciBwYXJlbnQuXG5cdFx0aWYgKCFzY3JvbGxQYXJlbnQgfHwgIXNjcm9sbFBhcmVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KSkge1xuXHRcdFx0cGFyZW50RWxlbWVudCA9IHRhcmdldEVsZW1lbnQ7XG5cdFx0XHRkbyB7XG5cdFx0XHRcdGlmIChwYXJlbnRFbGVtZW50LnNjcm9sbEhlaWdodCA+IHBhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0KSB7XG5cdFx0XHRcdFx0c2Nyb2xsUGFyZW50ID0gcGFyZW50RWxlbWVudDtcblx0XHRcdFx0XHR0YXJnZXRFbGVtZW50LmZhc3RDbGlja1Njcm9sbFBhcmVudCA9IHBhcmVudEVsZW1lbnQ7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXHRcdFx0fSB3aGlsZSAocGFyZW50RWxlbWVudCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWx3YXlzIHVwZGF0ZSB0aGUgc2Nyb2xsIHRvcCB0cmFja2VyIGlmIHBvc3NpYmxlLlxuXHRcdGlmIChzY3JvbGxQYXJlbnQpIHtcblx0XHRcdHNjcm9sbFBhcmVudC5mYXN0Q2xpY2tMYXN0U2Nyb2xsVG9wID0gc2Nyb2xsUGFyZW50LnNjcm9sbFRvcDtcblx0XHR9XG5cdH07XG5cblxuXHQvKipcblx0ICogQHBhcmFtIHtFdmVudFRhcmdldH0gdGFyZ2V0RWxlbWVudFxuXHQgKiBAcmV0dXJucyB7RWxlbWVudHxFdmVudFRhcmdldH1cblx0ICovXG5cdEZhc3RDbGljay5wcm90b3R5cGUuZ2V0VGFyZ2V0RWxlbWVudEZyb21FdmVudFRhcmdldCA9IGZ1bmN0aW9uKGV2ZW50VGFyZ2V0KSB7XG5cblx0XHQvLyBPbiBzb21lIG9sZGVyIGJyb3dzZXJzIChub3RhYmx5IFNhZmFyaSBvbiBpT1MgNC4xIC0gc2VlIGlzc3VlICM1NikgdGhlIGV2ZW50IHRhcmdldCBtYXkgYmUgYSB0ZXh0IG5vZGUuXG5cdFx0aWYgKGV2ZW50VGFyZ2V0Lm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuXHRcdFx0cmV0dXJuIGV2ZW50VGFyZ2V0LnBhcmVudE5vZGU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGV2ZW50VGFyZ2V0O1xuXHR9O1xuXG5cblx0LyoqXG5cdCAqIE9uIHRvdWNoIHN0YXJ0LCByZWNvcmQgdGhlIHBvc2l0aW9uIGFuZCBzY3JvbGwgb2Zmc2V0LlxuXHQgKlxuXHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICovXG5cdEZhc3RDbGljay5wcm90b3R5cGUub25Ub3VjaFN0YXJ0ID0gZnVuY3Rpb24oZXZlbnQpIHtcblx0XHR2YXIgdGFyZ2V0RWxlbWVudCwgdG91Y2gsIHNlbGVjdGlvbjtcblxuXHRcdC8vIElnbm9yZSBtdWx0aXBsZSB0b3VjaGVzLCBvdGhlcndpc2UgcGluY2gtdG8tem9vbSBpcyBwcmV2ZW50ZWQgaWYgYm90aCBmaW5nZXJzIGFyZSBvbiB0aGUgRmFzdENsaWNrIGVsZW1lbnQgKGlzc3VlICMxMTEpLlxuXHRcdGlmIChldmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCA+IDEpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdHRhcmdldEVsZW1lbnQgPSB0aGlzLmdldFRhcmdldEVsZW1lbnRGcm9tRXZlbnRUYXJnZXQoZXZlbnQudGFyZ2V0KTtcblx0XHR0b3VjaCA9IGV2ZW50LnRhcmdldFRvdWNoZXNbMF07XG5cblx0XHRpZiAoZGV2aWNlSXNJT1MpIHtcblxuXHRcdFx0Ly8gT25seSB0cnVzdGVkIGV2ZW50cyB3aWxsIGRlc2VsZWN0IHRleHQgb24gaU9TIChpc3N1ZSAjNDkpXG5cdFx0XHRzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG5cdFx0XHRpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgJiYgIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFkZXZpY2VJc0lPUzQpIHtcblxuXHRcdFx0XHQvLyBXZWlyZCB0aGluZ3MgaGFwcGVuIG9uIGlPUyB3aGVuIGFuIGFsZXJ0IG9yIGNvbmZpcm0gZGlhbG9nIGlzIG9wZW5lZCBmcm9tIGEgY2xpY2sgZXZlbnQgY2FsbGJhY2sgKGlzc3VlICMyMyk6XG5cdFx0XHRcdC8vIHdoZW4gdGhlIHVzZXIgbmV4dCB0YXBzIGFueXdoZXJlIGVsc2Ugb24gdGhlIHBhZ2UsIG5ldyB0b3VjaHN0YXJ0IGFuZCB0b3VjaGVuZCBldmVudHMgYXJlIGRpc3BhdGNoZWRcblx0XHRcdFx0Ly8gd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyIGFzIHRoZSB0b3VjaCBldmVudCB0aGF0IHByZXZpb3VzbHkgdHJpZ2dlcmVkIHRoZSBjbGljayB0aGF0IHRyaWdnZXJlZCB0aGUgYWxlcnQuXG5cdFx0XHRcdC8vIFNhZGx5LCB0aGVyZSBpcyBhbiBpc3N1ZSBvbiBpT1MgNCB0aGF0IGNhdXNlcyBzb21lIG5vcm1hbCB0b3VjaCBldmVudHMgdG8gaGF2ZSB0aGUgc2FtZSBpZGVudGlmaWVyIGFzIGFuXG5cdFx0XHRcdC8vIGltbWVkaWF0ZWx5IHByZWNlZWRpbmcgdG91Y2ggZXZlbnQgKGlzc3VlICM1MiksIHNvIHRoaXMgZml4IGlzIHVuYXZhaWxhYmxlIG9uIHRoYXQgcGxhdGZvcm0uXG5cdFx0XHRcdC8vIElzc3VlIDEyMDogdG91Y2guaWRlbnRpZmllciBpcyAwIHdoZW4gQ2hyb21lIGRldiB0b29scyAnRW11bGF0ZSB0b3VjaCBldmVudHMnIGlzIHNldCB3aXRoIGFuIGlPUyBkZXZpY2UgVUEgc3RyaW5nLFxuXHRcdFx0XHQvLyB3aGljaCBjYXVzZXMgYWxsIHRvdWNoIGV2ZW50cyB0byBiZSBpZ25vcmVkLiBBcyB0aGlzIGJsb2NrIG9ubHkgYXBwbGllcyB0byBpT1MsIGFuZCBpT1MgaWRlbnRpZmllcnMgYXJlIGFsd2F5cyBsb25nLFxuXHRcdFx0XHQvLyByYW5kb20gaW50ZWdlcnMsIGl0J3Mgc2FmZSB0byB0byBjb250aW51ZSBpZiB0aGUgaWRlbnRpZmllciBpcyAwIGhlcmUuXG5cdFx0XHRcdGlmICh0b3VjaC5pZGVudGlmaWVyICYmIHRvdWNoLmlkZW50aWZpZXIgPT09IHRoaXMubGFzdFRvdWNoSWRlbnRpZmllcikge1xuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5sYXN0VG91Y2hJZGVudGlmaWVyID0gdG91Y2guaWRlbnRpZmllcjtcblxuXHRcdFx0XHQvLyBJZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaXMgYSBjaGlsZCBvZiBhIHNjcm9sbGFibGUgbGF5ZXIgKHVzaW5nIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCkgYW5kOlxuXHRcdFx0XHQvLyAxKSB0aGUgdXNlciBkb2VzIGEgZmxpbmcgc2Nyb2xsIG9uIHRoZSBzY3JvbGxhYmxlIGxheWVyXG5cdFx0XHRcdC8vIDIpIHRoZSB1c2VyIHN0b3BzIHRoZSBmbGluZyBzY3JvbGwgd2l0aCBhbm90aGVyIHRhcFxuXHRcdFx0XHQvLyB0aGVuIHRoZSBldmVudC50YXJnZXQgb2YgdGhlIGxhc3QgJ3RvdWNoZW5kJyBldmVudCB3aWxsIGJlIHRoZSBlbGVtZW50IHRoYXQgd2FzIHVuZGVyIHRoZSB1c2VyJ3MgZmluZ2VyXG5cdFx0XHRcdC8vIHdoZW4gdGhlIGZsaW5nIHNjcm9sbCB3YXMgc3RhcnRlZCwgY2F1c2luZyBGYXN0Q2xpY2sgdG8gc2VuZCBhIGNsaWNrIGV2ZW50IHRvIHRoYXQgbGF5ZXIgLSB1bmxlc3MgYSBjaGVja1xuXHRcdFx0XHQvLyBpcyBtYWRlIHRvIGVuc3VyZSB0aGF0IGEgcGFyZW50IGxheWVyIHdhcyBub3Qgc2Nyb2xsZWQgYmVmb3JlIHNlbmRpbmcgYSBzeW50aGV0aWMgY2xpY2sgKGlzc3VlICM0MikuXG5cdFx0XHRcdHRoaXMudXBkYXRlU2Nyb2xsUGFyZW50KHRhcmdldEVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMudHJhY2tpbmdDbGljayA9IHRydWU7XG5cdFx0dGhpcy50cmFja2luZ0NsaWNrU3RhcnQgPSBldmVudC50aW1lU3RhbXA7XG5cdFx0dGhpcy50YXJnZXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudDtcblxuXHRcdHRoaXMudG91Y2hTdGFydFggPSB0b3VjaC5wYWdlWDtcblx0XHR0aGlzLnRvdWNoU3RhcnRZID0gdG91Y2gucGFnZVk7XG5cblx0XHQvLyBQcmV2ZW50IHBoYW50b20gY2xpY2tzIG9uIGZhc3QgZG91YmxlLXRhcCAoaXNzdWUgIzM2KVxuXHRcdGlmICgoZXZlbnQudGltZVN0YW1wIC0gdGhpcy5sYXN0Q2xpY2tUaW1lKSA8IHRoaXMudGFwRGVsYXkpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH07XG5cblxuXHQvKipcblx0ICogQmFzZWQgb24gYSB0b3VjaG1vdmUgZXZlbnQgb2JqZWN0LCBjaGVjayB3aGV0aGVyIHRoZSB0b3VjaCBoYXMgbW92ZWQgcGFzdCBhIGJvdW5kYXJ5IHNpbmNlIGl0IHN0YXJ0ZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKi9cblx0RmFzdENsaWNrLnByb3RvdHlwZS50b3VjaEhhc01vdmVkID0gZnVuY3Rpb24oZXZlbnQpIHtcblx0XHR2YXIgdG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXSwgYm91bmRhcnkgPSB0aGlzLnRvdWNoQm91bmRhcnk7XG5cblx0XHRpZiAoTWF0aC5hYnModG91Y2gucGFnZVggLSB0aGlzLnRvdWNoU3RhcnRYKSA+IGJvdW5kYXJ5IHx8IE1hdGguYWJzKHRvdWNoLnBhZ2VZIC0gdGhpcy50b3VjaFN0YXJ0WSkgPiBib3VuZGFyeSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9O1xuXG5cblx0LyoqXG5cdCAqIFVwZGF0ZSB0aGUgbGFzdCBwb3NpdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLm9uVG91Y2hNb3ZlID0gZnVuY3Rpb24oZXZlbnQpIHtcblx0XHRpZiAoIXRoaXMudHJhY2tpbmdDbGljaykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWYgdGhlIHRvdWNoIGhhcyBtb3ZlZCwgY2FuY2VsIHRoZSBjbGljayB0cmFja2luZ1xuXHRcdGlmICh0aGlzLnRhcmdldEVsZW1lbnQgIT09IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudEZyb21FdmVudFRhcmdldChldmVudC50YXJnZXQpIHx8IHRoaXMudG91Y2hIYXNNb3ZlZChldmVudCkpIHtcblx0XHRcdHRoaXMudHJhY2tpbmdDbGljayA9IGZhbHNlO1xuXHRcdFx0dGhpcy50YXJnZXRFbGVtZW50ID0gbnVsbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fTtcblxuXG5cdC8qKlxuXHQgKiBBdHRlbXB0IHRvIGZpbmQgdGhlIGxhYmVsbGVkIGNvbnRyb2wgZm9yIHRoZSBnaXZlbiBsYWJlbCBlbGVtZW50LlxuXHQgKlxuXHQgKiBAcGFyYW0ge0V2ZW50VGFyZ2V0fEhUTUxMYWJlbEVsZW1lbnR9IGxhYmVsRWxlbWVudFxuXHQgKiBAcmV0dXJucyB7RWxlbWVudHxudWxsfVxuXHQgKi9cblx0RmFzdENsaWNrLnByb3RvdHlwZS5maW5kQ29udHJvbCA9IGZ1bmN0aW9uKGxhYmVsRWxlbWVudCkge1xuXG5cdFx0Ly8gRmFzdCBwYXRoIGZvciBuZXdlciBicm93c2VycyBzdXBwb3J0aW5nIHRoZSBIVE1MNSBjb250cm9sIGF0dHJpYnV0ZVxuXHRcdGlmIChsYWJlbEVsZW1lbnQuY29udHJvbCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXR1cm4gbGFiZWxFbGVtZW50LmNvbnRyb2w7XG5cdFx0fVxuXG5cdFx0Ly8gQWxsIGJyb3dzZXJzIHVuZGVyIHRlc3QgdGhhdCBzdXBwb3J0IHRvdWNoIGV2ZW50cyBhbHNvIHN1cHBvcnQgdGhlIEhUTUw1IGh0bWxGb3IgYXR0cmlidXRlXG5cdFx0aWYgKGxhYmVsRWxlbWVudC5odG1sRm9yKSB7XG5cdFx0XHRyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobGFiZWxFbGVtZW50Lmh0bWxGb3IpO1xuXHRcdH1cblxuXHRcdC8vIElmIG5vIGZvciBhdHRyaWJ1dGUgZXhpc3RzLCBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBmaXJzdCBsYWJlbGxhYmxlIGRlc2NlbmRhbnQgZWxlbWVudFxuXHRcdC8vIHRoZSBsaXN0IG9mIHdoaWNoIGlzIGRlZmluZWQgaGVyZTogaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvZm9ybXMuaHRtbCNjYXRlZ29yeS1sYWJlbFxuXHRcdHJldHVybiBsYWJlbEVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uLCBpbnB1dDpub3QoW3R5cGU9aGlkZGVuXSksIGtleWdlbiwgbWV0ZXIsIG91dHB1dCwgcHJvZ3Jlc3MsIHNlbGVjdCwgdGV4dGFyZWEnKTtcblx0fTtcblxuXG5cdC8qKlxuXHQgKiBPbiB0b3VjaCBlbmQsIGRldGVybWluZSB3aGV0aGVyIHRvIHNlbmQgYSBjbGljayBldmVudCBhdCBvbmNlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICovXG5cdEZhc3RDbGljay5wcm90b3R5cGUub25Ub3VjaEVuZCA9IGZ1bmN0aW9uKGV2ZW50KSB7XG5cdFx0dmFyIGZvckVsZW1lbnQsIHRyYWNraW5nQ2xpY2tTdGFydCwgdGFyZ2V0VGFnTmFtZSwgc2Nyb2xsUGFyZW50LCB0b3VjaCwgdGFyZ2V0RWxlbWVudCA9IHRoaXMudGFyZ2V0RWxlbWVudDtcblxuXHRcdGlmICghdGhpcy50cmFja2luZ0NsaWNrKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyBQcmV2ZW50IHBoYW50b20gY2xpY2tzIG9uIGZhc3QgZG91YmxlLXRhcCAoaXNzdWUgIzM2KVxuXHRcdGlmICgoZXZlbnQudGltZVN0YW1wIC0gdGhpcy5sYXN0Q2xpY2tUaW1lKSA8IHRoaXMudGFwRGVsYXkpIHtcblx0XHRcdHRoaXMuY2FuY2VsTmV4dENsaWNrID0gdHJ1ZTtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGlmICgoZXZlbnQudGltZVN0YW1wIC0gdGhpcy50cmFja2luZ0NsaWNrU3RhcnQpID4gdGhpcy50YXBUaW1lb3V0KSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyBSZXNldCB0byBwcmV2ZW50IHdyb25nIGNsaWNrIGNhbmNlbCBvbiBpbnB1dCAoaXNzdWUgIzE1NikuXG5cdFx0dGhpcy5jYW5jZWxOZXh0Q2xpY2sgPSBmYWxzZTtcblxuXHRcdHRoaXMubGFzdENsaWNrVGltZSA9IGV2ZW50LnRpbWVTdGFtcDtcblxuXHRcdHRyYWNraW5nQ2xpY2tTdGFydCA9IHRoaXMudHJhY2tpbmdDbGlja1N0YXJ0O1xuXHRcdHRoaXMudHJhY2tpbmdDbGljayA9IGZhbHNlO1xuXHRcdHRoaXMudHJhY2tpbmdDbGlja1N0YXJ0ID0gMDtcblxuXHRcdC8vIE9uIHNvbWUgaU9TIGRldmljZXMsIHRoZSB0YXJnZXRFbGVtZW50IHN1cHBsaWVkIHdpdGggdGhlIGV2ZW50IGlzIGludmFsaWQgaWYgdGhlIGxheWVyXG5cdFx0Ly8gaXMgcGVyZm9ybWluZyBhIHRyYW5zaXRpb24gb3Igc2Nyb2xsLCBhbmQgaGFzIHRvIGJlIHJlLWRldGVjdGVkIG1hbnVhbGx5LiBOb3RlIHRoYXRcblx0XHQvLyBmb3IgdGhpcyB0byBmdW5jdGlvbiBjb3JyZWN0bHksIGl0IG11c3QgYmUgY2FsbGVkICphZnRlciogdGhlIGV2ZW50IHRhcmdldCBpcyBjaGVja2VkIVxuXHRcdC8vIFNlZSBpc3N1ZSAjNTc7IGFsc28gZmlsZWQgYXMgcmRhcjovLzEzMDQ4NTg5IC5cblx0XHRpZiAoZGV2aWNlSXNJT1NXaXRoQmFkVGFyZ2V0KSB7XG5cdFx0XHR0b3VjaCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdO1xuXG5cdFx0XHQvLyBJbiBjZXJ0YWluIGNhc2VzIGFyZ3VtZW50cyBvZiBlbGVtZW50RnJvbVBvaW50IGNhbiBiZSBuZWdhdGl2ZSwgc28gcHJldmVudCBzZXR0aW5nIHRhcmdldEVsZW1lbnQgdG8gbnVsbFxuXHRcdFx0dGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQodG91Y2gucGFnZVggLSB3aW5kb3cucGFnZVhPZmZzZXQsIHRvdWNoLnBhZ2VZIC0gd2luZG93LnBhZ2VZT2Zmc2V0KSB8fCB0YXJnZXRFbGVtZW50O1xuXHRcdFx0dGFyZ2V0RWxlbWVudC5mYXN0Q2xpY2tTY3JvbGxQYXJlbnQgPSB0aGlzLnRhcmdldEVsZW1lbnQuZmFzdENsaWNrU2Nyb2xsUGFyZW50O1xuXHRcdH1cblxuXHRcdHRhcmdldFRhZ05hbWUgPSB0YXJnZXRFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRpZiAodGFyZ2V0VGFnTmFtZSA9PT0gJ2xhYmVsJykge1xuXHRcdFx0Zm9yRWxlbWVudCA9IHRoaXMuZmluZENvbnRyb2wodGFyZ2V0RWxlbWVudCk7XG5cdFx0XHRpZiAoZm9yRWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLmZvY3VzKHRhcmdldEVsZW1lbnQpO1xuXHRcdFx0XHRpZiAoZGV2aWNlSXNBbmRyb2lkKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGFyZ2V0RWxlbWVudCA9IGZvckVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh0aGlzLm5lZWRzRm9jdXModGFyZ2V0RWxlbWVudCkpIHtcblxuXHRcdFx0Ly8gQ2FzZSAxOiBJZiB0aGUgdG91Y2ggc3RhcnRlZCBhIHdoaWxlIGFnbyAoYmVzdCBndWVzcyBpcyAxMDBtcyBiYXNlZCBvbiB0ZXN0cyBmb3IgaXNzdWUgIzM2KSB0aGVuIGZvY3VzIHdpbGwgYmUgdHJpZ2dlcmVkIGFueXdheS4gUmV0dXJuIGVhcmx5IGFuZCB1bnNldCB0aGUgdGFyZ2V0IGVsZW1lbnQgcmVmZXJlbmNlIHNvIHRoYXQgdGhlIHN1YnNlcXVlbnQgY2xpY2sgd2lsbCBiZSBhbGxvd2VkIHRocm91Z2guXG5cdFx0XHQvLyBDYXNlIDI6IFdpdGhvdXQgdGhpcyBleGNlcHRpb24gZm9yIGlucHV0IGVsZW1lbnRzIHRhcHBlZCB3aGVuIHRoZSBkb2N1bWVudCBpcyBjb250YWluZWQgaW4gYW4gaWZyYW1lLCB0aGVuIGFueSBpbnB1dHRlZCB0ZXh0IHdvbid0IGJlIHZpc2libGUgZXZlbiB0aG91Z2ggdGhlIHZhbHVlIGF0dHJpYnV0ZSBpcyB1cGRhdGVkIGFzIHRoZSB1c2VyIHR5cGVzIChpc3N1ZSAjMzcpLlxuXHRcdFx0aWYgKChldmVudC50aW1lU3RhbXAgLSB0cmFja2luZ0NsaWNrU3RhcnQpID4gMTAwIHx8IChkZXZpY2VJc0lPUyAmJiB3aW5kb3cudG9wICE9PSB3aW5kb3cgJiYgdGFyZ2V0VGFnTmFtZSA9PT0gJ2lucHV0JykpIHtcblx0XHRcdFx0dGhpcy50YXJnZXRFbGVtZW50ID0gbnVsbDtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmZvY3VzKHRhcmdldEVsZW1lbnQpO1xuXHRcdFx0dGhpcy5zZW5kQ2xpY2sodGFyZ2V0RWxlbWVudCwgZXZlbnQpO1xuXG5cdFx0XHQvLyBTZWxlY3QgZWxlbWVudHMgbmVlZCB0aGUgZXZlbnQgdG8gZ28gdGhyb3VnaCBvbiBpT1MgNCwgb3RoZXJ3aXNlIHRoZSBzZWxlY3RvciBtZW51IHdvbid0IG9wZW4uXG5cdFx0XHQvLyBBbHNvIHRoaXMgYnJlYWtzIG9wZW5pbmcgc2VsZWN0cyB3aGVuIFZvaWNlT3ZlciBpcyBhY3RpdmUgb24gaU9TNiwgaU9TNyAoYW5kIHBvc3NpYmx5IG90aGVycylcblx0XHRcdGlmICghZGV2aWNlSXNJT1MgfHwgdGFyZ2V0VGFnTmFtZSAhPT0gJ3NlbGVjdCcpIHtcblx0XHRcdFx0dGhpcy50YXJnZXRFbGVtZW50ID0gbnVsbDtcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGlmIChkZXZpY2VJc0lPUyAmJiAhZGV2aWNlSXNJT1M0KSB7XG5cblx0XHRcdC8vIERvbid0IHNlbmQgYSBzeW50aGV0aWMgY2xpY2sgZXZlbnQgaWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBwYXJlbnQgbGF5ZXIgdGhhdCB3YXMgc2Nyb2xsZWRcblx0XHRcdC8vIGFuZCB0aGlzIHRhcCBpcyBiZWluZyB1c2VkIHRvIHN0b3AgdGhlIHNjcm9sbGluZyAodXN1YWxseSBpbml0aWF0ZWQgYnkgYSBmbGluZyAtIGlzc3VlICM0MikuXG5cdFx0XHRzY3JvbGxQYXJlbnQgPSB0YXJnZXRFbGVtZW50LmZhc3RDbGlja1Njcm9sbFBhcmVudDtcblx0XHRcdGlmIChzY3JvbGxQYXJlbnQgJiYgc2Nyb2xsUGFyZW50LmZhc3RDbGlja0xhc3RTY3JvbGxUb3AgIT09IHNjcm9sbFBhcmVudC5zY3JvbGxUb3ApIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUHJldmVudCB0aGUgYWN0dWFsIGNsaWNrIGZyb20gZ29pbmcgdGhvdWdoIC0gdW5sZXNzIHRoZSB0YXJnZXQgbm9kZSBpcyBtYXJrZWQgYXMgcmVxdWlyaW5nXG5cdFx0Ly8gcmVhbCBjbGlja3Mgb3IgaWYgaXQgaXMgaW4gdGhlIHdoaXRlbGlzdCBpbiB3aGljaCBjYXNlIG9ubHkgbm9uLXByb2dyYW1tYXRpYyBjbGlja3MgYXJlIHBlcm1pdHRlZC5cblx0XHRpZiAoIXRoaXMubmVlZHNDbGljayh0YXJnZXRFbGVtZW50KSkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdHRoaXMuc2VuZENsaWNrKHRhcmdldEVsZW1lbnQsIGV2ZW50KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG5cblxuXHQvKipcblx0ICogT24gdG91Y2ggY2FuY2VsLCBzdG9wIHRyYWNraW5nIHRoZSBjbGljay5cblx0ICpcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLm9uVG91Y2hDYW5jZWwgPSBmdW5jdGlvbigpIHtcblx0XHR0aGlzLnRyYWNraW5nQ2xpY2sgPSBmYWxzZTtcblx0XHR0aGlzLnRhcmdldEVsZW1lbnQgPSBudWxsO1xuXHR9O1xuXG5cblx0LyoqXG5cdCAqIERldGVybWluZSBtb3VzZSBldmVudHMgd2hpY2ggc2hvdWxkIGJlIHBlcm1pdHRlZC5cblx0ICpcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLm9uTW91c2UgPSBmdW5jdGlvbihldmVudCkge1xuXG5cdFx0Ly8gSWYgYSB0YXJnZXQgZWxlbWVudCB3YXMgbmV2ZXIgc2V0IChiZWNhdXNlIGEgdG91Y2ggZXZlbnQgd2FzIG5ldmVyIGZpcmVkKSBhbGxvdyB0aGUgZXZlbnRcblx0XHRpZiAoIXRoaXMudGFyZ2V0RWxlbWVudCkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKGV2ZW50LmZvcndhcmRlZFRvdWNoRXZlbnQpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdC8vIFByb2dyYW1tYXRpY2FsbHkgZ2VuZXJhdGVkIGV2ZW50cyB0YXJnZXRpbmcgYSBzcGVjaWZpYyBlbGVtZW50IHNob3VsZCBiZSBwZXJtaXR0ZWRcblx0XHRpZiAoIWV2ZW50LmNhbmNlbGFibGUpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdC8vIERlcml2ZSBhbmQgY2hlY2sgdGhlIHRhcmdldCBlbGVtZW50IHRvIHNlZSB3aGV0aGVyIHRoZSBtb3VzZSBldmVudCBuZWVkcyB0byBiZSBwZXJtaXR0ZWQ7XG5cdFx0Ly8gdW5sZXNzIGV4cGxpY2l0bHkgZW5hYmxlZCwgcHJldmVudCBub24tdG91Y2ggY2xpY2sgZXZlbnRzIGZyb20gdHJpZ2dlcmluZyBhY3Rpb25zLFxuXHRcdC8vIHRvIHByZXZlbnQgZ2hvc3QvZG91YmxlY2xpY2tzLlxuXHRcdGlmICghdGhpcy5uZWVkc0NsaWNrKHRoaXMudGFyZ2V0RWxlbWVudCkgfHwgdGhpcy5jYW5jZWxOZXh0Q2xpY2spIHtcblxuXHRcdFx0Ly8gUHJldmVudCBhbnkgdXNlci1hZGRlZCBsaXN0ZW5lcnMgZGVjbGFyZWQgb24gRmFzdENsaWNrIGVsZW1lbnQgZnJvbSBiZWluZyBmaXJlZC5cblx0XHRcdGlmIChldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24pIHtcblx0XHRcdFx0ZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIFBhcnQgb2YgdGhlIGhhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBFdmVudCNzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gKGUuZy4gQW5kcm9pZCAyKVxuXHRcdFx0XHRldmVudC5wcm9wYWdhdGlvblN0b3BwZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDYW5jZWwgdGhlIGV2ZW50XG5cdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBJZiB0aGUgbW91c2UgZXZlbnQgaXMgcGVybWl0dGVkLCByZXR1cm4gdHJ1ZSBmb3IgdGhlIGFjdGlvbiB0byBnbyB0aHJvdWdoLlxuXHRcdHJldHVybiB0cnVlO1xuXHR9O1xuXG5cblx0LyoqXG5cdCAqIE9uIGFjdHVhbCBjbGlja3MsIGRldGVybWluZSB3aGV0aGVyIHRoaXMgaXMgYSB0b3VjaC1nZW5lcmF0ZWQgY2xpY2ssIGEgY2xpY2sgYWN0aW9uIG9jY3VycmluZ1xuXHQgKiBuYXR1cmFsbHkgYWZ0ZXIgYSBkZWxheSBhZnRlciBhIHRvdWNoICh3aGljaCBuZWVkcyB0byBiZSBjYW5jZWxsZWQgdG8gYXZvaWQgZHVwbGljYXRpb24pLCBvclxuXHQgKiBhbiBhY3R1YWwgY2xpY2sgd2hpY2ggc2hvdWxkIGJlIHBlcm1pdHRlZC5cblx0ICpcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnRcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLm9uQ2xpY2sgPSBmdW5jdGlvbihldmVudCkge1xuXHRcdHZhciBwZXJtaXR0ZWQ7XG5cblx0XHQvLyBJdCdzIHBvc3NpYmxlIGZvciBhbm90aGVyIEZhc3RDbGljay1saWtlIGxpYnJhcnkgZGVsaXZlcmVkIHdpdGggdGhpcmQtcGFydHkgY29kZSB0byBmaXJlIGEgY2xpY2sgZXZlbnQgYmVmb3JlIEZhc3RDbGljayBkb2VzIChpc3N1ZSAjNDQpLiBJbiB0aGF0IGNhc2UsIHNldCB0aGUgY2xpY2stdHJhY2tpbmcgZmxhZyBiYWNrIHRvIGZhbHNlIGFuZCByZXR1cm4gZWFybHkuIFRoaXMgd2lsbCBjYXVzZSBvblRvdWNoRW5kIHRvIHJldHVybiBlYXJseS5cblx0XHRpZiAodGhpcy50cmFja2luZ0NsaWNrKSB7XG5cdFx0XHR0aGlzLnRhcmdldEVsZW1lbnQgPSBudWxsO1xuXHRcdFx0dGhpcy50cmFja2luZ0NsaWNrID0gZmFsc2U7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyBWZXJ5IG9kZCBiZWhhdmlvdXIgb24gaU9TIChpc3N1ZSAjMTgpOiBpZiBhIHN1Ym1pdCBlbGVtZW50IGlzIHByZXNlbnQgaW5zaWRlIGEgZm9ybSBhbmQgdGhlIHVzZXIgaGl0cyBlbnRlciBpbiB0aGUgaU9TIHNpbXVsYXRvciBvciBjbGlja3MgdGhlIEdvIGJ1dHRvbiBvbiB0aGUgcG9wLXVwIE9TIGtleWJvYXJkIHRoZSBhIGtpbmQgb2YgJ2Zha2UnIGNsaWNrIGV2ZW50IHdpbGwgYmUgdHJpZ2dlcmVkIHdpdGggdGhlIHN1Ym1pdC10eXBlIGlucHV0IGVsZW1lbnQgYXMgdGhlIHRhcmdldC5cblx0XHRpZiAoZXZlbnQudGFyZ2V0LnR5cGUgPT09ICdzdWJtaXQnICYmIGV2ZW50LmRldGFpbCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0cGVybWl0dGVkID0gdGhpcy5vbk1vdXNlKGV2ZW50KTtcblxuXHRcdC8vIE9ubHkgdW5zZXQgdGFyZ2V0RWxlbWVudCBpZiB0aGUgY2xpY2sgaXMgbm90IHBlcm1pdHRlZC4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBjaGVjayBmb3IgIXRhcmdldEVsZW1lbnQgaW4gb25Nb3VzZSBmYWlscyBhbmQgdGhlIGJyb3dzZXIncyBjbGljayBkb2Vzbid0IGdvIHRocm91Z2guXG5cdFx0aWYgKCFwZXJtaXR0ZWQpIHtcblx0XHRcdHRoaXMudGFyZ2V0RWxlbWVudCA9IG51bGw7XG5cdFx0fVxuXG5cdFx0Ly8gSWYgY2xpY2tzIGFyZSBwZXJtaXR0ZWQsIHJldHVybiB0cnVlIGZvciB0aGUgYWN0aW9uIHRvIGdvIHRocm91Z2guXG5cdFx0cmV0dXJuIHBlcm1pdHRlZDtcblx0fTtcblxuXG5cdC8qKlxuXHQgKiBSZW1vdmUgYWxsIEZhc3RDbGljaydzIGV2ZW50IGxpc3RlbmVycy5cblx0ICpcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHRGYXN0Q2xpY2sucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcblx0XHR2YXIgbGF5ZXIgPSB0aGlzLmxheWVyO1xuXG5cdFx0aWYgKGRldmljZUlzQW5kcm9pZCkge1xuXHRcdFx0bGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgdGhpcy5vbk1vdXNlLCB0cnVlKTtcblx0XHRcdGxheWVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZSwgdHJ1ZSk7XG5cdFx0XHRsYXllci5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlLCB0cnVlKTtcblx0XHR9XG5cblx0XHRsYXllci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25DbGljaywgdHJ1ZSk7XG5cdFx0bGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25Ub3VjaFN0YXJ0LCBmYWxzZSk7XG5cdFx0bGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSwgZmFsc2UpO1xuXHRcdGxheWVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kLCBmYWxzZSk7XG5cdFx0bGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCB0aGlzLm9uVG91Y2hDYW5jZWwsIGZhbHNlKTtcblx0fTtcblxuXG5cdC8qKlxuXHQgKiBDaGVjayB3aGV0aGVyIEZhc3RDbGljayBpcyBuZWVkZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7RWxlbWVudH0gbGF5ZXIgVGhlIGxheWVyIHRvIGxpc3RlbiBvblxuXHQgKi9cblx0RmFzdENsaWNrLm5vdE5lZWRlZCA9IGZ1bmN0aW9uKGxheWVyKSB7XG5cdFx0dmFyIG1ldGFWaWV3cG9ydDtcblx0XHR2YXIgY2hyb21lVmVyc2lvbjtcblx0XHR2YXIgYmxhY2tiZXJyeVZlcnNpb247XG5cdFx0dmFyIGZpcmVmb3hWZXJzaW9uO1xuXG5cdFx0Ly8gRGV2aWNlcyB0aGF0IGRvbid0IHN1cHBvcnQgdG91Y2ggZG9uJ3QgbmVlZCBGYXN0Q2xpY2tcblx0XHRpZiAodHlwZW9mIHdpbmRvdy5vbnRvdWNoc3RhcnQgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHQvLyBDaHJvbWUgdmVyc2lvbiAtIHplcm8gZm9yIG90aGVyIGJyb3dzZXJzXG5cdFx0Y2hyb21lVmVyc2lvbiA9ICsoL0Nocm9tZVxcLyhbMC05XSspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpIHx8IFssMF0pWzFdO1xuXG5cdFx0aWYgKGNocm9tZVZlcnNpb24pIHtcblxuXHRcdFx0aWYgKGRldmljZUlzQW5kcm9pZCkge1xuXHRcdFx0XHRtZXRhVmlld3BvcnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9dmlld3BvcnRdJyk7XG5cblx0XHRcdFx0aWYgKG1ldGFWaWV3cG9ydCkge1xuXHRcdFx0XHRcdC8vIENocm9tZSBvbiBBbmRyb2lkIHdpdGggdXNlci1zY2FsYWJsZT1cIm5vXCIgZG9lc24ndCBuZWVkIEZhc3RDbGljayAoaXNzdWUgIzg5KVxuXHRcdFx0XHRcdGlmIChtZXRhVmlld3BvcnQuY29udGVudC5pbmRleE9mKCd1c2VyLXNjYWxhYmxlPW5vJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gQ2hyb21lIDMyIGFuZCBhYm92ZSB3aXRoIHdpZHRoPWRldmljZS13aWR0aCBvciBsZXNzIGRvbid0IG5lZWQgRmFzdENsaWNrXG5cdFx0XHRcdFx0aWYgKGNocm9tZVZlcnNpb24gPiAzMSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGggPD0gd2luZG93Lm91dGVyV2lkdGgpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBDaHJvbWUgZGVza3RvcCBkb2Vzbid0IG5lZWQgRmFzdENsaWNrIChpc3N1ZSAjMTUpXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZGV2aWNlSXNCbGFja0JlcnJ5MTApIHtcblx0XHRcdGJsYWNrYmVycnlWZXJzaW9uID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvVmVyc2lvblxcLyhbMC05XSopXFwuKFswLTldKikvKTtcblxuXHRcdFx0Ly8gQmxhY2tCZXJyeSAxMC4zKyBkb2VzIG5vdCByZXF1aXJlIEZhc3RjbGljayBsaWJyYXJ5LlxuXHRcdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL2Z0bGFicy9mYXN0Y2xpY2svaXNzdWVzLzI1MVxuXHRcdFx0aWYgKGJsYWNrYmVycnlWZXJzaW9uWzFdID49IDEwICYmIGJsYWNrYmVycnlWZXJzaW9uWzJdID49IDMpIHtcblx0XHRcdFx0bWV0YVZpZXdwb3J0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPXZpZXdwb3J0XScpO1xuXG5cdFx0XHRcdGlmIChtZXRhVmlld3BvcnQpIHtcblx0XHRcdFx0XHQvLyB1c2VyLXNjYWxhYmxlPW5vIGVsaW1pbmF0ZXMgY2xpY2sgZGVsYXkuXG5cdFx0XHRcdFx0aWYgKG1ldGFWaWV3cG9ydC5jb250ZW50LmluZGV4T2YoJ3VzZXItc2NhbGFibGU9bm8nKSAhPT0gLTEpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyB3aWR0aD1kZXZpY2Utd2lkdGggKG9yIGxlc3MgdGhhbiBkZXZpY2Utd2lkdGgpIGVsaW1pbmF0ZXMgY2xpY2sgZGVsYXkuXG5cdFx0XHRcdFx0aWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aCA8PSB3aW5kb3cub3V0ZXJXaWR0aCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gSUUxMCB3aXRoIC1tcy10b3VjaC1hY3Rpb246IG5vbmUgb3IgbWFuaXB1bGF0aW9uLCB3aGljaCBkaXNhYmxlcyBkb3VibGUtdGFwLXRvLXpvb20gKGlzc3VlICM5Nylcblx0XHRpZiAobGF5ZXIuc3R5bGUubXNUb3VjaEFjdGlvbiA9PT0gJ25vbmUnIHx8IGxheWVyLnN0eWxlLnRvdWNoQWN0aW9uID09PSAnbWFuaXB1bGF0aW9uJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0Ly8gRmlyZWZveCB2ZXJzaW9uIC0gemVybyBmb3Igb3RoZXIgYnJvd3NlcnNcblx0XHRmaXJlZm94VmVyc2lvbiA9ICsoL0ZpcmVmb3hcXC8oWzAtOV0rKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KSB8fCBbLDBdKVsxXTtcblxuXHRcdGlmIChmaXJlZm94VmVyc2lvbiA+PSAyNykge1xuXHRcdFx0Ly8gRmlyZWZveCAyNysgZG9lcyBub3QgaGF2ZSB0YXAgZGVsYXkgaWYgdGhlIGNvbnRlbnQgaXMgbm90IHpvb21hYmxlIC0gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIyODk2XG5cblx0XHRcdG1ldGFWaWV3cG9ydCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT12aWV3cG9ydF0nKTtcblx0XHRcdGlmIChtZXRhVmlld3BvcnQgJiYgKG1ldGFWaWV3cG9ydC5jb250ZW50LmluZGV4T2YoJ3VzZXItc2NhbGFibGU9bm8nKSAhPT0gLTEgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoIDw9IHdpbmRvdy5vdXRlcldpZHRoKSkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBJRTExOiBwcmVmaXhlZCAtbXMtdG91Y2gtYWN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgYW5kIGl0J3MgcmVjb21lbmRlZCB0byB1c2Ugbm9uLXByZWZpeGVkIHZlcnNpb25cblx0XHQvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9hcHBzL0hoNzY3MzEzLmFzcHhcblx0XHRpZiAobGF5ZXIuc3R5bGUudG91Y2hBY3Rpb24gPT09ICdub25lJyB8fCBsYXllci5zdHlsZS50b3VjaEFjdGlvbiA9PT0gJ21hbmlwdWxhdGlvbicpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fTtcblxuXG5cdC8qKlxuXHQgKiBGYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBGYXN0Q2xpY2sgb2JqZWN0XG5cdCAqXG5cdCAqIEBwYXJhbSB7RWxlbWVudH0gbGF5ZXIgVGhlIGxheWVyIHRvIGxpc3RlbiBvblxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0c1xuXHQgKi9cblx0RmFzdENsaWNrLmF0dGFjaCA9IGZ1bmN0aW9uKGxheWVyLCBvcHRpb25zKSB7XG5cdFx0cmV0dXJuIG5ldyBGYXN0Q2xpY2sobGF5ZXIsIG9wdGlvbnMpO1xuXHR9O1xuXG5cblx0aWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcblxuXHRcdC8vIEFNRC4gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIG1vZHVsZS5cblx0XHRkZWZpbmUoZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4gRmFzdENsaWNrO1xuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBGYXN0Q2xpY2suYXR0YWNoO1xuXHRcdG1vZHVsZS5leHBvcnRzLkZhc3RDbGljayA9IEZhc3RDbGljaztcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuRmFzdENsaWNrID0gRmFzdENsaWNrO1xuXHR9XG59KCkpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2Zhc3RjbGljay9saWIvZmFzdGNsaWNrLmpzXG4vLyBtb2R1bGUgaWQgPSA1MFxuLy8gbW9kdWxlIGNodW5rcyA9IDEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///50\n");

/***/ }),

/***/ 51:
/***/ (function(module, exports) {

eval("var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! AdminLTE app.js\n* ================\n* Main JS application file for AdminLTE v2. This file\n* should be included in all pages. It controls some layout\n* options and implements exclusive AdminLTE plugins.\n*\n* @Author  Almsaeed Studio\n* @Support <https://www.almsaeedstudio.com>\n* @Email   <abdullah@almsaeedstudio.com>\n* @version 2.4.2\n* @repository git://github.com/almasaeed2010/AdminLTE.git\n* @license MIT <http://opensource.org/licenses/MIT>\n*/\nif (\"undefined\" == typeof jQuery) throw new Error(\"AdminLTE requires jQuery\");+function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var e = a(this),\n          g = e.data(c);if (!g) {\n        var h = a.extend({}, d, e.data(), \"object\" == (typeof b === \"undefined\" ? \"undefined\" : _typeof(b)) && b);e.data(c, g = new f(e, h));\n      }if (\"string\" == typeof g) {\n        if (void 0 === g[b]) throw new Error(\"No method named \" + b);g[b]();\n      }\n    });\n  }var c = \"lte.boxrefresh\",\n      d = { source: \"\", params: {}, trigger: \".refresh-btn\", content: \".box-body\", loadInContent: !0, responseType: \"\", overlayTemplate: '<div class=\"overlay\"><div class=\"fa fa-refresh fa-spin\"></div></div>', onLoadStart: function onLoadStart() {}, onLoadDone: function onLoadDone(a) {\n      return a;\n    } },\n      e = { data: '[data-widget=\"box-refresh\"]' },\n      f = function f(b, c) {\n    if (this.element = b, this.options = c, this.$overlay = a(c.overlay), \"\" === c.source) throw new Error(\"Source url was not defined. Please specify a url in your BoxRefresh source option.\");this._setUpListeners(), this.load();\n  };f.prototype.load = function () {\n    this._addOverlay(), this.options.onLoadStart.call(a(this)), a.get(this.options.source, this.options.params, function (b) {\n      this.options.loadInContent && a(this.options.content).html(b), this.options.onLoadDone.call(a(this), b), this._removeOverlay();\n    }.bind(this), \"\" !== this.options.responseType && this.options.responseType);\n  }, f.prototype._setUpListeners = function () {\n    a(this.element).on(\"click\", e.trigger, function (a) {\n      a && a.preventDefault(), this.load();\n    }.bind(this));\n  }, f.prototype._addOverlay = function () {\n    a(this.element).append(this.$overlay);\n  }, f.prototype._removeOverlay = function () {\n    a(this.element).remove(this.$overlay);\n  };var g = a.fn.boxRefresh;a.fn.boxRefresh = b, a.fn.boxRefresh.Constructor = f, a.fn.boxRefresh.noConflict = function () {\n    return a.fn.boxRefresh = g, this;\n  }, a(window).on(\"load\", function () {\n    a(e.data).each(function () {\n      b.call(a(this));\n    });\n  });\n}(jQuery), function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var e = a(this),\n          f = e.data(c);if (!f) {\n        var g = a.extend({}, d, e.data(), \"object\" == (typeof b === \"undefined\" ? \"undefined\" : _typeof(b)) && b);e.data(c, f = new h(e, g));\n      }if (\"string\" == typeof b) {\n        if (void 0 === f[b]) throw new Error(\"No method named \" + b);f[b]();\n      }\n    });\n  }var c = \"lte.boxwidget\",\n      d = { animationSpeed: 500, collapseTrigger: '[data-widget=\"collapse\"]', removeTrigger: '[data-widget=\"remove\"]', collapseIcon: \"fa-minus\", expandIcon: \"fa-plus\", removeIcon: \"fa-times\" },\n      e = { data: \".box\", collapsed: \".collapsed-box\", header: \".box-header\", body: \".box-body\", footer: \".box-footer\", tools: \".box-tools\" },\n      f = { collapsed: \"collapsed-box\" },\n      g = { collapsed: \"collapsed.boxwidget\", expanded: \"expanded.boxwidget\", removed: \"removed.boxwidget\" },\n      h = function h(a, b) {\n    this.element = a, this.options = b, this._setUpListeners();\n  };h.prototype.toggle = function () {\n    a(this.element).is(e.collapsed) ? this.expand() : this.collapse();\n  }, h.prototype.expand = function () {\n    var b = a.Event(g.expanded),\n        c = this.options.collapseIcon,\n        d = this.options.expandIcon;a(this.element).removeClass(f.collapsed), a(this.element).children(e.header + \", \" + e.body + \", \" + e.footer).children(e.tools).find(\".\" + d).removeClass(d).addClass(c), a(this.element).children(e.body + \", \" + e.footer).slideDown(this.options.animationSpeed, function () {\n      a(this.element).trigger(b);\n    }.bind(this));\n  }, h.prototype.collapse = function () {\n    var b = a.Event(g.collapsed),\n        c = this.options.collapseIcon,\n        d = this.options.expandIcon;a(this.element).children(e.header + \", \" + e.body + \", \" + e.footer).children(e.tools).find(\".\" + c).removeClass(c).addClass(d), a(this.element).children(e.body + \", \" + e.footer).slideUp(this.options.animationSpeed, function () {\n      a(this.element).addClass(f.collapsed), a(this.element).trigger(b);\n    }.bind(this));\n  }, h.prototype.remove = function () {\n    var b = a.Event(g.removed);a(this.element).slideUp(this.options.animationSpeed, function () {\n      a(this.element).trigger(b), a(this.element).remove();\n    }.bind(this));\n  }, h.prototype._setUpListeners = function () {\n    var b = this;a(this.element).on(\"click\", this.options.collapseTrigger, function (c) {\n      return c && c.preventDefault(), b.toggle(a(this)), !1;\n    }), a(this.element).on(\"click\", this.options.removeTrigger, function (c) {\n      return c && c.preventDefault(), b.remove(a(this)), !1;\n    });\n  };var i = a.fn.boxWidget;a.fn.boxWidget = b, a.fn.boxWidget.Constructor = h, a.fn.boxWidget.noConflict = function () {\n    return a.fn.boxWidget = i, this;\n  }, a(window).on(\"load\", function () {\n    a(e.data).each(function () {\n      b.call(a(this));\n    });\n  });\n}(jQuery), function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var e = a(this),\n          f = e.data(c);if (!f) {\n        var g = a.extend({}, d, e.data(), \"object\" == (typeof b === \"undefined\" ? \"undefined\" : _typeof(b)) && b);e.data(c, f = new h(e, g));\n      }\"string\" == typeof b && f.toggle();\n    });\n  }var c = \"lte.controlsidebar\",\n      d = { slide: !0 },\n      e = { sidebar: \".control-sidebar\", data: '[data-toggle=\"control-sidebar\"]', open: \".control-sidebar-open\", bg: \".control-sidebar-bg\", wrapper: \".wrapper\", content: \".content-wrapper\", boxed: \".layout-boxed\" },\n      f = { open: \"control-sidebar-open\", fixed: \"fixed\" },\n      g = { collapsed: \"collapsed.controlsidebar\", expanded: \"expanded.controlsidebar\" },\n      h = function h(a, b) {\n    this.element = a, this.options = b, this.hasBindedResize = !1, this.init();\n  };h.prototype.init = function () {\n    a(this.element).is(e.data) || a(this).on(\"click\", this.toggle), this.fix(), a(window).resize(function () {\n      this.fix();\n    }.bind(this));\n  }, h.prototype.toggle = function (b) {\n    b && b.preventDefault(), this.fix(), a(e.sidebar).is(e.open) || a(\"body\").is(e.open) ? this.collapse() : this.expand();\n  }, h.prototype.expand = function () {\n    this.options.slide ? a(e.sidebar).addClass(f.open) : a(\"body\").addClass(f.open), a(this.element).trigger(a.Event(g.expanded));\n  }, h.prototype.collapse = function () {\n    a(\"body, \" + e.sidebar).removeClass(f.open), a(this.element).trigger(a.Event(g.collapsed));\n  }, h.prototype.fix = function () {\n    a(\"body\").is(e.boxed) && this._fixForBoxed(a(e.bg));\n  }, h.prototype._fixForBoxed = function (b) {\n    b.css({ position: \"absolute\", height: a(e.wrapper).height() });\n  };var i = a.fn.controlSidebar;a.fn.controlSidebar = b, a.fn.controlSidebar.Constructor = h, a.fn.controlSidebar.noConflict = function () {\n    return a.fn.controlSidebar = i, this;\n  }, a(document).on(\"click\", e.data, function (c) {\n    c && c.preventDefault(), b.call(a(this), \"toggle\");\n  });\n}(jQuery), function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var d = a(this),\n          e = d.data(c);e || d.data(c, e = new f(d)), \"string\" == typeof b && e.toggle(d);\n    });\n  }var c = \"lte.directchat\",\n      d = { data: '[data-widget=\"chat-pane-toggle\"]', box: \".direct-chat\" },\n      e = { open: \"direct-chat-contacts-open\" },\n      f = function f(a) {\n    this.element = a;\n  };f.prototype.toggle = function (a) {\n    a.parents(d.box).first().toggleClass(e.open);\n  };var g = a.fn.directChat;a.fn.directChat = b, a.fn.directChat.Constructor = f, a.fn.directChat.noConflict = function () {\n    return a.fn.directChat = g, this;\n  }, a(document).on(\"click\", d.data, function (c) {\n    c && c.preventDefault(), b.call(a(this), \"toggle\");\n  });\n}(jQuery), function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var e = a(this),\n          f = e.data(c);if (!f) {\n        var h = a.extend({}, d, e.data(), \"object\" == (typeof b === \"undefined\" ? \"undefined\" : _typeof(b)) && b);e.data(c, f = new g(h));\n      }if (\"string\" == typeof b) {\n        if (void 0 === f[b]) throw new Error(\"No method named \" + b);f[b]();\n      }\n    });\n  }var c = \"lte.layout\",\n      d = { slimscroll: !0, resetHeight: !0 },\n      e = { wrapper: \".wrapper\", contentWrapper: \".content-wrapper\", layoutBoxed: \".layout-boxed\", mainFooter: \".main-footer\", mainHeader: \".main-header\", sidebar: \".sidebar\", controlSidebar: \".control-sidebar\", fixed: \".fixed\", sidebarMenu: \".sidebar-menu\", logo: \".main-header .logo\" },\n      f = { fixed: \"fixed\", holdTransition: \"hold-transition\" },\n      g = function g(a) {\n    this.options = a, this.bindedResize = !1, this.activate();\n  };g.prototype.activate = function () {\n    this.fix(), this.fixSidebar(), a(\"body\").removeClass(f.holdTransition), this.options.resetHeight && a(\"body, html, \" + e.wrapper).css({ height: \"auto\", \"min-height\": \"100%\" }), this.bindedResize || (a(window).resize(function () {\n      this.fix(), this.fixSidebar(), a(e.logo + \", \" + e.sidebar).one(\"webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend\", function () {\n        this.fix(), this.fixSidebar();\n      }.bind(this));\n    }.bind(this)), this.bindedResize = !0), a(e.sidebarMenu).on(\"expanded.tree\", function () {\n      this.fix(), this.fixSidebar();\n    }.bind(this)), a(e.sidebarMenu).on(\"collapsed.tree\", function () {\n      this.fix(), this.fixSidebar();\n    }.bind(this));\n  }, g.prototype.fix = function () {\n    a(e.layoutBoxed + \" > \" + e.wrapper).css(\"overflow\", \"hidden\");var b = a(e.mainFooter).outerHeight() || 0,\n        c = a(e.mainHeader).outerHeight() + b,\n        d = a(window).height(),\n        g = a(e.sidebar).height() || 0;if (a(\"body\").hasClass(f.fixed)) a(e.contentWrapper).css(\"min-height\", d - b);else {\n      var h;d >= g ? (a(e.contentWrapper).css(\"min-height\", d - c), h = d - c) : (a(e.contentWrapper).css(\"min-height\", g), h = g);var i = a(e.controlSidebar);void 0 !== i && i.height() > h && a(e.contentWrapper).css(\"min-height\", i.height());\n    }\n  }, g.prototype.fixSidebar = function () {\n    if (!a(\"body\").hasClass(f.fixed)) return void (void 0 !== a.fn.slimScroll && a(e.sidebar).slimScroll({ destroy: !0 }).height(\"auto\"));this.options.slimscroll && void 0 !== a.fn.slimScroll && a(e.sidebar).slimScroll({ height: a(window).height() - a(e.mainHeader).height() + \"px\" });\n  };var h = a.fn.layout;a.fn.layout = b, a.fn.layout.Constuctor = g, a.fn.layout.noConflict = function () {\n    return a.fn.layout = h, this;\n  }, a(window).on(\"load\", function () {\n    b.call(a(\"body\"));\n  });\n}(jQuery), function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var e = a(this),\n          f = e.data(c);if (!f) {\n        var g = a.extend({}, d, e.data(), \"object\" == (typeof b === \"undefined\" ? \"undefined\" : _typeof(b)) && b);e.data(c, f = new h(g));\n      }\"toggle\" === b && f.toggle();\n    });\n  }var c = \"lte.pushmenu\",\n      d = { collapseScreenSize: 767, expandOnHover: !1, expandTransitionDelay: 200 },\n      e = { collapsed: \".sidebar-collapse\", open: \".sidebar-open\", mainSidebar: \".main-sidebar\", contentWrapper: \".content-wrapper\", searchInput: \".sidebar-form .form-control\", button: '[data-toggle=\"push-menu\"]', mini: \".sidebar-mini\", expanded: \".sidebar-expanded-on-hover\", layoutFixed: \".fixed\" },\n      f = { collapsed: \"sidebar-collapse\", open: \"sidebar-open\", mini: \"sidebar-mini\", expanded: \"sidebar-expanded-on-hover\", expandFeature: \"sidebar-mini-expand-feature\", layoutFixed: \"fixed\" },\n      g = { expanded: \"expanded.pushMenu\", collapsed: \"collapsed.pushMenu\" },\n      h = function h(a) {\n    this.options = a, this.init();\n  };h.prototype.init = function () {\n    (this.options.expandOnHover || a(\"body\").is(e.mini + e.layoutFixed)) && (this.expandOnHover(), a(\"body\").addClass(f.expandFeature)), a(e.contentWrapper).click(function () {\n      a(window).width() <= this.options.collapseScreenSize && a(\"body\").hasClass(f.open) && this.close();\n    }.bind(this)), a(e.searchInput).click(function (a) {\n      a.stopPropagation();\n    });\n  }, h.prototype.toggle = function () {\n    var b = a(window).width(),\n        c = !a(\"body\").hasClass(f.collapsed);b <= this.options.collapseScreenSize && (c = a(\"body\").hasClass(f.open)), c ? this.close() : this.open();\n  }, h.prototype.open = function () {\n    a(window).width() > this.options.collapseScreenSize ? a(\"body\").removeClass(f.collapsed).trigger(a.Event(g.expanded)) : a(\"body\").addClass(f.open).trigger(a.Event(g.expanded));\n  }, h.prototype.close = function () {\n    a(window).width() > this.options.collapseScreenSize ? a(\"body\").addClass(f.collapsed).trigger(a.Event(g.collapsed)) : a(\"body\").removeClass(f.open + \" \" + f.collapsed).trigger(a.Event(g.collapsed));\n  }, h.prototype.expandOnHover = function () {\n    a(e.mainSidebar).hover(function () {\n      a(\"body\").is(e.mini + e.collapsed) && a(window).width() > this.options.collapseScreenSize && this.expand();\n    }.bind(this), function () {\n      a(\"body\").is(e.expanded) && this.collapse();\n    }.bind(this));\n  }, h.prototype.expand = function () {\n    setTimeout(function () {\n      a(\"body\").removeClass(f.collapsed).addClass(f.expanded);\n    }, this.options.expandTransitionDelay);\n  }, h.prototype.collapse = function () {\n    setTimeout(function () {\n      a(\"body\").removeClass(f.expanded).addClass(f.collapsed);\n    }, this.options.expandTransitionDelay);\n  };var i = a.fn.pushMenu;a.fn.pushMenu = b, a.fn.pushMenu.Constructor = h, a.fn.pushMenu.noConflict = function () {\n    return a.fn.pushMenu = i, this;\n  }, a(document).on(\"click\", e.button, function (c) {\n    c.preventDefault(), b.call(a(this), \"toggle\");\n  }), a(window).on(\"load\", function () {\n    b.call(a(e.button));\n  });\n}(jQuery), function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var e = a(this),\n          f = e.data(c);if (!f) {\n        var h = a.extend({}, d, e.data(), \"object\" == (typeof b === \"undefined\" ? \"undefined\" : _typeof(b)) && b);e.data(c, f = new g(e, h));\n      }if (\"string\" == typeof f) {\n        if (void 0 === f[b]) throw new Error(\"No method named \" + b);f[b]();\n      }\n    });\n  }var c = \"lte.todolist\",\n      d = { onCheck: function onCheck(a) {\n      return a;\n    }, onUnCheck: function onUnCheck(a) {\n      return a;\n    } },\n      e = { data: '[data-widget=\"todo-list\"]' },\n      f = { done: \"done\" },\n      g = function g(a, b) {\n    this.element = a, this.options = b, this._setUpListeners();\n  };g.prototype.toggle = function (a) {\n    if (a.parents(e.li).first().toggleClass(f.done), !a.prop(\"checked\")) return void this.unCheck(a);this.check(a);\n  }, g.prototype.check = function (a) {\n    this.options.onCheck.call(a);\n  }, g.prototype.unCheck = function (a) {\n    this.options.onUnCheck.call(a);\n  }, g.prototype._setUpListeners = function () {\n    var b = this;a(this.element).on(\"change ifChanged\", \"input:checkbox\", function () {\n      b.toggle(a(this));\n    });\n  };var h = a.fn.todoList;a.fn.todoList = b, a.fn.todoList.Constructor = g, a.fn.todoList.noConflict = function () {\n    return a.fn.todoList = h, this;\n  }, a(window).on(\"load\", function () {\n    a(e.data).each(function () {\n      b.call(a(this));\n    });\n  });\n}(jQuery), function (a) {\n  \"use strict\";\n  function b(b) {\n    return this.each(function () {\n      var e = a(this);if (!e.data(c)) {\n        var f = a.extend({}, d, e.data(), \"object\" == (typeof b === \"undefined\" ? \"undefined\" : _typeof(b)) && b);e.data(c, new h(e, f));\n      }\n    });\n  }var c = \"lte.tree\",\n      d = { animationSpeed: 500, accordion: !0, followLink: !1, trigger: \".treeview a\" },\n      e = { tree: \".tree\", treeview: \".treeview\", treeviewMenu: \".treeview-menu\", open: \".menu-open, .active\", li: \"li\", data: '[data-widget=\"tree\"]', active: \".active\" },\n      f = { open: \"menu-open\", tree: \"tree\" },\n      g = { collapsed: \"collapsed.tree\", expanded: \"expanded.tree\" },\n      h = function h(b, c) {\n    this.element = b, this.options = c, a(this.element).addClass(f.tree), a(e.treeview + e.active, this.element).addClass(f.open), this._setUpListeners();\n  };h.prototype.toggle = function (a, b) {\n    var c = a.next(e.treeviewMenu),\n        d = a.parent(),\n        g = d.hasClass(f.open);d.is(e.treeview) && (this.options.followLink && \"#\" !== a.attr(\"href\") || b.preventDefault(), g ? this.collapse(c, d) : this.expand(c, d));\n  }, h.prototype.expand = function (b, c) {\n    var d = a.Event(g.expanded);if (this.options.accordion) {\n      var h = c.siblings(e.open),\n          i = h.children(e.treeviewMenu);this.collapse(i, h);\n    }c.addClass(f.open), b.slideDown(this.options.animationSpeed, function () {\n      a(this.element).trigger(d);\n    }.bind(this));\n  }, h.prototype.collapse = function (b, c) {\n    var d = a.Event(g.collapsed);b.find(e.open).removeClass(f.open), c.removeClass(f.open), b.slideUp(this.options.animationSpeed, function () {\n      b.find(e.open + \" > \" + e.treeview).slideUp(), a(this.element).trigger(d);\n    }.bind(this));\n  }, h.prototype._setUpListeners = function () {\n    var b = this;a(this.element).on(\"click\", this.options.trigger, function (c) {\n      b.toggle(a(this), c);\n    });\n  };var i = a.fn.tree;a.fn.tree = b, a.fn.tree.Constructor = h, a.fn.tree.noConflict = function () {\n    return a.fn.tree = i, this;\n  }, a(window).on(\"load\", function () {\n    a(e.data).each(function () {\n      b.call(a(this));\n    });\n  });\n}(jQuery);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9kaXN0L2pzL2FkbWlubHRlLm1pbi5qcz9jMDQ2Il0sIm5hbWVzIjpbImpRdWVyeSIsIkVycm9yIiwiYSIsImIiLCJlYWNoIiwiZSIsImciLCJkYXRhIiwiYyIsImgiLCJleHRlbmQiLCJkIiwiZiIsInNvdXJjZSIsInBhcmFtcyIsInRyaWdnZXIiLCJjb250ZW50IiwibG9hZEluQ29udGVudCIsInJlc3BvbnNlVHlwZSIsIm92ZXJsYXlUZW1wbGF0ZSIsIm9uTG9hZFN0YXJ0Iiwib25Mb2FkRG9uZSIsImVsZW1lbnQiLCJvcHRpb25zIiwiJG92ZXJsYXkiLCJvdmVybGF5IiwiX3NldFVwTGlzdGVuZXJzIiwibG9hZCIsInByb3RvdHlwZSIsIl9hZGRPdmVybGF5IiwiY2FsbCIsImdldCIsImh0bWwiLCJfcmVtb3ZlT3ZlcmxheSIsImJpbmQiLCJvbiIsInByZXZlbnREZWZhdWx0IiwiYXBwZW5kIiwicmVtb3ZlIiwiZm4iLCJib3hSZWZyZXNoIiwiQ29uc3RydWN0b3IiLCJub0NvbmZsaWN0Iiwid2luZG93IiwiYW5pbWF0aW9uU3BlZWQiLCJjb2xsYXBzZVRyaWdnZXIiLCJyZW1vdmVUcmlnZ2VyIiwiY29sbGFwc2VJY29uIiwiZXhwYW5kSWNvbiIsInJlbW92ZUljb24iLCJjb2xsYXBzZWQiLCJoZWFkZXIiLCJib2R5IiwiZm9vdGVyIiwidG9vbHMiLCJleHBhbmRlZCIsInJlbW92ZWQiLCJ0b2dnbGUiLCJpcyIsImV4cGFuZCIsImNvbGxhcHNlIiwiRXZlbnQiLCJyZW1vdmVDbGFzcyIsImNoaWxkcmVuIiwiZmluZCIsImFkZENsYXNzIiwic2xpZGVEb3duIiwic2xpZGVVcCIsImkiLCJib3hXaWRnZXQiLCJzbGlkZSIsInNpZGViYXIiLCJvcGVuIiwiYmciLCJ3cmFwcGVyIiwiYm94ZWQiLCJmaXhlZCIsImhhc0JpbmRlZFJlc2l6ZSIsImluaXQiLCJmaXgiLCJyZXNpemUiLCJfZml4Rm9yQm94ZWQiLCJjc3MiLCJwb3NpdGlvbiIsImhlaWdodCIsImNvbnRyb2xTaWRlYmFyIiwiZG9jdW1lbnQiLCJib3giLCJwYXJlbnRzIiwiZmlyc3QiLCJ0b2dnbGVDbGFzcyIsImRpcmVjdENoYXQiLCJzbGltc2Nyb2xsIiwicmVzZXRIZWlnaHQiLCJjb250ZW50V3JhcHBlciIsImxheW91dEJveGVkIiwibWFpbkZvb3RlciIsIm1haW5IZWFkZXIiLCJzaWRlYmFyTWVudSIsImxvZ28iLCJob2xkVHJhbnNpdGlvbiIsImJpbmRlZFJlc2l6ZSIsImFjdGl2YXRlIiwiZml4U2lkZWJhciIsIm9uZSIsIm91dGVySGVpZ2h0IiwiaGFzQ2xhc3MiLCJzbGltU2Nyb2xsIiwiZGVzdHJveSIsImxheW91dCIsIkNvbnN0dWN0b3IiLCJjb2xsYXBzZVNjcmVlblNpemUiLCJleHBhbmRPbkhvdmVyIiwiZXhwYW5kVHJhbnNpdGlvbkRlbGF5IiwibWFpblNpZGViYXIiLCJzZWFyY2hJbnB1dCIsImJ1dHRvbiIsIm1pbmkiLCJsYXlvdXRGaXhlZCIsImV4cGFuZEZlYXR1cmUiLCJjbGljayIsIndpZHRoIiwiY2xvc2UiLCJzdG9wUHJvcGFnYXRpb24iLCJob3ZlciIsInNldFRpbWVvdXQiLCJwdXNoTWVudSIsIm9uQ2hlY2siLCJvblVuQ2hlY2siLCJkb25lIiwibGkiLCJwcm9wIiwidW5DaGVjayIsImNoZWNrIiwidG9kb0xpc3QiLCJhY2NvcmRpb24iLCJmb2xsb3dMaW5rIiwidHJlZSIsInRyZWV2aWV3IiwidHJlZXZpZXdNZW51IiwiYWN0aXZlIiwibmV4dCIsInBhcmVudCIsImF0dHIiLCJzaWJsaW5ncyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7Ozs7Ozs7OztBQWFBLElBQUcsZUFBYSxPQUFPQSxNQUF2QixFQUE4QixNQUFNLElBQUlDLEtBQUosQ0FBVSwwQkFBVixDQUFOLENBQTRDLENBQUMsVUFBU0MsQ0FBVCxFQUFXO0FBQUM7QUFBYSxXQUFTQyxDQUFULENBQVdBLENBQVgsRUFBYTtBQUFDLFdBQU8sS0FBS0MsSUFBTCxDQUFVLFlBQVU7QUFBQyxVQUFJQyxJQUFFSCxFQUFFLElBQUYsQ0FBTjtBQUFBLFVBQWNJLElBQUVELEVBQUVFLElBQUYsQ0FBT0MsQ0FBUCxDQUFoQixDQUEwQixJQUFHLENBQUNGLENBQUosRUFBTTtBQUFDLFlBQUlHLElBQUVQLEVBQUVRLE1BQUYsQ0FBUyxFQUFULEVBQVlDLENBQVosRUFBY04sRUFBRUUsSUFBRixFQUFkLEVBQXVCLG9CQUFpQkosQ0FBakIseUNBQWlCQSxDQUFqQixNQUFvQkEsQ0FBM0MsQ0FBTixDQUFvREUsRUFBRUUsSUFBRixDQUFPQyxDQUFQLEVBQVNGLElBQUUsSUFBSU0sQ0FBSixDQUFNUCxDQUFOLEVBQVFJLENBQVIsQ0FBWDtBQUF1QixXQUFHLFlBQVUsT0FBT0gsQ0FBcEIsRUFBc0I7QUFBQyxZQUFHLEtBQUssQ0FBTCxLQUFTQSxFQUFFSCxDQUFGLENBQVosRUFBaUIsTUFBTSxJQUFJRixLQUFKLENBQVUscUJBQW1CRSxDQUE3QixDQUFOLENBQXNDRyxFQUFFSCxDQUFGO0FBQU87QUFBQyxLQUF2TixDQUFQO0FBQWdPLE9BQUlLLElBQUUsZ0JBQU47QUFBQSxNQUF1QkcsSUFBRSxFQUFDRSxRQUFPLEVBQVIsRUFBV0MsUUFBTyxFQUFsQixFQUFxQkMsU0FBUSxjQUE3QixFQUE0Q0MsU0FBUSxXQUFwRCxFQUFnRUMsZUFBYyxDQUFDLENBQS9FLEVBQWlGQyxjQUFhLEVBQTlGLEVBQWlHQyxpQkFBZ0Isc0VBQWpILEVBQXdMQyxhQUFZLHVCQUFVLENBQUUsQ0FBaE4sRUFBaU5DLFlBQVcsb0JBQVNuQixDQUFULEVBQVc7QUFBQyxhQUFPQSxDQUFQO0FBQVMsS0FBalAsRUFBekI7QUFBQSxNQUE0UUcsSUFBRSxFQUFDRSxNQUFLLDZCQUFOLEVBQTlRO0FBQUEsTUFBbVRLLElBQUUsU0FBRkEsQ0FBRSxDQUFTVCxDQUFULEVBQVdLLENBQVgsRUFBYTtBQUFDLFFBQUcsS0FBS2MsT0FBTCxHQUFhbkIsQ0FBYixFQUFlLEtBQUtvQixPQUFMLEdBQWFmLENBQTVCLEVBQThCLEtBQUtnQixRQUFMLEdBQWN0QixFQUFFTSxFQUFFaUIsT0FBSixDQUE1QyxFQUF5RCxPQUFLakIsRUFBRUssTUFBbkUsRUFBMEUsTUFBTSxJQUFJWixLQUFKLENBQVUsb0ZBQVYsQ0FBTixDQUFzRyxLQUFLeUIsZUFBTCxJQUF1QixLQUFLQyxJQUFMLEVBQXZCO0FBQW1DLEdBQXRoQixDQUF1aEJmLEVBQUVnQixTQUFGLENBQVlELElBQVosR0FBaUIsWUFBVTtBQUFDLFNBQUtFLFdBQUwsSUFBbUIsS0FBS04sT0FBTCxDQUFhSCxXQUFiLENBQXlCVSxJQUF6QixDQUE4QjVCLEVBQUUsSUFBRixDQUE5QixDQUFuQixFQUEwREEsRUFBRTZCLEdBQUYsQ0FBTSxLQUFLUixPQUFMLENBQWFWLE1BQW5CLEVBQTBCLEtBQUtVLE9BQUwsQ0FBYVQsTUFBdkMsRUFBOEMsVUFBU1gsQ0FBVCxFQUFXO0FBQUMsV0FBS29CLE9BQUwsQ0FBYU4sYUFBYixJQUE0QmYsRUFBRSxLQUFLcUIsT0FBTCxDQUFhUCxPQUFmLEVBQXdCZ0IsSUFBeEIsQ0FBNkI3QixDQUE3QixDQUE1QixFQUE0RCxLQUFLb0IsT0FBTCxDQUFhRixVQUFiLENBQXdCUyxJQUF4QixDQUE2QjVCLEVBQUUsSUFBRixDQUE3QixFQUFxQ0MsQ0FBckMsQ0FBNUQsRUFBb0csS0FBSzhCLGNBQUwsRUFBcEc7QUFBMEgsS0FBdEksQ0FBdUlDLElBQXZJLENBQTRJLElBQTVJLENBQTlDLEVBQWdNLE9BQUssS0FBS1gsT0FBTCxDQUFhTCxZQUFsQixJQUFnQyxLQUFLSyxPQUFMLENBQWFMLFlBQTdPLENBQTFEO0FBQXFULEdBQWpWLEVBQWtWTixFQUFFZ0IsU0FBRixDQUFZRixlQUFaLEdBQTRCLFlBQVU7QUFBQ3hCLE1BQUUsS0FBS29CLE9BQVAsRUFBZ0JhLEVBQWhCLENBQW1CLE9BQW5CLEVBQTJCOUIsRUFBRVUsT0FBN0IsRUFBcUMsVUFBU2IsQ0FBVCxFQUFXO0FBQUNBLFdBQUdBLEVBQUVrQyxjQUFGLEVBQUgsRUFBc0IsS0FBS1QsSUFBTCxFQUF0QjtBQUFrQyxLQUE5QyxDQUErQ08sSUFBL0MsQ0FBb0QsSUFBcEQsQ0FBckM7QUFBZ0csR0FBemQsRUFBMGR0QixFQUFFZ0IsU0FBRixDQUFZQyxXQUFaLEdBQXdCLFlBQVU7QUFBQzNCLE1BQUUsS0FBS29CLE9BQVAsRUFBZ0JlLE1BQWhCLENBQXVCLEtBQUtiLFFBQTVCO0FBQXNDLEdBQW5pQixFQUFvaUJaLEVBQUVnQixTQUFGLENBQVlLLGNBQVosR0FBMkIsWUFBVTtBQUFDL0IsTUFBRSxLQUFLb0IsT0FBUCxFQUFnQmdCLE1BQWhCLENBQXVCLEtBQUtkLFFBQTVCO0FBQXNDLEdBQWhuQixDQUFpbkIsSUFBSWxCLElBQUVKLEVBQUVxQyxFQUFGLENBQUtDLFVBQVgsQ0FBc0J0QyxFQUFFcUMsRUFBRixDQUFLQyxVQUFMLEdBQWdCckMsQ0FBaEIsRUFBa0JELEVBQUVxQyxFQUFGLENBQUtDLFVBQUwsQ0FBZ0JDLFdBQWhCLEdBQTRCN0IsQ0FBOUMsRUFBZ0RWLEVBQUVxQyxFQUFGLENBQUtDLFVBQUwsQ0FBZ0JFLFVBQWhCLEdBQTJCLFlBQVU7QUFBQyxXQUFPeEMsRUFBRXFDLEVBQUYsQ0FBS0MsVUFBTCxHQUFnQmxDLENBQWhCLEVBQWtCLElBQXpCO0FBQThCLEdBQXBILEVBQXFISixFQUFFeUMsTUFBRixFQUFVUixFQUFWLENBQWEsTUFBYixFQUFvQixZQUFVO0FBQUNqQyxNQUFFRyxFQUFFRSxJQUFKLEVBQVVILElBQVYsQ0FBZSxZQUFVO0FBQUNELFFBQUUyQixJQUFGLENBQU81QixFQUFFLElBQUYsQ0FBUDtBQUFnQixLQUExQztBQUE0QyxHQUEzRSxDQUFySDtBQUFrTSxDQUF2bUQsQ0FBd21ERixNQUF4bUQsQ0FBRCxFQUFpbkQsVUFBU0UsQ0FBVCxFQUFXO0FBQUM7QUFBYSxXQUFTQyxDQUFULENBQVdBLENBQVgsRUFBYTtBQUFDLFdBQU8sS0FBS0MsSUFBTCxDQUFVLFlBQVU7QUFBQyxVQUFJQyxJQUFFSCxFQUFFLElBQUYsQ0FBTjtBQUFBLFVBQWNVLElBQUVQLEVBQUVFLElBQUYsQ0FBT0MsQ0FBUCxDQUFoQixDQUEwQixJQUFHLENBQUNJLENBQUosRUFBTTtBQUFDLFlBQUlOLElBQUVKLEVBQUVRLE1BQUYsQ0FBUyxFQUFULEVBQVlDLENBQVosRUFBY04sRUFBRUUsSUFBRixFQUFkLEVBQXVCLG9CQUFpQkosQ0FBakIseUNBQWlCQSxDQUFqQixNQUFvQkEsQ0FBM0MsQ0FBTixDQUFvREUsRUFBRUUsSUFBRixDQUFPQyxDQUFQLEVBQVNJLElBQUUsSUFBSUgsQ0FBSixDQUFNSixDQUFOLEVBQVFDLENBQVIsQ0FBWDtBQUF1QixXQUFHLFlBQVUsT0FBT0gsQ0FBcEIsRUFBc0I7QUFBQyxZQUFHLEtBQUssQ0FBTCxLQUFTUyxFQUFFVCxDQUFGLENBQVosRUFBaUIsTUFBTSxJQUFJRixLQUFKLENBQVUscUJBQW1CRSxDQUE3QixDQUFOLENBQXNDUyxFQUFFVCxDQUFGO0FBQU87QUFBQyxLQUF2TixDQUFQO0FBQWdPLE9BQUlLLElBQUUsZUFBTjtBQUFBLE1BQXNCRyxJQUFFLEVBQUNpQyxnQkFBZSxHQUFoQixFQUFvQkMsaUJBQWdCLDBCQUFwQyxFQUErREMsZUFBYyx3QkFBN0UsRUFBc0dDLGNBQWEsVUFBbkgsRUFBOEhDLFlBQVcsU0FBekksRUFBbUpDLFlBQVcsVUFBOUosRUFBeEI7QUFBQSxNQUFrTTVDLElBQUUsRUFBQ0UsTUFBSyxNQUFOLEVBQWEyQyxXQUFVLGdCQUF2QixFQUF3Q0MsUUFBTyxhQUEvQyxFQUE2REMsTUFBSyxXQUFsRSxFQUE4RUMsUUFBTyxhQUFyRixFQUFtR0MsT0FBTSxZQUF6RyxFQUFwTTtBQUFBLE1BQTJUMUMsSUFBRSxFQUFDc0MsV0FBVSxlQUFYLEVBQTdUO0FBQUEsTUFBeVY1QyxJQUFFLEVBQUM0QyxXQUFVLHFCQUFYLEVBQWlDSyxVQUFTLG9CQUExQyxFQUErREMsU0FBUSxtQkFBdkUsRUFBM1Y7QUFBQSxNQUF1Yi9DLElBQUUsU0FBRkEsQ0FBRSxDQUFTUCxDQUFULEVBQVdDLENBQVgsRUFBYTtBQUFDLFNBQUttQixPQUFMLEdBQWFwQixDQUFiLEVBQWUsS0FBS3FCLE9BQUwsR0FBYXBCLENBQTVCLEVBQThCLEtBQUt1QixlQUFMLEVBQTlCO0FBQXFELEdBQTVmLENBQTZmakIsRUFBRW1CLFNBQUYsQ0FBWTZCLE1BQVosR0FBbUIsWUFBVTtBQUFDdkQsTUFBRSxLQUFLb0IsT0FBUCxFQUFnQm9DLEVBQWhCLENBQW1CckQsRUFBRTZDLFNBQXJCLElBQWdDLEtBQUtTLE1BQUwsRUFBaEMsR0FBOEMsS0FBS0MsUUFBTCxFQUE5QztBQUE4RCxHQUE1RixFQUE2Rm5ELEVBQUVtQixTQUFGLENBQVkrQixNQUFaLEdBQW1CLFlBQVU7QUFBQyxRQUFJeEQsSUFBRUQsRUFBRTJELEtBQUYsQ0FBUXZELEVBQUVpRCxRQUFWLENBQU47QUFBQSxRQUEwQi9DLElBQUUsS0FBS2UsT0FBTCxDQUFhd0IsWUFBekM7QUFBQSxRQUFzRHBDLElBQUUsS0FBS1ksT0FBTCxDQUFheUIsVUFBckUsQ0FBZ0Y5QyxFQUFFLEtBQUtvQixPQUFQLEVBQWdCd0MsV0FBaEIsQ0FBNEJsRCxFQUFFc0MsU0FBOUIsR0FBeUNoRCxFQUFFLEtBQUtvQixPQUFQLEVBQWdCeUMsUUFBaEIsQ0FBeUIxRCxFQUFFOEMsTUFBRixHQUFTLElBQVQsR0FBYzlDLEVBQUUrQyxJQUFoQixHQUFxQixJQUFyQixHQUEwQi9DLEVBQUVnRCxNQUFyRCxFQUE2RFUsUUFBN0QsQ0FBc0UxRCxFQUFFaUQsS0FBeEUsRUFBK0VVLElBQS9FLENBQW9GLE1BQUlyRCxDQUF4RixFQUEyRm1ELFdBQTNGLENBQXVHbkQsQ0FBdkcsRUFBMEdzRCxRQUExRyxDQUFtSHpELENBQW5ILENBQXpDLEVBQStKTixFQUFFLEtBQUtvQixPQUFQLEVBQWdCeUMsUUFBaEIsQ0FBeUIxRCxFQUFFK0MsSUFBRixHQUFPLElBQVAsR0FBWS9DLEVBQUVnRCxNQUF2QyxFQUErQ2EsU0FBL0MsQ0FBeUQsS0FBSzNDLE9BQUwsQ0FBYXFCLGNBQXRFLEVBQXFGLFlBQVU7QUFBQzFDLFFBQUUsS0FBS29CLE9BQVAsRUFBZ0JQLE9BQWhCLENBQXdCWixDQUF4QjtBQUEyQixLQUF0QyxDQUF1QytCLElBQXZDLENBQTRDLElBQTVDLENBQXJGLENBQS9KO0FBQXVTLEdBQWxmLEVBQW1mekIsRUFBRW1CLFNBQUYsQ0FBWWdDLFFBQVosR0FBcUIsWUFBVTtBQUFDLFFBQUl6RCxJQUFFRCxFQUFFMkQsS0FBRixDQUFRdkQsRUFBRTRDLFNBQVYsQ0FBTjtBQUFBLFFBQTJCMUMsSUFBRSxLQUFLZSxPQUFMLENBQWF3QixZQUExQztBQUFBLFFBQXVEcEMsSUFBRSxLQUFLWSxPQUFMLENBQWF5QixVQUF0RSxDQUFpRjlDLEVBQUUsS0FBS29CLE9BQVAsRUFBZ0J5QyxRQUFoQixDQUF5QjFELEVBQUU4QyxNQUFGLEdBQVMsSUFBVCxHQUFjOUMsRUFBRStDLElBQWhCLEdBQXFCLElBQXJCLEdBQTBCL0MsRUFBRWdELE1BQXJELEVBQTZEVSxRQUE3RCxDQUFzRTFELEVBQUVpRCxLQUF4RSxFQUErRVUsSUFBL0UsQ0FBb0YsTUFBSXhELENBQXhGLEVBQTJGc0QsV0FBM0YsQ0FBdUd0RCxDQUF2RyxFQUEwR3lELFFBQTFHLENBQW1IdEQsQ0FBbkgsR0FBc0hULEVBQUUsS0FBS29CLE9BQVAsRUFBZ0J5QyxRQUFoQixDQUF5QjFELEVBQUUrQyxJQUFGLEdBQU8sSUFBUCxHQUFZL0MsRUFBRWdELE1BQXZDLEVBQStDYyxPQUEvQyxDQUF1RCxLQUFLNUMsT0FBTCxDQUFhcUIsY0FBcEUsRUFBbUYsWUFBVTtBQUFDMUMsUUFBRSxLQUFLb0IsT0FBUCxFQUFnQjJDLFFBQWhCLENBQXlCckQsRUFBRXNDLFNBQTNCLEdBQXNDaEQsRUFBRSxLQUFLb0IsT0FBUCxFQUFnQlAsT0FBaEIsQ0FBd0JaLENBQXhCLENBQXRDO0FBQWlFLEtBQTVFLENBQTZFK0IsSUFBN0UsQ0FBa0YsSUFBbEYsQ0FBbkYsQ0FBdEg7QUFBa1MsR0FBdDRCLEVBQXU0QnpCLEVBQUVtQixTQUFGLENBQVlVLE1BQVosR0FBbUIsWUFBVTtBQUFDLFFBQUluQyxJQUFFRCxFQUFFMkQsS0FBRixDQUFRdkQsRUFBRWtELE9BQVYsQ0FBTixDQUF5QnRELEVBQUUsS0FBS29CLE9BQVAsRUFBZ0I2QyxPQUFoQixDQUF3QixLQUFLNUMsT0FBTCxDQUFhcUIsY0FBckMsRUFBb0QsWUFBVTtBQUFDMUMsUUFBRSxLQUFLb0IsT0FBUCxFQUFnQlAsT0FBaEIsQ0FBd0JaLENBQXhCLEdBQTJCRCxFQUFFLEtBQUtvQixPQUFQLEVBQWdCZ0IsTUFBaEIsRUFBM0I7QUFBb0QsS0FBL0QsQ0FBZ0VKLElBQWhFLENBQXFFLElBQXJFLENBQXBEO0FBQWdJLEdBQTlqQyxFQUErakN6QixFQUFFbUIsU0FBRixDQUFZRixlQUFaLEdBQTRCLFlBQVU7QUFBQyxRQUFJdkIsSUFBRSxJQUFOLENBQVdELEVBQUUsS0FBS29CLE9BQVAsRUFBZ0JhLEVBQWhCLENBQW1CLE9BQW5CLEVBQTJCLEtBQUtaLE9BQUwsQ0FBYXNCLGVBQXhDLEVBQXdELFVBQVNyQyxDQUFULEVBQVc7QUFBQyxhQUFPQSxLQUFHQSxFQUFFNEIsY0FBRixFQUFILEVBQXNCakMsRUFBRXNELE1BQUYsQ0FBU3ZELEVBQUUsSUFBRixDQUFULENBQXRCLEVBQXdDLENBQUMsQ0FBaEQ7QUFBa0QsS0FBdEgsR0FBd0hBLEVBQUUsS0FBS29CLE9BQVAsRUFBZ0JhLEVBQWhCLENBQW1CLE9BQW5CLEVBQTJCLEtBQUtaLE9BQUwsQ0FBYXVCLGFBQXhDLEVBQXNELFVBQVN0QyxDQUFULEVBQVc7QUFBQyxhQUFPQSxLQUFHQSxFQUFFNEIsY0FBRixFQUFILEVBQXNCakMsRUFBRW1DLE1BQUYsQ0FBU3BDLEVBQUUsSUFBRixDQUFULENBQXRCLEVBQXdDLENBQUMsQ0FBaEQ7QUFBa0QsS0FBcEgsQ0FBeEg7QUFBOE8sR0FBLzFDLENBQWcyQyxJQUFJa0UsSUFBRWxFLEVBQUVxQyxFQUFGLENBQUs4QixTQUFYLENBQXFCbkUsRUFBRXFDLEVBQUYsQ0FBSzhCLFNBQUwsR0FBZWxFLENBQWYsRUFBaUJELEVBQUVxQyxFQUFGLENBQUs4QixTQUFMLENBQWU1QixXQUFmLEdBQTJCaEMsQ0FBNUMsRUFBOENQLEVBQUVxQyxFQUFGLENBQUs4QixTQUFMLENBQWUzQixVQUFmLEdBQTBCLFlBQVU7QUFBQyxXQUFPeEMsRUFBRXFDLEVBQUYsQ0FBSzhCLFNBQUwsR0FBZUQsQ0FBZixFQUFpQixJQUF4QjtBQUE2QixHQUFoSCxFQUFpSGxFLEVBQUV5QyxNQUFGLEVBQVVSLEVBQVYsQ0FBYSxNQUFiLEVBQW9CLFlBQVU7QUFBQ2pDLE1BQUVHLEVBQUVFLElBQUosRUFBVUgsSUFBVixDQUFlLFlBQVU7QUFBQ0QsUUFBRTJCLElBQUYsQ0FBTzVCLEVBQUUsSUFBRixDQUFQO0FBQWdCLEtBQTFDO0FBQTRDLEdBQTNFLENBQWpIO0FBQThMLENBQXZ6RSxDQUF3ekVGLE1BQXh6RSxDQUFqbkQsRUFBaTdILFVBQVNFLENBQVQsRUFBVztBQUFDO0FBQWEsV0FBU0MsQ0FBVCxDQUFXQSxDQUFYLEVBQWE7QUFBQyxXQUFPLEtBQUtDLElBQUwsQ0FBVSxZQUFVO0FBQUMsVUFBSUMsSUFBRUgsRUFBRSxJQUFGLENBQU47QUFBQSxVQUFjVSxJQUFFUCxFQUFFRSxJQUFGLENBQU9DLENBQVAsQ0FBaEIsQ0FBMEIsSUFBRyxDQUFDSSxDQUFKLEVBQU07QUFBQyxZQUFJTixJQUFFSixFQUFFUSxNQUFGLENBQVMsRUFBVCxFQUFZQyxDQUFaLEVBQWNOLEVBQUVFLElBQUYsRUFBZCxFQUF1QixvQkFBaUJKLENBQWpCLHlDQUFpQkEsQ0FBakIsTUFBb0JBLENBQTNDLENBQU4sQ0FBb0RFLEVBQUVFLElBQUYsQ0FBT0MsQ0FBUCxFQUFTSSxJQUFFLElBQUlILENBQUosQ0FBTUosQ0FBTixFQUFRQyxDQUFSLENBQVg7QUFBdUIsbUJBQVUsT0FBT0gsQ0FBakIsSUFBb0JTLEVBQUU2QyxNQUFGLEVBQXBCO0FBQStCLEtBQWhLLENBQVA7QUFBeUssT0FBSWpELElBQUUsb0JBQU47QUFBQSxNQUEyQkcsSUFBRSxFQUFDMkQsT0FBTSxDQUFDLENBQVIsRUFBN0I7QUFBQSxNQUF3Q2pFLElBQUUsRUFBQ2tFLFNBQVEsa0JBQVQsRUFBNEJoRSxNQUFLLGlDQUFqQyxFQUFtRWlFLE1BQUssdUJBQXhFLEVBQWdHQyxJQUFHLHFCQUFuRyxFQUF5SEMsU0FBUSxVQUFqSSxFQUE0STFELFNBQVEsa0JBQXBKLEVBQXVLMkQsT0FBTSxlQUE3SyxFQUExQztBQUFBLE1BQXdPL0QsSUFBRSxFQUFDNEQsTUFBSyxzQkFBTixFQUE2QkksT0FBTSxPQUFuQyxFQUExTztBQUFBLE1BQXNSdEUsSUFBRSxFQUFDNEMsV0FBVSwwQkFBWCxFQUFzQ0ssVUFBUyx5QkFBL0MsRUFBeFI7QUFBQSxNQUFrVzlDLElBQUUsU0FBRkEsQ0FBRSxDQUFTUCxDQUFULEVBQVdDLENBQVgsRUFBYTtBQUFDLFNBQUttQixPQUFMLEdBQWFwQixDQUFiLEVBQWUsS0FBS3FCLE9BQUwsR0FBYXBCLENBQTVCLEVBQThCLEtBQUswRSxlQUFMLEdBQXFCLENBQUMsQ0FBcEQsRUFBc0QsS0FBS0MsSUFBTCxFQUF0RDtBQUFrRSxHQUFwYixDQUFxYnJFLEVBQUVtQixTQUFGLENBQVlrRCxJQUFaLEdBQWlCLFlBQVU7QUFBQzVFLE1BQUUsS0FBS29CLE9BQVAsRUFBZ0JvQyxFQUFoQixDQUFtQnJELEVBQUVFLElBQXJCLEtBQTRCTCxFQUFFLElBQUYsRUFBUWlDLEVBQVIsQ0FBVyxPQUFYLEVBQW1CLEtBQUtzQixNQUF4QixDQUE1QixFQUE0RCxLQUFLc0IsR0FBTCxFQUE1RCxFQUF1RTdFLEVBQUV5QyxNQUFGLEVBQVVxQyxNQUFWLENBQWlCLFlBQVU7QUFBQyxXQUFLRCxHQUFMO0FBQVcsS0FBdEIsQ0FBdUI3QyxJQUF2QixDQUE0QixJQUE1QixDQUFqQixDQUF2RTtBQUEySCxHQUF2SixFQUF3SnpCLEVBQUVtQixTQUFGLENBQVk2QixNQUFaLEdBQW1CLFVBQVN0RCxDQUFULEVBQVc7QUFBQ0EsU0FBR0EsRUFBRWlDLGNBQUYsRUFBSCxFQUFzQixLQUFLMkMsR0FBTCxFQUF0QixFQUFpQzdFLEVBQUVHLEVBQUVrRSxPQUFKLEVBQWFiLEVBQWIsQ0FBZ0JyRCxFQUFFbUUsSUFBbEIsS0FBeUJ0RSxFQUFFLE1BQUYsRUFBVXdELEVBQVYsQ0FBYXJELEVBQUVtRSxJQUFmLENBQXpCLEdBQThDLEtBQUtaLFFBQUwsRUFBOUMsR0FBOEQsS0FBS0QsTUFBTCxFQUEvRjtBQUE2RyxHQUFwUyxFQUFxU2xELEVBQUVtQixTQUFGLENBQVkrQixNQUFaLEdBQW1CLFlBQVU7QUFBQyxTQUFLcEMsT0FBTCxDQUFhK0MsS0FBYixHQUFtQnBFLEVBQUVHLEVBQUVrRSxPQUFKLEVBQWFOLFFBQWIsQ0FBc0JyRCxFQUFFNEQsSUFBeEIsQ0FBbkIsR0FBaUR0RSxFQUFFLE1BQUYsRUFBVStELFFBQVYsQ0FBbUJyRCxFQUFFNEQsSUFBckIsQ0FBakQsRUFBNEV0RSxFQUFFLEtBQUtvQixPQUFQLEVBQWdCUCxPQUFoQixDQUF3QmIsRUFBRTJELEtBQUYsQ0FBUXZELEVBQUVpRCxRQUFWLENBQXhCLENBQTVFO0FBQXlILEdBQTViLEVBQTZiOUMsRUFBRW1CLFNBQUYsQ0FBWWdDLFFBQVosR0FBcUIsWUFBVTtBQUFDMUQsTUFBRSxXQUFTRyxFQUFFa0UsT0FBYixFQUFzQlQsV0FBdEIsQ0FBa0NsRCxFQUFFNEQsSUFBcEMsR0FBMEN0RSxFQUFFLEtBQUtvQixPQUFQLEVBQWdCUCxPQUFoQixDQUF3QmIsRUFBRTJELEtBQUYsQ0FBUXZELEVBQUU0QyxTQUFWLENBQXhCLENBQTFDO0FBQXdGLEdBQXJqQixFQUFzakJ6QyxFQUFFbUIsU0FBRixDQUFZbUQsR0FBWixHQUFnQixZQUFVO0FBQUM3RSxNQUFFLE1BQUYsRUFBVXdELEVBQVYsQ0FBYXJELEVBQUVzRSxLQUFmLEtBQXVCLEtBQUtNLFlBQUwsQ0FBa0IvRSxFQUFFRyxFQUFFb0UsRUFBSixDQUFsQixDQUF2QjtBQUFrRCxHQUFub0IsRUFBb29CaEUsRUFBRW1CLFNBQUYsQ0FBWXFELFlBQVosR0FBeUIsVUFBUzlFLENBQVQsRUFBVztBQUFDQSxNQUFFK0UsR0FBRixDQUFNLEVBQUNDLFVBQVMsVUFBVixFQUFxQkMsUUFBT2xGLEVBQUVHLEVBQUVxRSxPQUFKLEVBQWFVLE1BQWIsRUFBNUIsRUFBTjtBQUEwRCxHQUFudUIsQ0FBb3VCLElBQUloQixJQUFFbEUsRUFBRXFDLEVBQUYsQ0FBSzhDLGNBQVgsQ0FBMEJuRixFQUFFcUMsRUFBRixDQUFLOEMsY0FBTCxHQUFvQmxGLENBQXBCLEVBQXNCRCxFQUFFcUMsRUFBRixDQUFLOEMsY0FBTCxDQUFvQjVDLFdBQXBCLEdBQWdDaEMsQ0FBdEQsRUFBd0RQLEVBQUVxQyxFQUFGLENBQUs4QyxjQUFMLENBQW9CM0MsVUFBcEIsR0FBK0IsWUFBVTtBQUFDLFdBQU94QyxFQUFFcUMsRUFBRixDQUFLOEMsY0FBTCxHQUFvQmpCLENBQXBCLEVBQXNCLElBQTdCO0FBQWtDLEdBQXBJLEVBQXFJbEUsRUFBRW9GLFFBQUYsRUFBWW5ELEVBQVosQ0FBZSxPQUFmLEVBQXVCOUIsRUFBRUUsSUFBekIsRUFBOEIsVUFBU0MsQ0FBVCxFQUFXO0FBQUNBLFNBQUdBLEVBQUU0QixjQUFGLEVBQUgsRUFBc0JqQyxFQUFFMkIsSUFBRixDQUFPNUIsRUFBRSxJQUFGLENBQVAsRUFBZSxRQUFmLENBQXRCO0FBQStDLEdBQXpGLENBQXJJO0FBQWdPLENBQW5tRCxDQUFvbURGLE1BQXBtRCxDQUFqN0gsRUFBNmhMLFVBQVNFLENBQVQsRUFBVztBQUFDO0FBQWEsV0FBU0MsQ0FBVCxDQUFXQSxDQUFYLEVBQWE7QUFBQyxXQUFPLEtBQUtDLElBQUwsQ0FBVSxZQUFVO0FBQUMsVUFBSU8sSUFBRVQsRUFBRSxJQUFGLENBQU47QUFBQSxVQUFjRyxJQUFFTSxFQUFFSixJQUFGLENBQU9DLENBQVAsQ0FBaEIsQ0FBMEJILEtBQUdNLEVBQUVKLElBQUYsQ0FBT0MsQ0FBUCxFQUFTSCxJQUFFLElBQUlPLENBQUosQ0FBTUQsQ0FBTixDQUFYLENBQUgsRUFBd0IsWUFBVSxPQUFPUixDQUFqQixJQUFvQkUsRUFBRW9ELE1BQUYsQ0FBUzlDLENBQVQsQ0FBNUM7QUFBd0QsS0FBdkcsQ0FBUDtBQUFnSCxPQUFJSCxJQUFFLGdCQUFOO0FBQUEsTUFBdUJHLElBQUUsRUFBQ0osTUFBSyxrQ0FBTixFQUF5Q2dGLEtBQUksY0FBN0MsRUFBekI7QUFBQSxNQUFzRmxGLElBQUUsRUFBQ21FLE1BQUssMkJBQU4sRUFBeEY7QUFBQSxNQUEySDVELElBQUUsU0FBRkEsQ0FBRSxDQUFTVixDQUFULEVBQVc7QUFBQyxTQUFLb0IsT0FBTCxHQUFhcEIsQ0FBYjtBQUFlLEdBQXhKLENBQXlKVSxFQUFFZ0IsU0FBRixDQUFZNkIsTUFBWixHQUFtQixVQUFTdkQsQ0FBVCxFQUFXO0FBQUNBLE1BQUVzRixPQUFGLENBQVU3RSxFQUFFNEUsR0FBWixFQUFpQkUsS0FBakIsR0FBeUJDLFdBQXpCLENBQXFDckYsRUFBRW1FLElBQXZDO0FBQTZDLEdBQTVFLENBQTZFLElBQUlsRSxJQUFFSixFQUFFcUMsRUFBRixDQUFLb0QsVUFBWCxDQUFzQnpGLEVBQUVxQyxFQUFGLENBQUtvRCxVQUFMLEdBQWdCeEYsQ0FBaEIsRUFBa0JELEVBQUVxQyxFQUFGLENBQUtvRCxVQUFMLENBQWdCbEQsV0FBaEIsR0FBNEI3QixDQUE5QyxFQUFnRFYsRUFBRXFDLEVBQUYsQ0FBS29ELFVBQUwsQ0FBZ0JqRCxVQUFoQixHQUEyQixZQUFVO0FBQUMsV0FBT3hDLEVBQUVxQyxFQUFGLENBQUtvRCxVQUFMLEdBQWdCckYsQ0FBaEIsRUFBa0IsSUFBekI7QUFBOEIsR0FBcEgsRUFBcUhKLEVBQUVvRixRQUFGLEVBQVluRCxFQUFaLENBQWUsT0FBZixFQUF1QnhCLEVBQUVKLElBQXpCLEVBQThCLFVBQVNDLENBQVQsRUFBVztBQUFDQSxTQUFHQSxFQUFFNEIsY0FBRixFQUFILEVBQXNCakMsRUFBRTJCLElBQUYsQ0FBTzVCLEVBQUUsSUFBRixDQUFQLEVBQWUsUUFBZixDQUF0QjtBQUErQyxHQUF6RixDQUFySDtBQUFnTixDQUFubUIsQ0FBb21CRixNQUFwbUIsQ0FBN2hMLEVBQXlvTSxVQUFTRSxDQUFULEVBQVc7QUFBQztBQUFhLFdBQVNDLENBQVQsQ0FBV0EsQ0FBWCxFQUFhO0FBQUMsV0FBTyxLQUFLQyxJQUFMLENBQVUsWUFBVTtBQUFDLFVBQUlDLElBQUVILEVBQUUsSUFBRixDQUFOO0FBQUEsVUFBY1UsSUFBRVAsRUFBRUUsSUFBRixDQUFPQyxDQUFQLENBQWhCLENBQTBCLElBQUcsQ0FBQ0ksQ0FBSixFQUFNO0FBQUMsWUFBSUgsSUFBRVAsRUFBRVEsTUFBRixDQUFTLEVBQVQsRUFBWUMsQ0FBWixFQUFjTixFQUFFRSxJQUFGLEVBQWQsRUFBdUIsb0JBQWlCSixDQUFqQix5Q0FBaUJBLENBQWpCLE1BQW9CQSxDQUEzQyxDQUFOLENBQW9ERSxFQUFFRSxJQUFGLENBQU9DLENBQVAsRUFBU0ksSUFBRSxJQUFJTixDQUFKLENBQU1HLENBQU4sQ0FBWDtBQUFxQixXQUFHLFlBQVUsT0FBT04sQ0FBcEIsRUFBc0I7QUFBQyxZQUFHLEtBQUssQ0FBTCxLQUFTUyxFQUFFVCxDQUFGLENBQVosRUFBaUIsTUFBTSxJQUFJRixLQUFKLENBQVUscUJBQW1CRSxDQUE3QixDQUFOLENBQXNDUyxFQUFFVCxDQUFGO0FBQU87QUFBQyxLQUFyTixDQUFQO0FBQThOLE9BQUlLLElBQUUsWUFBTjtBQUFBLE1BQW1CRyxJQUFFLEVBQUNpRixZQUFXLENBQUMsQ0FBYixFQUFlQyxhQUFZLENBQUMsQ0FBNUIsRUFBckI7QUFBQSxNQUFvRHhGLElBQUUsRUFBQ3FFLFNBQVEsVUFBVCxFQUFvQm9CLGdCQUFlLGtCQUFuQyxFQUFzREMsYUFBWSxlQUFsRSxFQUFrRkMsWUFBVyxjQUE3RixFQUE0R0MsWUFBVyxjQUF2SCxFQUFzSTFCLFNBQVEsVUFBOUksRUFBeUpjLGdCQUFlLGtCQUF4SyxFQUEyTFQsT0FBTSxRQUFqTSxFQUEwTXNCLGFBQVksZUFBdE4sRUFBc09DLE1BQUssb0JBQTNPLEVBQXREO0FBQUEsTUFBdVR2RixJQUFFLEVBQUNnRSxPQUFNLE9BQVAsRUFBZXdCLGdCQUFlLGlCQUE5QixFQUF6VDtBQUFBLE1BQTBXOUYsSUFBRSxTQUFGQSxDQUFFLENBQVNKLENBQVQsRUFBVztBQUFDLFNBQUtxQixPQUFMLEdBQWFyQixDQUFiLEVBQWUsS0FBS21HLFlBQUwsR0FBa0IsQ0FBQyxDQUFsQyxFQUFvQyxLQUFLQyxRQUFMLEVBQXBDO0FBQW9ELEdBQTVhLENBQTZhaEcsRUFBRXNCLFNBQUYsQ0FBWTBFLFFBQVosR0FBcUIsWUFBVTtBQUFDLFNBQUt2QixHQUFMLElBQVcsS0FBS3dCLFVBQUwsRUFBWCxFQUE2QnJHLEVBQUUsTUFBRixFQUFVNEQsV0FBVixDQUFzQmxELEVBQUV3RixjQUF4QixDQUE3QixFQUFxRSxLQUFLN0UsT0FBTCxDQUFhc0UsV0FBYixJQUEwQjNGLEVBQUUsaUJBQWVHLEVBQUVxRSxPQUFuQixFQUE0QlEsR0FBNUIsQ0FBZ0MsRUFBQ0UsUUFBTyxNQUFSLEVBQWUsY0FBYSxNQUE1QixFQUFoQyxDQUEvRixFQUFvSyxLQUFLaUIsWUFBTCxLQUFvQm5HLEVBQUV5QyxNQUFGLEVBQVVxQyxNQUFWLENBQWlCLFlBQVU7QUFBQyxXQUFLRCxHQUFMLElBQVcsS0FBS3dCLFVBQUwsRUFBWCxFQUE2QnJHLEVBQUVHLEVBQUU4RixJQUFGLEdBQU8sSUFBUCxHQUFZOUYsRUFBRWtFLE9BQWhCLEVBQXlCaUMsR0FBekIsQ0FBNkIsaUZBQTdCLEVBQStHLFlBQVU7QUFBQyxhQUFLekIsR0FBTCxJQUFXLEtBQUt3QixVQUFMLEVBQVg7QUFBNkIsT0FBeEMsQ0FBeUNyRSxJQUF6QyxDQUE4QyxJQUE5QyxDQUEvRyxDQUE3QjtBQUFpTSxLQUE1TSxDQUE2TUEsSUFBN00sQ0FBa04sSUFBbE4sQ0FBakIsR0FBME8sS0FBS21FLFlBQUwsR0FBa0IsQ0FBQyxDQUFqUixDQUFwSyxFQUF3Ym5HLEVBQUVHLEVBQUU2RixXQUFKLEVBQWlCL0QsRUFBakIsQ0FBb0IsZUFBcEIsRUFBb0MsWUFBVTtBQUFDLFdBQUs0QyxHQUFMLElBQVcsS0FBS3dCLFVBQUwsRUFBWDtBQUE2QixLQUF4QyxDQUF5Q3JFLElBQXpDLENBQThDLElBQTlDLENBQXBDLENBQXhiLEVBQWloQmhDLEVBQUVHLEVBQUU2RixXQUFKLEVBQWlCL0QsRUFBakIsQ0FBb0IsZ0JBQXBCLEVBQXFDLFlBQVU7QUFBQyxXQUFLNEMsR0FBTCxJQUFXLEtBQUt3QixVQUFMLEVBQVg7QUFBNkIsS0FBeEMsQ0FBeUNyRSxJQUF6QyxDQUE4QyxJQUE5QyxDQUFyQyxDQUFqaEI7QUFBMm1CLEdBQTNvQixFQUE0b0I1QixFQUFFc0IsU0FBRixDQUFZbUQsR0FBWixHQUFnQixZQUFVO0FBQUM3RSxNQUFFRyxFQUFFMEYsV0FBRixHQUFjLEtBQWQsR0FBb0IxRixFQUFFcUUsT0FBeEIsRUFBaUNRLEdBQWpDLENBQXFDLFVBQXJDLEVBQWdELFFBQWhELEVBQTBELElBQUkvRSxJQUFFRCxFQUFFRyxFQUFFMkYsVUFBSixFQUFnQlMsV0FBaEIsTUFBK0IsQ0FBckM7QUFBQSxRQUF1Q2pHLElBQUVOLEVBQUVHLEVBQUU0RixVQUFKLEVBQWdCUSxXQUFoQixLQUE4QnRHLENBQXZFO0FBQUEsUUFBeUVRLElBQUVULEVBQUV5QyxNQUFGLEVBQVV5QyxNQUFWLEVBQTNFO0FBQUEsUUFBOEY5RSxJQUFFSixFQUFFRyxFQUFFa0UsT0FBSixFQUFhYSxNQUFiLE1BQXVCLENBQXZILENBQXlILElBQUdsRixFQUFFLE1BQUYsRUFBVXdHLFFBQVYsQ0FBbUI5RixFQUFFZ0UsS0FBckIsQ0FBSCxFQUErQjFFLEVBQUVHLEVBQUV5RixjQUFKLEVBQW9CWixHQUFwQixDQUF3QixZQUF4QixFQUFxQ3ZFLElBQUVSLENBQXZDLEVBQS9CLEtBQTZFO0FBQUMsVUFBSU0sQ0FBSixDQUFNRSxLQUFHTCxDQUFILElBQU1KLEVBQUVHLEVBQUV5RixjQUFKLEVBQW9CWixHQUFwQixDQUF3QixZQUF4QixFQUFxQ3ZFLElBQUVILENBQXZDLEdBQTBDQyxJQUFFRSxJQUFFSCxDQUFwRCxLQUF3RE4sRUFBRUcsRUFBRXlGLGNBQUosRUFBb0JaLEdBQXBCLENBQXdCLFlBQXhCLEVBQXFDNUUsQ0FBckMsR0FBd0NHLElBQUVILENBQWxHLEVBQXFHLElBQUk4RCxJQUFFbEUsRUFBRUcsRUFBRWdGLGNBQUosQ0FBTixDQUEwQixLQUFLLENBQUwsS0FBU2pCLENBQVQsSUFBWUEsRUFBRWdCLE1BQUYsS0FBVzNFLENBQXZCLElBQTBCUCxFQUFFRyxFQUFFeUYsY0FBSixFQUFvQlosR0FBcEIsQ0FBd0IsWUFBeEIsRUFBcUNkLEVBQUVnQixNQUFGLEVBQXJDLENBQTFCO0FBQTJFO0FBQUMsR0FBem5DLEVBQTBuQzlFLEVBQUVzQixTQUFGLENBQVkyRSxVQUFaLEdBQXVCLFlBQVU7QUFBQyxRQUFHLENBQUNyRyxFQUFFLE1BQUYsRUFBVXdHLFFBQVYsQ0FBbUI5RixFQUFFZ0UsS0FBckIsQ0FBSixFQUFnQyxPQUFPLE1BQUssS0FBSyxDQUFMLEtBQVMxRSxFQUFFcUMsRUFBRixDQUFLb0UsVUFBZCxJQUEwQnpHLEVBQUVHLEVBQUVrRSxPQUFKLEVBQWFvQyxVQUFiLENBQXdCLEVBQUNDLFNBQVEsQ0FBQyxDQUFWLEVBQXhCLEVBQXNDeEIsTUFBdEMsQ0FBNkMsTUFBN0MsQ0FBL0IsQ0FBUCxDQUE0RixLQUFLN0QsT0FBTCxDQUFhcUUsVUFBYixJQUF5QixLQUFLLENBQUwsS0FBUzFGLEVBQUVxQyxFQUFGLENBQUtvRSxVQUF2QyxJQUFtRHpHLEVBQUVHLEVBQUVrRSxPQUFKLEVBQWFvQyxVQUFiLENBQXdCLEVBQUN2QixRQUFPbEYsRUFBRXlDLE1BQUYsRUFBVXlDLE1BQVYsS0FBbUJsRixFQUFFRyxFQUFFNEYsVUFBSixFQUFnQmIsTUFBaEIsRUFBbkIsR0FBNEMsSUFBcEQsRUFBeEIsQ0FBbkQ7QUFBc0ksR0FBOTVDLENBQSs1QyxJQUFJM0UsSUFBRVAsRUFBRXFDLEVBQUYsQ0FBS3NFLE1BQVgsQ0FBa0IzRyxFQUFFcUMsRUFBRixDQUFLc0UsTUFBTCxHQUFZMUcsQ0FBWixFQUFjRCxFQUFFcUMsRUFBRixDQUFLc0UsTUFBTCxDQUFZQyxVQUFaLEdBQXVCeEcsQ0FBckMsRUFBdUNKLEVBQUVxQyxFQUFGLENBQUtzRSxNQUFMLENBQVluRSxVQUFaLEdBQXVCLFlBQVU7QUFBQyxXQUFPeEMsRUFBRXFDLEVBQUYsQ0FBS3NFLE1BQUwsR0FBWXBHLENBQVosRUFBYyxJQUFyQjtBQUEwQixHQUFuRyxFQUFvR1AsRUFBRXlDLE1BQUYsRUFBVVIsRUFBVixDQUFhLE1BQWIsRUFBb0IsWUFBVTtBQUFDaEMsTUFBRTJCLElBQUYsQ0FBTzVCLEVBQUUsTUFBRixDQUFQO0FBQWtCLEdBQWpELENBQXBHO0FBQXVKLENBQTF2RSxDQUEydkVGLE1BQTN2RSxDQUF6b00sRUFBNDRRLFVBQVNFLENBQVQsRUFBVztBQUFDO0FBQWEsV0FBU0MsQ0FBVCxDQUFXQSxDQUFYLEVBQWE7QUFBQyxXQUFPLEtBQUtDLElBQUwsQ0FBVSxZQUFVO0FBQUMsVUFBSUMsSUFBRUgsRUFBRSxJQUFGLENBQU47QUFBQSxVQUFjVSxJQUFFUCxFQUFFRSxJQUFGLENBQU9DLENBQVAsQ0FBaEIsQ0FBMEIsSUFBRyxDQUFDSSxDQUFKLEVBQU07QUFBQyxZQUFJTixJQUFFSixFQUFFUSxNQUFGLENBQVMsRUFBVCxFQUFZQyxDQUFaLEVBQWNOLEVBQUVFLElBQUYsRUFBZCxFQUF1QixvQkFBaUJKLENBQWpCLHlDQUFpQkEsQ0FBakIsTUFBb0JBLENBQTNDLENBQU4sQ0FBb0RFLEVBQUVFLElBQUYsQ0FBT0MsQ0FBUCxFQUFTSSxJQUFFLElBQUlILENBQUosQ0FBTUgsQ0FBTixDQUFYO0FBQXFCLG9CQUFXSCxDQUFYLElBQWNTLEVBQUU2QyxNQUFGLEVBQWQ7QUFBeUIsS0FBeEosQ0FBUDtBQUFpSyxPQUFJakQsSUFBRSxjQUFOO0FBQUEsTUFBcUJHLElBQUUsRUFBQ29HLG9CQUFtQixHQUFwQixFQUF3QkMsZUFBYyxDQUFDLENBQXZDLEVBQXlDQyx1QkFBc0IsR0FBL0QsRUFBdkI7QUFBQSxNQUEyRjVHLElBQUUsRUFBQzZDLFdBQVUsbUJBQVgsRUFBK0JzQixNQUFLLGVBQXBDLEVBQW9EMEMsYUFBWSxlQUFoRSxFQUFnRnBCLGdCQUFlLGtCQUEvRixFQUFrSHFCLGFBQVksNkJBQTlILEVBQTRKQyxRQUFPLDJCQUFuSyxFQUErTEMsTUFBSyxlQUFwTSxFQUFvTjlELFVBQVMsNEJBQTdOLEVBQTBQK0QsYUFBWSxRQUF0USxFQUE3RjtBQUFBLE1BQTZXMUcsSUFBRSxFQUFDc0MsV0FBVSxrQkFBWCxFQUE4QnNCLE1BQUssY0FBbkMsRUFBa0Q2QyxNQUFLLGNBQXZELEVBQXNFOUQsVUFBUywyQkFBL0UsRUFBMkdnRSxlQUFjLDZCQUF6SCxFQUF1SkQsYUFBWSxPQUFuSyxFQUEvVztBQUFBLE1BQTJoQmhILElBQUUsRUFBQ2lELFVBQVMsbUJBQVYsRUFBOEJMLFdBQVUsb0JBQXhDLEVBQTdoQjtBQUFBLE1BQTJsQnpDLElBQUUsU0FBRkEsQ0FBRSxDQUFTUCxDQUFULEVBQVc7QUFBQyxTQUFLcUIsT0FBTCxHQUFhckIsQ0FBYixFQUFlLEtBQUs0RSxJQUFMLEVBQWY7QUFBMkIsR0FBcG9CLENBQXFvQnJFLEVBQUVtQixTQUFGLENBQVlrRCxJQUFaLEdBQWlCLFlBQVU7QUFBQyxLQUFDLEtBQUt2RCxPQUFMLENBQWF5RixhQUFiLElBQTRCOUcsRUFBRSxNQUFGLEVBQVV3RCxFQUFWLENBQWFyRCxFQUFFZ0gsSUFBRixHQUFPaEgsRUFBRWlILFdBQXRCLENBQTdCLE1BQW1FLEtBQUtOLGFBQUwsSUFBcUI5RyxFQUFFLE1BQUYsRUFBVStELFFBQVYsQ0FBbUJyRCxFQUFFMkcsYUFBckIsQ0FBeEYsR0FBNkhySCxFQUFFRyxFQUFFeUYsY0FBSixFQUFvQjBCLEtBQXBCLENBQTBCLFlBQVU7QUFBQ3RILFFBQUV5QyxNQUFGLEVBQVU4RSxLQUFWLE1BQW1CLEtBQUtsRyxPQUFMLENBQWF3RixrQkFBaEMsSUFBb0Q3RyxFQUFFLE1BQUYsRUFBVXdHLFFBQVYsQ0FBbUI5RixFQUFFNEQsSUFBckIsQ0FBcEQsSUFBZ0YsS0FBS2tELEtBQUwsRUFBaEY7QUFBNkYsS0FBeEcsQ0FBeUd4RixJQUF6RyxDQUE4RyxJQUE5RyxDQUExQixDQUE3SCxFQUE0UWhDLEVBQUVHLEVBQUU4RyxXQUFKLEVBQWlCSyxLQUFqQixDQUF1QixVQUFTdEgsQ0FBVCxFQUFXO0FBQUNBLFFBQUV5SCxlQUFGO0FBQW9CLEtBQXZELENBQTVRO0FBQXFVLEdBQWpXLEVBQWtXbEgsRUFBRW1CLFNBQUYsQ0FBWTZCLE1BQVosR0FBbUIsWUFBVTtBQUFDLFFBQUl0RCxJQUFFRCxFQUFFeUMsTUFBRixFQUFVOEUsS0FBVixFQUFOO0FBQUEsUUFBd0JqSCxJQUFFLENBQUNOLEVBQUUsTUFBRixFQUFVd0csUUFBVixDQUFtQjlGLEVBQUVzQyxTQUFyQixDQUEzQixDQUEyRC9DLEtBQUcsS0FBS29CLE9BQUwsQ0FBYXdGLGtCQUFoQixLQUFxQ3ZHLElBQUVOLEVBQUUsTUFBRixFQUFVd0csUUFBVixDQUFtQjlGLEVBQUU0RCxJQUFyQixDQUF2QyxHQUFtRWhFLElBQUUsS0FBS2tILEtBQUwsRUFBRixHQUFlLEtBQUtsRCxJQUFMLEVBQWxGO0FBQThGLEdBQXpoQixFQUEwaEIvRCxFQUFFbUIsU0FBRixDQUFZNEMsSUFBWixHQUFpQixZQUFVO0FBQUN0RSxNQUFFeUMsTUFBRixFQUFVOEUsS0FBVixLQUFrQixLQUFLbEcsT0FBTCxDQUFhd0Ysa0JBQS9CLEdBQWtEN0csRUFBRSxNQUFGLEVBQVU0RCxXQUFWLENBQXNCbEQsRUFBRXNDLFNBQXhCLEVBQW1DbkMsT0FBbkMsQ0FBMkNiLEVBQUUyRCxLQUFGLENBQVF2RCxFQUFFaUQsUUFBVixDQUEzQyxDQUFsRCxHQUFrSHJELEVBQUUsTUFBRixFQUFVK0QsUUFBVixDQUFtQnJELEVBQUU0RCxJQUFyQixFQUEyQnpELE9BQTNCLENBQW1DYixFQUFFMkQsS0FBRixDQUFRdkQsRUFBRWlELFFBQVYsQ0FBbkMsQ0FBbEg7QUFBMEssR0FBaHVCLEVBQWl1QjlDLEVBQUVtQixTQUFGLENBQVk4RixLQUFaLEdBQWtCLFlBQVU7QUFBQ3hILE1BQUV5QyxNQUFGLEVBQVU4RSxLQUFWLEtBQWtCLEtBQUtsRyxPQUFMLENBQWF3RixrQkFBL0IsR0FBa0Q3RyxFQUFFLE1BQUYsRUFBVStELFFBQVYsQ0FBbUJyRCxFQUFFc0MsU0FBckIsRUFBZ0NuQyxPQUFoQyxDQUF3Q2IsRUFBRTJELEtBQUYsQ0FBUXZELEVBQUU0QyxTQUFWLENBQXhDLENBQWxELEdBQWdIaEQsRUFBRSxNQUFGLEVBQVU0RCxXQUFWLENBQXNCbEQsRUFBRTRELElBQUYsR0FBTyxHQUFQLEdBQVc1RCxFQUFFc0MsU0FBbkMsRUFBOENuQyxPQUE5QyxDQUFzRGIsRUFBRTJELEtBQUYsQ0FBUXZELEVBQUU0QyxTQUFWLENBQXRELENBQWhIO0FBQTRMLEdBQTE3QixFQUEyN0J6QyxFQUFFbUIsU0FBRixDQUFZb0YsYUFBWixHQUEwQixZQUFVO0FBQUM5RyxNQUFFRyxFQUFFNkcsV0FBSixFQUFpQlUsS0FBakIsQ0FBdUIsWUFBVTtBQUFDMUgsUUFBRSxNQUFGLEVBQVV3RCxFQUFWLENBQWFyRCxFQUFFZ0gsSUFBRixHQUFPaEgsRUFBRTZDLFNBQXRCLEtBQWtDaEQsRUFBRXlDLE1BQUYsRUFBVThFLEtBQVYsS0FBa0IsS0FBS2xHLE9BQUwsQ0FBYXdGLGtCQUFqRSxJQUFxRixLQUFLcEQsTUFBTCxFQUFyRjtBQUFtRyxLQUE5RyxDQUErR3pCLElBQS9HLENBQW9ILElBQXBILENBQXZCLEVBQWlKLFlBQVU7QUFBQ2hDLFFBQUUsTUFBRixFQUFVd0QsRUFBVixDQUFhckQsRUFBRWtELFFBQWYsS0FBMEIsS0FBS0ssUUFBTCxFQUExQjtBQUEwQyxLQUFyRCxDQUFzRDFCLElBQXRELENBQTJELElBQTNELENBQWpKO0FBQW1OLEdBQW5yQyxFQUFvckN6QixFQUFFbUIsU0FBRixDQUFZK0IsTUFBWixHQUFtQixZQUFVO0FBQUNrRSxlQUFXLFlBQVU7QUFBQzNILFFBQUUsTUFBRixFQUFVNEQsV0FBVixDQUFzQmxELEVBQUVzQyxTQUF4QixFQUFtQ2UsUUFBbkMsQ0FBNENyRCxFQUFFMkMsUUFBOUM7QUFBd0QsS0FBOUUsRUFBK0UsS0FBS2hDLE9BQUwsQ0FBYTBGLHFCQUE1RjtBQUFtSCxHQUFyMEMsRUFBczBDeEcsRUFBRW1CLFNBQUYsQ0FBWWdDLFFBQVosR0FBcUIsWUFBVTtBQUFDaUUsZUFBVyxZQUFVO0FBQUMzSCxRQUFFLE1BQUYsRUFBVTRELFdBQVYsQ0FBc0JsRCxFQUFFMkMsUUFBeEIsRUFBa0NVLFFBQWxDLENBQTJDckQsRUFBRXNDLFNBQTdDO0FBQXdELEtBQTlFLEVBQStFLEtBQUszQixPQUFMLENBQWEwRixxQkFBNUY7QUFBbUgsR0FBejlDLENBQTA5QyxJQUFJN0MsSUFBRWxFLEVBQUVxQyxFQUFGLENBQUt1RixRQUFYLENBQW9CNUgsRUFBRXFDLEVBQUYsQ0FBS3VGLFFBQUwsR0FBYzNILENBQWQsRUFBZ0JELEVBQUVxQyxFQUFGLENBQUt1RixRQUFMLENBQWNyRixXQUFkLEdBQTBCaEMsQ0FBMUMsRUFBNENQLEVBQUVxQyxFQUFGLENBQUt1RixRQUFMLENBQWNwRixVQUFkLEdBQXlCLFlBQVU7QUFBQyxXQUFPeEMsRUFBRXFDLEVBQUYsQ0FBS3VGLFFBQUwsR0FBYzFELENBQWQsRUFBZ0IsSUFBdkI7QUFBNEIsR0FBNUcsRUFBNkdsRSxFQUFFb0YsUUFBRixFQUFZbkQsRUFBWixDQUFlLE9BQWYsRUFBdUI5QixFQUFFK0csTUFBekIsRUFBZ0MsVUFBUzVHLENBQVQsRUFBVztBQUFDQSxNQUFFNEIsY0FBRixJQUFtQmpDLEVBQUUyQixJQUFGLENBQU81QixFQUFFLElBQUYsQ0FBUCxFQUFlLFFBQWYsQ0FBbkI7QUFBNEMsR0FBeEYsQ0FBN0csRUFBdU1BLEVBQUV5QyxNQUFGLEVBQVVSLEVBQVYsQ0FBYSxNQUFiLEVBQW9CLFlBQVU7QUFBQ2hDLE1BQUUyQixJQUFGLENBQU81QixFQUFFRyxFQUFFK0csTUFBSixDQUFQO0FBQW9CLEdBQW5ELENBQXZNO0FBQTRQLENBQXZqRixDQUF3akZwSCxNQUF4akYsQ0FBNTRRLEVBQTQ4VixVQUFTRSxDQUFULEVBQVc7QUFBQztBQUFhLFdBQVNDLENBQVQsQ0FBV0EsQ0FBWCxFQUFhO0FBQUMsV0FBTyxLQUFLQyxJQUFMLENBQVUsWUFBVTtBQUFDLFVBQUlDLElBQUVILEVBQUUsSUFBRixDQUFOO0FBQUEsVUFBY1UsSUFBRVAsRUFBRUUsSUFBRixDQUFPQyxDQUFQLENBQWhCLENBQTBCLElBQUcsQ0FBQ0ksQ0FBSixFQUFNO0FBQUMsWUFBSUgsSUFBRVAsRUFBRVEsTUFBRixDQUFTLEVBQVQsRUFBWUMsQ0FBWixFQUFjTixFQUFFRSxJQUFGLEVBQWQsRUFBdUIsb0JBQWlCSixDQUFqQix5Q0FBaUJBLENBQWpCLE1BQW9CQSxDQUEzQyxDQUFOLENBQW9ERSxFQUFFRSxJQUFGLENBQU9DLENBQVAsRUFBU0ksSUFBRSxJQUFJTixDQUFKLENBQU1ELENBQU4sRUFBUUksQ0FBUixDQUFYO0FBQXVCLFdBQUcsWUFBVSxPQUFPRyxDQUFwQixFQUFzQjtBQUFDLFlBQUcsS0FBSyxDQUFMLEtBQVNBLEVBQUVULENBQUYsQ0FBWixFQUFpQixNQUFNLElBQUlGLEtBQUosQ0FBVSxxQkFBbUJFLENBQTdCLENBQU4sQ0FBc0NTLEVBQUVULENBQUY7QUFBTztBQUFDLEtBQXZOLENBQVA7QUFBZ08sT0FBSUssSUFBRSxjQUFOO0FBQUEsTUFBcUJHLElBQUUsRUFBQ29ILFNBQVEsaUJBQVM3SCxDQUFULEVBQVc7QUFBQyxhQUFPQSxDQUFQO0FBQVMsS0FBOUIsRUFBK0I4SCxXQUFVLG1CQUFTOUgsQ0FBVCxFQUFXO0FBQUMsYUFBT0EsQ0FBUDtBQUFTLEtBQTlELEVBQXZCO0FBQUEsTUFBdUZHLElBQUUsRUFBQ0UsTUFBSywyQkFBTixFQUF6RjtBQUFBLE1BQTRISyxJQUFFLEVBQUNxSCxNQUFLLE1BQU4sRUFBOUg7QUFBQSxNQUE0STNILElBQUUsU0FBRkEsQ0FBRSxDQUFTSixDQUFULEVBQVdDLENBQVgsRUFBYTtBQUFDLFNBQUttQixPQUFMLEdBQWFwQixDQUFiLEVBQWUsS0FBS3FCLE9BQUwsR0FBYXBCLENBQTVCLEVBQThCLEtBQUt1QixlQUFMLEVBQTlCO0FBQXFELEdBQWpOLENBQWtOcEIsRUFBRXNCLFNBQUYsQ0FBWTZCLE1BQVosR0FBbUIsVUFBU3ZELENBQVQsRUFBVztBQUFDLFFBQUdBLEVBQUVzRixPQUFGLENBQVVuRixFQUFFNkgsRUFBWixFQUFnQnpDLEtBQWhCLEdBQXdCQyxXQUF4QixDQUFvQzlFLEVBQUVxSCxJQUF0QyxHQUE0QyxDQUFDL0gsRUFBRWlJLElBQUYsQ0FBTyxTQUFQLENBQWhELEVBQWtFLE9BQU8sS0FBSyxLQUFLQyxPQUFMLENBQWFsSSxDQUFiLENBQVosQ0FBNEIsS0FBS21JLEtBQUwsQ0FBV25JLENBQVg7QUFBYyxHQUEzSSxFQUE0SUksRUFBRXNCLFNBQUYsQ0FBWXlHLEtBQVosR0FBa0IsVUFBU25JLENBQVQsRUFBVztBQUFDLFNBQUtxQixPQUFMLENBQWF3RyxPQUFiLENBQXFCakcsSUFBckIsQ0FBMEI1QixDQUExQjtBQUE2QixHQUF2TSxFQUF3TUksRUFBRXNCLFNBQUYsQ0FBWXdHLE9BQVosR0FBb0IsVUFBU2xJLENBQVQsRUFBVztBQUFDLFNBQUtxQixPQUFMLENBQWF5RyxTQUFiLENBQXVCbEcsSUFBdkIsQ0FBNEI1QixDQUE1QjtBQUErQixHQUF2USxFQUF3UUksRUFBRXNCLFNBQUYsQ0FBWUYsZUFBWixHQUE0QixZQUFVO0FBQUMsUUFBSXZCLElBQUUsSUFBTixDQUFXRCxFQUFFLEtBQUtvQixPQUFQLEVBQWdCYSxFQUFoQixDQUFtQixrQkFBbkIsRUFBc0MsZ0JBQXRDLEVBQXVELFlBQVU7QUFBQ2hDLFFBQUVzRCxNQUFGLENBQVN2RCxFQUFFLElBQUYsQ0FBVDtBQUFrQixLQUFwRjtBQUFzRixHQUFoWixDQUFpWixJQUFJTyxJQUFFUCxFQUFFcUMsRUFBRixDQUFLK0YsUUFBWCxDQUFvQnBJLEVBQUVxQyxFQUFGLENBQUsrRixRQUFMLEdBQWNuSSxDQUFkLEVBQWdCRCxFQUFFcUMsRUFBRixDQUFLK0YsUUFBTCxDQUFjN0YsV0FBZCxHQUEwQm5DLENBQTFDLEVBQTRDSixFQUFFcUMsRUFBRixDQUFLK0YsUUFBTCxDQUFjNUYsVUFBZCxHQUF5QixZQUFVO0FBQUMsV0FBT3hDLEVBQUVxQyxFQUFGLENBQUsrRixRQUFMLEdBQWM3SCxDQUFkLEVBQWdCLElBQXZCO0FBQTRCLEdBQTVHLEVBQTZHUCxFQUFFeUMsTUFBRixFQUFVUixFQUFWLENBQWEsTUFBYixFQUFvQixZQUFVO0FBQUNqQyxNQUFFRyxFQUFFRSxJQUFKLEVBQVVILElBQVYsQ0FBZSxZQUFVO0FBQUNELFFBQUUyQixJQUFGLENBQU81QixFQUFFLElBQUYsQ0FBUDtBQUFnQixLQUExQztBQUE0QyxHQUEzRSxDQUE3RztBQUEwTCxDQUF4akMsQ0FBeWpDRixNQUF6akMsQ0FBNThWLEVBQTZnWSxVQUFTRSxDQUFULEVBQVc7QUFBQztBQUFhLFdBQVNDLENBQVQsQ0FBV0EsQ0FBWCxFQUFhO0FBQUMsV0FBTyxLQUFLQyxJQUFMLENBQVUsWUFBVTtBQUFDLFVBQUlDLElBQUVILEVBQUUsSUFBRixDQUFOLENBQWMsSUFBRyxDQUFDRyxFQUFFRSxJQUFGLENBQU9DLENBQVAsQ0FBSixFQUFjO0FBQUMsWUFBSUksSUFBRVYsRUFBRVEsTUFBRixDQUFTLEVBQVQsRUFBWUMsQ0FBWixFQUFjTixFQUFFRSxJQUFGLEVBQWQsRUFBdUIsb0JBQWlCSixDQUFqQix5Q0FBaUJBLENBQWpCLE1BQW9CQSxDQUEzQyxDQUFOLENBQW9ERSxFQUFFRSxJQUFGLENBQU9DLENBQVAsRUFBUyxJQUFJQyxDQUFKLENBQU1KLENBQU4sRUFBUU8sQ0FBUixDQUFUO0FBQXFCO0FBQUMsS0FBNUgsQ0FBUDtBQUFxSSxPQUFJSixJQUFFLFVBQU47QUFBQSxNQUFpQkcsSUFBRSxFQUFDaUMsZ0JBQWUsR0FBaEIsRUFBb0IyRixXQUFVLENBQUMsQ0FBL0IsRUFBaUNDLFlBQVcsQ0FBQyxDQUE3QyxFQUErQ3pILFNBQVEsYUFBdkQsRUFBbkI7QUFBQSxNQUF5RlYsSUFBRSxFQUFDb0ksTUFBSyxPQUFOLEVBQWNDLFVBQVMsV0FBdkIsRUFBbUNDLGNBQWEsZ0JBQWhELEVBQWlFbkUsTUFBSyxxQkFBdEUsRUFBNEYwRCxJQUFHLElBQS9GLEVBQW9HM0gsTUFBSyxzQkFBekcsRUFBZ0lxSSxRQUFPLFNBQXZJLEVBQTNGO0FBQUEsTUFBNk9oSSxJQUFFLEVBQUM0RCxNQUFLLFdBQU4sRUFBa0JpRSxNQUFLLE1BQXZCLEVBQS9PO0FBQUEsTUFBOFFuSSxJQUFFLEVBQUM0QyxXQUFVLGdCQUFYLEVBQTRCSyxVQUFTLGVBQXJDLEVBQWhSO0FBQUEsTUFBc1U5QyxJQUFFLFNBQUZBLENBQUUsQ0FBU04sQ0FBVCxFQUFXSyxDQUFYLEVBQWE7QUFBQyxTQUFLYyxPQUFMLEdBQWFuQixDQUFiLEVBQWUsS0FBS29CLE9BQUwsR0FBYWYsQ0FBNUIsRUFBOEJOLEVBQUUsS0FBS29CLE9BQVAsRUFBZ0IyQyxRQUFoQixDQUF5QnJELEVBQUU2SCxJQUEzQixDQUE5QixFQUErRHZJLEVBQUVHLEVBQUVxSSxRQUFGLEdBQVdySSxFQUFFdUksTUFBZixFQUFzQixLQUFLdEgsT0FBM0IsRUFBb0MyQyxRQUFwQyxDQUE2Q3JELEVBQUU0RCxJQUEvQyxDQUEvRCxFQUFvSCxLQUFLOUMsZUFBTCxFQUFwSDtBQUEySSxHQUFqZSxDQUFrZWpCLEVBQUVtQixTQUFGLENBQVk2QixNQUFaLEdBQW1CLFVBQVN2RCxDQUFULEVBQVdDLENBQVgsRUFBYTtBQUFDLFFBQUlLLElBQUVOLEVBQUUySSxJQUFGLENBQU94SSxFQUFFc0ksWUFBVCxDQUFOO0FBQUEsUUFBNkJoSSxJQUFFVCxFQUFFNEksTUFBRixFQUEvQjtBQUFBLFFBQTBDeEksSUFBRUssRUFBRStGLFFBQUYsQ0FBVzlGLEVBQUU0RCxJQUFiLENBQTVDLENBQStEN0QsRUFBRStDLEVBQUYsQ0FBS3JELEVBQUVxSSxRQUFQLE1BQW1CLEtBQUtuSCxPQUFMLENBQWFpSCxVQUFiLElBQXlCLFFBQU10SSxFQUFFNkksSUFBRixDQUFPLE1BQVAsQ0FBL0IsSUFBK0M1SSxFQUFFaUMsY0FBRixFQUEvQyxFQUFrRTlCLElBQUUsS0FBS3NELFFBQUwsQ0FBY3BELENBQWQsRUFBZ0JHLENBQWhCLENBQUYsR0FBcUIsS0FBS2dELE1BQUwsQ0FBWW5ELENBQVosRUFBY0csQ0FBZCxDQUExRztBQUE0SCxHQUE1TixFQUE2TkYsRUFBRW1CLFNBQUYsQ0FBWStCLE1BQVosR0FBbUIsVUFBU3hELENBQVQsRUFBV0ssQ0FBWCxFQUFhO0FBQUMsUUFBSUcsSUFBRVQsRUFBRTJELEtBQUYsQ0FBUXZELEVBQUVpRCxRQUFWLENBQU4sQ0FBMEIsSUFBRyxLQUFLaEMsT0FBTCxDQUFhZ0gsU0FBaEIsRUFBMEI7QUFBQyxVQUFJOUgsSUFBRUQsRUFBRXdJLFFBQUYsQ0FBVzNJLEVBQUVtRSxJQUFiLENBQU47QUFBQSxVQUF5QkosSUFBRTNELEVBQUVzRCxRQUFGLENBQVcxRCxFQUFFc0ksWUFBYixDQUEzQixDQUFzRCxLQUFLL0UsUUFBTCxDQUFjUSxDQUFkLEVBQWdCM0QsQ0FBaEI7QUFBbUIsT0FBRXdELFFBQUYsQ0FBV3JELEVBQUU0RCxJQUFiLEdBQW1CckUsRUFBRStELFNBQUYsQ0FBWSxLQUFLM0MsT0FBTCxDQUFhcUIsY0FBekIsRUFBd0MsWUFBVTtBQUFDMUMsUUFBRSxLQUFLb0IsT0FBUCxFQUFnQlAsT0FBaEIsQ0FBd0JKLENBQXhCO0FBQTJCLEtBQXRDLENBQXVDdUIsSUFBdkMsQ0FBNEMsSUFBNUMsQ0FBeEMsQ0FBbkI7QUFBOEcsR0FBMWUsRUFBMmV6QixFQUFFbUIsU0FBRixDQUFZZ0MsUUFBWixHQUFxQixVQUFTekQsQ0FBVCxFQUFXSyxDQUFYLEVBQWE7QUFBQyxRQUFJRyxJQUFFVCxFQUFFMkQsS0FBRixDQUFRdkQsRUFBRTRDLFNBQVYsQ0FBTixDQUEyQi9DLEVBQUU2RCxJQUFGLENBQU8zRCxFQUFFbUUsSUFBVCxFQUFlVixXQUFmLENBQTJCbEQsRUFBRTRELElBQTdCLEdBQW1DaEUsRUFBRXNELFdBQUYsQ0FBY2xELEVBQUU0RCxJQUFoQixDQUFuQyxFQUF5RHJFLEVBQUVnRSxPQUFGLENBQVUsS0FBSzVDLE9BQUwsQ0FBYXFCLGNBQXZCLEVBQXNDLFlBQVU7QUFBQ3pDLFFBQUU2RCxJQUFGLENBQU8zRCxFQUFFbUUsSUFBRixHQUFPLEtBQVAsR0FBYW5FLEVBQUVxSSxRQUF0QixFQUFnQ3ZFLE9BQWhDLElBQTBDakUsRUFBRSxLQUFLb0IsT0FBUCxFQUFnQlAsT0FBaEIsQ0FBd0JKLENBQXhCLENBQTFDO0FBQXFFLEtBQWhGLENBQWlGdUIsSUFBakYsQ0FBc0YsSUFBdEYsQ0FBdEMsQ0FBekQ7QUFBNEwsR0FBcnVCLEVBQXN1QnpCLEVBQUVtQixTQUFGLENBQVlGLGVBQVosR0FBNEIsWUFBVTtBQUFDLFFBQUl2QixJQUFFLElBQU4sQ0FBV0QsRUFBRSxLQUFLb0IsT0FBUCxFQUFnQmEsRUFBaEIsQ0FBbUIsT0FBbkIsRUFBMkIsS0FBS1osT0FBTCxDQUFhUixPQUF4QyxFQUFnRCxVQUFTUCxDQUFULEVBQVc7QUFBQ0wsUUFBRXNELE1BQUYsQ0FBU3ZELEVBQUUsSUFBRixDQUFULEVBQWlCTSxDQUFqQjtBQUFvQixLQUFoRjtBQUFrRixHQUExMkIsQ0FBMjJCLElBQUk0RCxJQUFFbEUsRUFBRXFDLEVBQUYsQ0FBS2tHLElBQVgsQ0FBZ0J2SSxFQUFFcUMsRUFBRixDQUFLa0csSUFBTCxHQUFVdEksQ0FBVixFQUFZRCxFQUFFcUMsRUFBRixDQUFLa0csSUFBTCxDQUFVaEcsV0FBVixHQUFzQmhDLENBQWxDLEVBQW9DUCxFQUFFcUMsRUFBRixDQUFLa0csSUFBTCxDQUFVL0YsVUFBVixHQUFxQixZQUFVO0FBQUMsV0FBT3hDLEVBQUVxQyxFQUFGLENBQUtrRyxJQUFMLEdBQVVyRSxDQUFWLEVBQVksSUFBbkI7QUFBd0IsR0FBNUYsRUFBNkZsRSxFQUFFeUMsTUFBRixFQUFVUixFQUFWLENBQWEsTUFBYixFQUFvQixZQUFVO0FBQUNqQyxNQUFFRyxFQUFFRSxJQUFKLEVBQVVILElBQVYsQ0FBZSxZQUFVO0FBQUNELFFBQUUyQixJQUFGLENBQU81QixFQUFFLElBQUYsQ0FBUDtBQUFnQixLQUExQztBQUE0QyxHQUEzRSxDQUE3RjtBQUEwSyxDQUFuckQsQ0FBb3JERixNQUFwckQsQ0FBN2dZIiwiZmlsZSI6IjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIEFkbWluTFRFIGFwcC5qc1xuKiA9PT09PT09PT09PT09PT09XG4qIE1haW4gSlMgYXBwbGljYXRpb24gZmlsZSBmb3IgQWRtaW5MVEUgdjIuIFRoaXMgZmlsZVxuKiBzaG91bGQgYmUgaW5jbHVkZWQgaW4gYWxsIHBhZ2VzLiBJdCBjb250cm9scyBzb21lIGxheW91dFxuKiBvcHRpb25zIGFuZCBpbXBsZW1lbnRzIGV4Y2x1c2l2ZSBBZG1pbkxURSBwbHVnaW5zLlxuKlxuKiBAQXV0aG9yICBBbG1zYWVlZCBTdHVkaW9cbiogQFN1cHBvcnQgPGh0dHBzOi8vd3d3LmFsbXNhZWVkc3R1ZGlvLmNvbT5cbiogQEVtYWlsICAgPGFiZHVsbGFoQGFsbXNhZWVkc3R1ZGlvLmNvbT5cbiogQHZlcnNpb24gMi40LjJcbiogQHJlcG9zaXRvcnkgZ2l0Oi8vZ2l0aHViLmNvbS9hbG1hc2FlZWQyMDEwL0FkbWluTFRFLmdpdFxuKiBAbGljZW5zZSBNSVQgPGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+XG4qL1xuaWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoXCJBZG1pbkxURSByZXF1aXJlcyBqUXVlcnlcIik7K2Z1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWEodGhpcyksZz1lLmRhdGEoYyk7aWYoIWcpe3ZhciBoPWEuZXh0ZW5kKHt9LGQsZS5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIGImJmIpO2UuZGF0YShjLGc9bmV3IGYoZSxoKSl9aWYoXCJzdHJpbmdcIj09dHlwZW9mIGcpe2lmKHZvaWQgMD09PWdbYl0pdGhyb3cgbmV3IEVycm9yKFwiTm8gbWV0aG9kIG5hbWVkIFwiK2IpO2dbYl0oKX19KX12YXIgYz1cImx0ZS5ib3hyZWZyZXNoXCIsZD17c291cmNlOlwiXCIscGFyYW1zOnt9LHRyaWdnZXI6XCIucmVmcmVzaC1idG5cIixjb250ZW50OlwiLmJveC1ib2R5XCIsbG9hZEluQ29udGVudDohMCxyZXNwb25zZVR5cGU6XCJcIixvdmVybGF5VGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJvdmVybGF5XCI+PGRpdiBjbGFzcz1cImZhIGZhLXJlZnJlc2ggZmEtc3BpblwiPjwvZGl2PjwvZGl2Picsb25Mb2FkU3RhcnQ6ZnVuY3Rpb24oKXt9LG9uTG9hZERvbmU6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9fSxlPXtkYXRhOidbZGF0YS13aWRnZXQ9XCJib3gtcmVmcmVzaFwiXSd9LGY9ZnVuY3Rpb24oYixjKXtpZih0aGlzLmVsZW1lbnQ9Yix0aGlzLm9wdGlvbnM9Yyx0aGlzLiRvdmVybGF5PWEoYy5vdmVybGF5KSxcIlwiPT09Yy5zb3VyY2UpdGhyb3cgbmV3IEVycm9yKFwiU291cmNlIHVybCB3YXMgbm90IGRlZmluZWQuIFBsZWFzZSBzcGVjaWZ5IGEgdXJsIGluIHlvdXIgQm94UmVmcmVzaCBzb3VyY2Ugb3B0aW9uLlwiKTt0aGlzLl9zZXRVcExpc3RlbmVycygpLHRoaXMubG9hZCgpfTtmLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKCl7dGhpcy5fYWRkT3ZlcmxheSgpLHRoaXMub3B0aW9ucy5vbkxvYWRTdGFydC5jYWxsKGEodGhpcykpLGEuZ2V0KHRoaXMub3B0aW9ucy5zb3VyY2UsdGhpcy5vcHRpb25zLnBhcmFtcyxmdW5jdGlvbihiKXt0aGlzLm9wdGlvbnMubG9hZEluQ29udGVudCYmYSh0aGlzLm9wdGlvbnMuY29udGVudCkuaHRtbChiKSx0aGlzLm9wdGlvbnMub25Mb2FkRG9uZS5jYWxsKGEodGhpcyksYiksdGhpcy5fcmVtb3ZlT3ZlcmxheSgpfS5iaW5kKHRoaXMpLFwiXCIhPT10aGlzLm9wdGlvbnMucmVzcG9uc2VUeXBlJiZ0aGlzLm9wdGlvbnMucmVzcG9uc2VUeXBlKX0sZi5wcm90b3R5cGUuX3NldFVwTGlzdGVuZXJzPWZ1bmN0aW9uKCl7YSh0aGlzLmVsZW1lbnQpLm9uKFwiY2xpY2tcIixlLnRyaWdnZXIsZnVuY3Rpb24oYSl7YSYmYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubG9hZCgpfS5iaW5kKHRoaXMpKX0sZi5wcm90b3R5cGUuX2FkZE92ZXJsYXk9ZnVuY3Rpb24oKXthKHRoaXMuZWxlbWVudCkuYXBwZW5kKHRoaXMuJG92ZXJsYXkpfSxmLnByb3RvdHlwZS5fcmVtb3ZlT3ZlcmxheT1mdW5jdGlvbigpe2EodGhpcy5lbGVtZW50KS5yZW1vdmUodGhpcy4kb3ZlcmxheSl9O3ZhciBnPWEuZm4uYm94UmVmcmVzaDthLmZuLmJveFJlZnJlc2g9YixhLmZuLmJveFJlZnJlc2guQ29uc3RydWN0b3I9ZixhLmZuLmJveFJlZnJlc2gubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmJveFJlZnJlc2g9Zyx0aGlzfSxhKHdpbmRvdykub24oXCJsb2FkXCIsZnVuY3Rpb24oKXthKGUuZGF0YSkuZWFjaChmdW5jdGlvbigpe2IuY2FsbChhKHRoaXMpKX0pfSl9KGpRdWVyeSksZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YShjKTtpZighZil7dmFyIGc9YS5leHRlbmQoe30sZCxlLmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgYiYmYik7ZS5kYXRhKGMsZj1uZXcgaChlLGcpKX1pZihcInN0cmluZ1wiPT10eXBlb2YgYil7aWYodm9pZCAwPT09ZltiXSl0aHJvdyBuZXcgRXJyb3IoXCJObyBtZXRob2QgbmFtZWQgXCIrYik7ZltiXSgpfX0pfXZhciBjPVwibHRlLmJveHdpZGdldFwiLGQ9e2FuaW1hdGlvblNwZWVkOjUwMCxjb2xsYXBzZVRyaWdnZXI6J1tkYXRhLXdpZGdldD1cImNvbGxhcHNlXCJdJyxyZW1vdmVUcmlnZ2VyOidbZGF0YS13aWRnZXQ9XCJyZW1vdmVcIl0nLGNvbGxhcHNlSWNvbjpcImZhLW1pbnVzXCIsZXhwYW5kSWNvbjpcImZhLXBsdXNcIixyZW1vdmVJY29uOlwiZmEtdGltZXNcIn0sZT17ZGF0YTpcIi5ib3hcIixjb2xsYXBzZWQ6XCIuY29sbGFwc2VkLWJveFwiLGhlYWRlcjpcIi5ib3gtaGVhZGVyXCIsYm9keTpcIi5ib3gtYm9keVwiLGZvb3RlcjpcIi5ib3gtZm9vdGVyXCIsdG9vbHM6XCIuYm94LXRvb2xzXCJ9LGY9e2NvbGxhcHNlZDpcImNvbGxhcHNlZC1ib3hcIn0sZz17Y29sbGFwc2VkOlwiY29sbGFwc2VkLmJveHdpZGdldFwiLGV4cGFuZGVkOlwiZXhwYW5kZWQuYm94d2lkZ2V0XCIscmVtb3ZlZDpcInJlbW92ZWQuYm94d2lkZ2V0XCJ9LGg9ZnVuY3Rpb24oYSxiKXt0aGlzLmVsZW1lbnQ9YSx0aGlzLm9wdGlvbnM9Yix0aGlzLl9zZXRVcExpc3RlbmVycygpfTtoLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXthKHRoaXMuZWxlbWVudCkuaXMoZS5jb2xsYXBzZWQpP3RoaXMuZXhwYW5kKCk6dGhpcy5jb2xsYXBzZSgpfSxoLnByb3RvdHlwZS5leHBhbmQ9ZnVuY3Rpb24oKXt2YXIgYj1hLkV2ZW50KGcuZXhwYW5kZWQpLGM9dGhpcy5vcHRpb25zLmNvbGxhcHNlSWNvbixkPXRoaXMub3B0aW9ucy5leHBhbmRJY29uO2EodGhpcy5lbGVtZW50KS5yZW1vdmVDbGFzcyhmLmNvbGxhcHNlZCksYSh0aGlzLmVsZW1lbnQpLmNoaWxkcmVuKGUuaGVhZGVyK1wiLCBcIitlLmJvZHkrXCIsIFwiK2UuZm9vdGVyKS5jaGlsZHJlbihlLnRvb2xzKS5maW5kKFwiLlwiK2QpLnJlbW92ZUNsYXNzKGQpLmFkZENsYXNzKGMpLGEodGhpcy5lbGVtZW50KS5jaGlsZHJlbihlLmJvZHkrXCIsIFwiK2UuZm9vdGVyKS5zbGlkZURvd24odGhpcy5vcHRpb25zLmFuaW1hdGlvblNwZWVkLGZ1bmN0aW9uKCl7YSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIoYil9LmJpbmQodGhpcykpfSxoLnByb3RvdHlwZS5jb2xsYXBzZT1mdW5jdGlvbigpe3ZhciBiPWEuRXZlbnQoZy5jb2xsYXBzZWQpLGM9dGhpcy5vcHRpb25zLmNvbGxhcHNlSWNvbixkPXRoaXMub3B0aW9ucy5leHBhbmRJY29uO2EodGhpcy5lbGVtZW50KS5jaGlsZHJlbihlLmhlYWRlcitcIiwgXCIrZS5ib2R5K1wiLCBcIitlLmZvb3RlcikuY2hpbGRyZW4oZS50b29scykuZmluZChcIi5cIitjKS5yZW1vdmVDbGFzcyhjKS5hZGRDbGFzcyhkKSxhKHRoaXMuZWxlbWVudCkuY2hpbGRyZW4oZS5ib2R5K1wiLCBcIitlLmZvb3Rlcikuc2xpZGVVcCh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uU3BlZWQsZnVuY3Rpb24oKXthKHRoaXMuZWxlbWVudCkuYWRkQ2xhc3MoZi5jb2xsYXBzZWQpLGEodGhpcy5lbGVtZW50KS50cmlnZ2VyKGIpfS5iaW5kKHRoaXMpKX0saC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIGI9YS5FdmVudChnLnJlbW92ZWQpO2EodGhpcy5lbGVtZW50KS5zbGlkZVVwKHRoaXMub3B0aW9ucy5hbmltYXRpb25TcGVlZCxmdW5jdGlvbigpe2EodGhpcy5lbGVtZW50KS50cmlnZ2VyKGIpLGEodGhpcy5lbGVtZW50KS5yZW1vdmUoKX0uYmluZCh0aGlzKSl9LGgucHJvdG90eXBlLl9zZXRVcExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBiPXRoaXM7YSh0aGlzLmVsZW1lbnQpLm9uKFwiY2xpY2tcIix0aGlzLm9wdGlvbnMuY29sbGFwc2VUcmlnZ2VyLGZ1bmN0aW9uKGMpe3JldHVybiBjJiZjLnByZXZlbnREZWZhdWx0KCksYi50b2dnbGUoYSh0aGlzKSksITF9KSxhKHRoaXMuZWxlbWVudCkub24oXCJjbGlja1wiLHRoaXMub3B0aW9ucy5yZW1vdmVUcmlnZ2VyLGZ1bmN0aW9uKGMpe3JldHVybiBjJiZjLnByZXZlbnREZWZhdWx0KCksYi5yZW1vdmUoYSh0aGlzKSksITF9KX07dmFyIGk9YS5mbi5ib3hXaWRnZXQ7YS5mbi5ib3hXaWRnZXQ9YixhLmZuLmJveFdpZGdldC5Db25zdHJ1Y3Rvcj1oLGEuZm4uYm94V2lkZ2V0Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5ib3hXaWRnZXQ9aSx0aGlzfSxhKHdpbmRvdykub24oXCJsb2FkXCIsZnVuY3Rpb24oKXthKGUuZGF0YSkuZWFjaChmdW5jdGlvbigpe2IuY2FsbChhKHRoaXMpKX0pfSl9KGpRdWVyeSksZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YShjKTtpZighZil7dmFyIGc9YS5leHRlbmQoe30sZCxlLmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgYiYmYik7ZS5kYXRhKGMsZj1uZXcgaChlLGcpKX1cInN0cmluZ1wiPT10eXBlb2YgYiYmZi50b2dnbGUoKX0pfXZhciBjPVwibHRlLmNvbnRyb2xzaWRlYmFyXCIsZD17c2xpZGU6ITB9LGU9e3NpZGViYXI6XCIuY29udHJvbC1zaWRlYmFyXCIsZGF0YTonW2RhdGEtdG9nZ2xlPVwiY29udHJvbC1zaWRlYmFyXCJdJyxvcGVuOlwiLmNvbnRyb2wtc2lkZWJhci1vcGVuXCIsYmc6XCIuY29udHJvbC1zaWRlYmFyLWJnXCIsd3JhcHBlcjpcIi53cmFwcGVyXCIsY29udGVudDpcIi5jb250ZW50LXdyYXBwZXJcIixib3hlZDpcIi5sYXlvdXQtYm94ZWRcIn0sZj17b3BlbjpcImNvbnRyb2wtc2lkZWJhci1vcGVuXCIsZml4ZWQ6XCJmaXhlZFwifSxnPXtjb2xsYXBzZWQ6XCJjb2xsYXBzZWQuY29udHJvbHNpZGViYXJcIixleHBhbmRlZDpcImV4cGFuZGVkLmNvbnRyb2xzaWRlYmFyXCJ9LGg9ZnVuY3Rpb24oYSxiKXt0aGlzLmVsZW1lbnQ9YSx0aGlzLm9wdGlvbnM9Yix0aGlzLmhhc0JpbmRlZFJlc2l6ZT0hMSx0aGlzLmluaXQoKX07aC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2EodGhpcy5lbGVtZW50KS5pcyhlLmRhdGEpfHxhKHRoaXMpLm9uKFwiY2xpY2tcIix0aGlzLnRvZ2dsZSksdGhpcy5maXgoKSxhKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCl7dGhpcy5maXgoKX0uYmluZCh0aGlzKSl9LGgucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXtiJiZiLnByZXZlbnREZWZhdWx0KCksdGhpcy5maXgoKSxhKGUuc2lkZWJhcikuaXMoZS5vcGVuKXx8YShcImJvZHlcIikuaXMoZS5vcGVuKT90aGlzLmNvbGxhcHNlKCk6dGhpcy5leHBhbmQoKX0saC5wcm90b3R5cGUuZXhwYW5kPWZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLnNsaWRlP2EoZS5zaWRlYmFyKS5hZGRDbGFzcyhmLm9wZW4pOmEoXCJib2R5XCIpLmFkZENsYXNzKGYub3BlbiksYSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIoYS5FdmVudChnLmV4cGFuZGVkKSl9LGgucHJvdG90eXBlLmNvbGxhcHNlPWZ1bmN0aW9uKCl7YShcImJvZHksIFwiK2Uuc2lkZWJhcikucmVtb3ZlQ2xhc3MoZi5vcGVuKSxhKHRoaXMuZWxlbWVudCkudHJpZ2dlcihhLkV2ZW50KGcuY29sbGFwc2VkKSl9LGgucHJvdG90eXBlLmZpeD1mdW5jdGlvbigpe2EoXCJib2R5XCIpLmlzKGUuYm94ZWQpJiZ0aGlzLl9maXhGb3JCb3hlZChhKGUuYmcpKX0saC5wcm90b3R5cGUuX2ZpeEZvckJveGVkPWZ1bmN0aW9uKGIpe2IuY3NzKHtwb3NpdGlvbjpcImFic29sdXRlXCIsaGVpZ2h0OmEoZS53cmFwcGVyKS5oZWlnaHQoKX0pfTt2YXIgaT1hLmZuLmNvbnRyb2xTaWRlYmFyO2EuZm4uY29udHJvbFNpZGViYXI9YixhLmZuLmNvbnRyb2xTaWRlYmFyLkNvbnN0cnVjdG9yPWgsYS5mbi5jb250cm9sU2lkZWJhci5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uY29udHJvbFNpZGViYXI9aSx0aGlzfSxhKGRvY3VtZW50KS5vbihcImNsaWNrXCIsZS5kYXRhLGZ1bmN0aW9uKGMpe2MmJmMucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSxcInRvZ2dsZVwiKX0pfShqUXVlcnkpLGZ1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoYyk7ZXx8ZC5kYXRhKGMsZT1uZXcgZihkKSksXCJzdHJpbmdcIj09dHlwZW9mIGImJmUudG9nZ2xlKGQpfSl9dmFyIGM9XCJsdGUuZGlyZWN0Y2hhdFwiLGQ9e2RhdGE6J1tkYXRhLXdpZGdldD1cImNoYXQtcGFuZS10b2dnbGVcIl0nLGJveDpcIi5kaXJlY3QtY2hhdFwifSxlPXtvcGVuOlwiZGlyZWN0LWNoYXQtY29udGFjdHMtb3BlblwifSxmPWZ1bmN0aW9uKGEpe3RoaXMuZWxlbWVudD1hfTtmLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7YS5wYXJlbnRzKGQuYm94KS5maXJzdCgpLnRvZ2dsZUNsYXNzKGUub3Blbil9O3ZhciBnPWEuZm4uZGlyZWN0Q2hhdDthLmZuLmRpcmVjdENoYXQ9YixhLmZuLmRpcmVjdENoYXQuQ29uc3RydWN0b3I9ZixhLmZuLmRpcmVjdENoYXQubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmRpcmVjdENoYXQ9Zyx0aGlzfSxhKGRvY3VtZW50KS5vbihcImNsaWNrXCIsZC5kYXRhLGZ1bmN0aW9uKGMpe2MmJmMucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSxcInRvZ2dsZVwiKX0pfShqUXVlcnkpLGZ1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWEodGhpcyksZj1lLmRhdGEoYyk7aWYoIWYpe3ZhciBoPWEuZXh0ZW5kKHt9LGQsZS5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIGImJmIpO2UuZGF0YShjLGY9bmV3IGcoaCkpfWlmKFwic3RyaW5nXCI9PXR5cGVvZiBiKXtpZih2b2lkIDA9PT1mW2JdKXRocm93IG5ldyBFcnJvcihcIk5vIG1ldGhvZCBuYW1lZCBcIitiKTtmW2JdKCl9fSl9dmFyIGM9XCJsdGUubGF5b3V0XCIsZD17c2xpbXNjcm9sbDohMCxyZXNldEhlaWdodDohMH0sZT17d3JhcHBlcjpcIi53cmFwcGVyXCIsY29udGVudFdyYXBwZXI6XCIuY29udGVudC13cmFwcGVyXCIsbGF5b3V0Qm94ZWQ6XCIubGF5b3V0LWJveGVkXCIsbWFpbkZvb3RlcjpcIi5tYWluLWZvb3RlclwiLG1haW5IZWFkZXI6XCIubWFpbi1oZWFkZXJcIixzaWRlYmFyOlwiLnNpZGViYXJcIixjb250cm9sU2lkZWJhcjpcIi5jb250cm9sLXNpZGViYXJcIixmaXhlZDpcIi5maXhlZFwiLHNpZGViYXJNZW51OlwiLnNpZGViYXItbWVudVwiLGxvZ286XCIubWFpbi1oZWFkZXIgLmxvZ29cIn0sZj17Zml4ZWQ6XCJmaXhlZFwiLGhvbGRUcmFuc2l0aW9uOlwiaG9sZC10cmFuc2l0aW9uXCJ9LGc9ZnVuY3Rpb24oYSl7dGhpcy5vcHRpb25zPWEsdGhpcy5iaW5kZWRSZXNpemU9ITEsdGhpcy5hY3RpdmF0ZSgpfTtnLnByb3RvdHlwZS5hY3RpdmF0ZT1mdW5jdGlvbigpe3RoaXMuZml4KCksdGhpcy5maXhTaWRlYmFyKCksYShcImJvZHlcIikucmVtb3ZlQ2xhc3MoZi5ob2xkVHJhbnNpdGlvbiksdGhpcy5vcHRpb25zLnJlc2V0SGVpZ2h0JiZhKFwiYm9keSwgaHRtbCwgXCIrZS53cmFwcGVyKS5jc3Moe2hlaWdodDpcImF1dG9cIixcIm1pbi1oZWlnaHRcIjpcIjEwMCVcIn0pLHRoaXMuYmluZGVkUmVzaXplfHwoYSh3aW5kb3cpLnJlc2l6ZShmdW5jdGlvbigpe3RoaXMuZml4KCksdGhpcy5maXhTaWRlYmFyKCksYShlLmxvZ28rXCIsIFwiK2Uuc2lkZWJhcikub25lKFwid2Via2l0VHJhbnNpdGlvbkVuZCBvdHJhbnNpdGlvbmVuZCBvVHJhbnNpdGlvbkVuZCBtc1RyYW5zaXRpb25FbmQgdHJhbnNpdGlvbmVuZFwiLGZ1bmN0aW9uKCl7dGhpcy5maXgoKSx0aGlzLmZpeFNpZGViYXIoKX0uYmluZCh0aGlzKSl9LmJpbmQodGhpcykpLHRoaXMuYmluZGVkUmVzaXplPSEwKSxhKGUuc2lkZWJhck1lbnUpLm9uKFwiZXhwYW5kZWQudHJlZVwiLGZ1bmN0aW9uKCl7dGhpcy5maXgoKSx0aGlzLmZpeFNpZGViYXIoKX0uYmluZCh0aGlzKSksYShlLnNpZGViYXJNZW51KS5vbihcImNvbGxhcHNlZC50cmVlXCIsZnVuY3Rpb24oKXt0aGlzLmZpeCgpLHRoaXMuZml4U2lkZWJhcigpfS5iaW5kKHRoaXMpKX0sZy5wcm90b3R5cGUuZml4PWZ1bmN0aW9uKCl7YShlLmxheW91dEJveGVkK1wiID4gXCIrZS53cmFwcGVyKS5jc3MoXCJvdmVyZmxvd1wiLFwiaGlkZGVuXCIpO3ZhciBiPWEoZS5tYWluRm9vdGVyKS5vdXRlckhlaWdodCgpfHwwLGM9YShlLm1haW5IZWFkZXIpLm91dGVySGVpZ2h0KCkrYixkPWEod2luZG93KS5oZWlnaHQoKSxnPWEoZS5zaWRlYmFyKS5oZWlnaHQoKXx8MDtpZihhKFwiYm9keVwiKS5oYXNDbGFzcyhmLmZpeGVkKSlhKGUuY29udGVudFdyYXBwZXIpLmNzcyhcIm1pbi1oZWlnaHRcIixkLWIpO2Vsc2V7dmFyIGg7ZD49Zz8oYShlLmNvbnRlbnRXcmFwcGVyKS5jc3MoXCJtaW4taGVpZ2h0XCIsZC1jKSxoPWQtYyk6KGEoZS5jb250ZW50V3JhcHBlcikuY3NzKFwibWluLWhlaWdodFwiLGcpLGg9Zyk7dmFyIGk9YShlLmNvbnRyb2xTaWRlYmFyKTt2b2lkIDAhPT1pJiZpLmhlaWdodCgpPmgmJmEoZS5jb250ZW50V3JhcHBlcikuY3NzKFwibWluLWhlaWdodFwiLGkuaGVpZ2h0KCkpfX0sZy5wcm90b3R5cGUuZml4U2lkZWJhcj1mdW5jdGlvbigpe2lmKCFhKFwiYm9keVwiKS5oYXNDbGFzcyhmLmZpeGVkKSlyZXR1cm4gdm9pZCh2b2lkIDAhPT1hLmZuLnNsaW1TY3JvbGwmJmEoZS5zaWRlYmFyKS5zbGltU2Nyb2xsKHtkZXN0cm95OiEwfSkuaGVpZ2h0KFwiYXV0b1wiKSk7dGhpcy5vcHRpb25zLnNsaW1zY3JvbGwmJnZvaWQgMCE9PWEuZm4uc2xpbVNjcm9sbCYmYShlLnNpZGViYXIpLnNsaW1TY3JvbGwoe2hlaWdodDphKHdpbmRvdykuaGVpZ2h0KCktYShlLm1haW5IZWFkZXIpLmhlaWdodCgpK1wicHhcIn0pfTt2YXIgaD1hLmZuLmxheW91dDthLmZuLmxheW91dD1iLGEuZm4ubGF5b3V0LkNvbnN0dWN0b3I9ZyxhLmZuLmxheW91dC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ubGF5b3V0PWgsdGhpc30sYSh3aW5kb3cpLm9uKFwibG9hZFwiLGZ1bmN0aW9uKCl7Yi5jYWxsKGEoXCJib2R5XCIpKX0pfShqUXVlcnkpLGZ1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWEodGhpcyksZj1lLmRhdGEoYyk7aWYoIWYpe3ZhciBnPWEuZXh0ZW5kKHt9LGQsZS5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIGImJmIpO2UuZGF0YShjLGY9bmV3IGgoZykpfVwidG9nZ2xlXCI9PT1iJiZmLnRvZ2dsZSgpfSl9dmFyIGM9XCJsdGUucHVzaG1lbnVcIixkPXtjb2xsYXBzZVNjcmVlblNpemU6NzY3LGV4cGFuZE9uSG92ZXI6ITEsZXhwYW5kVHJhbnNpdGlvbkRlbGF5OjIwMH0sZT17Y29sbGFwc2VkOlwiLnNpZGViYXItY29sbGFwc2VcIixvcGVuOlwiLnNpZGViYXItb3BlblwiLG1haW5TaWRlYmFyOlwiLm1haW4tc2lkZWJhclwiLGNvbnRlbnRXcmFwcGVyOlwiLmNvbnRlbnQtd3JhcHBlclwiLHNlYXJjaElucHV0OlwiLnNpZGViYXItZm9ybSAuZm9ybS1jb250cm9sXCIsYnV0dG9uOidbZGF0YS10b2dnbGU9XCJwdXNoLW1lbnVcIl0nLG1pbmk6XCIuc2lkZWJhci1taW5pXCIsZXhwYW5kZWQ6XCIuc2lkZWJhci1leHBhbmRlZC1vbi1ob3ZlclwiLGxheW91dEZpeGVkOlwiLmZpeGVkXCJ9LGY9e2NvbGxhcHNlZDpcInNpZGViYXItY29sbGFwc2VcIixvcGVuOlwic2lkZWJhci1vcGVuXCIsbWluaTpcInNpZGViYXItbWluaVwiLGV4cGFuZGVkOlwic2lkZWJhci1leHBhbmRlZC1vbi1ob3ZlclwiLGV4cGFuZEZlYXR1cmU6XCJzaWRlYmFyLW1pbmktZXhwYW5kLWZlYXR1cmVcIixsYXlvdXRGaXhlZDpcImZpeGVkXCJ9LGc9e2V4cGFuZGVkOlwiZXhwYW5kZWQucHVzaE1lbnVcIixjb2xsYXBzZWQ6XCJjb2xsYXBzZWQucHVzaE1lbnVcIn0saD1mdW5jdGlvbihhKXt0aGlzLm9wdGlvbnM9YSx0aGlzLmluaXQoKX07aC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpeyh0aGlzLm9wdGlvbnMuZXhwYW5kT25Ib3Zlcnx8YShcImJvZHlcIikuaXMoZS5taW5pK2UubGF5b3V0Rml4ZWQpKSYmKHRoaXMuZXhwYW5kT25Ib3ZlcigpLGEoXCJib2R5XCIpLmFkZENsYXNzKGYuZXhwYW5kRmVhdHVyZSkpLGEoZS5jb250ZW50V3JhcHBlcikuY2xpY2soZnVuY3Rpb24oKXthKHdpbmRvdykud2lkdGgoKTw9dGhpcy5vcHRpb25zLmNvbGxhcHNlU2NyZWVuU2l6ZSYmYShcImJvZHlcIikuaGFzQ2xhc3MoZi5vcGVuKSYmdGhpcy5jbG9zZSgpfS5iaW5kKHRoaXMpKSxhKGUuc2VhcmNoSW5wdXQpLmNsaWNrKGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KX0saC5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGI9YSh3aW5kb3cpLndpZHRoKCksYz0hYShcImJvZHlcIikuaGFzQ2xhc3MoZi5jb2xsYXBzZWQpO2I8PXRoaXMub3B0aW9ucy5jb2xsYXBzZVNjcmVlblNpemUmJihjPWEoXCJib2R5XCIpLmhhc0NsYXNzKGYub3BlbikpLGM/dGhpcy5jbG9zZSgpOnRoaXMub3BlbigpfSxoLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKCl7YSh3aW5kb3cpLndpZHRoKCk+dGhpcy5vcHRpb25zLmNvbGxhcHNlU2NyZWVuU2l6ZT9hKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhmLmNvbGxhcHNlZCkudHJpZ2dlcihhLkV2ZW50KGcuZXhwYW5kZWQpKTphKFwiYm9keVwiKS5hZGRDbGFzcyhmLm9wZW4pLnRyaWdnZXIoYS5FdmVudChnLmV4cGFuZGVkKSl9LGgucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7YSh3aW5kb3cpLndpZHRoKCk+dGhpcy5vcHRpb25zLmNvbGxhcHNlU2NyZWVuU2l6ZT9hKFwiYm9keVwiKS5hZGRDbGFzcyhmLmNvbGxhcHNlZCkudHJpZ2dlcihhLkV2ZW50KGcuY29sbGFwc2VkKSk6YShcImJvZHlcIikucmVtb3ZlQ2xhc3MoZi5vcGVuK1wiIFwiK2YuY29sbGFwc2VkKS50cmlnZ2VyKGEuRXZlbnQoZy5jb2xsYXBzZWQpKX0saC5wcm90b3R5cGUuZXhwYW5kT25Ib3Zlcj1mdW5jdGlvbigpe2EoZS5tYWluU2lkZWJhcikuaG92ZXIoZnVuY3Rpb24oKXthKFwiYm9keVwiKS5pcyhlLm1pbmkrZS5jb2xsYXBzZWQpJiZhKHdpbmRvdykud2lkdGgoKT50aGlzLm9wdGlvbnMuY29sbGFwc2VTY3JlZW5TaXplJiZ0aGlzLmV4cGFuZCgpfS5iaW5kKHRoaXMpLGZ1bmN0aW9uKCl7YShcImJvZHlcIikuaXMoZS5leHBhbmRlZCkmJnRoaXMuY29sbGFwc2UoKX0uYmluZCh0aGlzKSl9LGgucHJvdG90eXBlLmV4cGFuZD1mdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXthKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhmLmNvbGxhcHNlZCkuYWRkQ2xhc3MoZi5leHBhbmRlZCl9LHRoaXMub3B0aW9ucy5leHBhbmRUcmFuc2l0aW9uRGVsYXkpfSxoLnByb3RvdHlwZS5jb2xsYXBzZT1mdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXthKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhmLmV4cGFuZGVkKS5hZGRDbGFzcyhmLmNvbGxhcHNlZCl9LHRoaXMub3B0aW9ucy5leHBhbmRUcmFuc2l0aW9uRGVsYXkpfTt2YXIgaT1hLmZuLnB1c2hNZW51O2EuZm4ucHVzaE1lbnU9YixhLmZuLnB1c2hNZW51LkNvbnN0cnVjdG9yPWgsYS5mbi5wdXNoTWVudS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ucHVzaE1lbnU9aSx0aGlzfSxhKGRvY3VtZW50KS5vbihcImNsaWNrXCIsZS5idXR0b24sZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpLGIuY2FsbChhKHRoaXMpLFwidG9nZ2xlXCIpfSksYSh3aW5kb3cpLm9uKFwibG9hZFwiLGZ1bmN0aW9uKCl7Yi5jYWxsKGEoZS5idXR0b24pKX0pfShqUXVlcnkpLGZ1bmN0aW9uKGEpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWEodGhpcyksZj1lLmRhdGEoYyk7aWYoIWYpe3ZhciBoPWEuZXh0ZW5kKHt9LGQsZS5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIGImJmIpO2UuZGF0YShjLGY9bmV3IGcoZSxoKSl9aWYoXCJzdHJpbmdcIj09dHlwZW9mIGYpe2lmKHZvaWQgMD09PWZbYl0pdGhyb3cgbmV3IEVycm9yKFwiTm8gbWV0aG9kIG5hbWVkIFwiK2IpO2ZbYl0oKX19KX12YXIgYz1cImx0ZS50b2RvbGlzdFwiLGQ9e29uQ2hlY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LG9uVW5DaGVjazpmdW5jdGlvbihhKXtyZXR1cm4gYX19LGU9e2RhdGE6J1tkYXRhLXdpZGdldD1cInRvZG8tbGlzdFwiXSd9LGY9e2RvbmU6XCJkb25lXCJ9LGc9ZnVuY3Rpb24oYSxiKXt0aGlzLmVsZW1lbnQ9YSx0aGlzLm9wdGlvbnM9Yix0aGlzLl9zZXRVcExpc3RlbmVycygpfTtnLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7aWYoYS5wYXJlbnRzKGUubGkpLmZpcnN0KCkudG9nZ2xlQ2xhc3MoZi5kb25lKSwhYS5wcm9wKFwiY2hlY2tlZFwiKSlyZXR1cm4gdm9pZCB0aGlzLnVuQ2hlY2soYSk7dGhpcy5jaGVjayhhKX0sZy5wcm90b3R5cGUuY2hlY2s9ZnVuY3Rpb24oYSl7dGhpcy5vcHRpb25zLm9uQ2hlY2suY2FsbChhKX0sZy5wcm90b3R5cGUudW5DaGVjaz1mdW5jdGlvbihhKXt0aGlzLm9wdGlvbnMub25VbkNoZWNrLmNhbGwoYSl9LGcucHJvdG90eXBlLl9zZXRVcExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBiPXRoaXM7YSh0aGlzLmVsZW1lbnQpLm9uKFwiY2hhbmdlIGlmQ2hhbmdlZFwiLFwiaW5wdXQ6Y2hlY2tib3hcIixmdW5jdGlvbigpe2IudG9nZ2xlKGEodGhpcykpfSl9O3ZhciBoPWEuZm4udG9kb0xpc3Q7YS5mbi50b2RvTGlzdD1iLGEuZm4udG9kb0xpc3QuQ29uc3RydWN0b3I9ZyxhLmZuLnRvZG9MaXN0Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi50b2RvTGlzdD1oLHRoaXN9LGEod2luZG93KS5vbihcImxvYWRcIixmdW5jdGlvbigpe2EoZS5kYXRhKS5lYWNoKGZ1bmN0aW9uKCl7Yi5jYWxsKGEodGhpcykpfSl9KX0oalF1ZXJ5KSxmdW5jdGlvbihhKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1hKHRoaXMpO2lmKCFlLmRhdGEoYykpe3ZhciBmPWEuZXh0ZW5kKHt9LGQsZS5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIGImJmIpO2UuZGF0YShjLG5ldyBoKGUsZikpfX0pfXZhciBjPVwibHRlLnRyZWVcIixkPXthbmltYXRpb25TcGVlZDo1MDAsYWNjb3JkaW9uOiEwLGZvbGxvd0xpbms6ITEsdHJpZ2dlcjpcIi50cmVldmlldyBhXCJ9LGU9e3RyZWU6XCIudHJlZVwiLHRyZWV2aWV3OlwiLnRyZWV2aWV3XCIsdHJlZXZpZXdNZW51OlwiLnRyZWV2aWV3LW1lbnVcIixvcGVuOlwiLm1lbnUtb3BlbiwgLmFjdGl2ZVwiLGxpOlwibGlcIixkYXRhOidbZGF0YS13aWRnZXQ9XCJ0cmVlXCJdJyxhY3RpdmU6XCIuYWN0aXZlXCJ9LGY9e29wZW46XCJtZW51LW9wZW5cIix0cmVlOlwidHJlZVwifSxnPXtjb2xsYXBzZWQ6XCJjb2xsYXBzZWQudHJlZVwiLGV4cGFuZGVkOlwiZXhwYW5kZWQudHJlZVwifSxoPWZ1bmN0aW9uKGIsYyl7dGhpcy5lbGVtZW50PWIsdGhpcy5vcHRpb25zPWMsYSh0aGlzLmVsZW1lbnQpLmFkZENsYXNzKGYudHJlZSksYShlLnRyZWV2aWV3K2UuYWN0aXZlLHRoaXMuZWxlbWVudCkuYWRkQ2xhc3MoZi5vcGVuKSx0aGlzLl9zZXRVcExpc3RlbmVycygpfTtoLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLm5leHQoZS50cmVldmlld01lbnUpLGQ9YS5wYXJlbnQoKSxnPWQuaGFzQ2xhc3MoZi5vcGVuKTtkLmlzKGUudHJlZXZpZXcpJiYodGhpcy5vcHRpb25zLmZvbGxvd0xpbmsmJlwiI1wiIT09YS5hdHRyKFwiaHJlZlwiKXx8Yi5wcmV2ZW50RGVmYXVsdCgpLGc/dGhpcy5jb2xsYXBzZShjLGQpOnRoaXMuZXhwYW5kKGMsZCkpfSxoLnByb3RvdHlwZS5leHBhbmQ9ZnVuY3Rpb24oYixjKXt2YXIgZD1hLkV2ZW50KGcuZXhwYW5kZWQpO2lmKHRoaXMub3B0aW9ucy5hY2NvcmRpb24pe3ZhciBoPWMuc2libGluZ3MoZS5vcGVuKSxpPWguY2hpbGRyZW4oZS50cmVldmlld01lbnUpO3RoaXMuY29sbGFwc2UoaSxoKX1jLmFkZENsYXNzKGYub3BlbiksYi5zbGlkZURvd24odGhpcy5vcHRpb25zLmFuaW1hdGlvblNwZWVkLGZ1bmN0aW9uKCl7YSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIoZCl9LmJpbmQodGhpcykpfSxoLnByb3RvdHlwZS5jb2xsYXBzZT1mdW5jdGlvbihiLGMpe3ZhciBkPWEuRXZlbnQoZy5jb2xsYXBzZWQpO2IuZmluZChlLm9wZW4pLnJlbW92ZUNsYXNzKGYub3BlbiksYy5yZW1vdmVDbGFzcyhmLm9wZW4pLGIuc2xpZGVVcCh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uU3BlZWQsZnVuY3Rpb24oKXtiLmZpbmQoZS5vcGVuK1wiID4gXCIrZS50cmVldmlldykuc2xpZGVVcCgpLGEodGhpcy5lbGVtZW50KS50cmlnZ2VyKGQpfS5iaW5kKHRoaXMpKX0saC5wcm90b3R5cGUuX3NldFVwTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGI9dGhpczthKHRoaXMuZWxlbWVudCkub24oXCJjbGlja1wiLHRoaXMub3B0aW9ucy50cmlnZ2VyLGZ1bmN0aW9uKGMpe2IudG9nZ2xlKGEodGhpcyksYyl9KX07dmFyIGk9YS5mbi50cmVlO2EuZm4udHJlZT1iLGEuZm4udHJlZS5Db25zdHJ1Y3Rvcj1oLGEuZm4udHJlZS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udHJlZT1pLHRoaXN9LGEod2luZG93KS5vbihcImxvYWRcIixmdW5jdGlvbigpe2EoZS5kYXRhKS5lYWNoKGZ1bmN0aW9uKCl7Yi5jYWxsKGEodGhpcykpfSl9KX0oalF1ZXJ5KTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9kaXN0L2pzL2FkbWlubHRlLm1pbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///51\n");

/***/ }),

/***/ 52:
/***/ (function(module, exports) {

eval("var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * jVectorMap version 1.2.2\n *\n * Copyright 2011-2013, Kirill Lebedev\n * Licensed under the MIT license.\n *\n */(function (e) {\n  var t = { set: { colors: 1, values: 1, backgroundColor: 1, scaleColors: 1, normalizeFunction: 1, focus: 1 }, get: { selectedRegions: 1, selectedMarkers: 1, mapObject: 1, regionName: 1 } };e.fn.vectorMap = function (e) {\n    var n,\n        r,\n        i,\n        n = this.children(\".jvectormap-container\").data(\"mapObject\");if (e === \"addMap\") jvm.WorldMap.maps[arguments[1]] = arguments[2];else {\n      if (!(e !== \"set\" && e !== \"get\" || !t[e][arguments[1]])) return r = arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1), n[e + r].apply(n, Array.prototype.slice.call(arguments, 2));e = e || {}, e.container = this, n = new jvm.WorldMap(e);\n    }return this;\n  };\n})(jQuery), function (e) {\n  function r(t) {\n    var n = t || window.event,\n        r = [].slice.call(arguments, 1),\n        i = 0,\n        s = !0,\n        o = 0,\n        u = 0;return t = e.event.fix(n), t.type = \"mousewheel\", n.wheelDelta && (i = n.wheelDelta / 120), n.detail && (i = -n.detail / 3), u = i, n.axis !== undefined && n.axis === n.HORIZONTAL_AXIS && (u = 0, o = -1 * i), n.wheelDeltaY !== undefined && (u = n.wheelDeltaY / 120), n.wheelDeltaX !== undefined && (o = -1 * n.wheelDeltaX / 120), r.unshift(t, i, o, u), (e.event.dispatch || e.event.handle).apply(this, r);\n  }var t = [\"DOMMouseScroll\", \"mousewheel\"];if (e.event.fixHooks) for (var n = t.length; n;) {\n    e.event.fixHooks[t[--n]] = e.event.mouseHooks;\n  }e.event.special.mousewheel = { setup: function setup() {\n      if (this.addEventListener) for (var e = t.length; e;) {\n        this.addEventListener(t[--e], r, !1);\n      } else this.onmousewheel = r;\n    }, teardown: function teardown() {\n      if (this.removeEventListener) for (var e = t.length; e;) {\n        this.removeEventListener(t[--e], r, !1);\n      } else this.onmousewheel = null;\n    } }, e.fn.extend({ mousewheel: function mousewheel(e) {\n      return e ? this.bind(\"mousewheel\", e) : this.trigger(\"mousewheel\");\n    }, unmousewheel: function unmousewheel(e) {\n      return this.unbind(\"mousewheel\", e);\n    } });\n}(jQuery);var jvm = { inherits: function inherits(e, t) {\n    function n() {}n.prototype = t.prototype, e.prototype = new n(), e.prototype.constructor = e, e.parentClass = t;\n  }, mixin: function mixin(e, t) {\n    var n;for (n in t.prototype) {\n      t.prototype.hasOwnProperty(n) && (e.prototype[n] = t.prototype[n]);\n    }\n  }, min: function min(e) {\n    var t = Number.MAX_VALUE,\n        n;if (e instanceof Array) for (n = 0; n < e.length; n++) {\n      e[n] < t && (t = e[n]);\n    } else for (n in e) {\n      e[n] < t && (t = e[n]);\n    }return t;\n  }, max: function max(e) {\n    var t = Number.MIN_VALUE,\n        n;if (e instanceof Array) for (n = 0; n < e.length; n++) {\n      e[n] > t && (t = e[n]);\n    } else for (n in e) {\n      e[n] > t && (t = e[n]);\n    }return t;\n  }, keys: function keys(e) {\n    var t = [],\n        n;for (n in e) {\n      t.push(n);\n    }return t;\n  }, values: function values(e) {\n    var t = [],\n        n,\n        r;for (r = 0; r < arguments.length; r++) {\n      e = arguments[r];for (n in e) {\n        t.push(e[n]);\n      }\n    }return t;\n  } };jvm.$ = jQuery, jvm.AbstractElement = function (e, t) {\n  this.node = this.createElement(e), this.name = e, this.properties = {}, t && this.set(t);\n}, jvm.AbstractElement.prototype.set = function (e, t) {\n  var n;if ((typeof e === \"undefined\" ? \"undefined\" : _typeof(e)) == \"object\") for (n in e) {\n    this.properties[n] = e[n], this.applyAttr(n, e[n]);\n  } else this.properties[e] = t, this.applyAttr(e, t);\n}, jvm.AbstractElement.prototype.get = function (e) {\n  return this.properties[e];\n}, jvm.AbstractElement.prototype.applyAttr = function (e, t) {\n  this.node.setAttribute(e, t);\n}, jvm.AbstractElement.prototype.remove = function () {\n  jvm.$(this.node).remove();\n}, jvm.AbstractCanvasElement = function (e, t, n) {\n  this.container = e, this.setSize(t, n), this.rootElement = new jvm[this.classPrefix + \"GroupElement\"](), this.node.appendChild(this.rootElement.node), this.container.appendChild(this.node);\n}, jvm.AbstractCanvasElement.prototype.add = function (e, t) {\n  t = t || this.rootElement, t.add(e), e.canvas = this;\n}, jvm.AbstractCanvasElement.prototype.addPath = function (e, t, n) {\n  var r = new jvm[this.classPrefix + \"PathElement\"](e, t);return this.add(r, n), r;\n}, jvm.AbstractCanvasElement.prototype.addCircle = function (e, t, n) {\n  var r = new jvm[this.classPrefix + \"CircleElement\"](e, t);return this.add(r, n), r;\n}, jvm.AbstractCanvasElement.prototype.addGroup = function (e) {\n  var t = new jvm[this.classPrefix + \"GroupElement\"]();return e ? e.node.appendChild(t.node) : this.node.appendChild(t.node), t.canvas = this, t;\n}, jvm.AbstractShapeElement = function (e, t, n) {\n  this.style = n || {}, this.style.current = {}, this.isHovered = !1, this.isSelected = !1, this.updateStyle();\n}, jvm.AbstractShapeElement.prototype.setHovered = function (e) {\n  this.isHovered !== e && (this.isHovered = e, this.updateStyle());\n}, jvm.AbstractShapeElement.prototype.setSelected = function (e) {\n  this.isSelected !== e && (this.isSelected = e, this.updateStyle(), jvm.$(this.node).trigger(\"selected\", [e]));\n}, jvm.AbstractShapeElement.prototype.setStyle = function (e, t) {\n  var n = {};(typeof e === \"undefined\" ? \"undefined\" : _typeof(e)) == \"object\" ? n = e : n[e] = t, jvm.$.extend(this.style.current, n), this.updateStyle();\n}, jvm.AbstractShapeElement.prototype.updateStyle = function () {\n  var e = {};jvm.AbstractShapeElement.mergeStyles(e, this.style.initial), jvm.AbstractShapeElement.mergeStyles(e, this.style.current), this.isHovered && jvm.AbstractShapeElement.mergeStyles(e, this.style.hover), this.isSelected && (jvm.AbstractShapeElement.mergeStyles(e, this.style.selected), this.isHovered && jvm.AbstractShapeElement.mergeStyles(e, this.style.selectedHover)), this.set(e);\n}, jvm.AbstractShapeElement.mergeStyles = function (e, t) {\n  var n;t = t || {};for (n in t) {\n    t[n] === null ? delete e[n] : e[n] = t[n];\n  }\n}, jvm.SVGElement = function (e, t) {\n  jvm.SVGElement.parentClass.apply(this, arguments);\n}, jvm.inherits(jvm.SVGElement, jvm.AbstractElement), jvm.SVGElement.svgns = \"http://www.w3.org/2000/svg\", jvm.SVGElement.prototype.createElement = function (e) {\n  return document.createElementNS(jvm.SVGElement.svgns, e);\n}, jvm.SVGElement.prototype.addClass = function (e) {\n  this.node.setAttribute(\"class\", e);\n}, jvm.SVGElement.prototype.getElementCtr = function (e) {\n  return jvm[\"SVG\" + e];\n}, jvm.SVGElement.prototype.getBBox = function () {\n  return this.node.getBBox();\n}, jvm.SVGGroupElement = function () {\n  jvm.SVGGroupElement.parentClass.call(this, \"g\");\n}, jvm.inherits(jvm.SVGGroupElement, jvm.SVGElement), jvm.SVGGroupElement.prototype.add = function (e) {\n  this.node.appendChild(e.node);\n}, jvm.SVGCanvasElement = function (e, t, n) {\n  this.classPrefix = \"SVG\", jvm.SVGCanvasElement.parentClass.call(this, \"svg\"), jvm.AbstractCanvasElement.apply(this, arguments);\n}, jvm.inherits(jvm.SVGCanvasElement, jvm.SVGElement), jvm.mixin(jvm.SVGCanvasElement, jvm.AbstractCanvasElement), jvm.SVGCanvasElement.prototype.setSize = function (e, t) {\n  this.width = e, this.height = t, this.node.setAttribute(\"width\", e), this.node.setAttribute(\"height\", t);\n}, jvm.SVGCanvasElement.prototype.applyTransformParams = function (e, t, n) {\n  this.scale = e, this.transX = t, this.transY = n, this.rootElement.node.setAttribute(\"transform\", \"scale(\" + e + \") translate(\" + t + \", \" + n + \")\");\n}, jvm.SVGShapeElement = function (e, t, n) {\n  jvm.SVGShapeElement.parentClass.call(this, e, t), jvm.AbstractShapeElement.apply(this, arguments);\n}, jvm.inherits(jvm.SVGShapeElement, jvm.SVGElement), jvm.mixin(jvm.SVGShapeElement, jvm.AbstractShapeElement), jvm.SVGPathElement = function (e, t) {\n  jvm.SVGPathElement.parentClass.call(this, \"path\", e, t), this.node.setAttribute(\"fill-rule\", \"evenodd\");\n}, jvm.inherits(jvm.SVGPathElement, jvm.SVGShapeElement), jvm.SVGCircleElement = function (e, t) {\n  jvm.SVGCircleElement.parentClass.call(this, \"circle\", e, t);\n}, jvm.inherits(jvm.SVGCircleElement, jvm.SVGShapeElement), jvm.VMLElement = function (e, t) {\n  jvm.VMLElement.VMLInitialized || jvm.VMLElement.initializeVML(), jvm.VMLElement.parentClass.apply(this, arguments);\n}, jvm.inherits(jvm.VMLElement, jvm.AbstractElement), jvm.VMLElement.VMLInitialized = !1, jvm.VMLElement.initializeVML = function () {\n  try {\n    document.namespaces.rvml || document.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\"), jvm.VMLElement.prototype.createElement = function (e) {\n      return document.createElement(\"<rvml:\" + e + ' class=\"rvml\">');\n    };\n  } catch (e) {\n    jvm.VMLElement.prototype.createElement = function (e) {\n      return document.createElement(\"<\" + e + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n    };\n  }document.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\"), jvm.VMLElement.VMLInitialized = !0;\n}, jvm.VMLElement.prototype.getElementCtr = function (e) {\n  return jvm[\"VML\" + e];\n}, jvm.VMLElement.prototype.addClass = function (e) {\n  jvm.$(this.node).addClass(e);\n}, jvm.VMLElement.prototype.applyAttr = function (e, t) {\n  this.node[e] = t;\n}, jvm.VMLElement.prototype.getBBox = function () {\n  var e = jvm.$(this.node);return { x: e.position().left / this.canvas.scale, y: e.position().top / this.canvas.scale, width: e.width() / this.canvas.scale, height: e.height() / this.canvas.scale };\n}, jvm.VMLGroupElement = function () {\n  jvm.VMLGroupElement.parentClass.call(this, \"group\"), this.node.style.left = \"0px\", this.node.style.top = \"0px\", this.node.coordorigin = \"0 0\";\n}, jvm.inherits(jvm.VMLGroupElement, jvm.VMLElement), jvm.VMLGroupElement.prototype.add = function (e) {\n  this.node.appendChild(e.node);\n}, jvm.VMLCanvasElement = function (e, t, n) {\n  this.classPrefix = \"VML\", jvm.VMLCanvasElement.parentClass.call(this, \"group\"), jvm.AbstractCanvasElement.apply(this, arguments), this.node.style.position = \"absolute\";\n}, jvm.inherits(jvm.VMLCanvasElement, jvm.VMLElement), jvm.mixin(jvm.VMLCanvasElement, jvm.AbstractCanvasElement), jvm.VMLCanvasElement.prototype.setSize = function (e, t) {\n  var n, r, i, s;this.width = e, this.height = t, this.node.style.width = e + \"px\", this.node.style.height = t + \"px\", this.node.coordsize = e + \" \" + t, this.node.coordorigin = \"0 0\";if (this.rootElement) {\n    n = this.rootElement.node.getElementsByTagName(\"shape\");for (i = 0, s = n.length; i < s; i++) {\n      n[i].coordsize = e + \" \" + t, n[i].style.width = e + \"px\", n[i].style.height = t + \"px\";\n    }r = this.node.getElementsByTagName(\"group\");for (i = 0, s = r.length; i < s; i++) {\n      r[i].coordsize = e + \" \" + t, r[i].style.width = e + \"px\", r[i].style.height = t + \"px\";\n    }\n  }\n}, jvm.VMLCanvasElement.prototype.applyTransformParams = function (e, t, n) {\n  this.scale = e, this.transX = t, this.transY = n, this.rootElement.node.coordorigin = this.width - t - this.width / 100 + \",\" + (this.height - n - this.height / 100), this.rootElement.node.coordsize = this.width / e + \",\" + this.height / e;\n}, jvm.VMLShapeElement = function (e, t) {\n  jvm.VMLShapeElement.parentClass.call(this, e, t), this.fillElement = new jvm.VMLElement(\"fill\"), this.strokeElement = new jvm.VMLElement(\"stroke\"), this.node.appendChild(this.fillElement.node), this.node.appendChild(this.strokeElement.node), this.node.stroked = !1, jvm.AbstractShapeElement.apply(this, arguments);\n}, jvm.inherits(jvm.VMLShapeElement, jvm.VMLElement), jvm.mixin(jvm.VMLShapeElement, jvm.AbstractShapeElement), jvm.VMLShapeElement.prototype.applyAttr = function (e, t) {\n  switch (e) {case \"fill\":\n      this.node.fillcolor = t;break;case \"fill-opacity\":\n      this.fillElement.node.opacity = Math.round(t * 100) + \"%\";break;case \"stroke\":\n      t === \"none\" ? this.node.stroked = !1 : this.node.stroked = !0, this.node.strokecolor = t;break;case \"stroke-opacity\":\n      this.strokeElement.node.opacity = Math.round(t * 100) + \"%\";break;case \"stroke-width\":\n      parseInt(t, 10) === 0 ? this.node.stroked = !1 : this.node.stroked = !0, this.node.strokeweight = t;break;case \"d\":\n      this.node.path = jvm.VMLPathElement.pathSvgToVml(t);break;default:\n      jvm.VMLShapeElement.parentClass.prototype.applyAttr.apply(this, arguments);}\n}, jvm.VMLPathElement = function (e, t) {\n  var n = new jvm.VMLElement(\"skew\");jvm.VMLPathElement.parentClass.call(this, \"shape\", e, t), this.node.coordorigin = \"0 0\", n.node.on = !0, n.node.matrix = \"0.01,0,0,0.01,0,0\", n.node.offset = \"0,0\", this.node.appendChild(n.node);\n}, jvm.inherits(jvm.VMLPathElement, jvm.VMLShapeElement), jvm.VMLPathElement.prototype.applyAttr = function (e, t) {\n  e === \"d\" ? this.node.path = jvm.VMLPathElement.pathSvgToVml(t) : jvm.VMLShapeElement.prototype.applyAttr.call(this, e, t);\n}, jvm.VMLPathElement.pathSvgToVml = function (e) {\n  var t = \"\",\n      n = 0,\n      r = 0,\n      i,\n      s;return e = e.replace(/(-?\\d+)e(-?\\d+)/g, \"0\"), e.replace(/([MmLlHhVvCcSs])\\s*((?:-?\\d*(?:\\.\\d+)?\\s*,?\\s*)+)/g, function (e, t, o, u) {\n    o = o.replace(/(\\d)-/g, \"$1,-\").replace(/^\\s+/g, \"\").replace(/\\s+$/g, \"\").replace(/\\s+/g, \",\").split(\",\"), o[0] || o.shift();for (var a = 0, f = o.length; a < f; a++) {\n      o[a] = Math.round(100 * o[a]);\n    }switch (t) {case \"m\":\n        return n += o[0], r += o[1], \"t\" + o.join(\",\");case \"M\":\n        return n = o[0], r = o[1], \"m\" + o.join(\",\");case \"l\":\n        return n += o[0], r += o[1], \"r\" + o.join(\",\");case \"L\":\n        return n = o[0], r = o[1], \"l\" + o.join(\",\");case \"h\":\n        return n += o[0], \"r\" + o[0] + \",0\";case \"H\":\n        return n = o[0], \"l\" + n + \",\" + r;case \"v\":\n        return r += o[0], \"r0,\" + o[0];case \"V\":\n        return r = o[0], \"l\" + n + \",\" + r;case \"c\":\n        return i = n + o[o.length - 4], s = r + o[o.length - 3], n += o[o.length - 2], r += o[o.length - 1], \"v\" + o.join(\",\");case \"C\":\n        return i = o[o.length - 4], s = o[o.length - 3], n = o[o.length - 2], r = o[o.length - 1], \"c\" + o.join(\",\");case \"s\":\n        return o.unshift(r - s), o.unshift(n - i), i = n + o[o.length - 4], s = r + o[o.length - 3], n += o[o.length - 2], r += o[o.length - 1], \"v\" + o.join(\",\");case \"S\":\n        return o.unshift(r + r - s), o.unshift(n + n - i), i = o[o.length - 4], s = o[o.length - 3], n = o[o.length - 2], r = o[o.length - 1], \"c\" + o.join(\",\");}return \"\";\n  }).replace(/z/g, \"e\");\n}, jvm.VMLCircleElement = function (e, t) {\n  jvm.VMLCircleElement.parentClass.call(this, \"oval\", e, t);\n}, jvm.inherits(jvm.VMLCircleElement, jvm.VMLShapeElement), jvm.VMLCircleElement.prototype.applyAttr = function (e, t) {\n  switch (e) {case \"r\":\n      this.node.style.width = t * 2 + \"px\", this.node.style.height = t * 2 + \"px\", this.applyAttr(\"cx\", this.get(\"cx\") || 0), this.applyAttr(\"cy\", this.get(\"cy\") || 0);break;case \"cx\":\n      if (!t) return;this.node.style.left = t - (this.get(\"r\") || 0) + \"px\";break;case \"cy\":\n      if (!t) return;this.node.style.top = t - (this.get(\"r\") || 0) + \"px\";break;default:\n      jvm.VMLCircleElement.parentClass.prototype.applyAttr.call(this, e, t);}\n}, jvm.VectorCanvas = function (e, t, n) {\n  return this.mode = window.SVGAngle ? \"svg\" : \"vml\", this.mode == \"svg\" ? this.impl = new jvm.SVGCanvasElement(e, t, n) : this.impl = new jvm.VMLCanvasElement(e, t, n), this.impl;\n}, jvm.SimpleScale = function (e) {\n  this.scale = e;\n}, jvm.SimpleScale.prototype.getValue = function (e) {\n  return e;\n}, jvm.OrdinalScale = function (e) {\n  this.scale = e;\n}, jvm.OrdinalScale.prototype.getValue = function (e) {\n  return this.scale[e];\n}, jvm.NumericScale = function (e, t, n, r) {\n  this.scale = [], t = t || \"linear\", e && this.setScale(e), t && this.setNormalizeFunction(t), n && this.setMin(n), r && this.setMax(r);\n}, jvm.NumericScale.prototype = { setMin: function setMin(e) {\n    this.clearMinValue = e, typeof this.normalize == \"function\" ? this.minValue = this.normalize(e) : this.minValue = e;\n  }, setMax: function setMax(e) {\n    this.clearMaxValue = e, typeof this.normalize == \"function\" ? this.maxValue = this.normalize(e) : this.maxValue = e;\n  }, setScale: function setScale(e) {\n    var t;for (t = 0; t < e.length; t++) {\n      this.scale[t] = [e[t]];\n    }\n  }, setNormalizeFunction: function setNormalizeFunction(e) {\n    e === \"polynomial\" ? this.normalize = function (e) {\n      return Math.pow(e, .2);\n    } : e === \"linear\" ? delete this.normalize : this.normalize = e, this.setMin(this.clearMinValue), this.setMax(this.clearMaxValue);\n  }, getValue: function getValue(e) {\n    var t = [],\n        n = 0,\n        r,\n        i = 0,\n        s;typeof this.normalize == \"function\" && (e = this.normalize(e));for (i = 0; i < this.scale.length - 1; i++) {\n      r = this.vectorLength(this.vectorSubtract(this.scale[i + 1], this.scale[i])), t.push(r), n += r;\n    }s = (this.maxValue - this.minValue) / n;for (i = 0; i < t.length; i++) {\n      t[i] *= s;\n    }i = 0, e -= this.minValue;while (e - t[i] >= 0) {\n      e -= t[i], i++;\n    }return i == this.scale.length - 1 ? e = this.vectorToNum(this.scale[i]) : e = this.vectorToNum(this.vectorAdd(this.scale[i], this.vectorMult(this.vectorSubtract(this.scale[i + 1], this.scale[i]), e / t[i]))), e;\n  }, vectorToNum: function vectorToNum(e) {\n    var t = 0,\n        n;for (n = 0; n < e.length; n++) {\n      t += Math.round(e[n]) * Math.pow(256, e.length - n - 1);\n    }return t;\n  }, vectorSubtract: function vectorSubtract(e, t) {\n    var n = [],\n        r;for (r = 0; r < e.length; r++) {\n      n[r] = e[r] - t[r];\n    }return n;\n  }, vectorAdd: function vectorAdd(e, t) {\n    var n = [],\n        r;for (r = 0; r < e.length; r++) {\n      n[r] = e[r] + t[r];\n    }return n;\n  }, vectorMult: function vectorMult(e, t) {\n    var n = [],\n        r;for (r = 0; r < e.length; r++) {\n      n[r] = e[r] * t;\n    }return n;\n  }, vectorLength: function vectorLength(e) {\n    var t = 0,\n        n;for (n = 0; n < e.length; n++) {\n      t += e[n] * e[n];\n    }return Math.sqrt(t);\n  } }, jvm.ColorScale = function (e, t, n, r) {\n  jvm.ColorScale.parentClass.apply(this, arguments);\n}, jvm.inherits(jvm.ColorScale, jvm.NumericScale), jvm.ColorScale.prototype.setScale = function (e) {\n  var t;for (t = 0; t < e.length; t++) {\n    this.scale[t] = jvm.ColorScale.rgbToArray(e[t]);\n  }\n}, jvm.ColorScale.prototype.getValue = function (e) {\n  return jvm.ColorScale.numToRgb(jvm.ColorScale.parentClass.prototype.getValue.call(this, e));\n}, jvm.ColorScale.arrayToRgb = function (e) {\n  var t = \"#\",\n      n,\n      r;for (r = 0; r < e.length; r++) {\n    n = e[r].toString(16), t += n.length == 1 ? \"0\" + n : n;\n  }return t;\n}, jvm.ColorScale.numToRgb = function (e) {\n  e = e.toString(16);while (e.length < 6) {\n    e = \"0\" + e;\n  }return \"#\" + e;\n}, jvm.ColorScale.rgbToArray = function (e) {\n  return e = e.substr(1), [parseInt(e.substr(0, 2), 16), parseInt(e.substr(2, 2), 16), parseInt(e.substr(4, 2), 16)];\n}, jvm.DataSeries = function (e, t) {\n  var n;e = e || {}, e.attribute = e.attribute || \"fill\", this.elements = t, this.params = e, e.attributes && this.setAttributes(e.attributes), jvm.$.isArray(e.scale) ? (n = e.attribute === \"fill\" || e.attribute === \"stroke\" ? jvm.ColorScale : jvm.NumericScale, this.scale = new n(e.scale, e.normalizeFunction, e.min, e.max)) : e.scale ? this.scale = new jvm.OrdinalScale(e.scale) : this.scale = new jvm.SimpleScale(e.scale), this.values = e.values || {}, this.setValues(this.values);\n}, jvm.DataSeries.prototype = { setAttributes: function setAttributes(e, t) {\n    var n = e,\n        r;if (typeof e == \"string\") this.elements[e] && this.elements[e].setStyle(this.params.attribute, t);else for (r in n) {\n      this.elements[r] && this.elements[r].element.setStyle(this.params.attribute, n[r]);\n    }\n  }, setValues: function setValues(e) {\n    var t = Number.MIN_VALUE,\n        n = Number.MAX_VALUE,\n        r,\n        i,\n        s = {};if (this.scale instanceof jvm.OrdinalScale || this.scale instanceof jvm.SimpleScale) for (i in e) {\n      e[i] ? s[i] = this.scale.getValue(e[i]) : s[i] = this.elements[i].element.style.initial[this.params.attribute];\n    } else {\n      if (!this.params.min || !this.params.max) {\n        for (i in e) {\n          r = parseFloat(e[i]), r > t && (t = e[i]), r < n && (n = r);\n        }this.params.min || this.scale.setMin(n), this.params.max || this.scale.setMax(t), this.params.min = n, this.params.max = t;\n      }for (i in e) {\n        r = parseFloat(e[i]), isNaN(r) ? s[i] = this.elements[i].element.style.initial[this.params.attribute] : s[i] = this.scale.getValue(r);\n      }\n    }this.setAttributes(s), jvm.$.extend(this.values, e);\n  }, clear: function clear() {\n    var e,\n        t = {};for (e in this.values) {\n      this.elements[e] && (t[e] = this.elements[e].element.style.initial[this.params.attribute]);\n    }this.setAttributes(t), this.values = {};\n  }, setScale: function setScale(e) {\n    this.scale.setScale(e), this.values && this.setValues(this.values);\n  }, setNormalizeFunction: function setNormalizeFunction(e) {\n    this.scale.setNormalizeFunction(e), this.values && this.setValues(this.values);\n  } }, jvm.Proj = { degRad: 180 / Math.PI, radDeg: Math.PI / 180, radius: 6381372, sgn: function sgn(e) {\n    return e > 0 ? 1 : e < 0 ? -1 : e;\n  }, mill: function mill(e, t, n) {\n    return { x: this.radius * (t - n) * this.radDeg, y: -this.radius * Math.log(Math.tan((45 + .4 * e) * this.radDeg)) / .8 };\n  }, mill_inv: function mill_inv(e, t, n) {\n    return { lat: (2.5 * Math.atan(Math.exp(.8 * t / this.radius)) - 5 * Math.PI / 8) * this.degRad, lng: (n * this.radDeg + e / this.radius) * this.degRad };\n  }, merc: function merc(e, t, n) {\n    return { x: this.radius * (t - n) * this.radDeg, y: -this.radius * Math.log(Math.tan(Math.PI / 4 + e * Math.PI / 360)) };\n  }, merc_inv: function merc_inv(e, t, n) {\n    return { lat: (2 * Math.atan(Math.exp(t / this.radius)) - Math.PI / 2) * this.degRad, lng: (n * this.radDeg + e / this.radius) * this.degRad };\n  }, aea: function aea(e, t, n) {\n    var r = 0,\n        i = n * this.radDeg,\n        s = 29.5 * this.radDeg,\n        o = 45.5 * this.radDeg,\n        u = e * this.radDeg,\n        a = t * this.radDeg,\n        f = (Math.sin(s) + Math.sin(o)) / 2,\n        l = Math.cos(s) * Math.cos(s) + 2 * f * Math.sin(s),\n        c = f * (a - i),\n        h = Math.sqrt(l - 2 * f * Math.sin(u)) / f,\n        p = Math.sqrt(l - 2 * f * Math.sin(r)) / f;return { x: h * Math.sin(c) * this.radius, y: -(p - h * Math.cos(c)) * this.radius };\n  }, aea_inv: function aea_inv(e, t, n) {\n    var r = e / this.radius,\n        i = t / this.radius,\n        s = 0,\n        o = n * this.radDeg,\n        u = 29.5 * this.radDeg,\n        a = 45.5 * this.radDeg,\n        f = (Math.sin(u) + Math.sin(a)) / 2,\n        l = Math.cos(u) * Math.cos(u) + 2 * f * Math.sin(u),\n        c = Math.sqrt(l - 2 * f * Math.sin(s)) / f,\n        h = Math.sqrt(r * r + (c - i) * (c - i)),\n        p = Math.atan(r / (c - i));return { lat: Math.asin((l - h * h * f * f) / (2 * f)) * this.degRad, lng: (o + p / f) * this.degRad };\n  }, lcc: function lcc(e, t, n) {\n    var r = 0,\n        i = n * this.radDeg,\n        s = t * this.radDeg,\n        o = 33 * this.radDeg,\n        u = 45 * this.radDeg,\n        a = e * this.radDeg,\n        f = Math.log(Math.cos(o) * (1 / Math.cos(u))) / Math.log(Math.tan(Math.PI / 4 + u / 2) * (1 / Math.tan(Math.PI / 4 + o / 2))),\n        l = Math.cos(o) * Math.pow(Math.tan(Math.PI / 4 + o / 2), f) / f,\n        c = l * Math.pow(1 / Math.tan(Math.PI / 4 + a / 2), f),\n        h = l * Math.pow(1 / Math.tan(Math.PI / 4 + r / 2), f);return { x: c * Math.sin(f * (s - i)) * this.radius, y: -(h - c * Math.cos(f * (s - i))) * this.radius };\n  }, lcc_inv: function lcc_inv(e, t, n) {\n    var r = e / this.radius,\n        i = t / this.radius,\n        s = 0,\n        o = n * this.radDeg,\n        u = 33 * this.radDeg,\n        a = 45 * this.radDeg,\n        f = Math.log(Math.cos(u) * (1 / Math.cos(a))) / Math.log(Math.tan(Math.PI / 4 + a / 2) * (1 / Math.tan(Math.PI / 4 + u / 2))),\n        l = Math.cos(u) * Math.pow(Math.tan(Math.PI / 4 + u / 2), f) / f,\n        c = l * Math.pow(1 / Math.tan(Math.PI / 4 + s / 2), f),\n        h = this.sgn(f) * Math.sqrt(r * r + (c - i) * (c - i)),\n        p = Math.atan(r / (c - i));return { lat: (2 * Math.atan(Math.pow(l / h, 1 / f)) - Math.PI / 2) * this.degRad, lng: (o + p / f) * this.degRad };\n  } }, jvm.WorldMap = function (e) {\n  var t = this,\n      n;this.params = jvm.$.extend(!0, {}, jvm.WorldMap.defaultParams, e);if (!jvm.WorldMap.maps[this.params.map]) throw new Error(\"Attempt to use map which was not loaded: \" + this.params.map);this.mapData = jvm.WorldMap.maps[this.params.map], this.markers = {}, this.regions = {}, this.regionsColors = {}, this.regionsData = {}, this.container = jvm.$(\"<div>\").css({ width: \"100%\", height: \"100%\" }).addClass(\"jvectormap-container\"), this.params.container.append(this.container), this.container.data(\"mapObject\", this), this.container.css({ position: \"relative\", overflow: \"hidden\" }), this.defaultWidth = this.mapData.width, this.defaultHeight = this.mapData.height, this.setBackgroundColor(this.params.backgroundColor), this.onResize = function () {\n    t.setSize();\n  }, jvm.$(window).resize(this.onResize);for (n in jvm.WorldMap.apiEvents) {\n    this.params[n] && this.container.bind(jvm.WorldMap.apiEvents[n] + \".jvectormap\", this.params[n]);\n  }this.canvas = new jvm.VectorCanvas(this.container[0], this.width, this.height), \"ontouchstart\" in window || window.DocumentTouch && document instanceof DocumentTouch ? this.params.bindTouchEvents && this.bindContainerTouchEvents() : this.bindContainerEvents(), this.bindElementEvents(), this.createLabel(), this.params.zoomButtons && this.bindZoomButtons(), this.createRegions(), this.createMarkers(this.params.markers || {}), this.setSize(), this.params.focusOn && (_typeof(this.params.focusOn) == \"object\" ? this.setFocus.call(this, this.params.focusOn.scale, this.params.focusOn.x, this.params.focusOn.y) : this.setFocus.call(this, this.params.focusOn)), this.params.selectedRegions && this.setSelectedRegions(this.params.selectedRegions), this.params.selectedMarkers && this.setSelectedMarkers(this.params.selectedMarkers), this.params.series && this.createSeries();\n}, jvm.WorldMap.prototype = { transX: 0, transY: 0, scale: 1, baseTransX: 0, baseTransY: 0, baseScale: 1, width: 0, height: 0, setBackgroundColor: function setBackgroundColor(e) {\n    this.container.css(\"background-color\", e);\n  }, resize: function resize() {\n    var e = this.baseScale;this.width / this.height > this.defaultWidth / this.defaultHeight ? (this.baseScale = this.height / this.defaultHeight, this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale)) : (this.baseScale = this.width / this.defaultWidth, this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale)), this.scale *= this.baseScale / e, this.transX *= this.baseScale / e, this.transY *= this.baseScale / e;\n  }, setSize: function setSize() {\n    this.width = this.container.width(), this.height = this.container.height(), this.resize(), this.canvas.setSize(this.width, this.height), this.applyTransform();\n  }, reset: function reset() {\n    var e, t;for (e in this.series) {\n      for (t = 0; t < this.series[e].length; t++) {\n        this.series[e][t].clear();\n      }\n    }this.scale = this.baseScale, this.transX = this.baseTransX, this.transY = this.baseTransY, this.applyTransform();\n  }, applyTransform: function applyTransform() {\n    var e, t, n, r;this.defaultWidth * this.scale <= this.width ? (e = (this.width - this.defaultWidth * this.scale) / (2 * this.scale), n = (this.width - this.defaultWidth * this.scale) / (2 * this.scale)) : (e = 0, n = (this.width - this.defaultWidth * this.scale) / this.scale), this.defaultHeight * this.scale <= this.height ? (t = (this.height - this.defaultHeight * this.scale) / (2 * this.scale), r = (this.height - this.defaultHeight * this.scale) / (2 * this.scale)) : (t = 0, r = (this.height - this.defaultHeight * this.scale) / this.scale), this.transY > t ? this.transY = t : this.transY < r && (this.transY = r), this.transX > e ? this.transX = e : this.transX < n && (this.transX = n), this.canvas.applyTransformParams(this.scale, this.transX, this.transY), this.markers && this.repositionMarkers(), this.container.trigger(\"viewportChange\", [this.scale / this.baseScale, this.transX, this.transY]);\n  }, bindContainerEvents: function bindContainerEvents() {\n    var e = !1,\n        t,\n        n,\n        r = this;this.container.mousemove(function (i) {\n      return e && (r.transX -= (t - i.pageX) / r.scale, r.transY -= (n - i.pageY) / r.scale, r.applyTransform(), t = i.pageX, n = i.pageY), !1;\n    }).mousedown(function (r) {\n      return e = !0, t = r.pageX, n = r.pageY, !1;\n    }), jvm.$(\"body\").mouseup(function () {\n      e = !1;\n    }), this.params.zoomOnScroll && this.container.mousewheel(function (e, t, n, i) {\n      var s = jvm.$(r.container).offset(),\n          o = e.pageX - s.left,\n          u = e.pageY - s.top,\n          a = Math.pow(1.3, i);r.label.hide(), r.setScale(r.scale * a, o, u), e.preventDefault();\n    });\n  }, bindContainerTouchEvents: function bindContainerTouchEvents() {\n    var e,\n        t,\n        n = this,\n        r,\n        i,\n        s,\n        o,\n        u,\n        a = function a(_a) {\n      var f = _a.originalEvent.touches,\n          l,\n          c,\n          h,\n          p;_a.type == \"touchstart\" && (u = 0), f.length == 1 ? (u == 1 && (h = n.transX, p = n.transY, n.transX -= (r - f[0].pageX) / n.scale, n.transY -= (i - f[0].pageY) / n.scale, n.applyTransform(), n.label.hide(), (h != n.transX || p != n.transY) && _a.preventDefault()), r = f[0].pageX, i = f[0].pageY) : f.length == 2 && (u == 2 ? (c = Math.sqrt(Math.pow(f[0].pageX - f[1].pageX, 2) + Math.pow(f[0].pageY - f[1].pageY, 2)) / t, n.setScale(e * c, s, o), n.label.hide(), _a.preventDefault()) : (l = jvm.$(n.container).offset(), f[0].pageX > f[1].pageX ? s = f[1].pageX + (f[0].pageX - f[1].pageX) / 2 : s = f[0].pageX + (f[1].pageX - f[0].pageX) / 2, f[0].pageY > f[1].pageY ? o = f[1].pageY + (f[0].pageY - f[1].pageY) / 2 : o = f[0].pageY + (f[1].pageY - f[0].pageY) / 2, s -= l.left, o -= l.top, e = n.scale, t = Math.sqrt(Math.pow(f[0].pageX - f[1].pageX, 2) + Math.pow(f[0].pageY - f[1].pageY, 2)))), u = f.length;\n    };jvm.$(this.container).bind(\"touchstart\", a), jvm.$(this.container).bind(\"touchmove\", a);\n  }, bindElementEvents: function bindElementEvents() {\n    var e = this,\n        t;this.container.mousemove(function () {\n      t = !0;\n    }), this.container.delegate(\"[class~='jvectormap-element']\", \"mouseover mouseout\", function (t) {\n      var n = this,\n          r = jvm.$(this).attr(\"class\").baseVal ? jvm.$(this).attr(\"class\").baseVal : jvm.$(this).attr(\"class\"),\n          i = r.indexOf(\"jvectormap-region\") === -1 ? \"marker\" : \"region\",\n          s = i == \"region\" ? jvm.$(this).attr(\"data-code\") : jvm.$(this).attr(\"data-index\"),\n          o = i == \"region\" ? e.regions[s].element : e.markers[s].element,\n          u = i == \"region\" ? e.mapData.paths[s].name : e.markers[s].config.name || \"\",\n          a = jvm.$.Event(i + \"LabelShow.jvectormap\"),\n          f = jvm.$.Event(i + \"Over.jvectormap\");t.type == \"mouseover\" ? (e.container.trigger(f, [s]), f.isDefaultPrevented() || o.setHovered(!0), e.label.text(u), e.container.trigger(a, [e.label, s]), a.isDefaultPrevented() || (e.label.show(), e.labelWidth = e.label.width(), e.labelHeight = e.label.height())) : (o.setHovered(!1), e.label.hide(), e.container.trigger(i + \"Out.jvectormap\", [s]));\n    }), this.container.delegate(\"[class~='jvectormap-element']\", \"mousedown\", function (e) {\n      t = !1;\n    }), this.container.delegate(\"[class~='jvectormap-element']\", \"mouseup\", function (n) {\n      var r = this,\n          i = jvm.$(this).attr(\"class\").baseVal ? jvm.$(this).attr(\"class\").baseVal : jvm.$(this).attr(\"class\"),\n          s = i.indexOf(\"jvectormap-region\") === -1 ? \"marker\" : \"region\",\n          o = s == \"region\" ? jvm.$(this).attr(\"data-code\") : jvm.$(this).attr(\"data-index\"),\n          u = jvm.$.Event(s + \"Click.jvectormap\"),\n          a = s == \"region\" ? e.regions[o].element : e.markers[o].element;if (!t) {\n        e.container.trigger(u, [o]);if (s === \"region\" && e.params.regionsSelectable || s === \"marker\" && e.params.markersSelectable) u.isDefaultPrevented() || (e.params[s + \"sSelectableOne\"] && e.clearSelected(s + \"s\"), a.setSelected(!a.isSelected));\n      }\n    });\n  }, bindZoomButtons: function bindZoomButtons() {\n    var e = this;jvm.$(\"<div/>\").addClass(\"jvectormap-zoomin\").text(\"+\").appendTo(this.container), jvm.$(\"<div/>\").addClass(\"jvectormap-zoomout\").html(\"&#x2212;\").appendTo(this.container), this.container.find(\".jvectormap-zoomin\").click(function () {\n      e.setScale(e.scale * e.params.zoomStep, e.width / 2, e.height / 2);\n    }), this.container.find(\".jvectormap-zoomout\").click(function () {\n      e.setScale(e.scale / e.params.zoomStep, e.width / 2, e.height / 2);\n    });\n  }, createLabel: function createLabel() {\n    var e = this;this.label = jvm.$(\"<div/>\").addClass(\"jvectormap-label\").appendTo(jvm.$(\"body\")), this.container.mousemove(function (t) {\n      var n = t.pageX - 15 - e.labelWidth,\n          r = t.pageY - 15 - e.labelHeight;n < 5 && (n = t.pageX + 15), r < 5 && (r = t.pageY + 15), e.label.is(\":visible\") && e.label.css({ left: n, top: r });\n    });\n  }, setScale: function setScale(e, t, n, r) {\n    var i,\n        s = jvm.$.Event(\"zoom.jvectormap\");e > this.params.zoomMax * this.baseScale ? e = this.params.zoomMax * this.baseScale : e < this.params.zoomMin * this.baseScale && (e = this.params.zoomMin * this.baseScale), typeof t != \"undefined\" && typeof n != \"undefined\" && (i = e / this.scale, r ? (this.transX = t + this.defaultWidth * (this.width / (this.defaultWidth * e)) / 2, this.transY = n + this.defaultHeight * (this.height / (this.defaultHeight * e)) / 2) : (this.transX -= (i - 1) / e * t, this.transY -= (i - 1) / e * n)), this.scale = e, this.applyTransform(), this.container.trigger(s, [e / this.baseScale]);\n  }, setFocus: function setFocus(e, t, n) {\n    var r, i, s, o, u;if (jvm.$.isArray(e) || this.regions[e]) {\n      jvm.$.isArray(e) ? o = e : o = [e];for (u = 0; u < o.length; u++) {\n        this.regions[o[u]] && (i = this.regions[o[u]].element.getBBox(), i && (typeof r == \"undefined\" ? r = i : (s = { x: Math.min(r.x, i.x), y: Math.min(r.y, i.y), width: Math.max(r.x + r.width, i.x + i.width) - Math.min(r.x, i.x), height: Math.max(r.y + r.height, i.y + i.height) - Math.min(r.y, i.y) }, r = s)));\n      }this.setScale(Math.min(this.width / r.width, this.height / r.height), -(r.x + r.width / 2), -(r.y + r.height / 2), !0);\n    } else e *= this.baseScale, this.setScale(e, -t * this.defaultWidth, -n * this.defaultHeight, !0);\n  }, getSelected: function getSelected(e) {\n    var t,\n        n = [];for (t in this[e]) {\n      this[e][t].element.isSelected && n.push(t);\n    }return n;\n  }, getSelectedRegions: function getSelectedRegions() {\n    return this.getSelected(\"regions\");\n  }, getSelectedMarkers: function getSelectedMarkers() {\n    return this.getSelected(\"markers\");\n  }, setSelected: function setSelected(e, t) {\n    var n;(typeof t === \"undefined\" ? \"undefined\" : _typeof(t)) != \"object\" && (t = [t]);if (jvm.$.isArray(t)) for (n = 0; n < t.length; n++) {\n      this[e][t[n]].element.setSelected(!0);\n    } else for (n in t) {\n      this[e][n].element.setSelected(!!t[n]);\n    }\n  }, setSelectedRegions: function setSelectedRegions(e) {\n    this.setSelected(\"regions\", e);\n  }, setSelectedMarkers: function setSelectedMarkers(e) {\n    this.setSelected(\"markers\", e);\n  }, clearSelected: function clearSelected(e) {\n    var t = {},\n        n = this.getSelected(e),\n        r;for (r = 0; r < n.length; r++) {\n      t[n[r]] = !1;\n    }this.setSelected(e, t);\n  }, clearSelectedRegions: function clearSelectedRegions() {\n    this.clearSelected(\"regions\");\n  }, clearSelectedMarkers: function clearSelectedMarkers() {\n    this.clearSelected(\"markers\");\n  }, getMapObject: function getMapObject() {\n    return this;\n  }, getRegionName: function getRegionName(e) {\n    return this.mapData.paths[e].name;\n  }, createRegions: function createRegions() {\n    var e,\n        t,\n        n = this;for (e in this.mapData.paths) {\n      t = this.canvas.addPath({ d: this.mapData.paths[e].path, \"data-code\": e }, jvm.$.extend(!0, {}, this.params.regionStyle)), jvm.$(t.node).bind(\"selected\", function (e, t) {\n        n.container.trigger(\"regionSelected.jvectormap\", [jvm.$(this).attr(\"data-code\"), t, n.getSelectedRegions()]);\n      }), t.addClass(\"jvectormap-region jvectormap-element\"), this.regions[e] = { element: t, config: this.mapData.paths[e] };\n    }\n  }, createMarkers: function createMarkers(e) {\n    var t,\n        n,\n        r,\n        i,\n        s,\n        o = this;this.markersGroup = this.markersGroup || this.canvas.addGroup();if (jvm.$.isArray(e)) {\n      s = e.slice(), e = {};for (t = 0; t < s.length; t++) {\n        e[t] = s[t];\n      }\n    }for (t in e) {\n      i = e[t] instanceof Array ? { latLng: e[t] } : e[t], r = this.getMarkerPosition(i), r !== !1 && (n = this.canvas.addCircle({ \"data-index\": t, cx: r.x, cy: r.y }, jvm.$.extend(!0, {}, this.params.markerStyle, { initial: i.style || {} }), this.markersGroup), n.addClass(\"jvectormap-marker jvectormap-element\"), jvm.$(n.node).bind(\"selected\", function (e, t) {\n        o.container.trigger(\"markerSelected.jvectormap\", [jvm.$(this).attr(\"data-index\"), t, o.getSelectedMarkers()]);\n      }), this.markers[t] && this.removeMarkers([t]), this.markers[t] = { element: n, config: i });\n    }\n  }, repositionMarkers: function repositionMarkers() {\n    var e, t;for (e in this.markers) {\n      t = this.getMarkerPosition(this.markers[e].config), t !== !1 && this.markers[e].element.setStyle({ cx: t.x, cy: t.y });\n    }\n  }, getMarkerPosition: function getMarkerPosition(e) {\n    return jvm.WorldMap.maps[this.params.map].projection ? this.latLngToPoint.apply(this, e.latLng || [0, 0]) : { x: e.coords[0] * this.scale + this.transX * this.scale, y: e.coords[1] * this.scale + this.transY * this.scale };\n  }, addMarker: function addMarker(e, t, n) {\n    var r = {},\n        i = [],\n        s,\n        o,\n        n = n || [];r[e] = t;for (o = 0; o < n.length; o++) {\n      s = {}, s[e] = n[o], i.push(s);\n    }this.addMarkers(r, i);\n  }, addMarkers: function addMarkers(e, t) {\n    var n;t = t || [], this.createMarkers(e);for (n = 0; n < t.length; n++) {\n      this.series.markers[n].setValues(t[n] || {});\n    }\n  }, removeMarkers: function removeMarkers(e) {\n    var t;for (t = 0; t < e.length; t++) {\n      this.markers[e[t]].element.remove(), delete this.markers[e[t]];\n    }\n  }, removeAllMarkers: function removeAllMarkers() {\n    var e,\n        t = [];for (e in this.markers) {\n      t.push(e);\n    }this.removeMarkers(t);\n  }, latLngToPoint: function latLngToPoint(e, t) {\n    var n,\n        r = jvm.WorldMap.maps[this.params.map].projection,\n        i = r.centralMeridian,\n        s = this.width - this.baseTransX * 2 * this.baseScale,\n        o = this.height - this.baseTransY * 2 * this.baseScale,\n        u,\n        a,\n        f = this.scale / this.baseScale;return t < -180 + i && (t += 360), n = jvm.Proj[r.type](e, t, i), u = this.getInsetForPoint(n.x, n.y), u ? (a = u.bbox, n.x = (n.x - a[0].x) / (a[1].x - a[0].x) * u.width * this.scale, n.y = (n.y - a[0].y) / (a[1].y - a[0].y) * u.height * this.scale, { x: n.x + this.transX * this.scale + u.left * this.scale, y: n.y + this.transY * this.scale + u.top * this.scale }) : !1;\n  }, pointToLatLng: function pointToLatLng(e, t) {\n    var n = jvm.WorldMap.maps[this.params.map].projection,\n        r = n.centralMeridian,\n        i = jvm.WorldMap.maps[this.params.map].insets,\n        s,\n        o,\n        u,\n        a,\n        f;for (s = 0; s < i.length; s++) {\n      o = i[s], u = o.bbox, a = e - (this.transX * this.scale + o.left * this.scale), f = t - (this.transY * this.scale + o.top * this.scale), a = a / (o.width * this.scale) * (u[1].x - u[0].x) + u[0].x, f = f / (o.height * this.scale) * (u[1].y - u[0].y) + u[0].y;if (a > u[0].x && a < u[1].x && f > u[0].y && f < u[1].y) return jvm.Proj[n.type + \"_inv\"](a, -f, r);\n    }return !1;\n  }, getInsetForPoint: function getInsetForPoint(e, t) {\n    var n = jvm.WorldMap.maps[this.params.map].insets,\n        r,\n        i;for (r = 0; r < n.length; r++) {\n      i = n[r].bbox;if (e > i[0].x && e < i[1].x && t > i[0].y && t < i[1].y) return n[r];\n    }\n  }, createSeries: function createSeries() {\n    var e, t;this.series = { markers: [], regions: [] };for (t in this.params.series) {\n      for (e = 0; e < this.params.series[t].length; e++) {\n        this.series[t][e] = new jvm.DataSeries(this.params.series[t][e], this[t]);\n      }\n    }\n  }, remove: function remove() {\n    this.label.remove(), this.container.remove(), jvm.$(window).unbind(\"resize\", this.onResize);\n  } }, jvm.WorldMap.maps = {}, jvm.WorldMap.defaultParams = { map: \"world_mill_en\", backgroundColor: \"#505050\", zoomButtons: !0, zoomOnScroll: !0, zoomMax: 8, zoomMin: 1, zoomStep: 1.6, regionsSelectable: !1, markersSelectable: !1, bindTouchEvents: !0, regionStyle: { initial: { fill: \"white\", \"fill-opacity\": 1, stroke: \"none\", \"stroke-width\": 0, \"stroke-opacity\": 1 }, hover: { \"fill-opacity\": .8 }, selected: { fill: \"yellow\" }, selectedHover: {} }, markerStyle: { initial: { fill: \"grey\", stroke: \"#505050\", \"fill-opacity\": 1, \"stroke-width\": 1, \"stroke-opacity\": 1, r: 5 }, hover: { stroke: \"black\", \"stroke-width\": 2 }, selected: { fill: \"blue\" }, selectedHover: {} } }, jvm.WorldMap.apiEvents = { onRegionLabelShow: \"regionLabelShow\", onRegionOver: \"regionOver\", onRegionOut: \"regionOut\", onRegionClick: \"regionClick\", onRegionSelected: \"regionSelected\", onMarkerLabelShow: \"markerLabelShow\", onMarkerOver: \"markerOver\", onMarkerOut: \"markerOut\", onMarkerClick: \"markerClick\", onMarkerSelected: \"markerSelected\", onViewportChange: \"viewportChange\" };//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9wbHVnaW5zL2p2ZWN0b3JtYXAvanF1ZXJ5LWp2ZWN0b3JtYXAtMS4yLjIubWluLmpzPzQ3MjEiXSwibmFtZXMiOlsiZSIsInQiLCJzZXQiLCJjb2xvcnMiLCJ2YWx1ZXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzY2FsZUNvbG9ycyIsIm5vcm1hbGl6ZUZ1bmN0aW9uIiwiZm9jdXMiLCJnZXQiLCJzZWxlY3RlZFJlZ2lvbnMiLCJzZWxlY3RlZE1hcmtlcnMiLCJtYXBPYmplY3QiLCJyZWdpb25OYW1lIiwiZm4iLCJ2ZWN0b3JNYXAiLCJuIiwiciIsImkiLCJjaGlsZHJlbiIsImRhdGEiLCJqdm0iLCJXb3JsZE1hcCIsIm1hcHMiLCJhcmd1bWVudHMiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0ciIsImFwcGx5IiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJjb250YWluZXIiLCJqUXVlcnkiLCJ3aW5kb3ciLCJldmVudCIsInMiLCJvIiwidSIsImZpeCIsInR5cGUiLCJ3aGVlbERlbHRhIiwiZGV0YWlsIiwiYXhpcyIsInVuZGVmaW5lZCIsIkhPUklaT05UQUxfQVhJUyIsIndoZWVsRGVsdGFZIiwid2hlZWxEZWx0YVgiLCJ1bnNoaWZ0IiwiZGlzcGF0Y2giLCJoYW5kbGUiLCJmaXhIb29rcyIsImxlbmd0aCIsIm1vdXNlSG9va3MiLCJzcGVjaWFsIiwibW91c2V3aGVlbCIsInNldHVwIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9ubW91c2V3aGVlbCIsInRlYXJkb3duIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImV4dGVuZCIsImJpbmQiLCJ0cmlnZ2VyIiwidW5tb3VzZXdoZWVsIiwidW5iaW5kIiwiaW5oZXJpdHMiLCJjb25zdHJ1Y3RvciIsInBhcmVudENsYXNzIiwibWl4aW4iLCJoYXNPd25Qcm9wZXJ0eSIsIm1pbiIsIk51bWJlciIsIk1BWF9WQUxVRSIsIm1heCIsIk1JTl9WQUxVRSIsImtleXMiLCJwdXNoIiwiJCIsIkFic3RyYWN0RWxlbWVudCIsIm5vZGUiLCJjcmVhdGVFbGVtZW50IiwibmFtZSIsInByb3BlcnRpZXMiLCJhcHBseUF0dHIiLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmUiLCJBYnN0cmFjdENhbnZhc0VsZW1lbnQiLCJzZXRTaXplIiwicm9vdEVsZW1lbnQiLCJjbGFzc1ByZWZpeCIsImFwcGVuZENoaWxkIiwiYWRkIiwiY2FudmFzIiwiYWRkUGF0aCIsImFkZENpcmNsZSIsImFkZEdyb3VwIiwiQWJzdHJhY3RTaGFwZUVsZW1lbnQiLCJzdHlsZSIsImN1cnJlbnQiLCJpc0hvdmVyZWQiLCJpc1NlbGVjdGVkIiwidXBkYXRlU3R5bGUiLCJzZXRIb3ZlcmVkIiwic2V0U2VsZWN0ZWQiLCJzZXRTdHlsZSIsIm1lcmdlU3R5bGVzIiwiaW5pdGlhbCIsImhvdmVyIiwic2VsZWN0ZWQiLCJzZWxlY3RlZEhvdmVyIiwiU1ZHRWxlbWVudCIsInN2Z25zIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50TlMiLCJhZGRDbGFzcyIsImdldEVsZW1lbnRDdHIiLCJnZXRCQm94IiwiU1ZHR3JvdXBFbGVtZW50IiwiU1ZHQ2FudmFzRWxlbWVudCIsIndpZHRoIiwiaGVpZ2h0IiwiYXBwbHlUcmFuc2Zvcm1QYXJhbXMiLCJzY2FsZSIsInRyYW5zWCIsInRyYW5zWSIsIlNWR1NoYXBlRWxlbWVudCIsIlNWR1BhdGhFbGVtZW50IiwiU1ZHQ2lyY2xlRWxlbWVudCIsIlZNTEVsZW1lbnQiLCJWTUxJbml0aWFsaXplZCIsImluaXRpYWxpemVWTUwiLCJuYW1lc3BhY2VzIiwicnZtbCIsImNyZWF0ZVN0eWxlU2hlZXQiLCJhZGRSdWxlIiwieCIsInBvc2l0aW9uIiwibGVmdCIsInkiLCJ0b3AiLCJWTUxHcm91cEVsZW1lbnQiLCJjb29yZG9yaWdpbiIsIlZNTENhbnZhc0VsZW1lbnQiLCJjb29yZHNpemUiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsIlZNTFNoYXBlRWxlbWVudCIsImZpbGxFbGVtZW50Iiwic3Ryb2tlRWxlbWVudCIsInN0cm9rZWQiLCJmaWxsY29sb3IiLCJvcGFjaXR5IiwiTWF0aCIsInJvdW5kIiwic3Ryb2tlY29sb3IiLCJwYXJzZUludCIsInN0cm9rZXdlaWdodCIsInBhdGgiLCJWTUxQYXRoRWxlbWVudCIsInBhdGhTdmdUb1ZtbCIsIm9uIiwibWF0cml4Iiwib2Zmc2V0IiwicmVwbGFjZSIsInNwbGl0Iiwic2hpZnQiLCJhIiwiZiIsImpvaW4iLCJWTUxDaXJjbGVFbGVtZW50IiwiVmVjdG9yQ2FudmFzIiwibW9kZSIsIlNWR0FuZ2xlIiwiaW1wbCIsIlNpbXBsZVNjYWxlIiwiZ2V0VmFsdWUiLCJPcmRpbmFsU2NhbGUiLCJOdW1lcmljU2NhbGUiLCJzZXRTY2FsZSIsInNldE5vcm1hbGl6ZUZ1bmN0aW9uIiwic2V0TWluIiwic2V0TWF4IiwiY2xlYXJNaW5WYWx1ZSIsIm5vcm1hbGl6ZSIsIm1pblZhbHVlIiwiY2xlYXJNYXhWYWx1ZSIsIm1heFZhbHVlIiwicG93IiwidmVjdG9yTGVuZ3RoIiwidmVjdG9yU3VidHJhY3QiLCJ2ZWN0b3JUb051bSIsInZlY3RvckFkZCIsInZlY3Rvck11bHQiLCJzcXJ0IiwiQ29sb3JTY2FsZSIsInJnYlRvQXJyYXkiLCJudW1Ub1JnYiIsImFycmF5VG9SZ2IiLCJ0b1N0cmluZyIsIkRhdGFTZXJpZXMiLCJhdHRyaWJ1dGUiLCJlbGVtZW50cyIsInBhcmFtcyIsImF0dHJpYnV0ZXMiLCJzZXRBdHRyaWJ1dGVzIiwiaXNBcnJheSIsInNldFZhbHVlcyIsImVsZW1lbnQiLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJjbGVhciIsIlByb2oiLCJkZWdSYWQiLCJQSSIsInJhZERlZyIsInJhZGl1cyIsInNnbiIsIm1pbGwiLCJsb2ciLCJ0YW4iLCJtaWxsX2ludiIsImxhdCIsImF0YW4iLCJleHAiLCJsbmciLCJtZXJjIiwibWVyY19pbnYiLCJhZWEiLCJzaW4iLCJsIiwiY29zIiwiYyIsImgiLCJwIiwiYWVhX2ludiIsImFzaW4iLCJsY2MiLCJsY2NfaW52IiwiZGVmYXVsdFBhcmFtcyIsIm1hcCIsIkVycm9yIiwibWFwRGF0YSIsIm1hcmtlcnMiLCJyZWdpb25zIiwicmVnaW9uc0NvbG9ycyIsInJlZ2lvbnNEYXRhIiwiY3NzIiwiYXBwZW5kIiwib3ZlcmZsb3ciLCJkZWZhdWx0V2lkdGgiLCJkZWZhdWx0SGVpZ2h0Iiwic2V0QmFja2dyb3VuZENvbG9yIiwib25SZXNpemUiLCJyZXNpemUiLCJhcGlFdmVudHMiLCJEb2N1bWVudFRvdWNoIiwiYmluZFRvdWNoRXZlbnRzIiwiYmluZENvbnRhaW5lclRvdWNoRXZlbnRzIiwiYmluZENvbnRhaW5lckV2ZW50cyIsImJpbmRFbGVtZW50RXZlbnRzIiwiY3JlYXRlTGFiZWwiLCJ6b29tQnV0dG9ucyIsImJpbmRab29tQnV0dG9ucyIsImNyZWF0ZVJlZ2lvbnMiLCJjcmVhdGVNYXJrZXJzIiwiZm9jdXNPbiIsInNldEZvY3VzIiwic2V0U2VsZWN0ZWRSZWdpb25zIiwic2V0U2VsZWN0ZWRNYXJrZXJzIiwic2VyaWVzIiwiY3JlYXRlU2VyaWVzIiwiYmFzZVRyYW5zWCIsImJhc2VUcmFuc1kiLCJiYXNlU2NhbGUiLCJhYnMiLCJhcHBseVRyYW5zZm9ybSIsInJlc2V0IiwicmVwb3NpdGlvbk1hcmtlcnMiLCJtb3VzZW1vdmUiLCJwYWdlWCIsInBhZ2VZIiwibW91c2Vkb3duIiwibW91c2V1cCIsInpvb21PblNjcm9sbCIsImxhYmVsIiwiaGlkZSIsInByZXZlbnREZWZhdWx0Iiwib3JpZ2luYWxFdmVudCIsInRvdWNoZXMiLCJkZWxlZ2F0ZSIsImF0dHIiLCJiYXNlVmFsIiwiaW5kZXhPZiIsInBhdGhzIiwiY29uZmlnIiwiRXZlbnQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJ0ZXh0Iiwic2hvdyIsImxhYmVsV2lkdGgiLCJsYWJlbEhlaWdodCIsInJlZ2lvbnNTZWxlY3RhYmxlIiwibWFya2Vyc1NlbGVjdGFibGUiLCJjbGVhclNlbGVjdGVkIiwiYXBwZW5kVG8iLCJodG1sIiwiZmluZCIsImNsaWNrIiwiem9vbVN0ZXAiLCJpcyIsInpvb21NYXgiLCJ6b29tTWluIiwiZ2V0U2VsZWN0ZWQiLCJnZXRTZWxlY3RlZFJlZ2lvbnMiLCJnZXRTZWxlY3RlZE1hcmtlcnMiLCJjbGVhclNlbGVjdGVkUmVnaW9ucyIsImNsZWFyU2VsZWN0ZWRNYXJrZXJzIiwiZ2V0TWFwT2JqZWN0IiwiZ2V0UmVnaW9uTmFtZSIsImQiLCJyZWdpb25TdHlsZSIsIm1hcmtlcnNHcm91cCIsImxhdExuZyIsImdldE1hcmtlclBvc2l0aW9uIiwiY3giLCJjeSIsIm1hcmtlclN0eWxlIiwicmVtb3ZlTWFya2VycyIsInByb2plY3Rpb24iLCJsYXRMbmdUb1BvaW50IiwiY29vcmRzIiwiYWRkTWFya2VyIiwiYWRkTWFya2VycyIsInJlbW92ZUFsbE1hcmtlcnMiLCJjZW50cmFsTWVyaWRpYW4iLCJnZXRJbnNldEZvclBvaW50IiwiYmJveCIsInBvaW50VG9MYXRMbmciLCJpbnNldHMiLCJmaWxsIiwic3Ryb2tlIiwib25SZWdpb25MYWJlbFNob3ciLCJvblJlZ2lvbk92ZXIiLCJvblJlZ2lvbk91dCIsIm9uUmVnaW9uQ2xpY2siLCJvblJlZ2lvblNlbGVjdGVkIiwib25NYXJrZXJMYWJlbFNob3ciLCJvbk1hcmtlck92ZXIiLCJvbk1hcmtlck91dCIsIm9uTWFya2VyQ2xpY2siLCJvbk1hcmtlclNlbGVjdGVkIiwib25WaWV3cG9ydENoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUcsQ0FBQyxVQUFTQSxDQUFULEVBQVc7QUFBQyxNQUFJQyxJQUFFLEVBQUNDLEtBQUksRUFBQ0MsUUFBTyxDQUFSLEVBQVVDLFFBQU8sQ0FBakIsRUFBbUJDLGlCQUFnQixDQUFuQyxFQUFxQ0MsYUFBWSxDQUFqRCxFQUFtREMsbUJBQWtCLENBQXJFLEVBQXVFQyxPQUFNLENBQTdFLEVBQUwsRUFBcUZDLEtBQUksRUFBQ0MsaUJBQWdCLENBQWpCLEVBQW1CQyxpQkFBZ0IsQ0FBbkMsRUFBcUNDLFdB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SyxFQUQraS9CLEVBQTl6NkIsRUFDOWpFMUYsSUFBSUMsUUFBSixDQUFheU8sU0FBYixHQUF1QixFQUFDdUYsbUJBQWtCLGlCQUFuQixFQUFxQ0MsY0FBYSxZQUFsRCxFQUErREMsYUFBWSxXQUEzRSxFQUF1RkMsZUFBYyxhQUFyRyxFQUFtSEMsa0JBQWlCLGdCQUFwSSxFQUFxSkMsbUJBQWtCLGlCQUF2SyxFQUF5TEMsY0FBYSxZQUF0TSxFQUFtTkMsYUFBWSxXQUEvTixFQUEyT0MsZUFBYyxhQUF6UCxFQUF1UUMsa0JBQWlCLGdCQUF4UixFQUF5U0Msa0JBQWlCLGdCQUExVCxFQUR1aUUiLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGpWZWN0b3JNYXAgdmVyc2lvbiAxLjIuMlxuICpcbiAqIENvcHlyaWdodCAyMDExLTIwMTMsIEtpcmlsbCBMZWJlZGV2XG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKlxuICovKGZ1bmN0aW9uKGUpe3ZhciB0PXtzZXQ6e2NvbG9yczoxLHZhbHVlczoxLGJhY2tncm91bmRDb2xvcjoxLHNjYWxlQ29sb3JzOjEsbm9ybWFsaXplRnVuY3Rpb246MSxmb2N1czoxfSxnZXQ6e3NlbGVjdGVkUmVnaW9uczoxLHNlbGVjdGVkTWFya2VyczoxLG1hcE9iamVjdDoxLHJlZ2lvbk5hbWU6MX19O2UuZm4udmVjdG9yTWFwPWZ1bmN0aW9uKGUpe3ZhciBuLHIsaSxuPXRoaXMuY2hpbGRyZW4oXCIuanZlY3Rvcm1hcC1jb250YWluZXJcIikuZGF0YShcIm1hcE9iamVjdFwiKTtpZihlPT09XCJhZGRNYXBcIilqdm0uV29ybGRNYXAubWFwc1thcmd1bWVudHNbMV1dPWFyZ3VtZW50c1syXTtlbHNle2lmKCEoZSE9PVwic2V0XCImJmUhPT1cImdldFwifHwhdFtlXVthcmd1bWVudHNbMV1dKSlyZXR1cm4gcj1hcmd1bWVudHNbMV0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYXJndW1lbnRzWzFdLnN1YnN0cigxKSxuW2Urcl0uYXBwbHkobixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMikpO2U9ZXx8e30sZS5jb250YWluZXI9dGhpcyxuPW5ldyBqdm0uV29ybGRNYXAoZSl9cmV0dXJuIHRoaXN9fSkoalF1ZXJ5KSxmdW5jdGlvbihlKXtmdW5jdGlvbiByKHQpe3ZhciBuPXR8fHdpbmRvdy5ldmVudCxyPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLGk9MCxzPSEwLG89MCx1PTA7cmV0dXJuIHQ9ZS5ldmVudC5maXgobiksdC50eXBlPVwibW91c2V3aGVlbFwiLG4ud2hlZWxEZWx0YSYmKGk9bi53aGVlbERlbHRhLzEyMCksbi5kZXRhaWwmJihpPS1uLmRldGFpbC8zKSx1PWksbi5heGlzIT09dW5kZWZpbmVkJiZuLmF4aXM9PT1uLkhPUklaT05UQUxfQVhJUyYmKHU9MCxvPS0xKmkpLG4ud2hlZWxEZWx0YVkhPT11bmRlZmluZWQmJih1PW4ud2hlZWxEZWx0YVkvMTIwKSxuLndoZWVsRGVsdGFYIT09dW5kZWZpbmVkJiYobz0tMSpuLndoZWVsRGVsdGFYLzEyMCksci51bnNoaWZ0KHQsaSxvLHUpLChlLmV2ZW50LmRpc3BhdGNofHxlLmV2ZW50LmhhbmRsZSkuYXBwbHkodGhpcyxyKX12YXIgdD1bXCJET01Nb3VzZVNjcm9sbFwiLFwibW91c2V3aGVlbFwiXTtpZihlLmV2ZW50LmZpeEhvb2tzKWZvcih2YXIgbj10Lmxlbmd0aDtuOyllLmV2ZW50LmZpeEhvb2tzW3RbLS1uXV09ZS5ldmVudC5tb3VzZUhvb2tzO2UuZXZlbnQuc3BlY2lhbC5tb3VzZXdoZWVsPXtzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMuYWRkRXZlbnRMaXN0ZW5lcilmb3IodmFyIGU9dC5sZW5ndGg7ZTspdGhpcy5hZGRFdmVudExpc3RlbmVyKHRbLS1lXSxyLCExKTtlbHNlIHRoaXMub25tb3VzZXdoZWVsPXJ9LHRlYXJkb3duOmZ1bmN0aW9uKCl7aWYodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKWZvcih2YXIgZT10Lmxlbmd0aDtlOyl0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodFstLWVdLHIsITEpO2Vsc2UgdGhpcy5vbm1vdXNld2hlZWw9bnVsbH19LGUuZm4uZXh0ZW5kKHttb3VzZXdoZWVsOmZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMuYmluZChcIm1vdXNld2hlZWxcIixlKTp0aGlzLnRyaWdnZXIoXCJtb3VzZXdoZWVsXCIpfSx1bm1vdXNld2hlZWw6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudW5iaW5kKFwibW91c2V3aGVlbFwiLGUpfX0pfShqUXVlcnkpO3ZhciBqdm09e2luaGVyaXRzOmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe31uLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgbixlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucGFyZW50Q2xhc3M9dH0sbWl4aW46ZnVuY3Rpb24oZSx0KXt2YXIgbjtmb3IobiBpbiB0LnByb3RvdHlwZSl0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShuKSYmKGUucHJvdG90eXBlW25dPXQucHJvdG90eXBlW25dKX0sbWluOmZ1bmN0aW9uKGUpe3ZhciB0PU51bWJlci5NQVhfVkFMVUUsbjtpZihlIGluc3RhbmNlb2YgQXJyYXkpZm9yKG49MDtuPGUubGVuZ3RoO24rKyllW25dPHQmJih0PWVbbl0pO2Vsc2UgZm9yKG4gaW4gZSllW25dPHQmJih0PWVbbl0pO3JldHVybiB0fSxtYXg6ZnVuY3Rpb24oZSl7dmFyIHQ9TnVtYmVyLk1JTl9WQUxVRSxuO2lmKGUgaW5zdGFuY2VvZiBBcnJheSlmb3Iobj0wO248ZS5sZW5ndGg7bisrKWVbbl0+dCYmKHQ9ZVtuXSk7ZWxzZSBmb3IobiBpbiBlKWVbbl0+dCYmKHQ9ZVtuXSk7cmV0dXJuIHR9LGtleXM6ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbjtmb3IobiBpbiBlKXQucHVzaChuKTtyZXR1cm4gdH0sdmFsdWVzOmZ1bmN0aW9uKGUpe3ZhciB0PVtdLG4scjtmb3Iocj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe2U9YXJndW1lbnRzW3JdO2ZvcihuIGluIGUpdC5wdXNoKGVbbl0pfXJldHVybiB0fX07anZtLiQ9alF1ZXJ5LGp2bS5BYnN0cmFjdEVsZW1lbnQ9ZnVuY3Rpb24oZSx0KXt0aGlzLm5vZGU9dGhpcy5jcmVhdGVFbGVtZW50KGUpLHRoaXMubmFtZT1lLHRoaXMucHJvcGVydGllcz17fSx0JiZ0aGlzLnNldCh0KX0sanZtLkFic3RyYWN0RWxlbWVudC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG47aWYodHlwZW9mIGU9PVwib2JqZWN0XCIpZm9yKG4gaW4gZSl0aGlzLnByb3BlcnRpZXNbbl09ZVtuXSx0aGlzLmFwcGx5QXR0cihuLGVbbl0pO2Vsc2UgdGhpcy5wcm9wZXJ0aWVzW2VdPXQsdGhpcy5hcHBseUF0dHIoZSx0KX0sanZtLkFic3RyYWN0RWxlbWVudC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnByb3BlcnRpZXNbZV19LGp2bS5BYnN0cmFjdEVsZW1lbnQucHJvdG90eXBlLmFwcGx5QXR0cj1mdW5jdGlvbihlLHQpe3RoaXMubm9kZS5zZXRBdHRyaWJ1dGUoZSx0KX0sanZtLkFic3RyYWN0RWxlbWVudC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7anZtLiQodGhpcy5ub2RlKS5yZW1vdmUoKX0sanZtLkFic3RyYWN0Q2FudmFzRWxlbWVudD1mdW5jdGlvbihlLHQsbil7dGhpcy5jb250YWluZXI9ZSx0aGlzLnNldFNpemUodCxuKSx0aGlzLnJvb3RFbGVtZW50PW5ldyBqdm1bdGhpcy5jbGFzc1ByZWZpeCtcIkdyb3VwRWxlbWVudFwiXSx0aGlzLm5vZGUuYXBwZW5kQ2hpbGQodGhpcy5yb290RWxlbWVudC5ub2RlKSx0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLm5vZGUpfSxqdm0uQWJzdHJhY3RDYW52YXNFbGVtZW50LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSx0KXt0PXR8fHRoaXMucm9vdEVsZW1lbnQsdC5hZGQoZSksZS5jYW52YXM9dGhpc30sanZtLkFic3RyYWN0Q2FudmFzRWxlbWVudC5wcm90b3R5cGUuYWRkUGF0aD1mdW5jdGlvbihlLHQsbil7dmFyIHI9bmV3IGp2bVt0aGlzLmNsYXNzUHJlZml4K1wiUGF0aEVsZW1lbnRcIl0oZSx0KTtyZXR1cm4gdGhpcy5hZGQocixuKSxyfSxqdm0uQWJzdHJhY3RDYW52YXNFbGVtZW50LnByb3RvdHlwZS5hZGRDaXJjbGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW5ldyBqdm1bdGhpcy5jbGFzc1ByZWZpeCtcIkNpcmNsZUVsZW1lbnRcIl0oZSx0KTtyZXR1cm4gdGhpcy5hZGQocixuKSxyfSxqdm0uQWJzdHJhY3RDYW52YXNFbGVtZW50LnByb3RvdHlwZS5hZGRHcm91cD1mdW5jdGlvbihlKXt2YXIgdD1uZXcganZtW3RoaXMuY2xhc3NQcmVmaXgrXCJHcm91cEVsZW1lbnRcIl07cmV0dXJuIGU/ZS5ub2RlLmFwcGVuZENoaWxkKHQubm9kZSk6dGhpcy5ub2RlLmFwcGVuZENoaWxkKHQubm9kZSksdC5jYW52YXM9dGhpcyx0fSxqdm0uQWJzdHJhY3RTaGFwZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuc3R5bGU9bnx8e30sdGhpcy5zdHlsZS5jdXJyZW50PXt9LHRoaXMuaXNIb3ZlcmVkPSExLHRoaXMuaXNTZWxlY3RlZD0hMSx0aGlzLnVwZGF0ZVN0eWxlKCl9LGp2bS5BYnN0cmFjdFNoYXBlRWxlbWVudC5wcm90b3R5cGUuc2V0SG92ZXJlZD1mdW5jdGlvbihlKXt0aGlzLmlzSG92ZXJlZCE9PWUmJih0aGlzLmlzSG92ZXJlZD1lLHRoaXMudXBkYXRlU3R5bGUoKSl9LGp2bS5BYnN0cmFjdFNoYXBlRWxlbWVudC5wcm90b3R5cGUuc2V0U2VsZWN0ZWQ9ZnVuY3Rpb24oZSl7dGhpcy5pc1NlbGVjdGVkIT09ZSYmKHRoaXMuaXNTZWxlY3RlZD1lLHRoaXMudXBkYXRlU3R5bGUoKSxqdm0uJCh0aGlzLm5vZGUpLnRyaWdnZXIoXCJzZWxlY3RlZFwiLFtlXSkpfSxqdm0uQWJzdHJhY3RTaGFwZUVsZW1lbnQucHJvdG90eXBlLnNldFN0eWxlPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307dHlwZW9mIGU9PVwib2JqZWN0XCI/bj1lOm5bZV09dCxqdm0uJC5leHRlbmQodGhpcy5zdHlsZS5jdXJyZW50LG4pLHRoaXMudXBkYXRlU3R5bGUoKX0sanZtLkFic3RyYWN0U2hhcGVFbGVtZW50LnByb3RvdHlwZS51cGRhdGVTdHlsZT1mdW5jdGlvbigpe3ZhciBlPXt9O2p2bS5BYnN0cmFjdFNoYXBlRWxlbWVudC5tZXJnZVN0eWxlcyhlLHRoaXMuc3R5bGUuaW5pdGlhbCksanZtLkFic3RyYWN0U2hhcGVFbGVtZW50Lm1lcmdlU3R5bGVzKGUsdGhpcy5zdHlsZS5jdXJyZW50KSx0aGlzLmlzSG92ZXJlZCYmanZtLkFic3RyYWN0U2hhcGVFbGVtZW50Lm1lcmdlU3R5bGVzKGUsdGhpcy5zdHlsZS5ob3ZlciksdGhpcy5pc1NlbGVjdGVkJiYoanZtLkFic3RyYWN0U2hhcGVFbGVtZW50Lm1lcmdlU3R5bGVzKGUsdGhpcy5zdHlsZS5zZWxlY3RlZCksdGhpcy5pc0hvdmVyZWQmJmp2bS5BYnN0cmFjdFNoYXBlRWxlbWVudC5tZXJnZVN0eWxlcyhlLHRoaXMuc3R5bGUuc2VsZWN0ZWRIb3ZlcikpLHRoaXMuc2V0KGUpfSxqdm0uQWJzdHJhY3RTaGFwZUVsZW1lbnQubWVyZ2VTdHlsZXM9ZnVuY3Rpb24oZSx0KXt2YXIgbjt0PXR8fHt9O2ZvcihuIGluIHQpdFtuXT09PW51bGw/ZGVsZXRlIGVbbl06ZVtuXT10W25dfSxqdm0uU1ZHRWxlbWVudD1mdW5jdGlvbihlLHQpe2p2bS5TVkdFbGVtZW50LnBhcmVudENsYXNzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sanZtLmluaGVyaXRzKGp2bS5TVkdFbGVtZW50LGp2bS5BYnN0cmFjdEVsZW1lbnQpLGp2bS5TVkdFbGVtZW50LnN2Z25zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixqdm0uU1ZHRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGp2bS5TVkdFbGVtZW50LnN2Z25zLGUpfSxqdm0uU1ZHRWxlbWVudC5wcm90b3R5cGUuYWRkQ2xhc3M9ZnVuY3Rpb24oZSl7dGhpcy5ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsZSl9LGp2bS5TVkdFbGVtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50Q3RyPWZ1bmN0aW9uKGUpe3JldHVybiBqdm1bXCJTVkdcIitlXX0sanZtLlNWR0VsZW1lbnQucHJvdG90eXBlLmdldEJCb3g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLmdldEJCb3goKX0sanZtLlNWR0dyb3VwRWxlbWVudD1mdW5jdGlvbigpe2p2bS5TVkdHcm91cEVsZW1lbnQucGFyZW50Q2xhc3MuY2FsbCh0aGlzLFwiZ1wiKX0sanZtLmluaGVyaXRzKGp2bS5TVkdHcm91cEVsZW1lbnQsanZtLlNWR0VsZW1lbnQpLGp2bS5TVkdHcm91cEVsZW1lbnQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt0aGlzLm5vZGUuYXBwZW5kQ2hpbGQoZS5ub2RlKX0sanZtLlNWR0NhbnZhc0VsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuY2xhc3NQcmVmaXg9XCJTVkdcIixqdm0uU1ZHQ2FudmFzRWxlbWVudC5wYXJlbnRDbGFzcy5jYWxsKHRoaXMsXCJzdmdcIiksanZtLkFic3RyYWN0Q2FudmFzRWxlbWVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGp2bS5pbmhlcml0cyhqdm0uU1ZHQ2FudmFzRWxlbWVudCxqdm0uU1ZHRWxlbWVudCksanZtLm1peGluKGp2bS5TVkdDYW52YXNFbGVtZW50LGp2bS5BYnN0cmFjdENhbnZhc0VsZW1lbnQpLGp2bS5TVkdDYW52YXNFbGVtZW50LnByb3RvdHlwZS5zZXRTaXplPWZ1bmN0aW9uKGUsdCl7dGhpcy53aWR0aD1lLHRoaXMuaGVpZ2h0PXQsdGhpcy5ub2RlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsZSksdGhpcy5ub2RlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLHQpfSxqdm0uU1ZHQ2FudmFzRWxlbWVudC5wcm90b3R5cGUuYXBwbHlUcmFuc2Zvcm1QYXJhbXM9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuc2NhbGU9ZSx0aGlzLnRyYW5zWD10LHRoaXMudHJhbnNZPW4sdGhpcy5yb290RWxlbWVudC5ub2RlLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLFwic2NhbGUoXCIrZStcIikgdHJhbnNsYXRlKFwiK3QrXCIsIFwiK24rXCIpXCIpfSxqdm0uU1ZHU2hhcGVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtqdm0uU1ZHU2hhcGVFbGVtZW50LnBhcmVudENsYXNzLmNhbGwodGhpcyxlLHQpLGp2bS5BYnN0cmFjdFNoYXBlRWxlbWVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGp2bS5pbmhlcml0cyhqdm0uU1ZHU2hhcGVFbGVtZW50LGp2bS5TVkdFbGVtZW50KSxqdm0ubWl4aW4oanZtLlNWR1NoYXBlRWxlbWVudCxqdm0uQWJzdHJhY3RTaGFwZUVsZW1lbnQpLGp2bS5TVkdQYXRoRWxlbWVudD1mdW5jdGlvbihlLHQpe2p2bS5TVkdQYXRoRWxlbWVudC5wYXJlbnRDbGFzcy5jYWxsKHRoaXMsXCJwYXRoXCIsZSx0KSx0aGlzLm5vZGUuc2V0QXR0cmlidXRlKFwiZmlsbC1ydWxlXCIsXCJldmVub2RkXCIpfSxqdm0uaW5oZXJpdHMoanZtLlNWR1BhdGhFbGVtZW50LGp2bS5TVkdTaGFwZUVsZW1lbnQpLGp2bS5TVkdDaXJjbGVFbGVtZW50PWZ1bmN0aW9uKGUsdCl7anZtLlNWR0NpcmNsZUVsZW1lbnQucGFyZW50Q2xhc3MuY2FsbCh0aGlzLFwiY2lyY2xlXCIsZSx0KX0sanZtLmluaGVyaXRzKGp2bS5TVkdDaXJjbGVFbGVtZW50LGp2bS5TVkdTaGFwZUVsZW1lbnQpLGp2bS5WTUxFbGVtZW50PWZ1bmN0aW9uKGUsdCl7anZtLlZNTEVsZW1lbnQuVk1MSW5pdGlhbGl6ZWR8fGp2bS5WTUxFbGVtZW50LmluaXRpYWxpemVWTUwoKSxqdm0uVk1MRWxlbWVudC5wYXJlbnRDbGFzcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGp2bS5pbmhlcml0cyhqdm0uVk1MRWxlbWVudCxqdm0uQWJzdHJhY3RFbGVtZW50KSxqdm0uVk1MRWxlbWVudC5WTUxJbml0aWFsaXplZD0hMSxqdm0uVk1MRWxlbWVudC5pbml0aWFsaXplVk1MPWZ1bmN0aW9uKCl7dHJ5e2RvY3VtZW50Lm5hbWVzcGFjZXMucnZtbHx8ZG9jdW1lbnQubmFtZXNwYWNlcy5hZGQoXCJydm1sXCIsXCJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnZtbFwiKSxqdm0uVk1MRWxlbWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIjxydm1sOlwiK2UrJyBjbGFzcz1cInJ2bWxcIj4nKX19Y2F0Y2goZSl7anZtLlZNTEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCI8XCIrZSsnIHhtbG5zPVwidXJuOnNjaGVtYXMtbWljcm9zb2Z0LmNvbTp2bWxcIiBjbGFzcz1cInJ2bWxcIj4nKX19ZG9jdW1lbnQuY3JlYXRlU3R5bGVTaGVldCgpLmFkZFJ1bGUoXCIucnZtbFwiLFwiYmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTClcIiksanZtLlZNTEVsZW1lbnQuVk1MSW5pdGlhbGl6ZWQ9ITB9LGp2bS5WTUxFbGVtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50Q3RyPWZ1bmN0aW9uKGUpe3JldHVybiBqdm1bXCJWTUxcIitlXX0sanZtLlZNTEVsZW1lbnQucHJvdG90eXBlLmFkZENsYXNzPWZ1bmN0aW9uKGUpe2p2bS4kKHRoaXMubm9kZSkuYWRkQ2xhc3MoZSl9LGp2bS5WTUxFbGVtZW50LnByb3RvdHlwZS5hcHBseUF0dHI9ZnVuY3Rpb24oZSx0KXt0aGlzLm5vZGVbZV09dH0sanZtLlZNTEVsZW1lbnQucHJvdG90eXBlLmdldEJCb3g9ZnVuY3Rpb24oKXt2YXIgZT1qdm0uJCh0aGlzLm5vZGUpO3JldHVybnt4OmUucG9zaXRpb24oKS5sZWZ0L3RoaXMuY2FudmFzLnNjYWxlLHk6ZS5wb3NpdGlvbigpLnRvcC90aGlzLmNhbnZhcy5zY2FsZSx3aWR0aDplLndpZHRoKCkvdGhpcy5jYW52YXMuc2NhbGUsaGVpZ2h0OmUuaGVpZ2h0KCkvdGhpcy5jYW52YXMuc2NhbGV9fSxqdm0uVk1MR3JvdXBFbGVtZW50PWZ1bmN0aW9uKCl7anZtLlZNTEdyb3VwRWxlbWVudC5wYXJlbnRDbGFzcy5jYWxsKHRoaXMsXCJncm91cFwiKSx0aGlzLm5vZGUuc3R5bGUubGVmdD1cIjBweFwiLHRoaXMubm9kZS5zdHlsZS50b3A9XCIwcHhcIix0aGlzLm5vZGUuY29vcmRvcmlnaW49XCIwIDBcIn0sanZtLmluaGVyaXRzKGp2bS5WTUxHcm91cEVsZW1lbnQsanZtLlZNTEVsZW1lbnQpLGp2bS5WTUxHcm91cEVsZW1lbnQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt0aGlzLm5vZGUuYXBwZW5kQ2hpbGQoZS5ub2RlKX0sanZtLlZNTENhbnZhc0VsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuY2xhc3NQcmVmaXg9XCJWTUxcIixqdm0uVk1MQ2FudmFzRWxlbWVudC5wYXJlbnRDbGFzcy5jYWxsKHRoaXMsXCJncm91cFwiKSxqdm0uQWJzdHJhY3RDYW52YXNFbGVtZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLm5vZGUuc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwifSxqdm0uaW5oZXJpdHMoanZtLlZNTENhbnZhc0VsZW1lbnQsanZtLlZNTEVsZW1lbnQpLGp2bS5taXhpbihqdm0uVk1MQ2FudmFzRWxlbWVudCxqdm0uQWJzdHJhY3RDYW52YXNFbGVtZW50KSxqdm0uVk1MQ2FudmFzRWxlbWVudC5wcm90b3R5cGUuc2V0U2l6ZT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxzO3RoaXMud2lkdGg9ZSx0aGlzLmhlaWdodD10LHRoaXMubm9kZS5zdHlsZS53aWR0aD1lK1wicHhcIix0aGlzLm5vZGUuc3R5bGUuaGVpZ2h0PXQrXCJweFwiLHRoaXMubm9kZS5jb29yZHNpemU9ZStcIiBcIit0LHRoaXMubm9kZS5jb29yZG9yaWdpbj1cIjAgMFwiO2lmKHRoaXMucm9vdEVsZW1lbnQpe249dGhpcy5yb290RWxlbWVudC5ub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2hhcGVcIik7Zm9yKGk9MCxzPW4ubGVuZ3RoO2k8cztpKyspbltpXS5jb29yZHNpemU9ZStcIiBcIit0LG5baV0uc3R5bGUud2lkdGg9ZStcInB4XCIsbltpXS5zdHlsZS5oZWlnaHQ9dCtcInB4XCI7cj10aGlzLm5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJncm91cFwiKTtmb3IoaT0wLHM9ci5sZW5ndGg7aTxzO2krKylyW2ldLmNvb3Jkc2l6ZT1lK1wiIFwiK3QscltpXS5zdHlsZS53aWR0aD1lK1wicHhcIixyW2ldLnN0eWxlLmhlaWdodD10K1wicHhcIn19LGp2bS5WTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5hcHBseVRyYW5zZm9ybVBhcmFtcz1mdW5jdGlvbihlLHQsbil7dGhpcy5zY2FsZT1lLHRoaXMudHJhbnNYPXQsdGhpcy50cmFuc1k9bix0aGlzLnJvb3RFbGVtZW50Lm5vZGUuY29vcmRvcmlnaW49dGhpcy53aWR0aC10LXRoaXMud2lkdGgvMTAwK1wiLFwiKyh0aGlzLmhlaWdodC1uLXRoaXMuaGVpZ2h0LzEwMCksdGhpcy5yb290RWxlbWVudC5ub2RlLmNvb3Jkc2l6ZT10aGlzLndpZHRoL2UrXCIsXCIrdGhpcy5oZWlnaHQvZX0sanZtLlZNTFNoYXBlRWxlbWVudD1mdW5jdGlvbihlLHQpe2p2bS5WTUxTaGFwZUVsZW1lbnQucGFyZW50Q2xhc3MuY2FsbCh0aGlzLGUsdCksdGhpcy5maWxsRWxlbWVudD1uZXcganZtLlZNTEVsZW1lbnQoXCJmaWxsXCIpLHRoaXMuc3Ryb2tlRWxlbWVudD1uZXcganZtLlZNTEVsZW1lbnQoXCJzdHJva2VcIiksdGhpcy5ub2RlLmFwcGVuZENoaWxkKHRoaXMuZmlsbEVsZW1lbnQubm9kZSksdGhpcy5ub2RlLmFwcGVuZENoaWxkKHRoaXMuc3Ryb2tlRWxlbWVudC5ub2RlKSx0aGlzLm5vZGUuc3Ryb2tlZD0hMSxqdm0uQWJzdHJhY3RTaGFwZUVsZW1lbnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxqdm0uaW5oZXJpdHMoanZtLlZNTFNoYXBlRWxlbWVudCxqdm0uVk1MRWxlbWVudCksanZtLm1peGluKGp2bS5WTUxTaGFwZUVsZW1lbnQsanZtLkFic3RyYWN0U2hhcGVFbGVtZW50KSxqdm0uVk1MU2hhcGVFbGVtZW50LnByb3RvdHlwZS5hcHBseUF0dHI9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZVwiZmlsbFwiOnRoaXMubm9kZS5maWxsY29sb3I9dDticmVhaztjYXNlXCJmaWxsLW9wYWNpdHlcIjp0aGlzLmZpbGxFbGVtZW50Lm5vZGUub3BhY2l0eT1NYXRoLnJvdW5kKHQqMTAwKStcIiVcIjticmVhaztjYXNlXCJzdHJva2VcIjp0PT09XCJub25lXCI/dGhpcy5ub2RlLnN0cm9rZWQ9ITE6dGhpcy5ub2RlLnN0cm9rZWQ9ITAsdGhpcy5ub2RlLnN0cm9rZWNvbG9yPXQ7YnJlYWs7Y2FzZVwic3Ryb2tlLW9wYWNpdHlcIjp0aGlzLnN0cm9rZUVsZW1lbnQubm9kZS5vcGFjaXR5PU1hdGgucm91bmQodCoxMDApK1wiJVwiO2JyZWFrO2Nhc2VcInN0cm9rZS13aWR0aFwiOnBhcnNlSW50KHQsMTApPT09MD90aGlzLm5vZGUuc3Ryb2tlZD0hMTp0aGlzLm5vZGUuc3Ryb2tlZD0hMCx0aGlzLm5vZGUuc3Ryb2tld2VpZ2h0PXQ7YnJlYWs7Y2FzZVwiZFwiOnRoaXMubm9kZS5wYXRoPWp2bS5WTUxQYXRoRWxlbWVudC5wYXRoU3ZnVG9WbWwodCk7YnJlYWs7ZGVmYXVsdDpqdm0uVk1MU2hhcGVFbGVtZW50LnBhcmVudENsYXNzLnByb3RvdHlwZS5hcHBseUF0dHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sanZtLlZNTFBhdGhFbGVtZW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49bmV3IGp2bS5WTUxFbGVtZW50KFwic2tld1wiKTtqdm0uVk1MUGF0aEVsZW1lbnQucGFyZW50Q2xhc3MuY2FsbCh0aGlzLFwic2hhcGVcIixlLHQpLHRoaXMubm9kZS5jb29yZG9yaWdpbj1cIjAgMFwiLG4ubm9kZS5vbj0hMCxuLm5vZGUubWF0cml4PVwiMC4wMSwwLDAsMC4wMSwwLDBcIixuLm5vZGUub2Zmc2V0PVwiMCwwXCIsdGhpcy5ub2RlLmFwcGVuZENoaWxkKG4ubm9kZSl9LGp2bS5pbmhlcml0cyhqdm0uVk1MUGF0aEVsZW1lbnQsanZtLlZNTFNoYXBlRWxlbWVudCksanZtLlZNTFBhdGhFbGVtZW50LnByb3RvdHlwZS5hcHBseUF0dHI9ZnVuY3Rpb24oZSx0KXtlPT09XCJkXCI/dGhpcy5ub2RlLnBhdGg9anZtLlZNTFBhdGhFbGVtZW50LnBhdGhTdmdUb1ZtbCh0KTpqdm0uVk1MU2hhcGVFbGVtZW50LnByb3RvdHlwZS5hcHBseUF0dHIuY2FsbCh0aGlzLGUsdCl9LGp2bS5WTUxQYXRoRWxlbWVudC5wYXRoU3ZnVG9WbWw9ZnVuY3Rpb24oZSl7dmFyIHQ9XCJcIixuPTAscj0wLGkscztyZXR1cm4gZT1lLnJlcGxhY2UoLygtP1xcZCspZSgtP1xcZCspL2csXCIwXCIpLGUucmVwbGFjZSgvKFtNbUxsSGhWdkNjU3NdKVxccyooKD86LT9cXGQqKD86XFwuXFxkKyk/XFxzKiw/XFxzKikrKS9nLGZ1bmN0aW9uKGUsdCxvLHUpe289by5yZXBsYWNlKC8oXFxkKS0vZyxcIiQxLC1cIikucmVwbGFjZSgvXlxccysvZyxcIlwiKS5yZXBsYWNlKC9cXHMrJC9nLFwiXCIpLnJlcGxhY2UoL1xccysvZyxcIixcIikuc3BsaXQoXCIsXCIpLG9bMF18fG8uc2hpZnQoKTtmb3IodmFyIGE9MCxmPW8ubGVuZ3RoO2E8ZjthKyspb1thXT1NYXRoLnJvdW5kKDEwMCpvW2FdKTtzd2l0Y2godCl7Y2FzZVwibVwiOnJldHVybiBuKz1vWzBdLHIrPW9bMV0sXCJ0XCIrby5qb2luKFwiLFwiKTtjYXNlXCJNXCI6cmV0dXJuIG49b1swXSxyPW9bMV0sXCJtXCIrby5qb2luKFwiLFwiKTtjYXNlXCJsXCI6cmV0dXJuIG4rPW9bMF0scis9b1sxXSxcInJcIitvLmpvaW4oXCIsXCIpO2Nhc2VcIkxcIjpyZXR1cm4gbj1vWzBdLHI9b1sxXSxcImxcIitvLmpvaW4oXCIsXCIpO2Nhc2VcImhcIjpyZXR1cm4gbis9b1swXSxcInJcIitvWzBdK1wiLDBcIjtjYXNlXCJIXCI6cmV0dXJuIG49b1swXSxcImxcIituK1wiLFwiK3I7Y2FzZVwidlwiOnJldHVybiByKz1vWzBdLFwicjAsXCIrb1swXTtjYXNlXCJWXCI6cmV0dXJuIHI9b1swXSxcImxcIituK1wiLFwiK3I7Y2FzZVwiY1wiOnJldHVybiBpPW4rb1tvLmxlbmd0aC00XSxzPXIrb1tvLmxlbmd0aC0zXSxuKz1vW28ubGVuZ3RoLTJdLHIrPW9bby5sZW5ndGgtMV0sXCJ2XCIrby5qb2luKFwiLFwiKTtjYXNlXCJDXCI6cmV0dXJuIGk9b1tvLmxlbmd0aC00XSxzPW9bby5sZW5ndGgtM10sbj1vW28ubGVuZ3RoLTJdLHI9b1tvLmxlbmd0aC0xXSxcImNcIitvLmpvaW4oXCIsXCIpO2Nhc2VcInNcIjpyZXR1cm4gby51bnNoaWZ0KHItcyksby51bnNoaWZ0KG4taSksaT1uK29bby5sZW5ndGgtNF0scz1yK29bby5sZW5ndGgtM10sbis9b1tvLmxlbmd0aC0yXSxyKz1vW28ubGVuZ3RoLTFdLFwidlwiK28uam9pbihcIixcIik7Y2FzZVwiU1wiOnJldHVybiBvLnVuc2hpZnQocityLXMpLG8udW5zaGlmdChuK24taSksaT1vW28ubGVuZ3RoLTRdLHM9b1tvLmxlbmd0aC0zXSxuPW9bby5sZW5ndGgtMl0scj1vW28ubGVuZ3RoLTFdLFwiY1wiK28uam9pbihcIixcIil9cmV0dXJuXCJcIn0pLnJlcGxhY2UoL3ovZyxcImVcIil9LGp2bS5WTUxDaXJjbGVFbGVtZW50PWZ1bmN0aW9uKGUsdCl7anZtLlZNTENpcmNsZUVsZW1lbnQucGFyZW50Q2xhc3MuY2FsbCh0aGlzLFwib3ZhbFwiLGUsdCl9LGp2bS5pbmhlcml0cyhqdm0uVk1MQ2lyY2xlRWxlbWVudCxqdm0uVk1MU2hhcGVFbGVtZW50KSxqdm0uVk1MQ2lyY2xlRWxlbWVudC5wcm90b3R5cGUuYXBwbHlBdHRyPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2VcInJcIjp0aGlzLm5vZGUuc3R5bGUud2lkdGg9dCoyK1wicHhcIix0aGlzLm5vZGUuc3R5bGUuaGVpZ2h0PXQqMitcInB4XCIsdGhpcy5hcHBseUF0dHIoXCJjeFwiLHRoaXMuZ2V0KFwiY3hcIil8fDApLHRoaXMuYXBwbHlBdHRyKFwiY3lcIix0aGlzLmdldChcImN5XCIpfHwwKTticmVhaztjYXNlXCJjeFwiOmlmKCF0KXJldHVybjt0aGlzLm5vZGUuc3R5bGUubGVmdD10LSh0aGlzLmdldChcInJcIil8fDApK1wicHhcIjticmVhaztjYXNlXCJjeVwiOmlmKCF0KXJldHVybjt0aGlzLm5vZGUuc3R5bGUudG9wPXQtKHRoaXMuZ2V0KFwiclwiKXx8MCkrXCJweFwiO2JyZWFrO2RlZmF1bHQ6anZtLlZNTENpcmNsZUVsZW1lbnQucGFyZW50Q2xhc3MucHJvdG90eXBlLmFwcGx5QXR0ci5jYWxsKHRoaXMsZSx0KX19LGp2bS5WZWN0b3JDYW52YXM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLm1vZGU9d2luZG93LlNWR0FuZ2xlP1wic3ZnXCI6XCJ2bWxcIix0aGlzLm1vZGU9PVwic3ZnXCI/dGhpcy5pbXBsPW5ldyBqdm0uU1ZHQ2FudmFzRWxlbWVudChlLHQsbik6dGhpcy5pbXBsPW5ldyBqdm0uVk1MQ2FudmFzRWxlbWVudChlLHQsbiksdGhpcy5pbXBsfSxqdm0uU2ltcGxlU2NhbGU9ZnVuY3Rpb24oZSl7dGhpcy5zY2FsZT1lfSxqdm0uU2ltcGxlU2NhbGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBlfSxqdm0uT3JkaW5hbFNjYWxlPWZ1bmN0aW9uKGUpe3RoaXMuc2NhbGU9ZX0sanZtLk9yZGluYWxTY2FsZS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2NhbGVbZV19LGp2bS5OdW1lcmljU2NhbGU9ZnVuY3Rpb24oZSx0LG4scil7dGhpcy5zY2FsZT1bXSx0PXR8fFwibGluZWFyXCIsZSYmdGhpcy5zZXRTY2FsZShlKSx0JiZ0aGlzLnNldE5vcm1hbGl6ZUZ1bmN0aW9uKHQpLG4mJnRoaXMuc2V0TWluKG4pLHImJnRoaXMuc2V0TWF4KHIpfSxqdm0uTnVtZXJpY1NjYWxlLnByb3RvdHlwZT17c2V0TWluOmZ1bmN0aW9uKGUpe3RoaXMuY2xlYXJNaW5WYWx1ZT1lLHR5cGVvZiB0aGlzLm5vcm1hbGl6ZT09XCJmdW5jdGlvblwiP3RoaXMubWluVmFsdWU9dGhpcy5ub3JtYWxpemUoZSk6dGhpcy5taW5WYWx1ZT1lfSxzZXRNYXg6ZnVuY3Rpb24oZSl7dGhpcy5jbGVhck1heFZhbHVlPWUsdHlwZW9mIHRoaXMubm9ybWFsaXplPT1cImZ1bmN0aW9uXCI/dGhpcy5tYXhWYWx1ZT10aGlzLm5vcm1hbGl6ZShlKTp0aGlzLm1heFZhbHVlPWV9LHNldFNjYWxlOmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5zY2FsZVt0XT1bZVt0XV19LHNldE5vcm1hbGl6ZUZ1bmN0aW9uOmZ1bmN0aW9uKGUpe2U9PT1cInBvbHlub21pYWxcIj90aGlzLm5vcm1hbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSwuMil9OmU9PT1cImxpbmVhclwiP2RlbGV0ZSB0aGlzLm5vcm1hbGl6ZTp0aGlzLm5vcm1hbGl6ZT1lLHRoaXMuc2V0TWluKHRoaXMuY2xlYXJNaW5WYWx1ZSksdGhpcy5zZXRNYXgodGhpcy5jbGVhck1heFZhbHVlKX0sZ2V0VmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj0wLHIsaT0wLHM7dHlwZW9mIHRoaXMubm9ybWFsaXplPT1cImZ1bmN0aW9uXCImJihlPXRoaXMubm9ybWFsaXplKGUpKTtmb3IoaT0wO2k8dGhpcy5zY2FsZS5sZW5ndGgtMTtpKyspcj10aGlzLnZlY3Rvckxlbmd0aCh0aGlzLnZlY3RvclN1YnRyYWN0KHRoaXMuc2NhbGVbaSsxXSx0aGlzLnNjYWxlW2ldKSksdC5wdXNoKHIpLG4rPXI7cz0odGhpcy5tYXhWYWx1ZS10aGlzLm1pblZhbHVlKS9uO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspdFtpXSo9cztpPTAsZS09dGhpcy5taW5WYWx1ZTt3aGlsZShlLXRbaV0+PTApZS09dFtpXSxpKys7cmV0dXJuIGk9PXRoaXMuc2NhbGUubGVuZ3RoLTE/ZT10aGlzLnZlY3RvclRvTnVtKHRoaXMuc2NhbGVbaV0pOmU9dGhpcy52ZWN0b3JUb051bSh0aGlzLnZlY3RvckFkZCh0aGlzLnNjYWxlW2ldLHRoaXMudmVjdG9yTXVsdCh0aGlzLnZlY3RvclN1YnRyYWN0KHRoaXMuc2NhbGVbaSsxXSx0aGlzLnNjYWxlW2ldKSxlL3RbaV0pKSksZX0sdmVjdG9yVG9OdW06ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspdCs9TWF0aC5yb3VuZChlW25dKSpNYXRoLnBvdygyNTYsZS5sZW5ndGgtbi0xKTtyZXR1cm4gdH0sdmVjdG9yU3VidHJhY3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxyO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspbltyXT1lW3JdLXRbcl07cmV0dXJuIG59LHZlY3RvckFkZDpmdW5jdGlvbihlLHQpe3ZhciBuPVtdLHI7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKyluW3JdPWVbcl0rdFtyXTtyZXR1cm4gbn0sdmVjdG9yTXVsdDpmdW5jdGlvbihlLHQpe3ZhciBuPVtdLHI7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKyluW3JdPWVbcl0qdDtyZXR1cm4gbn0sdmVjdG9yTGVuZ3RoOmZ1bmN0aW9uKGUpe3ZhciB0PTAsbjtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXQrPWVbbl0qZVtuXTtyZXR1cm4gTWF0aC5zcXJ0KHQpfX0sanZtLkNvbG9yU2NhbGU9ZnVuY3Rpb24oZSx0LG4scil7anZtLkNvbG9yU2NhbGUucGFyZW50Q2xhc3MuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxqdm0uaW5oZXJpdHMoanZtLkNvbG9yU2NhbGUsanZtLk51bWVyaWNTY2FsZSksanZtLkNvbG9yU2NhbGUucHJvdG90eXBlLnNldFNjYWxlPWZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy5zY2FsZVt0XT1qdm0uQ29sb3JTY2FsZS5yZ2JUb0FycmF5KGVbdF0pfSxqdm0uQ29sb3JTY2FsZS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGp2bS5Db2xvclNjYWxlLm51bVRvUmdiKGp2bS5Db2xvclNjYWxlLnBhcmVudENsYXNzLnByb3RvdHlwZS5nZXRWYWx1ZS5jYWxsKHRoaXMsZSkpfSxqdm0uQ29sb3JTY2FsZS5hcnJheVRvUmdiPWZ1bmN0aW9uKGUpe3ZhciB0PVwiI1wiLG4scjtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKW49ZVtyXS50b1N0cmluZygxNiksdCs9bi5sZW5ndGg9PTE/XCIwXCIrbjpuO3JldHVybiB0fSxqdm0uQ29sb3JTY2FsZS5udW1Ub1JnYj1mdW5jdGlvbihlKXtlPWUudG9TdHJpbmcoMTYpO3doaWxlKGUubGVuZ3RoPDYpZT1cIjBcIitlO3JldHVyblwiI1wiK2V9LGp2bS5Db2xvclNjYWxlLnJnYlRvQXJyYXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZS5zdWJzdHIoMSksW3BhcnNlSW50KGUuc3Vic3RyKDAsMiksMTYpLHBhcnNlSW50KGUuc3Vic3RyKDIsMiksMTYpLHBhcnNlSW50KGUuc3Vic3RyKDQsMiksMTYpXX0sanZtLkRhdGFTZXJpZXM9ZnVuY3Rpb24oZSx0KXt2YXIgbjtlPWV8fHt9LGUuYXR0cmlidXRlPWUuYXR0cmlidXRlfHxcImZpbGxcIix0aGlzLmVsZW1lbnRzPXQsdGhpcy5wYXJhbXM9ZSxlLmF0dHJpYnV0ZXMmJnRoaXMuc2V0QXR0cmlidXRlcyhlLmF0dHJpYnV0ZXMpLGp2bS4kLmlzQXJyYXkoZS5zY2FsZSk/KG49ZS5hdHRyaWJ1dGU9PT1cImZpbGxcInx8ZS5hdHRyaWJ1dGU9PT1cInN0cm9rZVwiP2p2bS5Db2xvclNjYWxlOmp2bS5OdW1lcmljU2NhbGUsdGhpcy5zY2FsZT1uZXcgbihlLnNjYWxlLGUubm9ybWFsaXplRnVuY3Rpb24sZS5taW4sZS5tYXgpKTplLnNjYWxlP3RoaXMuc2NhbGU9bmV3IGp2bS5PcmRpbmFsU2NhbGUoZS5zY2FsZSk6dGhpcy5zY2FsZT1uZXcganZtLlNpbXBsZVNjYWxlKGUuc2NhbGUpLHRoaXMudmFsdWVzPWUudmFsdWVzfHx7fSx0aGlzLnNldFZhbHVlcyh0aGlzLnZhbHVlcyl9LGp2bS5EYXRhU2VyaWVzLnByb3RvdHlwZT17c2V0QXR0cmlidXRlczpmdW5jdGlvbihlLHQpe3ZhciBuPWUscjtpZih0eXBlb2YgZT09XCJzdHJpbmdcIil0aGlzLmVsZW1lbnRzW2VdJiZ0aGlzLmVsZW1lbnRzW2VdLnNldFN0eWxlKHRoaXMucGFyYW1zLmF0dHJpYnV0ZSx0KTtlbHNlIGZvcihyIGluIG4pdGhpcy5lbGVtZW50c1tyXSYmdGhpcy5lbGVtZW50c1tyXS5lbGVtZW50LnNldFN0eWxlKHRoaXMucGFyYW1zLmF0dHJpYnV0ZSxuW3JdKX0sc2V0VmFsdWVzOmZ1bmN0aW9uKGUpe3ZhciB0PU51bWJlci5NSU5fVkFMVUUsbj1OdW1iZXIuTUFYX1ZBTFVFLHIsaSxzPXt9O2lmKHRoaXMuc2NhbGUgaW5zdGFuY2VvZiBqdm0uT3JkaW5hbFNjYWxlfHx0aGlzLnNjYWxlIGluc3RhbmNlb2YganZtLlNpbXBsZVNjYWxlKWZvcihpIGluIGUpZVtpXT9zW2ldPXRoaXMuc2NhbGUuZ2V0VmFsdWUoZVtpXSk6c1tpXT10aGlzLmVsZW1lbnRzW2ldLmVsZW1lbnQuc3R5bGUuaW5pdGlhbFt0aGlzLnBhcmFtcy5hdHRyaWJ1dGVdO2Vsc2V7aWYoIXRoaXMucGFyYW1zLm1pbnx8IXRoaXMucGFyYW1zLm1heCl7Zm9yKGkgaW4gZSlyPXBhcnNlRmxvYXQoZVtpXSkscj50JiYodD1lW2ldKSxyPG4mJihuPXIpO3RoaXMucGFyYW1zLm1pbnx8dGhpcy5zY2FsZS5zZXRNaW4obiksdGhpcy5wYXJhbXMubWF4fHx0aGlzLnNjYWxlLnNldE1heCh0KSx0aGlzLnBhcmFtcy5taW49bix0aGlzLnBhcmFtcy5tYXg9dH1mb3IoaSBpbiBlKXI9cGFyc2VGbG9hdChlW2ldKSxpc05hTihyKT9zW2ldPXRoaXMuZWxlbWVudHNbaV0uZWxlbWVudC5zdHlsZS5pbml0aWFsW3RoaXMucGFyYW1zLmF0dHJpYnV0ZV06c1tpXT10aGlzLnNjYWxlLmdldFZhbHVlKHIpfXRoaXMuc2V0QXR0cmlidXRlcyhzKSxqdm0uJC5leHRlbmQodGhpcy52YWx1ZXMsZSl9LGNsZWFyOmZ1bmN0aW9uKCl7dmFyIGUsdD17fTtmb3IoZSBpbiB0aGlzLnZhbHVlcyl0aGlzLmVsZW1lbnRzW2VdJiYodFtlXT10aGlzLmVsZW1lbnRzW2VdLmVsZW1lbnQuc3R5bGUuaW5pdGlhbFt0aGlzLnBhcmFtcy5hdHRyaWJ1dGVdKTt0aGlzLnNldEF0dHJpYnV0ZXModCksdGhpcy52YWx1ZXM9e319LHNldFNjYWxlOmZ1bmN0aW9uKGUpe3RoaXMuc2NhbGUuc2V0U2NhbGUoZSksdGhpcy52YWx1ZXMmJnRoaXMuc2V0VmFsdWVzKHRoaXMudmFsdWVzKX0sc2V0Tm9ybWFsaXplRnVuY3Rpb246ZnVuY3Rpb24oZSl7dGhpcy5zY2FsZS5zZXROb3JtYWxpemVGdW5jdGlvbihlKSx0aGlzLnZhbHVlcyYmdGhpcy5zZXRWYWx1ZXModGhpcy52YWx1ZXMpfX0sanZtLlByb2o9e2RlZ1JhZDoxODAvTWF0aC5QSSxyYWREZWc6TWF0aC5QSS8xODAscmFkaXVzOjYzODEzNzIsc2duOmZ1bmN0aW9uKGUpe3JldHVybiBlPjA/MTplPDA/LTE6ZX0sbWlsbDpmdW5jdGlvbihlLHQsbil7cmV0dXJue3g6dGhpcy5yYWRpdXMqKHQtbikqdGhpcy5yYWREZWcseTotdGhpcy5yYWRpdXMqTWF0aC5sb2coTWF0aC50YW4oKDQ1Ky40KmUpKnRoaXMucmFkRGVnKSkvLjh9fSxtaWxsX2ludjpmdW5jdGlvbihlLHQsbil7cmV0dXJue2xhdDooMi41Kk1hdGguYXRhbihNYXRoLmV4cCguOCp0L3RoaXMucmFkaXVzKSktNSpNYXRoLlBJLzgpKnRoaXMuZGVnUmFkLGxuZzoobip0aGlzLnJhZERlZytlL3RoaXMucmFkaXVzKSp0aGlzLmRlZ1JhZH19LG1lcmM6ZnVuY3Rpb24oZSx0LG4pe3JldHVybnt4OnRoaXMucmFkaXVzKih0LW4pKnRoaXMucmFkRGVnLHk6LXRoaXMucmFkaXVzKk1hdGgubG9nKE1hdGgudGFuKE1hdGguUEkvNCtlKk1hdGguUEkvMzYwKSl9fSxtZXJjX2ludjpmdW5jdGlvbihlLHQsbil7cmV0dXJue2xhdDooMipNYXRoLmF0YW4oTWF0aC5leHAodC90aGlzLnJhZGl1cykpLU1hdGguUEkvMikqdGhpcy5kZWdSYWQsbG5nOihuKnRoaXMucmFkRGVnK2UvdGhpcy5yYWRpdXMpKnRoaXMuZGVnUmFkfX0sYWVhOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0wLGk9bip0aGlzLnJhZERlZyxzPTI5LjUqdGhpcy5yYWREZWcsbz00NS41KnRoaXMucmFkRGVnLHU9ZSp0aGlzLnJhZERlZyxhPXQqdGhpcy5yYWREZWcsZj0oTWF0aC5zaW4ocykrTWF0aC5zaW4obykpLzIsbD1NYXRoLmNvcyhzKSpNYXRoLmNvcyhzKSsyKmYqTWF0aC5zaW4ocyksYz1mKihhLWkpLGg9TWF0aC5zcXJ0KGwtMipmKk1hdGguc2luKHUpKS9mLHA9TWF0aC5zcXJ0KGwtMipmKk1hdGguc2luKHIpKS9mO3JldHVybnt4OmgqTWF0aC5zaW4oYykqdGhpcy5yYWRpdXMseTotKHAtaCpNYXRoLmNvcyhjKSkqdGhpcy5yYWRpdXN9fSxhZWFfaW52OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lL3RoaXMucmFkaXVzLGk9dC90aGlzLnJhZGl1cyxzPTAsbz1uKnRoaXMucmFkRGVnLHU9MjkuNSp0aGlzLnJhZERlZyxhPTQ1LjUqdGhpcy5yYWREZWcsZj0oTWF0aC5zaW4odSkrTWF0aC5zaW4oYSkpLzIsbD1NYXRoLmNvcyh1KSpNYXRoLmNvcyh1KSsyKmYqTWF0aC5zaW4odSksYz1NYXRoLnNxcnQobC0yKmYqTWF0aC5zaW4ocykpL2YsaD1NYXRoLnNxcnQocipyKyhjLWkpKihjLWkpKSxwPU1hdGguYXRhbihyLyhjLWkpKTtyZXR1cm57bGF0Ok1hdGguYXNpbigobC1oKmgqZipmKS8oMipmKSkqdGhpcy5kZWdSYWQsbG5nOihvK3AvZikqdGhpcy5kZWdSYWR9fSxsY2M6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPTAsaT1uKnRoaXMucmFkRGVnLHM9dCp0aGlzLnJhZERlZyxvPTMzKnRoaXMucmFkRGVnLHU9NDUqdGhpcy5yYWREZWcsYT1lKnRoaXMucmFkRGVnLGY9TWF0aC5sb2coTWF0aC5jb3MobykqKDEvTWF0aC5jb3ModSkpKS9NYXRoLmxvZyhNYXRoLnRhbihNYXRoLlBJLzQrdS8yKSooMS9NYXRoLnRhbihNYXRoLlBJLzQrby8yKSkpLGw9TWF0aC5jb3MobykqTWF0aC5wb3coTWF0aC50YW4oTWF0aC5QSS80K28vMiksZikvZixjPWwqTWF0aC5wb3coMS9NYXRoLnRhbihNYXRoLlBJLzQrYS8yKSxmKSxoPWwqTWF0aC5wb3coMS9NYXRoLnRhbihNYXRoLlBJLzQrci8yKSxmKTtyZXR1cm57eDpjKk1hdGguc2luKGYqKHMtaSkpKnRoaXMucmFkaXVzLHk6LShoLWMqTWF0aC5jb3MoZioocy1pKSkpKnRoaXMucmFkaXVzfX0sbGNjX2ludjpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZS90aGlzLnJhZGl1cyxpPXQvdGhpcy5yYWRpdXMscz0wLG89bip0aGlzLnJhZERlZyx1PTMzKnRoaXMucmFkRGVnLGE9NDUqdGhpcy5yYWREZWcsZj1NYXRoLmxvZyhNYXRoLmNvcyh1KSooMS9NYXRoLmNvcyhhKSkpL01hdGgubG9nKE1hdGgudGFuKE1hdGguUEkvNCthLzIpKigxL01hdGgudGFuKE1hdGguUEkvNCt1LzIpKSksbD1NYXRoLmNvcyh1KSpNYXRoLnBvdyhNYXRoLnRhbihNYXRoLlBJLzQrdS8yKSxmKS9mLGM9bCpNYXRoLnBvdygxL01hdGgudGFuKE1hdGguUEkvNCtzLzIpLGYpLGg9dGhpcy5zZ24oZikqTWF0aC5zcXJ0KHIqcisoYy1pKSooYy1pKSkscD1NYXRoLmF0YW4oci8oYy1pKSk7cmV0dXJue2xhdDooMipNYXRoLmF0YW4oTWF0aC5wb3cobC9oLDEvZikpLU1hdGguUEkvMikqdGhpcy5kZWdSYWQsbG5nOihvK3AvZikqdGhpcy5kZWdSYWR9fX0sanZtLldvcmxkTWFwPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbjt0aGlzLnBhcmFtcz1qdm0uJC5leHRlbmQoITAse30sanZtLldvcmxkTWFwLmRlZmF1bHRQYXJhbXMsZSk7aWYoIWp2bS5Xb3JsZE1hcC5tYXBzW3RoaXMucGFyYW1zLm1hcF0pdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdCB0byB1c2UgbWFwIHdoaWNoIHdhcyBub3QgbG9hZGVkOiBcIit0aGlzLnBhcmFtcy5tYXApO3RoaXMubWFwRGF0YT1qdm0uV29ybGRNYXAubWFwc1t0aGlzLnBhcmFtcy5tYXBdLHRoaXMubWFya2Vycz17fSx0aGlzLnJlZ2lvbnM9e30sdGhpcy5yZWdpb25zQ29sb3JzPXt9LHRoaXMucmVnaW9uc0RhdGE9e30sdGhpcy5jb250YWluZXI9anZtLiQoXCI8ZGl2PlwiKS5jc3Moe3dpZHRoOlwiMTAwJVwiLGhlaWdodDpcIjEwMCVcIn0pLmFkZENsYXNzKFwianZlY3Rvcm1hcC1jb250YWluZXJcIiksdGhpcy5wYXJhbXMuY29udGFpbmVyLmFwcGVuZCh0aGlzLmNvbnRhaW5lciksdGhpcy5jb250YWluZXIuZGF0YShcIm1hcE9iamVjdFwiLHRoaXMpLHRoaXMuY29udGFpbmVyLmNzcyh7cG9zaXRpb246XCJyZWxhdGl2ZVwiLG92ZXJmbG93OlwiaGlkZGVuXCJ9KSx0aGlzLmRlZmF1bHRXaWR0aD10aGlzLm1hcERhdGEud2lkdGgsdGhpcy5kZWZhdWx0SGVpZ2h0PXRoaXMubWFwRGF0YS5oZWlnaHQsdGhpcy5zZXRCYWNrZ3JvdW5kQ29sb3IodGhpcy5wYXJhbXMuYmFja2dyb3VuZENvbG9yKSx0aGlzLm9uUmVzaXplPWZ1bmN0aW9uKCl7dC5zZXRTaXplKCl9LGp2bS4kKHdpbmRvdykucmVzaXplKHRoaXMub25SZXNpemUpO2ZvcihuIGluIGp2bS5Xb3JsZE1hcC5hcGlFdmVudHMpdGhpcy5wYXJhbXNbbl0mJnRoaXMuY29udGFpbmVyLmJpbmQoanZtLldvcmxkTWFwLmFwaUV2ZW50c1tuXStcIi5qdmVjdG9ybWFwXCIsdGhpcy5wYXJhbXNbbl0pO3RoaXMuY2FudmFzPW5ldyBqdm0uVmVjdG9yQ2FudmFzKHRoaXMuY29udGFpbmVyWzBdLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpLFwib250b3VjaHN0YXJ0XCJpbiB3aW5kb3d8fHdpbmRvdy5Eb2N1bWVudFRvdWNoJiZkb2N1bWVudCBpbnN0YW5jZW9mIERvY3VtZW50VG91Y2g/dGhpcy5wYXJhbXMuYmluZFRvdWNoRXZlbnRzJiZ0aGlzLmJpbmRDb250YWluZXJUb3VjaEV2ZW50cygpOnRoaXMuYmluZENvbnRhaW5lckV2ZW50cygpLHRoaXMuYmluZEVsZW1lbnRFdmVudHMoKSx0aGlzLmNyZWF0ZUxhYmVsKCksdGhpcy5wYXJhbXMuem9vbUJ1dHRvbnMmJnRoaXMuYmluZFpvb21CdXR0b25zKCksdGhpcy5jcmVhdGVSZWdpb25zKCksdGhpcy5jcmVhdGVNYXJrZXJzKHRoaXMucGFyYW1zLm1hcmtlcnN8fHt9KSx0aGlzLnNldFNpemUoKSx0aGlzLnBhcmFtcy5mb2N1c09uJiYodHlwZW9mIHRoaXMucGFyYW1zLmZvY3VzT249PVwib2JqZWN0XCI/dGhpcy5zZXRGb2N1cy5jYWxsKHRoaXMsdGhpcy5wYXJhbXMuZm9jdXNPbi5zY2FsZSx0aGlzLnBhcmFtcy5mb2N1c09uLngsdGhpcy5wYXJhbXMuZm9jdXNPbi55KTp0aGlzLnNldEZvY3VzLmNhbGwodGhpcyx0aGlzLnBhcmFtcy5mb2N1c09uKSksdGhpcy5wYXJhbXMuc2VsZWN0ZWRSZWdpb25zJiZ0aGlzLnNldFNlbGVjdGVkUmVnaW9ucyh0aGlzLnBhcmFtcy5zZWxlY3RlZFJlZ2lvbnMpLHRoaXMucGFyYW1zLnNlbGVjdGVkTWFya2VycyYmdGhpcy5zZXRTZWxlY3RlZE1hcmtlcnModGhpcy5wYXJhbXMuc2VsZWN0ZWRNYXJrZXJzKSx0aGlzLnBhcmFtcy5zZXJpZXMmJnRoaXMuY3JlYXRlU2VyaWVzKCl9LGp2bS5Xb3JsZE1hcC5wcm90b3R5cGU9e3RyYW5zWDowLHRyYW5zWTowLHNjYWxlOjEsYmFzZVRyYW5zWDowLGJhc2VUcmFuc1k6MCxiYXNlU2NhbGU6MSx3aWR0aDowLGhlaWdodDowLHNldEJhY2tncm91bmRDb2xvcjpmdW5jdGlvbihlKXt0aGlzLmNvbnRhaW5lci5jc3MoXCJiYWNrZ3JvdW5kLWNvbG9yXCIsZSl9LHJlc2l6ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuYmFzZVNjYWxlO3RoaXMud2lkdGgvdGhpcy5oZWlnaHQ+dGhpcy5kZWZhdWx0V2lkdGgvdGhpcy5kZWZhdWx0SGVpZ2h0Pyh0aGlzLmJhc2VTY2FsZT10aGlzLmhlaWdodC90aGlzLmRlZmF1bHRIZWlnaHQsdGhpcy5iYXNlVHJhbnNYPU1hdGguYWJzKHRoaXMud2lkdGgtdGhpcy5kZWZhdWx0V2lkdGgqdGhpcy5iYXNlU2NhbGUpLygyKnRoaXMuYmFzZVNjYWxlKSk6KHRoaXMuYmFzZVNjYWxlPXRoaXMud2lkdGgvdGhpcy5kZWZhdWx0V2lkdGgsdGhpcy5iYXNlVHJhbnNZPU1hdGguYWJzKHRoaXMuaGVpZ2h0LXRoaXMuZGVmYXVsdEhlaWdodCp0aGlzLmJhc2VTY2FsZSkvKDIqdGhpcy5iYXNlU2NhbGUpKSx0aGlzLnNjYWxlKj10aGlzLmJhc2VTY2FsZS9lLHRoaXMudHJhbnNYKj10aGlzLmJhc2VTY2FsZS9lLHRoaXMudHJhbnNZKj10aGlzLmJhc2VTY2FsZS9lfSxzZXRTaXplOmZ1bmN0aW9uKCl7dGhpcy53aWR0aD10aGlzLmNvbnRhaW5lci53aWR0aCgpLHRoaXMuaGVpZ2h0PXRoaXMuY29udGFpbmVyLmhlaWdodCgpLHRoaXMucmVzaXplKCksdGhpcy5jYW52YXMuc2V0U2l6ZSh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLmFwcGx5VHJhbnNmb3JtKCl9LHJlc2V0OmZ1bmN0aW9uKCl7dmFyIGUsdDtmb3IoZSBpbiB0aGlzLnNlcmllcylmb3IodD0wO3Q8dGhpcy5zZXJpZXNbZV0ubGVuZ3RoO3QrKyl0aGlzLnNlcmllc1tlXVt0XS5jbGVhcigpO3RoaXMuc2NhbGU9dGhpcy5iYXNlU2NhbGUsdGhpcy50cmFuc1g9dGhpcy5iYXNlVHJhbnNYLHRoaXMudHJhbnNZPXRoaXMuYmFzZVRyYW5zWSx0aGlzLmFwcGx5VHJhbnNmb3JtKCl9LGFwcGx5VHJhbnNmb3JtOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7dGhpcy5kZWZhdWx0V2lkdGgqdGhpcy5zY2FsZTw9dGhpcy53aWR0aD8oZT0odGhpcy53aWR0aC10aGlzLmRlZmF1bHRXaWR0aCp0aGlzLnNjYWxlKS8oMip0aGlzLnNjYWxlKSxuPSh0aGlzLndpZHRoLXRoaXMuZGVmYXVsdFdpZHRoKnRoaXMuc2NhbGUpLygyKnRoaXMuc2NhbGUpKTooZT0wLG49KHRoaXMud2lkdGgtdGhpcy5kZWZhdWx0V2lkdGgqdGhpcy5zY2FsZSkvdGhpcy5zY2FsZSksdGhpcy5kZWZhdWx0SGVpZ2h0KnRoaXMuc2NhbGU8PXRoaXMuaGVpZ2h0Pyh0PSh0aGlzLmhlaWdodC10aGlzLmRlZmF1bHRIZWlnaHQqdGhpcy5zY2FsZSkvKDIqdGhpcy5zY2FsZSkscj0odGhpcy5oZWlnaHQtdGhpcy5kZWZhdWx0SGVpZ2h0KnRoaXMuc2NhbGUpLygyKnRoaXMuc2NhbGUpKToodD0wLHI9KHRoaXMuaGVpZ2h0LXRoaXMuZGVmYXVsdEhlaWdodCp0aGlzLnNjYWxlKS90aGlzLnNjYWxlKSx0aGlzLnRyYW5zWT50P3RoaXMudHJhbnNZPXQ6dGhpcy50cmFuc1k8ciYmKHRoaXMudHJhbnNZPXIpLHRoaXMudHJhbnNYPmU/dGhpcy50cmFuc1g9ZTp0aGlzLnRyYW5zWDxuJiYodGhpcy50cmFuc1g9biksdGhpcy5jYW52YXMuYXBwbHlUcmFuc2Zvcm1QYXJhbXModGhpcy5zY2FsZSx0aGlzLnRyYW5zWCx0aGlzLnRyYW5zWSksdGhpcy5tYXJrZXJzJiZ0aGlzLnJlcG9zaXRpb25NYXJrZXJzKCksdGhpcy5jb250YWluZXIudHJpZ2dlcihcInZpZXdwb3J0Q2hhbmdlXCIsW3RoaXMuc2NhbGUvdGhpcy5iYXNlU2NhbGUsdGhpcy50cmFuc1gsdGhpcy50cmFuc1ldKX0sYmluZENvbnRhaW5lckV2ZW50czpmdW5jdGlvbigpe3ZhciBlPSExLHQsbixyPXRoaXM7dGhpcy5jb250YWluZXIubW91c2Vtb3ZlKGZ1bmN0aW9uKGkpe3JldHVybiBlJiYoci50cmFuc1gtPSh0LWkucGFnZVgpL3Iuc2NhbGUsci50cmFuc1ktPShuLWkucGFnZVkpL3Iuc2NhbGUsci5hcHBseVRyYW5zZm9ybSgpLHQ9aS5wYWdlWCxuPWkucGFnZVkpLCExfSkubW91c2Vkb3duKGZ1bmN0aW9uKHIpe3JldHVybiBlPSEwLHQ9ci5wYWdlWCxuPXIucGFnZVksITF9KSxqdm0uJChcImJvZHlcIikubW91c2V1cChmdW5jdGlvbigpe2U9ITF9KSx0aGlzLnBhcmFtcy56b29tT25TY3JvbGwmJnRoaXMuY29udGFpbmVyLm1vdXNld2hlZWwoZnVuY3Rpb24oZSx0LG4saSl7dmFyIHM9anZtLiQoci5jb250YWluZXIpLm9mZnNldCgpLG89ZS5wYWdlWC1zLmxlZnQsdT1lLnBhZ2VZLXMudG9wLGE9TWF0aC5wb3coMS4zLGkpO3IubGFiZWwuaGlkZSgpLHIuc2V0U2NhbGUoci5zY2FsZSphLG8sdSksZS5wcmV2ZW50RGVmYXVsdCgpfSl9LGJpbmRDb250YWluZXJUb3VjaEV2ZW50czpmdW5jdGlvbigpe3ZhciBlLHQsbj10aGlzLHIsaSxzLG8sdSxhPWZ1bmN0aW9uKGEpe3ZhciBmPWEub3JpZ2luYWxFdmVudC50b3VjaGVzLGwsYyxoLHA7YS50eXBlPT1cInRvdWNoc3RhcnRcIiYmKHU9MCksZi5sZW5ndGg9PTE/KHU9PTEmJihoPW4udHJhbnNYLHA9bi50cmFuc1ksbi50cmFuc1gtPShyLWZbMF0ucGFnZVgpL24uc2NhbGUsbi50cmFuc1ktPShpLWZbMF0ucGFnZVkpL24uc2NhbGUsbi5hcHBseVRyYW5zZm9ybSgpLG4ubGFiZWwuaGlkZSgpLChoIT1uLnRyYW5zWHx8cCE9bi50cmFuc1kpJiZhLnByZXZlbnREZWZhdWx0KCkpLHI9ZlswXS5wYWdlWCxpPWZbMF0ucGFnZVkpOmYubGVuZ3RoPT0yJiYodT09Mj8oYz1NYXRoLnNxcnQoTWF0aC5wb3coZlswXS5wYWdlWC1mWzFdLnBhZ2VYLDIpK01hdGgucG93KGZbMF0ucGFnZVktZlsxXS5wYWdlWSwyKSkvdCxuLnNldFNjYWxlKGUqYyxzLG8pLG4ubGFiZWwuaGlkZSgpLGEucHJldmVudERlZmF1bHQoKSk6KGw9anZtLiQobi5jb250YWluZXIpLm9mZnNldCgpLGZbMF0ucGFnZVg+ZlsxXS5wYWdlWD9zPWZbMV0ucGFnZVgrKGZbMF0ucGFnZVgtZlsxXS5wYWdlWCkvMjpzPWZbMF0ucGFnZVgrKGZbMV0ucGFnZVgtZlswXS5wYWdlWCkvMixmWzBdLnBhZ2VZPmZbMV0ucGFnZVk/bz1mWzFdLnBhZ2VZKyhmWzBdLnBhZ2VZLWZbMV0ucGFnZVkpLzI6bz1mWzBdLnBhZ2VZKyhmWzFdLnBhZ2VZLWZbMF0ucGFnZVkpLzIscy09bC5sZWZ0LG8tPWwudG9wLGU9bi5zY2FsZSx0PU1hdGguc3FydChNYXRoLnBvdyhmWzBdLnBhZ2VYLWZbMV0ucGFnZVgsMikrTWF0aC5wb3coZlswXS5wYWdlWS1mWzFdLnBhZ2VZLDIpKSkpLHU9Zi5sZW5ndGh9O2p2bS4kKHRoaXMuY29udGFpbmVyKS5iaW5kKFwidG91Y2hzdGFydFwiLGEpLGp2bS4kKHRoaXMuY29udGFpbmVyKS5iaW5kKFwidG91Y2htb3ZlXCIsYSl9LGJpbmRFbGVtZW50RXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0O3RoaXMuY29udGFpbmVyLm1vdXNlbW92ZShmdW5jdGlvbigpe3Q9ITB9KSx0aGlzLmNvbnRhaW5lci5kZWxlZ2F0ZShcIltjbGFzc349J2p2ZWN0b3JtYXAtZWxlbWVudCddXCIsXCJtb3VzZW92ZXIgbW91c2VvdXRcIixmdW5jdGlvbih0KXt2YXIgbj10aGlzLHI9anZtLiQodGhpcykuYXR0cihcImNsYXNzXCIpLmJhc2VWYWw/anZtLiQodGhpcykuYXR0cihcImNsYXNzXCIpLmJhc2VWYWw6anZtLiQodGhpcykuYXR0cihcImNsYXNzXCIpLGk9ci5pbmRleE9mKFwianZlY3Rvcm1hcC1yZWdpb25cIik9PT0tMT9cIm1hcmtlclwiOlwicmVnaW9uXCIscz1pPT1cInJlZ2lvblwiP2p2bS4kKHRoaXMpLmF0dHIoXCJkYXRhLWNvZGVcIik6anZtLiQodGhpcykuYXR0cihcImRhdGEtaW5kZXhcIiksbz1pPT1cInJlZ2lvblwiP2UucmVnaW9uc1tzXS5lbGVtZW50OmUubWFya2Vyc1tzXS5lbGVtZW50LHU9aT09XCJyZWdpb25cIj9lLm1hcERhdGEucGF0aHNbc10ubmFtZTplLm1hcmtlcnNbc10uY29uZmlnLm5hbWV8fFwiXCIsYT1qdm0uJC5FdmVudChpK1wiTGFiZWxTaG93Lmp2ZWN0b3JtYXBcIiksZj1qdm0uJC5FdmVudChpK1wiT3Zlci5qdmVjdG9ybWFwXCIpO3QudHlwZT09XCJtb3VzZW92ZXJcIj8oZS5jb250YWluZXIudHJpZ2dlcihmLFtzXSksZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8by5zZXRIb3ZlcmVkKCEwKSxlLmxhYmVsLnRleHQodSksZS5jb250YWluZXIudHJpZ2dlcihhLFtlLmxhYmVsLHNdKSxhLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoZS5sYWJlbC5zaG93KCksZS5sYWJlbFdpZHRoPWUubGFiZWwud2lkdGgoKSxlLmxhYmVsSGVpZ2h0PWUubGFiZWwuaGVpZ2h0KCkpKTooby5zZXRIb3ZlcmVkKCExKSxlLmxhYmVsLmhpZGUoKSxlLmNvbnRhaW5lci50cmlnZ2VyKGkrXCJPdXQuanZlY3Rvcm1hcFwiLFtzXSkpfSksdGhpcy5jb250YWluZXIuZGVsZWdhdGUoXCJbY2xhc3N+PSdqdmVjdG9ybWFwLWVsZW1lbnQnXVwiLFwibW91c2Vkb3duXCIsZnVuY3Rpb24oZSl7dD0hMX0pLHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKFwiW2NsYXNzfj0nanZlY3Rvcm1hcC1lbGVtZW50J11cIixcIm1vdXNldXBcIixmdW5jdGlvbihuKXt2YXIgcj10aGlzLGk9anZtLiQodGhpcykuYXR0cihcImNsYXNzXCIpLmJhc2VWYWw/anZtLiQodGhpcykuYXR0cihcImNsYXNzXCIpLmJhc2VWYWw6anZtLiQodGhpcykuYXR0cihcImNsYXNzXCIpLHM9aS5pbmRleE9mKFwianZlY3Rvcm1hcC1yZWdpb25cIik9PT0tMT9cIm1hcmtlclwiOlwicmVnaW9uXCIsbz1zPT1cInJlZ2lvblwiP2p2bS4kKHRoaXMpLmF0dHIoXCJkYXRhLWNvZGVcIik6anZtLiQodGhpcykuYXR0cihcImRhdGEtaW5kZXhcIiksdT1qdm0uJC5FdmVudChzK1wiQ2xpY2suanZlY3Rvcm1hcFwiKSxhPXM9PVwicmVnaW9uXCI/ZS5yZWdpb25zW29dLmVsZW1lbnQ6ZS5tYXJrZXJzW29dLmVsZW1lbnQ7aWYoIXQpe2UuY29udGFpbmVyLnRyaWdnZXIodSxbb10pO2lmKHM9PT1cInJlZ2lvblwiJiZlLnBhcmFtcy5yZWdpb25zU2VsZWN0YWJsZXx8cz09PVwibWFya2VyXCImJmUucGFyYW1zLm1hcmtlcnNTZWxlY3RhYmxlKXUuaXNEZWZhdWx0UHJldmVudGVkKCl8fChlLnBhcmFtc1tzK1wic1NlbGVjdGFibGVPbmVcIl0mJmUuY2xlYXJTZWxlY3RlZChzK1wic1wiKSxhLnNldFNlbGVjdGVkKCFhLmlzU2VsZWN0ZWQpKX19KX0sYmluZFpvb21CdXR0b25zOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztqdm0uJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImp2ZWN0b3JtYXAtem9vbWluXCIpLnRleHQoXCIrXCIpLmFwcGVuZFRvKHRoaXMuY29udGFpbmVyKSxqdm0uJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImp2ZWN0b3JtYXAtem9vbW91dFwiKS5odG1sKFwiJiN4MjIxMjtcIikuYXBwZW5kVG8odGhpcy5jb250YWluZXIpLHRoaXMuY29udGFpbmVyLmZpbmQoXCIuanZlY3Rvcm1hcC16b29taW5cIikuY2xpY2soZnVuY3Rpb24oKXtlLnNldFNjYWxlKGUuc2NhbGUqZS5wYXJhbXMuem9vbVN0ZXAsZS53aWR0aC8yLGUuaGVpZ2h0LzIpfSksdGhpcy5jb250YWluZXIuZmluZChcIi5qdmVjdG9ybWFwLXpvb21vdXRcIikuY2xpY2soZnVuY3Rpb24oKXtlLnNldFNjYWxlKGUuc2NhbGUvZS5wYXJhbXMuem9vbVN0ZXAsZS53aWR0aC8yLGUuaGVpZ2h0LzIpfSl9LGNyZWF0ZUxhYmVsOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmxhYmVsPWp2bS4kKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwianZlY3Rvcm1hcC1sYWJlbFwiKS5hcHBlbmRUbyhqdm0uJChcImJvZHlcIikpLHRoaXMuY29udGFpbmVyLm1vdXNlbW92ZShmdW5jdGlvbih0KXt2YXIgbj10LnBhZ2VYLTE1LWUubGFiZWxXaWR0aCxyPXQucGFnZVktMTUtZS5sYWJlbEhlaWdodDtuPDUmJihuPXQucGFnZVgrMTUpLHI8NSYmKHI9dC5wYWdlWSsxNSksZS5sYWJlbC5pcyhcIjp2aXNpYmxlXCIpJiZlLmxhYmVsLmNzcyh7bGVmdDpuLHRvcDpyfSl9KX0sc2V0U2NhbGU6ZnVuY3Rpb24oZSx0LG4scil7dmFyIGkscz1qdm0uJC5FdmVudChcInpvb20uanZlY3Rvcm1hcFwiKTtlPnRoaXMucGFyYW1zLnpvb21NYXgqdGhpcy5iYXNlU2NhbGU/ZT10aGlzLnBhcmFtcy56b29tTWF4KnRoaXMuYmFzZVNjYWxlOmU8dGhpcy5wYXJhbXMuem9vbU1pbip0aGlzLmJhc2VTY2FsZSYmKGU9dGhpcy5wYXJhbXMuem9vbU1pbip0aGlzLmJhc2VTY2FsZSksdHlwZW9mIHQhPVwidW5kZWZpbmVkXCImJnR5cGVvZiBuIT1cInVuZGVmaW5lZFwiJiYoaT1lL3RoaXMuc2NhbGUscj8odGhpcy50cmFuc1g9dCt0aGlzLmRlZmF1bHRXaWR0aCoodGhpcy53aWR0aC8odGhpcy5kZWZhdWx0V2lkdGgqZSkpLzIsdGhpcy50cmFuc1k9bit0aGlzLmRlZmF1bHRIZWlnaHQqKHRoaXMuaGVpZ2h0Lyh0aGlzLmRlZmF1bHRIZWlnaHQqZSkpLzIpOih0aGlzLnRyYW5zWC09KGktMSkvZSp0LHRoaXMudHJhbnNZLT0oaS0xKS9lKm4pKSx0aGlzLnNjYWxlPWUsdGhpcy5hcHBseVRyYW5zZm9ybSgpLHRoaXMuY29udGFpbmVyLnRyaWdnZXIocyxbZS90aGlzLmJhc2VTY2FsZV0pfSxzZXRGb2N1czpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxzLG8sdTtpZihqdm0uJC5pc0FycmF5KGUpfHx0aGlzLnJlZ2lvbnNbZV0pe2p2bS4kLmlzQXJyYXkoZSk/bz1lOm89W2VdO2Zvcih1PTA7dTxvLmxlbmd0aDt1KyspdGhpcy5yZWdpb25zW29bdV1dJiYoaT10aGlzLnJlZ2lvbnNbb1t1XV0uZWxlbWVudC5nZXRCQm94KCksaSYmKHR5cGVvZiByPT1cInVuZGVmaW5lZFwiP3I9aToocz17eDpNYXRoLm1pbihyLngsaS54KSx5Ok1hdGgubWluKHIueSxpLnkpLHdpZHRoOk1hdGgubWF4KHIueCtyLndpZHRoLGkueCtpLndpZHRoKS1NYXRoLm1pbihyLngsaS54KSxoZWlnaHQ6TWF0aC5tYXgoci55K3IuaGVpZ2h0LGkueStpLmhlaWdodCktTWF0aC5taW4oci55LGkueSl9LHI9cykpKTt0aGlzLnNldFNjYWxlKE1hdGgubWluKHRoaXMud2lkdGgvci53aWR0aCx0aGlzLmhlaWdodC9yLmhlaWdodCksLShyLngrci53aWR0aC8yKSwtKHIueStyLmhlaWdodC8yKSwhMCl9ZWxzZSBlKj10aGlzLmJhc2VTY2FsZSx0aGlzLnNldFNjYWxlKGUsLXQqdGhpcy5kZWZhdWx0V2lkdGgsLW4qdGhpcy5kZWZhdWx0SGVpZ2h0LCEwKX0sZ2V0U2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7dmFyIHQsbj1bXTtmb3IodCBpbiB0aGlzW2VdKXRoaXNbZV1bdF0uZWxlbWVudC5pc1NlbGVjdGVkJiZuLnB1c2godCk7cmV0dXJuIG59LGdldFNlbGVjdGVkUmVnaW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFNlbGVjdGVkKFwicmVnaW9uc1wiKX0sZ2V0U2VsZWN0ZWRNYXJrZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWQoXCJtYXJrZXJzXCIpfSxzZXRTZWxlY3RlZDpmdW5jdGlvbihlLHQpe3ZhciBuO3R5cGVvZiB0IT1cIm9iamVjdFwiJiYodD1bdF0pO2lmKGp2bS4kLmlzQXJyYXkodCkpZm9yKG49MDtuPHQubGVuZ3RoO24rKyl0aGlzW2VdW3Rbbl1dLmVsZW1lbnQuc2V0U2VsZWN0ZWQoITApO2Vsc2UgZm9yKG4gaW4gdCl0aGlzW2VdW25dLmVsZW1lbnQuc2V0U2VsZWN0ZWQoISF0W25dKX0sc2V0U2VsZWN0ZWRSZWdpb25zOmZ1bmN0aW9uKGUpe3RoaXMuc2V0U2VsZWN0ZWQoXCJyZWdpb25zXCIsZSl9LHNldFNlbGVjdGVkTWFya2VyczpmdW5jdGlvbihlKXt0aGlzLnNldFNlbGVjdGVkKFwibWFya2Vyc1wiLGUpfSxjbGVhclNlbGVjdGVkOmZ1bmN0aW9uKGUpe3ZhciB0PXt9LG49dGhpcy5nZXRTZWxlY3RlZChlKSxyO2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspdFtuW3JdXT0hMTt0aGlzLnNldFNlbGVjdGVkKGUsdCl9LGNsZWFyU2VsZWN0ZWRSZWdpb25zOmZ1bmN0aW9uKCl7dGhpcy5jbGVhclNlbGVjdGVkKFwicmVnaW9uc1wiKX0sY2xlYXJTZWxlY3RlZE1hcmtlcnM6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyU2VsZWN0ZWQoXCJtYXJrZXJzXCIpfSxnZXRNYXBPYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZ2V0UmVnaW9uTmFtZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5tYXBEYXRhLnBhdGhzW2VdLm5hbWV9LGNyZWF0ZVJlZ2lvbnM6ZnVuY3Rpb24oKXt2YXIgZSx0LG49dGhpcztmb3IoZSBpbiB0aGlzLm1hcERhdGEucGF0aHMpdD10aGlzLmNhbnZhcy5hZGRQYXRoKHtkOnRoaXMubWFwRGF0YS5wYXRoc1tlXS5wYXRoLFwiZGF0YS1jb2RlXCI6ZX0sanZtLiQuZXh0ZW5kKCEwLHt9LHRoaXMucGFyYW1zLnJlZ2lvblN0eWxlKSksanZtLiQodC5ub2RlKS5iaW5kKFwic2VsZWN0ZWRcIixmdW5jdGlvbihlLHQpe24uY29udGFpbmVyLnRyaWdnZXIoXCJyZWdpb25TZWxlY3RlZC5qdmVjdG9ybWFwXCIsW2p2bS4kKHRoaXMpLmF0dHIoXCJkYXRhLWNvZGVcIiksdCxuLmdldFNlbGVjdGVkUmVnaW9ucygpXSl9KSx0LmFkZENsYXNzKFwianZlY3Rvcm1hcC1yZWdpb24ganZlY3Rvcm1hcC1lbGVtZW50XCIpLHRoaXMucmVnaW9uc1tlXT17ZWxlbWVudDp0LGNvbmZpZzp0aGlzLm1hcERhdGEucGF0aHNbZV19fSxjcmVhdGVNYXJrZXJzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLHMsbz10aGlzO3RoaXMubWFya2Vyc0dyb3VwPXRoaXMubWFya2Vyc0dyb3VwfHx0aGlzLmNhbnZhcy5hZGRHcm91cCgpO2lmKGp2bS4kLmlzQXJyYXkoZSkpe3M9ZS5zbGljZSgpLGU9e307Zm9yKHQ9MDt0PHMubGVuZ3RoO3QrKyllW3RdPXNbdF19Zm9yKHQgaW4gZSlpPWVbdF1pbnN0YW5jZW9mIEFycmF5P3tsYXRMbmc6ZVt0XX06ZVt0XSxyPXRoaXMuZ2V0TWFya2VyUG9zaXRpb24oaSksciE9PSExJiYobj10aGlzLmNhbnZhcy5hZGRDaXJjbGUoe1wiZGF0YS1pbmRleFwiOnQsY3g6ci54LGN5OnIueX0sanZtLiQuZXh0ZW5kKCEwLHt9LHRoaXMucGFyYW1zLm1hcmtlclN0eWxlLHtpbml0aWFsOmkuc3R5bGV8fHt9fSksdGhpcy5tYXJrZXJzR3JvdXApLG4uYWRkQ2xhc3MoXCJqdmVjdG9ybWFwLW1hcmtlciBqdmVjdG9ybWFwLWVsZW1lbnRcIiksanZtLiQobi5ub2RlKS5iaW5kKFwic2VsZWN0ZWRcIixmdW5jdGlvbihlLHQpe28uY29udGFpbmVyLnRyaWdnZXIoXCJtYXJrZXJTZWxlY3RlZC5qdmVjdG9ybWFwXCIsW2p2bS4kKHRoaXMpLmF0dHIoXCJkYXRhLWluZGV4XCIpLHQsby5nZXRTZWxlY3RlZE1hcmtlcnMoKV0pfSksdGhpcy5tYXJrZXJzW3RdJiZ0aGlzLnJlbW92ZU1hcmtlcnMoW3RdKSx0aGlzLm1hcmtlcnNbdF09e2VsZW1lbnQ6bixjb25maWc6aX0pfSxyZXBvc2l0aW9uTWFya2VyczpmdW5jdGlvbigpe3ZhciBlLHQ7Zm9yKGUgaW4gdGhpcy5tYXJrZXJzKXQ9dGhpcy5nZXRNYXJrZXJQb3NpdGlvbih0aGlzLm1hcmtlcnNbZV0uY29uZmlnKSx0IT09ITEmJnRoaXMubWFya2Vyc1tlXS5lbGVtZW50LnNldFN0eWxlKHtjeDp0LngsY3k6dC55fSl9LGdldE1hcmtlclBvc2l0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiBqdm0uV29ybGRNYXAubWFwc1t0aGlzLnBhcmFtcy5tYXBdLnByb2plY3Rpb24/dGhpcy5sYXRMbmdUb1BvaW50LmFwcGx5KHRoaXMsZS5sYXRMbmd8fFswLDBdKTp7eDplLmNvb3Jkc1swXSp0aGlzLnNjYWxlK3RoaXMudHJhbnNYKnRoaXMuc2NhbGUseTplLmNvb3Jkc1sxXSp0aGlzLnNjYWxlK3RoaXMudHJhbnNZKnRoaXMuc2NhbGV9fSxhZGRNYXJrZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXt9LGk9W10scyxvLG49bnx8W107cltlXT10O2ZvcihvPTA7bzxuLmxlbmd0aDtvKyspcz17fSxzW2VdPW5bb10saS5wdXNoKHMpO3RoaXMuYWRkTWFya2VycyhyLGkpfSxhZGRNYXJrZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG47dD10fHxbXSx0aGlzLmNyZWF0ZU1hcmtlcnMoZSk7Zm9yKG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLnNlcmllcy5tYXJrZXJzW25dLnNldFZhbHVlcyh0W25dfHx7fSl9LHJlbW92ZU1hcmtlcnM6ZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLm1hcmtlcnNbZVt0XV0uZWxlbWVudC5yZW1vdmUoKSxkZWxldGUgdGhpcy5tYXJrZXJzW2VbdF1dfSxyZW1vdmVBbGxNYXJrZXJzOmZ1bmN0aW9uKCl7dmFyIGUsdD1bXTtmb3IoZSBpbiB0aGlzLm1hcmtlcnMpdC5wdXNoKGUpO3RoaXMucmVtb3ZlTWFya2Vycyh0KX0sbGF0TG5nVG9Qb2ludDpmdW5jdGlvbihlLHQpe3ZhciBuLHI9anZtLldvcmxkTWFwLm1hcHNbdGhpcy5wYXJhbXMubWFwXS5wcm9qZWN0aW9uLGk9ci5jZW50cmFsTWVyaWRpYW4scz10aGlzLndpZHRoLXRoaXMuYmFzZVRyYW5zWCoyKnRoaXMuYmFzZVNjYWxlLG89dGhpcy5oZWlnaHQtdGhpcy5iYXNlVHJhbnNZKjIqdGhpcy5iYXNlU2NhbGUsdSxhLGY9dGhpcy5zY2FsZS90aGlzLmJhc2VTY2FsZTtyZXR1cm4gdDwtMTgwK2kmJih0Kz0zNjApLG49anZtLlByb2pbci50eXBlXShlLHQsaSksdT10aGlzLmdldEluc2V0Rm9yUG9pbnQobi54LG4ueSksdT8oYT11LmJib3gsbi54PShuLngtYVswXS54KS8oYVsxXS54LWFbMF0ueCkqdS53aWR0aCp0aGlzLnNjYWxlLG4ueT0obi55LWFbMF0ueSkvKGFbMV0ueS1hWzBdLnkpKnUuaGVpZ2h0KnRoaXMuc2NhbGUse3g6bi54K3RoaXMudHJhbnNYKnRoaXMuc2NhbGUrdS5sZWZ0KnRoaXMuc2NhbGUseTpuLnkrdGhpcy50cmFuc1kqdGhpcy5zY2FsZSt1LnRvcCp0aGlzLnNjYWxlfSk6ITF9LHBvaW50VG9MYXRMbmc6ZnVuY3Rpb24oZSx0KXt2YXIgbj1qdm0uV29ybGRNYXAubWFwc1t0aGlzLnBhcmFtcy5tYXBdLnByb2plY3Rpb24scj1uLmNlbnRyYWxNZXJpZGlhbixpPWp2bS5Xb3JsZE1hcC5tYXBzW3RoaXMucGFyYW1zLm1hcF0uaW5zZXRzLHMsbyx1LGEsZjtmb3Iocz0wO3M8aS5sZW5ndGg7cysrKXtvPWlbc10sdT1vLmJib3gsYT1lLSh0aGlzLnRyYW5zWCp0aGlzLnNjYWxlK28ubGVmdCp0aGlzLnNjYWxlKSxmPXQtKHRoaXMudHJhbnNZKnRoaXMuc2NhbGUrby50b3AqdGhpcy5zY2FsZSksYT1hLyhvLndpZHRoKnRoaXMuc2NhbGUpKih1WzFdLngtdVswXS54KSt1WzBdLngsZj1mLyhvLmhlaWdodCp0aGlzLnNjYWxlKSoodVsxXS55LXVbMF0ueSkrdVswXS55O2lmKGE+dVswXS54JiZhPHVbMV0ueCYmZj51WzBdLnkmJmY8dVsxXS55KXJldHVybiBqdm0uUHJvaltuLnR5cGUrXCJfaW52XCJdKGEsLWYscil9cmV0dXJuITF9LGdldEluc2V0Rm9yUG9pbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj1qdm0uV29ybGRNYXAubWFwc1t0aGlzLnBhcmFtcy5tYXBdLmluc2V0cyxyLGk7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyl7aT1uW3JdLmJib3g7aWYoZT5pWzBdLngmJmU8aVsxXS54JiZ0PmlbMF0ueSYmdDxpWzFdLnkpcmV0dXJuIG5bcl19fSxjcmVhdGVTZXJpZXM6ZnVuY3Rpb24oKXt2YXIgZSx0O3RoaXMuc2VyaWVzPXttYXJrZXJzOltdLHJlZ2lvbnM6W119O2Zvcih0IGluIHRoaXMucGFyYW1zLnNlcmllcylmb3IoZT0wO2U8dGhpcy5wYXJhbXMuc2VyaWVzW3RdLmxlbmd0aDtlKyspdGhpcy5zZXJpZXNbdF1bZV09bmV3IGp2bS5EYXRhU2VyaWVzKHRoaXMucGFyYW1zLnNlcmllc1t0XVtlXSx0aGlzW3RdKX0scmVtb3ZlOmZ1bmN0aW9uKCl7dGhpcy5sYWJlbC5yZW1vdmUoKSx0aGlzLmNvbnRhaW5lci5yZW1vdmUoKSxqdm0uJCh3aW5kb3cpLnVuYmluZChcInJlc2l6ZVwiLHRoaXMub25SZXNpemUpfX0sanZtLldvcmxkTWFwLm1hcHM9e30sanZtLldvcmxkTWFwLmRlZmF1bHRQYXJhbXM9e21hcDpcIndvcmxkX21pbGxfZW5cIixiYWNrZ3JvdW5kQ29sb3I6XCIjNTA1MDUwXCIsem9vbUJ1dHRvbnM6ITAsem9vbU9uU2Nyb2xsOiEwLHpvb21NYXg6OCx6b29tTWluOjEsem9vbVN0ZXA6MS42LHJlZ2lvbnNTZWxlY3RhYmxlOiExLG1hcmtlcnNTZWxlY3RhYmxlOiExLGJpbmRUb3VjaEV2ZW50czohMCxyZWdpb25TdHlsZTp7aW5pdGlhbDp7ZmlsbDpcIndoaXRlXCIsXCJmaWxsLW9wYWNpdHlcIjoxLHN0cm9rZTpcIm5vbmVcIixcInN0cm9rZS13aWR0aFwiOjAsXCJzdHJva2Utb3BhY2l0eVwiOjF9LGhvdmVyOntcImZpbGwtb3BhY2l0eVwiOi44fSxzZWxlY3RlZDp7ZmlsbDpcInllbGxvd1wifSxzZWxlY3RlZEhvdmVyXG46e319LG1hcmtlclN0eWxlOntpbml0aWFsOntmaWxsOlwiZ3JleVwiLHN0cm9rZTpcIiM1MDUwNTBcIixcImZpbGwtb3BhY2l0eVwiOjEsXCJzdHJva2Utd2lkdGhcIjoxLFwic3Ryb2tlLW9wYWNpdHlcIjoxLHI6NX0saG92ZXI6e3N0cm9rZTpcImJsYWNrXCIsXCJzdHJva2Utd2lkdGhcIjoyfSxzZWxlY3RlZDp7ZmlsbDpcImJsdWVcIn0sc2VsZWN0ZWRIb3Zlcjp7fX19LGp2bS5Xb3JsZE1hcC5hcGlFdmVudHM9e29uUmVnaW9uTGFiZWxTaG93OlwicmVnaW9uTGFiZWxTaG93XCIsb25SZWdpb25PdmVyOlwicmVnaW9uT3ZlclwiLG9uUmVnaW9uT3V0OlwicmVnaW9uT3V0XCIsb25SZWdpb25DbGljazpcInJlZ2lvbkNsaWNrXCIsb25SZWdpb25TZWxlY3RlZDpcInJlZ2lvblNlbGVjdGVkXCIsb25NYXJrZXJMYWJlbFNob3c6XCJtYXJrZXJMYWJlbFNob3dcIixvbk1hcmtlck92ZXI6XCJtYXJrZXJPdmVyXCIsb25NYXJrZXJPdXQ6XCJtYXJrZXJPdXRcIixvbk1hcmtlckNsaWNrOlwibWFya2VyQ2xpY2tcIixvbk1hcmtlclNlbGVjdGVkOlwibWFya2VyU2VsZWN0ZWRcIixvblZpZXdwb3J0Q2hhbmdlOlwidmlld3BvcnRDaGFuZ2VcIn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvcGx1Z2lucy9qdmVjdG9ybWFwL2pxdWVyeS1qdmVjdG9ybWFwLTEuMi4yLm1pbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///52\n");

/***/ }),

/***/ 53:
/***/ (function(module, exports) {

eval("$.fn.vectorMap('addMap', 'world_mill_en', { \"insets\": [{ \"width\": 900.0, \"top\": 0, \"height\": 440.7063107441331, \"bbox\": [{ \"y\": -12671671.123330014, \"x\": -20004297.151525836 }, { \"y\": 6930392.02513512, \"x\": 20026572.394749384 }], \"left\": 0 }], \"paths\": { \"BD\": { \"path\": \"M652.71,228.85l-0.04,1.38l-0.46,-0.21l-0.42,0.3l0.05,0.65l-0.17,-1.37l-0.48,-1.26l-1.08,-1.6l-0.23,-0.13l-2.31,-0.11l-0.31,0.36l0.21,0.98l-0.6,1.11l-0.8,-0.4l-0.37,0.09l-0.23,0.3l-0.54,-0.21l-0.78,-0.19l-0.38,-2.04l-0.83,-1.89l0.4,-1.5l-0.16,-0.35l-1.24,-0.57l0.36,-0.62l1.5,-0.95l0.02,-0.49l-1.62,-1.26l0.64,-1.31l1.7,1.0l0.12,0.04l0.96,0.11l0.19,1.62l0.25,0.26l2.38,0.37l2.32,-0.04l1.06,0.33l-0.92,1.79l-0.97,0.13l-0.23,0.16l-0.77,1.51l0.05,0.35l1.37,1.37l0.5,-0.14l0.35,-1.46l0.24,-0.0l1.24,3.92Z\", \"name\": \"Bangladesh\" }, \"BE\": { \"path\": \"M429.28,143.95l1.76,0.25l0.13,-0.01l2.16,-0.64l1.46,1.34l1.26,0.71l-0.23,1.8l-0.44,0.08l-0.24,0.25l-0.2,1.36l-1.8,-1.22l-0.23,-0.05l-1.14,0.23l-1.62,-1.43l-1.15,-1.31l-0.21,-0.1l-0.95,-0.04l-0.21,-0.68l1.66,-0.54Z\", \"name\": \"Belgium\" }, \"BF\": { \"path\": \"M413.48,260.21l-1.22,-0.46l-0.13,-0.02l-1.17,0.1l-0.15,0.06l-0.73,0.53l-0.87,-0.41l-0.39,-0.75l-0.13,-0.13l-0.98,-0.48l-0.14,-1.2l0.63,-0.99l0.05,-0.18l-0.05,-0.73l1.9,-2.01l0.08,-0.14l0.35,-1.65l0.49,-0.44l1.05,0.3l0.21,-0.02l1.05,-0.52l0.13,-0.13l0.3,-0.58l1.87,-1.1l0.11,-0.1l0.43,-0.72l2.23,-1.01l1.21,-0.32l0.51,0.4l0.19,0.06l1.25,-0.01l-0.14,0.89l0.01,0.13l0.34,1.16l0.06,0.11l1.35,1.59l0.07,1.13l0.24,0.28l2.64,0.53l-0.05,1.39l-0.42,0.59l-1.11,0.21l-0.22,0.17l-0.46,0.99l-0.69,0.23l-2.12,-0.05l-1.14,-0.2l-0.19,0.03l-0.72,0.36l-1.07,-0.17l-4.35,0.12l-0.29,0.29l-0.06,1.44l0.25,1.45Z\", \"name\": \"Burkina Faso\" }, \"BG\": { \"path\": \"M477.63,166.84l0.51,0.9l0.33,0.14l0.9,-0.21l1.91,0.47l3.68,0.16l0.17,-0.05l1.2,-0.75l2.78,-0.67l1.72,1.05l1.02,0.24l-0.97,0.97l-0.91,2.17l0.0,0.24l0.56,1.19l-1.58,-0.3l-0.16,0.01l-2.55,0.95l-0.2,0.28l-0.02,1.23l-1.92,0.24l-1.68,-0.99l-0.27,-0.02l-1.94,0.8l-1.52,-0.07l-0.15,-1.72l-0.12,-0.21l-0.99,-0.76l0.18,-0.18l0.02,-0.39l-0.17,-0.22l0.33,-0.75l0.91,-0.91l0.01,-0.42l-1.16,-1.25l-0.18,-0.89l0.24,-0.27Z\", \"name\": \"Bulgaria\" }, \"BA\": { \"path\": \"M468.39,164.66l0.16,0.04l0.43,-0.0l-0.43,0.93l0.06,0.34l1.08,1.06l-0.28,1.09l-0.5,0.13l-0.47,0.28l-0.86,0.74l-0.1,0.16l-0.28,1.29l-1.81,-0.94l-0.9,-1.22l-1.0,-0.73l-1.1,-1.1l-0.55,-0.96l-1.11,-1.3l0.3,-0.75l0.59,0.46l0.42,-0.04l0.46,-0.54l1.0,-0.06l2.11,0.5l1.72,-0.03l1.06,0.64Z\", \"name\": \"Bosnia and Herzegovina\" }, \"BN\": { \"path\": \"M707.34,273.57l0.76,-0.72l1.59,-1.03l-0.18,1.93l-0.9,-0.06l-0.28,0.14l-0.31,0.51l-0.68,-0.78Z\", \"name\": \"Brunei\" }, \"BO\": { \"path\": \"M263.83,340.79l-0.23,-0.12l-2.86,-0.11l-0.28,0.17l-0.77,1.67l-1.17,-1.51l-0.18,-0.11l-3.28,-0.64l-0.28,0.1l-2.02,2.3l-1.43,0.29l-0.91,-3.35l-1.31,-2.88l0.75,-2.41l-0.09,-0.32l-1.23,-1.03l-0.31,-1.76l-0.05,-0.12l-1.12,-1.6l1.49,-2.62l0.01,-0.28l-1.0,-2.0l0.48,-0.72l0.02,-0.29l-0.37,-0.78l0.87,-1.13l0.06,-0.18l0.05,-2.17l0.12,-1.71l0.5,-0.8l0.01,-0.3l-1.9,-3.58l1.3,0.15l1.34,-0.05l0.23,-0.12l0.51,-0.7l2.12,-0.99l1.31,-0.93l2.81,-0.37l-0.21,1.51l0.01,0.13l0.29,0.91l-0.19,1.64l0.11,0.27l2.72,2.27l0.15,0.07l2.71,0.41l0.92,0.88l0.12,0.07l1.64,0.49l1.0,0.71l0.18,0.06l1.5,-0.02l1.24,0.64l0.1,1.31l0.05,0.14l0.44,0.68l0.02,0.73l-0.44,0.03l-0.27,0.39l0.96,2.99l0.28,0.21l4.43,0.1l-0.28,1.12l0.0,0.15l0.27,1.02l0.15,0.19l1.27,0.67l0.52,1.42l-0.42,1.91l-0.66,1.1l-0.04,0.2l0.21,1.3l-0.19,0.13l-0.01,-0.27l-0.15,-0.24l-2.33,-1.33l-0.14,-0.04l-2.38,-0.03l-4.36,0.76l-0.21,0.16l-1.2,2.29l-0.03,0.13l-0.06,1.37l-0.79,2.53l-0.05,-0.08Z\", \"name\": \"Bolivia\" }, \"JP\": { \"path\": \"M781.17,166.78l1.8,0.67l0.28,-0.04l1.38,-1.01l0.43,2.67l-3.44,0.77l-0.18,0.12l-2.04,2.79l-3.71,-1.94l-0.42,0.15l-1.29,3.11l-2.32,0.04l-0.3,-2.63l1.12,-2.1l2.51,-0.16l0.28,-0.25l0.73,-4.22l0.58,-1.9l2.59,2.84l2.0,1.1ZM773.66,187.36l-0.92,2.24l-0.01,0.2l0.4,1.3l-1.18,1.81l-3.06,1.28l-4.35,0.17l-0.19,0.08l-3.4,3.06l-1.36,-0.87l-0.1,-1.95l-0.34,-0.28l-4.35,0.62l-2.99,1.33l-2.87,0.05l-0.28,0.2l0.09,0.33l2.37,1.93l-1.57,4.44l-1.35,0.97l-0.9,-0.79l0.57,-2.32l-0.15,-0.34l-1.5,-0.77l-0.81,-1.53l2.04,-0.75l0.14,-0.1l1.28,-1.72l2.47,-1.43l1.84,-1.92l4.83,-0.82l2.62,0.57l0.33,-0.16l2.45,-4.77l1.38,1.14l0.38,0.0l5.1,-4.02l0.09,-0.11l1.57,-3.57l0.02,-0.16l-0.42,-3.22l0.94,-1.67l2.27,-0.47l1.26,3.82l-0.07,2.23l-2.26,2.86l-0.06,0.19l0.04,2.93ZM757.85,196.18l0.22,0.66l-1.11,1.33l-0.8,-0.7l-0.33,-0.04l-1.28,0.65l-0.14,0.15l-0.54,1.34l-1.17,-0.57l0.02,-1.03l1.2,-1.45l1.24,0.28l0.29,-0.1l0.9,-1.03l1.51,0.5Z\", \"name\": \"Japan\" }, \"BI\": { \"path\": \"M494.7,295.83l-0.14,-2.71l-0.04,-0.13l-0.34,-0.62l0.93,0.12l0.3,-0.16l0.67,-1.25l0.9,0.11l0.11,0.76l0.08,0.16l0.46,0.48l0.02,0.56l-0.55,0.48l-0.96,1.29l-0.82,0.82l-0.61,0.07Z\", \"name\": \"Burundi\" }, \"BJ\": { \"path\": \"M427.4,268.94l-1.58,0.22l-0.52,-1.45l0.11,-5.73l-0.08,-0.21l-0.43,-0.44l-0.09,-1.13l-0.09,-0.19l-1.52,-1.52l0.24,-1.01l0.7,-0.23l0.18,-0.16l0.45,-0.97l1.07,-0.21l0.19,-0.12l0.53,-0.73l0.73,-0.65l0.68,-0.0l1.69,1.3l-0.08,0.67l0.02,0.14l0.52,1.38l-0.44,0.9l-0.01,0.24l0.2,0.52l-1.1,1.42l-0.76,0.76l-0.08,0.13l-0.47,1.59l0.05,1.69l-0.13,3.79Z\", \"name\": \"Benin\" }, \"BT\": { \"path\": \"M650.38,213.78l0.88,0.75l-0.13,1.24l-1.77,0.07l-2.1,-0.18l-1.57,0.4l-2.02,-0.91l-0.02,-0.24l1.54,-1.87l1.18,-0.6l1.67,0.59l1.32,0.08l1.01,0.67Z\", \"name\": \"Bhutan\" }, \"JM\": { \"path\": \"M226.67,238.37l1.64,0.23l1.2,0.56l0.11,0.19l-1.25,0.03l-0.14,0.04l-0.65,0.37l-1.24,-0.37l-1.17,-0.77l0.11,-0.22l0.86,-0.15l0.52,0.08Z\", \"name\": \"Jamaica\" }, \"BW\": { \"path\": \"M484.91,331.96l0.53,0.52l0.82,1.53l2.83,2.86l0.14,0.08l0.85,0.22l0.03,0.81l0.74,1.66l0.21,0.17l1.87,0.39l1.17,0.87l-3.13,1.71l-2.3,2.01l-0.07,0.1l-0.82,1.74l-0.66,0.88l-1.24,0.19l-0.24,0.2l-0.65,1.98l-1.4,0.55l-1.9,-0.12l-1.2,-0.74l-1.06,-0.32l-0.22,0.02l-1.22,0.62l-0.14,0.14l-0.58,1.21l-1.16,0.79l-1.18,1.13l-1.5,0.23l-0.4,-0.68l0.22,-1.53l-0.04,-0.19l-1.48,-2.54l-0.11,-0.11l-0.53,-0.31l-0.0,-7.25l2.18,-0.08l0.29,-0.3l0.07,-9.0l1.63,-0.08l3.69,-0.86l0.84,0.93l0.38,0.05l1.53,-0.97l0.79,-0.03l1.3,-0.53l0.23,0.1l0.92,1.96Z\", \"name\": \"Botswana\" }, \"BR\": { \"path\": \"M259.49,274.87l1.42,0.25l1.97,0.62l0.28,-0.05l0.67,-0.55l1.76,-0.38l2.8,-0.94l0.12,-0.08l0.92,-0.96l0.05,-0.33l-0.15,-0.32l0.73,-0.06l0.36,0.35l-0.27,0.93l0.17,0.36l0.76,0.34l0.44,0.9l-0.58,0.73l-0.06,0.13l-0.4,2.13l0.03,0.19l0.62,1.22l0.17,1.11l0.11,0.19l1.54,1.18l0.15,0.06l1.23,0.12l0.29,-0.15l0.2,-0.36l0.71,-0.11l1.13,-0.44l0.79,-0.63l1.25,0.19l0.65,-0.08l1.32,0.2l0.32,-0.18l0.23,-0.51l-0.05,-0.31l-0.31,-0.37l0.11,-0.31l0.75,0.17l0.13,0.0l1.1,-0.24l1.34,0.5l1.08,0.51l0.33,-0.05l0.67,-0.58l0.27,0.05l0.28,0.57l0.31,0.17l1.2,-0.18l0.17,-0.08l1.03,-1.05l0.76,-1.82l1.39,-2.16l0.49,-0.07l0.52,1.17l1.4,4.37l0.2,0.2l1.14,0.35l0.05,1.39l-1.8,1.97l0.01,0.42l0.78,0.75l0.18,0.08l4.16,0.37l0.08,2.25l0.5,0.22l1.78,-1.54l2.98,0.85l4.07,1.5l1.07,1.28l-0.37,1.23l0.36,0.38l2.83,-0.75l4.8,1.3l3.75,-0.09l3.6,2.02l3.27,2.84l1.93,0.72l2.13,0.11l0.76,0.66l1.22,4.56l-0.96,4.03l-1.22,1.58l-3.52,3.51l-1.63,2.91l-1.75,2.09l-0.5,0.04l-0.26,0.19l-0.72,1.99l0.18,4.76l-0.95,5.56l-0.74,0.96l-0.06,0.15l-0.43,3.39l-2.49,3.34l-0.06,0.13l-0.4,2.56l-1.9,1.07l-0.13,0.16l-0.51,1.38l-2.59,0.0l-3.94,1.01l-1.82,1.19l-2.85,0.81l-3.01,2.17l-2.12,2.65l-0.06,0.13l-0.36,2.0l0.01,0.13l0.4,1.42l-0.45,2.63l-0.53,1.23l-1.76,1.53l-2.76,4.79l-2.16,2.15l-1.69,1.29l-0.09,0.12l-1.12,2.6l-1.3,1.26l-0.45,-1.02l0.99,-1.18l0.01,-0.37l-1.5,-1.95l-1.98,-1.54l-2.58,-1.77l-0.2,-0.05l-0.81,0.07l-2.42,-2.05l-0.25,-0.07l-0.77,0.14l2.75,-3.07l2.8,-2.61l1.67,-1.09l2.11,-1.49l0.13,-0.24l0.05,-2.15l-0.07,-0.2l-1.26,-1.54l-0.35,-0.09l-0.64,0.27l0.3,-0.95l0.34,-1.57l0.01,-1.52l-0.16,-0.26l-0.9,-0.48l-0.27,-0.01l-0.86,0.39l-0.65,-0.08l-0.23,-0.8l-0.23,-2.39l-0.04,-0.12l-0.47,-0.79l-0.14,-0.12l-1.69,-0.71l-0.25,0.01l-0.93,0.47l-2.29,-0.44l0.15,-3.3l-0.03,-0.15l-0.62,-1.22l0.57,-0.39l0.13,-0.3l-0.22,-1.37l0.67,-1.13l0.44,-2.04l-0.01,-0.17l-0.59,-1.61l-0.14,-0.16l-1.25,-0.66l-0.22,-0.82l0.35,-1.41l-0.28,-0.37l-4.59,-0.1l-0.78,-2.41l0.34,-0.02l0.28,-0.31l-0.03,-1.1l-0.05,-0.16l-0.45,-0.68l-0.1,-1.4l-0.16,-0.24l-1.45,-0.76l-0.14,-0.03l-1.48,0.02l-1.04,-0.73l-1.62,-0.48l-0.93,-0.9l-0.16,-0.08l-2.72,-0.41l-2.53,-2.12l0.18,-1.54l-0.01,-0.13l-0.29,-0.91l0.26,-1.83l-0.34,-0.34l-3.28,0.43l-0.14,0.05l-1.3,0.93l-2.16,1.01l-0.12,0.09l-0.47,0.65l-1.12,0.05l-1.84,-0.21l-0.12,0.01l-1.33,0.41l-0.82,-0.21l0.16,-3.6l-0.48,-0.26l-1.97,1.43l-1.96,-0.06l-0.86,-1.23l-0.22,-0.13l-1.23,-0.11l0.34,-0.69l-0.05,-0.33l-1.36,-1.5l-0.92,-2.0l0.45,-0.32l0.13,-0.25l-0.0,-0.87l1.34,-0.64l0.17,-0.32l-0.23,-1.23l0.56,-0.77l0.05,-0.13l0.16,-1.03l2.7,-1.61l2.01,-0.47l0.16,-0.09l0.24,-0.27l2.11,0.11l0.31,-0.25l1.13,-6.87l0.06,-1.12l-0.4,-1.53l-0.1,-0.15l-1.0,-0.82l0.01,-1.45l1.08,-0.32l0.39,0.2l0.44,-0.24l0.08,-0.96l-0.25,-0.32l-1.22,-0.22l-0.02,-1.01l4.57,0.05l0.22,-0.09l0.6,-0.63l0.44,0.5l0.47,1.42l0.45,0.16l0.27,-0.18l1.21,1.16l0.23,0.08l1.95,-0.16l0.23,-0.14l0.43,-0.67l1.76,-0.55l1.05,-0.42l0.18,-0.2l0.25,-0.92l1.65,-0.66l0.18,-0.35l-0.14,-0.53l-0.26,-0.22l-1.91,-0.19l-0.29,-1.33l0.1,-1.64l-0.15,-0.28l-0.44,-0.25Z\", \"name\": \"Brazil\" }, \"BS\": { \"path\": \"M227.51,216.69l0.3,0.18l-0.24,1.07l0.03,-1.04l-0.09,-0.21ZM226.5,224.03l-0.13,0.03l-0.54,-1.3l-0.09,-0.12l-0.78,-0.64l0.4,-1.26l0.33,0.05l0.79,2.0l0.01,1.24ZM225.76,216.5l-2.16,0.34l-0.07,-0.41l0.85,-0.16l1.36,0.07l0.02,0.16Z\", \"name\": \"The Bahamas\" }, \"BY\": { \"path\": \"M480.08,135.28l2.09,0.02l0.13,-0.03l2.72,-1.3l0.16,-0.19l0.55,-1.83l1.94,-1.06l0.15,-0.31l-0.2,-1.33l1.33,-0.52l2.58,-1.3l2.39,0.8l0.3,0.75l0.37,0.17l1.22,-0.39l2.18,0.75l0.2,1.36l-0.48,0.85l0.01,0.32l1.57,2.26l0.92,0.6l-0.1,0.41l0.19,0.35l1.61,0.57l0.48,0.6l-0.64,0.49l-1.91,-0.11l-0.18,0.05l-0.48,0.32l-0.1,0.39l0.57,1.1l0.51,1.78l-1.79,0.17l-0.18,0.08l-0.77,0.73l-0.09,0.19l-0.13,1.31l-0.75,-0.22l-2.11,0.15l-0.56,-0.66l-0.39,-0.06l-0.8,0.49l-0.79,-0.4l-0.13,-0.03l-1.94,-0.07l-2.76,-0.79l-2.58,-0.27l-1.98,0.07l-0.15,0.05l-1.31,0.86l-0.8,0.09l-0.04,-1.16l-0.03,-0.12l-0.63,-1.28l1.22,-0.56l0.17,-0.27l0.01,-1.35l-0.04,-0.15l-0.66,-1.24l-0.08,-1.12Z\", \"name\": \"Belarus\" }, \"BZ\": { \"path\": \"M198.03,239.7l0.28,0.19l0.43,-0.1l0.82,-1.42l0.0,0.07l0.29,0.29l0.16,0.0l-0.02,0.35l-0.39,1.08l0.02,0.25l0.16,0.29l-0.23,0.8l0.04,0.24l0.09,0.14l-0.25,1.12l-0.38,0.53l-0.33,0.06l-0.21,0.15l-0.41,0.74l-0.25,0.0l0.17,-2.58l0.01,-2.2Z\", \"name\": \"Belize\" }, \"RU\": { \"path\": \"M688.57,38.85l0.63,2.39l0.44,0.19l2.22,-1.23l7.18,0.07l5.54,2.49l1.85,1.77l-0.55,2.34l-2.64,1.42l-6.57,2.76l-1.95,1.5l0.12,0.53l3.09,0.68l3.69,1.23l0.21,-0.01l1.98,-0.81l1.16,2.84l0.5,0.08l1.03,-1.18l3.86,-0.74l7.79,0.78l0.56,2.05l0.27,0.22l10.47,0.71l0.32,-0.29l0.13,-3.34l4.98,0.8l3.96,-0.02l3.88,2.43l1.06,2.79l-1.38,1.83l0.01,0.38l3.15,3.64l0.1,0.08l3.94,1.86l0.4,-0.14l2.28,-4.56l3.75,1.94l0.22,0.02l4.18,-1.22l4.76,1.4l0.26,-0.04l1.74,-1.23l3.98,0.63l0.32,-0.41l-1.71,-4.1l3.0,-1.86l22.39,3.04l2.06,2.67l0.1,0.08l6.55,3.51l0.17,0.03l10.08,-0.86l4.86,0.73l1.91,1.72l-0.29,3.13l0.18,0.31l3.08,1.26l0.19,0.01l3.32,-0.9l4.37,-0.11l4.78,0.87l4.61,-0.48l4.26,3.82l0.32,0.05l3.1,-1.4l0.12,-0.45l-1.91,-2.67l0.92,-1.64l7.78,1.22l5.22,-0.26l7.12,2.1l9.6,5.22l6.4,4.15l-0.2,2.44l0.14,0.28l1.69,1.04l0.45,-0.31l-0.51,-2.66l6.31,0.58l4.52,3.61l-2.1,1.52l-4.02,0.42l-0.27,0.29l-0.06,3.83l-0.81,0.67l-2.14,-0.11l-1.91,-1.39l-3.19,-1.13l-0.51,-1.63l-0.21,-0.2l-2.54,-0.67l-0.13,-0.0l-2.69,0.5l-1.12,-1.19l0.48,-1.36l-0.38,-0.39l-3.0,0.98l-0.17,0.44l1.02,1.76l-1.27,1.55l-3.09,1.71l-3.15,-0.29l-0.3,0.18l0.07,0.34l2.22,2.1l1.47,3.22l1.15,1.09l0.25,1.41l-0.48,0.76l-4.47,-0.81l-0.17,0.02l-6.97,2.9l-2.2,0.44l-0.11,0.05l-3.83,2.68l-3.63,2.32l-0.1,0.11l-0.76,1.4l-3.3,-2.4l-0.3,-0.03l-6.31,2.85l-0.99,-1.21l-0.4,-0.06l-2.32,1.54l-3.23,-0.49l-0.33,0.2l-0.79,2.39l-2.97,3.51l-0.07,0.21l0.09,1.47l0.22,0.27l2.62,0.74l-0.3,4.7l-2.06,0.12l-0.26,0.2l-1.07,2.94l0.04,0.27l0.83,1.19l-4.03,1.63l-0.18,0.21l-0.83,3.72l-3.55,0.79l-0.23,0.23l-0.73,3.32l-3.22,2.76l-0.76,-1.88l-1.07,-4.88l-1.39,-7.59l1.17,-4.76l2.05,-2.08l0.09,-0.19l0.11,-1.46l3.67,-0.77l0.15,-0.08l4.47,-4.61l4.29,-3.82l4.48,-3.01l0.11,-0.14l2.01,-5.43l-0.31,-0.4l-3.04,0.33l-0.24,0.17l-1.47,3.11l-5.98,3.94l-1.91,-4.36l-0.33,-0.17l-6.46,1.3l-0.15,0.08l-6.27,6.33l-0.01,0.41l1.7,1.87l-5.04,0.87l-3.51,0.34l0.16,-2.32l-0.26,-0.32l-3.89,-0.56l-0.19,0.04l-3.02,1.77l-7.63,-0.63l-8.24,1.1l-0.16,0.07l-8.11,7.09l-9.6,8.31l0.16,0.52l3.79,0.42l1.16,2.03l0.17,0.14l2.43,0.76l0.31,-0.08l1.5,-1.61l2.49,0.2l3.46,3.6l0.08,2.67l-1.91,3.26l-0.04,0.14l-0.21,3.91l-1.11,5.09l-3.73,4.55l-0.87,2.21l-6.73,7.14l-1.59,1.77l-3.23,1.72l-1.38,0.03l-1.48,-1.39l-0.37,-0.03l-3.36,2.22l-0.11,0.14l-0.16,0.42l-0.01,-1.09l1.0,-0.06l0.28,-0.27l0.36,-3.6l-0.61,-2.51l1.85,-0.94l2.94,0.53l0.32,-0.15l1.71,-3.1l0.84,-3.38l0.97,-1.18l1.32,-2.88l-0.34,-0.42l-4.14,0.95l-2.18,1.25l-3.51,-0.0l-0.95,-2.81l-0.1,-0.14l-2.97,-2.3l-0.11,-0.05l-4.19,-1.0l-0.89,-3.08l-0.87,-2.03l-0.95,-1.46l-1.54,-3.37l-0.12,-0.14l-2.27,-1.28l-3.83,-1.02l-3.37,0.1l-3.11,0.61l-0.13,0.06l-2.07,1.69l0.04,0.49l1.23,0.72l0.03,1.53l-1.34,1.05l-2.26,3.51l-0.05,0.17l0.02,1.27l-3.25,1.9l-2.87,-1.17l-0.14,-0.02l-2.86,0.26l-1.22,-1.02l-0.12,-0.06l-1.5,-0.35l-0.23,0.04l-3.62,2.27l-3.24,0.53l-2.28,0.79l-3.08,-0.51l-2.24,0.03l-1.49,-1.61l-2.45,-1.57l-0.11,-0.04l-2.6,-0.43l-3.17,0.43l-2.31,0.59l-3.31,-1.28l-0.45,-2.31l-0.21,-0.23l-2.94,-0.85l-2.26,-0.39l-2.77,-1.36l-0.37,0.09l-2.59,3.45l-0.03,0.32l0.91,1.74l-2.15,2.01l-3.47,-0.79l-2.44,-0.12l-1.59,-1.46l-0.2,-0.08l-2.55,-0.05l-2.12,-0.98l-0.24,-0.01l-3.85,1.57l-4.74,2.79l-2.59,0.55l-0.79,0.21l-1.21,-1.81l-0.29,-0.13l-3.05,0.41l-0.96,-1.25l-0.14,-0.1l-1.65,-0.6l-1.15,-1.82l-0.13,-0.12l-1.38,-0.6l-0.19,-0.02l-3.49,0.82l-3.35,-1.85l-0.38,0.08l-1.08,1.4l-5.36,-8.17l-3.02,-2.52l0.72,-0.85l0.01,-0.38l-0.37,-0.08l-6.22,3.21l-1.98,0.16l0.17,-1.51l-0.2,-0.31l-3.22,-1.17l-0.19,-0.0l-2.3,0.74l-0.72,-3.27l-0.24,-0.23l-4.5,-0.75l-0.21,0.04l-2.2,1.42l-6.21,1.27l-0.11,0.05l-1.16,0.81l-9.3,1.19l-0.18,0.09l-1.15,1.17l-0.02,0.39l1.56,2.01l-2.02,0.74l-0.16,0.42l0.35,0.68l-2.18,1.49l0.02,0.51l3.83,2.16l-0.45,1.13l-3.31,-0.13l-0.25,0.12l-0.57,0.77l-2.97,-1.59l-0.15,-0.04l-3.97,0.07l-0.13,0.03l-2.53,1.32l-2.84,-1.28l-5.52,-2.3l-0.12,-0.02l-3.91,0.09l-0.16,0.05l-5.17,3.6l-0.13,0.21l-0.25,1.89l-2.17,-1.6l-0.44,0.1l-2.0,3.59l0.06,0.37l0.55,0.5l-1.32,2.23l0.04,0.36l2.13,2.17l0.23,0.09l1.7,-0.08l1.42,1.89l-0.23,1.5l0.19,0.32l0.94,0.38l-0.89,1.44l-2.3,0.49l-0.17,0.11l-2.49,3.2l0.0,0.37l2.2,2.81l-0.23,1.93l0.06,0.22l2.56,3.32l-1.27,1.02l-0.4,0.66l-0.8,-0.15l-1.65,-1.75l-0.18,-0.09l-0.66,-0.09l-1.45,-0.64l-0.72,-1.16l-0.18,-0.13l-2.34,-0.63l-0.17,0.0l-1.32,0.41l-0.31,-0.4l-0.12,-0.09l-3.49,-1.48l-3.67,-0.49l-2.1,-0.52l-0.3,0.1l-0.12,0.14l-2.96,-2.4l-2.89,-1.19l-1.69,-1.42l1.27,-0.35l0.16,-0.1l2.08,-2.61l-0.04,-0.41l-1.02,-0.9l3.21,-1.12l0.2,-0.31l-0.07,-0.69l-0.37,-0.26l-1.86,0.42l0.05,-0.86l1.11,-0.76l2.35,-0.23l0.25,-0.19l0.39,-1.07l0.0,-0.19l-0.51,-1.64l0.95,-1.58l0.04,-0.16l-0.03,-0.95l-0.22,-0.28l-3.69,-1.06l-1.43,0.02l-1.45,-1.44l-0.29,-0.08l-1.83,0.49l-2.88,-1.04l0.04,-0.42l-0.04,-0.18l-0.89,-1.43l-0.23,-0.14l-1.77,-0.14l-0.13,-0.66l0.52,-0.56l0.01,-0.4l-1.6,-1.9l-0.27,-0.1l-2.55,0.32l-0.71,-0.16l-0.3,0.1l-0.53,0.63l-0.58,-0.08l-0.56,-1.97l-0.48,-0.94l0.17,-0.11l1.92,0.11l0.2,-0.06l0.97,-0.74l0.05,-0.42l-0.72,-0.91l-0.13,-0.1l-1.43,-0.51l0.09,-0.36l-0.13,-0.33l-0.97,-0.59l-1.43,-2.06l0.44,-0.77l0.04,-0.19l-0.25,-1.64l-0.2,-0.24l-2.45,-0.84l-0.19,-0.0l-1.05,0.34l-0.25,-0.62l-0.18,-0.17l-2.5,-0.84l-0.74,-1.93l-0.21,-1.7l-0.13,-0.21l-0.92,-0.63l0.83,-0.89l0.07,-0.27l-0.71,-3.26l1.69,-2.01l0.03,-0.34l-0.24,-0.41l2.63,-1.9l-0.01,-0.49l-2.31,-1.57l5.08,-4.61l2.33,-2.24l1.01,-2.08l-0.09,-0.37l-3.52,-2.56l0.94,-2.38l-0.04,-0.29l-2.14,-2.86l1.61,-3.35l-0.01,-0.29l-2.81,-4.58l2.19,-3.04l-0.06,-0.42l-3.7,-2.76l0.32,-2.67l1.87,-0.38l4.26,-1.77l2.46,-1.47l3.96,2.58l0.12,0.05l6.81,1.04l9.37,4.87l1.81,1.92l0.15,2.55l-2.61,2.06l-3.95,1.07l-11.1,-3.15l-0.17,0.0l-1.84,0.53l-0.1,0.53l3.97,2.97l0.15,1.77l0.16,4.14l0.19,0.27l3.21,1.22l1.94,1.03l0.44,-0.22l0.32,-1.94l-0.07,-0.25l-1.32,-1.52l1.25,-1.2l5.87,2.45l0.24,-0.01l2.11,-0.98l0.13,-0.42l-1.55,-2.75l5.52,-3.84l2.13,0.22l2.28,1.42l0.43,-0.12l1.46,-2.87l-0.04,-0.33l-1.97,-2.37l1.14,-2.38l-0.02,-0.3l-1.42,-2.07l6.15,1.22l1.14,1.92l-2.74,0.46l-0.25,0.3l0.02,2.36l0.12,0.24l1.97,1.44l0.25,0.05l3.87,-0.91l0.22,-0.23l0.58,-2.55l5.09,-1.98l8.67,-3.69l1.22,0.14l-2.06,2.2l0.18,0.5l3.11,0.45l0.23,-0.07l1.71,-1.41l4.59,-0.12l0.12,-0.03l3.53,-1.72l2.7,2.48l0.42,-0.01l2.85,-2.88l-0.0,-0.43l-2.42,-2.35l1.0,-1.13l7.2,1.31l3.42,1.36l9.06,4.97l0.39,-0.08l1.67,-2.27l-0.04,-0.4l-2.46,-2.23l-0.06,-0.82l-0.26,-0.27l-2.64,-0.38l0.69,-1.76l0.0,-0.22l-1.32,-3.47l-0.07,-1.27l4.52,-4.09l0.08,-0.11l1.6,-4.18l1.67,-0.84l6.33,1.2l0.46,2.31l-2.31,3.67l0.05,0.38l1.49,1.41l0.77,3.04l-0.56,6.05l0.09,0.24l2.62,2.54l-0.99,2.65l-4.87,5.96l0.17,0.48l2.86,0.61l0.31,-0.13l0.94,-1.42l2.67,-1.04l0.18,-0.19l0.64,-2.01l2.11,-1.98l0.05,-0.37l-1.38,-2.32l1.11,-2.74l-0.24,-0.41l-2.53,-0.33l-0.53,-2.16l1.96,-4.42l-0.05,-0.32l-3.03,-3.48l4.21,-2.94l0.12,-0.3l-0.52,-3.04l0.72,-0.06l1.18,2.35l-0.97,4.39l0.2,0.35l2.68,0.84l0.37,-0.38l-1.05,-3.07l3.89,-1.71l5.05,-0.24l4.55,2.62l0.36,-0.05l0.05,-0.36l-2.19,-3.84l-0.23,-4.78l4.07,-0.92l5.98,0.21l5.47,-0.64l0.2,-0.48l-1.88,-2.37l2.65,-2.99l2.75,-0.13l0.12,-0.03l4.82,-2.48l6.56,-0.67l0.23,-0.14l0.76,-1.27l6.33,-0.46l1.97,1.11l0.28,0.01l5.55,-2.71l4.53,0.08l0.29,-0.21l0.67,-2.18l2.29,-2.15l5.75,-2.13l3.48,1.4l-2.7,1.03l-0.19,0.31l0.26,0.26l5.47,0.78ZM871.83,65.73l0.25,-0.15l1.99,0.01l3.3,1.2l-0.08,0.22l-2.41,1.03l-5.73,0.49l-0.31,-1.0l2.99,-1.8ZM797.64,48.44l-2.22,1.51l-3.85,-0.43l-4.35,-1.85l0.42,-1.13l4.42,0.72l5.59,1.17ZM783.82,46.06l-1.71,3.25l-9.05,-0.14l-4.11,1.15l-4.64,-3.04l1.21,-3.13l3.11,-0.91l6.53,0.22l8.66,2.59ZM780.37,145.71l2.28,5.23l-3.09,-0.89l-0.37,0.19l-1.54,4.65l0.04,0.27l2.38,3.17l-0.05,1.4l-1.41,-1.41l-0.46,0.04l-1.23,1.81l-0.33,-1.86l0.28,-3.1l-0.28,-3.41l0.58,-2.46l0.11,-4.39l-0.03,-0.13l-1.44,-3.2l0.21,-4.39l2.19,-1.49l0.09,-0.41l-0.81,-1.3l0.48,-0.21l0.56,1.94l0.86,3.23l-0.05,3.36l1.03,3.35ZM780.16,57.18l-3.4,0.03l-5.06,-0.53l1.97,-1.59l2.95,-0.42l3.35,1.75l0.18,0.77ZM683.84,31.18l-13.29,1.97l4.16,-6.56l1.88,-0.58l1.77,0.34l6.08,3.02l-0.6,1.8ZM670.94,28.02l-5.18,0.65l-6.89,-1.58l-4.03,-2.07l-1.88,-3.98l-0.18,-0.16l-2.8,-0.93l5.91,-3.62l5.25,-1.29l4.73,2.88l5.63,5.44l-0.57,4.66ZM564.37,68.98l-0.85,0.23l-7.93,-0.57l-0.6,-1.84l-0.21,-0.2l-4.34,-1.18l-0.3,-2.08l2.34,-0.92l0.19,-0.29l-0.08,-2.43l4.85,-4.0l-0.12,-0.52l-1.68,-0.43l5.47,-3.94l0.11,-0.33l-0.6,-2.02l5.36,-2.55l8.22,-3.27l8.29,-0.96l4.34,-1.94l4.67,-0.65l1.45,1.72l-1.43,1.37l-8.8,2.52l-7.65,2.42l-7.92,4.84l-3.73,4.75l-3.92,4.58l-0.07,0.23l0.51,3.88l0.11,0.2l4.32,3.39ZM548.86,18.57l-3.28,0.75l-2.25,0.44l-0.22,0.19l-0.3,0.81l-2.67,0.86l-2.27,-1.14l1.2,-1.51l-0.23,-0.49l-3.14,-0.1l2.48,-0.54l3.55,-0.07l0.44,1.36l0.49,0.12l1.4,-1.35l2.2,-0.9l3.13,1.08l-0.54,0.49ZM477.5,133.25l-4.21,0.05l-2.69,-0.34l0.39,-1.03l3.24,-1.06l2.51,0.58l0.85,0.43l-0.2,0.71l-0.0,0.15l0.12,0.52Z\", \"name\": \"Russia\" }, \"RW\": { \"path\": \"M497.03,288.12l0.78,1.11l-0.12,1.19l-0.49,0.21l-1.25,-0.15l-0.3,0.16l-0.67,1.24l-1.01,-0.13l0.16,-0.92l0.22,-0.12l0.15,-0.24l0.09,-1.37l0.49,-0.48l0.42,0.18l0.25,-0.01l1.26,-0.65Z\", \"name\": \"Rwanda\" }, \"RS\": { \"path\": \"M469.75,168.65l0.21,-0.21l0.36,-1.44l-0.08,-0.29l-1.06,-1.03l0.54,-1.16l-0.28,-0.43l-0.26,0.0l0.55,-0.67l-0.01,-0.39l-0.77,-0.86l-0.45,-0.89l1.56,-0.67l1.39,0.12l1.22,1.1l0.26,0.91l0.16,0.19l1.38,0.66l0.17,1.12l0.14,0.21l1.46,0.9l0.35,-0.03l0.62,-0.54l0.09,0.06l-0.28,0.25l-0.03,0.42l0.29,0.34l-0.44,0.5l-0.07,0.26l0.22,1.12l0.07,0.14l1.02,1.1l-0.81,0.84l-0.42,0.96l0.04,0.3l0.12,0.15l-0.15,0.16l-1.04,0.04l-0.39,0.08l0.33,-0.81l-0.29,-0.41l-0.21,0.01l-0.39,-0.45l-0.13,-0.09l-0.32,-0.11l-0.27,-0.4l-0.14,-0.11l-0.4,-0.16l-0.31,-0.37l-0.34,-0.09l-0.45,0.17l-0.18,0.18l-0.29,0.84l-0.96,-0.65l-0.81,-0.33l-0.32,-0.37l-0.22,-0.18Z\", \"name\": \"Republic of Serbia\" }, \"LT\": { \"path\": \"M478.13,133.31l-0.14,-0.63l0.25,-0.88l-0.15,-0.35l-1.17,-0.58l-2.43,-0.57l-0.45,-2.51l2.58,-0.97l4.14,0.22l2.3,-0.32l0.26,0.54l0.22,0.17l1.26,0.22l2.25,1.6l0.19,1.23l-1.87,1.01l-0.14,0.18l-0.54,1.83l-2.54,1.21l-2.18,-0.02l-0.52,-0.91l-0.18,-0.14l-1.11,-0.32Z\", \"name\": \"Lithuania\" }, \"LU\": { \"path\": \"M435.95,147.99l0.33,0.49l-0.11,1.07l-0.39,0.04l-0.29,-0.15l0.21,-1.4l0.25,-0.05Z\", \"name\": \"Luxembourg\" }, \"LR\": { \"path\": \"M401.37,273.67l-0.32,0.01l-2.48,-1.15l-2.24,-1.89l-2.14,-1.38l-1.47,-1.42l0.44,-0.59l0.05,-0.13l0.12,-0.65l1.07,-1.3l1.08,-1.09l0.52,-0.07l0.43,-0.18l0.84,1.24l-0.15,0.89l0.07,0.25l0.49,0.54l0.22,0.1l0.71,0.01l0.27,-0.16l0.42,-0.83l0.19,0.02l-0.06,0.52l0.23,1.12l-0.5,1.03l0.06,0.35l0.73,0.69l0.14,0.08l0.71,0.15l0.92,0.91l0.06,0.76l-0.17,0.22l-0.06,0.15l-0.17,1.8Z\", \"name\": \"Liberia\" }, \"RO\": { \"path\": \"M477.94,155.19l1.02,-0.64l1.49,0.33l1.52,0.01l1.09,0.73l0.32,0.01l0.81,-0.46l1.8,-0.3l0.18,-0.1l0.54,-0.64l0.86,0.0l0.64,0.26l0.71,0.87l0.8,1.35l1.39,1.81l0.07,1.25l-0.26,1.3l0.01,0.15l0.45,1.42l0.15,0.18l1.12,0.57l0.25,0.01l1.05,-0.45l0.86,0.4l0.03,0.43l-0.92,0.51l-0.63,-0.24l-0.4,0.22l-0.64,3.41l-1.12,-0.24l-1.78,-1.09l-0.23,-0.04l-2.95,0.71l-1.25,0.77l-3.55,-0.16l-1.89,-0.47l-0.14,-0.0l-0.75,0.17l-0.61,-1.07l-0.3,-0.36l0.36,-0.32l-0.04,-0.48l-0.62,-0.38l-0.36,0.03l-0.62,0.54l-1.15,-0.71l-0.18,-1.14l-0.17,-0.22l-1.4,-0.67l-0.24,-0.86l-0.09,-0.14l-0.96,-0.87l1.49,-0.44l0.16,-0.11l1.51,-2.14l1.15,-2.09l1.44,-0.63Z\", \"name\": \"Romania\" }, \"GW\": { \"path\": \"M383.03,256.73l-1.12,-0.88l-0.14,-0.06l-0.94,-0.15l-0.43,-0.54l0.01,-0.27l-0.13,-0.26l-0.68,-0.48l-0.05,-0.16l0.99,-0.31l0.77,0.08l0.15,-0.02l0.61,-0.26l4.25,0.1l-0.02,0.44l-0.19,0.18l-0.08,0.29l0.17,0.66l-0.17,0.14l-0.44,0.0l-0.16,0.05l-0.57,0.37l-0.66,-0.04l-0.24,0.1l-0.92,1.03Z\", \"name\": \"Guinea Bissau\" }, \"GT\": { \"path\": \"M195.13,249.89l-1.05,-0.35l-1.5,-0.04l-1.06,-0.47l-1.19,-0.93l0.04,-0.53l0.27,-0.55l-0.03,-0.31l-0.24,-0.32l1.02,-1.77l3.04,-0.01l0.3,-0.28l0.06,-0.88l-0.19,-0.3l-0.3,-0.11l-0.23,-0.45l-0.11,-0.12l-0.9,-0.58l-0.35,-0.33l0.37,-0.0l0.3,-0.3l0.0,-1.15l4.05,0.02l-0.02,1.74l-0.2,2.89l0.3,0.32l0.67,-0.0l0.75,0.42l0.4,-0.11l-0.62,0.53l-1.17,0.7l-0.13,0.16l-0.18,0.49l0.0,0.21l0.14,0.34l-0.35,0.44l-0.49,0.13l-0.2,0.41l0.03,0.06l-0.27,0.16l-0.86,0.64l-0.12,0.22ZM199.35,245.38l0.07,-0.13l0.05,0.02l-0.13,0.11Z\", \"name\": \"Guatemala\" }, \"GR\": { \"path\": \"M487.2,174.55l-0.64,1.54l-0.43,0.24l-1.41,-0.08l-1.28,-0.28l-0.14,0.0l-3.03,0.77l-0.13,0.51l1.39,1.34l-0.78,0.29l-1.2,0.0l-1.23,-1.42l-0.47,0.02l-0.47,0.65l-0.04,0.27l0.56,1.76l0.06,0.11l1.02,1.12l-0.66,0.45l-0.04,0.46l1.39,1.35l1.15,0.79l0.02,1.06l-1.91,-0.63l-0.36,0.42l0.56,1.12l-1.2,0.23l-0.22,0.4l0.8,2.14l-1.15,0.02l-1.89,-1.15l-0.89,-2.19l-0.43,-1.91l-0.05,-0.11l-0.98,-1.35l-1.24,-1.62l-0.13,-0.63l1.07,-1.32l0.06,-0.14l0.13,-0.81l0.68,-0.36l0.16,-0.25l0.03,-0.54l1.4,-0.23l0.12,-0.05l0.87,-0.6l1.26,0.05l0.25,-0.11l0.34,-0.43l0.33,-0.07l1.81,0.08l0.13,-0.02l1.87,-0.77l1.64,0.97l0.19,0.04l2.28,-0.28l0.26,-0.29l0.02,-0.95l0.56,0.36ZM480.44,192.0l1.05,0.74l0.01,0.0l-1.26,-0.23l0.2,-0.51ZM481.76,192.79l1.86,-0.15l1.53,0.17l-0.02,0.19l0.34,0.3l-2.28,0.15l0.01,-0.13l-0.25,-0.31l-1.19,-0.22ZM485.65,193.28l0.65,-0.16l-0.05,0.12l-0.6,0.04Z\", \"name\": \"Greece\" }, \"GQ\": { \"path\": \"M444.81,282.04l-0.21,-0.17l0.74,-2.4l3.56,0.05l0.02,2.42l-3.34,-0.02l-0.76,0.13Z\", \"name\": \"Equatorial Guinea\" }, \"GY\": { \"path\": \"M271.34,264.25l1.43,0.81l1.44,1.53l0.06,1.19l0.28,0.28l0.84,0.05l2.13,1.92l-0.34,1.93l-1.37,0.59l-0.17,0.34l0.12,0.51l-0.43,1.21l0.03,0.26l1.11,1.82l0.26,0.14l0.56,0.0l0.32,1.29l1.25,1.78l-0.08,0.01l-1.34,-0.21l-0.24,0.06l-0.78,0.64l-1.06,0.41l-0.76,0.1l-0.22,0.15l-0.18,0.32l-0.95,-0.1l-1.38,-1.05l-0.19,-1.13l-0.6,-1.18l0.37,-1.96l0.65,-0.83l0.03,-0.32l-0.57,-1.17l-0.15,-0.14l-0.62,-0.27l0.25,-0.85l-0.08,-0.3l-0.58,-0.58l-0.24,-0.09l-1.15,0.1l-1.41,-1.58l0.48,-0.49l0.09,-0.22l-0.04,-0.92l1.31,-0.34l0.73,-0.52l0.04,-0.44l-0.75,-0.82l0.16,-0.66l1.74,-1.3Z\", \"name\": \"Guyana\" }, \"GE\": { \"path\": \"M525.41,174.19l0.26,-0.88l-0.0,-0.17l-0.63,-2.06l-0.1,-0.15l-1.45,-1.12l-0.11,-0.05l-1.31,-0.33l-0.66,-0.69l1.97,0.48l3.65,0.49l3.3,1.41l0.39,0.5l0.33,0.1l1.43,-0.45l2.14,0.58l0.7,1.14l0.13,0.12l1.06,0.47l-0.18,0.11l-0.08,0.43l1.08,1.41l-0.06,0.06l-1.16,-0.15l-1.82,-0.84l-0.31,0.04l-0.55,0.44l-3.29,0.44l-2.32,-1.41l-0.17,-0.04l-2.25,0.12Z\", \"name\": \"Georgia\" }, \"GB\": { \"path\": \"M412.82,118.6l-2.31,3.4l-0.0,0.33l0.31,0.13l2.52,-0.49l2.34,0.02l-0.56,2.51l-2.22,3.13l0.22,0.47l2.43,0.21l2.35,4.35l0.17,0.14l1.58,0.51l1.49,3.78l0.73,1.37l0.2,0.15l2.76,0.59l-0.25,1.75l-1.18,0.91l-0.08,0.39l0.87,1.49l-1.96,1.51l-3.31,-0.02l-4.15,0.88l-1.07,-0.59l-0.35,0.04l-1.55,1.44l-2.17,-0.35l-0.22,0.05l-1.61,1.15l-0.78,-0.38l3.31,-3.12l2.18,-0.7l0.21,-0.31l-0.26,-0.27l-3.78,-0.54l-0.48,-0.9l2.3,-0.92l0.13,-0.46l-1.29,-1.71l0.39,-1.83l3.46,0.29l0.32,-0.24l0.37,-1.99l-0.06,-0.24l-1.71,-2.17l-0.18,-0.11l-2.91,-0.58l-0.43,-0.68l0.82,-1.4l-0.03,-0.35l-0.82,-0.97l-0.46,0.01l-0.85,1.05l-0.11,-2.6l-0.05,-0.16l-1.19,-1.7l0.86,-3.53l1.81,-2.75l1.88,0.26l2.38,-0.24ZM406.39,132.84l-1.09,1.92l-1.65,-0.62l-1.26,0.02l0.41,-1.46l0.0,-0.16l-0.42,-1.51l1.62,-0.11l2.39,1.92Z\", \"name\": \"United Kingdom\" }, \"GA\": { \"path\": \"M448.76,294.47l-2.38,-2.34l-1.63,-2.04l-1.46,-2.48l0.06,-0.66l0.54,-0.81l0.61,-1.82l0.46,-1.69l0.63,-0.11l3.62,0.03l0.3,-0.3l-0.02,-2.75l0.88,-0.12l1.47,0.32l0.13,0.0l1.39,-0.3l-0.13,0.87l0.03,0.19l0.7,1.29l0.3,0.16l1.74,-0.19l0.36,0.29l-1.01,2.7l0.05,0.29l1.13,1.42l0.25,1.82l-0.3,1.56l-0.64,0.99l-1.93,-0.09l-1.26,-1.13l-0.5,0.17l-0.16,0.91l-1.48,0.27l-0.12,0.05l-0.86,0.63l-0.08,0.39l0.81,1.42l-1.48,1.08Z\", \"name\": \"Gabon\" }, \"GN\": { \"path\": \"M399.83,265.31l-0.69,-0.06l-0.3,0.16l-0.43,0.85l-0.39,-0.01l-0.3,-0.33l0.14,-0.87l-0.05,-0.22l-1.05,-1.54l-0.37,-0.11l-0.61,0.27l-0.84,0.12l0.02,-0.54l-0.04,-0.17l-0.35,-0.57l0.07,-0.63l-0.03,-0.17l-0.57,-1.11l-0.7,-0.9l-0.24,-0.12l-2.0,-0.0l-0.19,0.07l-0.51,0.42l-0.6,0.05l-0.21,0.11l-0.43,0.55l-0.3,0.7l-1.04,0.86l-0.91,-1.24l-1.0,-1.02l-0.69,-0.37l-0.52,-0.42l-0.3,-1.11l-0.37,-0.56l-0.1,-0.1l-0.4,-0.23l0.77,-0.85l0.62,0.04l0.18,-0.05l0.58,-0.38l0.46,-0.0l0.19,-0.07l0.39,-0.34l0.1,-0.3l-0.17,-0.67l0.15,-0.14l0.09,-0.2l0.03,-0.57l0.87,0.02l1.76,0.6l0.13,0.01l0.55,-0.06l0.22,-0.13l0.08,-0.12l1.18,0.17l0.17,-0.02l0.09,0.56l0.3,0.25l0.4,-0.0l0.14,-0.03l0.56,-0.29l0.23,0.05l0.63,0.59l0.15,0.07l1.07,0.2l0.24,-0.06l0.65,-0.52l0.77,-0.32l0.55,-0.32l0.3,0.04l0.44,0.45l0.34,0.74l0.84,0.87l-0.35,0.45l-0.06,0.15l-0.1,0.82l0.42,0.31l0.35,-0.16l0.05,0.04l-0.1,0.59l0.09,0.27l0.42,0.4l-0.06,0.02l-0.18,0.21l-0.2,0.86l0.03,0.21l0.56,1.02l0.52,1.71l-0.65,0.21l-0.15,0.12l-0.24,0.35l-0.03,0.28l0.16,0.41l-0.1,0.76l-0.12,0.0Z\", \"name\": \"Guinea\" }, \"GM\": { \"path\": \"M379.18,251.48l0.15,-0.55l2.51,-0.07l0.21,-0.09l0.48,-0.52l0.58,-0.03l0.91,0.58l0.16,0.05l0.78,0.01l0.14,-0.03l0.59,-0.31l0.16,0.24l-0.71,0.38l-0.94,-0.04l-1.02,-0.51l-0.3,0.01l-0.86,0.55l-0.37,0.02l-0.14,0.04l-0.53,0.31l-1.81,-0.04Z\", \"name\": \"Gambia\" }, \"GL\": { \"path\": \"M304.13,6.6l8.19,-3.63l8.72,0.28l0.19,-0.06l3.12,-2.28l8.75,-0.61l19.94,0.8l14.93,4.75l-3.92,2.01l-9.52,0.27l-13.48,0.6l-0.27,0.2l0.09,0.33l1.26,1.09l0.22,0.07l8.81,-0.67l7.49,2.07l0.19,-0.01l4.68,-1.78l1.76,1.84l-2.59,3.26l-0.01,0.36l0.34,0.11l6.35,-2.2l12.09,-2.32l7.31,1.14l1.17,2.13l-9.9,4.05l-1.43,1.32l-7.91,0.98l-0.26,0.31l0.29,0.29l5.25,0.25l-2.63,3.72l-2.02,3.61l-0.04,0.15l0.08,6.05l0.07,0.19l2.61,3.0l-3.4,0.2l-4.12,1.66l-0.04,0.54l4.5,2.67l0.53,3.9l-2.39,0.42l-0.19,0.48l2.91,3.83l-5.0,0.32l-0.27,0.22l0.12,0.33l2.69,1.84l-0.65,1.35l-3.36,0.71l-3.46,0.01l-0.21,0.51l3.05,3.15l0.02,1.53l-4.54,-1.79l-0.32,0.06l-1.29,1.26l0.11,0.5l3.33,1.15l3.17,2.74l0.85,3.29l-4.0,0.78l-1.83,-1.66l-3.1,-2.64l-0.36,-0.02l-0.13,0.33l0.8,2.92l-2.76,2.26l-0.09,0.33l0.28,0.2l6.59,0.19l2.47,0.18l-5.86,3.38l-6.76,3.43l-7.26,1.48l-2.73,0.02l-0.16,0.05l-2.67,1.72l-3.44,4.42l-5.28,2.86l-1.73,0.18l-3.33,1.01l-3.59,0.96l-0.15,0.1l-2.15,2.52l-0.07,0.19l-0.03,2.76l-1.21,2.49l-4.03,3.1l-0.1,0.33l0.98,2.94l-2.31,6.57l-3.21,0.21l-3.6,-3.0l-0.19,-0.07l-4.9,-0.02l-2.29,-1.97l-1.69,-3.78l-4.31,-4.86l-1.23,-2.52l-0.34,-3.58l-0.08,-0.17l-3.35,-3.67l0.85,-2.92l-0.09,-0.31l-1.5,-1.34l2.33,-4.7l3.67,-1.57l0.15,-0.13l1.02,-1.93l0.52,-3.47l-0.44,-0.31l-2.85,1.57l-1.33,0.64l-2.12,0.59l-2.81,-1.32l-0.15,-2.79l0.88,-2.17l2.09,-0.06l5.07,1.2l0.34,-0.17l-0.11,-0.37l-4.3,-2.9l-2.24,-1.58l-0.25,-0.05l-2.38,0.62l-1.7,-0.93l2.62,-4.1l-0.03,-0.36l-1.51,-1.75l-1.97,-3.3l-3.01,-5.21l-0.1,-0.11l-3.04,-1.85l0.03,-1.94l-0.18,-0.28l-6.82,-3.01l-5.35,-0.38l-6.69,0.21l-6.03,0.37l-2.81,-1.59l-3.84,-2.9l5.94,-1.5l5.01,-0.28l0.28,-0.29l-0.26,-0.31l-10.68,-1.38l-5.38,-2.1l0.27,-1.68l9.3,-2.6l9.18,-2.68l0.19,-0.16l0.97,-2.05l-0.18,-0.42l-6.29,-1.91l1.81,-1.9l8.58,-4.05l3.6,-0.63l0.23,-0.4l-0.92,-2.37l5.59,-1.5l7.66,-0.95l7.58,-0.05l2.65,1.84l0.31,0.02l6.52,-3.29l5.85,2.24l3.55,0.49l5.17,1.95l0.38,-0.16l-0.13,-0.39l-5.77,-3.16l0.29,-2.26Z\", \"name\": \"Greenland\" }, \"KW\": { \"path\": \"M540.87,207.81l0.41,0.94l-0.18,0.51l0.0,0.21l0.65,1.66l-1.15,0.05l-0.54,-1.12l-0.24,-0.17l-1.73,-0.2l1.44,-2.06l1.33,0.18Z\", \"name\": \"Kuwait\" }, \"GH\": { \"path\": \"M423.16,269.88l-3.58,1.34l-1.41,0.87l-2.13,0.69l-1.91,-0.61l0.09,-0.75l-0.03,-0.17l-1.04,-2.07l0.62,-2.7l1.04,-2.08l0.03,-0.19l-1.0,-5.46l0.05,-1.12l4.04,-0.11l1.08,0.18l0.18,-0.03l0.72,-0.36l0.75,0.13l-0.11,0.48l0.06,0.26l0.98,1.22l-0.0,1.77l0.24,1.99l0.05,0.13l0.55,0.81l-0.52,2.14l0.19,1.37l0.69,1.66l0.38,0.62Z\", \"name\": \"Ghana\" }, \"OM\": { \"path\": \"M568.16,231.0l-0.08,0.1l-0.84,1.61l-0.93,-0.11l-0.27,0.11l-0.58,0.73l-0.4,1.32l-0.01,0.14l0.29,1.61l-0.07,0.09l-1.0,-0.01l-0.16,0.04l-1.56,0.97l-0.14,0.2l-0.23,1.17l-0.41,0.4l-1.44,-0.02l-0.17,0.05l-0.98,0.65l-0.13,0.25l0.01,0.87l-0.97,0.57l-1.27,-0.22l-0.19,0.03l-1.63,0.84l-0.88,0.11l-2.55,-5.57l7.2,-2.49l0.19,-0.19l1.67,-5.23l-0.03,-0.25l-1.1,-1.78l0.05,-0.89l0.68,-1.03l0.05,-0.16l0.01,-0.89l0.96,-0.44l0.07,-0.5l-0.32,-0.26l0.16,-1.31l0.85,-0.01l1.03,1.67l0.09,0.09l1.4,0.96l0.11,0.05l1.82,0.34l1.37,0.45l1.75,2.32l0.13,0.1l0.7,0.26l-0.0,0.3l-1.25,2.19l-1.01,0.8ZM561.88,218.47l-0.01,0.02l-0.15,-0.29l0.3,-0.38l-0.14,0.65Z\", \"name\": \"Oman\" }, \"_3\": { \"path\": \"M543.2,261.06l-1.07,1.46l-1.65,1.99l-1.91,0.01l-8.08,-2.95l-0.89,-0.84l-0.9,-1.19l-0.81,-1.23l0.44,-0.73l0.76,-1.12l0.49,0.28l0.52,1.05l1.13,1.06l0.2,0.08l1.24,0.01l2.42,-0.65l2.77,-0.31l2.17,-0.78l1.31,-0.19l0.84,-0.43l1.03,-0.06l-0.01,4.54Z\", \"name\": \"Somaliland\" }, \"_2\": { \"path\": \"M384.23,230.37l0.07,-0.06l0.28,-0.89l0.99,-1.13l0.07,-0.13l0.8,-3.54l3.4,-2.8l0.09,-0.13l0.76,-2.17l0.07,5.5l-2.07,0.21l-0.24,0.17l-0.61,1.36l-0.02,0.16l0.43,3.46l-4.01,-0.01ZM391.82,218.2l0.07,-0.06l0.75,-1.93l1.86,-0.25l0.94,0.34l1.14,0.0l0.18,-0.06l0.73,-0.56l1.41,-0.08l-0.0,2.72l-7.08,-0.12Z\", \"name\": \"Western Sahara\" }, \"_1\": { \"path\": \"M472.71,172.84l-0.07,-0.43l-0.16,-0.22l-0.53,-0.27l-0.38,-0.58l0.3,-0.43l0.51,-0.19l0.18,-0.18l0.3,-0.87l0.12,-0.04l0.22,0.26l0.12,0.09l0.38,0.15l0.28,0.41l0.15,0.12l0.34,0.12l0.43,0.5l0.15,0.07l-0.12,0.3l-0.27,0.32l-0.03,0.18l-0.31,0.06l-1.48,0.47l-0.15,0.17Z\", \"name\": \"Kosovo\" }, \"_0\": { \"path\": \"M503.54,192.92l0.09,-0.17l0.41,0.01l-0.08,0.01l-0.42,0.15ZM504.23,192.76l1.02,0.02l0.4,-0.13l-0.09,0.29l0.03,0.08l-0.35,0.16l-0.24,-0.04l-0.06,-0.1l-0.18,-0.17l-0.19,-0.08l-0.33,-0.02Z\", \"name\": \"Northern Cyprus\" }, \"JO\": { \"path\": \"M510.26,200.93l0.28,-0.57l2.53,1.0l0.27,-0.02l4.57,-2.77l0.84,2.84l-0.28,0.25l-4.95,1.37l-0.14,0.49l2.24,2.48l-0.5,0.28l-0.13,0.14l-0.35,0.78l-1.76,0.35l-0.2,0.14l-0.57,0.94l-0.94,0.73l-2.45,-0.38l-0.03,-0.12l1.23,-4.32l-0.04,-1.1l0.34,-0.75l0.03,-0.12l0.0,-1.63Z\", \"name\": \"Jordan\" }, \"HR\": { \"path\": \"M455.49,162.73l1.53,0.09l0.24,-0.1l0.29,-0.34l0.64,0.38l0.14,0.04l0.98,0.06l0.32,-0.3l-0.01,-0.66l0.67,-0.25l0.19,-0.22l0.21,-1.11l1.72,-0.72l0.65,0.32l1.94,1.37l2.07,0.6l0.22,-0.02l0.67,-0.33l0.47,0.94l0.67,0.76l-0.63,0.77l-0.91,-0.55l-0.16,-0.04l-1.69,0.04l-2.2,-0.51l-1.17,0.07l-0.21,0.11l-0.36,0.42l-0.67,-0.53l-0.46,0.12l-0.52,1.29l0.05,0.31l1.21,1.42l0.58,0.99l1.15,1.14l0.95,0.68l0.92,1.23l0.1,0.09l1.75,0.91l-1.87,-0.89l-1.5,-1.11l-2.23,-0.88l-1.77,-1.9l0.12,-0.06l0.1,-0.47l-1.07,-1.22l-0.04,-0.94l-0.21,-0.27l-1.61,-0.49l-0.35,0.14l-0.53,0.93l-0.41,-0.57l0.04,-0.73Z\", \"name\": \"Croatia\" }, \"HT\": { \"path\": \"M237.82,234.68l1.35,0.1l1.95,0.37l0.18,1.15l-0.16,0.83l-0.51,0.37l-0.06,0.44l0.57,0.68l-0.02,0.22l-1.31,-0.35l-1.26,0.17l-1.49,-0.18l-0.15,0.02l-1.03,0.43l-1.02,-0.61l0.09,-0.36l2.04,0.32l1.9,0.21l0.19,-0.05l0.9,-0.58l0.05,-0.47l-1.05,-1.03l0.02,-0.86l-0.23,-0.3l-1.13,-0.29l0.18,-0.23Z\", \"name\": \"Haiti\" }, \"HU\": { \"path\": \"M461.96,157.92l0.68,-1.66l-0.03,-0.29l-0.15,-0.22l0.84,-0.0l0.3,-0.26l0.12,-0.84l0.88,0.57l0.98,0.38l0.16,0.01l2.1,-0.39l0.23,-0.21l0.14,-0.45l0.88,-0.1l1.06,-0.43l0.13,0.1l0.28,0.04l1.18,-0.4l0.14,-0.1l0.52,-0.67l0.63,-0.15l2.6,0.95l0.26,-0.03l0.38,-0.23l1.12,0.7l0.1,0.49l-1.31,0.57l-0.14,0.13l-1.18,2.14l-1.44,2.04l-1.85,0.55l-1.51,-0.13l-0.14,0.02l-1.92,0.82l-0.85,0.42l-1.91,-0.55l-1.83,-1.31l-0.74,-0.37l-0.44,-0.97l-0.26,-0.18Z\", \"name\": \"Hungary\" }, \"HN\": { \"path\": \"M202.48,251.87l-0.33,-0.62l-0.18,-0.14l-0.5,-0.15l0.13,-0.76l-0.11,-0.28l-0.34,-0.28l-0.6,-0.23l-0.18,-0.01l-0.81,0.22l-0.16,-0.24l-0.72,-0.39l-0.51,-0.48l-0.12,-0.07l-0.31,-0.09l0.24,-0.3l0.04,-0.3l-0.16,-0.4l0.1,-0.28l1.14,-0.69l1.0,-0.86l0.09,0.04l0.3,-0.05l0.47,-0.39l0.49,-0.03l0.14,0.13l0.29,0.06l0.31,-0.1l1.16,0.22l1.24,-0.08l0.81,-0.28l0.29,-0.25l0.63,0.1l0.69,0.18l0.65,-0.06l0.49,-0.2l1.04,0.32l0.38,0.06l0.7,0.44l0.71,0.56l0.92,0.41l0.1,0.11l-0.11,-0.01l-0.23,0.09l-0.3,0.3l-0.76,0.29l-0.58,0.0l-0.15,0.04l-0.45,0.26l-0.31,-0.07l-0.37,-0.34l-0.28,-0.07l-0.26,0.07l-0.18,0.15l-0.23,0.43l-0.04,-0.0l-0.33,0.28l-0.03,0.4l-0.76,0.61l-0.45,0.3l-0.15,0.16l-0.51,-0.36l-0.41,0.06l-0.45,0.56l-0.41,-0.01l-0.59,0.06l-0.27,0.31l0.04,0.96l-0.07,0.0l-0.25,0.16l-0.24,0.45l-0.42,0.06Z\", \"name\": \"Honduras\" }, \"PR\": { \"path\": \"M254.95,238.31l1.15,0.21l0.2,0.23l-0.36,0.36l-1.76,-0.01l-1.2,0.07l-0.09,-0.69l0.17,-0.18l1.89,0.01Z\", \"name\": \"Puerto Rico\" }, \"PS\": { \"path\": \"M509.66,201.06l-0.0,1.44l-0.29,0.63l-0.59,0.19l0.02,-0.11l0.52,-0.31l-0.02,-0.53l-0.41,-0.2l0.36,-1.28l0.41,0.17Z\", \"name\": \"West Bank\" }, \"PT\": { \"path\": \"M398.65,173.6l0.75,-0.63l0.7,-0.3l0.51,1.2l0.28,0.18l1.48,-0.0l0.2,-0.08l0.33,-0.3l1.16,0.08l0.52,1.11l-0.95,0.66l-0.13,0.24l-0.03,2.2l-0.33,0.35l-0.08,0.18l-0.08,1.17l-0.86,0.19l-0.2,0.44l0.93,1.64l-0.64,1.79l0.07,0.31l0.72,0.72l-0.24,0.56l-0.9,1.05l-0.07,0.26l0.17,0.77l-0.73,0.54l-1.18,-0.36l-0.16,-0.0l-0.85,0.21l0.31,-1.81l-0.23,-1.87l-0.23,-0.25l-0.99,-0.24l-0.49,-0.91l0.18,-1.72l0.93,-0.99l0.08,-0.16l0.17,-1.17l0.52,-1.76l-0.04,-1.36l-0.51,-1.14l-0.09,-0.8Z\", \"name\": \"Portugal\" }, \"PY\": { \"path\": \"M264.33,341.43l0.93,-2.96l0.07,-1.42l1.1,-2.1l4.19,-0.73l2.22,0.04l2.12,1.21l0.07,0.76l0.7,1.38l-0.16,3.48l0.24,0.31l2.64,0.5l0.19,-0.03l0.9,-0.45l1.47,0.62l0.38,0.64l0.23,2.35l0.3,1.07l0.25,0.21l0.93,0.12l0.16,-0.02l0.8,-0.37l0.61,0.33l-0.0,1.25l-0.33,1.53l-0.5,1.57l-0.39,2.26l-2.14,1.94l-1.85,0.4l-2.74,-0.4l-2.13,-0.62l2.26,-3.75l0.03,-0.24l-0.36,-1.18l-0.17,-0.19l-2.55,-1.03l-3.04,-1.95l-2.07,-0.43l-4.4,-4.12Z\", \"name\": \"Paraguay\" }, \"PA\": { \"path\": \"M213.65,263.79l0.18,-0.43l0.02,-0.18l-0.06,-0.28l0.23,-0.18l-0.01,-0.48l-0.4,-0.29l-0.01,-0.62l0.57,-0.13l0.68,0.69l-0.04,0.39l0.26,0.33l1.0,0.11l0.27,-0.1l0.49,0.44l0.24,0.07l1.34,-0.22l1.04,-0.62l1.49,-0.5l0.86,-0.73l0.99,0.11l0.18,0.28l1.35,0.08l1.02,0.4l0.78,0.72l0.71,0.53l-0.1,0.12l-0.05,0.3l0.53,1.34l-0.28,0.44l-0.6,-0.13l-0.36,0.22l-0.2,0.76l-0.41,-0.36l-0.44,-1.12l0.49,-0.53l-0.14,-0.49l-0.51,-0.14l-0.41,-0.72l-0.11,-0.11l-1.25,-0.7l-0.19,-0.04l-1.1,0.16l-0.22,0.15l-0.47,0.81l-0.9,0.56l-0.49,0.08l-0.22,0.17l-0.25,0.52l0.05,0.32l0.93,1.07l-0.41,0.21l-0.29,0.3l-0.81,0.09l-0.36,-1.26l-0.53,-0.1l-0.21,0.28l-0.5,-0.09l-0.44,-0.88l-0.22,-0.16l-0.99,-0.16l-0.61,-0.28l-0.13,-0.03l-1.0,0.0Z\", \"name\": \"Panama\" }, \"PG\": { \"path\": \"M808.4,298.6l0.62,0.46l1.19,1.56l1.04,0.77l-0.18,0.37l-0.42,0.15l-0.92,-0.82l-1.05,-1.53l-0.27,-0.96ZM804.09,296.06l-0.3,0.26l-0.36,-1.11l-0.66,-1.06l-2.55,-1.89l-1.42,-0.59l0.17,-0.15l1.16,0.6l0.85,0.55l1.01,0.58l0.97,1.02l0.9,0.76l0.24,1.03ZM796.71,297.99l0.15,0.82l0.34,0.24l1.43,-0.19l0.19,-0.11l0.68,-0.82l1.36,-0.87l0.13,-0.31l-0.21,-1.13l1.04,-0.03l0.3,0.25l-0.04,1.17l-0.74,1.34l-1.17,0.18l-0.22,0.15l-0.35,0.62l-2.51,1.13l-1.21,-0.0l-1.99,-0.71l-1.19,-0.58l0.07,-0.28l1.98,0.32l1.46,-0.2l0.24,-0.21l0.25,-0.79ZM789.24,303.52l0.11,0.15l2.19,1.62l1.6,2.62l0.27,0.14l1.09,-0.06l-0.07,0.77l0.23,0.32l1.23,0.27l-0.14,0.09l0.05,0.53l2.39,0.95l-0.11,0.28l-1.33,0.14l-0.51,-0.55l-0.18,-0.09l-4.59,-0.65l-1.87,-1.55l-1.38,-1.35l-1.28,-2.17l-0.16,-0.13l-3.27,-1.1l-0.19,0.0l-2.12,0.72l-1.58,0.85l-0.15,0.31l0.28,1.63l-1.65,0.73l-1.37,-0.4l-2.3,-0.09l-0.08,-15.65l3.95,1.57l4.58,1.42l1.67,1.25l1.32,1.19l0.36,1.39l0.19,0.21l4.06,1.51l0.39,0.85l-1.9,0.22l-0.25,0.39l0.55,1.68Z\", \"name\": \"Papua New Guinea\" }, \"PE\": { \"path\": \"M246.44,329.21l-0.63,1.25l-1.05,0.54l-2.25,-1.33l-0.19,-0.93l-0.16,-0.21l-4.95,-2.58l-4.46,-2.79l-1.87,-1.52l-0.94,-1.91l0.33,-0.6l-0.01,-0.31l-2.11,-3.33l-2.46,-4.66l-2.36,-5.02l-1.04,-1.18l-0.77,-1.81l-0.08,-0.11l-1.95,-1.64l-1.54,-0.88l0.61,-0.85l0.02,-0.31l-1.15,-2.27l0.69,-1.56l1.59,-1.26l0.12,0.42l-0.56,0.47l-0.11,0.25l0.07,0.92l0.36,0.27l0.97,-0.19l0.85,0.23l0.99,1.19l0.41,0.05l1.42,-1.03l0.11,-0.16l0.46,-1.64l1.45,-2.06l2.92,-0.96l0.11,-0.07l2.73,-2.62l0.84,-1.72l0.02,-0.18l-0.3,-1.65l0.28,-0.1l1.49,1.06l0.77,1.14l0.1,0.09l1.08,0.6l1.43,2.55l0.21,0.15l1.86,0.31l0.18,-0.03l1.25,-0.6l0.77,0.37l0.17,0.03l1.4,-0.2l1.57,0.96l-1.45,2.29l0.23,0.46l0.63,0.05l0.66,0.7l-1.51,-0.08l-0.24,0.1l-0.27,0.31l-1.96,0.46l-2.95,1.74l-0.14,0.21l-0.17,1.1l-0.6,0.82l-0.05,0.23l0.21,1.13l-1.31,0.63l-0.17,0.27l0.0,0.91l-0.53,0.37l-0.1,0.37l1.04,2.27l1.31,1.46l-0.44,0.9l0.24,0.43l1.52,0.13l0.87,1.23l0.24,0.13l2.21,0.07l0.18,-0.06l1.55,-1.13l-0.14,3.22l0.23,0.3l1.14,0.29l0.16,-0.0l1.18,-0.36l1.97,3.71l-0.45,0.71l-0.04,0.14l-0.12,1.8l-0.05,2.07l-0.92,1.2l-0.03,0.31l0.38,0.8l-0.48,0.72l-0.02,0.3l1.01,2.02l-1.5,2.64Z\", \"name\": \"Peru\" }, \"PK\": { \"path\": \"M609.08,187.76l1.66,1.21l0.71,2.11l0.2,0.19l3.62,1.01l-1.98,1.95l-2.65,0.4l-3.75,-0.68l-0.26,0.08l-1.23,1.22l-0.07,0.31l0.89,2.46l0.88,1.92l0.1,0.12l1.67,1.14l-1.8,1.35l-0.12,0.25l0.04,1.85l-2.35,2.67l-1.59,2.79l-2.5,2.72l-2.76,-0.2l-0.24,0.09l-2.76,2.83l0.04,0.45l1.54,1.13l0.27,1.94l0.09,0.17l1.34,1.29l0.4,1.83l-5.14,-0.01l-0.22,0.09l-1.53,1.63l-1.52,-0.56l-0.76,-1.88l-1.93,-2.03l-0.25,-0.09l-4.6,0.5l-4.05,0.05l-3.1,0.33l0.77,-2.53l3.48,-1.33l0.19,-0.33l-0.21,-1.24l-0.19,-0.23l-1.01,-0.37l-0.06,-2.18l-0.17,-0.26l-2.32,-1.16l-0.96,-1.57l-0.56,-0.65l3.16,1.05l0.14,0.01l2.45,-0.4l1.44,0.33l0.3,-0.1l0.4,-0.47l1.58,0.22l0.14,-0.01l3.25,-1.14l0.2,-0.27l0.08,-2.23l1.23,-1.38l1.73,0.0l0.28,-0.2l0.22,-0.61l1.68,-0.32l0.86,0.24l0.27,-0.05l0.98,-0.78l0.11,-0.26l-0.13,-1.57l0.96,-1.52l1.51,-0.67l0.14,-0.41l-0.74,-1.4l1.86,0.07l0.26,-0.13l0.69,-1.01l0.05,-0.2l-0.09,-0.94l1.14,-1.09l0.09,-0.28l-0.29,-1.41l-0.51,-1.07l1.23,-1.05l2.6,-0.58l2.86,-0.33l1.33,-0.54l1.3,-0.29Z\", \"name\": \"Pakistan\" }, \"PH\": { \"path\": \"M737.11,263.82l0.25,1.66l0.14,1.34l-0.54,1.46l-0.64,-1.79l-0.5,-0.1l-1.17,1.28l-0.05,0.32l0.74,1.71l-0.49,0.81l-2.6,-1.28l-0.61,-1.57l0.68,-1.07l-0.07,-0.4l-1.59,-1.19l-0.42,0.06l-0.69,0.91l-1.01,-0.08l-0.21,0.06l-1.58,1.2l-0.17,-0.3l0.87,-1.88l1.48,-0.66l1.18,-0.81l0.71,0.92l0.34,0.1l1.9,-0.69l0.18,-0.18l0.34,-0.94l1.57,-0.06l0.29,-0.32l-0.1,-1.38l1.41,0.83l0.36,2.06ZM734.94,254.42l0.56,2.24l-1.41,-0.49l-0.4,0.3l0.07,0.94l0.51,1.3l-0.54,0.26l-0.08,-1.34l-0.25,-0.28l-0.56,-0.1l-0.23,-0.91l1.03,0.14l0.34,-0.31l-0.03,-0.96l-0.06,-0.18l-1.14,-1.44l1.62,0.04l0.57,0.78ZM724.68,238.33l1.48,0.71l0.33,-0.04l0.44,-0.38l0.05,0.13l-0.37,0.97l0.01,0.23l0.81,1.75l-0.59,1.92l-1.37,0.79l-0.14,0.2l-0.39,2.07l0.01,0.14l0.56,2.04l0.23,0.21l1.33,0.28l0.14,-0.0l1.0,-0.27l2.82,1.28l-0.2,1.16l0.12,0.29l0.66,0.5l-0.13,0.56l-1.54,-0.99l-0.89,-1.29l-0.49,0.0l-0.44,0.65l-1.34,-1.28l-0.26,-0.08l-2.18,0.36l-0.96,-0.44l0.09,-0.72l0.69,-0.57l-0.01,-0.47l-0.75,-0.59l-0.47,0.14l-0.15,0.43l-0.86,-1.02l-0.34,-1.02l-0.07,-1.74l0.49,0.41l0.49,-0.21l0.26,-3.99l0.73,-2.1l1.23,0.0ZM731.12,258.92l-0.82,0.75l-0.83,1.64l-0.52,0.5l-1.17,-1.33l0.36,-0.47l0.62,-0.7l0.07,-0.15l0.24,-1.35l0.73,-0.08l-0.31,1.29l0.16,0.34l0.37,-0.09l1.21,-1.6l-0.12,1.24ZM726.66,255.58l0.85,0.45l0.14,0.03l1.28,-0.0l-0.03,0.62l-1.04,0.96l-1.15,0.55l-0.05,-0.71l0.17,-1.26l-0.01,-0.13l-0.16,-0.51ZM724.92,252.06l-0.45,1.5l-0.7,-0.83l-0.95,-1.43l1.44,0.06l0.67,0.7ZM717.48,261.28l-1.87,1.35l0.21,-0.3l1.81,-1.57l1.5,-1.75l0.97,-1.84l0.23,1.08l-1.56,1.33l-1.29,1.7Z\", \"name\": \"Philippines\" }, \"PL\": { \"path\": \"M458.8,144.25l-0.96,-1.98l0.18,-1.06l-0.01,-0.15l-0.62,-1.8l-0.82,-1.11l0.56,-0.73l0.05,-0.28l-0.51,-1.51l1.48,-0.87l3.88,-1.58l3.06,-1.14l2.23,0.52l0.15,0.66l0.29,0.23l2.4,0.04l3.11,0.39l4.56,-0.05l1.12,0.32l0.51,0.89l0.1,1.45l0.03,0.12l0.66,1.23l-0.01,1.08l-1.33,0.61l-0.14,0.41l0.74,1.5l0.07,1.53l1.22,2.79l-0.19,0.66l-1.09,0.33l-0.14,0.09l-2.27,2.72l-0.04,0.31l0.35,0.8l-2.22,-1.16l-0.21,-0.02l-1.72,0.44l-1.1,-0.31l-0.21,0.02l-1.3,0.61l-1.11,-1.02l-0.32,-0.05l-0.81,0.35l-1.15,-1.61l-0.21,-0.12l-1.65,-0.17l-0.19,-0.82l-0.23,-0.23l-1.72,-0.37l-0.34,0.17l-0.25,0.56l-0.88,-0.44l0.12,-0.69l-0.25,-0.35l-1.78,-0.27l-1.08,-0.97Z\", \"name\": \"Poland\" }, \"ZM\": { \"path\": \"M502.81,308.32l1.09,1.04l0.58,1.94l-0.39,0.66l-0.5,2.05l-0.0,0.14l0.45,1.95l-0.69,0.77l-0.06,0.11l-0.76,2.37l0.15,0.36l0.62,0.31l-6.85,1.9l-0.22,0.33l0.2,1.54l-1.62,0.3l-0.12,0.05l-1.43,1.02l-0.11,0.15l-0.25,0.73l-0.73,0.17l-0.14,0.08l-2.18,2.12l-1.33,1.6l-0.65,0.05l-0.83,-0.29l-2.75,-0.28l-0.24,-0.1l-0.15,-0.27l-0.99,-0.58l-0.12,-0.04l-1.73,-0.14l-1.88,0.54l-1.5,-1.48l-1.61,-2.01l0.11,-7.73l4.92,0.03l0.29,-0.37l-0.19,-0.79l0.34,-0.86l0.0,-0.21l-0.41,-1.11l0.26,-1.14l-0.01,-0.16l-0.12,-0.36l0.18,0.01l0.1,0.56l0.31,0.25l1.14,-0.06l1.44,0.21l0.76,1.05l0.19,0.12l2.01,0.35l0.19,-0.03l1.24,-0.65l0.44,1.03l0.22,0.18l1.81,0.34l0.85,0.99l1.02,1.39l0.24,0.12l1.92,0.02l0.3,-0.32l-0.21,-2.74l-0.47,-0.23l-0.53,0.36l-1.58,-0.89l-0.51,-0.34l0.29,-2.36l0.44,-2.99l-0.03,-0.18l-0.5,-0.99l0.61,-1.38l0.53,-0.24l3.26,-0.41l0.89,0.23l1.01,0.62l1.04,0.44l1.6,0.43l1.35,0.72Z\", \"name\": \"Zambia\" }, \"EE\": { \"path\": \"M482.19,120.88l0.23,-1.68l-0.43,-0.31l-0.75,0.37l-1.34,-1.1l-0.18,-1.75l2.92,-0.95l3.07,-0.53l2.66,0.6l2.48,-0.1l0.18,0.31l-1.65,1.96l-0.06,0.26l0.71,3.25l-0.88,0.94l-1.85,-0.01l-2.08,-1.3l-1.14,-0.47l-0.2,-0.01l-1.69,0.51Z\", \"name\": \"Estonia\" }, \"EG\": { \"path\": \"M508.07,208.8l-0.66,1.06l-0.53,2.03l-0.64,1.32l-0.32,0.26l-1.74,-1.85l-1.77,-3.86l-0.48,-0.09l-0.26,0.25l-0.07,0.32l1.04,2.88l1.55,2.76l1.89,4.18l0.94,1.48l0.83,1.54l2.08,2.73l-0.3,0.28l-0.1,0.23l0.08,1.72l0.11,0.22l2.91,2.37l-28.78,0.0l0.0,-19.06l-0.73,-2.2l0.61,-1.59l0.0,-0.2l-0.34,-1.04l0.73,-1.08l3.13,-0.04l2.36,0.72l2.48,0.81l1.15,0.43l0.23,-0.01l1.93,-0.87l1.02,-0.78l2.08,-0.21l1.59,0.31l0.62,1.24l0.52,0.03l0.46,-0.71l1.86,0.59l1.95,0.16l0.17,-0.04l0.92,-0.52l1.48,4.24Z\", \"name\": \"Egypt\" }, \"ZA\": { \"path\": \"M467.06,373.27l-0.13,-0.29l0.01,-1.58l-0.02,-0.12l-0.71,-1.64l0.59,-0.37l0.14,-0.26l-0.07,-2.13l-0.05,-0.15l-1.63,-2.58l-1.25,-2.31l-1.71,-3.37l0.88,-0.98l0.7,0.52l0.39,1.08l0.23,0.19l1.1,0.19l1.55,0.51l0.14,0.01l1.35,-0.2l0.11,-0.04l2.24,-1.39l0.14,-0.25l0.0,-9.4l0.16,0.09l1.39,2.38l-0.22,1.53l0.04,0.19l0.56,0.94l0.3,0.14l1.79,-0.27l0.16,-0.08l1.23,-1.18l1.17,-0.79l0.1,-0.12l0.57,-1.19l1.02,-0.52l0.9,0.28l1.16,0.73l0.14,0.05l2.04,0.13l0.13,-0.02l1.6,-0.62l0.18,-0.19l0.63,-1.93l1.18,-0.19l0.19,-0.12l0.78,-1.05l0.81,-1.71l2.18,-1.91l3.44,-1.88l0.89,0.02l1.17,0.43l0.21,-0.0l0.76,-0.29l1.07,0.21l1.15,3.55l0.63,1.82l-0.44,2.9l0.1,0.52l-0.74,-0.29l-0.18,-0.01l-0.72,0.19l-0.21,0.2l-0.22,0.74l-0.66,0.97l-0.05,0.18l0.02,0.93l0.09,0.21l1.49,1.46l0.27,0.08l1.47,-0.29l0.22,-0.18l0.43,-1.01l1.29,0.02l-0.51,1.63l-0.29,2.2l-0.59,1.12l-2.2,1.78l-1.06,1.39l-0.72,1.44l-1.39,1.93l-2.81,2.84l-1.75,1.65l-1.85,1.24l-2.55,1.06l-1.23,0.14l-0.24,0.18l-0.22,0.54l-1.27,-0.35l-0.2,0.01l-1.15,0.5l-2.62,-0.52l-0.12,0.0l-1.46,0.33l-0.98,-0.14l-0.16,0.02l-2.55,1.1l-2.11,0.44l-1.59,1.07l-0.93,0.06l-0.97,-0.92l-0.19,-0.08l-0.72,-0.04l-1.0,-1.16l-0.25,0.05ZM493.72,359.24l-1.12,-0.86l-0.31,-0.03l-1.23,0.59l-1.36,1.07l-1.39,1.78l0.01,0.38l1.88,2.11l0.31,0.09l0.9,-0.27l0.18,-0.15l0.4,-0.77l1.28,-0.39l0.18,-0.16l0.42,-0.88l0.76,-1.32l-0.05,-0.37l-0.87,-0.82Z\", \"name\": \"South Africa\" }, \"EC\": { \"path\": \"M220.2,293.48l1.25,-1.76l0.02,-0.31l-0.54,-1.09l-0.5,-0.06l-0.78,0.94l-1.03,-0.75l0.33,-0.46l0.05,-0.23l-0.38,-2.04l0.66,-0.28l0.17,-0.19l0.45,-1.52l0.93,-1.58l0.04,-0.2l-0.13,-0.78l1.19,-0.47l1.57,-0.91l2.35,1.34l0.17,0.04l0.28,-0.02l0.52,0.91l0.21,0.15l2.12,0.35l0.2,-0.03l0.55,-0.31l1.08,0.73l0.97,0.54l0.31,1.67l-0.71,1.49l-2.64,2.54l-2.95,0.97l-0.15,0.11l-1.53,2.18l-0.49,1.68l-1.1,0.8l-0.87,-1.05l-0.15,-0.1l-1.01,-0.27l-0.13,-0.0l-0.7,0.14l-0.03,-0.43l0.6,-0.5l0.1,-0.31l-0.26,-0.91Z\", \"name\": \"Ecuador\" }, \"AL\": { \"path\": \"M470.27,171.7l0.38,0.19l0.45,-0.18l0.4,0.61l0.11,0.1l0.46,0.24l0.13,0.87l-0.3,0.95l-0.0,0.17l0.36,1.28l0.12,0.17l0.9,0.63l-0.03,0.44l-0.67,0.35l-0.16,0.22l-0.14,0.88l-0.96,1.18l-0.06,-0.03l-0.04,-0.48l-0.12,-0.22l-1.28,-0.92l-0.19,-1.25l0.2,-1.96l0.33,-0.89l-0.06,-0.3l-0.36,-0.41l-0.13,-0.75l0.66,-0.9Z\", \"name\": \"Albania\" }, \"AO\": { \"path\": \"M461.62,299.93l0.55,1.67l0.73,1.54l1.56,2.18l0.28,0.12l1.66,-0.2l0.81,-0.34l1.28,0.33l0.33,-0.14l0.39,-0.67l0.56,-1.3l1.37,-0.09l0.27,-0.21l0.07,-0.23l0.67,-0.01l-0.13,0.53l0.29,0.37l2.74,-0.02l0.04,1.29l0.03,0.13l0.46,0.87l-0.35,1.52l0.18,1.55l0.07,0.16l0.75,0.85l-0.13,2.89l0.41,0.29l0.56,-0.21l1.11,0.05l1.5,-0.37l0.9,0.12l0.18,0.53l-0.27,1.15l0.01,0.17l0.4,1.08l-0.33,0.85l-0.01,0.18l0.12,0.51l-4.83,-0.03l-0.3,0.3l-0.12,8.13l0.07,0.19l1.69,2.1l1.27,1.25l-4.03,0.92l-5.93,-0.36l-1.66,-1.19l-0.18,-0.06l-10.15,0.11l-0.34,0.13l-1.35,-1.05l-0.17,-0.06l-1.62,-0.08l-1.6,0.45l-0.88,0.36l-0.17,-1.2l0.34,-2.19l0.85,-2.32l0.14,-1.13l0.79,-2.24l0.57,-1.0l1.42,-1.64l0.82,-1.15l0.05,-0.13l0.26,-1.88l-0.13,-1.51l-0.07,-0.16l-0.72,-0.87l-1.23,-2.91l0.09,-0.37l0.73,-0.95l0.05,-0.27l-1.27,-4.12l-1.19,-1.54l0.1,-0.2l0.86,-0.28l0.78,0.03l0.83,-0.29l7.12,0.03ZM451.81,298.94l-0.17,0.07l-0.5,-1.42l0.85,-0.92l0.53,-0.29l0.48,0.44l-0.56,0.32l-0.1,0.1l-0.41,0.65l-0.05,0.14l-0.07,0.91Z\", \"name\": \"Angola\" }, \"KZ\": { \"path\": \"M598.42,172.08l-1.37,0.54l-3.3,2.09l-0.11,0.12l-1.01,1.97l-0.56,0.01l-0.6,-1.24l-0.26,-0.17l-2.95,-0.09l-0.46,-2.22l-0.29,-0.24l-0.91,-0.02l0.17,-2.72l-0.12,-0.26l-3.0,-2.22l-0.2,-0.06l-4.29,0.24l-2.8,0.42l-2.36,-2.7l-6.4,-3.65l-0.23,-0.03l-6.45,1.83l-0.22,0.29l0.1,10.94l-0.84,0.1l-1.65,-2.21l-0.11,-0.09l-1.69,-0.84l-0.2,-0.02l-2.84,0.63l-0.14,0.07l-0.71,0.64l-0.02,-0.11l0.57,-1.17l0.0,-0.26l-0.48,-1.05l-0.17,-0.16l-2.78,-0.99l-1.08,-2.62l-0.13,-0.15l-1.24,-0.7l-0.04,-0.48l2.07,0.25l0.34,-0.29l0.09,-2.03l1.84,-0.44l2.12,0.45l0.36,-0.25l0.45,-3.04l-0.45,-2.06l-0.31,-0.23l-2.44,0.15l-2.07,-0.75l-0.23,0.01l-2.88,1.38l-2.21,0.62l-0.96,-0.38l0.22,-1.39l-0.06,-0.23l-1.6,-2.12l-0.25,-0.12l-1.72,0.08l-1.87,-1.91l1.33,-2.24l-0.06,-0.38l-0.55,-0.5l1.72,-3.08l2.3,1.7l0.48,-0.2l0.29,-2.26l4.99,-3.48l3.76,-0.08l5.46,2.27l2.96,1.33l0.26,-0.01l2.59,-1.36l3.82,-0.06l3.13,1.67l0.38,-0.09l0.63,-0.85l3.36,0.14l0.29,-0.19l0.63,-1.57l-0.13,-0.37l-3.64,-2.05l2.0,-1.36l0.1,-0.38l-0.32,-0.62l2.09,-0.76l0.13,-0.47l-1.65,-2.13l0.89,-0.91l9.27,-1.18l0.13,-0.05l1.17,-0.82l6.2,-1.27l2.26,-1.43l4.19,0.7l0.74,3.39l0.38,0.22l2.52,-0.81l2.9,1.06l-0.18,1.63l0.32,0.33l2.52,-0.23l5.0,-2.58l0.03,0.39l3.16,2.62l5.57,8.48l0.49,0.02l1.18,-1.53l3.22,1.78l0.21,0.03l3.5,-0.83l1.21,0.52l1.16,1.82l0.15,0.12l1.67,0.61l1.01,1.32l0.28,0.11l3.04,-0.41l1.1,1.64l-1.68,1.89l-1.97,0.28l-0.26,0.29l-0.12,3.09l-1.2,1.23l-4.81,-1.01l-0.35,0.2l-1.77,5.51l-1.14,0.62l-4.92,1.23l-0.2,0.41l2.14,5.06l-1.45,0.67l-0.17,0.31l0.15,1.28l-1.05,-0.3l-1.21,-1.04l-0.17,-0.07l-3.73,-0.32l-4.15,-0.08l-0.92,0.31l-3.46,-1.24l-0.22,0.01l-1.42,0.63l-0.17,0.21l-0.32,1.49l-3.82,-0.97l-0.15,0.0l-1.65,0.43l-0.2,0.17l-0.51,1.21Z\", \"name\": \"Kazakhstan\" }, \"ET\": { \"path\": \"M516.0,247.63l1.21,0.92l0.3,0.04l1.3,-0.53l0.46,0.41l0.19,0.08l1.65,0.03l2.05,0.96l0.67,0.88l1.07,0.79l1.0,1.45l0.7,0.68l-0.72,0.92l-0.85,1.19l-0.04,0.25l0.19,0.67l0.04,0.74l0.29,0.28l1.4,0.04l0.55,-0.15l0.23,0.19l-0.41,0.67l0.01,0.32l0.92,1.39l0.93,1.23l0.99,0.94l0.1,0.06l8.19,2.99l1.51,0.01l-6.51,6.95l-3.14,0.11l-0.18,0.06l-2.15,1.71l-1.51,0.04l-0.22,0.1l-0.6,0.69l-1.46,-0.0l-0.93,-0.78l-0.32,-0.04l-2.29,1.05l-0.12,0.1l-0.64,0.9l-1.44,-0.17l-0.51,-0.26l-0.17,-0.03l-0.56,0.07l-0.68,-0.02l-3.1,-2.08l-0.17,-0.05l-1.62,0.0l-0.68,-0.65l0.0,-1.28l-0.21,-0.29l-1.19,-0.38l-1.42,-2.63l-0.13,-0.12l-1.05,-0.53l-0.46,-1.0l-1.27,-1.23l-0.17,-0.08l-1.08,-0.13l0.53,-0.9l1.17,-0.05l0.26,-0.17l0.37,-0.77l0.03,-0.14l-0.03,-2.23l0.7,-2.49l1.08,-0.65l0.14,-0.19l0.24,-1.0l1.03,-1.85l1.47,-1.22l0.09,-0.12l1.02,-2.51l0.36,-1.96l2.62,0.48l0.33,-0.18l0.63,-1.55Z\", \"name\": \"Ethiopia\" }, \"ZW\": { \"path\": \"M498.95,341.2l-1.16,-0.23l-0.16,0.01l-0.74,0.28l-1.11,-0.41l-1.02,-0.04l-1.52,-1.13l-0.12,-0.05l-1.79,-0.37l-0.65,-1.46l-0.01,-0.86l-0.22,-0.29l-0.99,-0.26l-2.74,-2.77l-0.77,-1.46l-0.52,-0.5l-0.72,-1.54l2.24,0.23l0.78,0.28l0.12,0.02l0.85,-0.06l0.21,-0.11l1.38,-1.66l2.11,-2.05l0.81,-0.18l0.22,-0.2l0.27,-0.8l1.29,-0.93l1.53,-0.28l0.11,0.66l0.3,0.25l2.02,-0.05l1.04,0.48l0.5,0.59l0.18,0.1l1.13,0.18l1.11,0.7l0.01,3.06l-0.49,1.82l-0.11,1.94l0.03,0.16l0.35,0.68l-0.24,1.3l-0.27,0.17l-0.12,0.15l-0.64,1.83l-2.49,2.8Z\", \"name\": \"Zimbabwe\" }, \"ES\": { \"path\": \"M398.67,172.8l0.09,-1.45l-0.06,-0.2l-0.82,-1.05l3.16,-1.96l3.01,0.54l3.33,-0.02l2.64,0.52l2.14,-0.15l3.9,0.1l0.91,1.08l0.14,0.09l4.61,1.38l0.26,-0.04l0.77,-0.55l2.66,1.29l0.17,0.03l2.59,-0.35l0.1,1.28l-2.2,1.85l-3.13,0.62l-0.23,0.23l-0.21,0.92l-1.54,1.68l-0.97,2.4l0.02,0.26l0.85,1.46l-1.27,1.14l-0.09,0.14l-0.5,1.73l-1.73,0.53l-0.15,0.1l-1.68,2.1l-3.03,0.04l-2.38,-0.05l-0.17,0.05l-1.57,1.01l-0.9,1.01l-0.96,-0.19l-0.82,-0.86l-0.69,-1.6l-0.22,-0.18l-2.14,-0.41l-0.13,-0.62l0.83,-0.97l0.39,-0.86l-0.06,-0.33l-0.73,-0.73l0.63,-1.74l-0.02,-0.25l-0.8,-1.41l0.69,-0.15l0.23,-0.27l0.09,-1.29l0.33,-0.36l0.08,-0.2l0.03,-2.16l1.03,-0.72l0.1,-0.37l-0.7,-1.5l-0.25,-0.17l-1.46,-0.11l-0.22,0.07l-0.34,0.3l-1.17,0.0l-0.55,-1.29l-0.39,-0.16l-1.02,0.44l-0.45,0.36Z\", \"name\": \"Spain\" }, \"ER\": { \"path\": \"M527.15,253.05l-0.77,-0.74l-1.01,-1.47l-1.14,-0.86l-0.62,-0.84l-0.11,-0.09l-2.18,-1.02l-0.12,-0.03l-1.61,-0.03l-0.52,-0.46l-0.31,-0.05l-1.31,0.54l-1.38,-1.06l-0.46,0.12l-0.69,1.68l-2.49,-0.46l-0.2,-0.76l1.06,-3.69l0.24,-1.65l0.66,-0.66l1.76,-0.4l0.16,-0.1l0.97,-1.13l1.24,2.55l0.68,2.34l0.09,0.14l1.4,1.27l3.39,2.4l1.37,1.43l2.14,2.34l0.94,0.6l-0.32,0.26l-0.85,-0.17Z\", \"name\": \"Eritrea\" }, \"ME\": { \"path\": \"M469.05,172.9l-0.57,-0.8l-0.1,-0.09l-0.82,-0.46l0.16,-0.33l0.35,-1.57l0.72,-0.62l0.27,-0.16l0.48,0.38l0.35,0.4l0.12,0.08l0.79,0.32l0.66,0.43l-0.43,0.62l-0.28,0.11l-0.07,-0.25l-0.53,-0.1l-1.09,1.49l-0.05,0.23l0.06,0.32Z\", \"name\": \"Montenegro\" }, \"MD\": { \"path\": \"M488.2,153.75l0.14,-0.11l1.49,-0.28l1.75,0.95l1.06,0.14l0.92,0.7l-0.15,0.9l0.15,0.31l0.8,0.46l0.33,1.2l0.09,0.14l0.72,0.66l-0.11,0.28l0.1,0.33l-0.06,0.02l-1.25,-0.08l-0.17,-0.29l-0.39,-0.12l-0.52,0.25l-0.16,0.36l0.13,0.42l-0.6,0.88l-0.43,1.03l-0.22,0.12l-0.32,-1.0l0.25,-1.34l-0.08,-1.38l-0.06,-0.17l-1.43,-1.87l-0.81,-1.36l-0.78,-0.95l-0.12,-0.09l-0.29,-0.12Z\", \"name\": \"Moldova\" }, \"MG\": { \"path\": \"M544.77,316.45l0.64,1.04l0.6,1.62l0.4,3.04l0.63,1.21l-0.22,1.07l-0.15,0.26l-0.59,-1.05l-0.52,-0.01l-0.47,0.76l-0.04,0.23l0.46,1.84l-0.19,0.92l-0.61,0.53l-0.1,0.21l-0.16,2.15l-0.97,2.98l-1.24,3.59l-1.55,4.97l-0.96,3.67l-1.08,2.93l-1.94,0.61l-2.05,1.06l-3.2,-1.53l-0.62,-1.26l-0.18,-2.39l-0.87,-2.07l-0.22,-1.8l0.4,-1.69l1.01,-0.4l0.19,-0.28l0.01,-0.79l1.15,-1.91l0.04,-0.11l0.23,-1.66l-0.03,-0.17l-0.57,-1.21l-0.46,-1.58l-0.19,-2.25l0.82,-1.36l0.33,-1.51l1.11,-0.1l1.4,-0.53l0.9,-0.45l1.03,-0.03l0.21,-0.09l1.41,-1.45l2.12,-1.65l0.75,-1.29l0.03,-0.24l-0.17,-0.56l0.53,0.15l0.32,-0.1l1.38,-1.77l0.06,-0.18l0.04,-1.44l0.54,-0.74l0.62,0.77Z\", \"name\": \"Madagascar\" }, \"MA\": { \"path\": \"M378.66,230.13l0.07,-0.75l0.93,-0.72l0.82,-1.37l0.04,-0.21l-0.14,-0.8l0.8,-1.74l1.33,-1.61l0.79,-0.4l0.14,-0.15l0.66,-1.55l0.08,-1.46l0.83,-1.52l1.6,-0.94l0.11,-0.11l1.56,-2.71l1.2,-0.99l2.24,-0.29l0.17,-0.08l1.95,-1.83l1.3,-0.77l2.09,-2.28l0.07,-0.26l-0.61,-3.34l0.92,-2.3l0.33,-1.44l1.52,-1.79l2.48,-1.27l1.86,-1.16l0.1,-0.11l1.67,-2.93l0.72,-1.59l1.54,0.01l1.43,1.14l0.21,0.06l2.33,-0.19l2.55,0.62l0.97,0.03l0.83,1.6l0.15,1.71l0.86,2.96l0.09,0.14l0.5,0.45l-0.31,0.73l-3.11,0.44l-0.16,0.07l-1.07,0.97l-1.36,0.23l-0.25,0.28l-0.1,1.85l-2.74,1.02l-0.14,0.11l-0.9,1.3l-1.93,0.69l-2.56,0.44l-4.04,2.01l-0.17,0.27l0.02,2.91l-0.08,0.0l-0.3,0.31l0.05,1.15l-1.25,0.07l-0.16,0.06l-0.73,0.55l-0.98,0.0l-0.85,-0.33l-0.15,-0.02l-2.11,0.29l-0.24,0.19l-0.76,1.95l-0.63,0.16l-0.21,0.19l-1.15,3.29l-3.42,2.81l-0.1,0.17l-0.81,3.57l-0.98,1.12l-0.3,0.85l-5.13,0.19Z\", \"name\": \"Morocco\" }, \"UZ\": { \"path\": \"M587.83,186.48l0.06,-1.46l-0.19,-0.29l-3.31,-1.24l-2.57,-1.4l-1.63,-1.38l-2.79,-1.98l-1.2,-2.98l-0.12,-0.14l-0.84,-0.54l-0.18,-0.05l-2.61,0.13l-0.76,-0.48l-0.25,-2.25l-0.17,-0.24l-3.37,-1.6l-0.32,0.04l-2.08,1.73l-2.11,1.02l-0.16,0.35l0.31,1.14l-2.14,0.03l-0.09,-10.68l6.1,-1.74l6.25,3.57l2.36,2.72l0.27,0.1l2.92,-0.44l4.17,-0.23l2.78,2.06l-0.18,2.87l0.29,0.32l0.98,0.02l0.46,2.22l0.28,0.24l3.0,0.09l0.61,1.25l0.28,0.17l0.93,-0.02l0.26,-0.16l1.06,-2.06l3.21,-2.03l1.3,-0.5l0.19,0.08l-1.75,1.62l0.05,0.48l1.85,1.12l0.27,0.02l1.65,-0.69l2.4,1.27l-2.69,1.79l-1.79,-0.27l-0.89,0.06l-0.22,-0.52l0.48,-1.26l-0.34,-0.4l-3.35,0.69l-0.22,0.18l-0.78,1.87l-1.07,1.47l-1.93,-0.13l-0.29,0.16l-0.65,1.29l0.16,0.42l1.69,0.64l0.48,1.91l-1.25,2.6l-1.64,-0.53l-1.18,-0.03Z\", \"name\": \"Uzbekistan\" }, \"MM\": { \"path\": \"M670.1,233.39l-1.46,1.11l-1.68,0.11l-0.26,0.19l-1.1,2.7l-0.95,0.42l-0.14,0.42l1.21,2.27l1.61,1.92l0.94,1.55l-0.82,1.99l-0.77,0.42l-0.13,0.39l0.64,1.35l1.62,1.97l0.26,1.32l-0.04,1.15l0.02,0.13l0.92,2.18l-1.3,2.23l-0.79,1.69l-0.1,-0.77l0.74,-1.87l-0.02,-0.26l-0.8,-1.42l0.2,-2.68l-0.06,-0.2l-0.98,-1.27l-0.8,-2.98l-0.45,-3.22l-1.11,-2.22l-0.45,-0.1l-1.64,1.28l-2.74,1.76l-1.26,-0.2l-1.27,-0.49l0.79,-2.93l0.0,-0.14l-0.52,-2.42l-1.93,-2.97l0.26,-0.8l-0.22,-0.39l-1.37,-0.31l-1.65,-1.98l-0.12,-1.5l0.41,0.19l0.42,-0.26l0.05,-1.7l1.08,-0.54l0.16,-0.34l-0.24,-1.0l0.5,-0.79l0.05,-0.15l0.08,-2.35l1.58,0.49l0.36,-0.15l1.12,-2.19l0.15,-1.34l1.35,-2.18l0.04,-0.17l-0.07,-1.35l2.97,-1.71l1.67,0.45l0.38,-0.33l-0.18,-1.46l0.7,-0.4l0.15,-0.32l-0.13,-0.72l0.94,-0.13l0.74,1.41l0.11,0.12l0.95,0.56l0.07,1.89l-0.09,2.08l-2.28,2.15l-0.09,0.19l-0.3,3.15l0.35,0.32l2.37,-0.39l0.53,2.17l0.2,0.21l1.3,0.42l-0.63,1.9l0.14,0.36l1.86,0.99l1.1,0.49l0.24,0.0l1.45,-0.6l0.04,0.51l-2.01,1.6l-0.56,0.96l-1.34,0.56Z\", \"name\": \"Myanmar\" }, \"ML\": { \"path\": \"M390.79,248.2l0.67,-0.37l0.14,-0.18l0.36,-1.31l0.51,-0.04l1.68,0.69l0.21,0.0l1.34,-0.48l0.89,0.16l0.3,-0.13l0.29,-0.44l9.89,-0.04l0.29,-0.21l0.56,-1.8l-0.11,-0.33l-0.33,-0.24l-2.37,-22.1l3.41,-0.04l8.37,5.73l8.38,5.68l0.56,1.15l0.14,0.14l1.56,0.75l0.99,0.36l0.03,1.45l0.33,0.29l2.45,-0.22l0.01,5.52l-1.3,1.64l-0.06,0.15l-0.18,1.37l-1.99,0.36l-3.4,0.22l-0.19,0.09l-0.85,0.83l-1.48,0.09l-1.49,0.01l-0.54,-0.43l-0.26,-0.05l-1.38,0.36l-2.39,1.08l-0.13,0.12l-0.44,0.73l-1.88,1.11l-0.11,0.12l-0.3,0.57l-0.86,0.42l-1.1,-0.31l-0.28,0.07l-0.69,0.62l-0.09,0.16l-0.35,1.66l-1.93,2.04l-0.08,0.23l0.05,0.76l-0.63,0.99l-0.04,0.19l0.14,1.23l-0.81,0.29l-0.32,0.17l-0.27,-0.75l-0.39,-0.18l-0.65,0.26l-0.36,-0.04l-0.29,0.14l-0.37,0.6l-1.69,-0.02l-0.63,-0.34l-0.32,0.02l-0.12,0.09l-0.47,-0.45l0.1,-0.6l-0.09,-0.27l-0.31,-0.3l-0.33,-0.05l-0.05,0.02l0.02,-0.21l0.46,-0.59l-0.02,-0.39l-0.99,-1.02l-0.34,-0.74l-0.56,-0.56l-0.17,-0.09l-0.5,-0.07l-0.19,0.04l-0.58,0.35l-0.79,0.33l-0.65,0.51l-0.85,-0.16l-0.63,-0.59l-0.14,-0.07l-0.41,-0.08l-0.2,0.03l-0.59,0.31l-0.07,0.0l-0.1,-0.63l0.11,-0.85l-0.21,-0.98l-0.11,-0.17l-0.86,-0.66l-0.45,-1.34l-0.1,-1.36Z\", \"name\": \"Mali\" }, \"MN\": { \"path\": \"M641.06,150.59l2.41,-0.53l4.76,-2.8l3.67,-1.49l2.06,0.96l0.12,0.03l2.5,0.05l1.59,1.45l0.19,0.08l2.47,0.12l3.59,0.81l0.27,-0.07l2.43,-2.28l0.06,-0.36l-0.93,-1.77l2.33,-3.1l2.66,1.3l2.26,0.39l2.75,0.8l0.44,2.3l0.19,0.22l3.56,1.38l0.18,0.01l2.35,-0.6l3.1,-0.42l2.4,0.41l2.37,1.52l1.49,1.63l0.23,0.1l2.29,-0.03l3.13,0.52l0.15,-0.01l2.28,-0.79l3.27,-0.53l0.11,-0.04l3.56,-2.23l1.31,0.31l1.26,1.05l0.22,0.07l2.45,-0.22l-0.98,1.96l-1.77,3.21l-0.01,0.28l0.64,1.31l0.35,0.16l1.35,-0.38l2.4,0.48l0.22,-0.04l1.78,-1.09l1.82,0.92l2.11,2.07l-0.17,0.68l-1.79,-0.31l-3.74,0.45l-1.85,0.96l-1.78,2.01l-3.74,1.18l-2.46,1.61l-2.45,-0.6l-1.42,-0.28l-0.31,0.13l-1.31,1.99l0.0,0.33l0.78,1.15l0.3,0.74l-1.58,0.93l-1.75,1.59l-2.83,1.03l-3.77,0.12l-4.05,1.05l-2.81,1.54l-0.95,-0.8l-0.19,-0.07l-2.96,0.0l-3.64,-1.8l-2.55,-0.48l-3.38,0.41l-5.13,-0.67l-2.66,0.06l-1.35,-1.65l-1.12,-2.78l-0.21,-0.18l-1.5,-0.33l-2.98,-1.89l-0.12,-0.04l-3.37,-0.43l-2.84,-0.51l-0.75,-1.13l0.93,-3.54l-0.04,-0.24l-1.73,-2.55l-0.15,-0.12l-3.52,-1.18l-1.99,-1.61l-0.54,-1.85Z\", \"name\": \"Mongolia\" }, \"MK\": { \"path\": \"M472.73,173.87l0.08,0.01l0.32,-0.25l0.08,-0.44l1.29,-0.41l1.37,-0.28l1.03,-0.04l1.06,0.82l0.14,1.59l-0.22,0.04l-0.17,0.11l-0.32,0.4l-1.2,-0.05l-0.18,0.05l-0.9,0.61l-1.45,0.23l-0.85,-0.59l-0.3,-1.09l0.22,-0.71Z\", \"name\": \"Macedonia\" }, \"MW\": { \"path\": \"M507.18,313.84l-0.67,1.85l-0.01,0.16l0.7,3.31l0.31,0.24l0.75,-0.03l0.78,0.71l0.99,1.75l0.2,3.03l-0.91,0.45l-0.14,0.15l-0.59,1.38l-1.24,-1.21l-0.17,-1.62l0.49,-1.12l0.02,-0.16l-0.15,-1.03l-0.13,-0.21l-0.99,-0.65l-0.26,-0.03l-0.53,0.18l-1.31,-1.12l-1.15,-0.59l0.66,-2.06l0.75,-0.84l0.07,-0.27l-0.47,-2.04l0.48,-1.94l0.4,-0.65l0.03,-0.24l-0.64,-2.15l-0.08,-0.13l-0.44,-0.42l1.34,0.26l1.25,1.73l0.67,3.3Z\", \"name\": \"Malawi\" }, \"MR\": { \"path\": \"M390.54,247.66l-1.48,-1.58l-1.51,-1.88l-0.12,-0.09l-1.64,-0.67l-1.17,-0.74l-0.17,-0.05l-1.4,0.03l-0.12,0.03l-1.14,0.52l-1.15,-0.21l-0.26,0.08l-0.44,0.43l-0.11,-0.72l0.68,-1.29l0.31,-2.43l-0.28,-2.63l-0.29,-1.27l0.24,-1.24l-0.03,-0.2l-0.65,-1.24l-1.19,-1.05l0.32,-0.51l9.64,0.02l0.3,-0.34l-0.46,-3.71l0.51,-1.12l2.17,-0.22l0.27,-0.3l-0.08,-6.5l7.91,0.13l0.31,-0.3l0.01,-3.5l8.17,5.63l-2.89,0.04l-0.29,0.33l2.42,22.56l0.12,0.21l0.26,0.19l-0.43,1.38l-9.83,0.04l-0.25,0.13l-0.27,0.41l-0.77,-0.14l-0.15,0.01l-1.3,0.47l-1.64,-0.67l-0.14,-0.02l-0.79,0.06l-0.27,0.22l-0.39,1.39l-0.53,0.29Z\", \"name\": \"Mauritania\" }, \"UG\": { \"path\": \"M500.74,287.17l-2.84,-0.02l-0.92,0.32l-1.37,0.71l-0.29,-0.12l0.02,-1.6l0.54,-0.89l0.04,-0.13l0.14,-1.96l0.49,-1.09l0.91,-1.24l0.97,-0.68l0.8,-0.89l-0.13,-0.49l-0.79,-0.27l0.13,-2.55l0.78,-0.52l1.45,0.51l0.18,0.01l1.97,-0.57l1.72,0.01l0.18,-0.06l1.29,-0.97l0.98,1.44l0.29,1.24l1.05,2.75l-0.84,1.68l-1.94,2.66l-0.06,0.18l0.02,2.36l-4.8,0.18Z\", \"name\": \"Uganda\" }, \"MY\": { \"path\": \"M717.6,273.52l-1.51,0.7l-2.13,-0.41l-2.88,-0.0l-0.29,0.21l-0.84,2.77l-0.9,0.82l-0.08,0.12l-1.23,3.34l-1.81,0.47l-2.29,-0.68l-0.14,-0.01l-1.2,0.22l-0.14,0.07l-1.36,1.18l-1.47,-0.17l-0.12,0.01l-1.46,0.46l-1.51,-1.25l-0.24,-0.97l1.26,0.59l0.2,0.02l1.93,-0.47l0.22,-0.22l0.47,-1.98l0.9,-0.4l2.97,-0.54l0.17,-0.09l1.8,-1.98l1.02,-1.32l0.9,1.03l0.48,-0.04l0.43,-0.7l1.02,0.07l0.32,-0.27l0.25,-2.72l1.84,-1.67l1.23,-1.89l0.73,-0.01l1.12,1.11l0.1,0.99l0.18,0.24l1.66,0.71l1.85,0.67l-0.09,0.51l-1.45,0.11l-0.26,0.4l0.35,0.97ZM673.78,269.53l0.17,1.14l0.35,0.25l1.65,-0.3l0.18,-0.11l0.68,-0.86l0.31,0.13l1.41,1.45l0.99,1.59l0.13,1.57l-0.26,1.09l0.0,0.15l0.24,0.84l0.18,1.46l0.11,0.2l0.82,0.64l0.92,2.08l-0.03,0.52l-1.4,0.13l-2.29,-1.79l-2.86,-1.92l-0.27,-1.16l-0.07,-0.13l-1.39,-1.61l-0.33,-1.99l-0.05,-0.12l-0.84,-1.27l0.26,-1.72l-0.03,-0.18l-0.45,-0.87l0.13,-0.13l1.71,0.92Z\", \"name\": \"Malaysia\" }, \"MX\": { \"path\": \"M133.41,213.83l0.61,0.09l0.27,-0.09l0.93,-1.01l0.08,-0.18l0.09,-1.22l-0.09,-0.23l-1.93,-1.94l-1.46,-0.77l-2.96,-5.62l-0.86,-2.1l2.44,-0.18l2.68,-0.25l-0.03,0.08l0.17,0.4l3.79,1.35l5.81,1.97l6.96,-0.02l0.3,-0.3l0.0,-0.84l3.91,0.0l0.87,0.93l1.27,0.87l1.44,1.17l0.79,1.37l0.62,1.49l0.12,0.14l1.35,0.85l2.08,0.82l0.35,-0.1l1.49,-2.04l1.81,-0.05l1.63,1.01l1.21,1.8l0.86,1.58l1.47,1.55l0.53,1.82l0.73,1.32l0.14,0.13l1.98,0.84l1.78,0.59l0.61,-0.03l-0.78,1.89l-0.45,1.96l-0.19,3.58l-0.24,1.27l0.01,0.14l0.43,1.43l0.78,1.31l0.49,1.98l0.06,0.12l1.63,1.9l0.61,1.51l0.98,1.28l0.16,0.11l2.58,0.67l0.98,1.02l0.31,0.08l2.17,-0.71l1.91,-0.26l1.87,-0.47l1.67,-0.49l1.59,-1.06l0.11,-0.14l0.6,-1.52l0.22,-2.21l0.35,-0.62l1.58,-0.64l2.59,-0.59l2.18,0.09l1.43,-0.2l0.39,0.36l-0.07,1.02l-1.28,1.48l-0.65,1.68l0.07,0.32l0.33,0.32l-0.79,2.49l-0.28,-0.3l-0.24,-0.09l-1.0,0.08l-0.24,0.15l-0.74,1.28l-0.19,-0.13l-0.28,-0.03l-0.3,0.12l-0.19,0.29l0.0,0.06l-4.34,-0.02l-0.3,0.3l-0.0,1.16l-0.83,0.0l-0.28,0.19l0.08,0.33l0.93,0.86l0.9,0.58l0.24,0.48l0.16,0.15l0.2,0.08l-0.03,0.38l-2.94,0.01l-0.26,0.15l-1.21,2.09l0.02,0.33l0.25,0.33l-0.21,0.44l-0.04,0.22l-2.42,-2.35l-1.36,-0.87l-2.04,-0.67l-0.13,-0.01l-1.4,0.19l-2.07,0.98l-1.14,0.23l-1.72,-0.66l-1.85,-0.48l-2.31,-1.16l-1.92,-0.38l-2.79,-1.18l-2.04,-1.2l-0.6,-0.66l-0.19,-0.1l-1.37,-0.15l-2.45,-0.78l-1.07,-1.18l-2.63,-1.44l-1.2,-1.56l-0.44,-0.93l0.5,-0.15l0.2,-0.39l-0.2,-0.58l0.46,-0.55l0.07,-0.19l0.01,-0.91l-0.06,-0.18l-0.81,-1.13l-0.25,-1.08l-0.86,-1.36l-2.21,-2.63l-2.53,-2.09l-1.2,-1.63l-0.11,-0.09l-2.08,-1.06l-0.34,-0.48l0.35,-1.53l-0.16,-0.34l-1.24,-0.61l-1.39,-1.23l-0.6,-1.81l-0.24,-0.2l-1.25,-0.2l-1.38,-1.35l-1.11,-1.25l-0.1,-0.76l-0.05,-0.13l-1.33,-2.04l-0.85,-2.02l0.04,-0.99l-0.14,-0.27l-1.81,-1.1l-0.2,-0.04l-0.74,0.11l-1.34,-0.72l-0.42,0.16l-0.4,1.12l-0.0,0.19l0.41,1.3l0.24,2.04l0.06,0.15l0.88,1.16l1.84,1.86l0.4,0.61l0.12,0.1l0.27,0.14l0.29,0.82l0.31,0.2l0.2,-0.02l0.43,1.51l0.09,0.14l0.72,0.65l0.51,0.91l1.58,1.4l0.8,2.42l0.77,1.23l0.66,1.19l0.13,1.34l0.28,0.27l1.08,0.08l0.92,1.1l0.83,1.08l-0.03,0.24l-0.88,0.81l-0.13,-0.0l-0.59,-1.42l-0.07,-0.11l-1.67,-1.53l-1.81,-1.28l-1.15,-0.61l0.07,-1.85l-0.38,-1.45l-0.12,-0.17l-2.91,-2.03l-0.39,0.04l-0.11,0.11l-0.42,-0.46l-0.11,-0.08l-1.49,-0.63l-1.09,-1.16Z\", \"name\": \"Mexico\" }, \"VU\": { \"path\": \"M839.92,325.66l0.78,0.73l-0.18,0.07l-0.6,-0.8ZM839.13,322.74l0.27,1.36l-0.13,-0.06l-0.21,-0.02l-0.29,0.08l-0.22,-0.43l-0.03,-1.32l0.61,0.4Z\", \"name\": \"Vanuatu\" }, \"FR\": { \"path\": \"M444.58,172.63l-0.68,1.92l-0.72,-0.38l-0.51,-1.79l0.43,-0.95l1.15,-0.83l0.33,2.04ZM429.71,147.03l1.77,1.57l0.26,0.07l1.16,-0.23l2.12,1.44l0.56,0.28l0.16,0.03l0.61,-0.06l1.09,0.78l0.13,0.05l3.18,0.53l-1.09,1.94l-0.3,2.16l-0.48,0.38l-1.0,-0.26l-0.37,0.32l0.07,0.66l-1.73,1.68l-0.09,0.21l-0.04,1.42l0.41,0.29l0.96,-0.4l0.67,1.07l-0.09,0.78l0.04,0.19l0.61,0.97l-0.71,0.78l-0.07,0.28l0.65,2.39l0.21,0.21l1.09,0.31l-0.2,0.95l-2.08,1.58l-4.81,-0.8l-0.13,0.01l-3.65,0.99l-0.22,0.24l-0.25,1.6l-2.59,0.35l-2.74,-1.33l-0.31,0.03l-0.79,0.57l-4.38,-1.31l-0.79,-0.94l1.16,-1.64l0.05,-0.15l0.48,-6.17l-0.06,-0.21l-2.58,-3.3l-1.89,-1.65l-0.11,-0.06l-3.64,-1.17l-0.2,-1.88l2.92,-0.63l4.14,0.82l0.35,-0.36l-0.65,-3.0l1.77,1.05l0.27,0.02l5.83,-2.54l0.17,-0.19l0.71,-2.54l1.75,-0.53l0.27,0.88l0.27,0.21l1.04,0.05l1.08,1.23ZM289.1,278.45l-0.85,0.84l-0.88,0.13l-0.25,-0.51l-0.21,-0.16l-0.56,-0.1l-0.25,0.07l-0.63,0.55l-0.62,-0.29l0.5,-0.88l0.21,-1.11l0.42,-1.05l-0.03,-0.28l-0.93,-1.42l-0.18,-1.54l1.13,-1.87l2.42,0.78l2.55,2.04l0.33,0.81l-1.4,2.16l-0.77,1.84Z\", \"name\": \"France\" }, \"FI\": { \"path\": \"M492.26,76.42l-0.38,3.12l0.12,0.28l3.6,2.69l-2.14,2.96l-0.01,0.33l2.83,4.61l-1.61,3.36l0.03,0.31l2.15,2.87l-0.96,2.44l0.1,0.35l3.51,2.55l-0.81,1.72l-2.28,2.19l-5.28,4.79l-4.51,0.31l-4.39,1.37l-3.87,0.75l-1.34,-1.89l-0.11,-0.09l-2.23,-1.14l0.53,-3.54l-0.01,-0.14l-1.17,-3.37l1.12,-2.13l2.23,-2.44l5.69,-4.33l1.65,-0.84l0.16,-0.31l-0.26,-1.73l-0.15,-0.22l-3.4,-1.91l-0.77,-1.47l-0.07,-6.45l-0.12,-0.24l-3.91,-2.94l-3.0,-1.92l0.97,-0.76l2.6,2.17l0.21,0.07l3.2,-0.21l2.63,1.03l0.3,-0.05l2.39,-1.94l0.09,-0.13l1.18,-3.12l3.63,-1.42l2.87,1.59l-0.98,2.87Z\", \"name\": \"Finland\" }, \"FJ\": { \"path\": \"M869.98,327.07l-1.31,0.44l-0.14,-0.41l0.96,-0.41l0.85,-0.17l1.43,-0.78l-0.16,0.65l-1.64,0.67ZM867.58,329.12l0.54,0.47l-0.31,1.0l-1.32,0.3l-1.13,-0.26l-0.17,-0.78l0.72,-0.66l0.98,0.27l0.25,-0.04l0.43,-0.29Z\", \"name\": \"Fiji\" }, \"FK\": { \"path\": \"M268.15,427.89l2.6,-1.73l1.98,0.77l0.31,-0.05l1.32,-1.17l1.58,1.18l-0.54,0.84l-3.1,0.92l-1.0,-1.04l-0.39,-0.04l-1.9,1.35l-0.86,-1.04Z\", \"name\": \"Falkland Islands\" }, \"NI\": { \"path\": \"M202.1,252.6l0.23,-0.0l0.12,-0.11l0.68,-0.09l0.22,-0.15l0.23,-0.43l0.2,-0.01l0.28,-0.31l-0.04,-0.97l0.29,-0.03l0.5,0.02l0.25,-0.11l0.37,-0.46l0.51,0.35l0.4,-0.06l0.23,-0.28l0.45,-0.29l0.87,-0.7l0.11,-0.21l0.02,-0.26l0.23,-0.12l0.25,-0.48l0.29,0.27l0.14,0.07l0.5,0.12l0.22,-0.03l0.48,-0.28l0.66,-0.02l0.87,-0.33l0.36,-0.32l0.21,0.01l-0.11,0.48l0.0,0.14l0.22,0.8l-0.54,0.85l-0.27,1.03l-0.09,1.18l0.14,0.72l0.05,0.95l-0.24,0.15l-0.13,0.19l-0.23,1.09l0.0,0.14l0.14,0.53l-0.42,0.53l-0.06,0.24l0.12,0.69l0.08,0.15l0.18,0.19l-0.26,0.23l-0.49,-0.11l-0.35,-0.44l-0.16,-0.1l-0.79,-0.21l-0.23,0.03l-0.45,0.26l-1.51,-0.62l-0.31,0.05l-0.17,0.15l-1.81,-1.62l-0.6,-0.9l-1.04,-0.79l-0.77,-0.71Z\", \"name\": \"Nicaragua\" }, \"NL\": { \"path\": \"M436.22,136.65l1.82,0.08l0.36,0.89l-0.6,2.96l-0.53,1.06l-1.32,0.0l-0.3,0.34l0.35,2.89l-0.83,-0.47l-1.56,-1.43l-0.29,-0.07l-2.26,0.67l-1.02,-0.15l0.68,-0.48l0.1,-0.12l2.14,-4.84l3.25,-1.35Z\", \"name\": \"Netherlands\" }, \"NO\": { \"path\": \"M491.45,67.31l7.06,3.0l-2.52,0.94l-0.11,0.49l2.43,2.49l-3.82,1.59l-1.48,0.3l0.89,-2.61l-0.14,-0.36l-3.21,-1.78l-0.25,-0.02l-3.89,1.52l-0.17,0.17l-1.2,3.17l-2.19,1.78l-2.53,-0.99l-0.13,-0.02l-3.15,0.21l-2.69,-2.25l-0.38,-0.01l-1.43,1.11l-1.47,0.17l-0.26,0.26l-0.33,2.57l-4.42,-0.65l-0.33,0.22l-0.6,2.19l-2.17,-0.01l-0.27,0.16l-4.15,7.68l-3.88,5.76l-0.0,0.33l0.81,1.23l-0.7,1.27l-2.3,-0.06l-0.28,0.18l-1.63,3.72l-0.02,0.13l0.15,5.17l0.07,0.18l1.51,1.84l-0.79,4.24l-2.04,2.5l-0.92,1.75l-1.39,-1.88l-0.44,-0.05l-4.89,4.21l-3.16,0.81l-3.24,-1.74l-0.86,-3.82l-0.78,-8.6l2.18,-2.36l6.56,-3.28l5.0,-4.16l4.63,-5.74l5.99,-8.09l4.17,-3.23l6.84,-5.49l5.39,-1.92l4.06,0.24l0.23,-0.09l3.72,-3.67l4.51,0.19l4.4,-0.89ZM484.58,19.95l4.42,1.82l-3.25,2.68l-7.14,0.65l-7.16,-0.91l-0.39,-1.37l-0.28,-0.22l-3.48,-0.1l-2.25,-2.15l7.09,-1.48l3.55,1.36l0.28,-0.03l2.42,-1.66l6.18,1.41ZM481.99,33.92l-4.73,1.85l-3.76,-1.06l1.27,-1.02l0.04,-0.43l-1.18,-1.35l4.46,-0.94l0.89,1.83l0.17,0.15l2.83,0.96ZM466.5,23.95l7.64,3.87l-5.63,1.94l-0.19,0.19l-1.35,3.88l-2.08,0.96l-0.16,0.19l-1.14,4.18l-2.71,0.18l-4.94,-2.95l1.95,-1.63l-0.08,-0.51l-3.7,-1.54l-4.79,-4.54l-1.78,-4.01l6.29,-1.88l1.25,1.81l0.25,0.13l3.57,-0.08l0.26,-0.17l0.87,-1.79l3.41,-0.18l3.08,1.94Z\", \"name\": \"Norway\" }, \"NA\": { \"path\": \"M461.88,357.98l-1.61,-1.77l-0.94,-1.9l-0.54,-2.58l-0.62,-1.95l-0.83,-4.05l-0.06,-3.13l-0.33,-1.5l-0.07,-0.14l-0.95,-1.06l-1.27,-2.12l-1.3,-3.1l-0.59,-1.71l-1.98,-2.46l-0.13,-1.67l0.99,-0.4l1.44,-0.42l1.48,0.07l1.42,1.11l0.31,0.03l0.32,-0.15l9.99,-0.11l1.66,1.18l0.16,0.06l6.06,0.37l4.69,-1.06l2.01,-0.57l1.5,0.14l0.63,0.37l-1.0,0.41l-0.7,0.01l-0.16,0.05l-1.38,0.88l-0.79,-0.88l-0.29,-0.09l-3.83,0.9l-1.84,0.08l-0.29,0.3l-0.07,8.99l-2.18,0.08l-0.29,0.3l-0.0,17.47l-2.04,1.27l-1.21,0.18l-1.51,-0.49l-0.99,-0.18l-0.36,-1.0l-0.1,-0.14l-0.99,-0.74l-0.4,0.04l-0.98,1.09Z\", \"name\": \"Namibia\" }, \"NC\": { \"path\": \"M835.87,338.68l2.06,1.63l1.01,0.94l-0.49,0.32l-1.21,-0.62l-1.76,-1.16l-1.58,-1.36l-1.61,-1.79l-0.16,-0.41l0.54,0.02l1.32,0.83l1.08,0.87l0.79,0.73Z\", \"name\": \"New Caledonia\" }, \"NE\": { \"path\": \"M426.67,254.17l0.03,-1.04l-0.24,-0.3l-2.66,-0.53l-0.06,-1.0l-0.07,-0.17l-1.37,-1.62l-0.3,-1.04l0.15,-0.94l1.37,-0.09l0.19,-0.09l0.85,-0.83l3.34,-0.22l2.22,-0.41l0.24,-0.26l0.2,-1.5l1.32,-1.65l0.07,-0.19l-0.01,-5.74l3.4,-1.13l7.24,-5.12l8.46,-4.95l3.76,1.08l1.35,1.39l0.36,0.05l1.39,-0.77l0.55,3.66l0.12,0.2l0.82,0.6l0.03,0.69l0.1,0.21l0.87,0.74l-0.47,0.99l-0.96,5.26l-0.13,3.25l-3.08,2.34l-0.1,0.15l-1.08,3.37l0.08,0.31l0.94,0.86l-0.01,1.51l0.29,0.3l1.25,0.05l-0.14,0.66l-0.51,0.11l-0.24,0.26l-0.06,0.57l-0.04,0.0l-1.59,-2.62l-0.21,-0.14l-0.59,-0.1l-0.23,0.05l-1.83,1.33l-1.79,-0.68l-1.42,-0.17l-0.17,0.03l-0.65,0.32l-1.39,-0.07l-0.19,0.06l-1.4,1.03l-1.12,0.05l-2.97,-1.29l-0.26,0.01l-1.12,0.59l-1.08,-0.04l-0.85,-0.88l-0.11,-0.07l-2.51,-0.95l-0.14,-0.02l-2.69,0.3l-0.16,0.07l-0.65,0.55l-0.1,0.16l-0.34,1.41l-0.69,0.98l-0.05,0.15l-0.13,1.72l-1.47,-1.13l-0.18,-0.06l-0.9,0.01l-0.2,0.08l-0.32,0.28Z\", \"name\": \"Niger\" }, \"NG\": { \"path\": \"M442.0,272.7l-2.4,0.83l-0.88,-0.12l-0.19,0.04l-0.89,0.52l-1.78,-0.05l-1.23,-1.44l-0.88,-1.87l-1.77,-1.66l-0.21,-0.08l-3.78,0.03l0.13,-3.75l-0.06,-1.58l0.44,-1.47l0.74,-0.75l1.21,-1.56l0.04,-0.29l-0.22,-0.56l0.44,-0.9l0.01,-0.24l-0.54,-1.44l0.26,-2.97l0.72,-1.06l0.33,-1.37l0.51,-0.43l2.53,-0.28l2.38,0.9l0.89,0.91l0.2,0.09l1.28,0.04l0.15,-0.03l1.06,-0.56l2.9,1.26l0.13,0.02l1.28,-0.06l0.16,-0.06l1.39,-1.02l1.36,0.07l0.15,-0.03l0.64,-0.32l1.22,0.13l1.9,0.73l0.28,-0.04l1.86,-1.35l0.33,0.06l1.62,2.67l0.29,0.14l0.32,-0.04l0.73,0.74l-0.19,0.37l-0.12,0.74l-2.03,1.89l-0.07,0.11l-0.66,1.62l-0.35,1.28l-0.48,0.51l-0.07,0.12l-0.48,1.67l-1.26,0.98l-0.1,0.15l-0.38,1.24l-0.58,1.07l-0.2,0.91l-1.43,0.7l-1.26,-0.93l-0.19,-0.06l-0.95,0.04l-0.2,0.09l-1.41,1.39l-0.61,0.02l-0.26,0.17l-1.19,2.42l-0.61,1.67Z\", \"name\": \"Nigeria\" }, \"NZ\": { \"path\": \"M857.9,379.62l1.85,3.1l0.33,0.14l0.22,-0.28l0.04,-1.41l0.57,0.4l0.35,2.06l0.17,0.22l2.02,0.94l1.78,0.26l0.22,-0.06l1.31,-1.01l0.84,0.22l-0.53,2.27l-0.67,1.5l-1.71,-0.05l-0.25,0.12l-0.67,0.89l-0.05,0.23l0.21,1.15l-0.31,0.46l-2.15,3.57l-1.6,0.99l-0.28,-0.51l-0.15,-0.13l-0.72,-0.3l1.27,-2.15l0.01,-0.29l-0.82,-1.63l-0.15,-0.14l-2.5,-1.09l0.05,-0.69l1.67,-0.94l0.15,-0.21l0.42,-2.24l-0.11,-1.95l-0.03,-0.12l-0.97,-1.85l0.05,-0.41l-0.09,-0.25l-1.18,-1.17l-1.94,-2.49l-0.86,-1.64l0.38,-0.09l1.24,1.43l0.12,0.08l1.81,0.68l0.67,2.39ZM853.93,393.55l0.57,1.24l0.44,0.12l1.51,-1.03l0.52,0.91l0.0,1.09l-0.88,1.31l-1.62,2.2l-1.26,1.2l-0.05,0.38l0.64,1.02l-1.4,0.03l-0.14,0.04l-2.14,1.16l-0.14,0.17l-0.67,2.0l-1.38,3.06l-3.07,2.19l-2.12,-0.06l-1.55,-0.99l-0.14,-0.05l-2.53,-0.2l-0.31,-0.84l1.25,-2.15l3.07,-2.97l1.62,-0.59l1.81,-1.17l2.18,-1.63l1.55,-1.65l1.08,-2.18l0.9,-0.72l0.11,-0.17l0.35,-1.56l1.37,-1.07l0.4,0.91Z\", \"name\": \"New Zealand\" }, \"NP\": { \"path\": \"M641.26,213.53l-0.14,0.95l0.32,1.64l-0.21,0.78l-1.83,0.04l-2.98,-0.62l-1.86,-0.25l-1.37,-1.3l-0.18,-0.08l-3.38,-0.34l-3.21,-1.49l-2.38,-1.34l-2.16,-0.92l0.84,-2.2l1.51,-1.18l0.89,-0.57l1.83,0.77l2.5,1.76l1.39,0.41l0.78,1.21l0.17,0.13l1.91,0.53l2.0,1.17l2.92,0.66l2.63,0.24Z\", \"name\": \"Nepal\" }, \"CI\": { \"path\": \"M413.53,272.08l-0.83,0.02l-1.79,-0.49l-1.64,0.03l-3.04,0.46l-1.73,0.72l-2.4,0.89l-0.12,-0.02l0.16,-1.7l0.19,-0.25l0.06,-0.2l-0.08,-0.99l-0.09,-0.19l-1.06,-1.05l-0.15,-0.08l-0.71,-0.15l-0.51,-0.48l0.45,-0.92l0.02,-0.19l-0.24,-1.16l0.07,-0.43l0.14,-0.0l0.3,-0.26l0.15,-1.1l-0.02,-0.15l-0.13,-0.34l0.09,-0.13l0.83,-0.27l0.19,-0.37l-0.62,-2.02l-0.55,-1.0l0.14,-0.59l0.35,-0.14l0.24,-0.16l0.53,0.29l0.14,0.04l1.93,0.02l0.26,-0.14l0.36,-0.58l0.39,0.01l0.43,-0.17l0.28,0.79l0.43,0.16l0.56,-0.31l0.89,-0.32l0.92,0.45l0.39,0.75l0.14,0.13l1.13,0.53l0.3,-0.03l0.81,-0.59l1.02,-0.08l1.49,0.57l0.62,3.33l-1.03,2.09l-0.65,2.84l0.02,0.2l1.05,2.08l-0.07,0.64Z\", \"name\": \"Ivory Coast\" }, \"CH\": { \"path\": \"M444.71,156.27l0.05,0.3l-0.34,0.69l0.13,0.4l1.13,0.58l1.07,0.1l-0.12,0.81l-0.87,0.42l-1.75,-0.37l-0.34,0.18l-0.47,1.1l-0.86,0.07l-0.33,-0.38l-0.41,-0.04l-1.34,1.01l-1.02,0.13l-0.93,-0.58l-0.82,-1.32l-0.37,-0.12l-0.77,0.32l0.02,-0.84l1.74,-1.69l0.09,-0.25l-0.04,-0.38l0.73,0.19l0.26,-0.06l0.6,-0.48l2.02,0.02l0.24,-0.12l0.38,-0.51l2.31,0.84Z\", \"name\": \"Switzerland\" }, \"CO\": { \"path\": \"M232.24,284.95l-0.94,-0.52l-1.22,-0.82l-0.31,-0.01l-0.62,0.35l-1.88,-0.31l-0.54,-0.95l-0.29,-0.15l-0.37,0.03l-2.34,-1.33l-0.15,-0.35l0.57,-0.11l0.24,-0.32l-0.1,-1.15l0.46,-0.71l1.11,-0.15l0.21,-0.13l1.05,-1.57l0.95,-1.31l-0.08,-0.43l-0.73,-0.47l0.4,-1.24l0.01,-0.16l-0.53,-2.15l0.44,-0.54l0.06,-0.24l-0.4,-2.13l-0.06,-0.13l-0.93,-1.22l0.21,-0.8l0.52,0.12l0.32,-0.13l0.47,-0.75l0.03,-0.27l-0.52,-1.32l0.09,-0.11l1.14,0.07l0.22,-0.08l1.82,-1.71l0.96,-0.25l0.22,-0.28l0.02,-0.81l0.43,-2.01l1.28,-1.04l1.48,-0.05l0.27,-0.19l0.12,-0.31l1.73,0.19l0.2,-0.05l1.96,-1.28l0.97,-0.56l1.16,-1.16l0.64,0.11l0.43,0.44l-0.31,0.55l-1.49,0.39l-0.19,0.16l-0.6,1.2l-0.97,0.74l-0.73,0.94l-0.06,0.13l-0.3,1.76l-0.68,1.44l0.23,0.43l1.1,0.14l0.27,0.97l0.08,0.13l0.49,0.49l0.17,0.85l-0.27,0.86l-0.01,0.14l0.09,0.53l0.2,0.23l0.52,0.18l0.54,0.79l0.27,0.13l3.18,-0.24l1.31,0.29l1.7,2.08l0.31,0.1l0.96,-0.26l1.75,0.13l1.41,-0.27l0.56,0.27l-0.36,1.07l-0.54,0.81l-0.05,0.13l-0.2,1.8l0.51,1.79l0.07,0.12l0.65,0.68l0.05,0.32l-1.16,1.14l0.05,0.47l0.86,0.52l0.6,0.79l0.31,1.01l-0.7,-0.81l-0.44,-0.01l-0.74,0.77l-4.75,-0.05l-0.3,0.31l0.03,1.57l0.25,0.29l1.2,0.21l-0.02,0.24l-0.1,-0.05l-0.22,-0.02l-1.41,0.41l-0.22,0.29l-0.01,1.82l0.11,0.23l1.04,0.85l0.35,1.3l-0.06,1.02l-1.02,6.26l-0.84,-0.89l-0.19,-0.09l-0.25,-0.02l1.35,-2.13l-0.1,-0.42l-1.92,-1.17l-0.2,-0.04l-1.41,0.2l-0.82,-0.39l-0.26,0.0l-1.29,0.62l-1.63,-0.27l-1.4,-2.5l-0.12,-0.12l-1.1,-0.61l-0.83,-1.2l-1.67,-1.19l-0.27,-0.04l-0.54,0.19Z\", \"name\": \"Colombia\" }, \"CN\": { \"path\": \"M740.32,148.94l0.22,0.21l4.3,1.03l2.84,2.2l0.99,2.92l0.28,0.2l3.8,0.0l0.15,-0.04l2.13,-1.24l3.5,-0.8l-1.05,2.29l-0.95,1.13l-0.06,0.12l-0.85,3.41l-1.56,2.81l-2.83,-0.51l-0.19,0.03l-2.15,1.09l-0.15,0.34l0.65,2.59l-0.33,3.3l-1.03,0.07l-0.28,0.3l0.01,0.75l-1.09,-1.2l-0.48,0.05l-0.94,1.6l-3.76,1.26l-0.2,0.36l0.29,1.19l-1.67,-0.08l-1.11,-0.88l-0.42,0.05l-1.69,2.08l-2.71,1.57l-2.04,1.88l-3.42,0.84l-0.11,0.05l-1.8,1.34l-1.54,0.46l0.52,-0.53l0.06,-0.33l-0.44,-0.96l1.84,-1.84l0.02,-0.41l-1.32,-1.56l-0.36,-0.08l-2.23,1.08l-2.83,2.06l-1.52,1.85l-2.32,0.13l-0.2,0.09l-1.28,1.37l-0.03,0.37l1.32,1.97l0.18,0.13l1.83,0.43l0.07,1.08l0.18,0.26l1.98,0.84l0.3,-0.03l2.66,-1.96l2.06,1.04l0.12,0.03l1.4,0.07l0.27,1.0l-3.24,0.73l-0.17,0.11l-1.13,1.5l-2.38,1.4l-0.1,0.1l-1.29,1.99l0.1,0.42l2.6,1.5l0.97,2.72l1.52,2.56l1.66,2.08l-0.03,1.76l-1.4,0.67l-0.15,0.38l0.6,1.47l0.13,0.15l1.29,0.75l-0.35,2.0l-0.58,1.96l-1.22,0.21l-0.2,0.14l-1.83,2.93l-2.02,3.51l-2.29,3.13l-3.4,2.42l-3.42,2.18l-2.75,0.3l-0.15,0.06l-1.32,1.01l-0.68,-0.67l-0.41,-0.01l-1.37,1.27l-3.42,1.28l-2.62,0.4l-0.24,0.21l-0.8,2.57l-0.95,0.11l-0.53,-1.54l0.52,-0.89l-0.19,-0.44l-3.36,-0.84l-0.17,0.01l-1.09,0.4l-2.36,-0.64l-1.0,-0.9l0.35,-1.34l-0.23,-0.37l-2.22,-0.47l-1.15,-0.94l-0.36,-0.02l-2.08,1.37l-2.35,0.29l-1.98,-0.01l-0.13,0.03l-1.32,0.63l-1.28,0.38l-0.21,0.33l0.33,2.65l-0.78,-0.04l-0.14,-0.39l-0.07,-1.04l-0.41,-0.26l-1.72,0.71l-0.96,-0.43l-1.63,-0.86l0.65,-1.95l-0.19,-0.38l-1.43,-0.46l-0.56,-2.27l-0.34,-0.22l-2.26,0.38l0.25,-2.65l2.29,-2.15l0.09,-0.2l0.1,-2.21l-0.07,-2.09l-0.15,-0.25l-1.02,-0.6l-0.8,-1.52l-0.31,-0.16l-1.42,0.2l-2.16,-0.32l0.55,-0.74l0.01,-0.35l-1.17,-1.7l-0.41,-0.08l-1.67,1.07l-1.97,-0.63l-0.25,0.03l-2.89,1.73l-2.26,1.99l-1.82,0.3l-1.0,-0.66l-0.15,-0.05l-1.28,-0.06l-1.75,-0.61l-0.24,0.02l-1.35,0.69l-0.1,0.08l-1.2,1.45l-0.14,-1.41l-0.4,-0.25l-1.46,0.55l-2.83,-0.26l-2.77,-0.61l-1.99,-1.17l-1.91,-0.54l-0.78,-1.21l-0.17,-0.13l-1.36,-0.38l-2.54,-1.79l-2.01,-0.84l-0.28,0.02l-0.89,0.56l-3.31,-1.83l-2.35,-1.67l-0.57,-2.49l1.34,0.28l0.36,-0.28l0.08,-1.42l-0.05,-0.19l-0.93,-1.34l0.24,-2.18l-0.07,-0.22l-2.69,-3.32l-0.15,-0.1l-3.97,-1.11l-0.69,-2.05l-0.11,-0.15l-1.79,-1.3l-0.39,-0.73l-0.36,-1.57l0.08,-1.09l-0.18,-0.3l-1.52,-0.66l-0.22,-0.01l-0.51,0.18l-0.52,-2.21l0.59,-0.55l0.06,-0.35l-0.22,-0.44l2.12,-1.24l1.63,-0.55l2.58,0.39l0.31,-0.16l0.87,-1.75l3.05,-0.34l0.21,-0.12l0.84,-1.12l3.87,-1.59l0.15,-0.14l0.35,-0.68l0.03,-0.17l-0.17,-1.51l1.52,-0.7l0.15,-0.39l-2.12,-5.0l4.62,-1.15l1.35,-0.72l0.14,-0.17l1.72,-5.37l4.7,0.99l0.28,-0.08l1.39,-1.43l0.08,-0.2l0.11,-2.95l1.83,-0.26l0.18,-0.1l1.85,-2.08l0.61,-0.17l0.57,1.97l0.1,0.15l2.2,1.75l3.48,1.17l1.59,2.36l-0.93,3.53l0.04,0.24l0.9,1.35l0.2,0.13l2.98,0.53l3.32,0.43l2.97,1.89l1.49,0.35l1.08,2.67l1.52,1.88l0.24,0.11l2.74,-0.07l5.15,0.67l3.36,-0.41l2.39,0.43l3.67,1.81l0.13,0.03l2.92,-0.0l1.02,0.86l0.34,0.03l2.88,-1.59l3.98,-1.03l3.81,-0.13l3.02,-1.12l1.77,-1.61l1.73,-1.01l0.13,-0.37l-0.41,-1.01l-0.72,-1.07l1.09,-1.66l1.21,0.24l2.57,0.63l0.24,-0.04l2.46,-1.62l3.78,-1.19l0.13,-0.09l1.8,-2.03l1.66,-0.84l3.54,-0.41l1.93,0.35l0.34,-0.22l0.27,-1.12l-0.08,-0.29l-2.27,-2.22l-2.08,-1.07l-0.29,0.01l-1.82,1.12l-2.36,-0.47l-0.14,0.01l-1.18,0.34l-0.46,-0.94l1.69,-3.08l1.1,-2.21l2.75,1.12l0.26,-0.02l3.53,-2.06l0.15,-0.26l-0.02,-1.35l2.18,-3.39l1.35,-1.04l0.12,-0.24l-0.03,-1.85l-0.15,-0.25l-1.0,-0.58l1.68,-1.37l3.01,-0.59l3.25,-0.09l3.67,0.99l2.08,1.18l1.51,3.3l0.95,1.45l0.85,1.99l0.92,3.19ZM697.0,237.37l-1.95,1.12l-1.74,-0.68l-0.06,-1.9l1.08,-1.03l2.62,-0.7l1.23,0.05l0.37,0.65l-1.01,1.08l-0.54,1.4Z\", \"name\": \"China\" }, \"CM\": { \"path\": \"M453.76,278.92l-0.26,-0.11l-0.18,-0.02l-1.42,0.31l-1.56,-0.33l-1.17,0.16l-3.7,-0.05l0.3,-1.63l-0.04,-0.21l-0.98,-1.66l-0.15,-0.13l-1.03,-0.38l-0.46,-1.01l-0.13,-0.14l-0.48,-0.27l0.02,-0.46l0.62,-1.72l1.1,-2.25l0.54,-0.02l0.2,-0.09l1.41,-1.39l0.73,-0.03l1.32,0.97l0.31,0.03l1.72,-0.85l0.16,-0.2l0.22,-1.0l0.57,-1.03l0.36,-1.18l1.26,-0.98l0.1,-0.15l0.49,-1.7l0.48,-0.51l0.07,-0.13l0.35,-1.3l0.63,-1.54l2.06,-1.92l0.09,-0.17l0.12,-0.79l0.24,-0.41l-0.04,-0.36l-0.89,-0.91l0.04,-0.45l0.28,-0.06l0.85,1.39l0.16,1.59l-0.09,1.66l0.04,0.17l1.09,1.84l-0.86,-0.02l-0.72,0.17l-1.07,-0.24l-0.34,0.17l-0.54,1.19l0.06,0.34l1.48,1.47l1.06,0.44l0.32,0.94l0.73,1.6l-0.32,0.57l-1.23,2.49l-0.54,0.41l-0.12,0.21l-0.19,1.95l0.24,1.08l-0.18,0.67l0.07,0.28l1.13,1.25l0.24,0.93l0.92,1.29l1.1,0.8l0.1,1.01l0.26,0.73l-0.12,0.93l-1.65,-0.49l-2.02,-0.66l-3.19,-0.11Z\", \"name\": \"Cameroon\" }, \"CL\": { \"path\": \"M246.8,429.1l-1.14,0.78l-2.25,1.21l-0.16,0.23l-0.37,2.94l-0.75,0.06l-2.72,-1.07l-2.83,-2.34l-3.06,-1.9l-0.71,-1.92l0.67,-1.84l-0.02,-0.25l-1.22,-2.13l-0.31,-5.41l1.02,-2.95l2.59,-2.4l-0.13,-0.51l-3.32,-0.8l2.06,-2.4l0.07,-0.15l0.79,-4.77l2.44,0.95l0.4,-0.22l1.31,-6.31l-0.16,-0.33l-1.68,-0.8l-0.42,0.21l-0.72,3.47l-1.01,-0.27l0.74,-4.06l0.85,-5.46l1.12,-1.96l0.03,-0.22l-0.71,-2.82l-0.19,-2.94l0.76,-0.07l0.26,-0.2l1.53,-4.62l1.73,-4.52l1.07,-4.2l-0.56,-4.2l0.73,-2.2l0.01,-0.12l-0.29,-3.3l1.46,-3.34l0.45,-5.19l0.8,-5.52l0.78,-5.89l-0.18,-4.33l-0.49,-3.47l1.1,-0.56l0.13,-0.13l0.44,-0.88l0.9,1.29l0.32,1.8l0.1,0.18l1.16,0.97l-0.73,2.33l0.01,0.21l1.33,2.91l0.97,3.6l0.35,0.22l1.57,-0.31l0.16,0.34l-0.79,2.51l-2.61,1.25l-0.17,0.28l0.08,4.36l-0.48,0.79l0.01,0.33l0.6,0.84l-1.62,1.55l-1.67,2.6l-0.89,2.47l-0.02,0.13l0.23,2.56l-1.5,2.76l-0.03,0.21l1.15,4.8l0.11,0.17l0.54,0.42l-0.01,2.37l-1.4,2.7l-0.03,0.15l0.06,2.25l-1.8,1.78l-0.09,0.21l0.02,2.73l0.71,2.63l-1.33,0.94l-0.12,0.17l-0.67,2.64l-0.59,3.03l0.4,3.55l-0.84,0.51l-0.14,0.31l0.58,3.5l0.08,0.16l0.96,0.99l-0.7,1.08l0.11,0.43l1.04,0.55l0.19,0.8l-0.89,0.48l-0.16,0.31l0.26,1.77l-0.89,4.06l-1.31,2.67l-0.03,0.19l0.28,1.53l-0.73,1.88l-1.85,1.37l-0.12,0.26l0.22,3.46l0.06,0.16l0.88,1.19l0.28,0.12l1.32,-0.17l-0.04,2.13l0.04,0.15l1.04,1.95l0.24,0.16l5.94,0.44ZM248.79,430.71l0.0,7.41l0.3,0.3l2.67,0.0l1.01,0.06l-0.54,0.91l-1.99,1.01l-1.13,-0.1l-1.42,-0.27l-1.87,-1.06l-2.57,-0.49l-3.09,-1.9l-2.52,-1.83l-2.65,-2.93l0.93,0.32l3.54,2.29l3.32,1.23l0.34,-0.09l1.29,-1.57l0.83,-2.32l2.11,-1.28l1.43,0.32Z\", \"name\": \"Chile\" }, \"CA\": { \"path\": \"M280.14,145.66l-1.66,2.88l0.06,0.37l0.37,0.03l1.5,-1.01l1.17,0.49l-0.64,0.83l0.13,0.46l2.22,0.89l0.28,-0.03l1.02,-0.7l2.09,0.83l-0.69,2.1l0.37,0.38l1.43,-0.45l0.27,1.43l0.74,1.88l-0.95,2.5l-0.88,0.09l-1.34,-0.48l0.49,-2.34l-0.14,-0.32l-0.7,-0.4l-0.36,0.04l-2.81,2.66l-0.63,-0.05l1.2,-1.01l-0.1,-0.52l-2.4,-0.77l-2.79,0.18l-4.65,-0.09l-0.22,-0.54l1.37,-0.99l0.01,-0.48l-0.82,-0.65l1.91,-1.79l2.57,-5.17l1.49,-1.81l2.04,-1.07l0.63,0.08l-0.27,0.51l-1.33,2.07ZM193.92,74.85l-0.01,4.24l0.19,0.28l0.33,-0.07l3.14,-3.22l2.65,2.5l-0.71,3.04l0.06,0.26l2.42,2.88l0.46,0.0l2.66,-3.14l1.83,-3.74l0.03,-0.12l0.13,-4.53l3.23,0.31l3.63,0.64l3.18,2.08l0.13,1.91l-1.79,2.22l-0.0,0.37l1.69,2.2l-0.28,1.8l-4.74,2.84l-3.33,0.62l-2.5,-1.21l-0.41,0.17l-0.73,2.05l-2.39,3.44l-0.74,1.78l-2.78,2.61l-3.48,0.26l-0.17,0.07l-1.98,1.68l-0.1,0.21l-0.15,2.33l-2.68,0.45l-0.17,0.09l-3.1,3.2l-2.75,4.38l-0.99,3.06l-0.14,4.31l0.25,0.31l3.5,0.58l1.07,3.24l1.18,2.76l0.34,0.18l3.43,-0.69l4.55,1.52l2.45,1.32l1.76,1.65l0.12,0.07l3.11,0.96l2.63,1.46l0.13,0.04l4.12,0.2l2.41,0.3l-0.36,2.81l0.8,3.51l1.81,3.78l0.08,0.1l3.73,3.17l0.34,0.03l1.93,-1.08l0.13,-0.15l1.35,-3.44l0.01,-0.18l-1.31,-5.38l-0.08,-0.14l-1.46,-1.5l3.68,-1.51l2.84,-2.46l1.45,-2.55l0.04,-0.17l-0.2,-2.39l-0.04,-0.12l-1.7,-3.07l-2.9,-2.64l2.79,-3.66l0.05,-0.27l-1.08,-3.38l-0.8,-5.75l1.45,-0.75l4.18,1.03l2.6,0.38l0.18,-0.03l1.93,-0.95l2.18,1.23l3.01,2.18l0.73,1.42l0.25,0.16l4.18,0.27l-0.06,2.95l0.83,4.7l0.22,0.24l2.19,0.55l1.75,2.08l0.38,0.07l3.63,-2.03l0.11,-0.11l2.38,-4.06l1.36,-1.43l1.76,3.01l3.26,4.68l2.68,4.19l-0.94,2.09l0.12,0.38l3.31,1.98l2.23,1.98l0.13,0.07l3.94,0.89l1.48,1.02l0.96,2.82l0.22,0.2l1.85,0.43l0.88,1.13l0.17,3.53l-1.68,1.16l-1.76,1.14l-4.08,1.17l-0.11,0.06l-3.08,2.65l-4.11,0.52l-5.35,-0.69l-3.76,-0.02l-2.62,0.23l-0.2,0.1l-2.05,2.29l-3.13,1.41l-0.11,0.08l-3.6,4.24l-2.87,2.92l-0.05,0.36l0.33,0.14l2.13,-0.52l0.15,-0.08l3.98,-4.15l5.16,-2.63l3.58,-0.31l1.82,1.3l-2.09,1.91l-0.09,0.29l0.8,3.46l0.82,2.37l0.15,0.17l3.25,1.56l0.16,0.03l4.14,-0.45l0.21,-0.12l2.03,-2.86l0.11,1.46l0.13,0.22l1.26,0.88l-2.7,1.78l-5.51,1.83l-2.52,1.26l-2.75,2.16l-1.52,-0.18l-0.08,-2.16l4.19,-2.47l0.14,-0.34l-0.3,-0.22l-4.01,0.1l-2.66,0.36l-1.45,-1.56l0.0,-4.16l-0.11,-0.23l-1.11,-0.91l-0.28,-0.05l-1.5,0.48l-0.7,-0.7l-0.45,0.02l-1.91,2.39l-0.8,2.5l-0.82,1.31l-0.95,0.43l-0.77,0.15l-0.23,0.2l-0.18,0.56l-8.2,0.02l-0.13,0.03l-1.19,0.61l-2.95,2.45l-0.78,1.13l-4.6,0.01l-0.12,0.02l-1.13,0.48l-0.13,0.44l0.37,0.55l0.2,0.82l-0.01,0.09l-3.1,1.42l-2.63,0.5l-2.84,1.57l-0.47,0.0l-0.72,-0.4l-0.18,-0.27l0.03,-0.15l0.52,-1.0l1.2,-1.71l0.73,-1.8l0.02,-0.17l-1.03,-5.47l-0.15,-0.21l-2.35,-1.32l0.16,-0.29l-0.05,-0.35l-0.37,-0.38l-0.22,-0.09l-0.56,0.0l-0.35,-0.34l-0.11,-0.65l-0.46,-0.2l-0.39,0.26l-0.2,-0.03l-0.11,-0.33l-0.48,-0.25l-0.21,-0.71l-0.15,-0.18l-3.97,-2.07l-4.8,-2.39l-0.25,-0.01l-2.19,0.89l-0.72,0.03l-3.04,-0.82l-0.14,-0.0l-1.94,0.4l-2.4,-0.98l-2.56,-0.51l-1.7,-0.19l-0.62,-0.44l-0.42,-1.67l-0.3,-0.23l-0.85,0.02l-0.29,0.3l-0.01,0.95l-69.26,-0.01l-4.77,-3.14l-1.78,-1.41l-4.51,-1.38l-1.3,-2.73l0.34,-1.96l-0.17,-0.33l-3.06,-1.37l-0.41,-2.58l-0.11,-0.18l-2.92,-2.4l-0.05,-1.53l1.32,-1.59l0.07,-0.2l-0.07,-2.21l-0.16,-0.26l-4.19,-2.22l-2.52,-4.02l-1.56,-2.6l-0.08,-0.09l-2.28,-1.64l-1.65,-1.48l-1.31,-1.89l-0.38,-0.1l-2.51,1.21l-2.28,1.92l-2.03,-2.22l-1.85,-1.71l-2.44,-1.04l-2.28,-0.12l0.03,-37.72l4.27,0.98l4.0,2.13l2.61,0.4l0.24,-0.07l2.17,-1.81l2.92,-1.33l3.63,0.53l0.18,-0.03l3.72,-1.94l3.89,-1.06l1.6,1.72l0.37,0.06l1.87,-1.04l0.14,-0.19l0.48,-1.83l1.37,0.38l4.18,3.96l0.41,0.0l2.89,-2.62l0.28,2.79l0.37,0.26l3.08,-0.73l0.17,-0.12l0.85,-1.16l2.81,0.24l3.83,1.86l5.86,1.61l3.46,0.75l2.44,-0.26l2.89,1.89l-3.12,1.89l-0.14,0.31l0.24,0.24l4.53,0.92l6.84,-0.5l2.04,-0.71l2.54,2.44l0.39,0.02l2.72,-2.16l-0.01,-0.48l-2.26,-1.61l1.27,-1.16l2.94,-0.19l1.94,-0.42l1.89,0.97l2.49,2.32l0.24,0.08l2.71,-0.33l4.35,1.9l0.17,0.02l3.86,-0.67l3.62,0.1l0.31,-0.33l-0.26,-2.44l1.9,-0.65l3.58,1.36l-0.01,3.84l0.23,0.29l0.34,-0.17l1.51,-3.23l1.81,0.1l0.31,-0.22l1.13,-4.37l-0.08,-0.29l-2.68,-2.73l-2.83,-1.76l0.19,-4.73l2.77,-3.15l3.06,0.69l2.44,1.97l3.24,4.88l-2.05,2.02l0.15,0.51l4.41,0.85ZM265.85,150.7l-0.84,0.04l-3.15,-0.99l-1.77,-1.17l0.19,-0.06l3.17,0.79l2.39,1.27l0.01,0.12ZM249.41,3.71l6.68,0.49l5.34,0.79l4.34,1.6l-0.08,1.24l-5.91,2.56l-6.03,1.21l-2.36,1.38l-0.14,0.34l0.29,0.22l4.37,-0.02l-4.96,3.01l-4.06,1.64l-0.11,0.08l-4.21,4.62l-5.07,0.92l-0.12,0.05l-1.53,1.1l-7.5,0.59l-0.28,0.28l0.24,0.31l2.67,0.54l-1.04,0.6l-0.09,0.44l1.89,2.49l-2.11,1.66l-3.83,1.52l-0.15,0.13l-1.14,2.01l-3.41,1.55l-0.16,0.36l0.35,1.19l0.3,0.22l3.98,-0.19l0.03,0.78l-6.42,2.99l-6.44,-1.41l-7.41,0.79l-3.72,-0.62l-4.48,-0.26l-0.25,-2.0l4.37,-1.13l0.21,-0.38l-1.14,-3.55l1.13,-0.28l6.61,2.29l0.35,-0.12l-0.04,-0.37l-3.41,-3.45l-0.14,-0.08l-3.57,-0.92l1.62,-1.7l4.36,-1.3l0.2,-0.18l0.71,-1.94l-0.12,-0.36l-3.45,-2.15l-0.88,-2.43l6.36,0.23l1.94,0.61l0.23,-0.02l3.91,-2.1l0.15,-0.32l-0.26,-0.24l-5.69,-0.67l-8.69,0.37l-4.3,-1.92l-2.12,-2.39l-2.82,-1.68l-0.44,-1.65l3.41,-1.06l2.93,-0.2l4.91,-0.99l3.69,-2.28l2.93,0.31l2.64,1.68l0.42,-0.1l1.84,-3.23l3.17,-0.96l4.45,-0.69l7.56,-0.26l1.26,0.64l0.18,0.03l7.2,-1.06l10.81,0.8ZM203.94,57.59l0.01,0.32l1.97,2.97l0.51,-0.01l2.26,-3.75l6.05,-1.89l4.08,4.72l-0.36,2.95l0.38,0.33l4.95,-1.36l0.11,-0.05l2.23,-1.77l5.37,2.31l3.32,2.14l0.3,1.89l0.36,0.25l4.48,-1.01l2.49,2.8l0.14,0.09l5.99,1.78l2.09,1.74l2.18,3.83l-4.29,1.91l-0.01,0.54l5.9,2.83l3.95,0.94l3.54,3.84l0.2,0.1l3.58,0.25l-0.67,2.51l-4.18,4.54l-2.84,-1.61l-3.91,-3.95l-0.26,-0.09l-3.24,0.52l-0.25,0.26l-0.32,2.37l0.1,0.26l2.63,2.38l3.42,1.89l0.96,1.0l1.57,3.8l-0.74,2.43l-2.85,-0.96l-6.26,-3.15l-0.38,0.09l0.04,0.39l3.54,3.4l2.55,2.31l0.23,0.78l-6.26,-1.43l-5.33,-2.25l-2.73,-1.73l0.67,-0.86l-0.09,-0.45l-7.38,-4.01l-0.44,0.27l0.03,0.89l-6.85,0.61l-1.8,-1.17l1.43,-2.6l4.56,-0.07l5.15,-0.52l0.23,-0.45l-0.76,-1.34l0.8,-1.89l3.21,-4.06l0.05,-0.29l-0.72,-1.95l-0.97,-1.47l-0.11,-0.1l-3.84,-2.1l-4.53,-1.33l1.09,-0.75l0.05,-0.45l-2.65,-2.75l-0.18,-0.09l-2.12,-0.24l-1.91,-1.47l-0.39,0.02l-1.27,1.25l-4.4,0.56l-9.06,-0.99l-5.28,-1.31l-4.01,-0.67l-1.72,-1.31l2.32,-1.85l0.1,-0.33l-0.28,-0.2l-3.3,-0.02l-0.74,-4.36l1.86,-4.09l2.46,-1.88l5.74,-1.15l-1.5,2.55ZM261.28,159.28l0.19,0.14l1.82,0.42l1.66,-0.05l-0.66,0.68l-0.75,0.16l-3.0,-1.25l-0.46,-0.77l0.51,-0.52l0.68,1.19ZM230.87,84.48l-2.48,0.19l-0.52,-1.74l0.96,-2.17l2.03,-0.53l1.71,1.04l0.02,1.6l-0.22,0.46l-1.5,1.16ZM229.52,58.19l0.14,0.82l-4.99,-0.22l-2.73,0.63l-0.59,-0.23l-2.61,-2.4l0.08,-1.38l0.94,-0.25l5.61,0.51l4.14,2.54ZM222.12,105.0l-0.79,1.63l-0.75,-0.22l-0.52,-0.91l0.04,-0.09l0.84,-1.01l0.74,0.06l0.44,0.55ZM183.77,38.22l2.72,1.65l0.16,0.04l4.83,-0.01l1.92,1.52l-0.51,1.75l0.18,0.36l2.84,1.14l1.56,1.19l0.16,0.06l3.37,0.22l3.65,0.42l4.07,-1.1l5.05,-0.43l3.96,0.35l2.53,1.8l0.48,1.79l-1.37,1.16l-3.6,1.03l-3.22,-0.59l-7.17,0.76l-5.1,0.09l-4.0,-0.6l-6.48,-1.56l-0.81,-2.57l-0.3,-2.49l-0.1,-0.19l-2.51,-2.25l-0.16,-0.07l-5.12,-0.63l-2.61,-1.45l0.75,-1.71l4.88,0.32ZM207.46,91.26l0.42,1.62l0.42,0.19l1.12,-0.55l1.35,0.99l2.74,1.39l2.73,1.2l0.2,1.74l0.35,0.26l1.72,-0.29l1.31,0.97l-1.72,0.96l-3.68,-0.9l-1.34,-1.71l-0.43,-0.04l-2.46,2.1l-3.23,1.85l-0.74,-1.98l-0.31,-0.19l-2.47,0.28l1.49,-1.34l0.1,-0.19l0.32,-3.15l0.79,-3.45l1.34,0.25ZM215.59,102.66l-2.73,2.0l-1.49,-0.08l-0.37,-0.7l1.61,-1.56l3.0,0.03l-0.02,0.3ZM202.79,24.07l0.11,0.12l2.54,1.53l-3.01,1.47l-4.55,4.07l-4.3,0.38l-5.07,-0.68l-2.51,-2.09l0.03,-1.72l1.86,-1.4l0.1,-0.34l-0.29,-0.2l-4.49,0.04l-2.63,-1.79l-1.45,-2.36l1.61,-2.38l1.65,-1.69l2.47,-0.4l0.19,-0.48l-0.72,-0.89l5.1,-0.26l3.1,3.05l0.13,0.07l4.21,1.25l3.99,1.06l1.92,3.65ZM187.5,59.3l-0.15,0.1l-2.59,3.4l-2.5,-0.15l-1.47,-3.92l0.04,-2.24l1.22,-1.92l2.34,-1.26l5.11,0.17l4.28,1.06l-3.36,3.86l-2.9,0.9ZM186.19,48.8l-1.15,1.63l-3.42,-0.35l-2.68,-1.15l1.11,-1.88l3.34,-1.27l2.01,1.63l0.79,1.38ZM185.78,35.41l-0.95,0.13l-4.48,-0.33l-0.4,-0.91l4.5,0.07l1.45,0.82l-0.1,0.21ZM180.76,32.56l-3.43,1.03l-1.85,-1.14l-1.01,-1.92l-0.16,-1.87l2.87,0.2l1.39,0.35l2.75,1.75l-0.55,1.6ZM181.03,76.32l-1.21,1.2l-3.19,-1.26l-0.18,-0.01l-1.92,0.45l-2.88,-1.67l1.84,-1.16l1.6,-1.77l2.45,1.17l1.45,0.77l2.05,2.28ZM169.72,54.76l2.83,0.97l0.14,0.01l4.25,-0.58l0.47,1.01l-2.19,2.16l0.07,0.48l3.61,1.95l-0.41,3.84l-3.87,1.68l-2.23,-0.36l-1.73,-1.75l-6.07,-3.53l0.03,-1.01l4.79,0.55l0.3,-0.16l-0.04,-0.34l-2.55,-2.89l2.59,-2.05ZM174.44,40.56l1.49,1.87l0.07,2.48l-1.07,3.52l-3.87,0.48l-2.41,-0.72l0.05,-2.72l-0.33,-0.3l-3.79,0.36l-0.13,-3.31l2.36,0.14l0.15,-0.03l3.7,-1.74l3.44,0.29l0.31,-0.22l0.03,-0.12ZM170.14,31.5l0.75,1.74l-3.52,-0.52l-4.19,-1.77l-4.65,-0.17l1.65,-1.11l-0.05,-0.52l-2.86,-1.26l-0.13,-1.58l4.52,0.7l6.66,1.99l1.84,2.5ZM134.64,58.08l-1.08,1.93l0.34,0.44l5.44,-1.41l3.37,2.32l0.37,-0.02l2.66,-2.28l2.03,1.38l2.01,4.53l0.53,0.04l1.26,-1.93l0.03,-0.27l-1.67,-4.55l1.82,-0.58l2.36,0.73l2.69,1.84l1.53,4.46l0.77,3.24l0.15,0.19l4.22,2.26l4.32,2.04l-0.21,1.51l-3.87,0.34l-0.19,0.5l1.45,1.54l-0.65,1.23l-4.3,-0.65l-4.4,-1.19l-2.97,0.28l-4.67,1.48l-6.31,0.65l-4.27,0.39l-1.26,-1.91l-0.15,-0.12l-3.42,-1.2l-0.16,-0.01l-2.05,0.45l-2.66,-3.02l1.2,-0.34l3.82,-0.76l3.58,0.19l3.27,-0.78l0.23,-0.29l-0.24,-0.29l-4.84,-1.06l-5.42,0.35l-3.4,-0.09l-0.97,-1.22l5.39,-1.7l0.21,-0.33l-0.3,-0.25l-3.82,0.06l-3.95,-1.1l1.88,-3.13l1.68,-1.81l6.54,-2.84l2.11,0.77ZM158.85,56.58l-1.82,2.62l-3.38,-2.9l0.49,-0.39l3.17,-0.18l1.54,0.86ZM149.71,42.7l1.0,1.87l0.37,0.14l2.17,-0.83l2.33,0.2l0.38,2.16l-1.38,2.17l-8.33,0.76l-6.34,2.15l-3.51,0.1l-0.22,-1.13l4.98,-2.12l0.17,-0.34l-0.31,-0.23l-11.27,0.6l-3.04,-0.78l3.14,-4.57l2.2,-1.35l6.87,1.7l4.4,3.0l0.14,0.05l4.37,0.39l0.27,-0.48l-3.41,-4.68l1.96,-1.62l2.28,0.53l0.79,2.32ZM145.44,29.83l-2.18,0.77l-3.79,-0.0l0.02,-0.31l2.34,-1.5l1.2,0.23l2.42,0.83ZM144.83,34.5l-4.44,1.46l-3.18,-1.48l1.6,-1.36l3.51,-0.53l3.1,0.75l-0.6,1.16ZM119.02,65.87l-6.17,2.07l-1.19,-1.82l-0.13,-0.11l-5.48,-2.32l0.92,-1.7l1.73,-3.44l2.16,-3.15l-0.02,-0.36l-2.09,-2.56l7.84,-0.71l3.59,1.02l6.32,0.27l2.35,1.37l2.25,1.71l-2.68,1.04l-6.21,3.41l-3.1,3.28l-0.08,0.21l0.0,1.81ZM129.66,35.4l-0.3,3.55l-1.77,1.67l-2.34,0.27l-4.62,2.2l-3.89,0.76l-2.83,-0.93l3.85,-3.52l5.04,-3.36l3.75,0.07l3.11,-0.7ZM111.24,152.74l-0.82,0.29l-3.92,-1.39l-0.7,-1.06l-0.12,-0.1l-2.15,-1.09l-0.41,-0.84l-0.2,-0.16l-2.44,-0.56l-0.84,-1.56l0.1,-0.36l2.34,0.64l1.53,0.5l2.28,0.34l0.78,1.04l1.24,1.55l0.09,0.08l2.42,1.3l0.81,1.39ZM88.54,134.82l0.14,0.02l2.0,-0.23l-0.67,3.48l0.06,0.24l1.78,2.22l-0.24,-0.0l-1.4,-1.42l-0.91,-1.53l-1.26,-1.08l-0.42,-1.35l0.09,-0.66l0.82,0.31Z\", \"name\": \"Canada\" }, \"CG\": { \"path\": \"M453.66,296.61l-0.9,-0.82l-0.35,-0.04l-0.83,0.48l-0.77,0.83l-1.65,-2.13l1.66,-1.2l0.08,-0.39l-0.81,-1.43l0.59,-0.43l1.62,-0.29l0.24,-0.24l0.1,-0.58l0.94,0.84l0.19,0.08l2.21,0.11l0.27,-0.14l0.81,-1.29l0.32,-1.76l-0.27,-1.96l-0.06,-0.15l-1.08,-1.35l1.02,-2.74l-0.09,-0.34l-0.62,-0.5l-0.22,-0.06l-1.66,0.18l-0.55,-1.03l0.12,-0.73l2.85,0.09l1.98,0.65l2.0,0.59l0.38,-0.25l0.17,-1.3l1.26,-2.24l1.34,-1.19l1.54,0.38l1.35,0.12l-0.11,1.15l-0.74,1.34l-0.5,1.61l-0.31,2.22l0.12,1.41l-0.4,0.9l-0.06,0.88l-0.24,0.67l-1.57,1.15l-1.24,1.41l-1.09,2.43l-0.03,0.13l0.08,1.95l-0.55,0.69l-1.46,1.23l-1.32,1.41l-0.61,-0.29l-0.13,-0.57l-0.29,-0.23l-1.36,-0.02l-0.23,0.1l-0.72,0.81l-0.41,-0.16Z\", \"name\": \"Republic of the Congo\" }, \"CF\": { \"path\": \"M459.41,266.56l1.9,-0.17l0.22,-0.12l0.36,-0.5l0.14,0.02l0.55,0.51l0.29,0.07l3.15,-0.96l0.12,-0.07l1.05,-0.97l1.29,-0.87l0.12,-0.33l-0.17,-0.61l0.38,-0.12l2.36,0.15l0.15,-0.03l2.36,-1.17l0.12,-0.1l1.78,-2.72l1.18,-0.96l1.23,-0.34l0.21,0.79l0.07,0.13l1.37,1.5l0.01,0.86l-0.39,1.0l-0.01,0.17l0.16,0.78l0.1,0.17l0.91,0.76l1.89,1.09l1.24,0.92l0.02,0.67l0.12,0.23l1.67,1.3l0.99,1.03l0.61,1.46l0.14,0.15l1.79,0.95l0.2,0.4l-0.44,0.14l-1.54,-0.06l-1.98,-0.26l-0.93,0.22l-0.19,0.14l-0.3,0.48l-0.57,0.05l-0.91,-0.49l-0.26,-0.01l-2.7,1.21l-1.04,-0.23l-0.21,0.03l-0.34,0.19l-0.12,0.13l-0.64,1.3l-1.67,-0.43l-1.77,-0.24l-1.58,-0.91l-2.06,-0.85l-0.27,0.02l-1.42,0.88l-0.97,1.27l-0.06,0.14l-0.19,1.46l-1.3,-0.11l-1.67,-0.42l-0.27,0.07l-1.55,1.41l-0.99,1.76l-0.14,-1.18l-0.13,-0.22l-1.1,-0.78l-0.86,-1.2l-0.2,-0.84l-0.07,-0.13l-1.07,-1.19l0.16,-0.59l0.0,-0.15l-0.24,-1.01l0.18,-1.77l0.5,-0.38l0.09,-0.11l1.18,-2.4Z\", \"name\": \"Central African Republic\" }, \"CD\": { \"path\": \"M497.85,276.25l-0.14,2.77l0.2,0.3l0.57,0.19l-0.47,0.52l-1.0,0.71l-0.96,1.31l-0.56,1.22l-0.16,2.04l-0.54,0.89l-0.04,0.15l-0.02,1.76l-0.63,0.61l-0.09,0.2l-0.08,1.33l-0.2,0.11l-0.15,0.21l-0.23,1.37l0.03,0.2l0.6,1.08l0.16,2.96l0.44,2.29l-0.24,1.25l0.01,0.15l0.5,1.46l0.07,0.12l1.41,1.37l1.09,2.56l-0.51,-0.11l-3.45,0.45l-0.67,0.3l-0.15,0.15l-0.71,1.61l0.01,0.26l0.52,1.03l-0.43,2.9l-0.31,2.55l0.13,0.29l0.7,0.46l1.75,0.99l0.31,-0.01l0.26,-0.17l0.15,1.9l-1.44,-0.02l-0.94,-1.28l-0.94,-1.1l-0.17,-0.1l-1.76,-0.33l-0.5,-1.18l-0.42,-0.15l-1.44,0.75l-1.79,-0.32l-0.77,-1.05l-0.2,-0.12l-1.59,-0.23l-0.97,0.04l-0.1,-0.53l-0.27,-0.25l-0.86,-0.06l-1.13,-0.15l-1.62,0.37l-1.04,-0.06l-0.32,0.09l0.11,-2.56l-0.08,-0.21l-0.77,-0.87l-0.17,-1.41l0.36,-1.47l-0.03,-0.21l-0.48,-0.91l-0.04,-1.52l-0.3,-0.29l-2.65,0.02l0.13,-0.53l-0.29,-0.37l-1.28,0.01l-0.28,0.21l-0.07,0.24l-1.35,0.09l-0.26,0.18l-0.62,1.45l-0.25,0.42l-1.17,-0.3l-0.19,0.01l-0.79,0.34l-1.44,0.18l-1.41,-1.96l-0.7,-1.47l-0.61,-1.86l-0.28,-0.21l-7.39,-0.03l-0.92,0.3l-0.78,-0.03l-0.78,0.25l-0.11,-0.25l0.35,-0.15l0.18,-0.26l0.07,-1.02l0.33,-0.52l0.72,-0.42l0.52,0.2l0.33,-0.08l0.76,-0.86l0.99,0.02l0.11,0.48l0.16,0.2l0.94,0.44l0.35,-0.07l1.46,-1.56l1.44,-1.21l0.68,-0.85l0.06,-0.2l-0.08,-1.99l1.04,-2.33l1.1,-1.23l1.62,-1.19l0.11,-0.14l0.29,-0.8l0.08,-0.94l0.38,-0.82l0.03,-0.16l-0.13,-1.38l0.3,-2.16l0.47,-1.51l0.73,-1.31l0.04,-0.12l0.15,-1.51l0.21,-1.66l0.89,-1.16l1.16,-0.7l1.9,0.79l1.69,0.95l1.81,0.24l1.85,0.48l0.35,-0.16l0.71,-1.43l0.16,-0.09l1.03,0.23l0.19,-0.02l2.65,-1.19l0.86,0.46l0.17,0.03l0.81,-0.08l0.23,-0.14l0.31,-0.5l0.75,-0.17l1.83,0.26l1.64,0.06l0.72,-0.21l1.39,1.9l0.16,0.11l1.12,0.3l0.24,-0.04l0.58,-0.36l1.05,0.15l0.15,-0.02l1.15,-0.44l0.47,0.84l0.08,0.09l2.08,1.57Z\", \"name\": \"Democratic Republic of the Congo\" }, \"CZ\": { \"path\": \"M463.29,152.22l-0.88,-0.47l-0.18,-0.03l-1.08,0.15l-1.86,-0.94l-0.21,-0.02l-0.88,0.24l-0.13,0.07l-1.25,1.17l-1.63,-0.91l-1.38,-1.36l-1.22,-0.75l-0.24,-1.24l-0.33,-0.75l1.53,-0.6l0.98,-0.84l1.74,-0.62l0.11,-0.07l0.47,-0.47l0.46,0.27l0.24,0.03l0.96,-0.3l1.06,0.95l0.15,0.07l1.57,0.24l-0.1,0.6l0.16,0.32l1.36,0.68l0.41,-0.15l0.28,-0.62l1.29,0.28l0.19,0.84l0.26,0.23l1.73,0.18l0.74,1.02l-0.17,0.0l-0.25,0.13l-0.32,0.49l-0.46,0.11l-0.22,0.23l-0.13,0.57l-0.32,0.1l-0.2,0.22l-0.03,0.14l-0.65,0.25l-1.05,-0.05l-0.28,0.17l-0.22,0.43Z\", \"name\": \"Czech Republic\" }, \"CY\": { \"path\": \"M505.03,193.75l-1.51,0.68l-1.0,-0.3l-0.32,-0.63l0.69,-0.06l0.41,0.13l0.19,-0.0l0.62,-0.22l0.31,0.02l0.06,0.22l0.49,0.17l0.06,-0.01Z\", \"name\": \"Cyprus\" }, \"CR\": { \"path\": \"M213.0,263.84l-0.98,-0.4l-0.3,-0.31l0.16,-0.24l0.05,-0.21l-0.09,-0.56l-0.1,-0.18l-0.76,-0.65l-0.99,-0.5l-0.74,-0.28l-0.13,-0.58l-0.12,-0.18l-0.66,-0.45l-0.34,-0.0l-0.13,0.31l0.13,0.59l-0.17,0.21l-0.34,-0.42l-0.14,-0.1l-0.7,-0.22l-0.23,-0.34l0.01,-0.62l0.31,-0.74l-0.14,-0.38l-0.3,-0.15l0.47,-0.4l1.48,0.6l0.26,-0.02l0.47,-0.27l0.58,0.15l0.35,0.44l0.17,0.11l0.74,0.17l0.27,-0.07l0.3,-0.27l0.52,1.09l0.97,1.02l0.77,0.71l-0.41,0.1l-0.23,0.3l0.01,1.02l0.12,0.24l0.2,0.14l-0.07,0.05l-0.11,0.3l0.08,0.37l-0.23,0.63Z\", \"name\": \"Costa Rica\" }, \"CU\": { \"path\": \"M215.01,226.09l2.08,0.18l1.94,0.03l2.24,0.86l0.95,0.92l0.25,0.08l2.22,-0.28l0.79,0.55l3.68,2.81l0.19,0.06l0.77,-0.03l1.18,0.42l-0.12,0.47l0.27,0.37l1.78,0.1l1.59,0.9l-0.11,0.22l-1.5,0.3l-1.64,0.13l-1.75,-0.2l-2.69,0.19l1.0,-0.86l-0.03,-0.48l-1.02,-0.68l-0.13,-0.05l-1.52,-0.16l-0.74,-0.64l-0.57,-1.42l-0.3,-0.19l-1.36,0.1l-2.23,-0.67l-0.71,-0.52l-0.14,-0.06l-3.2,-0.4l-0.42,-0.25l0.56,-0.39l0.12,-0.33l-0.27,-0.22l-2.46,-0.13l-0.2,0.06l-1.72,1.31l-0.94,0.03l-0.25,0.15l-0.29,0.53l-1.04,0.24l-0.29,-0.07l0.7,-0.43l0.1,-0.11l0.5,-0.87l1.04,-0.54l1.23,-0.49l1.86,-0.25l0.62,-0.28Z\", \"name\": \"Cuba\" }, \"SZ\": { \"path\": \"M500.95,353.41l-0.41,0.97l-1.16,0.23l-1.29,-1.26l-0.02,-0.71l0.63,-0.93l0.23,-0.7l0.47,-0.12l1.04,0.4l0.32,1.05l0.2,1.08Z\", \"name\": \"Swaziland\" }, \"SY\": { \"path\": \"M510.84,199.83l0.09,-0.11l0.07,-0.2l-0.04,-1.08l0.56,-1.4l1.3,-1.01l0.1,-0.34l-0.41,-1.11l-0.24,-0.19l-0.89,-0.11l-0.2,-1.84l0.55,-1.05l1.3,-1.22l0.09,-0.19l0.09,-1.09l0.39,0.27l0.25,0.04l2.66,-0.77l1.35,0.52l2.06,-0.01l2.93,-1.08l1.35,0.04l2.14,-0.34l-0.83,1.16l-1.31,0.68l-0.16,0.3l0.23,2.03l-0.9,3.25l-5.43,2.87l-4.79,2.91l-2.32,-0.92Z\", \"name\": \"Syria\" }, \"KG\": { \"path\": \"M599.04,172.15l0.38,-0.9l1.43,-0.37l4.04,1.02l0.37,-0.23l0.36,-1.64l1.17,-0.52l3.45,1.24l0.2,-0.0l0.86,-0.31l4.09,0.08l3.61,0.31l1.18,1.02l0.11,0.06l1.19,0.34l-0.13,0.26l-3.84,1.58l-0.13,0.1l-0.81,1.08l-3.08,0.34l-0.24,0.16l-0.85,1.7l-2.43,-0.37l-0.14,0.01l-1.79,0.61l-2.39,1.4l-0.12,0.39l0.25,0.49l-0.48,0.45l-4.57,0.43l-3.04,-0.94l-2.45,0.18l0.14,-1.02l2.42,0.44l0.27,-0.08l0.81,-0.81l1.76,0.27l0.21,-0.05l3.21,-2.14l-0.03,-0.51l-2.97,-1.57l-0.26,-0.01l-1.64,0.69l-1.38,-0.84l1.81,-1.67l-0.09,-0.5l-0.46,-0.18Z\", \"name\": \"Kyrgyzstan\" }, \"KE\": { \"path\": \"M523.3,287.04l0.06,0.17l1.29,1.8l-1.46,0.84l-0.11,0.11l-0.55,0.93l-0.81,0.16l-0.24,0.24l-0.34,1.69l-0.81,1.06l-0.46,1.58l-0.76,0.63l-3.3,-2.3l-0.16,-1.32l-0.15,-0.23l-9.35,-5.28l-0.02,-2.4l1.92,-2.63l0.91,-1.83l0.01,-0.24l-1.09,-2.86l-0.29,-1.24l-1.09,-1.63l2.93,-2.85l0.92,0.3l0.0,1.19l0.09,0.22l0.86,0.83l0.21,0.08l1.65,0.0l3.09,2.08l0.16,0.05l0.79,0.03l0.54,-0.06l0.58,0.28l1.67,0.2l0.28,-0.12l0.69,-0.98l2.04,-0.94l0.86,0.73l0.19,0.07l1.1,0.0l-1.82,2.36l-0.06,0.18l0.03,9.12Z\", \"name\": \"Kenya\" }, \"SS\": { \"path\": \"M505.7,261.39l0.02,1.64l-0.27,0.55l-1.15,0.05l-0.24,0.15l-0.85,1.44l0.22,0.45l1.44,0.17l1.15,1.12l0.42,0.95l0.14,0.15l1.06,0.54l1.33,2.45l-3.06,2.98l-1.44,1.08l-1.75,0.01l-1.92,0.56l-1.5,-0.53l-0.27,0.03l-0.85,0.57l-1.98,-1.5l-0.56,-1.02l-0.37,-0.13l-1.32,0.5l-1.08,-0.15l-0.2,0.04l-0.56,0.35l-0.9,-0.24l-1.44,-1.97l-0.39,-0.77l-0.13,-0.13l-1.78,-0.94l-0.65,-1.5l-1.08,-1.12l-1.57,-1.22l-0.02,-0.68l-0.12,-0.23l-1.37,-1.02l-1.17,-0.68l0.2,-0.08l0.86,-0.48l0.14,-0.18l0.63,-2.22l0.6,-1.02l1.47,-0.28l0.35,0.56l1.29,1.48l0.14,0.09l0.69,0.22l0.22,-0.02l0.83,-0.4l1.58,0.08l0.26,0.39l0.25,0.13l2.49,0.0l0.3,-0.25l0.06,-0.35l1.13,-0.42l0.18,-0.18l0.22,-0.63l0.68,-0.38l1.95,1.37l0.23,0.05l1.29,-0.26l0.19,-0.12l1.23,-1.8l1.36,-1.37l0.08,-0.25l-0.21,-1.52l-0.06,-0.15l-0.25,-0.3l0.94,-0.08l0.26,-0.21l0.1,-0.32l0.6,0.09l-0.25,1.67l0.3,1.83l0.11,0.19l1.22,0.94l0.25,0.73l-0.04,1.2l0.26,0.31l0.09,0.01Z\", \"name\": \"South Sudan\" }, \"SR\": { \"path\": \"M278.1,270.26l2.71,0.45l0.31,-0.14l0.19,-0.32l1.82,-0.16l2.25,0.56l-1.09,1.81l-0.04,0.19l0.2,1.72l0.05,0.13l0.9,1.35l-0.39,0.99l-0.21,1.09l-0.48,0.8l-1.2,-0.44l-0.17,-0.01l-1.12,0.24l-0.95,-0.21l-0.35,0.2l-0.25,0.73l0.05,0.29l0.3,0.35l-0.06,0.13l-1.01,-0.15l-1.42,-2.03l-0.32,-1.36l-0.29,-0.23l-0.63,-0.0l-0.95,-1.56l0.41,-1.16l0.01,-0.17l-0.08,-0.35l1.29,-0.56l0.18,-0.22l0.35,-1.97Z\", \"name\": \"Suriname\" }, \"KH\": { \"path\": \"M680.28,257.89l-0.93,-1.2l-1.24,-2.56l-0.56,-2.9l1.45,-1.92l3.07,-0.46l2.26,0.35l2.03,0.98l0.38,-0.11l1.0,-1.55l1.86,0.79l0.52,1.51l-0.28,2.82l-4.05,1.88l-0.12,0.45l0.79,1.1l-2.2,0.17l-2.08,0.98l-1.89,-0.33Z\", \"name\": \"Cambodia\" }, \"SV\": { \"path\": \"M197.02,248.89l0.18,-0.05l0.59,0.17l0.55,0.51l0.64,0.35l0.06,0.22l0.37,0.21l1.01,-0.28l0.38,0.13l0.16,0.13l-0.14,0.81l-0.18,0.38l-1.22,-0.03l-0.84,-0.23l-1.11,-0.52l-1.31,-0.15l-0.49,-0.38l0.02,-0.08l0.76,-0.57l0.46,-0.27l0.11,-0.35Z\", \"name\": \"El Salvador\" }, \"SK\": { \"path\": \"M468.01,150.02l0.05,0.07l0.36,0.1l0.85,-0.37l1.12,1.02l0.33,0.05l1.38,-0.65l1.07,0.3l0.16,0.0l1.69,-0.43l1.95,1.02l-0.51,0.64l-0.45,1.2l-0.32,0.2l-2.55,-0.93l-0.17,-0.01l-0.82,0.2l-0.17,0.11l-0.53,0.68l-0.94,0.32l-0.14,-0.11l-0.29,-0.04l-1.18,0.48l-0.95,0.09l-0.26,0.21l-0.15,0.47l-1.84,0.34l-0.82,-0.31l-1.14,-0.73l-0.2,-0.89l0.42,-0.84l0.91,0.05l0.12,-0.02l0.86,-0.33l0.18,-0.21l0.03,-0.13l0.32,-0.1l0.2,-0.22l0.12,-0.55l0.39,-0.1l0.18,-0.13l0.3,-0.45l0.43,-0.0Z\", \"name\": \"Slovakia\" }, \"KR\": { \"path\": \"M737.31,185.72l0.84,0.08l0.27,-0.12l0.89,-1.2l1.63,-0.13l1.1,-0.2l0.21,-0.16l0.12,-0.24l1.86,2.95l0.59,1.79l0.02,3.17l-0.84,1.38l-2.23,0.55l-1.95,1.14l-1.91,0.21l-0.22,-1.21l0.45,-2.07l-0.01,-0.17l-0.99,-2.67l1.54,-0.4l0.17,-0.46l-1.55,-2.24Z\", \"name\": \"South Korea\" }, \"SI\": { \"path\": \"M455.77,159.59l1.79,0.21l0.18,-0.04l1.2,-0.68l2.12,-0.08l0.21,-0.1l0.38,-0.42l0.1,0.01l0.28,0.62l-1.71,0.71l-0.18,0.22l-0.21,1.1l-0.71,0.26l-0.2,0.28l0.01,0.55l-0.59,-0.04l-0.79,-0.47l-0.38,0.06l-0.36,0.41l-0.84,-0.05l0.05,-0.15l-0.56,-1.24l0.21,-1.17Z\", \"name\": \"Slovenia\" }, \"KP\": { \"path\": \"M747.76,172.02l-0.23,-0.04l-0.26,0.08l-1.09,1.02l-0.78,1.06l-0.06,0.19l0.09,1.95l-1.12,0.57l-0.53,0.58l-0.88,0.82l-1.69,0.51l-1.09,0.79l-0.12,0.22l-0.07,1.17l-0.22,0.25l0.09,0.47l0.96,0.46l1.22,1.1l-0.19,0.37l-0.91,0.16l-1.75,0.14l-0.22,0.12l-0.87,1.18l-0.95,-0.09l-0.3,0.18l-0.97,-0.44l-0.39,0.13l-0.25,0.44l-0.29,0.09l-0.03,-0.2l-0.18,-0.23l-0.62,-0.25l-0.43,-0.29l0.52,-0.97l0.52,-0.3l0.13,-0.38l-0.18,-0.42l0.59,-1.47l0.01,-0.21l-0.16,-0.48l-0.22,-0.2l-1.41,-0.31l-0.82,-0.55l1.74,-1.62l2.73,-1.58l1.62,-1.96l0.96,0.76l0.17,0.06l2.17,0.11l0.31,-0.37l-0.32,-1.31l3.61,-1.21l0.16,-0.13l0.79,-1.34l1.25,1.38Z\", \"name\": \"North Korea\" }, \"SO\": { \"path\": \"M543.8,256.48l0.61,-0.05l1.14,-0.37l1.31,-0.25l0.12,-0.05l1.11,-0.81l0.57,-0.0l0.03,0.39l-0.23,1.49l0.01,1.25l-0.52,0.92l-0.7,2.71l-1.19,2.79l-1.54,3.2l-2.13,3.66l-2.12,2.79l-2.92,3.39l-2.47,2.0l-3.76,2.5l-2.33,1.9l-2.77,3.06l-0.61,1.35l-0.28,0.29l-1.22,-1.69l-0.03,-8.92l2.12,-2.76l0.59,-0.68l1.47,-0.04l0.18,-0.06l2.15,-1.71l3.16,-0.11l0.21,-0.09l7.08,-7.55l1.76,-2.12l1.14,-1.57l0.06,-0.18l0.01,-4.67Z\", \"name\": \"Somalia\" }, \"SN\": { \"path\": \"M379.28,250.34l-0.95,-1.82l-0.09,-0.1l-0.83,-0.6l0.62,-0.28l0.13,-0.11l1.21,-1.8l0.6,-1.31l0.71,-0.68l1.09,0.2l0.18,-0.02l1.17,-0.53l1.25,-0.03l1.17,0.73l1.59,0.65l1.47,1.83l1.59,1.7l0.12,1.56l0.49,1.46l0.1,0.14l0.85,0.65l0.18,0.82l-0.08,0.57l-0.13,0.05l-1.29,-0.19l-0.29,0.13l-0.11,0.16l-0.35,0.04l-1.83,-0.61l-5.84,-0.13l-0.12,0.02l-0.6,0.26l-0.87,-0.06l-1.01,0.32l-0.26,-1.26l1.9,0.04l0.16,-0.04l0.54,-0.32l0.37,-0.02l0.15,-0.05l0.78,-0.5l0.92,0.46l0.12,0.03l1.09,0.04l0.15,-0.03l1.08,-0.57l0.11,-0.44l-0.51,-0.74l-0.39,-0.1l-0.76,0.39l-0.62,-0.01l-0.92,-0.58l-0.18,-0.05l-0.79,0.04l-0.2,0.09l-0.48,0.51l-2.41,0.06Z\", \"name\": \"Senegal\" }, \"SL\": { \"path\": \"M392.19,267.53l-0.44,-0.12l-1.73,-0.97l-1.24,-1.28l-0.4,-0.84l-0.27,-1.65l1.21,-1.0l0.09,-0.12l0.27,-0.66l0.32,-0.41l0.56,-0.05l0.16,-0.07l0.5,-0.41l1.75,0.0l0.59,0.77l0.49,0.96l-0.07,0.64l0.04,0.19l0.36,0.58l-0.03,0.84l0.24,0.2l-0.64,0.65l-1.13,1.37l-0.06,0.14l-0.12,0.66l-0.43,0.58Z\", \"name\": \"Sierra Leone\" }, \"SB\": { \"path\": \"M826.74,311.51l0.23,0.29l-0.95,-0.01l-0.39,-0.63l0.65,0.27l0.45,0.09ZM825.01,308.52l-1.18,-1.39l-0.37,-1.06l0.24,0.0l0.82,1.84l0.49,0.6ZM823.21,309.42l-0.44,0.03l-1.43,-0.24l-0.32,-0.24l0.08,-0.5l1.29,0.31l0.72,0.47l0.11,0.18ZM817.9,303.81l2.59,1.44l0.3,0.41l-1.21,-0.66l-1.34,-0.89l-0.34,-0.3ZM813.77,302.4l0.48,0.34l0.1,0.08l-0.33,-0.17l-0.25,-0.25Z\", \"name\": \"Solomon Islands\" }, \"SA\": { \"path\": \"M528.24,243.1l-0.2,-0.69l-0.07,-0.12l-0.69,-0.71l-0.18,-0.94l-0.12,-0.19l-1.24,-0.89l-1.28,-2.09l-0.7,-2.08l-0.07,-0.11l-1.73,-1.79l-0.11,-0.07l-1.03,-0.39l-1.57,-2.36l-0.27,-1.72l0.1,-1.53l-0.03,-0.15l-1.44,-2.93l-1.25,-1.13l-1.34,-0.56l-0.72,-1.33l0.11,-0.49l-0.02,-0.2l-0.7,-1.38l-0.08,-0.1l-0.68,-0.56l-0.97,-1.98l-2.8,-4.03l-0.25,-0.13l-0.85,0.01l0.29,-1.11l0.12,-0.97l0.23,-0.81l2.52,0.39l0.23,-0.06l1.08,-0.84l0.6,-0.95l1.78,-0.35l0.22,-0.17l0.37,-0.83l0.74,-0.42l0.08,-0.46l-2.17,-2.4l4.55,-1.26l0.12,-0.06l0.36,-0.32l2.83,0.71l3.67,1.91l7.04,5.5l0.17,0.06l4.64,0.22l2.06,0.24l0.55,1.15l0.28,0.17l1.56,-0.06l0.9,2.15l0.14,0.15l1.14,0.57l0.39,0.85l0.11,0.13l1.59,1.06l0.12,0.91l-0.23,0.83l0.01,0.18l0.32,0.9l0.07,0.11l0.68,0.7l0.33,0.86l0.37,0.65l0.09,0.1l0.76,0.53l0.25,0.04l0.45,-0.12l0.35,0.75l0.1,0.63l0.96,2.68l0.23,0.19l7.53,1.33l0.27,-0.09l0.24,-0.26l0.87,1.41l-1.58,4.96l-7.34,2.54l-7.28,1.02l-2.34,1.17l-0.12,0.1l-1.74,2.63l-0.86,0.32l-0.49,-0.68l-0.28,-0.12l-0.92,0.12l-2.32,-0.25l-0.41,-0.23l-0.15,-0.04l-2.89,0.06l-0.63,0.2l-0.91,-0.59l-0.43,0.11l-0.66,1.27l-0.03,0.21l0.21,0.89l-0.6,0.45Z\", \"name\": \"Saudi Arabia\" }, \"SE\": { \"path\": \"M476.42,90.44l-0.15,0.1l-2.43,2.86l-0.07,0.24l0.36,2.31l-3.84,3.1l-4.83,3.38l-0.11,0.15l-1.82,5.45l0.03,0.26l1.78,2.68l2.27,1.99l-2.13,3.88l-2.49,0.82l-0.2,0.24l-0.95,6.05l-1.32,3.09l-2.82,-0.32l-0.3,0.16l-1.34,2.64l-2.48,0.14l-0.76,-3.15l-2.09,-4.04l-1.85,-5.01l1.03,-1.98l2.06,-2.53l0.06,-0.13l0.83,-4.45l-0.06,-0.25l-1.54,-1.86l-0.15,-5.0l1.52,-3.48l2.28,0.06l0.27,-0.16l0.87,-1.59l-0.01,-0.31l-0.8,-1.21l3.79,-5.63l4.07,-7.54l2.23,0.01l0.29,-0.22l0.59,-2.15l4.46,0.66l0.34,-0.26l0.34,-2.64l1.21,-0.14l3.24,2.08l3.78,2.85l0.06,6.37l0.03,0.14l0.67,1.29l-3.95,1.07Z\", \"name\": \"Sweden\" }, \"SD\": { \"path\": \"M505.98,259.75l-0.31,-0.9l-0.1,-0.14l-1.2,-0.93l-0.27,-1.66l0.29,-1.83l-0.25,-0.34l-1.16,-0.17l-0.33,0.21l-0.11,0.37l-1.3,0.11l-0.21,0.49l0.55,0.68l0.18,1.29l-1.31,1.33l-1.18,1.72l-1.04,0.21l-2.0,-1.4l-0.32,-0.02l-0.95,0.52l-0.14,0.16l-0.21,0.6l-1.16,0.43l-0.19,0.23l-0.04,0.27l-2.08,0.0l-0.25,-0.39l-0.24,-0.13l-1.81,-0.09l-0.14,0.03l-0.8,0.38l-0.49,-0.16l-1.22,-1.39l-0.42,-0.67l-0.31,-0.14l-1.81,0.35l-0.2,0.14l-0.72,1.24l-0.61,2.14l-0.73,0.4l-0.62,0.22l-0.83,-0.68l-0.12,-0.6l0.38,-0.97l0.01,-1.14l-0.08,-0.2l-1.39,-1.53l-0.25,-0.97l0.03,-0.57l-0.11,-0.25l-0.81,-0.66l-0.03,-1.34l-0.04,-0.14l-0.52,-0.98l-0.31,-0.15l-0.42,0.07l0.12,-0.44l0.63,-1.03l0.03,-0.23l-0.24,-0.88l0.69,-0.66l0.02,-0.41l-0.4,-0.46l0.58,-1.39l1.04,-1.71l1.97,0.16l0.32,-0.3l-0.12,-10.24l0.02,-0.8l2.59,-0.01l0.3,-0.3l0.0,-4.92l29.19,0.0l0.68,2.17l-0.4,0.35l-0.1,0.27l0.36,2.69l0.93,3.15l0.12,0.16l2.05,1.4l-0.99,1.15l-1.75,0.4l-0.15,0.08l-0.79,0.79l-0.08,0.17l-0.24,1.69l-1.07,3.75l-0.0,0.16l0.25,0.96l-0.38,2.1l-0.98,2.41l-1.52,1.3l-1.07,1.94l-0.25,0.99l-1.08,0.64l-0.13,0.18l-0.46,1.65Z\", \"name\": \"Sudan\" }, \"DO\": { \"path\": \"M241.7,234.97l0.15,-0.22l1.73,0.01l1.43,0.64l0.15,0.03l0.45,-0.04l0.36,0.74l0.28,0.17l1.02,-0.04l-0.04,0.43l0.27,0.33l1.03,0.09l0.91,0.7l-0.57,0.64l-0.99,-0.47l-0.16,-0.03l-1.11,0.11l-0.79,-0.12l-0.26,0.09l-0.38,0.4l-0.66,0.11l-0.28,-0.45l-0.38,-0.12l-0.83,0.37l-0.14,0.13l-0.85,1.49l-0.27,-0.17l-0.1,-0.58l0.05,-0.67l-0.07,-0.21l-0.44,-0.53l0.35,-0.25l0.12,-0.19l0.19,-1.0l-0.2,-1.4Z\", \"name\": \"Dominican Republic\" }, \"DJ\": { \"path\": \"M528.78,253.36l0.34,0.45l-0.06,0.76l-1.26,0.54l-0.05,0.53l0.82,0.53l-0.57,0.83l-0.3,-0.25l-0.27,-0.05l-0.56,0.17l-1.07,-0.03l-0.04,-0.56l-0.16,-0.56l0.76,-1.07l0.76,-0.97l0.89,0.18l0.25,-0.06l0.51,-0.42Z\", \"name\": \"Djibouti\" }, \"DK\": { \"path\": \"M452.4,129.07l-1.27,2.39l-2.25,-1.69l-0.26,-1.08l3.15,-1.0l0.63,1.39ZM447.87,126.25l-0.35,0.76l-0.47,-0.24l-0.38,0.09l-1.8,2.53l-0.03,0.29l0.56,1.4l-1.22,0.4l-1.68,-0.41l-0.92,-1.76l-0.07,-3.47l0.38,-0.88l0.62,-0.93l2.07,-0.21l0.19,-0.1l0.84,-0.95l1.5,-0.76l-0.06,1.26l-0.7,1.1l-0.03,0.25l0.3,1.0l0.18,0.19l1.06,0.42Z\", \"name\": \"Denmark\" }, \"DE\": { \"path\": \"M445.51,131.69l0.03,0.94l0.21,0.28l2.32,0.74l-0.02,1.0l0.37,0.3l2.55,-0.65l1.36,-0.89l2.63,1.27l1.09,1.01l0.51,1.51l-0.6,0.78l-0.0,0.36l0.88,1.17l0.58,1.68l-0.18,1.08l0.03,0.18l0.87,1.81l-0.66,0.2l-0.55,-0.32l-0.36,0.05l-0.58,0.58l-1.73,0.62l-0.99,0.84l-1.77,0.7l-0.16,0.4l0.42,0.94l0.26,1.34l0.14,0.2l1.25,0.76l1.22,1.2l-0.71,1.2l-0.81,0.37l-0.17,0.32l0.34,1.99l-0.04,0.09l-0.47,-0.39l-0.17,-0.07l-1.2,-0.1l-1.85,0.57l-2.15,-0.13l-0.29,0.18l-0.21,0.5l-0.96,-0.67l-0.24,-0.05l-0.67,0.16l-2.6,-0.94l-0.34,0.1l-0.42,0.57l-1.64,-0.02l0.26,-1.88l1.24,-2.15l-0.21,-0.45l-3.54,-0.58l-0.98,-0.71l0.12,-1.26l-0.05,-0.2l-0.44,-0.64l0.27,-2.18l-0.38,-3.14l1.17,-0.0l0.27,-0.17l0.63,-1.26l0.65,-3.17l-0.02,-0.17l-0.41,-1.0l0.32,-0.47l1.77,-0.16l0.37,0.6l0.47,0.06l1.7,-1.69l0.06,-0.33l-0.55,-1.24l-0.09,-1.51l1.5,0.36l0.16,-0.01l1.22,-0.4Z\", \"name\": \"Germany\" }, \"YE\": { \"path\": \"M553.53,242.65l-1.51,0.58l-0.17,0.16l-0.48,1.14l-0.07,0.79l-2.31,1.0l-3.98,1.19l-2.28,1.8l-0.97,0.12l-0.7,-0.14l-0.23,0.05l-1.42,1.03l-1.51,0.47l-2.07,0.13l-0.68,0.15l-0.17,0.1l-0.49,0.6l-0.57,0.16l-0.18,0.13l-0.3,0.49l-1.06,-0.05l-0.13,0.02l-0.73,0.32l-1.48,-0.11l-0.55,-1.26l0.07,-1.32l-0.04,-0.16l-0.39,-0.72l-0.48,-1.85l-0.52,-0.79l0.08,-0.02l0.22,-0.36l-0.23,-1.05l0.24,-0.39l0.04,-0.19l-0.09,-0.95l0.96,-0.72l0.11,-0.31l-0.23,-0.98l0.46,-0.88l0.75,0.49l0.26,0.03l0.63,-0.22l2.76,-0.06l0.5,0.25l2.42,0.26l0.85,-0.11l0.52,0.71l0.35,0.1l1.17,-0.43l0.15,-0.12l1.75,-2.64l2.22,-1.11l6.95,-0.96l2.55,5.58Z\", \"name\": \"Yemen\" }, \"AT\": { \"path\": \"M463.17,154.15l-0.14,0.99l-1.15,0.01l-0.24,0.47l0.39,0.56l-0.75,1.84l-0.36,0.4l-2.06,0.07l-0.14,0.04l-1.18,0.67l-1.96,-0.23l-3.43,-0.78l-0.5,-0.97l-0.33,-0.16l-2.47,0.55l-0.2,0.16l-0.18,0.37l-1.27,-0.38l-1.28,-0.09l-0.81,-0.41l0.25,-0.51l0.03,-0.18l-0.05,-0.28l0.35,-0.08l1.16,0.81l0.45,-0.13l0.27,-0.64l2.0,0.12l1.84,-0.57l1.05,0.09l0.71,0.59l0.47,-0.11l0.23,-0.54l0.02,-0.17l-0.32,-1.85l0.69,-0.31l0.13,-0.12l0.73,-1.23l1.61,0.89l0.35,-0.04l1.35,-1.27l0.7,-0.19l1.84,0.93l0.18,0.03l1.08,-0.15l0.81,0.43l-0.07,0.15l-0.02,0.2l0.24,1.06Z\", \"name\": \"Austria\" }, \"DZ\": { \"path\": \"M450.58,224.94l-8.31,4.86l-7.23,5.12l-3.46,1.13l-2.42,0.22l-0.02,-1.33l-0.2,-0.28l-1.15,-0.42l-1.45,-0.69l-0.55,-1.13l-0.1,-0.12l-8.45,-5.72l-17.72,-12.17l0.03,-0.38l-0.02,-3.21l3.84,-1.91l2.46,-0.41l2.1,-0.75l0.14,-0.11l0.9,-1.3l2.84,-1.06l0.19,-0.27l0.09,-1.81l1.21,-0.2l0.15,-0.07l1.06,-0.96l3.19,-0.46l0.23,-0.18l0.46,-1.08l-0.08,-0.34l-0.6,-0.54l-0.83,-2.85l-0.18,-1.8l-0.82,-1.57l2.13,-1.37l2.65,-0.49l0.13,-0.05l1.55,-1.15l2.34,-0.85l4.2,-0.51l4.07,-0.23l1.21,0.41l0.23,-0.01l2.3,-1.11l2.52,-0.02l0.94,0.62l0.2,0.05l1.25,-0.13l-0.36,1.03l-0.01,0.14l0.39,2.66l-0.56,2.2l-1.49,1.52l-0.08,0.24l0.22,2.12l0.11,0.2l1.94,1.58l0.02,0.54l0.12,0.23l1.45,1.06l1.04,4.85l0.81,2.42l0.13,1.19l-0.43,2.17l0.17,1.28l-0.31,1.53l0.2,1.56l-0.9,1.02l-0.01,0.38l1.43,1.88l0.09,1.06l0.04,0.13l0.89,1.48l0.37,0.12l1.03,-0.43l1.79,1.12l0.89,1.34Z\", \"name\": \"Algeria\" }, \"US\": { \"path\": \"M892.64,99.05l1.16,0.57l0.21,0.02l1.45,-0.38l1.92,0.99l2.17,0.47l-1.65,0.72l-1.75,-0.79l-0.93,-0.7l-0.21,-0.06l-2.11,0.22l-0.35,-0.2l0.09,-0.87ZM183.29,150.37l0.39,1.54l0.12,0.17l0.78,0.55l0.14,0.05l1.74,0.2l2.52,0.5l2.4,0.98l0.17,0.02l1.96,-0.4l3.01,0.81l0.91,-0.02l2.22,-0.88l4.67,2.33l3.86,2.01l0.21,0.71l0.15,0.18l0.33,0.17l-0.02,0.05l0.23,0.43l0.67,0.1l0.21,-0.05l0.1,-0.07l0.05,0.29l0.09,0.16l0.5,0.5l0.21,0.09l0.56,0.0l0.13,0.13l-0.2,0.36l0.12,0.41l2.49,1.39l0.99,5.24l-0.69,1.68l-1.16,1.64l-0.6,1.18l-0.06,0.31l0.04,0.22l0.28,0.43l0.11,0.1l0.85,0.47l0.15,0.04l0.63,0.0l0.14,-0.04l2.87,-1.58l2.6,-0.49l3.28,-1.5l0.17,-0.23l0.04,-0.43l-0.23,-0.93l-0.24,-0.39l0.74,-0.32l4.7,-0.01l0.25,-0.13l0.77,-1.15l2.9,-2.41l1.04,-0.52l8.35,-0.02l0.28,-0.21l0.2,-0.6l0.7,-0.14l1.06,-0.48l0.13,-0.11l0.92,-1.49l0.75,-2.39l1.67,-2.08l0.59,0.6l0.3,0.07l1.52,-0.49l0.88,0.72l-0.0,4.14l0.08,0.2l1.6,1.72l0.31,0.72l-2.42,1.35l-2.55,1.05l-2.64,0.9l-0.14,0.11l-1.33,1.81l-0.44,0.7l-0.05,0.15l-0.03,1.6l0.03,0.14l0.83,1.59l0.24,0.16l0.78,0.06l-1.15,0.33l-1.25,-0.04l-1.83,0.52l-2.51,0.29l-2.17,0.88l-0.17,0.36l0.33,0.22l3.55,-0.54l0.15,0.11l-2.87,0.73l-1.19,0.0l-0.16,-0.33l-0.36,0.06l-0.76,0.82l0.17,0.5l0.42,0.08l-0.45,1.75l-1.4,1.74l-0.04,-0.17l-0.21,-0.22l-0.48,-0.13l-0.77,-0.69l-0.36,-0.03l-0.12,0.34l0.52,1.58l0.09,0.14l0.52,0.43l0.03,0.87l-0.74,1.05l-0.39,0.63l0.05,-0.12l-0.08,-0.34l-1.19,-1.03l-0.28,-2.31l-0.26,-0.26l-0.32,0.19l-0.48,1.27l-0.01,0.19l0.39,1.33l-1.14,-0.31l-0.36,0.18l0.14,0.38l1.57,0.85l0.1,2.58l0.22,0.28l0.55,0.15l0.21,0.81l0.33,2.72l-1.46,1.94l-2.5,0.81l-0.12,0.07l-1.58,1.58l-1.15,0.17l-0.15,0.06l-1.27,1.03l-0.09,0.13l-0.32,0.85l-2.71,1.79l-1.45,1.37l-1.18,1.64l-0.05,0.12l-0.39,1.96l0.0,0.13l0.44,1.91l0.85,2.37l1.1,1.91l0.03,1.2l1.16,3.07l-0.08,1.74l-0.1,0.99l-0.57,1.48l-0.54,0.24l-0.97,-0.26l-0.34,-1.02l-0.12,-0.16l-0.89,-0.58l-2.44,-4.28l-0.34,-0.94l0.49,-1.71l-0.02,-0.21l-0.7,-1.5l-2.0,-2.35l-0.11,-0.08l-0.98,-0.42l-0.25,0.01l-2.42,1.19l-0.26,-0.08l-1.26,-1.29l-1.57,-0.68l-0.16,-0.02l-2.79,0.34l-2.18,-0.3l-1.98,0.19l-1.12,0.45l-0.14,0.44l0.4,0.65l-0.04,1.02l0.09,0.22l0.29,0.3l-0.06,0.05l-0.77,-0.33l-0.26,0.01l-0.87,0.48l-1.64,-0.08l-1.79,-1.39l-0.23,-0.06l-2.11,0.33l-1.75,-0.61l-0.14,-0.01l-1.61,0.2l-2.11,0.64l-0.11,0.06l-2.25,1.99l-2.53,1.21l-1.43,1.38l-0.58,1.22l-0.03,0.12l-0.03,1.86l0.13,1.32l0.3,0.62l-0.46,0.04l-1.71,-0.57l-1.85,-0.79l-0.63,-1.14l-0.54,-1.85l-0.07,-0.12l-1.45,-1.51l-0.86,-1.58l-1.26,-1.87l-0.09,-0.09l-1.76,-1.09l-0.17,-0.04l-2.05,0.05l-0.23,0.12l-1.44,1.97l-1.84,-0.72l-1.19,-0.76l-0.6,-1.45l-0.9,-1.52l-1.49,-1.21l-1.27,-0.87l-0.89,-0.96l-0.22,-0.1l-4.34,-0.0l-0.3,0.3l-0.0,0.84l-6.62,0.02l-5.66,-1.93l-3.48,-1.24l0.11,-0.25l-0.3,-0.42l-3.18,0.3l-2.6,0.2l-0.35,-1.19l-0.08,-0.13l-1.62,-1.61l-0.13,-0.08l-1.02,-0.29l-0.22,-0.66l-0.25,-0.2l-1.31,-0.13l-0.82,-0.7l-0.16,-0.07l-2.25,-0.27l-0.48,-0.34l-0.28,-1.44l-0.07,-0.14l-2.41,-2.84l-2.03,-3.89l0.08,-0.58l-0.1,-0.27l-1.08,-0.94l-1.87,-2.36l-0.33,-2.31l-0.07,-0.15l-1.24,-1.5l0.52,-2.4l-0.09,-2.57l-0.78,-2.3l0.96,-2.83l0.61,-5.66l-0.46,-4.26l-0.79,-2.71l-0.68,-1.4l0.13,-0.26l3.24,0.97l1.28,2.88l0.52,0.06l0.62,-0.84l0.06,-0.22l-0.4,-2.61l-0.74,-2.29l68.9,-0.0l0.3,-0.3l0.01,-0.95l0.32,-0.01ZM32.5,67.43l1.75,1.99l0.41,0.04l1.02,-0.81l3.79,0.25l-0.1,0.72l0.24,0.34l3.83,0.77l2.6,-0.44l5.21,1.41l4.84,0.43l1.9,0.57l0.15,0.01l3.25,-0.71l3.72,1.32l2.52,0.58l-0.03,38.14l0.29,0.3l2.41,0.11l2.34,1.0l1.7,1.59l2.22,2.42l0.42,0.03l2.41,-2.04l2.25,-1.08l1.23,1.76l1.71,1.53l2.24,1.62l1.54,2.56l2.56,4.09l0.11,0.11l4.1,2.17l0.06,1.93l-1.12,1.35l-1.22,-1.14l-2.08,-1.05l-0.68,-2.94l-0.09,-0.16l-3.18,-2.84l-1.32,-3.35l-0.25,-0.19l-2.43,-0.24l-3.93,-0.09l-2.85,-1.02l-5.24,-3.85l-6.77,-2.04l-3.52,0.3l-4.84,-1.7l-2.96,-1.6l-0.23,-0.02l-2.78,0.8l-0.21,0.35l0.46,2.31l-1.11,0.19l-2.9,0.78l-2.24,1.26l-2.42,0.68l-0.29,-1.79l1.07,-3.49l2.54,-1.11l0.12,-0.45l-0.69,-0.96l-0.41,-0.07l-3.19,2.12l-1.76,2.54l-3.57,2.62l-0.03,0.46l1.63,1.59l-2.14,2.38l-2.64,1.49l-2.49,1.09l-0.16,0.17l-0.58,1.48l-3.8,1.79l-0.14,0.14l-0.75,1.57l-2.75,1.41l-1.62,-0.25l-0.16,0.02l-2.35,0.98l-2.54,1.19l-2.06,1.15l-4.05,0.93l-0.1,-0.15l2.45,-1.45l2.49,-1.1l2.61,-1.88l3.03,-0.39l0.19,-0.1l1.2,-1.41l3.43,-2.11l0.61,-0.75l1.81,-1.24l0.13,-0.2l0.42,-2.7l1.24,-2.12l-0.03,-0.35l-0.34,-0.09l-2.73,1.05l-0.67,-0.53l-0.39,0.02l-1.13,1.11l-1.43,-1.62l-0.49,0.06l-0.41,0.8l-0.67,-1.31l-0.42,-0.12l-2.43,1.43l-1.18,-0.0l-0.18,-1.86l0.43,-1.3l-0.09,-0.33l-1.61,-1.33l-0.26,-0.06l-3.11,0.68l-2.0,-1.66l-1.61,-0.85l-0.01,-1.97l-0.11,-0.23l-1.76,-1.48l0.86,-1.96l2.01,-2.13l0.88,-1.94l1.79,-0.25l1.65,0.6l0.31,-0.06l1.91,-1.8l1.67,0.31l0.22,-0.04l1.91,-1.23l0.13,-0.33l-0.47,-1.82l-0.15,-0.19l-1.0,-0.52l1.51,-1.27l0.09,-0.34l-0.29,-0.19l-1.62,0.06l-2.66,0.88l-0.13,0.09l-0.62,0.72l-1.77,-0.8l-0.16,-0.02l-3.48,0.44l-3.5,-0.92l-1.06,-1.61l-2.78,-2.09l3.07,-1.51l5.52,-2.01l1.65,0.0l-0.28,1.73l0.31,0.35l5.29,-0.16l0.23,-0.49l-2.03,-2.59l-0.1,-0.08l-3.03,-1.58l-1.79,-2.12l-2.4,-1.83l-3.18,-1.27l1.13,-1.84l4.28,-0.14l0.15,-0.05l3.16,-2.0l0.13,-0.17l0.57,-2.07l2.43,-2.02l2.42,-0.52l4.67,-1.98l2.22,0.29l0.2,-0.04l3.74,-2.37l3.57,0.91ZM37.66,123.49l-2.31,1.26l-1.04,-0.75l-0.31,-1.35l2.06,-1.16l1.24,-0.51l1.48,0.22l0.76,0.81l-1.89,1.49ZM30.89,233.84l1.2,0.57l0.35,0.3l0.48,0.69l-1.6,0.86l-0.3,0.31l-0.24,-0.14l0.05,-0.54l-0.02,-0.15l-0.36,-0.83l0.05,-0.12l0.39,-0.38l0.07,-0.31l-0.09,-0.27ZM29.06,231.89l0.5,0.14l0.31,0.19l-0.46,0.1l-0.34,-0.43ZM25.02,230.13l0.2,-0.11l0.4,0.47l-0.43,-0.05l-0.17,-0.31ZM21.29,228.68l0.1,-0.07l0.22,0.02l0.02,0.21l-0.02,0.02l-0.32,-0.18ZM6.0,113.33l-1.19,0.45l-1.5,-0.64l-0.94,-0.63l1.76,-0.46l1.71,0.29l0.16,0.98Z\", \"name\": \"United States of America\" }, \"LV\": { \"path\": \"M473.99,127.16l0.07,-2.15l1.15,-2.11l2.05,-1.07l1.84,2.48l0.25,0.12l2.01,-0.07l0.29,-0.25l0.45,-2.58l1.85,-0.56l0.98,0.4l2.13,1.33l0.16,0.05l1.97,0.01l1.02,0.7l0.21,1.67l0.71,1.84l-2.44,1.23l-1.36,0.53l-2.28,-1.62l-0.12,-0.05l-1.18,-0.2l-0.28,-0.6l-0.31,-0.17l-2.43,0.35l-4.17,-0.23l-0.12,0.02l-2.45,0.93Z\", \"name\": \"Latvia\" }, \"UY\": { \"path\": \"M276.9,363.17l1.3,-0.23l2.4,2.04l0.22,0.07l0.82,-0.07l2.48,1.7l1.93,1.5l1.28,1.67l-0.95,1.14l-0.04,0.31l0.63,1.45l-0.96,1.57l-2.65,1.47l-1.73,-0.53l-0.15,-0.01l-1.25,0.28l-2.22,-1.16l-0.16,-0.03l-1.56,0.08l-1.33,-1.36l0.17,-1.58l0.48,-0.55l0.07,-0.2l-0.02,-2.74l0.66,-2.8l0.57,-2.02Z\", \"name\": \"Uruguay\" }, \"LB\": { \"path\": \"M510.44,198.11l-0.48,0.03l-0.26,0.17l-0.15,0.32l-0.21,-0.0l0.72,-1.85l1.19,-1.9l0.74,0.09l0.27,0.73l-1.19,0.93l-0.09,0.13l-0.54,1.36Z\", \"name\": \"Lebanon\" }, \"LA\": { \"path\": \"M684.87,248.8l0.61,-0.86l0.05,-0.16l0.11,-2.17l-0.08,-0.22l-1.96,-2.16l-0.15,-2.44l-0.08,-0.18l-1.9,-2.1l-0.19,-0.1l-1.89,-0.18l-0.29,0.15l-0.42,0.76l-1.21,0.06l-0.67,-0.41l-0.31,-0.0l-2.2,1.29l-0.05,-1.77l0.61,-2.7l-0.27,-0.37l-1.44,-0.1l-0.12,-1.31l-0.12,-0.21l-0.87,-0.65l0.38,-0.68l1.76,-1.41l0.08,0.22l0.27,0.2l1.33,0.07l0.31,-0.34l-0.35,-2.75l0.85,-0.25l1.32,1.88l1.11,2.36l0.27,0.17l2.89,0.02l0.78,1.82l-1.32,0.56l-0.12,0.09l-0.72,0.93l0.1,0.45l2.93,1.52l3.62,5.27l1.88,1.78l0.58,1.67l-0.38,2.11l-1.87,-0.79l-0.37,0.11l-0.99,1.54l-1.51,-0.73Z\", \"name\": \"Laos\" }, \"TW\": { \"path\": \"M725.6,222.5l-1.5,4.22l-0.82,1.65l-1.01,-1.7l-0.26,-1.8l1.4,-2.48l1.8,-1.81l0.76,0.53l-0.38,1.39Z\", \"name\": \"Taiwan\" }, \"TT\": { \"path\": \"M266.35,259.46l0.41,-0.39l0.09,-0.23l-0.04,-0.75l1.14,-0.26l0.2,0.03l-0.07,1.37l-1.73,0.23Z\", \"name\": \"Trinidad and Tobago\" }, \"TR\": { \"path\": \"M513.25,175.38l3.63,1.17l0.14,0.01l2.88,-0.45l2.11,0.26l0.18,-0.03l2.9,-1.53l2.51,-0.13l2.25,1.37l0.36,0.88l-0.23,1.36l0.19,0.33l1.81,0.72l0.61,0.53l-1.31,0.64l-0.16,0.34l0.76,3.24l-0.44,0.8l0.01,0.3l1.19,2.02l-0.71,0.29l-0.74,-0.62l-0.15,-0.07l-2.91,-0.37l-0.15,0.02l-1.04,0.43l-2.78,0.44l-1.44,-0.03l-2.83,1.06l-1.95,0.01l-1.28,-0.52l-0.2,-0.01l-2.62,0.76l-0.7,-0.48l-0.47,0.22l-0.13,1.49l-1.01,0.94l-0.58,-0.82l0.79,-0.9l0.04,-0.34l-0.31,-0.15l-1.46,0.23l-2.03,-0.64l-0.3,0.07l-1.65,1.58l-3.58,0.3l-1.94,-1.47l-0.17,-0.06l-2.7,-0.1l-0.28,0.17l-0.51,1.06l-1.47,0.29l-2.32,-1.46l-0.17,-0.05l-2.55,0.05l-1.4,-2.7l-1.72,-1.54l1.11,-2.06l-0.07,-0.37l-1.35,-1.19l2.47,-2.51l3.74,-0.11l0.26,-0.17l0.96,-2.07l4.56,0.38l0.19,-0.05l2.97,-1.92l2.84,-0.83l4.03,-0.06l4.31,2.08ZM488.85,176.8l-1.81,1.38l-0.57,-1.01l0.02,-0.36l0.45,-0.25l0.13,-0.15l0.78,-1.87l-0.11,-0.37l-0.72,-0.47l1.91,-0.71l1.89,0.35l0.25,0.97l0.17,0.2l1.87,0.83l-0.19,0.31l-2.82,0.16l-0.18,0.07l-1.06,0.91Z\", \"name\": \"Turkey\" }, \"LK\": { \"path\": \"M625.44,266.07l-0.35,2.4l-0.9,0.61l-1.91,0.5l-1.04,-1.75l-0.43,-3.5l1.0,-3.6l1.34,1.09l1.13,1.72l1.16,2.52Z\", \"name\": \"Sri Lanka\" }, \"TN\": { \"path\": \"M444.91,206.18l-0.99,-4.57l-0.12,-0.18l-1.43,-1.04l-0.02,-0.53l-0.11,-0.22l-1.95,-1.59l-0.19,-1.85l1.44,-1.47l0.08,-0.14l0.59,-2.34l-0.38,-2.77l0.44,-1.28l2.52,-1.08l1.41,0.28l-0.06,1.2l0.43,0.28l1.81,-0.9l0.02,0.06l-1.14,1.28l-0.08,0.2l-0.02,1.32l0.11,0.24l0.74,0.6l-0.29,2.18l-1.56,1.35l-0.09,0.32l0.48,1.54l0.28,0.21l1.11,0.04l0.55,1.17l0.15,0.14l0.76,0.35l-0.12,1.79l-1.1,0.72l-0.8,0.91l-1.68,1.04l-0.13,0.32l0.25,1.08l-0.18,0.96l-0.74,0.39Z\", \"name\": \"Tunisia\" }, \"TL\": { \"path\": \"M734.21,307.22l0.17,-0.34l1.99,-0.52l1.72,-0.08l0.78,-0.3l0.29,0.1l-0.43,0.32l-2.57,1.09l-1.71,0.59l-0.05,-0.49l-0.19,-0.36Z\", \"name\": \"East Timor\" }, \"TM\": { \"path\": \"M553.16,173.51l-0.12,1.0l-0.26,-0.65l0.38,-0.34ZM553.54,173.16l0.13,-0.12l0.43,-0.09l-0.56,0.21ZM555.68,172.6l0.65,-0.14l1.53,0.76l1.71,2.29l0.27,0.12l1.27,-0.14l2.81,-0.04l0.29,-0.38l-0.35,-1.27l1.98,-0.97l1.96,-1.63l3.05,1.44l0.25,2.23l0.14,0.22l0.96,0.61l0.18,0.05l2.61,-0.13l0.68,0.44l1.2,2.97l0.1,0.13l2.85,2.03l1.67,1.41l2.66,1.45l3.13,1.17l-0.05,1.23l-0.36,-0.04l-1.12,-0.73l-0.44,0.14l-0.34,0.89l-1.96,0.52l-0.22,0.23l-0.47,2.17l-1.26,0.78l-1.93,0.42l-0.21,0.18l-0.46,1.14l-1.64,0.33l-2.3,-0.97l-0.2,-2.23l-0.28,-0.27l-1.76,-0.1l-2.78,-2.48l-0.15,-0.07l-1.95,-0.31l-2.82,-1.48l-1.78,-0.27l-0.18,0.03l-1.03,0.51l-1.6,-0.08l-0.22,0.08l-1.72,1.6l-1.83,0.46l-0.39,-1.7l0.36,-3.0l-0.16,-0.3l-1.73,-0.88l0.57,-1.77l-0.25,-0.39l-1.33,-0.14l0.41,-1.85l2.05,0.63l0.21,-0.01l2.2,-0.95l0.09,-0.49l-1.78,-1.75l-0.69,-1.66l-0.07,-0.03Z\", \"name\": \"Turkmenistan\" }, \"TJ\": { \"path\": \"M597.99,178.71l-0.23,0.23l-2.57,-0.47l-0.35,0.25l-0.24,1.7l0.32,0.34l2.66,-0.22l3.15,0.95l4.47,-0.42l0.58,2.45l0.39,0.21l0.71,-0.25l1.22,0.53l-0.06,1.01l0.29,1.28l-2.19,-0.0l-1.71,-0.21l-0.23,0.07l-1.51,1.25l-1.05,0.27l-0.77,0.51l-0.71,-0.67l0.22,-2.28l-0.24,-0.32l-0.43,-0.08l0.17,-0.57l-0.16,-0.36l-1.36,-0.66l-0.34,0.05l-1.08,1.01l-0.09,0.15l-0.25,1.09l-0.24,0.26l-1.36,-0.05l-0.27,0.14l-0.65,1.06l-0.58,-0.39l-0.3,-0.02l-1.68,0.86l-0.36,-0.16l1.28,-2.65l0.02,-0.2l-0.54,-2.17l-0.18,-0.21l-1.53,-0.58l0.41,-0.82l1.89,0.13l0.26,-0.12l1.19,-1.63l0.77,-1.82l2.66,-0.55l-0.33,0.87l0.01,0.23l0.36,0.82l0.3,0.18l0.23,-0.02Z\", \"name\": \"Tajikistan\" }, \"LS\": { \"path\": \"M493.32,359.69l0.69,0.65l-0.65,1.12l-0.38,0.8l-1.27,0.39l-0.18,0.15l-0.4,0.77l-0.59,0.18l-1.59,-1.78l1.16,-1.5l1.3,-1.02l0.97,-0.46l0.94,0.72Z\", \"name\": \"Lesotho\" }, \"TH\": { \"path\": \"M677.42,253.68l-1.7,-0.88l-0.14,-0.03l-1.77,0.04l0.3,-1.64l-0.3,-0.35l-2.21,0.01l-0.3,0.28l-0.2,2.76l-2.15,5.9l-0.02,0.13l0.17,1.83l0.28,0.27l1.45,0.07l0.93,2.1l0.44,2.15l0.08,0.15l1.4,1.44l0.16,0.09l1.43,0.27l1.04,1.05l-0.58,0.73l-1.24,0.22l-0.15,-0.99l-0.15,-0.22l-2.04,-1.1l-0.36,0.06l-0.23,0.23l-0.72,-0.71l-0.41,-1.18l-0.06,-0.11l-1.33,-1.42l-1.22,-1.2l-0.5,0.13l-0.15,0.54l-0.14,-0.41l0.26,-1.48l0.73,-2.38l1.2,-2.57l1.37,-2.35l0.02,-0.27l-0.95,-2.26l0.03,-1.19l-0.29,-1.42l-0.06,-0.13l-1.65,-2.0l-0.46,-0.99l0.62,-0.34l0.13,-0.15l0.92,-2.23l-0.02,-0.27l-1.05,-1.74l-1.57,-1.86l-1.04,-1.96l0.76,-0.34l0.16,-0.16l1.07,-2.63l1.58,-0.1l0.16,-0.06l1.43,-1.11l1.24,-0.52l0.84,0.62l0.13,1.43l0.28,0.27l1.34,0.09l-0.54,2.39l0.05,2.39l0.45,0.25l2.48,-1.45l0.6,0.36l0.17,0.04l1.47,-0.07l0.25,-0.15l0.41,-0.73l1.58,0.15l1.76,1.93l0.15,2.44l0.08,0.18l1.94,2.15l-0.1,1.96l-0.66,0.93l-2.25,-0.34l-3.24,0.49l-0.19,0.12l-1.6,2.12l-0.06,0.24l0.48,2.46Z\", \"name\": \"Thailand\" }, \"TF\": { \"path\": \"M593.76,417.73l1.38,0.84l2.15,0.37l0.04,0.31l-0.59,1.24l-3.36,0.19l-0.05,-1.38l0.43,-1.56Z\", \"name\": \"French Southern and Antarctic Lands\" }, \"TG\": { \"path\": \"M425.23,269.29l-1.49,0.4l-0.43,-0.68l-0.64,-1.54l-0.18,-1.16l0.54,-2.21l-0.04,-0.24l-0.59,-0.86l-0.23,-1.9l0.0,-1.82l-0.07,-0.19l-0.95,-1.19l0.1,-0.41l1.58,0.04l-0.23,0.97l0.08,0.28l1.55,1.55l0.09,1.13l0.08,0.19l0.42,0.43l-0.11,5.66l0.52,1.53Z\", \"name\": \"Togo\" }, \"TD\": { \"path\": \"M457.57,252.46l0.23,-1.08l-0.28,-0.36l-1.32,-0.05l0.0,-1.35l-0.1,-0.22l-0.9,-0.82l0.99,-3.1l3.12,-2.37l0.12,-0.23l0.13,-3.33l0.95,-5.2l0.53,-1.09l-0.07,-0.36l-0.94,-0.81l-0.03,-0.7l-0.12,-0.23l-0.84,-0.61l-0.57,-3.76l2.21,-1.26l19.67,9.88l0.12,9.74l-1.83,-0.15l-0.28,0.14l-1.14,1.89l-0.68,1.62l0.05,0.31l0.33,0.38l-0.61,0.58l-0.08,0.3l0.25,0.93l-0.58,0.95l-0.29,1.01l0.34,0.37l0.67,-0.11l0.39,0.73l0.03,1.4l0.11,0.23l0.8,0.65l-0.01,0.24l-1.38,0.37l-0.11,0.06l-1.27,1.03l-1.83,2.76l-2.21,1.1l-2.34,-0.15l-0.82,0.25l-0.2,0.37l0.19,0.68l-1.16,0.79l-1.01,0.94l-2.92,0.89l-0.5,-0.46l-0.17,-0.08l-0.41,-0.05l-0.28,0.12l-0.38,0.54l-1.36,0.12l0.1,-0.18l0.01,-0.27l-0.78,-1.72l-0.35,-1.03l-0.17,-0.18l-1.03,-0.41l-1.29,-1.28l0.36,-0.78l0.9,0.2l0.14,-0.0l0.67,-0.17l1.36,0.02l0.26,-0.45l-1.32,-2.22l0.09,-1.64l-0.17,-1.68l-0.04,-0.13l-0.93,-1.53Z\", \"name\": \"Chad\" }, \"LY\": { \"path\": \"M457.99,226.38l-1.57,0.87l-1.25,-1.28l-0.13,-0.08l-3.85,-1.11l-1.04,-1.57l-0.09,-0.09l-1.98,-1.23l-0.27,-0.02l-0.93,0.39l-0.72,-1.2l-0.09,-1.07l-0.06,-0.16l-1.33,-1.75l0.83,-0.94l0.07,-0.24l-0.21,-1.64l0.31,-1.43l-0.17,-1.29l0.43,-2.26l-0.15,-1.33l-0.73,-2.18l0.99,-0.52l0.16,-0.21l0.22,-1.16l-0.22,-1.06l1.54,-0.95l0.81,-0.92l1.19,-0.78l0.14,-0.23l0.12,-1.76l2.57,0.84l0.16,0.01l0.99,-0.23l2.01,0.45l3.19,1.2l1.12,2.36l0.2,0.16l2.24,0.53l3.5,1.14l2.65,1.36l0.29,-0.01l1.22,-0.71l1.27,-1.32l0.07,-0.29l-0.55,-2.0l0.69,-1.19l1.7,-1.23l1.61,-0.35l3.2,0.54l0.78,1.14l0.24,0.13l0.85,0.01l0.84,0.47l2.35,0.31l0.42,0.63l-0.79,1.16l-0.04,0.26l0.35,1.08l-0.61,1.6l-0.0,0.2l0.73,2.16l0.0,24.24l-2.58,0.01l-0.3,0.29l-0.02,0.62l-19.55,-9.83l-0.28,0.01l-2.53,1.44Z\", \"name\": \"Libya\" }, \"AE\": { \"path\": \"M550.59,223.8l0.12,0.08l1.92,-0.41l3.54,0.15l0.23,-0.09l1.71,-1.79l1.86,-1.7l1.31,-1.36l0.26,0.5l0.28,1.72l-0.93,0.01l-0.3,0.26l-0.21,1.73l0.11,0.27l0.08,0.06l-0.7,0.32l-0.17,0.27l-0.01,0.99l-0.68,1.02l-0.05,0.15l-0.06,0.96l-0.32,0.36l-7.19,-1.27l-0.79,-2.22Z\", \"name\": \"United Arab Emirates\" }, \"VE\": { \"path\": \"M240.66,256.5l0.65,0.91l-0.03,1.13l-1.05,1.39l-0.03,0.31l0.95,2.0l0.32,0.17l1.08,-0.16l0.24,-0.21l0.56,-1.83l-0.06,-0.29l-0.71,-0.81l-0.1,-1.58l2.9,-0.96l0.19,-0.37l-0.29,-1.02l0.45,-0.41l0.72,1.43l0.26,0.16l1.65,0.04l1.46,1.27l0.08,0.72l0.3,0.27l2.28,0.02l2.55,-0.25l1.34,1.06l0.14,0.06l1.92,0.31l0.2,-0.03l1.4,-0.79l0.15,-0.25l0.02,-0.36l2.82,-0.14l1.17,-0.01l-0.41,0.14l-0.14,0.46l0.86,1.19l0.22,0.12l1.93,0.18l1.73,1.13l0.37,1.9l0.31,0.24l1.21,-0.05l0.52,0.32l-1.63,1.21l-0.11,0.17l-0.22,0.92l0.07,0.27l0.63,0.69l-0.31,0.24l-1.48,0.39l-0.22,0.3l0.04,1.03l-0.59,0.6l-0.01,0.41l1.67,1.87l0.23,0.48l-0.72,0.76l-2.71,0.91l-1.78,0.39l-0.13,0.06l-0.6,0.49l-1.84,-0.58l-1.89,-0.33l-0.18,0.03l-0.47,0.23l-0.02,0.53l0.96,0.56l-0.08,1.58l0.35,1.58l0.26,0.23l1.91,0.19l0.02,0.07l-1.54,0.62l-0.18,0.2l-0.25,0.92l-0.88,0.35l-1.85,0.58l-0.16,0.13l-0.4,0.64l-1.66,0.14l-1.22,-1.18l-0.79,-2.52l-0.67,-0.88l-0.66,-0.43l0.99,-0.98l0.09,-0.26l-0.09,-0.56l-0.08,-0.16l-0.66,-0.69l-0.47,-1.54l0.18,-1.67l0.55,-0.85l0.45,-1.35l-0.15,-0.36l-0.89,-0.43l-0.19,-0.02l-1.39,0.28l-1.76,-0.13l-0.92,0.23l-1.64,-2.01l-0.17,-0.1l-1.54,-0.33l-3.05,0.23l-0.5,-0.73l-0.15,-0.12l-0.45,-0.15l-0.05,-0.28l0.28,-0.86l0.01,-0.15l-0.2,-1.01l-0.08,-0.15l-0.5,-0.5l-0.3,-1.08l-0.25,-0.22l-0.89,-0.12l0.54,-1.18l0.29,-1.73l0.66,-0.85l0.94,-0.7l0.09,-0.11l0.3,-0.6Z\", \"name\": \"Venezuela\" }, \"AF\": { \"path\": \"M574.42,192.1l2.24,0.95l0.18,0.02l1.89,-0.38l0.22,-0.18l0.46,-1.14l1.82,-0.4l1.5,-0.91l0.14,-0.19l0.46,-2.12l1.93,-0.51l0.2,-0.18l0.26,-0.68l0.87,0.57l0.13,0.05l0.79,0.09l1.35,0.02l1.83,0.59l0.75,0.34l0.26,-0.01l1.66,-0.85l0.7,0.46l0.42,-0.09l0.72,-1.17l1.32,0.05l0.23,-0.1l0.39,-0.43l0.07,-0.14l0.24,-1.08l0.86,-0.81l0.94,0.46l-0.2,0.64l0.23,0.38l0.49,0.09l-0.21,2.15l0.09,0.25l0.99,0.94l0.38,0.03l0.83,-0.57l1.06,-0.27l0.12,-0.06l1.46,-1.21l1.63,0.2l2.4,0.0l0.17,0.32l-1.12,0.25l-1.23,0.52l-2.86,0.33l-2.69,0.6l-0.13,0.06l-1.46,1.25l-0.07,0.36l0.58,1.18l0.25,1.21l-1.13,1.08l-0.09,0.25l0.09,0.98l-0.53,0.79l-2.22,-0.08l-0.28,0.44l0.83,1.57l-1.3,0.58l-0.13,0.11l-1.06,1.69l-0.05,0.18l0.13,1.51l-0.73,0.58l-0.78,-0.22l-0.14,-0.01l-1.91,0.36l-0.23,0.19l-0.2,0.57l-1.65,-0.0l-0.22,0.1l-1.4,1.56l-0.08,0.19l-0.08,2.13l-2.99,1.05l-1.67,-0.23l-0.27,0.1l-0.39,0.46l-1.43,-0.31l-2.43,0.4l-3.69,-1.23l1.96,-2.15l0.08,-0.24l-0.21,-1.78l-0.23,-0.26l-1.69,-0.42l-0.19,-1.62l-0.77,-2.08l0.98,-1.41l-0.14,-0.45l-0.82,-0.31l0.6,-1.79l0.93,-3.21Z\", \"name\": \"Afghanistan\" }, \"IQ\": { \"path\": \"M534.42,190.89l0.13,0.14l1.5,0.78l0.15,1.34l-1.13,0.87l-0.11,0.16l-0.58,2.2l0.04,0.24l1.73,2.67l0.12,0.1l2.99,1.49l1.18,1.94l-0.39,1.89l0.29,0.36l0.5,-0.0l0.02,1.17l0.08,0.2l0.83,0.86l-2.36,-0.29l-0.29,0.13l-1.74,2.49l-4.4,-0.21l-7.03,-5.49l-3.73,-1.94l-2.92,-0.74l-0.89,-3.0l5.33,-2.81l0.15,-0.19l0.95,-3.43l-0.2,-2.0l1.19,-0.61l0.11,-0.09l1.23,-1.73l0.92,-0.38l2.75,0.35l0.81,0.68l0.31,0.05l0.94,-0.38l1.5,3.17Z\", \"name\": \"Iraq\" }, \"IS\": { \"path\": \"M384.26,87.96l-0.51,2.35l0.08,0.28l2.61,2.58l-2.99,2.83l-7.16,2.72l-2.08,0.7l-9.51,-1.71l1.89,-1.36l-0.07,-0.53l-4.4,-1.59l3.33,-0.59l0.25,-0.32l-0.11,-1.2l-0.25,-0.27l-4.82,-0.88l1.38,-2.2l3.54,-0.57l3.8,2.74l0.33,0.01l3.68,-2.18l3.02,1.12l0.25,-0.02l4.01,-2.18l3.72,0.27Z\", \"name\": \"Iceland\" }, \"IR\": { \"path\": \"M556.2,187.5l2.05,-0.52l0.13,-0.07l1.69,-1.57l1.55,0.08l0.15,-0.03l1.02,-0.5l1.64,0.25l2.82,1.48l1.91,0.3l2.8,2.49l0.18,0.08l1.61,0.09l0.19,2.09l-1.0,3.47l-0.69,2.04l0.18,0.38l0.73,0.28l-0.85,1.22l-0.04,0.28l0.81,2.19l0.19,1.72l0.23,0.26l1.69,0.42l0.17,1.43l-2.18,2.39l-0.01,0.4l1.22,1.42l1.0,1.62l0.12,0.11l2.23,1.11l0.06,2.2l0.2,0.27l1.03,0.38l0.14,0.83l-3.38,1.3l-0.18,0.19l-0.87,2.85l-4.44,-0.76l-2.75,-0.62l-2.64,-0.32l-1.01,-3.11l-0.17,-0.19l-1.2,-0.48l-0.18,-0.01l-1.99,0.51l-2.42,1.25l-2.89,-0.84l-2.48,-2.03l-2.41,-0.79l-1.61,-2.47l-1.84,-3.63l-0.36,-0.15l-1.22,0.4l-1.48,-0.84l-0.37,0.06l-0.72,0.82l-1.08,-1.12l-0.02,-1.35l-0.3,-0.29l-0.43,0.0l0.34,-1.64l-0.04,-0.22l-1.29,-2.11l-0.12,-0.11l-3.0,-1.49l-1.62,-2.49l0.52,-1.98l1.18,-0.92l0.11,-0.27l-0.19,-1.66l-0.16,-0.23l-1.55,-0.81l-1.58,-3.33l-1.3,-2.2l0.41,-0.75l0.03,-0.21l-0.73,-3.12l1.2,-0.59l0.35,0.9l1.26,1.35l0.15,0.09l1.81,0.39l0.91,-0.09l0.15,-0.06l2.9,-2.13l0.7,-0.16l0.48,0.56l-0.75,1.26l0.05,0.37l1.56,1.53l0.28,0.08l0.37,-0.09l0.7,1.89l0.21,0.19l2.31,0.59l1.69,1.4l0.15,0.07l3.66,0.49l3.91,-0.76l0.23,-0.19l0.19,-0.52Z\", \"name\": \"Iran\" }, \"AM\": { \"path\": \"M530.51,176.08l2.91,-0.39l0.41,0.63l0.11,0.1l0.66,0.36l-0.32,0.47l0.07,0.41l1.1,0.84l-0.53,0.7l0.06,0.42l1.06,0.8l1.01,0.44l0.04,1.56l-0.44,0.04l-0.88,-1.46l0.01,-0.37l-0.3,-0.31l-0.98,0.01l-0.65,-0.69l-0.26,-0.09l-0.38,0.06l-0.97,-0.82l-1.64,-0.65l0.2,-1.2l-0.02,-0.16l-0.28,-0.69Z\", \"name\": \"Armenia\" }, \"IT\": { \"path\": \"M451.68,158.58l0.2,0.16l3.3,0.75l-0.22,1.26l0.02,0.18l0.35,0.78l-1.4,-0.32l-0.21,0.03l-2.04,1.1l-0.16,0.29l0.13,1.47l-0.29,0.82l0.02,0.24l0.82,1.57l0.1,0.11l2.28,1.5l1.29,2.53l2.79,2.43l0.2,0.07l1.83,-0.02l0.31,0.34l-0.46,0.39l0.06,0.5l4.06,1.97l2.06,1.49l0.17,0.36l-0.24,0.53l-1.08,-1.07l-0.15,-0.08l-2.18,-0.49l-0.33,0.15l-1.05,1.91l0.11,0.4l1.63,0.98l-0.22,1.12l-0.84,0.14l-0.22,0.15l-1.27,2.38l-0.54,0.12l0.01,-0.47l0.48,-1.46l0.5,-0.58l0.03,-0.35l-0.97,-1.69l-0.76,-1.48l-0.17,-0.15l-0.94,-0.33l-0.68,-1.18l-0.16,-0.13l-1.53,-0.52l-1.03,-1.14l-0.19,-0.1l-1.78,-0.19l-1.88,-1.3l-2.27,-1.94l-1.64,-1.68l-0.76,-2.94l-0.21,-0.21l-1.22,-0.35l-2.01,-1.0l-0.24,-0.01l-1.15,0.42l-0.11,0.07l-1.38,1.36l-0.5,0.11l0.19,-0.87l-0.21,-0.35l-1.19,-0.34l-0.56,-2.06l0.76,-0.82l0.03,-0.36l-0.68,-1.08l0.04,-0.31l0.68,0.42l0.19,0.04l1.21,-0.15l0.14,-0.06l1.18,-0.89l0.25,0.29l0.25,0.1l1.19,-0.1l0.25,-0.18l0.45,-1.04l1.61,0.34l0.19,-0.02l1.1,-0.53l0.17,-0.22l0.15,-0.95l1.19,0.35l0.35,-0.16l0.23,-0.47l2.11,-0.47l0.45,0.89ZM459.35,184.63l-0.71,1.81l0.0,0.23l0.33,0.79l-0.37,1.03l-1.6,-0.91l-1.33,-0.34l-3.24,-1.36l0.23,-0.99l2.73,0.24l3.95,-0.5ZM443.95,175.91l1.26,1.77l-0.31,3.47l-0.82,-0.13l-0.26,0.08l-0.83,0.79l-0.64,-0.52l-0.1,-3.42l-0.44,-1.34l0.91,0.1l0.21,-0.06l1.01,-0.74Z\", \"name\": \"Italy\" }, \"VN\": { \"path\": \"M690.8,230.21l-2.86,1.93l-2.09,2.46l-0.06,0.11l-0.55,1.8l0.04,0.26l4.26,6.1l2.31,1.63l1.46,1.97l1.12,4.62l-0.32,4.3l-1.97,1.57l-2.85,1.62l-2.09,2.14l-2.83,2.13l-0.67,-1.19l0.65,-1.58l-0.09,-0.35l-1.47,-1.14l1.67,-0.79l2.57,-0.18l0.22,-0.47l-0.89,-1.24l3.88,-1.8l0.17,-0.24l0.31,-3.05l-0.01,-0.13l-0.56,-1.63l0.44,-2.48l-0.01,-0.15l-0.63,-1.81l-0.08,-0.12l-1.87,-1.77l-3.64,-5.3l-0.11,-0.1l-2.68,-1.39l0.45,-0.59l1.53,-0.65l0.16,-0.39l-0.97,-2.27l-0.27,-0.18l-2.89,-0.02l-1.04,-2.21l-1.28,-1.83l0.96,-0.46l1.97,0.01l2.43,-0.3l0.13,-0.05l1.95,-1.29l1.04,0.85l0.13,0.06l1.98,0.42l-0.32,1.21l0.09,0.3l1.19,1.07l0.12,0.07l1.88,0.51Z\", \"name\": \"Vietnam\" }, \"AR\": { \"path\": \"M258.11,341.34l1.4,1.81l0.51,-0.06l0.89,-1.94l2.51,0.1l0.36,0.49l4.6,4.31l0.15,0.08l1.99,0.39l3.01,1.93l2.5,1.01l0.28,0.91l-2.4,3.97l0.17,0.44l2.57,0.74l2.81,0.41l2.09,-0.44l0.14,-0.07l2.27,-2.06l0.09,-0.17l0.38,-2.2l0.88,-0.36l1.05,1.29l-0.04,1.88l-1.98,1.4l-1.72,1.13l-2.84,2.65l-3.34,3.73l-0.07,0.12l-0.63,2.22l-0.67,2.85l0.02,2.73l-0.47,0.54l-0.07,0.17l-0.36,3.28l0.12,0.27l3.03,2.32l-0.31,1.78l0.11,0.29l1.44,1.15l-0.11,1.17l-2.32,3.57l-3.59,1.51l-4.95,0.6l-2.72,-0.29l-0.32,0.38l0.5,1.67l-0.49,2.13l0.01,0.16l0.4,1.29l-1.27,0.88l-2.41,0.39l-2.33,-1.05l-0.31,0.04l-0.97,0.78l-0.11,0.27l0.35,2.98l0.16,0.23l1.69,0.91l0.31,-0.02l1.08,-0.75l0.46,0.96l-2.1,0.88l-2.01,1.89l-0.09,0.18l-0.36,3.05l-0.51,1.42l-2.16,0.01l-0.19,0.07l-1.96,1.59l-0.1,0.15l-0.72,2.34l0.08,0.31l2.46,2.31l0.13,0.07l2.09,0.56l-0.74,2.45l-2.86,1.75l-0.12,0.14l-1.59,3.71l-2.2,1.24l-0.1,0.09l-1.03,1.54l-0.04,0.23l0.81,3.45l0.06,0.13l1.13,1.32l-2.59,-0.57l-5.89,-0.44l-0.92,-1.73l0.05,-2.4l-0.34,-0.3l-1.49,0.19l-0.72,-0.98l-0.2,-3.21l1.79,-1.33l0.1,-0.13l0.79,-2.04l0.02,-0.16l-0.27,-1.52l1.31,-2.69l0.91,-4.15l-0.23,-1.72l0.91,-0.49l0.15,-0.33l-0.27,-1.16l-0.15,-0.2l-0.87,-0.46l0.65,-1.01l-0.04,-0.37l-1.06,-1.09l-0.54,-3.2l0.83,-0.51l0.14,-0.29l-0.42,-3.6l0.58,-2.98l0.64,-2.5l1.41,-1.0l0.12,-0.32l-0.75,-2.8l-0.01,-2.48l1.81,-1.78l0.09,-0.22l-0.06,-2.3l1.39,-2.69l0.03,-0.14l0.01,-2.58l-0.11,-0.24l-0.57,-0.45l-1.1,-4.59l1.49,-2.73l0.04,-0.17l-0.23,-2.59l0.86,-2.38l1.6,-2.48l1.74,-1.65l0.04,-0.39l-0.64,-0.89l0.42,-0.7l0.04,-0.16l-0.08,-4.26l2.55,-1.23l0.16,-0.18l0.86,-2.75l-0.01,-0.22l-0.22,-0.48l1.84,-2.1l3.0,0.59ZM256.77,438.98l-2.1,0.15l-1.18,-1.14l-0.19,-0.08l-1.53,-0.09l-2.38,-0.0l-0.0,-6.28l0.4,0.65l1.25,2.55l0.11,0.12l3.26,2.07l3.19,0.8l-0.82,1.26Z\", \"name\": \"Argentina\" }, \"AU\": { \"path\": \"M705.55,353.06l0.09,0.09l0.37,0.05l0.13,-0.35l-0.57,-1.69l0.48,0.3l0.71,0.99l0.34,0.11l0.2,-0.29l-0.04,-1.37l-0.04,-0.14l-1.22,-2.07l-0.28,-0.9l-0.51,-0.69l0.24,-1.33l0.52,-0.7l0.34,-1.32l0.01,-0.13l-0.25,-1.44l0.51,-0.94l0.1,1.03l0.23,0.26l0.32,-0.14l1.01,-1.72l1.94,-0.84l1.27,-1.14l1.84,-0.92l1.0,-0.18l0.6,0.28l0.26,-0.0l1.94,-0.96l1.48,-0.28l0.19,-0.13l0.32,-0.49l0.51,-0.18l1.42,0.05l2.63,-0.76l0.11,-0.06l1.36,-1.15l0.08,-0.1l0.61,-1.33l1.42,-1.27l0.1,-0.19l0.11,-1.03l0.06,-1.32l1.39,-1.74l0.85,1.79l0.4,0.14l1.07,-0.51l0.11,-0.45l-0.77,-1.05l0.53,-0.84l0.86,0.43l0.43,-0.22l0.29,-1.85l1.29,-1.19l0.6,-0.98l1.16,-0.4l0.2,-0.27l0.02,-0.34l0.74,0.2l0.38,-0.27l0.03,-0.44l1.98,-0.61l1.7,1.08l1.36,1.48l0.22,0.1l1.55,0.02l1.57,0.24l0.33,-0.4l-0.48,-1.27l1.09,-1.86l1.06,-0.63l0.1,-0.42l-0.28,-0.46l0.93,-1.24l1.36,-0.8l1.16,0.27l0.14,0.0l2.1,-0.48l0.23,-0.3l-0.05,-1.3l-0.18,-0.26l-1.08,-0.49l0.44,-0.12l1.52,0.58l1.39,1.06l2.11,0.65l0.19,-0.0l0.59,-0.21l1.44,0.72l0.27,0.0l1.37,-0.68l0.84,0.2l0.26,-0.06l0.37,-0.3l0.82,0.89l-0.56,1.14l-0.84,0.91l-0.75,0.07l-0.26,0.38l0.26,0.9l-0.67,1.15l-0.88,1.24l-0.05,0.25l0.18,0.72l0.12,0.17l1.99,1.42l1.96,0.84l1.25,0.86l1.8,1.51l0.19,0.07l0.63,-0.0l1.15,0.58l0.34,0.7l0.17,0.15l2.39,0.88l0.24,-0.02l1.65,-0.88l0.14,-0.16l0.49,-1.37l0.52,-1.19l0.31,-1.39l0.75,-2.02l0.01,-0.19l-0.33,-1.16l0.16,-0.67l0.0,-0.13l-0.28,-1.41l0.3,-1.78l0.42,-0.45l0.05,-0.33l-0.33,-0.73l0.56,-1.25l0.48,-1.39l0.07,-0.69l0.58,-0.59l0.48,0.84l0.17,1.53l0.17,0.24l0.47,0.23l0.09,0.9l0.05,0.14l0.87,1.23l0.17,1.33l-0.09,0.89l0.03,0.15l0.9,2.0l0.43,0.13l1.38,-0.83l0.71,0.92l1.06,0.88l-0.22,0.96l0.0,0.14l0.53,2.2l0.38,1.3l0.15,0.18l0.52,0.26l0.62,2.01l-0.23,1.27l0.02,0.18l0.81,1.76l0.14,0.14l2.69,1.35l3.21,2.21l-0.2,0.4l0.04,0.34l1.39,1.6l0.95,2.78l0.43,0.16l0.79,-0.46l0.85,0.96l0.39,0.05l0.22,-0.15l0.36,2.33l0.09,0.18l1.78,1.63l1.16,1.01l1.9,2.1l0.67,2.05l0.06,1.47l-0.17,1.64l0.03,0.17l1.16,2.22l-0.14,2.28l-0.43,1.24l-0.68,2.44l0.04,1.63l-0.48,1.92l-1.06,2.43l-1.79,1.32l-0.1,0.12l-0.91,2.15l-0.82,1.37l-0.76,2.47l-0.98,1.46l-0.63,2.14l-0.33,2.02l0.1,0.82l-1.21,0.85l-2.71,0.1l-0.13,0.03l-2.31,1.19l-1.21,1.17l-1.34,1.11l-1.89,-1.18l-1.33,-0.46l0.32,-1.24l-0.4,-0.35l-1.46,0.61l-2.06,1.98l-1.99,-0.73l-1.43,-0.46l-1.45,-0.22l-2.32,-0.81l-1.51,-1.67l-0.45,-2.11l-0.6,-1.5l-0.07,-0.11l-1.23,-1.16l-0.16,-0.08l-1.96,-0.28l0.59,-0.99l0.03,-0.24l-0.61,-2.1l-0.54,-0.08l-1.16,1.85l-1.23,0.29l0.73,-0.88l0.06,-0.12l0.37,-1.57l0.93,-1.33l0.05,-0.2l-0.2,-2.07l-0.53,-0.17l-2.01,2.35l-1.52,0.94l-0.12,0.14l-0.82,1.93l-1.5,-0.9l0.07,-1.32l-0.06,-0.2l-1.57,-2.04l-1.15,-0.92l0.3,-0.41l-0.1,-0.44l-3.21,-1.69l-0.13,-0.03l-1.69,-0.08l-2.35,-1.31l-0.16,-0.04l-4.55,0.27l-3.24,0.99l-2.8,0.91l-2.33,-0.18l-0.17,0.03l-2.63,1.41l-2.14,0.64l-0.2,0.19l-0.47,1.42l-0.8,0.99l-1.99,0.06l-1.55,0.24l-2.27,-0.5l-1.79,0.3l-1.71,0.13l-0.19,0.09l-1.38,1.39l-0.58,-0.1l-0.21,0.04l-1.26,0.8l-1.13,0.85l-1.72,-0.1l-1.6,-0.0l-2.58,-1.76l-1.21,-0.49l0.04,-1.19l1.04,-0.32l0.16,-0.12l0.42,-0.64l0.05,-0.19l-0.09,-0.97l0.3,-2.0l-0.28,-1.64l-1.34,-2.84l-0.39,-1.49l0.1,-1.51l-0.04,-0.17l-0.96,-1.72l-0.06,-0.73l-0.09,-0.19l-1.04,-1.01l-0.3,-2.02l-0.05,-0.12l-1.23,-1.83ZM784.95,393.35l2.39,1.01l0.2,0.01l3.26,-0.96l1.19,0.16l0.16,3.19l-0.78,0.95l-0.07,0.16l-0.19,1.83l-0.43,-0.41l-0.44,0.03l-1.61,1.96l-0.4,-0.12l-1.38,-0.09l-1.43,-2.42l-0.37,-2.03l-1.4,-2.53l0.04,-0.94l1.27,0.2Z\", \"name\": \"Australia\" }, \"IL\": { \"path\": \"M509.04,199.22l0.71,0.0l0.27,-0.17l0.15,-0.33l0.19,-0.01l0.02,0.73l-0.27,0.34l0.02,0.08l-0.32,0.62l-0.65,-0.27l-0.41,0.19l-0.52,1.85l0.16,0.35l0.14,0.07l-0.17,0.1l-0.14,0.21l-0.11,0.73l0.39,0.33l0.81,-0.26l0.03,0.64l-0.97,3.43l-1.28,-3.67l0.62,-0.78l-0.03,-0.41l0.58,-1.16l0.5,-2.07l0.27,-0.54Z\", \"name\": \"Israel\" }, \"IN\": { \"path\": \"M615.84,192.58l2.4,2.97l-0.24,2.17l0.05,0.2l0.94,1.35l-0.06,0.97l-1.46,-0.3l-0.35,0.36l0.7,3.06l0.12,0.18l2.46,1.75l3.11,1.72l-1.23,0.96l-0.1,0.13l-0.97,2.55l0.16,0.38l2.41,1.02l2.37,1.33l3.27,1.52l3.43,0.37l1.37,1.3l0.17,0.08l1.92,0.25l3.0,0.62l2.15,-0.04l0.28,-0.22l0.29,-1.06l0.0,-0.13l-0.32,-1.66l0.16,-0.94l1.0,-0.37l0.23,2.28l0.18,0.24l2.28,1.02l0.2,0.02l1.52,-0.41l2.06,0.18l2.08,-0.08l0.29,-0.27l0.18,-1.66l-0.1,-0.26l-0.53,-0.44l1.38,-0.23l0.15,-0.07l2.26,-2.0l2.75,-1.65l1.97,0.63l0.25,-0.03l1.54,-0.99l0.89,1.28l-0.72,0.97l0.2,0.48l2.49,0.37l0.11,0.61l-0.69,0.39l-0.15,0.3l0.15,1.22l-1.36,-0.37l-0.23,0.03l-3.24,1.86l-0.15,0.28l0.07,1.44l-1.33,2.16l-0.04,0.13l-0.12,1.24l-0.98,1.91l-1.72,-0.53l-0.39,0.28l-0.09,2.66l-0.52,0.83l-0.04,0.23l0.21,0.89l-0.71,0.36l-1.21,-3.85l-0.29,-0.21l-0.69,0.01l-0.29,0.23l-0.28,1.17l-0.84,-0.84l0.6,-1.17l0.97,-0.13l0.23,-0.16l1.15,-2.25l-0.18,-0.42l-1.54,-0.47l-2.3,0.04l-2.13,-0.33l-0.19,-1.63l-0.26,-0.26l-1.13,-0.13l-1.93,-1.13l-0.42,0.13l-0.88,1.82l0.08,0.37l1.47,1.15l-1.21,0.77l-0.1,0.1l-0.56,0.97l0.13,0.42l1.31,0.61l-0.36,1.35l0.01,0.2l0.85,1.95l0.37,2.05l-0.26,0.68l-1.55,-0.02l-3.09,0.54l-0.25,0.32l0.13,1.84l-1.21,1.4l-3.64,1.79l-2.79,3.04l-1.86,1.61l-2.48,1.68l-0.13,0.25l-0.0,1.0l-1.07,0.55l-2.21,0.9l-1.13,0.13l-0.25,0.19l-0.75,1.96l-0.02,0.15l0.52,3.31l0.13,2.03l-1.03,2.35l-0.03,0.12l-0.01,4.03l-1.02,0.1l-0.23,0.15l-1.14,1.93l0.04,0.36l0.44,0.48l-1.83,0.57l-0.18,0.15l-0.81,1.65l-0.74,0.53l-2.14,-2.12l-1.14,-3.47l-0.96,-2.57l-0.9,-1.26l-1.3,-2.38l-0.61,-3.14l-0.44,-1.62l-2.29,-3.56l-1.03,-4.94l-0.74,-3.29l0.01,-3.12l-0.49,-2.51l-0.41,-0.22l-3.56,1.53l-1.59,-0.28l-2.96,-2.87l0.94,-0.74l0.06,-0.41l-0.74,-1.03l-2.73,-2.1l1.35,-1.43l5.38,0.01l0.29,-0.36l-0.5,-2.29l-0.09,-0.15l-1.33,-1.28l-0.27,-1.96l-0.12,-0.2l-1.36,-1.0l2.42,-2.48l2.77,0.2l0.24,-0.1l2.62,-2.85l1.59,-2.8l2.41,-2.74l0.07,-0.2l-0.04,-1.82l2.01,-1.51l-0.01,-0.49l-1.95,-1.33l-0.83,-1.81l-0.82,-2.27l0.98,-0.97l3.64,0.66l2.89,-0.42l0.17,-0.08l2.18,-2.15Z\", \"name\": \"India\" }, \"TZ\": { \"path\": \"M505.77,287.58l0.36,0.23l8.95,5.03l0.15,1.3l0.13,0.21l3.4,2.37l-1.07,2.88l-0.02,0.14l0.15,1.42l0.15,0.23l1.47,0.84l0.05,0.42l-0.66,1.44l-0.02,0.18l0.13,0.72l-0.16,1.16l0.03,0.19l0.87,1.57l1.03,2.48l0.12,0.14l0.53,0.32l-1.59,1.18l-2.64,0.95l-1.45,-0.04l-0.2,0.07l-0.81,0.69l-1.64,0.06l-0.68,0.3l-2.9,-0.69l-1.71,0.17l-0.65,-3.18l-0.05,-0.12l-1.35,-1.88l-0.19,-0.12l-2.41,-0.46l-1.38,-0.74l-1.63,-0.44l-0.96,-0.41l-0.95,-0.58l-1.31,-3.09l-1.47,-1.46l-0.45,-1.31l0.24,-1.34l-0.39,-1.99l0.71,-0.08l0.18,-0.09l0.91,-0.91l0.98,-1.31l0.59,-0.5l0.11,-0.24l-0.02,-0.81l-0.08,-0.2l-0.47,-0.5l-0.1,-0.67l0.51,-0.23l0.18,-0.25l0.14,-1.47l-0.05,-0.2l-0.76,-1.09l0.45,-0.15l2.71,0.03l5.01,-0.19Z\", \"name\": \"Tanzania\" }, \"AZ\": { \"path\": \"M539.36,175.66l0.16,0.09l1.11,0.2l0.32,-0.15l0.4,-0.71l1.22,-0.99l1.11,1.33l1.26,2.09l0.22,0.14l1.06,0.13l0.28,0.29l-1.46,0.17l-0.26,0.24l-0.43,2.26l-0.39,0.92l-0.85,0.63l-0.12,0.25l0.06,1.2l-0.22,0.05l-1.28,-1.25l0.74,-1.25l-0.03,-0.35l-0.74,-0.86l-0.3,-0.1l-1.05,0.27l-2.49,1.82l-0.04,-1.46l-0.18,-0.27l-1.09,-0.47l-0.8,-0.6l0.53,-0.7l-0.06,-0.42l-1.11,-0.84l0.34,-0.51l-0.11,-0.43l-0.89,-0.48l-0.33,-0.49l0.25,-0.2l1.78,0.81l1.35,0.18l0.25,-0.09l0.34,-0.35l0.02,-0.39l-1.04,-1.36l0.28,-0.18l0.49,0.07l1.65,1.74ZM533.53,180.16l0.63,0.67l0.22,0.09l0.8,-0.0l0.04,0.31l0.66,1.09l-0.94,-0.21l-1.16,-1.24l-0.25,-0.71Z\", \"name\": \"Azerbaijan\" }, \"IE\": { \"path\": \"M405.17,135.35l0.36,2.16l-1.78,2.84l-4.28,1.91l-3.02,-0.43l1.81,-3.13l0.02,-0.26l-1.23,-3.26l3.24,-2.56l1.54,-1.32l0.37,1.33l-0.49,1.77l0.3,0.38l1.49,-0.05l1.68,0.63Z\", \"name\": \"Ireland\" }, \"ID\": { \"path\": \"M756.56,287.86l0.69,4.02l0.15,0.21l2.59,1.5l0.39,-0.07l2.05,-2.61l2.75,-1.45l2.09,-0.0l2.08,0.85l1.85,0.89l2.52,0.46l0.08,15.44l-1.72,-1.6l-0.15,-0.07l-2.54,-0.51l-0.29,0.1l-0.53,0.62l-2.53,0.06l0.78,-1.51l1.48,-0.66l0.17,-0.34l-0.65,-2.74l-1.23,-2.19l-0.14,-0.13l-4.85,-2.13l-2.09,-0.23l-3.7,-2.28l-0.41,0.1l-0.67,1.11l-0.63,0.14l-0.41,-0.67l-0.01,-1.01l-0.14,-0.25l-1.39,-0.89l2.05,-0.69l1.73,0.05l0.29,-0.39l-0.21,-0.66l-0.29,-0.21l-3.5,-0.0l-0.9,-1.36l-0.19,-0.13l-2.14,-0.44l-0.65,-0.76l2.86,-0.51l1.28,-0.79l3.75,0.96l0.32,0.76ZM758.01,300.37l-0.79,1.04l-0.14,-1.07l0.4,-0.81l0.29,-0.47l0.24,0.31l-0.0,1.0ZM747.45,292.9l0.48,1.02l-1.45,-0.69l-2.09,-0.21l-1.45,0.16l-1.28,-0.07l0.35,-0.81l2.86,-0.1l2.58,0.68ZM741.15,285.69l-0.16,-0.25l-0.72,-3.08l0.47,-1.86l0.35,-0.38l0.1,0.73l0.25,0.26l1.28,0.19l0.18,0.78l-0.11,1.8l-0.96,-0.18l-0.35,0.22l-0.38,1.52l0.05,0.24ZM741.19,285.75l0.76,0.97l-0.11,0.05l-0.65,-1.02ZM739.18,293.52l-0.61,0.54l-1.44,-0.38l-0.25,-0.55l1.93,-0.09l0.36,0.48ZM728.4,295.87l-0.27,-0.07l-2.26,0.89l-0.37,-0.41l0.27,-0.8l-0.09,-0.33l-1.68,-1.37l0.17,-2.29l-0.42,-0.3l-1.67,0.76l-0.17,0.29l0.21,2.92l0.09,3.34l-1.22,0.28l-0.78,-0.54l0.65,-2.1l0.01,-0.14l-0.39,-2.42l-0.29,-0.25l-0.86,-0.02l-0.63,-1.4l0.99,-1.61l0.35,-1.97l1.24,-3.73l0.49,-0.96l1.95,-1.7l1.86,0.69l3.16,0.35l2.92,-0.1l0.17,-0.06l2.24,-1.65l0.11,0.14l-1.8,2.22l-1.72,0.44l-2.41,-0.48l-4.21,0.13l-2.19,0.36l-0.25,0.24l-0.36,1.9l0.08,0.27l2.24,2.23l0.4,0.02l1.29,-1.08l3.19,-0.58l-0.19,0.06l-1.04,1.4l-2.13,0.94l-0.12,0.45l2.26,3.06l-0.37,0.69l0.03,0.32l1.51,1.95ZM728.48,295.97l0.59,0.76l-0.02,1.37l-1.0,0.55l-0.64,-0.58l1.09,-1.84l-0.02,-0.26ZM728.64,286.95l0.79,-0.14l-0.07,0.39l-0.72,-0.24ZM732.38,310.1l-1.89,0.49l-0.06,-0.06l0.17,-0.64l1.0,-1.42l2.14,-0.87l0.1,0.2l0.04,0.58l-1.49,1.72ZM728.26,305.71l-0.17,0.63l-3.53,0.67l-3.02,-0.28l-0.0,-0.42l1.66,-0.44l1.47,0.71l0.16,0.03l1.75,-0.21l1.69,-0.69ZM722.98,310.33l-0.74,0.03l-2.52,-1.35l1.42,-0.3l1.19,0.7l0.72,0.63l-0.06,0.28ZM716.24,305.63l0.66,0.49l0.22,0.06l1.35,-0.18l0.31,0.53l-4.18,0.77l-0.8,-0.01l0.51,-0.86l1.2,-0.02l0.24,-0.12l0.49,-0.65ZM715.84,280.21l0.09,0.34l2.25,1.86l-2.25,0.22l-0.24,0.17l-0.84,1.71l-0.03,0.15l0.1,2.11l-2.27,1.62l-0.13,0.24l-0.06,2.46l-0.74,2.92l-0.02,-0.05l-0.39,-0.16l-2.62,1.04l-0.86,-1.33l-0.23,-0.14l-1.71,-0.14l-1.19,-0.76l-0.25,-0.03l-2.78,0.84l-0.79,-1.05l-0.26,-0.12l-1.61,0.13l-1.8,-0.25l-0.36,-3.13l-0.15,-0.23l-1.18,-0.65l-1.13,-2.02l-0.33,-2.1l0.27,-2.19l1.05,-1.17l0.28,1.12l0.1,0.16l1.71,1.41l0.28,0.05l1.55,-0.49l1.54,0.17l0.23,-0.07l1.4,-1.21l1.05,-0.19l2.3,0.68l0.16,0.0l2.04,-0.53l0.21,-0.19l1.26,-3.41l0.91,-0.82l0.09,-0.14l0.8,-2.64l2.63,0.0l1.71,0.33l-1.19,1.89l0.02,0.34l1.74,2.24l-0.37,1.0ZM692.67,302.0l0.26,0.19l4.8,0.25l0.28,-0.16l0.44,-0.83l4.29,1.12l0.85,1.52l0.23,0.15l3.71,0.45l2.37,1.15l-2.06,0.69l-2.77,-1.0l-2.25,0.07l-2.57,-0.18l-2.31,-0.45l-2.94,-0.97l-1.84,-0.25l-0.13,0.01l-0.97,0.29l-4.34,-0.98l-0.38,-0.94l-0.25,-0.19l-1.76,-0.14l1.31,-1.84l2.81,0.14l1.97,0.96l0.95,0.19l0.28,0.74ZM685.63,299.27l-2.36,0.04l-2.07,-2.05l-3.17,-2.02l-1.06,-1.5l-1.88,-2.02l-1.22,-1.85l-1.9,-3.49l-2.2,-2.11l-0.71,-2.08l-0.94,-1.99l-0.1,-0.12l-2.21,-1.54l-1.35,-2.17l-1.86,-1.39l-2.53,-2.68l-0.14,-0.81l1.22,0.08l3.76,0.47l2.16,2.4l1.94,1.7l1.37,1.04l2.35,2.67l0.22,0.1l2.44,0.04l1.99,1.62l1.42,2.06l0.09,0.09l1.67,1.0l-0.88,1.8l0.11,0.39l1.44,0.87l0.13,0.04l0.68,0.05l0.41,1.62l0.87,1.4l0.22,0.14l1.71,0.21l1.06,1.38l-0.61,3.04l-0.09,3.6Z\", \"name\": \"Indonesia\" }, \"UA\": { \"path\": \"M500.54,141.42l0.9,0.13l0.27,-0.11l0.52,-0.62l0.68,0.13l2.43,-0.3l1.32,1.57l-0.45,0.48l-0.07,0.26l0.21,1.03l0.27,0.24l1.85,0.15l0.76,1.22l-0.05,0.55l0.2,0.31l3.18,1.15l0.18,0.01l1.75,-0.47l1.42,1.41l0.22,0.09l1.42,-0.03l3.44,0.99l0.02,0.65l-0.97,1.62l-0.03,0.24l0.52,1.67l-0.29,0.79l-2.24,0.22l-0.14,0.05l-1.29,0.89l-0.13,0.23l-0.07,1.16l-1.75,0.22l-0.12,0.04l-1.6,0.98l-2.27,0.16l-0.12,0.04l-2.16,1.17l-0.16,0.29l0.15,1.94l0.14,0.23l1.23,0.75l0.18,0.04l2.06,-0.15l-0.22,0.51l-2.67,0.54l-3.27,1.72l-1.0,-0.45l0.45,-1.19l-0.19,-0.39l-2.34,-0.78l0.15,-0.2l2.32,-1.0l0.09,-0.49l-0.73,-0.72l-0.15,-0.08l-3.69,-0.75l-0.14,-0.96l-0.35,-0.25l-2.32,0.39l-0.21,0.15l-0.91,1.7l-1.77,2.1l-0.93,-0.44l-0.24,-0.0l-1.05,0.45l-0.48,-0.25l0.13,-0.07l0.14,-0.15l0.43,-1.04l0.67,-0.97l0.04,-0.26l-0.1,-0.31l0.04,-0.02l0.11,0.19l0.24,0.15l1.48,0.09l0.78,-0.25l0.07,-0.53l-0.27,-0.19l0.09,-0.25l-0.08,-0.33l-0.81,-0.74l-0.34,-1.24l-0.14,-0.18l-0.73,-0.42l0.15,-0.87l-0.11,-0.29l-1.13,-0.86l-0.15,-0.06l-0.97,-0.11l-1.79,-0.97l-0.2,-0.03l-1.66,0.32l-0.13,0.06l-0.52,0.41l-0.95,-0.0l-0.23,0.11l-0.56,0.66l-1.74,0.29l-0.79,0.43l-1.01,-0.68l-0.16,-0.05l-1.57,-0.01l-1.52,-0.35l-0.23,0.04l-0.71,0.45l-0.09,-0.43l-0.13,-0.19l-1.18,-0.74l0.38,-1.02l0.53,-0.64l0.35,0.12l0.37,-0.41l-0.57,-1.29l2.1,-2.5l1.16,-0.36l0.2,-0.2l0.27,-0.92l-0.01,-0.2l-1.1,-2.52l0.79,-0.09l0.13,-0.05l1.3,-0.86l1.83,-0.07l2.48,0.26l2.84,0.8l1.91,0.06l0.88,0.45l0.29,-0.01l0.72,-0.44l0.49,0.58l0.25,0.11l2.2,-0.16l0.94,0.3l0.39,-0.26l0.15,-1.57l0.61,-0.59l2.01,-0.19Z\", \"name\": \"Ukraine\" }, \"QA\": { \"path\": \"M548.47,221.47l-0.15,-1.72l0.59,-1.23l0.38,-0.16l0.54,0.6l0.04,1.4l-0.47,1.37l-0.41,0.11l-0.53,-0.37Z\", \"name\": \"Qatar\" }, \"MZ\": { \"path\": \"M507.71,314.14l1.65,-0.18l2.96,0.7l0.2,-0.02l0.6,-0.29l1.68,-0.06l0.18,-0.07l0.8,-0.69l1.5,0.02l2.74,-0.98l1.74,-1.27l0.25,0.7l-0.1,2.47l0.31,2.27l0.1,3.97l0.42,1.24l-0.7,1.71l-0.94,1.73l-1.52,1.52l-5.06,2.21l-2.88,2.8l-1.01,0.51l-1.72,1.81l-0.99,0.58l-0.15,0.23l-0.21,1.86l0.04,0.19l1.17,1.95l0.47,1.47l0.03,0.74l0.39,0.28l0.05,-0.01l-0.06,2.13l-0.39,1.19l0.1,0.33l0.42,0.32l-0.28,0.83l-0.95,0.86l-2.03,0.88l-3.08,1.49l-1.1,0.99l-0.09,0.28l0.21,1.13l0.21,0.23l0.38,0.11l-0.14,0.89l-1.39,-0.02l-0.17,-0.94l-0.38,-1.23l-0.2,-0.89l0.44,-2.91l-0.01,-0.14l-0.65,-1.88l-1.15,-3.55l2.52,-2.85l0.68,-1.89l0.29,-0.18l0.14,-0.2l0.28,-1.53l-0.03,-0.19l-0.36,-0.7l0.1,-1.83l0.49,-1.84l-0.01,-3.26l-0.14,-0.25l-1.3,-0.83l-0.11,-0.04l-1.08,-0.17l-0.47,-0.55l-0.1,-0.08l-1.16,-0.54l-0.13,-0.03l-1.83,0.04l-0.32,-2.25l7.19,-1.99l1.32,1.12l0.29,0.06l0.55,-0.19l0.75,0.49l0.11,0.81l-0.49,1.11l-0.02,0.15l0.19,1.81l0.09,0.18l1.63,1.59l0.48,-0.1l0.72,-1.68l0.99,-0.49l0.17,-0.29l-0.21,-3.29l-0.04,-0.13l-1.11,-1.92l-0.9,-0.82l-0.21,-0.08l-0.62,0.03l-0.63,-2.98l0.61,-1.67Z\", \"name\": \"Mozambique\" } }, \"height\": 440.7063107441331, \"projection\": { \"type\": \"mill\", \"centralMeridian\": 11.5 }, \"width\": 900.0 });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9wbHVnaW5zL2p2ZWN0b3JtYXAvanF1ZXJ5LWp2ZWN0b3JtYXAtd29ybGQtbWlsbC1lbi5qcz81ODVjIl0sIm5hbWVzIjpbIiQiLCJmbiIsInZlY3Rvck1hcCJdLCJtYXBwaW5ncyI6IkFBQUFBLEVBQUVDLEVBQUYsQ0FBS0MsU0FBTCxDQUFlLFFBQWYsRUFBeUIsZUFBekIsRUFBeUMsRUFBQyxVQUFVLENBQUMsRUFBQyxTQUFTLEtBQVYsRUFBaUIsT0FBTyxDQUF4QixFQUEyQixVQUFVLGlCQUFyQyxFQUF3RCxRQUFRLENBQUMsRUFBQyxLQUFLLENBQUMsa0JBQVAsRUFBMkIsS0FBSyxDQUFDLGtCQUFqQyxFQUFELEVBQXVELEVBQUMsS0FBSyxnQkFBTixFQUF3QixLQUFLLGtCQUE3QixFQUF2RCxDQUFoRSxFQUEwSyxRQUFRLENBQWxMLEVBQUQsQ0FBWCxFQUFtTSxTQUFTLEVBQUMsTUFBTSxFQUFDLFFBQVEscWZBQVQsRUFBZ2dCLFFBQVEsWUFBeGdCLEVBQVAsRUFBOGhCLE1BQU0sRUFBQyxRQUFRLHVOQUFULEVBQWtPLFFBQVEsU0FBMU8sRUFBcGlCLEVBQTB4QixNQUFNLEVBQUMsUUFBUSwra0JBQVQsRUFBMGxCLFFBQVEsY0FBbG1CLEVBQWh5QixFQUFtNUMsTUFBTSxFQUFDLFFBQVEsd1pBQVQsRUFBbWEsUUFBUSxVQUEzYSxFQUF6NUMsRUFBaTFELE1BQU0sRUFBQyxRQUFRLHlSQUFULEVBQW9TLFFBQVEsd0JBQTVTLEVBQXYxRCxFQUE4cEUsTUFBTSxFQUFDLFFBQVEsK0ZBQVQsRUFBMEcsUUFBUSxRQUFsSCxFQUFwcUUsRUFBaXlFLE1BQU0sRUFBQyxRQUFRLCs1QkFBVCxFQUEwNkIsUUFBUSxTQUFsN0IsRUFBdnlFLEVBQXF1RyxNQUFNLEVBQUMsUUFBUSxzNEJBQVQsRUFBaTVCLFFBQVEsT0FBejVCLEVBQTN1RyxFQUE4b0ksTUFBTSxFQUFDLFFBQVEsZ0xBQVQs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RUFBbW5CLFFBQVEsWUFBM25CLEVBQTVvckksRUFBc3hzSSxNQUFNLEVBQUMsUUFBUSx3S0FBVCxFQUFtTCxRQUFRLFNBQTNMLEVBQTV4c0ksRUFBbStzSSxNQUFNLEVBQUMsUUFBUSwrMkdBQVQsRUFBMDNHLFFBQVEsV0FBbDRHLEVBQXorc0ksRUFBeTN6SSxNQUFNLEVBQUMsUUFBUSw2K0NBQVQsRUFBdy9DLFFBQVEsU0FBaGdELEVBQS8zekksRUFBMjQySSxNQUFNLEVBQUMsUUFBUSx1R0FBVCxFQUFrSCxRQUFRLE9BQTFILEVBQWo1MkksRUFBcWgzSSxNQUFNLEVBQUMsUUFBUSwraENBQVQsRUFBMGlDLFFBQVEsWUFBbGpDLEVBQTNoM0ksRUFBNU0sRUFBeXk1SSxVQUFVLGlCQUFuejVJLEVBQXMwNUksY0FBYyxFQUFDLFFBQVEsTUFBVCxFQUFpQixtQkFBbUIsSUFBcEMsRUFBcDE1SSxFQUErMzVJLFNBQVMsS0FBeDQ1SSxFQUF6QyIsImZpbGUiOiI1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIiQuZm4udmVjdG9yTWFwKCdhZGRNYXAnLCAnd29ybGRfbWlsbF9lbicse1wiaW5zZXRzXCI6IFt7XCJ3aWR0aFwiOiA5MDAuMCwgXCJ0b3BcIjogMCwgXCJoZWlnaHRcIjogNDQwLjcwNjMxMDc0NDEzMzEsIFwiYmJveFwiOiBbe1wieVwiOiAtMTI2NzE2NzEuMTIzMzMwMDE0LCBcInhcIjogLTIwMDA0Mjk3LjE1MTUyNTgzNn0sIHtcInlcIjogNjkzMDM5Mi4wMjUxMzUxMiwgXCJ4XCI6IDIwMDI2NTcyLjM5NDc0OTM4NH1dLCBcImxlZnRcIjogMH1dLCBcInBhdGhzXCI6IHtcIkJEXCI6IHtcInBhdGhcIjogXCJNNjUyLjcxLDIyOC44NWwtMC4wNCwxLjM4bC0wLjQ2LC0wLjIxbC0wLjQyLDAuM2wwLjA1LDAuNjVsLTAuMTcsLTEuMzdsLTAuNDgsLTEuMjZsLTEuMDgsLTEuNmwtMC4yMywtMC4xM2wtMi4zMSwtMC4xMWwtMC4zMSwwLjM2bDAuMjEsMC45OGwtMC42LDEuMTFsLTAuOCwtMC40bC0wLjM3LDAuMDlsLTAuMjMsMC4zbC0wLjU0LC0wLjIxbC0wLjc4LC0wLjE5bC0wLjM4LC0yLjA0bC0wLjgzLC0xLjg5bDAuNCwtMS41bC0wLjE2LC0wLjM1bC0xLjI0LC0wLjU3bDAuMzYsLTAuNjJsMS41LC0wLjk1bDAuMDIsLTAuNDlsLTEuNjIsLTEuMjZsMC42NCwtMS4zMWwxLjcsMS4wbDAuMTIsMC4wNGwwLjk2LDAuMTFsMC4xOSwxLjYybDAuMjUsMC4yNmwyLjM4LDAuMzdsMi4zMiwtMC4wNGwxLjA2LDAuMzNsLTAuOTIsMS43OWwtMC45NywwLjEzbC0wLjIzLDAuMTZsLTAuNzcsMS41MWwwLjA1LDAuMzVsMS4zNywxLjM3bDAuNSwtMC4xNGwwLjM1LC0xLjQ2bDAuMjQsLTAuMGwxLjI0LDMuOTJaXCIsIFwibmFtZVwiOiBcIkJhbmdsYWRlc2hcIn0sIFwiQkVcIjoge1wicGF0aFwiOiBcIk00MjkuMjgsMTQzLjk1bDEuNzYsMC4yNWwwLjEzLC0wLjAxbDIuMTYsLTAuNjRsMS40NiwxLjM0bDEuMjYsMC43MWwtMC4yMywxLjhsLTAuNDQsMC4wOGwtMC4yNCwwLjI1bC0wLjIsMS4zNmwtMS44LC0xLjIybC0wLjIzLC0wLjA1bC0xLjE0LDAuMjNsLTEuNjIsLTEuNDNsLTEuMTUsLTEuMzFsLTAuMjEsLTAuMWwtMC45NSwtMC4wNGwtMC4yMSwtMC42OGwxLjY2LC0wLjU0WlwiLCBcIm5hbWVcIjogXCJCZWxnaXVtXCJ9LCBcIkJGXCI6IHtcInBhdGhcIjogXCJNNDEzLjQ4LDI2MC4yMWwtMS4yMiwtMC40NmwtMC4xMywtMC4wMmwtMS4xNywwLjFsLTAuMTUsMC4wNmwtMC43MywwLjUzbC0wLjg3LC0wLjQxbC0wLjM5LC0wLjc1bC0wLjEzLC0wLjEzbC0wLjk4LC0wLjQ4bC0wLjE0LC0xLjJsMC42MywtMC45OWwwLjA1LC0wLjE4bC0wLjA1LC0wLjczbDEuOSwtMi4wMWwwLjA4LC0wLjE0bDAuMzUsLTEuNjVsMC40OSwtMC40NGwxLjA1LDAuM2wwLjIxLC0wLjAybDEuMDUsLTAuNTJsMC4xMywtMC4xM2wwLjMsLTAuNThsMS44NywtMS4xbDAuMTEsLTAuMWwwLjQzLC0wLjcybDIuMjMsLTEuMDFsMS4yMSwtMC4zMmwwLjUxLDAuNGwwLjE5LDAuMDZsMS4yNSwtMC4wMWwtMC4xNCwwLjg5bDAuMDEsMC4xM2wwLjM0LDEuMTZsMC4wNiwwLjExbDEuMzUsMS41OWwwLjA3LDEuMTNsMC4yNCwwLjI4bDIuNjQsMC41M2wtMC4wNSwxLjM5bC0wLjQyLDAuNTlsLTEuMTEsMC4yMWwtMC4yMiwwLjE3bC0wLjQ2LDAuOTlsLTAuNjksMC4yM2wtMi4xMiwtMC4wNWwtMS4xNCwtMC4ybC0wLjE5LDAuMDNsLTAuNzIsMC4zNmwtMS4wNywtMC4xN2wtNC4zNSwwLjEybC0wLjI5LDAuMjlsLTAuMDYsMS40NGwwLjI1LDEuNDVaXCIsIFwibmFtZVwiOiBcIkJ1cmtpbmEgRmFzb1wifSwgXCJCR1wiOiB7XCJwYXRoXCI6IFwiTTQ3Ny42MywxNjYuODRsMC41MSwwLjlsMC4zMywwLjE0bDAuOSwtMC4yMWwxLjkxLDAuNDdsMy42OCwwLjE2bDAuMTcsLTAuMDVsMS4yLC0wLjc1bDIuNzgsLTAuNjdsMS43MiwxLjA1bDEuMDIsMC4yNGwtMC45NywwLjk3bC0wLjkxLDIuMTdsMC4wLDAuMjRsMC41NiwxLjE5bC0xLjU4LC0wLjNsLTAuMTYsMC4wMWwtMi41NSwwLjk1bC0wLjIsMC4yOGwtMC4wMiwxLjIzbC0xLjkyLDAuMjRsLTEuNjgsLTAuOTlsLTAuMjcsLTAuMDJsLTEuOTQsMC44bC0xLjUyLC0wLjA3bC0wLjE1LC0xLjcybC0wLjEyLC0wLjIxbC0wLjk5LC0wLjc2bDAuMTgsLTAuMThsMC4wMiwtMC4zOWwtMC4xNywtMC4yMmwwLjMzLC0wLjc1bDAuOTEsLTAuOTFsMC4wMSwtMC40MmwtMS4xNiwtMS4yNWwtMC4xOCwtMC44OWwwLjI0LC0wLjI3WlwiLCBcIm5hbWVcIjogXCJCdWxnYXJpYVwifSwgXCJCQVwiOiB7XCJwYXRoXCI6IFwiTTQ2OC4zOSwxNjQuNjZsMC4xNiwwLjA0bDAuNDMsLTAuMGwtMC40MywwLjkzbDAuMDYsMC4zNGwxLjA4LDEuMDZsLTAuMjgsMS4wOWwtMC41LDAuMTNsLTAuNDcsMC4yOGwtMC44NiwwLjc0bC0wLjEsMC4xNmwtMC4yOCwxLjI5bC0xLjgxLC0wLjk0bC0wLjksLTEuMjJsLTEuMCwtMC43M2wtMS4xLC0xLjFsLTAuNTUsLTAuOTZsLTEuMTEsLTEuM2wwLjMsLTAuNzVsMC41OSwwLjQ2bDAuNDIsLTAuMDRsMC40NiwtMC41NGwxLjAsLTAuMDZsMi4xMSwwLjVsMS43MiwtMC4wM2wxLjA2LDAuNjRaXCIsIFwibmFtZVwiOiBcIkJvc25pYSBhbmQgSGVyemVnb3ZpbmFcIn0sIFwiQk5cIjoge1wicGF0aFwiOiBcIk03MDcuMzQsMjczLjU3bDAuNzYsLTAuNzJsMS41OSwtMS4wM2wtMC4xOCwxLjkzbC0wLjksLTAuMDZsLTAuMjgsMC4xNGwtMC4zMSwwLjUxbC0wLjY4LC0wLjc4WlwiLCBcIm5hbWVcIjogXCJCcnVuZWlcIn0sIFwiQk9cIjoge1wicGF0aFwiOiBcIk0yNjMuODMsMzQwLjc5bC0wLjIzLC0wLjEybC0yLjg2LC0wLjExbC0wLjI4LDAuMTdsLTAuNzcsMS42N2wtMS4xNywtMS41MWwtMC4xOCwtMC4xMWwtMy4yOCwtMC42NGwtMC4yOCwwLjFsLTIuMDIsMi4zbC0xLjQzLDAuMjlsLTAuOTEsLTMuMzVsLTEuMzEsLTIuODhsMC43NSwtMi40MWwtMC4wOSwtMC4zMmwtMS4yMywtMS4wM2wtMC4zMSwtMS43NmwtMC4wNSwtMC4xMmwtMS4xMiwtMS42bDEuNDksLTIuNjJsMC4wMSwtMC4yOGwtMS4wLC0yLjBsMC40OCwtMC43MmwwLjAyLC0wLjI5bC0wLjM3LC0wLjc4bDAuODcsLTEuMTNsMC4wNiwtMC4xOGwwLjA1LC0yLjE3bDAuMTIsLTEuNzFsMC41LC0wLjhsMC4wMSwtMC4zbC0xLjksLTMuNThsMS4zLDAuMTVsMS4zNCwtMC4wNWwwLjIzLC0wLjEybDAuNTEsLTAuN2wyLjEyLC0wLjk5bDEuMzEsLTAuOTNsMi44MSwtMC4zN2wtMC4yMSwxLjUxbDAuMDEsMC4xM2wwLjI5LDAuOTFsLTAuMTksMS42NGwwLjExLDAuMjdsMi43MiwyLjI3bDAuMTUsMC4wN2wyLjcxLDAuNDFsMC45MiwwLjg4bDAuMTIsMC4wN2wxLjY0LDAuNDlsMS4wLDAuNzFsMC4xOCwwLjA2bDEuNSwtMC4wMmwxLjI0LDAuNjRsMC4xLDEuMzFsMC4wNSwwLjE0bDAuNDQsMC42OGwwLjAyLDAuNzNsLTAuNDQsMC4wM2wtMC4yNywwLjM5bDAuOTYsMi45OWwwLjI4LDAuMjFsNC40MywwLjFsLTAuMjgsMS4xMmwwLjAsMC4xNWwwLjI3LDEuMDJsMC4xNSwwLjE5bDEuMjcsMC42N2wwLjUyLDEuNDJsLTAuNDIsMS45MWwtMC42NiwxLjFsLTAuMDQsMC4ybDAuMjEsMS4zbC0wLjE5LDAuMTNsLTAuMDEsLTAuMjdsLTAuMTUsLTAuMjRsLTIuMzMsLTEuMzNsLTAuMTQsLTAuMDRsLTIuMzgsLTAuMDNsLTQuMzYsMC43NmwtMC4yMSwwLjE2bC0xLjIsMi4yOWwtMC4wMywwLjEzbC0wLjA2LDEuMzdsLTAuNzksMi41M2wtMC4wNSwtMC4wOFpcIiwgXCJuYW1lXCI6IFwiQm9saXZpYVwifSwgXCJKUFwiOiB7XCJwYXRoXCI6IFwiTTc4MS4xNywxNjYuNzhsMS44LDAuNjdsMC4yOCwtMC4wNGwxLjM4LC0xLjAxbDAuNDMsMi42N2wtMy40NCwwLjc3bC0wLjE4LDAuMTJsLTIuMDQsMi43OWwtMy43MSwtMS45NGwtMC40MiwwLjE1bC0xLjI5LDMuMTFsLTIuMzIsMC4wNGwtMC4zLC0yLjYzbDEuMTIsLTIuMWwyLjUxLC0wLjE2bDAuMjgsLTAuMjVsMC43MywtNC4yMmwwLjU4LC0xLjlsMi41OSwyLjg0bDIuMCwxLjFaTTc3My42NiwxODcuMzZsLTAuOTIsMi4yNGwtMC4wMSwwLjJsMC40LDEuM2wtMS4xOCwxLjgxbC0zLjA2LDEuMjhsLTQuMzUsMC4xN2wtMC4xOSwwLjA4bC0zLjQsMy4wNmwtMS4zNiwtMC44N2wtMC4xLC0xLjk1bC0wLjM0LC0wLjI4bC00LjM1LDAuNjJsLTIuOTksMS4zM2wtMi44NywwLjA1bC0wLjI4LDAuMmwwLjA5LDAuMzNsMi4zNywxLjkzbC0xLjU3LDQuNDRsLTEuMzUsMC45N2wtMC45LC0wLjc5bDAuNTcsLTIuMzJsLTAuMTUsLTAuMzRsLTEuNSwtMC43N2wtMC44MSwtMS41M2wyLjA0LC0wLjc1bDAuMTQsLTAuMWwxLjI4LC0xLjcybDIuNDcsLTEuNDNsMS44NCwtMS45Mmw0LjgzLC0wLjgybDIuNjIsMC41N2wwLjMzLC0wLjE2bDIuNDUsLTQuNzdsMS4zOCwxLjE0bDAuMzgsMC4wbDUuMSwtNC4wMmwwLjA5LC0wLjExbDEuNTcsLTMuNTdsMC4wMiwtMC4xNmwtMC40MiwtMy4yMmwwLjk0LC0xLjY3bDIuMjcsLTAuNDdsMS4yNiwzLjgybC0wLjA3LDIuMjNsLTIuMjYsMi44NmwtMC4wNiwwLjE5bDAuMDQsMi45M1pNNzU3Ljg1LDE5Ni4xOGwwLjIyLDAuNjZsLTEuMTEsMS4zM2wtMC44LC0wLjdsLTAuMzMsLTAuMDRsLTEuMjgsMC42NWwtMC4xNCwwLjE1bC0wLjU0LDEuMzRsLTEuMTcsLTAuNTdsMC4wMiwtMS4wM2wxLjIsLTEuNDVsMS4yNCwwLjI4bDAuMjksLTAuMWwwLjksLTEuMDNsMS41MSwwLjVaXCIsIFwibmFtZVwiOiBcIkphcGFuXCJ9LCBcIkJJXCI6IHtcInBhdGhcIjogXCJNNDk0LjcsMjk1LjgzbC0wLjE0LC0yLjcxbC0wLjA0LC0wLjEzbC0wLjM0LC0wLjYybDAuOTMsMC4xMmwwLjMsLTAuMTZsMC42NywtMS4yNWwwLjksMC4xMWwwLjExLDAuNzZsMC4wOCwwLjE2bDAuNDYsMC40OGwwLjAyLDAuNTZsLTAuNTUsMC40OGwtMC45NiwxLjI5bC0wLjgyLDAuODJsLTAuNjEsMC4wN1pcIiwgXCJuYW1lXCI6IFwiQnVydW5kaVwifSwgXCJCSlwiOiB7XCJwYXRoXCI6IFwiTTQyNy40LDI2OC45NGwtMS41OCwwLjIybC0wLjUyLC0xLjQ1bDAuMTEsLTUuNzNsLTAuMDgsLTAuMjFsLTAuNDMsLTAuNDRsLTAuMDksLTEuMTNsLTAuMDksLTAuMTlsLTEuNTIsLTEuNTJsMC4yNCwtMS4wMWwwLjcsLTAuMjNsMC4xOCwtMC4xNmwwLjQ1LC0wLjk3bDEuMDcsLTAuMjFsMC4xOSwtMC4xMmwwLjUzLC0wLjczbDAuNzMsLTAuNjVsMC42OCwtMC4wbDEuNjksMS4zbC0wLjA4LDAuNjdsMC4wMiwwLjE0bDAuNTIsMS4zOGwtMC40NCwwLjlsLTAuMDEsMC4yNGwwLjIsMC41MmwtMS4xLDEuNDJsLTAuNzYsMC43NmwtMC4wOCwwLjEzbC0wLjQ3LDEuNTlsMC4wNSwxLjY5bC0wLjEzLDMuNzlaXCIsIFwibmFtZVwiOiBcIkJlbmluXCJ9LCBcIkJUXCI6IHtcInBhdGhcIjogXCJNNjUwLjM4LDIxMy43OGwwLjg4LDAuNzVsLTAuMTMsMS4yNGwtMS43NywwLjA3bC0yLjEsLTAuMThsLTEuNTcsMC40bC0yLjAyLC0wLjkxbC0wLjAyLC0wLjI0bDEuNTQsLTEuODdsMS4xOCwtMC42bDEuNjcsMC41OWwxLjMyLDAuMDhsMS4wMSwwLjY3WlwiLCBcIm5hbWVcIjogXCJCaHV0YW5cIn0sIFwiSk1cIjoge1wicGF0aFwiOiBcIk0yMjYuNjcsMjM4LjM3bDEuNjQsMC4yM2wxLjIsMC41NmwwLjExLDAuMTlsLTEuMjUsMC4wM2wtMC4xNCwwLjA0bC0wLjY1LDAuMzdsLTEuMjQsLTAuMzdsLTEuMTcsLTAuNzdsMC4xMSwtMC4yMmwwLjg2LC0wLjE1bDAuNTIsMC4wOFpcIiwgXCJuYW1lXCI6IFwiSmFtYWljYVwifSwgXCJCV1wiOiB7XCJwYXRoXCI6IFwiTTQ4NC45MSwzMzEuOTZsMC41MywwLjUybDAuODIsMS41M2wyLjgzLDIuODZsMC4xNCwwLjA4bDAuODUsMC4yMmwwLjAzLDAuODFsMC43NCwxLjY2bDAuMjEsMC4xN2wxLjg3LDAuMzlsMS4xNywwLjg3bC0zLjEzLDEuNzFsLTIuMywyLjAxbC0wLjA3LDAuMWwtMC44MiwxLjc0bC0wLjY2LDAuODhsLTEuMjQsMC4xOWwtMC4yNCwwLjJsLTAuNjUsMS45OGwtMS40LDAuNTVsLTEuOSwtMC4xMmwtMS4yLC0wLjc0bC0xLjA2LC0wLjMybC0wLjIyLDAuMDJsLTEuMjIsMC42MmwtMC4xNCwwLjE0bC0wLjU4LDEuMjFsLTEuMTYsMC43OWwtMS4xOCwxLjEzbC0xLjUsMC4yM2wtMC40LC0wLjY4bDAuMjIsLTEuNTNsLTAuMDQsLTAuMTlsLTEuNDgsLTIuNTRsLTAuMTEsLTAuMTFsLTAuNTMsLTAuMzFsLTAuMCwtNy4yNWwyLjE4LC0wLjA4bDAuMjksLTAuM2wwLjA3LC05LjBsMS42MywtMC4wOGwzLjY5LC0wLjg2bDAuODQsMC45M2wwLjM4LDAuMDVsMS41MywtMC45N2wwLjc5LC0wLjAzbDEuMywtMC41M2wwLjIzLDAuMWwwLjkyLDEuOTZaXCIsIFwibmFtZVwiOiBcIkJvdHN3YW5hXCJ9LCBcIkJSXCI6IHtcInBhdGhcIjogXCJNMjU5LjQ5LDI3NC44N2wxLjQyLDAuMjVsMS45NywwLjYybDAuMjgsLTAuMDVsMC42NywtMC41NWwxLjc2LC0wLjM4bDIuOCwtMC45NGwwLjEyLC0wLjA4bDAuOTIsLTAuOTZsMC4wNSwtMC4zM2wtMC4xNSwtMC4zMmwwLjczLC0wLjA2bDAuMzYsMC4zNWwtMC4yNywwLjkzbDAuMTcsMC4zNmwwLjc2LDAuMzRsMC40NCwwLjlsLTAuNTgsMC43M2wtMC4wNiwwLjEzbC0wLjQsMi4xM2wwLjAzLDAuMTlsMC42MiwxLjIybDAuMTcsMS4xMWwwLjExLDAuMTlsMS41NCwxLjE4bDAuMTUsMC4wNmwxLjIzLDAuMTJsMC4yOSwtMC4xNWwwLjIsLTAuMzZsMC43MSwtMC4xMWwxLjEzLC0wLjQ0bDAuNzksLTAuNjNsMS4yNSwwLjE5bDAuNjUsLTAuMDhsMS4zMiwwLjJsMC4zMiwtMC4xOGwwLjIzLC0wLjUxbC0wLjA1LC0wLjMxbC0wLjMxLC0wLjM3bDAuMTEsLTAuMzFsMC43NSwwLjE3bDAuMTMsMC4wbDEuMSwtMC4yNGwxLjM0LDAuNWwxLjA4LDAuNTFsMC4zMywtMC4wNWwwLjY3LC0wLjU4bDAuMjcsMC4wNWwwLjI4LDAuNTdsMC4zMSwwLjE3bDEuMiwtMC4xOGwwLjE3LC0wLjA4bDEuMDMsLTEuMDVsMC43NiwtMS44MmwxLjM5LC0yLjE2bDAuNDksLTAuMDdsMC41MiwxLjE3bDEuNCw0LjM3bDAuMiwwLjJsMS4xNCwwLjM1bDAuMDUsMS4zOWwtMS44LDEuOTdsMC4wMSwwLjQybDAuNzgsMC43NWwwLjE4LDAuMDhsNC4xNiwwLjM3bDAuMDgsMi4yNWwwLjUsMC4yMmwxLjc4LC0xLjU0bDIuOTgsMC44NWw0LjA3LDEuNWwxLjA3LDEuMjhsLTAuMzcsMS4yM2wwLjM2LDAuMzhsMi44MywtMC43NWw0LjgsMS4zbDMuNzUsLTAuMDlsMy42LDIuMDJsMy4yNywyLjg0bDEuOTMsMC43MmwyLjEzLDAuMTFsMC43NiwwLjY2bDEuMjIsNC41NmwtMC45Niw0LjAzbC0xLjIyLDEuNThsLTMuNTIsMy41MWwtMS42MywyLjkxbC0xLjc1LDIuMDlsLTAuNSwwLjA0bC0wLjI2LDAuMTlsLTAuNzIsMS45OWwwLjE4LDQuNzZsLTAuOTUsNS41NmwtMC43NCwwLjk2bC0wLjA2LDAuMTVsLTAuNDMsMy4zOWwtMi40OSwzLjM0bC0wLjA2LDAuMTNsLTAuNCwyLjU2bC0xLjksMS4wN2wtMC4xMywwLjE2bC0wLjUxLDEuMzhsLTIuNTksMC4wbC0zLjk0LDEuMDFsLTEuODIsMS4xOWwtMi44NSwwLjgxbC0zLjAxLDIuMTdsLTIuMTIsMi42NWwtMC4wNiwwLjEzbC0wLjM2LDIuMGwwLjAxLDAuMTNsMC40LDEuNDJsLTAuNDUsMi42M2wtMC41MywxLjIzbC0xLjc2LDEuNTNsLTIuNzYsNC43OWwtMi4xNiwyLjE1bC0xLjY5LDEuMjlsLTAuMDksMC4xMmwtMS4xMiwyLjZsLTEuMywxLjI2bC0wLjQ1LC0xLjAybDAuOTksLTEuMThsMC4wMSwtMC4zN2wtMS41LC0xLjk1bC0xLjk4LC0xLjU0bC0yLjU4LC0xLjc3bC0wLjIsLTAuMDVsLTAuODEsMC4wN2wtMi40MiwtMi4wNWwtMC4yNSwtMC4wN2wtMC43NywwLjE0bDIuNzUsLTMuMDdsMi44LC0yLjYxbDEuNjcsLTEuMDlsMi4xMSwtMS40OWwwLjEzLC0wLjI0bDAuMDUsLTIuMTVsLTAuMDcsLTAuMmwtMS4yNiwtMS41NGwtMC4zNSwtMC4wOWwtMC42NCwwLjI3bDAuMywtMC45NWwwLjM0LC0xLjU3bDAuMDEsLTEuNTJsLTAuMTYsLTAuMjZsLTAuOSwtMC40OGwtMC4yNywtMC4wMWwtMC44NiwwLjM5bC0wLjY1LC0wLjA4bC0wLjIzLC0wLjhsLTAuMjMsLTIuMzlsLTAuMDQsLTAuMTJsLTAuNDcsLTAuNzlsLTAuMTQsLTAuMTJsLTEuNjksLTAuNzFsLTAuMjUsMC4wMWwtMC45MywwLjQ3bC0yLjI5LC0wLjQ0bDAuMTUsLTMuM2wtMC4wMywtMC4xNWwtMC42MiwtMS4yMmwwLjU3LC0wLjM5bDAuMTMsLTAuM2wtMC4yMiwtMS4zN2wwLjY3LC0xLjEzbDAuNDQsLTIuMDRsLTAuMDEsLTAuMTdsLTAuNTksLTEuNjFsLTAuMTQsLTAuMTZsLTEuMjUsLTAuNjZsLTAuMjIsLTAuODJsMC4zNSwtMS40MWwtMC4yOCwtMC4zN2wtNC41OSwtMC4xbC0wLjc4LC0yLjQxbDAuMzQsLTAuMDJsMC4yOCwtMC4zMWwtMC4wMywtMS4xbC0wLjA1LC0wLjE2bC0wLjQ1LC0wLjY4bC0wLjEsLTEuNGwtMC4xNiwtMC4yNGwtMS40NSwtMC43NmwtMC4xNCwtMC4wM2wtMS40OCwwLjAybC0xLjA0LC0wLjczbC0xLjYyLC0wLjQ4bC0wLjkzLC0wLjlsLTAuMTYsLTAuMDhsLTIuNzIsLTAuNDFsLTIuNTMsLTIuMTJsMC4xOCwtMS41NGwtMC4wMSwtMC4xM2wtMC4yOSwtMC45MWwwLjI2LC0xLjgzbC0wLjM0LC0wLjM0bC0zLjI4LDAuNDNsLTAuMTQsMC4wNWwtMS4zLDAuOTNsLTIuMTYsMS4wMWwtMC4xMiwwLjA5bC0wLjQ3LDAuNjVsLTEuMTIsMC4wNWwtMS44NCwtMC4yMWwtMC4xMiwwLjAxbC0xLjMzLDAuNDFsLTAuODIsLTAuMjFsMC4xNiwtMy42bC0wLjQ4LC0wLjI2bC0xLjk3LDEuNDNsLTEuOTYsLTAuMDZsLTAuODYsLTEuMjNsLTAuMjIsLTAuMTNsLTEuMjMsLTAuMTFsMC4zNCwtMC42OWwtMC4wNSwtMC4zM2wtMS4zNiwtMS41bC0wLjkyLC0yLjBsMC40NSwtMC4zMmwwLjEzLC0wLjI1bC0wLjAsLTAuODdsMS4zNCwtMC42NGwwLjE3LC0wLjMybC0wLjIzLC0xLjIzbDAuNTYsLTAuNzdsMC4wNSwtMC4xM2wwLjE2LC0xLjAzbDIuNywtMS42MWwyLjAxLC0wLjQ3bDAuMTYsLTAuMDlsMC4yNCwtMC4yN2wyLjExLDAuMTFsMC4zMSwtMC4yNWwxLjEzLC02Ljg3bDAuMDYsLTEuMTJsLTAuNCwtMS41M2wtMC4xLC0wLjE1bC0xLjAsLTAuODJsMC4wMSwtMS40NWwxLjA4LC0wLjMybDAuMzksMC4ybDAuNDQsLTAuMjRsMC4wOCwtMC45NmwtMC4yNSwtMC4zMmwtMS4yMiwtMC4yMmwtMC4wMiwtMS4wMWw0LjU3LDAuMDVsMC4yMiwtMC4wOWwwLjYsLTAuNjNsMC40NCwwLjVsMC40NywxLjQybDAuNDUsMC4xNmwwLjI3LC0wLjE4bDEuMjEsMS4xNmwwLjIzLDAuMDhsMS45NSwtMC4xNmwwLjIzLC0wLjE0bDAuNDMsLTAuNjdsMS43NiwtMC41NWwxLjA1LC0wLjQybDAuMTgsLTAuMmwwLjI1LC0wLjkybDEuNjUsLTAuNjZsMC4xOCwtMC4zNWwtMC4xNCwtMC41M2wtMC4yNiwtMC4yMmwtMS45MSwtMC4xOWwtMC4yOSwtMS4zM2wwLjEsLTEuNjRsLTAuMTUsLTAuMjhsLTAuNDQsLTAuMjVaXCIsIFwibmFtZVwiOiBcIkJyYXppbFwifSwgXCJCU1wiOiB7XCJwYXRoXCI6IFwiTTIyNy41MSwyMTYuNjlsMC4zLDAuMThsLTAuMjQsMS4wN2wwLjAzLC0xLjA0bC0wLjA5LC0wLjIxWk0yMjYuNSwyMjQuMDNsLTAuMTMsMC4wM2wtMC41NCwtMS4zbC0wLjA5LC0wLjEybC0wLjc4LC0wLjY0bDAuNCwtMS4yNmwwLjMzLDAuMDVsMC43OSwyLjBsMC4wMSwxLjI0Wk0yMjUuNzYsMjE2LjVsLTIuMTYsMC4zNGwtMC4wNywtMC40MWwwLjg1LC0wLjE2bDEuMzYsMC4wN2wwLjAyLDAuMTZaXCIsIFwibmFtZVwiOiBcIlRoZSBCYWhhbWFzXCJ9LCBcIkJZXCI6IHtcInBhdGhcIjogXCJNNDgwLjA4LDEzNS4yOGwyLjA5LDAuMDJsMC4xMywtMC4wM2wyLjcyLC0xLjNsMC4xNiwtMC4xOWwwLjU1LC0xLjgzbDEuOTQsLTEuMDZsMC4xNSwtMC4zMWwtMC4yLC0xLjMzbDEuMzMsLTAuNTJsMi41OCwtMS4zbDIuMzksMC44bDAuMywwLjc1bDAuMzcsMC4xN2wxLjIyLC0wLjM5bDIuMTgsMC43NWwwLjIsMS4zNmwtMC40OCwwLjg1bDAuMDEsMC4zMmwxLjU3LDIuMjZsMC45MiwwLjZsLTAuMSwwLjQxbDAuMTksMC4zNWwxLjYxLDAuNTdsMC40OCwwLjZsLTAuNjQsMC40OWwtMS45MSwtMC4xMWwtMC4xOCwwLjA1bC0wLjQ4LDAuMzJsLTAuMSwwLjM5bDAuNTcsMS4xbDAuNTEsMS43OGwtMS43OSwwLjE3bC0wLjE4LDAuMDhsLTAuNzcsMC43M2wtMC4wOSwwLjE5bC0wLjEzLDEuMzFsLTAuNzUsLTAuMjJsLTIuMTEsMC4xNWwtMC41NiwtMC42NmwtMC4zOSwtMC4wNmwtMC44LDAuNDlsLTAuNzksLTAuNGwtMC4xMywtMC4wM2wtMS45NCwtMC4wN2wtMi43NiwtMC43OWwtMi41OCwtMC4yN2wtMS45OCwwLjA3bC0wLjE1LDAuMDVsLTEuMzEsMC44NmwtMC44LDAuMDlsLTAuMDQsLTEuMTZsLTAuMDMsLTAuMTJsLTAuNjMsLTEuMjhsMS4yMiwtMC41NmwwLjE3LC0wLjI3bDAuMDEsLTEuMzVsLTAuMDQsLTAuMTVsLTAuNjYsLTEuMjRsLTAuMDgsLTEuMTJaXCIsIFwibmFtZVwiOiBcIkJlbGFydXNcIn0sIFwiQlpcIjoge1wicGF0aFwiOiBcIk0xOTguMDMsMjM5LjdsMC4yOCwwLjE5bDAuNDMsLTAuMWwwLjgyLC0xLjQybDAuMCwwLjA3bDAuMjksMC4yOWwwLjE2LDAuMGwtMC4wMiwwLjM1bC0wLjM5LDEuMDhsMC4wMiwwLjI1bDAuMTYsMC4yOWwtMC4yMywwLjhsMC4wNCwwLjI0bDAuMDksMC4xNGwtMC4yNSwxLjEybC0wLjM4LDAuNTNsLTAuMzMsMC4wNmwtMC4yMSwwLjE1bC0wLjQxLDAuNzRsLTAuMjUsMC4wbDAuMTcsLTIuNThsMC4wMSwtMi4yWlwiLCBcIm5hbWVcIjogXCJCZWxpemVcIn0sIFwiUlVcIjoge1wicGF0aFwiOiBcIk02ODguNTcsMzguODVsMC42MywyLjM5bDAuNDQsMC4xOWwyLjIyLC0xLjIzbDcuMTgsMC4wN2w1LjU0LDIuNDlsMS44NSwxLjc3bC0wLjU1LDIuMzRsLTIuNjQsMS40MmwtNi41NywyLjc2bC0xLjk1LDEuNWwwLjEyLDAuNTNsMy4wOSwwLjY4bDMuNjksMS4yM2wwLjIxLC0wLjAxbDEuOTgsLTAuODFsMS4xNiwyLjg0bDAuNSwwLjA4bDEuMDMsLTEuMThsMy44NiwtMC43NGw3Ljc5LDAuNzhsMC41NiwyLjA1bDAuMjcsMC4yMmwxMC40NywwLjcxbDAuMzIsLTAuMjlsMC4xMywtMy4zNGw0Ljk4LDAuOGwzLjk2LC0wLjAybDMuODgsMi40M2wxLjA2LDIuNzlsLTEuMzgsMS44M2wwLjAxLDAuMzhsMy4xNSwzLjY0bDAuMSwwLjA4bDMuOTQsMS44NmwwLjQsLTAuMTRsMi4yOCwtNC41NmwzLjc1LDEuOTRsMC4yMiwwLjAybDQuMTgsLTEuMjJsNC43NiwxLjRsMC4yNiwtMC4wNGwxLjc0LC0xLjIzbDMuOTgsMC42M2wwLjMyLC0wLjQxbC0xLjcxLC00LjFsMy4wLC0xLjg2bDIyLjM5LDMuMDRsMi4wNiwyLjY3bDAuMSwwLjA4bDYuNTUsMy41MWwwLjE3LDAuMDNsMTAuMDgsLTAuODZsNC44NiwwLjczbDEuOTEsMS43MmwtMC4yOSwzLjEzbDAuMTgsMC4zMWwzLjA4LDEuMjZsMC4xOSwwLjAxbDMuMzIsLTAuOWw0LjM3LC0wLjExbDQuNzgsMC44N2w0LjYxLC0wLjQ4bDQuMjYsMy44MmwwLjMyLDAuMDVsMy4xLC0xLjRsMC4xMiwtMC40NWwtMS45MSwtMi42N2wwLjkyLC0xLjY0bDcuNzgsMS4yMmw1LjIyLC0wLjI2bDcuMTIsMi4xbDkuNiw1LjIybDYuNCw0LjE1bC0wLjIsMi40NGwwLjE0LDAuMjhsMS42OSwxLjA0bDAuNDUsLTAuMzFsLTAuNTEsLTIuNjZsNi4zMSwwLjU4bDQuNTIsMy42MWwtMi4xLDEuNTJsLTQuMDIsMC40MmwtMC4yNywwLjI5bC0wLjA2LDMuODNsLTAuODEsMC42N2wtMi4xNCwtMC4xMWwtMS45MSwtMS4zOWwtMy4xOSwtMS4xM2wtMC41MSwtMS42M2wtMC4yMSwtMC4ybC0yLjU0LC0wLjY3bC0wLjEzLC0wLjBsLTIuNjksMC41bC0xLjEyLC0xLjE5bDAuNDgsLTEuMzZsLTAuMzgsLTAuMzlsLTMuMCwwLjk4bC0wLjE3LDAuNDRsMS4wMiwxLjc2bC0xLjI3LDEuNTVsLTMuMDksMS43MWwtMy4xNSwtMC4yOWwtMC4zLDAuMThsMC4wNywwLjM0bDIuMjIsMi4xbDEuNDcsMy4yMmwxLjE1LDEuMDlsMC4yNSwxLjQxbC0wLjQ4LDAuNzZsLTQuNDcsLTAuODFsLTAuMTcsMC4wMmwtNi45NywyLjlsLTIuMiwwLjQ0bC0wLjExLDAuMDVsLTMuODMsMi42OGwtMy42MywyLjMybC0wLjEsMC4xMWwtMC43NiwxLjRsLTMuMywtMi40bC0wLjMsLTAuMDNsLTYuMzEsMi44NWwtMC45OSwtMS4yMWwtMC40LC0wLjA2bC0yLjMyLDEuNTRsLTMuMjMsLTAuNDlsLTAuMzMsMC4ybC0wLjc5LDIuMzlsLTIuOTcsMy41MWwtMC4wNywwLjIxbDAuMDksMS40N2wwLjIyLDAuMjdsMi42MiwwLjc0bC0wLjMsNC43bC0yLjA2LDAuMTJsLTAuMjYsMC4ybC0xLjA3LDIuOTRsMC4wNCwwLjI3bDAuODMsMS4xOWwtNC4wMywxLjYzbC0wLjE4LDAuMjFsLTAuODMsMy43MmwtMy41NSwwLjc5bC0wLjIzLDAuMjNsLTAuNzMsMy4zMmwtMy4yMiwyLjc2bC0wLjc2LC0xLjg4bC0xLjA3LC00Ljg4bC0xLjM5LC03LjU5bDEuMTcsLTQuNzZsMi4wNSwtMi4wOGwwLjA5LC0wLjE5bDAuMTEsLTEuNDZsMy42NywtMC43N2wwLjE1LC0wLjA4bDQuNDcsLTQuNjFsNC4yOSwtMy44Mmw0LjQ4LC0zLjAxbDAuMTEsLTAuMTRsMi4wMSwtNS40M2wtMC4zMSwtMC40bC0zLjA0LDAuMzNsLTAuMjQsMC4xN2wtMS40NywzLjExbC01Ljk4LDMuOTRsLTEuOTEsLTQuMzZsLTAuMzMsLTAuMTdsLTYuNDYsMS4zbC0wLjE1LDAuMDhsLTYuMjcsNi4zM2wtMC4wMSwwLjQxbDEuNywxLjg3bC01LjA0LDAuODdsLTMuNTEsMC4zNGwwLjE2LC0yLjMybC0wLjI2LC0wLjMybC0zLjg5LC0wLjU2bC0wLjE5LDAuMDRsLTMuMDIsMS43N2wtNy42MywtMC42M2wtOC4yNCwxLjFsLTAuMTYsMC4wN2wtOC4xMSw3LjA5bC05LjYsOC4zMWwwLjE2LDAuNTJsMy43OSwwLjQybDEuMTYsMi4wM2wwLjE3LDAuMTRsMi40MywwLjc2bDAuMzEsLTAuMDhsMS41LC0xLjYxbDIuNDksMC4ybDMuNDYsMy42bDAuMDgsMi42N2wtMS45MSwzLjI2bC0wLjA0LDAuMTRsLTAuMjEsMy45MWwtMS4xMSw1LjA5bC0zLjczLDQuNTVsLTAuODcsMi4yMWwtNi43Myw3LjE0bC0xLjU5LDEuNzdsLTMuMjMsMS43MmwtMS4zOCwwLjAzbC0xLjQ4LC0xLjM5bC0wLjM3LC0wLjAzbC0zLjM2LDIuMjJsLTAuMTEsMC4xNGwtMC4xNiwwLjQybC0wLjAxLC0xLjA5bDEuMCwtMC4wNmwwLjI4LC0wLjI3bDAuMzYsLTMuNmwtMC42MSwtMi41MWwxLjg1LC0wLjk0bDIuOTQsMC41M2wwLjMyLC0wLjE1bDEuNzEsLTMuMWwwLjg0LC0zLjM4bDAuOTcsLTEuMThsMS4zMiwtMi44OGwtMC4zNCwtMC40MmwtNC4xNCwwLjk1bC0yLjE4LDEuMjVsLTMuNTEsLTAuMGwtMC45NSwtMi44MWwtMC4xLC0wLjE0bC0yLjk3LC0yLjNsLTAuMTEsLTAuMDVsLTQuMTksLTEuMGwtMC44OSwtMy4wOGwtMC44NywtMi4wM2wtMC45NSwtMS40NmwtMS41NCwtMy4zN2wtMC4xMiwtMC4xNGwtMi4yNywtMS4yOGwtMy44MywtMS4wMmwtMy4zNywwLjFsLTMuMTEsMC42MWwtMC4xMywwLjA2bC0yLjA3LDEuNjlsMC4wNCwwLjQ5bDEuMjMsMC43MmwwLjAzLDEuNTNsLTEuMzQsMS4wNWwtMi4yNiwzLjUxbC0wLjA1LDAuMTdsMC4wMiwxLjI3bC0zLjI1LDEuOWwtMi44NywtMS4xN2wtMC4xNCwtMC4wMmwtMi44NiwwLjI2bC0xLjIyLC0xLjAybC0wLjEyLC0wLjA2bC0xLjUsLTAuMzVsLTAuMjMsMC4wNGwtMy42MiwyLjI3bC0zLjI0LDAuNTNsLTIuMjgsMC43OWwtMy4wOCwtMC41MWwtMi4yNCwwLjAzbC0xLjQ5LC0xLjYxbC0yLjQ1LC0xLjU3bC0wLjExLC0wLjA0bC0yLjYsLTAuNDNsLTMuMTcsMC40M2wtMi4zMSwwLjU5bC0zLjMxLC0xLjI4bC0wLjQ1LC0yLjMxbC0wLjIxLC0wLjIzbC0yLjk0LC0wLjg1bC0yLjI2LC0wLjM5bC0yLjc3LC0xLjM2bC0wLjM3LDAuMDlsLTIuNTksMy40NWwtMC4wMywwLjMybDAuOTEsMS43NGwtMi4xNSwyLjAxbC0zLjQ3LC0wLjc5bC0yLjQ0LC0wLjEybC0xLjU5LC0xLjQ2bC0wLjIsLTAuMDhsLTIuNTUsLTAuMDVsLTIuMTIsLTAuOThsLTAuMjQsLTAuMDFsLTMuODUsMS41N2wtNC43NCwyLjc5bC0yLjU5LDAuNTVsLTAuNzksMC4yMWwtMS4yMSwtMS44MWwtMC4yOSwtMC4xM2wtMy4wNSwwLjQxbC0wLjk2LC0xLjI1bC0wLjE0LC0wLjFsLTEuNjUsLTAuNmwtMS4xNSwtMS44MmwtMC4xMywtMC4xMmwtMS4zOCwtMC42bC0wLjE5LC0wLjAybC0zLjQ5LDAuODJsLTMuMzUsLTEuODVsLTAuMzgsMC4wOGwtMS4wOCwxLjRsLTUuMzYsLTguMTdsLTMuMDIsLTIuNTJsMC43MiwtMC44NWwwLjAxLC0wLjM4bC0wLjM3LC0wLjA4bC02LjIyLDMuMjFsLTEuOTgsMC4xNmwwLjE3LC0xLjUxbC0wLjIsLTAuMzFsLTMuMjIsLTEuMTdsLTAuMTksLTAuMGwtMi4zLDAuNzRsLTAuNzIsLTMuMjdsLTAuMjQsLTAuMjNsLTQuNSwtMC43NWwtMC4yMSwwLjA0bC0yLjIsMS40MmwtNi4yMSwxLjI3bC0wLjExLDAuMDVsLTEuMTYsMC44MWwtOS4zLDEuMTlsLTAuMTgsMC4wOWwtMS4xNSwxLjE3bC0wLjAyLDAuMzlsMS41NiwyLjAxbC0yLjAyLDAuNzRsLTAuMTYsMC40MmwwLjM1LDAuNjhsLTIuMTgsMS40OWwwLjAyLDAuNTFsMy44MywyLjE2bC0wLjQ1LDEuMTNsLTMuMzEsLTAuMTNsLTAuMjUsMC4xMmwtMC41NywwLjc3bC0yLjk3LC0xLjU5bC0wLjE1LC0wLjA0bC0zLjk3LDAuMDdsLTAuMTMsMC4wM2wtMi41MywxLjMybC0yLjg0LC0xLjI4bC01LjUyLC0yLjNsLTAuMTIsLTAuMDJsLTMuOTEsMC4wOWwtMC4xNiwwLjA1bC01LjE3LDMuNmwtMC4xMywwLjIxbC0wLjI1LDEuODlsLTIuMTcsLTEuNmwtMC40NCwwLjFsLTIuMCwzLjU5bDAuMDYsMC4zN2wwLjU1LDAuNWwtMS4zMiwyLjIzbDAuMDQsMC4zNmwyLjEzLDIuMTdsMC4yMywwLjA5bDEuNywtMC4wOGwxLjQyLDEuODlsLTAuMjMsMS41bDAuMTksMC4zMmwwLjk0LDAuMzhsLTAuODksMS40NGwtMi4zLDAuNDlsLTAuMTcsMC4xMWwtMi40OSwzLjJsMC4wLDAuMzdsMi4yLDIuODFsLTAuMjMsMS45M2wwLjA2LDAuMjJsMi41NiwzLjMybC0xLjI3LDEuMDJsLTAuNCwwLjY2bC0wLjgsLTAuMTVsLTEuNjUsLTEuNzVsLTAuMTgsLTAuMDlsLTAuNjYsLTAuMDlsLTEuNDUsLTAuNjRsLTAuNzIsLTEuMTZsLTAuMTgsLTAuMTNsLTIuMzQsLTAuNjNsLTAuMTcsMC4wbC0xLjMyLDAuNDFsLTAuMzEsLTAuNGwtMC4xMiwtMC4wOWwtMy40OSwtMS40OGwtMy42NywtMC40OWwtMi4xLC0wLjUybC0wLjMsMC4xbC0wLjEyLDAuMTRsLTIuOTYsLTIuNGwtMi44OSwtMS4xOWwtMS42OSwtMS40MmwxLjI3LC0wLjM1bDAuMTYsLTAuMWwyLjA4LC0yLjYxbC0wLjA0LC0wLjQxbC0xLjAyLC0wLjlsMy4yMSwtMS4xMmwwLjIsLTAuMzFsLTAuMDcsLTAuNjlsLTAuMzcsLTAuMjZsLTEuODYsMC40MmwwLjA1LC0wLjg2bDEuMTEsLTAuNzZsMi4zNSwtMC4yM2wwLjI1LC0wLjE5bDAuMzksLTEuMDdsMC4wLC0wLjE5bC0wLjUxLC0xLjY0bDAuOTUsLTEuNThsMC4wNCwtMC4xNmwtMC4wMywtMC45NWwtMC4yMiwtMC4yOGwtMy42OSwtMS4wNmwtMS40MywwLjAybC0xLjQ1LC0xLjQ0bC0wLjI5LC0wLjA4bC0xLjgzLDAuNDlsLTIuODgsLTEuMDRsMC4wNCwtMC40MmwtMC4wNCwtMC4xOGwtMC44OSwtMS40M2wtMC4yMywtMC4xNGwtMS43NywtMC4xNGwtMC4xMywtMC42NmwwLjUyLC0wLjU2bDAuMDEsLTAuNGwtMS42LC0xLjlsLTAuMjcsLTAuMWwtMi41NSwwLjMybC0wLjcxLC0wLjE2bC0wLjMsMC4xbC0wLjUzLDAuNjNsLTAuNTgsLTAuMDhsLTAuNTYsLTEuOTdsLTAuNDgsLTAuOTRsMC4xNywtMC4xMWwxLjkyLDAuMTFsMC4yLC0wLjA2bDAuOTcsLTAuNzRsMC4wNSwtMC40MmwtMC43MiwtMC45MWwtMC4xMywtMC4xbC0xLjQzLC0wLjUxbDAuMDksLTAuMzZsLTAuMTMsLTAuMzNsLTAuOTcsLTAuNTlsLTEuNDMsLTIuMDZsMC40NCwtMC43N2wwLjA0LC0wLjE5bC0wLjI1LC0xLjY0bC0wLjIsLTAuMjRsLTIuNDUsLTAuODRsLTAuMTksLTAuMGwtMS4wNSwwLjM0bC0wLjI1LC0wLjYybC0wLjE4LC0wLjE3bC0yLjUsLTAuODRsLTAuNzQsLTEuOTNsLTAuMjEsLTEuN2wtMC4xMywtMC4yMWwtMC45MiwtMC42M2wwLjgzLC0wLjg5bDAuMDcsLTAuMjdsLTAuNzEsLTMuMjZsMS42OSwtMi4wMWwwLjAzLC0wLjM0bC0wLjI0LC0wLjQxbDIuNjMsLTEuOWwtMC4wMSwtMC40OWwtMi4zMSwtMS41N2w1LjA4LC00LjYxbDIuMzMsLTIuMjRsMS4wMSwtMi4wOGwtMC4wOSwtMC4zN2wtMy41MiwtMi41NmwwLjk0LC0yLjM4bC0wLjA0LC0wLjI5bC0yLjE0LC0yLjg2bDEuNjEsLTMuMzVsLTAuMDEsLTAuMjlsLTIuODEsLTQuNThsMi4xOSwtMy4wNGwtMC4wNiwtMC40MmwtMy43LC0yLjc2bDAuMzIsLTIuNjdsMS44NywtMC4zOGw0LjI2LC0xLjc3bDIuNDYsLTEuNDdsMy45NiwyLjU4bDAuMTIsMC4wNWw2LjgxLDEuMDRsOS4zNyw0Ljg3bDEuODEsMS45MmwwLjE1LDIuNTVsLTIuNjEsMi4wNmwtMy45NSwxLjA3bC0xMS4xLC0zLjE1bC0wLjE3LDAuMGwtMS44NCwwLjUzbC0wLjEsMC41M2wzLjk3LDIuOTdsMC4xNSwxLjc3bDAuMTYsNC4xNGwwLjE5LDAuMjdsMy4yMSwxLjIybDEuOTQsMS4wM2wwLjQ0LC0wLjIybDAuMzIsLTEuOTRsLTAuMDcsLTAuMjVsLTEuMzIsLTEuNTJsMS4yNSwtMS4ybDUuODcsMi40NWwwLjI0LC0wLjAxbDIuMTEsLTAuOThsMC4xMywtMC40MmwtMS41NSwtMi43NWw1LjUyLC0zLjg0bDIuMTMsMC4yMmwyLjI4LDEuNDJsMC40MywtMC4xMmwxLjQ2LC0yLjg3bC0wLjA0LC0wLjMzbC0xLjk3LC0yLjM3bDEuMTQsLTIuMzhsLTAuMDIsLTAuM2wtMS40MiwtMi4wN2w2LjE1LDEuMjJsMS4xNCwxLjkybC0yLjc0LDAuNDZsLTAuMjUsMC4zbDAuMDIsMi4zNmwwLjEyLDAuMjRsMS45NywxLjQ0bDAuMjUsMC4wNWwzLjg3LC0wLjkxbDAuMjIsLTAuMjNsMC41OCwtMi41NWw1LjA5LC0xLjk4bDguNjcsLTMuNjlsMS4yMiwwLjE0bC0yLjA2LDIuMmwwLjE4LDAuNWwzLjExLDAuNDVsMC4yMywtMC4wN2wxLjcxLC0xLjQxbDQuNTksLTAuMTJsMC4xMiwtMC4wM2wzLjUzLC0xLjcybDIuNywyLjQ4bDAuNDIsLTAuMDFsMi44NSwtMi44OGwtMC4wLC0wLjQzbC0yLjQyLC0yLjM1bDEuMCwtMS4xM2w3LjIsMS4zMWwzLjQyLDEuMzZsOS4wNiw0Ljk3bDAuMzksLTAuMDhsMS42NywtMi4yN2wtMC4wNCwtMC40bC0yLjQ2LC0yLjIzbC0wLjA2LC0wLjgybC0wLjI2LC0wLjI3bC0yLjY0LC0wLjM4bDAuNjksLTEuNzZsMC4wLC0wLjIybC0xLjMyLC0zLjQ3bC0wLjA3LC0xLjI3bDQuNTIsLTQuMDlsMC4wOCwtMC4xMWwxLjYsLTQuMThsMS42NywtMC44NGw2LjMzLDEuMmwwLjQ2LDIuMzFsLTIuMzEsMy42N2wwLjA1LDAuMzhsMS40OSwxLjQxbDAuNzcsMy4wNGwtMC41Niw2LjA1bDAuMDksMC4yNGwyLjYyLDIuNTRsLTAuOTksMi42NWwtNC44Nyw1Ljk2bDAuMTcsMC40OGwyLjg2LDAuNjFsMC4zMSwtMC4xM2wwLjk0LC0xLjQybDIuNjcsLTEuMDRsMC4xOCwtMC4xOWwwLjY0LC0yLjAxbDIuMTEsLTEuOThsMC4wNSwtMC4zN2wtMS4zOCwtMi4zMmwxLjExLC0yLjc0bC0wLjI0LC0wLjQxbC0yLjUzLC0wLjMzbC0wLjUzLC0yLjE2bDEuOTYsLTQuNDJsLTAuMDUsLTAuMzJsLTMuMDMsLTMuNDhsNC4yMSwtMi45NGwwLjEyLC0wLjNsLTAuNTIsLTMuMDRsMC43MiwtMC4wNmwxLjE4LDIuMzVsLTAuOTcsNC4zOWwwLjIsMC4zNWwyLjY4LDAuODRsMC4zNywtMC4zOGwtMS4wNSwtMy4wN2wzLjg5LC0xLjcxbDUuMDUsLTAuMjRsNC41NSwyLjYybDAuMzYsLTAuMDVsMC4wNSwtMC4zNmwtMi4xOSwtMy44NGwtMC4yMywtNC43OGw0LjA3LC0wLjkybDUuOTgsMC4yMWw1LjQ3LC0wLjY0bDAuMiwtMC40OGwtMS44OCwtMi4zN2wyLjY1LC0yLjk5bDIuNzUsLTAuMTNsMC4xMiwtMC4wM2w0LjgyLC0yLjQ4bDYuNTYsLTAuNjdsMC4yMywtMC4xNGwwLjc2LC0xLjI3bDYuMzMsLTAuNDZsMS45NywxLjExbDAuMjgsMC4wMWw1LjU1LC0yLjcxbDQuNTMsMC4wOGwwLjI5LC0wLjIxbDAuNjcsLTIuMThsMi4yOSwtMi4xNWw1Ljc1LC0yLjEzbDMuNDgsMS40bC0yLjcsMS4wM2wtMC4xOSwwLjMxbDAuMjYsMC4yNmw1LjQ3LDAuNzhaTTg3MS44Myw2NS43M2wwLjI1LC0wLjE1bDEuOTksMC4wMWwzLjMsMS4ybC0wLjA4LDAuMjJsLTIuNDEsMS4wM2wtNS43MywwLjQ5bC0wLjMxLC0xLjBsMi45OSwtMS44Wk03OTcuNjQsNDguNDRsLTIuMjIsMS41MWwtMy44NSwtMC40M2wtNC4zNSwtMS44NWwwLjQyLC0xLjEzbDQuNDIsMC43Mmw1LjU5LDEuMTdaTTc4My44Miw0Ni4wNmwtMS43MSwzLjI1bC05LjA1LC0wLjE0bC00LjExLDEuMTVsLTQuNjQsLTMuMDRsMS4yMSwtMy4xM2wzLjExLC0wLjkxbDYuNTMsMC4yMmw4LjY2LDIuNTlaTTc4MC4zNywxNDUuNzFsMi4yOCw1LjIzbC0zLjA5LC0wLjg5bC0wLjM3LDAuMTlsLTEuNTQsNC42NWwwLjA0LDAuMjdsMi4zOCwzLjE3bC0wLjA1LDEuNGwtMS40MSwtMS40MWwtMC40NiwwLjA0bC0xLjIzLDEuODFsLTAuMzMsLTEuODZsMC4yOCwtMy4xbC0wLjI4LC0zLjQxbDAuNTgsLTIuNDZsMC4xMSwtNC4zOWwtMC4wMywtMC4xM2wtMS40NCwtMy4ybDAuMjEsLTQuMzlsMi4xOSwtMS40OWwwLjA5LC0wLjQxbC0wLjgxLC0xLjNsMC40OCwtMC4yMWwwLjU2LDEuOTRsMC44NiwzLjIzbC0wLjA1LDMuMzZsMS4wMywzLjM1Wk03ODAuMTYsNTcuMThsLTMuNCwwLjAzbC01LjA2LC0wLjUzbDEuOTcsLTEuNTlsMi45NSwtMC40MmwzLjM1LDEuNzVsMC4xOCwwLjc3Wk02ODMuODQsMzEuMThsLTEzLjI5LDEuOTdsNC4xNiwtNi41NmwxLjg4LC0wLjU4bDEuNzcsMC4zNGw2LjA4LDMuMDJsLTAuNiwxLjhaTTY3MC45NCwyOC4wMmwtNS4xOCwwLjY1bC02Ljg5LC0xLjU4bC00LjAzLC0yLjA3bC0xLjg4LC0zLjk4bC0wLjE4LC0wLjE2bC0yLjgsLTAuOTNsNS45MSwtMy42Mmw1LjI1LC0xLjI5bDQuNzMsMi44OGw1LjYzLDUuNDRsLTAuNTcsNC42NlpNNTY0LjM3LDY4Ljk4bC0wLjg1LDAuMjNsLTcuOTMsLTAuNTdsLTAuNiwtMS44NGwtMC4yMSwtMC4ybC00LjM0LC0xLjE4bC0wLjMsLTIuMDhsMi4zNCwtMC45MmwwLjE5LC0wLjI5bC0wLjA4LC0yLjQzbDQuODUsLTQuMGwtMC4xMiwtMC41MmwtMS42OCwtMC40M2w1LjQ3LC0zLjk0bDAuMTEsLTAuMzNsLTAuNiwtMi4wMmw1LjM2LC0yLjU1bDguMjIsLTMuMjdsOC4yOSwtMC45Nmw0LjM0LC0xLjk0bDQuNjcsLTAuNjVsMS40NSwxLjcybC0xLjQzLDEuMzdsLTguOCwyLjUybC03LjY1LDIuNDJsLTcuOTIsNC44NGwtMy43Myw0Ljc1bC0zLjkyLDQuNThsLTAuMDcsMC4yM2wwLjUxLDMuODhsMC4xMSwwLjJsNC4zMiwzLjM5Wk01NDguODYsMTguNTdsLTMuMjgsMC43NWwtMi4yNSwwLjQ0bC0wLjIyLDAuMTlsLTAuMywwLjgxbC0yLjY3LDAuODZsLTIuMjcsLTEuMTRsMS4yLC0xLjUxbC0wLjIzLC0wLjQ5bC0zLjE0LC0wLjFsMi40OCwtMC41NGwzLjU1LC0wLjA3bDAuNDQsMS4zNmwwLjQ5LDAuMTJsMS40LC0xLjM1bDIuMiwtMC45bDMuMTMsMS4wOGwtMC41NCwwLjQ5Wk00NzcuNSwxMzMuMjVsLTQuMjEsMC4wNWwtMi42OSwtMC4zNGwwLjM5LC0xLjAzbDMuMjQsLTEuMDZsMi41MSwwLjU4bDAuODUsMC40M2wtMC4yLDAuNzFsLTAuMCwwLjE1bDAuMTIsMC41MlpcIiwgXCJuYW1lXCI6IFwiUnVzc2lhXCJ9LCBcIlJXXCI6IHtcInBhdGhcIjogXCJNNDk3LjAzLDI4OC4xMmwwLjc4LDEuMTFsLTAuMTIsMS4xOWwtMC40OSwwLjIxbC0xLjI1LC0wLjE1bC0wLjMsMC4xNmwtMC42NywxLjI0bC0xLjAxLC0wLjEzbDAuMTYsLTAuOTJsMC4yMiwtMC4xMmwwLjE1LC0wLjI0bDAuMDksLTEuMzdsMC40OSwtMC40OGwwLjQyLDAuMThsMC4yNSwtMC4wMWwxLjI2LC0wLjY1WlwiLCBcIm5hbWVcIjogXCJSd2FuZGFcIn0sIFwiUlNcIjoge1wicGF0aFwiOiBcIk00NjkuNzUsMTY4LjY1bDAuMjEsLTAuMjFsMC4zNiwtMS40NGwtMC4wOCwtMC4yOWwtMS4wNiwtMS4wM2wwLjU0LC0xLjE2bC0wLjI4LC0wLjQzbC0wLjI2LDAuMGwwLjU1LC0wLjY3bC0wLjAxLC0wLjM5bC0wLjc3LC0wLjg2bC0wLjQ1LC0wLjg5bDEuNTYsLTAuNjdsMS4zOSwwLjEybDEuMjIsMS4xbDAuMjYsMC45MWwwLjE2LDAuMTlsMS4zOCwwLjY2bDAuMTcsMS4xMmwwLjE0LDAuMjFsMS40NiwwLjlsMC4zNSwtMC4wM2wwLjYyLC0wLjU0bDAuMDksMC4wNmwtMC4yOCwwLjI1bC0wLjAzLDAuNDJsMC4yOSwwLjM0bC0wLjQ0LDAuNWwtMC4wNywwLjI2bDAuMjIsMS4xMmwwLjA3LDAuMTRsMS4wMiwxLjFsLTAuODEsMC44NGwtMC40MiwwLjk2bDAuMDQsMC4zbDAuMTIsMC4xNWwtMC4xNSwwLjE2bC0xLjA0LDAuMDRsLTAuMzksMC4wOGwwLjMzLC0wLjgxbC0wLjI5LC0wLjQxbC0wLjIxLDAuMDFsLTAuMzksLTAuNDVsLTAuMTMsLTAuMDlsLTAuMzIsLTAuMTFsLTAuMjcsLTAuNGwtMC4xNCwtMC4xMWwtMC40LC0wLjE2bC0wLjMxLC0wLjM3bC0wLjM0LC0wLjA5bC0wLjQ1LDAuMTdsLTAuMTgsMC4xOGwtMC4yOSwwLjg0bC0wLjk2LC0wLjY1bC0wLjgxLC0wLjMzbC0wLjMyLC0wLjM3bC0wLjIyLC0wLjE4WlwiLCBcIm5hbWVcIjogXCJSZXB1YmxpYyBvZiBTZXJiaWFcIn0sIFwiTFRcIjoge1wicGF0aFwiOiBcIk00NzguMTMsMTMzLjMxbC0wLjE0LC0wLjYzbDAuMjUsLTAuODhsLTAuMTUsLTAuMzVsLTEuMTcsLTAuNThsLTIuNDMsLTAuNTdsLTAuNDUsLTIuNTFsMi41OCwtMC45N2w0LjE0LDAuMjJsMi4zLC0wLjMybDAuMjYsMC41NGwwLjIyLDAuMTdsMS4yNiwwLjIybDIuMjUsMS42bDAuMTksMS4yM2wtMS44NywxLjAxbC0wLjE0LDAuMThsLTAuNTQsMS44M2wtMi41NCwxLjIxbC0yLjE4LC0wLjAybC0wLjUyLC0wLjkxbC0wLjE4LC0wLjE0bC0xLjExLC0wLjMyWlwiLCBcIm5hbWVcIjogXCJMaXRodWFuaWFcIn0sIFwiTFVcIjoge1wicGF0aFwiOiBcIk00MzUuOTUsMTQ3Ljk5bDAuMzMsMC40OWwtMC4xMSwxLjA3bC0wLjM5LDAuMDRsLTAuMjksLTAuMTVsMC4yMSwtMS40bDAuMjUsLTAuMDVaXCIsIFwibmFtZVwiOiBcIkx1eGVtYm91cmdcIn0sIFwiTFJcIjoge1wicGF0aFwiOiBcIk00MDEuMzcsMjczLjY3bC0wLjMyLDAuMDFsLTIuNDgsLTEuMTVsLTIuMjQsLTEuODlsLTIuMTQsLTEuMzhsLTEuNDcsLTEuNDJsMC40NCwtMC41OWwwLjA1LC0wLjEzbDAuMTIsLTAuNjVsMS4wNywtMS4zbDEuMDgsLTEuMDlsMC41MiwtMC4wN2wwLjQzLC0wLjE4bDAuODQsMS4yNGwtMC4xNSwwLjg5bDAuMDcsMC4yNWwwLjQ5LDAuNTRsMC4yMiwwLjFsMC43MSwwLjAxbDAuMjcsLTAuMTZsMC40MiwtMC44M2wwLjE5LDAuMDJsLTAuMDYsMC41MmwwLjIzLDEuMTJsLTAuNSwxLjAzbDAuMDYsMC4zNWwwLjczLDAuNjlsMC4xNCwwLjA4bDAuNzEsMC4xNWwwLjkyLDAuOTFsMC4wNiwwLjc2bC0wLjE3LDAuMjJsLTAuMDYsMC4xNWwtMC4xNywxLjhaXCIsIFwibmFtZVwiOiBcIkxpYmVyaWFcIn0sIFwiUk9cIjoge1wicGF0aFwiOiBcIk00NzcuOTQsMTU1LjE5bDEuMDIsLTAuNjRsMS40OSwwLjMzbDEuNTIsMC4wMWwxLjA5LDAuNzNsMC4zMiwwLjAxbDAuODEsLTAuNDZsMS44LC0wLjNsMC4xOCwtMC4xbDAuNTQsLTAuNjRsMC44NiwwLjBsMC42NCwwLjI2bDAuNzEsMC44N2wwLjgsMS4zNWwxLjM5LDEuODFsMC4wNywxLjI1bC0wLjI2LDEuM2wwLjAxLDAuMTVsMC40NSwxLjQybDAuMTUsMC4xOGwxLjEyLDAuNTdsMC4yNSwwLjAxbDEuMDUsLTAuNDVsMC44NiwwLjRsMC4wMywwLjQzbC0wLjkyLDAuNTFsLTAuNjMsLTAuMjRsLTAuNCwwLjIybC0wLjY0LDMuNDFsLTEuMTIsLTAuMjRsLTEuNzgsLTEuMDlsLTAuMjMsLTAuMDRsLTIuOTUsMC43MWwtMS4yNSwwLjc3bC0zLjU1LC0wLjE2bC0xLjg5LC0wLjQ3bC0wLjE0LC0wLjBsLTAuNzUsMC4xN2wtMC42MSwtMS4wN2wtMC4zLC0wLjM2bDAuMzYsLTAuMzJsLTAuMDQsLTAuNDhsLTAuNjIsLTAuMzhsLTAuMzYsMC4wM2wtMC42MiwwLjU0bC0xLjE1LC0wLjcxbC0wLjE4LC0xLjE0bC0wLjE3LC0wLjIybC0xLjQsLTAuNjdsLTAuMjQsLTAuODZsLTAuMDksLTAuMTRsLTAuOTYsLTAuODdsMS40OSwtMC40NGwwLjE2LC0wLjExbDEuNTEsLTIuMTRsMS4xNSwtMi4wOWwxLjQ0LC0wLjYzWlwiLCBcIm5hbWVcIjogXCJSb21hbmlhXCJ9LCBcIkdXXCI6IHtcInBhdGhcIjogXCJNMzgzLjAzLDI1Ni43M2wtMS4xMiwtMC44OGwtMC4xNCwtMC4wNmwtMC45NCwtMC4xNWwtMC40MywtMC41NGwwLjAxLC0wLjI3bC0wLjEzLC0wLjI2bC0wLjY4LC0wLjQ4bC0wLjA1LC0wLjE2bDAuOTksLTAuMzFsMC43NywwLjA4bDAuMTUsLTAuMDJsMC42MSwtMC4yNmw0LjI1LDAuMWwtMC4wMiwwLjQ0bC0wLjE5LDAuMThsLTAuMDgsMC4yOWwwLjE3LDAuNjZsLTAuMTcsMC4xNGwtMC40NCwwLjBsLTAuMTYsMC4wNWwtMC41NywwLjM3bC0wLjY2LC0wLjA0bC0wLjI0LDAuMWwtMC45MiwxLjAzWlwiLCBcIm5hbWVcIjogXCJHdWluZWEgQmlzc2F1XCJ9LCBcIkdUXCI6IHtcInBhdGhcIjogXCJNMTk1LjEzLDI0OS44OWwtMS4wNSwtMC4zNWwtMS41LC0wLjA0bC0xLjA2LC0wLjQ3bC0xLjE5LC0wLjkzbDAuMDQsLTAuNTNsMC4yNywtMC41NWwtMC4wMywtMC4zMWwtMC4yNCwtMC4zMmwxLjAyLC0xLjc3bDMuMDQsLTAuMDFsMC4zLC0wLjI4bDAuMDYsLTAuODhsLTAuMTksLTAuM2wtMC4zLC0wLjExbC0wLjIzLC0wLjQ1bC0wLjExLC0wLjEybC0wLjksLTAuNThsLTAuMzUsLTAuMzNsMC4zNywtMC4wbDAuMywtMC4zbDAuMCwtMS4xNWw0LjA1LDAuMDJsLTAuMDIsMS43NGwtMC4yLDIuODlsMC4zLDAuMzJsMC42NywtMC4wbDAuNzUsMC40MmwwLjQsLTAuMTFsLTAuNjIsMC41M2wtMS4xNywwLjdsLTAuMTMsMC4xNmwtMC4xOCwwLjQ5bDAuMCwwLjIxbDAuMTQsMC4zNGwtMC4zNSwwLjQ0bC0wLjQ5LDAuMTNsLTAuMiwwLjQxbDAuMDMsMC4wNmwtMC4yNywwLjE2bC0wLjg2LDAuNjRsLTAuMTIsMC4yMlpNMTk5LjM1LDI0NS4zOGwwLjA3LC0wLjEzbDAuMDUsMC4wMmwtMC4xMywwLjExWlwiLCBcIm5hbWVcIjogXCJHdWF0ZW1hbGFcIn0sIFwiR1JcIjoge1wicGF0aFwiOiBcIk00ODcuMiwxNzQuNTVsLTAuNjQsMS41NGwtMC40MywwLjI0bC0xLjQxLC0wLjA4bC0xLjI4LC0wLjI4bC0wLjE0LDAuMGwtMy4wMywwLjc3bC0wLjEzLDAuNTFsMS4zOSwxLjM0bC0wLjc4LDAuMjlsLTEuMiwwLjBsLTEuMjMsLTEuNDJsLTAuNDcsMC4wMmwtMC40NywwLjY1bC0wLjA0LDAuMjdsMC41NiwxLjc2bDAuMDYsMC4xMWwxLjAyLDEuMTJsLTAuNjYsMC40NWwtMC4wNCwwLjQ2bDEuMzksMS4zNWwxLjE1LDAuNzlsMC4wMiwxLjA2bC0xLjkxLC0wLjYzbC0wLjM2LDAuNDJsMC41NiwxLjEybC0xLjIsMC4yM2wtMC4yMiwwLjRsMC44LDIuMTRsLTEuMTUsMC4wMmwtMS44OSwtMS4xNWwtMC44OSwtMi4xOWwtMC40MywtMS45MWwtMC4wNSwtMC4xMWwtMC45OCwtMS4zNWwtMS4yNCwtMS42MmwtMC4xMywtMC42M2wxLjA3LC0xLjMybDAuMDYsLTAuMTRsMC4xMywtMC44MWwwLjY4LC0wLjM2bDAuMTYsLTAuMjVsMC4wMywtMC41NGwxLjQsLTAuMjNsMC4xMiwtMC4wNWwwLjg3LC0wLjZsMS4yNiwwLjA1bDAuMjUsLTAuMTFsMC4zNCwtMC40M2wwLjMzLC0wLjA3bDEuODEsMC4wOGwwLjEzLC0wLjAybDEuODcsLTAuNzdsMS42NCwwLjk3bDAuMTksMC4wNGwyLjI4LC0wLjI4bDAuMjYsLTAuMjlsMC4wMiwtMC45NWwwLjU2LDAuMzZaTTQ4MC40NCwxOTIuMGwxLjA1LDAuNzRsMC4wMSwwLjBsLTEuMjYsLTAuMjNsMC4yLC0wLjUxWk00ODEuNzYsMTkyLjc5bDEuODYsLTAuMTVsMS41MywwLjE3bC0wLjAyLDAuMTlsMC4zNCwwLjNsLTIuMjgsMC4xNWwwLjAxLC0wLjEzbC0wLjI1LC0wLjMxbC0xLjE5LC0wLjIyWk00ODUuNjUsMTkzLjI4bDAuNjUsLTAuMTZsLTAuMDUsMC4xMmwtMC42LDAuMDRaXCIsIFwibmFtZVwiOiBcIkdyZWVjZVwifSwgXCJHUVwiOiB7XCJwYXRoXCI6IFwiTTQ0NC44MSwyODIuMDRsLTAuMjEsLTAuMTdsMC43NCwtMi40bDMuNTYsMC4wNWwwLjAyLDIuNDJsLTMuMzQsLTAuMDJsLTAuNzYsMC4xM1pcIiwgXCJuYW1lXCI6IFwiRXF1YXRvcmlhbCBHdWluZWFcIn0sIFwiR1lcIjoge1wicGF0aFwiOiBcIk0yNzEuMzQsMjY0LjI1bDEuNDMsMC44MWwxLjQ0LDEuNTNsMC4wNiwxLjE5bDAuMjgsMC4yOGwwLjg0LDAuMDVsMi4xMywxLjkybC0wLjM0LDEuOTNsLTEuMzcsMC41OWwtMC4xNywwLjM0bDAuMTIsMC41MWwtMC40MywxLjIxbDAuMDMsMC4yNmwxLjExLDEuODJsMC4yNiwwLjE0bDAuNTYsMC4wbDAuMzIsMS4yOWwxLjI1LDEuNzhsLTAuMDgsMC4wMWwtMS4zNCwtMC4yMWwtMC4yNCwwLjA2bC0wLjc4LDAuNjRsLTEuMDYsMC40MWwtMC43NiwwLjFsLTAuMjIsMC4xNWwtMC4xOCwwLjMybC0wLjk1LC0wLjFsLTEuMzgsLTEuMDVsLTAuMTksLTEuMTNsLTAuNiwtMS4xOGwwLjM3LC0xLjk2bDAuNjUsLTAuODNsMC4wMywtMC4zMmwtMC41NywtMS4xN2wtMC4xNSwtMC4xNGwtMC42MiwtMC4yN2wwLjI1LC0wLjg1bC0wLjA4LC0wLjNsLTAuNTgsLTAuNThsLTAuMjQsLTAuMDlsLTEuMTUsMC4xbC0xLjQxLC0xLjU4bDAuNDgsLTAuNDlsMC4wOSwtMC4yMmwtMC4wNCwtMC45MmwxLjMxLC0wLjM0bDAuNzMsLTAuNTJsMC4wNCwtMC40NGwtMC43NSwtMC44MmwwLjE2LC0wLjY2bDEuNzQsLTEuM1pcIiwgXCJuYW1lXCI6IFwiR3V5YW5hXCJ9LCBcIkdFXCI6IHtcInBhdGhcIjogXCJNNTI1LjQxLDE3NC4xOWwwLjI2LC0wLjg4bC0wLjAsLTAuMTdsLTAuNjMsLTIuMDZsLTAuMSwtMC4xNWwtMS40NSwtMS4xMmwtMC4xMSwtMC4wNWwtMS4zMSwtMC4zM2wtMC42NiwtMC42OWwxLjk3LDAuNDhsMy42NSwwLjQ5bDMuMywxLjQxbDAuMzksMC41bDAuMzMsMC4xbDEuNDMsLTAuNDVsMi4xNCwwLjU4bDAuNywxLjE0bDAuMTMsMC4xMmwxLjA2LDAuNDdsLTAuMTgsMC4xMWwtMC4wOCwwLjQzbDEuMDgsMS40MWwtMC4wNiwwLjA2bC0xLjE2LC0wLjE1bC0xLjgyLC0wLjg0bC0wLjMxLDAuMDRsLTAuNTUsMC40NGwtMy4yOSwwLjQ0bC0yLjMyLC0xLjQxbC0wLjE3LC0wLjA0bC0yLjI1LDAuMTJaXCIsIFwibmFtZVwiOiBcIkdlb3JnaWFcIn0sIFwiR0JcIjoge1wicGF0aFwiOiBcIk00MTIuODIsMTE4LjZsLTIuMzEsMy40bC0wLjAsMC4zM2wwLjMxLDAuMTNsMi41MiwtMC40OWwyLjM0LDAuMDJsLTAuNTYsMi41MWwtMi4yMiwzLjEzbDAuMjIsMC40N2wyLjQzLDAuMjFsMi4zNSw0LjM1bDAuMTcsMC4xNGwxLjU4LDAuNTFsMS40OSwzLjc4bDAuNzMsMS4zN2wwLjIsMC4xNWwyLjc2LDAuNTlsLTAuMjUsMS43NWwtMS4xOCwwLjkxbC0wLjA4LDAuMzlsMC44NywxLjQ5bC0xLjk2LDEuNTFsLTMuMzEsLTAuMDJsLTQuMTUsMC44OGwtMS4wNywtMC41OWwtMC4zNSwwLjA0bC0xLjU1LDEuNDRsLTIuMTcsLTAuMzVsLTAuMjIsMC4wNWwtMS42MSwxLjE1bC0wLjc4LC0wLjM4bDMuMzEsLTMuMTJsMi4xOCwtMC43bDAuMjEsLTAuMzFsLTAuMjYsLTAuMjdsLTMuNzgsLTAuNTRsLTAuNDgsLTAuOWwyLjMsLTAuOTJsMC4xMywtMC40NmwtMS4yOSwtMS43MWwwLjM5LC0xLjgzbDMuNDYsMC4yOWwwLjMyLC0wLjI0bDAuMzcsLTEuOTlsLTAuMDYsLTAuMjRsLTEuNzEsLTIuMTdsLTAuMTgsLTAuMTFsLTIuOTEsLTAuNThsLTAuNDMsLTAuNjhsMC44MiwtMS40bC0wLjAzLC0wLjM1bC0wLjgyLC0wLjk3bC0wLjQ2LDAuMDFsLTAuODUsMS4wNWwtMC4xMSwtMi42bC0wLjA1LC0wLjE2bC0xLjE5LC0xLjdsMC44NiwtMy41M2wxLjgxLC0yLjc1bDEuODgsMC4yNmwyLjM4LC0wLjI0Wk00MDYuMzksMTMyLjg0bC0xLjA5LDEuOTJsLTEuNjUsLTAuNjJsLTEuMjYsMC4wMmwwLjQxLC0xLjQ2bDAuMCwtMC4xNmwtMC40MiwtMS41MWwxLjYyLC0wLjExbDIuMzksMS45MlpcIiwgXCJuYW1lXCI6IFwiVW5pdGVkIEtpbmdkb21cIn0sIFwiR0FcIjoge1wicGF0aFwiOiBcIk00NDguNzYsMjk0LjQ3bC0yLjM4LC0yLjM0bC0xLjYzLC0yLjA0bC0xLjQ2LC0yLjQ4bDAuMDYsLTAuNjZsMC41NCwtMC44MWwwLjYxLC0xLjgybDAuNDYsLTEuNjlsMC42MywtMC4xMWwzLjYyLDAuMDNsMC4zLC0wLjNsLTAuMDIsLTIuNzVsMC44OCwtMC4xMmwxLjQ3LDAuMzJsMC4xMywwLjBsMS4zOSwtMC4zbC0wLjEzLDAuODdsMC4wMywwLjE5bDAuNywxLjI5bDAuMywwLjE2bDEuNzQsLTAuMTlsMC4zNiwwLjI5bC0xLjAxLDIuN2wwLjA1LDAuMjlsMS4xMywxLjQybDAuMjUsMS44MmwtMC4zLDEuNTZsLTAuNjQsMC45OWwtMS45MywtMC4wOWwtMS4yNiwtMS4xM2wtMC41LDAuMTdsLTAuMTYsMC45MWwtMS40OCwwLjI3bC0wLjEyLDAuMDVsLTAuODYsMC42M2wtMC4wOCwwLjM5bDAuODEsMS40MmwtMS40OCwxLjA4WlwiLCBcIm5hbWVcIjogXCJHYWJvblwifSwgXCJHTlwiOiB7XCJwYXRoXCI6IFwiTTM5OS44MywyNjUuMzFsLTAuNjksLTAuMDZsLTAuMywwLjE2bC0wLjQzLDAuODVsLTAuMzksLTAuMDFsLTAuMywtMC4zM2wwLjE0LC0wLjg3bC0wLjA1LC0wLjIybC0xLjA1LC0xLjU0bC0wLjM3LC0wLjExbC0wLjYxLDAuMjdsLTAuODQsMC4xMmwwLjAyLC0wLjU0bC0wLjA0LC0wLjE3bC0wLjM1LC0wLjU3bDAuMDcsLTAuNjNsLTAuMDMsLTAuMTdsLTAuNTcsLTEuMTFsLTAuNywtMC45bC0wLjI0LC0wLjEybC0yLjAsLTAuMGwtMC4xOSwwLjA3bC0wLjUxLDAuNDJsLTAuNiwwLjA1bC0wLjIxLDAuMTFsLTAuNDMsMC41NWwtMC4zLDAuN2wtMS4wNCwwLjg2bC0wLjkxLC0xLjI0bC0xLjAsLTEuMDJsLTAuNjksLTAuMzdsLTAuNTIsLTAuNDJsLTAuMywtMS4xMWwtMC4zNywtMC41NmwtMC4xLC0wLjFsLTAuNCwtMC4yM2wwLjc3LC0wLjg1bDAuNjIsMC4wNGwwLjE4LC0wLjA1bDAuNTgsLTAuMzhsMC40NiwtMC4wbDAuMTksLTAuMDdsMC4zOSwtMC4zNGwwLjEsLTAuM2wtMC4xNywtMC42N2wwLjE1LC0wLjE0bDAuMDksLTAuMmwwLjAzLC0wLjU3bDAuODcsMC4wMmwxLjc2LDAuNmwwLjEzLDAuMDFsMC41NSwtMC4wNmwwLjIyLC0wLjEzbDAuMDgsLTAuMTJsMS4xOCwwLjE3bDAuMTcsLTAuMDJsMC4wOSwwLjU2bDAuMywwLjI1bDAuNCwtMC4wbDAuMTQsLTAuMDNsMC41NiwtMC4yOWwwLjIzLDAuMDVsMC42MywwLjU5bDAuMTUsMC4wN2wxLjA3LDAuMmwwLjI0LC0wLjA2bDAuNjUsLTAuNTJsMC43NywtMC4zMmwwLjU1LC0wLjMybDAuMywwLjA0bDAuNDQsMC40NWwwLjM0LDAuNzRsMC44NCwwLjg3bC0wLjM1LDAuNDVsLTAuMDYsMC4xNWwtMC4xLDAuODJsMC40MiwwLjMxbDAuMzUsLTAuMTZsMC4wNSwwLjA0bC0wLjEsMC41OWwwLjA5LDAuMjdsMC40MiwwLjRsLTAuMDYsMC4wMmwtMC4xOCwwLjIxbC0wLjIsMC44NmwwLjAzLDAuMjFsMC41NiwxLjAybDAuNTIsMS43MWwtMC42NSwwLjIxbC0wLjE1LDAuMTJsLTAuMjQsMC4zNWwtMC4wMywwLjI4bDAuMTYsMC40MWwtMC4xLDAuNzZsLTAuMTIsMC4wWlwiLCBcIm5hbWVcIjogXCJHdWluZWFcIn0sIFwiR01cIjoge1wicGF0aFwiOiBcIk0zNzkuMTgsMjUxLjQ4bDAuMTUsLTAuNTVsMi41MSwtMC4wN2wwLjIxLC0wLjA5bDAuNDgsLTAuNTJsMC41OCwtMC4wM2wwLjkxLDAuNThsMC4xNiwwLjA1bDAuNzgsMC4wMWwwLjE0LC0wLjAzbDAuNTksLTAuMzFsMC4xNiwwLjI0bC0wLjcxLDAuMzhsLTAuOTQsLTAuMDRsLTEuMDIsLTAuNTFsLTAuMywwLjAxbC0wLjg2LDAuNTVsLTAuMzcsMC4wMmwtMC4xNCwwLjA0bC0wLjUzLDAuMzFsLTEuODEsLTAuMDRaXCIsIFwibmFtZVwiOiBcIkdhbWJpYVwifSwgXCJHTFwiOiB7XCJwYXRoXCI6IFwiTTMwNC4xMyw2LjZsOC4xOSwtMy42M2w4LjcyLDAuMjhsMC4xOSwtMC4wNmwzLjEyLC0yLjI4bDguNzUsLTAuNjFsMTkuOTQsMC44bDE0LjkzLDQuNzVsLTMuOTIsMi4wMWwtOS41MiwwLjI3bC0xMy40OCwwLjZsLTAuMjcsMC4ybDAuMDksMC4zM2wxLjI2LDEuMDlsMC4yMiwwLjA3bDguODEsLTAuNjdsNy40OSwyLjA3bDAuMTksLTAuMDFsNC42OCwtMS43OGwxLjc2LDEuODRsLTIuNTksMy4yNmwtMC4wMSwwLjM2bDAuMzQsMC4xMWw2LjM1LC0yLjJsMTIuMDksLTIuMzJsNy4zMSwxLjE0bDEuMTcsMi4xM2wtOS45LDQuMDVsLTEuNDMsMS4zMmwtNy45MSwwLjk4bC0wLjI2LDAuMzFsMC4yOSwwLjI5bDUuMjUsMC4yNWwtMi42MywzLjcybC0yLjAyLDMuNjFsLTAuMDQsMC4xNWwwLjA4LDYuMDVsMC4wNywwLjE5bDIuNjEsMy4wbC0zLjQsMC4ybC00LjEyLDEuNjZsLTAuMDQsMC41NGw0LjUsMi42N2wwLjUzLDMuOWwtMi4zOSwwLjQybC0wLjE5LDAuNDhsMi45MSwzLjgzbC01LjAsMC4zMmwtMC4yNywwLjIybDAuMTIsMC4zM2wyLjY5LDEuODRsLTAuNjUsMS4zNWwtMy4zNiwwLjcxbC0zLjQ2LDAuMDFsLTAuMjEsMC41MWwzLjA1LDMuMTVsMC4wMiwxLjUzbC00LjU0LC0xLjc5bC0wLjMyLDAuMDZsLTEuMjksMS4yNmwwLjExLDAuNWwzLjMzLDEuMTVsMy4xNywyLjc0bDAuODUsMy4yOWwtNC4wLDAuNzhsLTEuODMsLTEuNjZsLTMuMSwtMi42NGwtMC4zNiwtMC4wMmwtMC4xMywwLjMzbDAuOCwyLjkybC0yLjc2LDIuMjZsLTAuMDksMC4zM2wwLjI4LDAuMmw2LjU5LDAuMTlsMi40NywwLjE4bC01Ljg2LDMuMzhsLTYuNzYsMy40M2wtNy4yNiwxLjQ4bC0yLjczLDAuMDJsLTAuMTYsMC4wNWwtMi42NywxLjcybC0zLjQ0LDQuNDJsLTUuMjgsMi44NmwtMS43MywwLjE4bC0zLjMzLDEuMDFsLTMuNTksMC45NmwtMC4xNSwwLjFsLTIuMTUsMi41MmwtMC4wNywwLjE5bC0wLjAzLDIuNzZsLTEuMjEsMi40OWwtNC4wMywzLjFsLTAuMSwwLjMzbDAuOTgsMi45NGwtMi4zMSw2LjU3bC0zLjIxLDAuMjFsLTMuNiwtMy4wbC0wLjE5LC0wLjA3bC00LjksLTAuMDJsLTIuMjksLTEuOTdsLTEuNjksLTMuNzhsLTQuMzEsLTQuODZsLTEuMjMsLTIuNTJsLTAuMzQsLTMuNThsLTAuMDgsLTAuMTdsLTMuMzUsLTMuNjdsMC44NSwtMi45MmwtMC4wOSwtMC4zMWwtMS41LC0xLjM0bDIuMzMsLTQuN2wzLjY3LC0xLjU3bDAuMTUsLTAuMTNsMS4wMiwtMS45M2wwLjUyLC0zLjQ3bC0wLjQ0LC0wLjMxbC0yLjg1LDEuNTdsLTEuMzMsMC42NGwtMi4xMiwwLjU5bC0yLjgxLC0xLjMybC0wLjE1LC0yLjc5bDAuODgsLTIuMTdsMi4wOSwtMC4wNmw1LjA3LDEuMmwwLjM0LC0wLjE3bC0wLjExLC0wLjM3bC00LjMsLTIuOWwtMi4yNCwtMS41OGwtMC4yNSwtMC4wNWwtMi4zOCwwLjYybC0xLjcsLTAuOTNsMi42MiwtNC4xbC0wLjAzLC0wLjM2bC0xLjUxLC0xLjc1bC0xLjk3LC0zLjNsLTMuMDEsLTUuMjFsLTAuMSwtMC4xMWwtMy4wNCwtMS44NWwwLjAzLC0xLjk0bC0wLjE4LC0wLjI4bC02LjgyLC0zLjAxbC01LjM1LC0wLjM4bC02LjY5LDAuMjFsLTYuMDMsMC4zN2wtMi44MSwtMS41OWwtMy44NCwtMi45bDUuOTQsLTEuNWw1LjAxLC0wLjI4bDAuMjgsLTAuMjlsLTAuMjYsLTAuMzFsLTEwLjY4LC0xLjM4bC01LjM4LC0yLjFsMC4yNywtMS42OGw5LjMsLTIuNmw5LjE4LC0yLjY4bDAuMTksLTAuMTZsMC45NywtMi4wNWwtMC4xOCwtMC40MmwtNi4yOSwtMS45MWwxLjgxLC0xLjlsOC41OCwtNC4wNWwzLjYsLTAuNjNsMC4yMywtMC40bC0wLjkyLC0yLjM3bDUuNTksLTEuNWw3LjY2LC0wLjk1bDcuNTgsLTAuMDVsMi42NSwxLjg0bDAuMzEsMC4wMmw2LjUyLC0zLjI5bDUuODUsMi4yNGwzLjU1LDAuNDlsNS4xNywxLjk1bDAuMzgsLTAuMTZsLTAuMTMsLTAuMzlsLTUuNzcsLTMuMTZsMC4yOSwtMi4yNlpcIiwgXCJuYW1lXCI6IFwiR3JlZW5sYW5kXCJ9LCBcIktXXCI6IHtcInBhdGhcIjogXCJNNTQwLjg3LDIwNy44MWwwLjQxLDAuOTRsLTAuMTgsMC41MWwwLjAsMC4yMWwwLjY1LDEuNjZsLTEuMTUsMC4wNWwtMC41NCwtMS4xMmwtMC4yNCwtMC4xN2wtMS43MywtMC4ybDEuNDQsLTIuMDZsMS4zMywwLjE4WlwiLCBcIm5hbWVcIjogXCJLdXdhaXRcIn0sIFwiR0hcIjoge1wicGF0aFwiOiBcIk00MjMuMTYsMjY5Ljg4bC0zLjU4LDEuMzRsLTEuNDEsMC44N2wtMi4xMywwLjY5bC0xLjkxLC0wLjYxbDAuMDksLTAuNzVsLTAuMDMsLTAuMTdsLTEuMDQsLTIuMDdsMC42MiwtMi43bDEuMDQsLTIuMDhsMC4wMywtMC4xOWwtMS4wLC01LjQ2bDAuMDUsLTEuMTJsNC4wNCwtMC4xMWwxLjA4LDAuMThsMC4xOCwtMC4wM2wwLjcyLC0wLjM2bDAuNzUsMC4xM2wtMC4xMSwwLjQ4bDAuMDYsMC4yNmwwLjk4LDEuMjJsLTAuMCwxLjc3bDAuMjQsMS45OWwwLjA1LDAuMTNsMC41NSwwLjgxbC0wLjUyLDIuMTRsMC4xOSwxLjM3bDAuNjksMS42NmwwLjM4LDAuNjJaXCIsIFwibmFtZVwiOiBcIkdoYW5hXCJ9LCBcIk9NXCI6IHtcInBhdGhcIjogXCJNNTY4LjE2LDIzMS4wbC0wLjA4LDAuMWwtMC44NCwxLjYxbC0wLjkzLC0wLjExbC0wLjI3LDAuMTFsLTAuNTgsMC43M2wtMC40LDEuMzJsLTAuMDEsMC4xNGwwLjI5LDEuNjFsLTAuMDcsMC4wOWwtMS4wLC0wLjAxbC0wLjE2LDAuMDRsLTEuNTYsMC45N2wtMC4xNCwwLjJsLTAuMjMsMS4xN2wtMC40MSwwLjRsLTEuNDQsLTAuMDJsLTAuMTcsMC4wNWwtMC45OCwwLjY1bC0wLjEzLDAuMjVsMC4wMSwwLjg3bC0wLjk3LDAuNTdsLTEuMjcsLTAuMjJsLTAuMTksMC4wM2wtMS42MywwLjg0bC0wLjg4LDAuMTFsLTIuNTUsLTUuNTdsNy4yLC0yLjQ5bDAuMTksLTAuMTlsMS42NywtNS4yM2wtMC4wMywtMC4yNWwtMS4xLC0xLjc4bDAuMDUsLTAuODlsMC42OCwtMS4wM2wwLjA1LC0wLjE2bDAuMDEsLTAuODlsMC45NiwtMC40NGwwLjA3LC0wLjVsLTAuMzIsLTAuMjZsMC4xNiwtMS4zMWwwLjg1LC0wLjAxbDEuMDMsMS42N2wwLjA5LDAuMDlsMS40LDAuOTZsMC4xMSwwLjA1bDEuODIsMC4zNGwxLjM3LDAuNDVsMS43NSwyLjMybDAuMTMsMC4xbDAuNywwLjI2bC0wLjAsMC4zbC0xLjI1LDIuMTlsLTEuMDEsMC44Wk01NjEuODgsMjE4LjQ3bC0wLjAxLDAuMDJsLTAuMTUsLTAuMjlsMC4zLC0wLjM4bC0wLjE0LDAuNjVaXCIsIFwibmFtZVwiOiBcIk9tYW5cIn0sIFwiXzNcIjoge1wicGF0aFwiOiBcIk01NDMuMiwyNjEuMDZsLTEuMDcsMS40NmwtMS42NSwxLjk5bC0xLjkxLDAuMDFsLTguMDgsLTIuOTVsLTAuODksLTAuODRsLTAuOSwtMS4xOWwtMC44MSwtMS4yM2wwLjQ0LC0wLjczbDAuNzYsLTEuMTJsMC40OSwwLjI4bDAuNTIsMS4wNWwxLjEzLDEuMDZsMC4yLDAuMDhsMS4yNCwwLjAxbDIuNDIsLTAuNjVsMi43NywtMC4zMWwyLjE3LC0wLjc4bDEuMzEsLTAuMTlsMC44NCwtMC40M2wxLjAzLC0wLjA2bC0wLjAxLDQuNTRaXCIsIFwibmFtZVwiOiBcIlNvbWFsaWxhbmRcIn0sIFwiXzJcIjoge1wicGF0aFwiOiBcIk0zODQuMjMsMjMwLjM3bDAuMDcsLTAuMDZsMC4yOCwtMC44OWwwLjk5LC0xLjEzbDAuMDcsLTAuMTNsMC44LC0zLjU0bDMuNCwtMi44bDAuMDksLTAuMTNsMC43NiwtMi4xN2wwLjA3LDUuNWwtMi4wNywwLjIxbC0wLjI0LDAuMTdsLTAuNjEsMS4zNmwtMC4wMiwwLjE2bDAuNDMsMy40NmwtNC4wMSwtMC4wMVpNMzkxLjgyLDIxOC4ybDAuMDcsLTAuMDZsMC43NSwtMS45M2wxLjg2LC0wLjI1bDAuOTQsMC4zNGwxLjE0LDAuMGwwLjE4LC0wLjA2bDAuNzMsLTAuNTZsMS40MSwtMC4wOGwtMC4wLDIuNzJsLTcuMDgsLTAuMTJaXCIsIFwibmFtZVwiOiBcIldlc3Rlcm4gU2FoYXJhXCJ9LCBcIl8xXCI6IHtcInBhdGhcIjogXCJNNDcyLjcxLDE3Mi44NGwtMC4wNywtMC40M2wtMC4xNiwtMC4yMmwtMC41MywtMC4yN2wtMC4zOCwtMC41OGwwLjMsLTAuNDNsMC41MSwtMC4xOWwwLjE4LC0wLjE4bDAuMywtMC44N2wwLjEyLC0wLjA0bDAuMjIsMC4yNmwwLjEyLDAuMDlsMC4zOCwwLjE1bDAuMjgsMC40MWwwLjE1LDAuMTJsMC4zNCwwLjEybDAuNDMsMC41bDAuMTUsMC4wN2wtMC4xMiwwLjNsLTAuMjcsMC4zMmwtMC4wMywwLjE4bC0wLjMxLDAuMDZsLTEuNDgsMC40N2wtMC4xNSwwLjE3WlwiLCBcIm5hbWVcIjogXCJLb3Nvdm9cIn0sIFwiXzBcIjoge1wicGF0aFwiOiBcIk01MDMuNTQsMTkyLjkybDAuMDksLTAuMTdsMC40MSwwLjAxbC0wLjA4LDAuMDFsLTAuNDIsMC4xNVpNNTA0LjIzLDE5Mi43NmwxLjAyLDAuMDJsMC40LC0wLjEzbC0wLjA5LDAuMjlsMC4wMywwLjA4bC0wLjM1LDAuMTZsLTAuMjQsLTAuMDRsLTAuMDYsLTAuMWwtMC4xOCwtMC4xN2wtMC4xOSwtMC4wOGwtMC4zMywtMC4wMlpcIiwgXCJuYW1lXCI6IFwiTm9ydGhlcm4gQ3lwcnVzXCJ9LCBcIkpPXCI6IHtcInBhdGhcIjogXCJNNTEwLjI2LDIwMC45M2wwLjI4LC0wLjU3bDIuNTMsMS4wbDAuMjcsLTAuMDJsNC41NywtMi43N2wwLjg0LDIuODRsLTAuMjgsMC4yNWwtNC45NSwxLjM3bC0wLjE0LDAuNDlsMi4yNCwyLjQ4bC0wLjUsMC4yOGwtMC4xMywwLjE0bC0wLjM1LDAuNzhsLTEuNzYsMC4zNWwtMC4yLDAuMTRsLTAuNTcsMC45NGwtMC45NCwwLjczbC0yLjQ1LC0wLjM4bC0wLjAzLC0wLjEybDEuMjMsLTQuMzJsLTAuMDQsLTEuMWwwLjM0LC0wLjc1bDAuMDMsLTAuMTJsMC4wLC0xLjYzWlwiLCBcIm5hbWVcIjogXCJKb3JkYW5cIn0sIFwiSFJcIjoge1wicGF0aFwiOiBcIk00NTUuNDksMTYyLjczbDEuNTMsMC4wOWwwLjI0LC0wLjFsMC4yOSwtMC4zNGwwLjY0LDAuMzhsMC4xNCwwLjA0bDAuOTgsMC4wNmwwLjMyLC0wLjNsLTAuMDEsLTAuNjZsMC42NywtMC4yNWwwLjE5LC0wLjIybDAuMjEsLTEuMTFsMS43MiwtMC43MmwwLjY1LDAuMzJsMS45NCwxLjM3bDIuMDcsMC42bDAuMjIsLTAuMDJsMC42NywtMC4zM2wwLjQ3LDAuOTRsMC42NywwLjc2bC0wLjYzLDAuNzdsLTAuOTEsLTAuNTVsLTAuMTYsLTAuMDRsLTEuNjksMC4wNGwtMi4yLC0wLjUxbC0xLjE3LDAuMDdsLTAuMjEsMC4xMWwtMC4zNiwwLjQybC0wLjY3LC0wLjUzbC0wLjQ2LDAuMTJsLTAuNTIsMS4yOWwwLjA1LDAuMzFsMS4yMSwxLjQybDAuNTgsMC45OWwxLjE1LDEuMTRsMC45NSwwLjY4bDAuOTIsMS4yM2wwLjEsMC4wOWwxLjc1LDAuOTFsLTEuODcsLTAuODlsLTEuNSwtMS4xMWwtMi4yMywtMC44OGwtMS43NywtMS45bDAuMTIsLTAuMDZsMC4xLC0wLjQ3bC0xLjA3LC0xLjIybC0wLjA0LC0wLjk0bC0wLjIxLC0wLjI3bC0xLjYxLC0wLjQ5bC0wLjM1LDAuMTRsLTAuNTMsMC45M2wtMC40MSwtMC41N2wwLjA0LC0wLjczWlwiLCBcIm5hbWVcIjogXCJDcm9hdGlhXCJ9LCBcIkhUXCI6IHtcInBhdGhcIjogXCJNMjM3LjgyLDIzNC42OGwxLjM1LDAuMWwxLjk1LDAuMzdsMC4xOCwxLjE1bC0wLjE2LDAuODNsLTAuNTEsMC4zN2wtMC4wNiwwLjQ0bDAuNTcsMC42OGwtMC4wMiwwLjIybC0xLjMxLC0wLjM1bC0xLjI2LDAuMTdsLTEuNDksLTAuMThsLTAuMTUsMC4wMmwtMS4wMywwLjQzbC0xLjAyLC0wLjYxbDAuMDksLTAuMzZsMi4wNCwwLjMybDEuOSwwLjIxbDAuMTksLTAuMDVsMC45LC0wLjU4bDAuMDUsLTAuNDdsLTEuMDUsLTEuMDNsMC4wMiwtMC44NmwtMC4yMywtMC4zbC0xLjEzLC0wLjI5bDAuMTgsLTAuMjNaXCIsIFwibmFtZVwiOiBcIkhhaXRpXCJ9LCBcIkhVXCI6IHtcInBhdGhcIjogXCJNNDYxLjk2LDE1Ny45MmwwLjY4LC0xLjY2bC0wLjAzLC0wLjI5bC0wLjE1LC0wLjIybDAuODQsLTAuMGwwLjMsLTAuMjZsMC4xMiwtMC44NGwwLjg4LDAuNTdsMC45OCwwLjM4bDAuMTYsMC4wMWwyLjEsLTAuMzlsMC4yMywtMC4yMWwwLjE0LC0wLjQ1bDAuODgsLTAuMWwxLjA2LC0wLjQzbDAuMTMsMC4xbDAuMjgsMC4wNGwxLjE4LC0wLjRsMC4xNCwtMC4xbDAuNTIsLTAuNjdsMC42MywtMC4xNWwyLjYsMC45NWwwLjI2LC0wLjAzbDAuMzgsLTAuMjNsMS4xMiwwLjdsMC4xLDAuNDlsLTEuMzEsMC41N2wtMC4xNCwwLjEzbC0xLjE4LDIuMTRsLTEuNDQsMi4wNGwtMS44NSwwLjU1bC0xLjUxLC0wLjEzbC0wLjE0LDAuMDJsLTEuOTIsMC44MmwtMC44NSwwLjQybC0xLjkxLC0wLjU1bC0xLjgzLC0xLjMxbC0wLjc0LC0wLjM3bC0wLjQ0LC0wLjk3bC0wLjI2LC0wLjE4WlwiLCBcIm5hbWVcIjogXCJIdW5nYXJ5XCJ9LCBcIkhOXCI6IHtcInBhdGhcIjogXCJNMjAyLjQ4LDI1MS44N2wtMC4zMywtMC42MmwtMC4xOCwtMC4xNGwtMC41LC0wLjE1bDAuMTMsLTAuNzZsLTAuMTEsLTAuMjhsLTAuMzQsLTAuMjhsLTAuNiwtMC4yM2wtMC4xOCwtMC4wMWwtMC44MSwwLjIybC0wLjE2LC0wLjI0bC0wLjcyLC0wLjM5bC0wLjUxLC0wLjQ4bC0wLjEyLC0wLjA3bC0wLjMxLC0wLjA5bDAuMjQsLTAuM2wwLjA0LC0wLjNsLTAuMTYsLTAuNGwwLjEsLTAuMjhsMS4xNCwtMC42OWwxLjAsLTAuODZsMC4wOSwwLjA0bDAuMywtMC4wNWwwLjQ3LC0wLjM5bDAuNDksLTAuMDNsMC4xNCwwLjEzbDAuMjksMC4wNmwwLjMxLC0wLjFsMS4xNiwwLjIybDEuMjQsLTAuMDhsMC44MSwtMC4yOGwwLjI5LC0wLjI1bDAuNjMsMC4xbDAuNjksMC4xOGwwLjY1LC0wLjA2bDAuNDksLTAuMmwxLjA0LDAuMzJsMC4zOCwwLjA2bDAuNywwLjQ0bDAuNzEsMC41NmwwLjkyLDAuNDFsMC4xLDAuMTFsLTAuMTEsLTAuMDFsLTAuMjMsMC4wOWwtMC4zLDAuM2wtMC43NiwwLjI5bC0wLjU4LDAuMGwtMC4xNSwwLjA0bC0wLjQ1LDAuMjZsLTAuMzEsLTAuMDdsLTAuMzcsLTAuMzRsLTAuMjgsLTAuMDdsLTAuMjYsMC4wN2wtMC4xOCwwLjE1bC0wLjIzLDAuNDNsLTAuMDQsLTAuMGwtMC4zMywwLjI4bC0wLjAzLDAuNGwtMC43NiwwLjYxbC0wLjQ1LDAuM2wtMC4xNSwwLjE2bC0wLjUxLC0wLjM2bC0wLjQxLDAuMDZsLTAuNDUsMC41NmwtMC40MSwtMC4wMWwtMC41OSwwLjA2bC0wLjI3LDAuMzFsMC4wNCwwLjk2bC0wLjA3LDAuMGwtMC4yNSwwLjE2bC0wLjI0LDAuNDVsLTAuNDIsMC4wNlpcIiwgXCJuYW1lXCI6IFwiSG9uZHVyYXNcIn0sIFwiUFJcIjoge1wicGF0aFwiOiBcIk0yNTQuOTUsMjM4LjMxbDEuMTUsMC4yMWwwLjIsMC4yM2wtMC4zNiwwLjM2bC0xLjc2LC0wLjAxbC0xLjIsMC4wN2wtMC4wOSwtMC42OWwwLjE3LC0wLjE4bDEuODksMC4wMVpcIiwgXCJuYW1lXCI6IFwiUHVlcnRvIFJpY29cIn0sIFwiUFNcIjoge1wicGF0aFwiOiBcIk01MDkuNjYsMjAxLjA2bC0wLjAsMS40NGwtMC4yOSwwLjYzbC0wLjU5LDAuMTlsMC4wMiwtMC4xMWwwLjUyLC0wLjMxbC0wLjAyLC0wLjUzbC0wLjQxLC0wLjJsMC4zNiwtMS4yOGwwLjQxLDAuMTdaXCIsIFwibmFtZVwiOiBcIldlc3QgQmFua1wifSwgXCJQVFwiOiB7XCJwYXRoXCI6IFwiTTM5OC42NSwxNzMuNmwwLjc1LC0wLjYzbDAuNywtMC4zbDAuNTEsMS4ybDAuMjgsMC4xOGwxLjQ4LC0wLjBsMC4yLC0wLjA4bDAuMzMsLTAuM2wxLjE2LDAuMDhsMC41MiwxLjExbC0wLjk1LDAuNjZsLTAuMTMsMC4yNGwtMC4wMywyLjJsLTAuMzMsMC4zNWwtMC4wOCwwLjE4bC0wLjA4LDEuMTdsLTAuODYsMC4xOWwtMC4yLDAuNDRsMC45MywxLjY0bC0wLjY0LDEuNzlsMC4wNywwLjMxbDAuNzIsMC43MmwtMC4yNCwwLjU2bC0wLjksMS4wNWwtMC4wNywwLjI2bDAuMTcsMC43N2wtMC43MywwLjU0bC0xLjE4LC0wLjM2bC0wLjE2LC0wLjBsLTAuODUsMC4yMWwwLjMxLC0xLjgxbC0wLjIzLC0xLjg3bC0wLjIzLC0wLjI1bC0wLjk5LC0wLjI0bC0wLjQ5LC0wLjkxbDAuMTgsLTEuNzJsMC45MywtMC45OWwwLjA4LC0wLjE2bDAuMTcsLTEuMTdsMC41MiwtMS43NmwtMC4wNCwtMS4zNmwtMC41MSwtMS4xNGwtMC4wOSwtMC44WlwiLCBcIm5hbWVcIjogXCJQb3J0dWdhbFwifSwgXCJQWVwiOiB7XCJwYXRoXCI6IFwiTTI2NC4zMywzNDEuNDNsMC45MywtMi45NmwwLjA3LC0xLjQybDEuMSwtMi4xbDQuMTksLTAuNzNsMi4yMiwwLjA0bDIuMTIsMS4yMWwwLjA3LDAuNzZsMC43LDEuMzhsLTAuMTYsMy40OGwwLjI0LDAuMzFsMi42NCwwLjVsMC4xOSwtMC4wM2wwLjksLTAuNDVsMS40NywwLjYybDAuMzgsMC42NGwwLjIzLDIuMzVsMC4zLDEuMDdsMC4yNSwwLjIxbDAuOTMsMC4xMmwwLjE2LC0wLjAybDAuOCwtMC4zN2wwLjYxLDAuMzNsLTAuMCwxLjI1bC0wLjMzLDEuNTNsLTAuNSwxLjU3bC0wLjM5LDIuMjZsLTIuMTQsMS45NGwtMS44NSwwLjRsLTIuNzQsLTAuNGwtMi4xMywtMC42MmwyLjI2LC0zLjc1bDAuMDMsLTAuMjRsLTAuMzYsLTEuMThsLTAuMTcsLTAuMTlsLTIuNTUsLTEuMDNsLTMuMDQsLTEuOTVsLTIuMDcsLTAuNDNsLTQuNCwtNC4xMlpcIiwgXCJuYW1lXCI6IFwiUGFyYWd1YXlcIn0sIFwiUEFcIjoge1wicGF0aFwiOiBcIk0yMTMuNjUsMjYzLjc5bDAuMTgsLTAuNDNsMC4wMiwtMC4xOGwtMC4wNiwtMC4yOGwwLjIzLC0wLjE4bC0wLjAxLC0wLjQ4bC0wLjQsLTAuMjlsLTAuMDEsLTAuNjJsMC41NywtMC4xM2wwLjY4LDAuNjlsLTAuMDQsMC4zOWwwLjI2LDAuMzNsMS4wLDAuMTFsMC4yNywtMC4xbDAuNDksMC40NGwwLjI0LDAuMDdsMS4zNCwtMC4yMmwxLjA0LC0wLjYybDEuNDksLTAuNWwwLjg2LC0wLjczbDAuOTksMC4xMWwwLjE4LDAuMjhsMS4zNSwwLjA4bDEuMDIsMC40bDAuNzgsMC43MmwwLjcxLDAuNTNsLTAuMSwwLjEybC0wLjA1LDAuM2wwLjUzLDEuMzRsLTAuMjgsMC40NGwtMC42LC0wLjEzbC0wLjM2LDAuMjJsLTAuMiwwLjc2bC0wLjQxLC0wLjM2bC0wLjQ0LC0xLjEybDAuNDksLTAuNTNsLTAuMTQsLTAuNDlsLTAuNTEsLTAuMTRsLTAuNDEsLTAuNzJsLTAuMTEsLTAuMTFsLTEuMjUsLTAuN2wtMC4xOSwtMC4wNGwtMS4xLDAuMTZsLTAuMjIsMC4xNWwtMC40NywwLjgxbC0wLjksMC41NmwtMC40OSwwLjA4bC0wLjIyLDAuMTdsLTAuMjUsMC41MmwwLjA1LDAuMzJsMC45MywxLjA3bC0wLjQxLDAuMjFsLTAuMjksMC4zbC0wLjgxLDAuMDlsLTAuMzYsLTEuMjZsLTAuNTMsLTAuMWwtMC4yMSwwLjI4bC0wLjUsLTAuMDlsLTAuNDQsLTAuODhsLTAuMjIsLTAuMTZsLTAuOTksLTAuMTZsLTAuNjEsLTAuMjhsLTAuMTMsLTAuMDNsLTEuMCwwLjBaXCIsIFwibmFtZVwiOiBcIlBhbmFtYVwifSwgXCJQR1wiOiB7XCJwYXRoXCI6IFwiTTgwOC40LDI5OC42bDAuNjIsMC40NmwxLjE5LDEuNTZsMS4wNCwwLjc3bC0wLjE4LDAuMzdsLTAuNDIsMC4xNWwtMC45MiwtMC44MmwtMS4wNSwtMS41M2wtMC4yNywtMC45NlpNODA0LjA5LDI5Ni4wNmwtMC4zLDAuMjZsLTAuMzYsLTEuMTFsLTAuNjYsLTEuMDZsLTIuNTUsLTEuODlsLTEuNDIsLTAuNTlsMC4xNywtMC4xNWwxLjE2LDAuNmwwLjg1LDAuNTVsMS4wMSwwLjU4bDAuOTcsMS4wMmwwLjksMC43NmwwLjI0LDEuMDNaTTc5Ni43MSwyOTcuOTlsMC4xNSwwLjgybDAuMzQsMC4yNGwxLjQzLC0wLjE5bDAuMTksLTAuMTFsMC42OCwtMC44MmwxLjM2LC0wLjg3bDAuMTMsLTAuMzFsLTAuMjEsLTEuMTNsMS4wNCwtMC4wM2wwLjMsMC4yNWwtMC4wNCwxLjE3bC0wLjc0LDEuMzRsLTEuMTcsMC4xOGwtMC4yMiwwLjE1bC0wLjM1LDAuNjJsLTIuNTEsMS4xM2wtMS4yMSwtMC4wbC0xLjk5LC0wLjcxbC0xLjE5LC0wLjU4bDAuMDcsLTAuMjhsMS45OCwwLjMybDEuNDYsLTAuMmwwLjI0LC0wLjIxbDAuMjUsLTAuNzlaTTc4OS4yNCwzMDMuNTJsMC4xMSwwLjE1bDIuMTksMS42MmwxLjYsMi42MmwwLjI3LDAuMTRsMS4wOSwtMC4wNmwtMC4wNywwLjc3bDAuMjMsMC4zMmwxLjIzLDAuMjdsLTAuMTQsMC4wOWwwLjA1LDAuNTNsMi4zOSwwLjk1bC0wLjExLDAuMjhsLTEuMzMsMC4xNGwtMC41MSwtMC41NWwtMC4xOCwtMC4wOWwtNC41OSwtMC42NWwtMS44NywtMS41NWwtMS4zOCwtMS4zNWwtMS4yOCwtMi4xN2wtMC4xNiwtMC4xM2wtMy4yNywtMS4xbC0wLjE5LDAuMGwtMi4xMiwwLjcybC0xLjU4LDAuODVsLTAuMTUsMC4zMWwwLjI4LDEuNjNsLTEuNjUsMC43M2wtMS4zNywtMC40bC0yLjMsLTAuMDlsLTAuMDgsLTE1LjY1bDMuOTUsMS41N2w0LjU4LDEuNDJsMS42NywxLjI1bDEuMzIsMS4xOWwwLjM2LDEuMzlsMC4xOSwwLjIxbDQuMDYsMS41MWwwLjM5LDAuODVsLTEuOSwwLjIybC0wLjI1LDAuMzlsMC41NSwxLjY4WlwiLCBcIm5hbWVcIjogXCJQYXB1YSBOZXcgR3VpbmVhXCJ9LCBcIlBFXCI6IHtcInBhdGhcIjogXCJNMjQ2LjQ0LDMyOS4yMWwtMC42MywxLjI1bC0xLjA1LDAuNTRsLTIuMjUsLTEuMzNsLTAuMTksLTAuOTNsLTAuMTYsLTAuMjFsLTQuOTUsLTIuNThsLTQuNDYsLTIuNzlsLTEuODcsLTEuNTJsLTAuOTQsLTEuOTFsMC4zMywtMC42bC0wLjAxLC0wLjMxbC0yLjExLC0zLjMzbC0yLjQ2LC00LjY2bC0yLjM2LC01LjAybC0xLjA0LC0xLjE4bC0wLjc3LC0xLjgxbC0wLjA4LC0wLjExbC0xLjk1LC0xLjY0bC0xLjU0LC0wLjg4bDAuNjEsLTAuODVsMC4wMiwtMC4zMWwtMS4xNSwtMi4yN2wwLjY5LC0xLjU2bDEuNTksLTEuMjZsMC4xMiwwLjQybC0wLjU2LDAuNDdsLTAuMTEsMC4yNWwwLjA3LDAuOTJsMC4zNiwwLjI3bDAuOTcsLTAuMTlsMC44NSwwLjIzbDAuOTksMS4xOWwwLjQxLDAuMDVsMS40MiwtMS4wM2wwLjExLC0wLjE2bDAuNDYsLTEuNjRsMS40NSwtMi4wNmwyLjkyLC0wLjk2bDAuMTEsLTAuMDdsMi43MywtMi42MmwwLjg0LC0xLjcybDAuMDIsLTAuMThsLTAuMywtMS42NWwwLjI4LC0wLjFsMS40OSwxLjA2bDAuNzcsMS4xNGwwLjEsMC4wOWwxLjA4LDAuNmwxLjQzLDIuNTVsMC4yMSwwLjE1bDEuODYsMC4zMWwwLjE4LC0wLjAzbDEuMjUsLTAuNmwwLjc3LDAuMzdsMC4xNywwLjAzbDEuNCwtMC4ybDEuNTcsMC45NmwtMS40NSwyLjI5bDAuMjMsMC40NmwwLjYzLDAuMDVsMC42NiwwLjdsLTEuNTEsLTAuMDhsLTAuMjQsMC4xbC0wLjI3LDAuMzFsLTEuOTYsMC40NmwtMi45NSwxLjc0bC0wLjE0LDAuMjFsLTAuMTcsMS4xbC0wLjYsMC44MmwtMC4wNSwwLjIzbDAuMjEsMS4xM2wtMS4zMSwwLjYzbC0wLjE3LDAuMjdsMC4wLDAuOTFsLTAuNTMsMC4zN2wtMC4xLDAuMzdsMS4wNCwyLjI3bDEuMzEsMS40NmwtMC40NCwwLjlsMC4yNCwwLjQzbDEuNTIsMC4xM2wwLjg3LDEuMjNsMC4yNCwwLjEzbDIuMjEsMC4wN2wwLjE4LC0wLjA2bDEuNTUsLTEuMTNsLTAuMTQsMy4yMmwwLjIzLDAuM2wxLjE0LDAuMjlsMC4xNiwtMC4wbDEuMTgsLTAuMzZsMS45NywzLjcxbC0wLjQ1LDAuNzFsLTAuMDQsMC4xNGwtMC4xMiwxLjhsLTAuMDUsMi4wN2wtMC45MiwxLjJsLTAuMDMsMC4zMWwwLjM4LDAuOGwtMC40OCwwLjcybC0wLjAyLDAuM2wxLjAxLDIuMDJsLTEuNSwyLjY0WlwiLCBcIm5hbWVcIjogXCJQZXJ1XCJ9LCBcIlBLXCI6IHtcInBhdGhcIjogXCJNNjA5LjA4LDE4Ny43NmwxLjY2LDEuMjFsMC43MSwyLjExbDAuMiwwLjE5bDMuNjIsMS4wMWwtMS45OCwxLjk1bC0yLjY1LDAuNGwtMy43NSwtMC42OGwtMC4yNiwwLjA4bC0xLjIzLDEuMjJsLTAuMDcsMC4zMWwwLjg5LDIuNDZsMC44OCwxLjkybDAuMSwwLjEybDEuNjcsMS4xNGwtMS44LDEuMzVsLTAuMTIsMC4yNWwwLjA0LDEuODVsLTIuMzUsMi42N2wtMS41OSwyLjc5bC0yLjUsMi43MmwtMi43NiwtMC4ybC0wLjI0LDAuMDlsLTIuNzYsMi44M2wwLjA0LDAuNDVsMS41NCwxLjEzbDAuMjcsMS45NGwwLjA5LDAuMTdsMS4zNCwxLjI5bDAuNCwxLjgzbC01LjE0LC0wLjAxbC0wLjIyLDAuMDlsLTEuNTMsMS42M2wtMS41MiwtMC41NmwtMC43NiwtMS44OGwtMS45MywtMi4wM2wtMC4yNSwtMC4wOWwtNC42LDAuNWwtNC4wNSwwLjA1bC0zLjEsMC4zM2wwLjc3LC0yLjUzbDMuNDgsLTEuMzNsMC4xOSwtMC4zM2wtMC4yMSwtMS4yNGwtMC4xOSwtMC4yM2wtMS4wMSwtMC4zN2wtMC4wNiwtMi4xOGwtMC4xNywtMC4yNmwtMi4zMiwtMS4xNmwtMC45NiwtMS41N2wtMC41NiwtMC42NWwzLjE2LDEuMDVsMC4xNCwwLjAxbDIuNDUsLTAuNGwxLjQ0LDAuMzNsMC4zLC0wLjFsMC40LC0wLjQ3bDEuNTgsMC4yMmwwLjE0LC0wLjAxbDMuMjUsLTEuMTRsMC4yLC0wLjI3bDAuMDgsLTIuMjNsMS4yMywtMS4zOGwxLjczLDAuMGwwLjI4LC0wLjJsMC4yMiwtMC42MWwxLjY4LC0wLjMybDAuODYsMC4yNGwwLjI3LC0wLjA1bDAuOTgsLTAuNzhsMC4xMSwtMC4yNmwtMC4xMywtMS41N2wwLjk2LC0xLjUybDEuNTEsLTAuNjdsMC4xNCwtMC40MWwtMC43NCwtMS40bDEuODYsMC4wN2wwLjI2LC0wLjEzbDAuNjksLTEuMDFsMC4wNSwtMC4ybC0wLjA5LC0wLjk0bDEuMTQsLTEuMDlsMC4wOSwtMC4yOGwtMC4yOSwtMS40MWwtMC41MSwtMS4wN2wxLjIzLC0xLjA1bDIuNiwtMC41OGwyLjg2LC0wLjMzbDEuMzMsLTAuNTRsMS4zLC0wLjI5WlwiLCBcIm5hbWVcIjogXCJQYWtpc3RhblwifSwgXCJQSFwiOiB7XCJwYXRoXCI6IFwiTTczNy4xMSwyNjMuODJsMC4yNSwxLjY2bDAuMTQsMS4zNGwtMC41NCwxLjQ2bC0wLjY0LC0xLjc5bC0wLjUsLTAuMWwtMS4xNywxLjI4bC0wLjA1LDAuMzJsMC43NCwxLjcxbC0wLjQ5LDAuODFsLTIuNiwtMS4yOGwtMC42MSwtMS41N2wwLjY4LC0xLjA3bC0wLjA3LC0wLjRsLTEuNTksLTEuMTlsLTAuNDIsMC4wNmwtMC42OSwwLjkxbC0xLjAxLC0wLjA4bC0wLjIxLDAuMDZsLTEuNTgsMS4ybC0wLjE3LC0wLjNsMC44NywtMS44OGwxLjQ4LC0wLjY2bDEuMTgsLTAuODFsMC43MSwwLjkybDAuMzQsMC4xbDEuOSwtMC42OWwwLjE4LC0wLjE4bDAuMzQsLTAuOTRsMS41NywtMC4wNmwwLjI5LC0wLjMybC0wLjEsLTEuMzhsMS40MSwwLjgzbDAuMzYsMi4wNlpNNzM0Ljk0LDI1NC40MmwwLjU2LDIuMjRsLTEuNDEsLTAuNDlsLTAuNCwwLjNsMC4wNywwLjk0bDAuNTEsMS4zbC0wLjU0LDAuMjZsLTAuMDgsLTEuMzRsLTAuMjUsLTAuMjhsLTAuNTYsLTAuMWwtMC4yMywtMC45MWwxLjAzLDAuMTRsMC4zNCwtMC4zMWwtMC4wMywtMC45NmwtMC4wNiwtMC4xOGwtMS4xNCwtMS40NGwxLjYyLDAuMDRsMC41NywwLjc4Wk03MjQuNjgsMjM4LjMzbDEuNDgsMC43MWwwLjMzLC0wLjA0bDAuNDQsLTAuMzhsMC4wNSwwLjEzbC0wLjM3LDAuOTdsMC4wMSwwLjIzbDAuODEsMS43NWwtMC41OSwxLjkybC0xLjM3LDAuNzlsLTAuMTQsMC4ybC0wLjM5LDIuMDdsMC4wMSwwLjE0bDAuNTYsMi4wNGwwLjIzLDAuMjFsMS4zMywwLjI4bDAuMTQsLTAuMGwxLjAsLTAuMjdsMi44MiwxLjI4bC0wLjIsMS4xNmwwLjEyLDAuMjlsMC42NiwwLjVsLTAuMTMsMC41NmwtMS41NCwtMC45OWwtMC44OSwtMS4yOWwtMC40OSwwLjBsLTAuNDQsMC42NWwtMS4zNCwtMS4yOGwtMC4yNiwtMC4wOGwtMi4xOCwwLjM2bC0wLjk2LC0wLjQ0bDAuMDksLTAuNzJsMC42OSwtMC41N2wtMC4wMSwtMC40N2wtMC43NSwtMC41OWwtMC40NywwLjE0bC0wLjE1LDAuNDNsLTAuODYsLTEuMDJsLTAuMzQsLTEuMDJsLTAuMDcsLTEuNzRsMC40OSwwLjQxbDAuNDksLTAuMjFsMC4yNiwtMy45OWwwLjczLC0yLjFsMS4yMywwLjBaTTczMS4xMiwyNTguOTJsLTAuODIsMC43NWwtMC44MywxLjY0bC0wLjUyLDAuNWwtMS4xNywtMS4zM2wwLjM2LC0wLjQ3bDAuNjIsLTAuN2wwLjA3LC0wLjE1bDAuMjQsLTEuMzVsMC43MywtMC4wOGwtMC4zMSwxLjI5bDAuMTYsMC4zNGwwLjM3LC0wLjA5bDEuMjEsLTEuNmwtMC4xMiwxLjI0Wk03MjYuNjYsMjU1LjU4bDAuODUsMC40NWwwLjE0LDAuMDNsMS4yOCwtMC4wbC0wLjAzLDAuNjJsLTEuMDQsMC45NmwtMS4xNSwwLjU1bC0wLjA1LC0wLjcxbDAuMTcsLTEuMjZsLTAuMDEsLTAuMTNsLTAuMTYsLTAuNTFaTTcyNC45MiwyNTIuMDZsLTAuNDUsMS41bC0wLjcsLTAuODNsLTAuOTUsLTEuNDNsMS40NCwwLjA2bDAuNjcsMC43Wk03MTcuNDgsMjYxLjI4bC0xLjg3LDEuMzVsMC4yMSwtMC4zbDEuODEsLTEuNTdsMS41LC0xLjc1bDAuOTcsLTEuODRsMC4yMywxLjA4bC0xLjU2LDEuMzNsLTEuMjksMS43WlwiLCBcIm5hbWVcIjogXCJQaGlsaXBwaW5lc1wifSwgXCJQTFwiOiB7XCJwYXRoXCI6IFwiTTQ1OC44LDE0NC4yNWwtMC45NiwtMS45OGwwLjE4LC0xLjA2bC0wLjAxLC0wLjE1bC0wLjYyLC0xLjhsLTAuODIsLTEuMTFsMC41NiwtMC43M2wwLjA1LC0wLjI4bC0wLjUxLC0xLjUxbDEuNDgsLTAuODdsMy44OCwtMS41OGwzLjA2LC0xLjE0bDIuMjMsMC41MmwwLjE1LDAuNjZsMC4yOSwwLjIzbDIuNCwwLjA0bDMuMTEsMC4zOWw0LjU2LC0wLjA1bDEuMTIsMC4zMmwwLjUxLDAuODlsMC4xLDEuNDVsMC4wMywwLjEybDAuNjYsMS4yM2wtMC4wMSwxLjA4bC0xLjMzLDAuNjFsLTAuMTQsMC40MWwwLjc0LDEuNWwwLjA3LDEuNTNsMS4yMiwyLjc5bC0wLjE5LDAuNjZsLTEuMDksMC4zM2wtMC4xNCwwLjA5bC0yLjI3LDIuNzJsLTAuMDQsMC4zMWwwLjM1LDAuOGwtMi4yMiwtMS4xNmwtMC4yMSwtMC4wMmwtMS43MiwwLjQ0bC0xLjEsLTAuMzFsLTAuMjEsMC4wMmwtMS4zLDAuNjFsLTEuMTEsLTEuMDJsLTAuMzIsLTAuMDVsLTAuODEsMC4zNWwtMS4xNSwtMS42MWwtMC4yMSwtMC4xMmwtMS42NSwtMC4xN2wtMC4xOSwtMC44MmwtMC4yMywtMC4yM2wtMS43MiwtMC4zN2wtMC4zNCwwLjE3bC0wLjI1LDAuNTZsLTAuODgsLTAuNDRsMC4xMiwtMC42OWwtMC4yNSwtMC4zNWwtMS43OCwtMC4yN2wtMS4wOCwtMC45N1pcIiwgXCJuYW1lXCI6IFwiUG9sYW5kXCJ9LCBcIlpNXCI6IHtcInBhdGhcIjogXCJNNTAyLjgxLDMwOC4zMmwxLjA5LDEuMDRsMC41OCwxLjk0bC0wLjM5LDAuNjZsLTAuNSwyLjA1bC0wLjAsMC4xNGwwLjQ1LDEuOTVsLTAuNjksMC43N2wtMC4wNiwwLjExbC0wLjc2LDIuMzdsMC4xNSwwLjM2bDAuNjIsMC4zMWwtNi44NSwxLjlsLTAuMjIsMC4zM2wwLjIsMS41NGwtMS42MiwwLjNsLTAuMTIsMC4wNWwtMS40MywxLjAybC0wLjExLDAuMTVsLTAuMjUsMC43M2wtMC43MywwLjE3bC0wLjE0LDAuMDhsLTIuMTgsMi4xMmwtMS4zMywxLjZsLTAuNjUsMC4wNWwtMC44MywtMC4yOWwtMi43NSwtMC4yOGwtMC4yNCwtMC4xbC0wLjE1LC0wLjI3bC0wLjk5LC0wLjU4bC0wLjEyLC0wLjA0bC0xLjczLC0wLjE0bC0xLjg4LDAuNTRsLTEuNSwtMS40OGwtMS42MSwtMi4wMWwwLjExLC03LjczbDQuOTIsMC4wM2wwLjI5LC0wLjM3bC0wLjE5LC0wLjc5bDAuMzQsLTAuODZsMC4wLC0wLjIxbC0wLjQxLC0xLjExbDAuMjYsLTEuMTRsLTAuMDEsLTAuMTZsLTAuMTIsLTAuMzZsMC4xOCwwLjAxbDAuMSwwLjU2bDAuMzEsMC4yNWwxLjE0LC0wLjA2bDEuNDQsMC4yMWwwLjc2LDEuMDVsMC4xOSwwLjEybDIuMDEsMC4zNWwwLjE5LC0wLjAzbDEuMjQsLTAuNjVsMC40NCwxLjAzbDAuMjIsMC4xOGwxLjgxLDAuMzRsMC44NSwwLjk5bDEuMDIsMS4zOWwwLjI0LDAuMTJsMS45MiwwLjAybDAuMywtMC4zMmwtMC4yMSwtMi43NGwtMC40NywtMC4yM2wtMC41MywwLjM2bC0xLjU4LC0wLjg5bC0wLjUxLC0wLjM0bDAuMjksLTIuMzZsMC40NCwtMi45OWwtMC4wMywtMC4xOGwtMC41LC0wLjk5bDAuNjEsLTEuMzhsMC41MywtMC4yNGwzLjI2LC0wLjQxbDAuODksMC4yM2wxLjAxLDAuNjJsMS4wNCwwLjQ0bDEuNiwwLjQzbDEuMzUsMC43MlpcIiwgXCJuYW1lXCI6IFwiWmFtYmlhXCJ9LCBcIkVFXCI6IHtcInBhdGhcIjogXCJNNDgyLjE5LDEyMC44OGwwLjIzLC0xLjY4bC0wLjQzLC0wLjMxbC0wLjc1LDAuMzdsLTEuMzQsLTEuMWwtMC4xOCwtMS43NWwyLjkyLC0wLjk1bDMuMDcsLTAuNTNsMi42NiwwLjZsMi40OCwtMC4xbDAuMTgsMC4zMWwtMS42NSwxLjk2bC0wLjA2LDAuMjZsMC43MSwzLjI1bC0wLjg4LDAuOTRsLTEuODUsLTAuMDFsLTIuMDgsLTEuM2wtMS4xNCwtMC40N2wtMC4yLC0wLjAxbC0xLjY5LDAuNTFaXCIsIFwibmFtZVwiOiBcIkVzdG9uaWFcIn0sIFwiRUdcIjoge1wicGF0aFwiOiBcIk01MDguMDcsMjA4LjhsLTAuNjYsMS4wNmwtMC41MywyLjAzbC0wLjY0LDEuMzJsLTAuMzIsMC4yNmwtMS43NCwtMS44NWwtMS43NywtMy44NmwtMC40OCwtMC4wOWwtMC4yNiwwLjI1bC0wLjA3LDAuMzJsMS4wNCwyLjg4bDEuNTUsMi43NmwxLjg5LDQuMThsMC45NCwxLjQ4bDAuODMsMS41NGwyLjA4LDIuNzNsLTAuMywwLjI4bC0wLjEsMC4yM2wwLjA4LDEuNzJsMC4xMSwwLjIybDIuOTEsMi4zN2wtMjguNzgsMC4wbDAuMCwtMTkuMDZsLTAuNzMsLTIuMmwwLjYxLC0xLjU5bDAuMCwtMC4ybC0wLjM0LC0xLjA0bDAuNzMsLTEuMDhsMy4xMywtMC4wNGwyLjM2LDAuNzJsMi40OCwwLjgxbDEuMTUsMC40M2wwLjIzLC0wLjAxbDEuOTMsLTAuODdsMS4wMiwtMC43OGwyLjA4LC0wLjIxbDEuNTksMC4zMWwwLjYyLDEuMjRsMC41MiwwLjAzbDAuNDYsLTAuNzFsMS44NiwwLjU5bDEuOTUsMC4xNmwwLjE3LC0wLjA0bDAuOTIsLTAuNTJsMS40OCw0LjI0WlwiLCBcIm5hbWVcIjogXCJFZ3lwdFwifSwgXCJaQVwiOiB7XCJwYXRoXCI6IFwiTTQ2Ny4wNiwzNzMuMjdsLTAuMTMsLTAuMjlsMC4wMSwtMS41OGwtMC4wMiwtMC4xMmwtMC43MSwtMS42NGwwLjU5LC0wLjM3bDAuMTQsLTAuMjZsLTAuMDcsLTIuMTNsLTAuMDUsLTAuMTVsLTEuNjMsLTIuNThsLTEuMjUsLTIuMzFsLTEuNzEsLTMuMzdsMC44OCwtMC45OGwwLjcsMC41MmwwLjM5LDEuMDhsMC4yMywwLjE5bDEuMSwwLjE5bDEuNTUsMC41MWwwLjE0LDAuMDFsMS4zNSwtMC4ybDAuMTEsLTAuMDRsMi4yNCwtMS4zOWwwLjE0LC0wLjI1bDAuMCwtOS40bDAuMTYsMC4wOWwxLjM5LDIuMzhsLTAuMjIsMS41M2wwLjA0LDAuMTlsMC41NiwwLjk0bDAuMywwLjE0bDEuNzksLTAuMjdsMC4xNiwtMC4wOGwxLjIzLC0xLjE4bDEuMTcsLTAuNzlsMC4xLC0wLjEybDAuNTcsLTEuMTlsMS4wMiwtMC41MmwwLjksMC4yOGwxLjE2LDAuNzNsMC4xNCwwLjA1bDIuMDQsMC4xM2wwLjEzLC0wLjAybDEuNiwtMC42MmwwLjE4LC0wLjE5bDAuNjMsLTEuOTNsMS4xOCwtMC4xOWwwLjE5LC0wLjEybDAuNzgsLTEuMDVsMC44MSwtMS43MWwyLjE4LC0xLjkxbDMuNDQsLTEuODhsMC44OSwwLjAybDEuMTcsMC40M2wwLjIxLC0wLjBsMC43NiwtMC4yOWwxLjA3LDAuMjFsMS4xNSwzLjU1bDAuNjMsMS44MmwtMC40NCwyLjlsMC4xLDAuNTJsLTAuNzQsLTAuMjlsLTAuMTgsLTAuMDFsLTAuNzIsMC4xOWwtMC4yMSwwLjJsLTAuMjIsMC43NGwtMC42NiwwLjk3bC0wLjA1LDAuMThsMC4wMiwwLjkzbDAuMDksMC4yMWwxLjQ5LDEuNDZsMC4yNywwLjA4bDEuNDcsLTAuMjlsMC4yMiwtMC4xOGwwLjQzLC0xLjAxbDEuMjksMC4wMmwtMC41MSwxLjYzbC0wLjI5LDIuMmwtMC41OSwxLjEybC0yLjIsMS43OGwtMS4wNiwxLjM5bC0wLjcyLDEuNDRsLTEuMzksMS45M2wtMi44MSwyLjg0bC0xLjc1LDEuNjVsLTEuODUsMS4yNGwtMi41NSwxLjA2bC0xLjIzLDAuMTRsLTAuMjQsMC4xOGwtMC4yMiwwLjU0bC0xLjI3LC0wLjM1bC0wLjIsMC4wMWwtMS4xNSwwLjVsLTIuNjIsLTAuNTJsLTAuMTIsMC4wbC0xLjQ2LDAuMzNsLTAuOTgsLTAuMTRsLTAuMTYsMC4wMmwtMi41NSwxLjFsLTIuMTEsMC40NGwtMS41OSwxLjA3bC0wLjkzLDAuMDZsLTAuOTcsLTAuOTJsLTAuMTksLTAuMDhsLTAuNzIsLTAuMDRsLTEuMCwtMS4xNmwtMC4yNSwwLjA1Wk00OTMuNzIsMzU5LjI0bC0xLjEyLC0wLjg2bC0wLjMxLC0wLjAzbC0xLjIzLDAuNTlsLTEuMzYsMS4wN2wtMS4zOSwxLjc4bDAuMDEsMC4zOGwxLjg4LDIuMTFsMC4zMSwwLjA5bDAuOSwtMC4yN2wwLjE4LC0wLjE1bDAuNCwtMC43N2wxLjI4LC0wLjM5bDAuMTgsLTAuMTZsMC40MiwtMC44OGwwLjc2LC0xLjMybC0wLjA1LC0wLjM3bC0wLjg3LC0wLjgyWlwiLCBcIm5hbWVcIjogXCJTb3V0aCBBZnJpY2FcIn0sIFwiRUNcIjoge1wicGF0aFwiOiBcIk0yMjAuMiwyOTMuNDhsMS4yNSwtMS43NmwwLjAyLC0wLjMxbC0wLjU0LC0xLjA5bC0wLjUsLTAuMDZsLTAuNzgsMC45NGwtMS4wMywtMC43NWwwLjMzLC0wLjQ2bDAuMDUsLTAuMjNsLTAuMzgsLTIuMDRsMC42NiwtMC4yOGwwLjE3LC0wLjE5bDAuNDUsLTEuNTJsMC45MywtMS41OGwwLjA0LC0wLjJsLTAuMTMsLTAuNzhsMS4xOSwtMC40N2wxLjU3LC0wLjkxbDIuMzUsMS4zNGwwLjE3LDAuMDRsMC4yOCwtMC4wMmwwLjUyLDAuOTFsMC4yMSwwLjE1bDIuMTIsMC4zNWwwLjIsLTAuMDNsMC41NSwtMC4zMWwxLjA4LDAuNzNsMC45NywwLjU0bDAuMzEsMS42N2wtMC43MSwxLjQ5bC0yLjY0LDIuNTRsLTIuOTUsMC45N2wtMC4xNSwwLjExbC0xLjUzLDIuMThsLTAuNDksMS42OGwtMS4xLDAuOGwtMC44NywtMS4wNWwtMC4xNSwtMC4xbC0xLjAxLC0wLjI3bC0wLjEzLC0wLjBsLTAuNywwLjE0bC0wLjAzLC0wLjQzbDAuNiwtMC41bDAuMSwtMC4zMWwtMC4yNiwtMC45MVpcIiwgXCJuYW1lXCI6IFwiRWN1YWRvclwifSwgXCJBTFwiOiB7XCJwYXRoXCI6IFwiTTQ3MC4yNywxNzEuN2wwLjM4LDAuMTlsMC40NSwtMC4xOGwwLjQsMC42MWwwLjExLDAuMWwwLjQ2LDAuMjRsMC4xMywwLjg3bC0wLjMsMC45NWwtMC4wLDAuMTdsMC4zNiwxLjI4bDAuMTIsMC4xN2wwLjksMC42M2wtMC4wMywwLjQ0bC0wLjY3LDAuMzVsLTAuMTYsMC4yMmwtMC4xNCwwLjg4bC0wLjk2LDEuMThsLTAuMDYsLTAuMDNsLTAuMDQsLTAuNDhsLTAuMTIsLTAuMjJsLTEuMjgsLTAuOTJsLTAuMTksLTEuMjVsMC4yLC0xLjk2bDAuMzMsLTAuODlsLTAuMDYsLTAuM2wtMC4zNiwtMC40MWwtMC4xMywtMC43NWwwLjY2LC0wLjlaXCIsIFwibmFtZVwiOiBcIkFsYmFuaWFcIn0sIFwiQU9cIjoge1wicGF0aFwiOiBcIk00NjEuNjIsMjk5LjkzbDAuNTUsMS42N2wwLjczLDEuNTRsMS41NiwyLjE4bDAuMjgsMC4xMmwxLjY2LC0wLjJsMC44MSwtMC4zNGwxLjI4LDAuMzNsMC4zMywtMC4xNGwwLjM5LC0wLjY3bDAuNTYsLTEuM2wxLjM3LC0wLjA5bDAuMjcsLTAuMjFsMC4wNywtMC4yM2wwLjY3LC0wLjAxbC0wLjEzLDAuNTNsMC4yOSwwLjM3bDIuNzQsLTAuMDJsMC4wNCwxLjI5bDAuMDMsMC4xM2wwLjQ2LDAuODdsLTAuMzUsMS41MmwwLjE4LDEuNTVsMC4wNywwLjE2bDAuNzUsMC44NWwtMC4xMywyLjg5bDAuNDEsMC4yOWwwLjU2LC0wLjIxbDEuMTEsMC4wNWwxLjUsLTAuMzdsMC45LDAuMTJsMC4xOCwwLjUzbC0wLjI3LDEuMTVsMC4wMSwwLjE3bDAuNCwxLjA4bC0wLjMzLDAuODVsLTAuMDEsMC4xOGwwLjEyLDAuNTFsLTQuODMsLTAuMDNsLTAuMywwLjNsLTAuMTIsOC4xM2wwLjA3LDAuMTlsMS42OSwyLjFsMS4yNywxLjI1bC00LjAzLDAuOTJsLTUuOTMsLTAuMzZsLTEuNjYsLTEuMTlsLTAuMTgsLTAuMDZsLTEwLjE1LDAuMTFsLTAuMzQsMC4xM2wtMS4zNSwtMS4wNWwtMC4xNywtMC4wNmwtMS42MiwtMC4wOGwtMS42LDAuNDVsLTAuODgsMC4zNmwtMC4xNywtMS4ybDAuMzQsLTIuMTlsMC44NSwtMi4zMmwwLjE0LC0xLjEzbDAuNzksLTIuMjRsMC41NywtMS4wbDEuNDIsLTEuNjRsMC44MiwtMS4xNWwwLjA1LC0wLjEzbDAuMjYsLTEuODhsLTAuMTMsLTEuNTFsLTAuMDcsLTAuMTZsLTAuNzIsLTAuODdsLTEuMjMsLTIuOTFsMC4wOSwtMC4zN2wwLjczLC0wLjk1bDAuMDUsLTAuMjdsLTEuMjcsLTQuMTJsLTEuMTksLTEuNTRsMC4xLC0wLjJsMC44NiwtMC4yOGwwLjc4LDAuMDNsMC44MywtMC4yOWw3LjEyLDAuMDNaTTQ1MS44MSwyOTguOTRsLTAuMTcsMC4wN2wtMC41LC0xLjQybDAuODUsLTAuOTJsMC41MywtMC4yOWwwLjQ4LDAuNDRsLTAuNTYsMC4zMmwtMC4xLDAuMWwtMC40MSwwLjY1bC0wLjA1LDAuMTRsLTAuMDcsMC45MVpcIiwgXCJuYW1lXCI6IFwiQW5nb2xhXCJ9LCBcIktaXCI6IHtcInBhdGhcIjogXCJNNTk4LjQyLDE3Mi4wOGwtMS4zNywwLjU0bC0zLjMsMi4wOWwtMC4xMSwwLjEybC0xLjAxLDEuOTdsLTAuNTYsMC4wMWwtMC42LC0xLjI0bC0wLjI2LC0wLjE3bC0yLjk1LC0wLjA5bC0wLjQ2LC0yLjIybC0wLjI5LC0wLjI0bC0wLjkxLC0wLjAybDAuMTcsLTIuNzJsLTAuMTIsLTAuMjZsLTMuMCwtMi4yMmwtMC4yLC0wLjA2bC00LjI5LDAuMjRsLTIuOCwwLjQybC0yLjM2LC0yLjdsLTYuNCwtMy42NWwtMC4yMywtMC4wM2wtNi40NSwxLjgzbC0wLjIyLDAuMjlsMC4xLDEwLjk0bC0wLjg0LDAuMWwtMS42NSwtMi4yMWwtMC4xMSwtMC4wOWwtMS42OSwtMC44NGwtMC4yLC0wLjAybC0yLjg0LDAuNjNsLTAuMTQsMC4wN2wtMC43MSwwLjY0bC0wLjAyLC0wLjExbDAuNTcsLTEuMTdsMC4wLC0wLjI2bC0wLjQ4LC0xLjA1bC0wLjE3LC0wLjE2bC0yLjc4LC0wLjk5bC0xLjA4LC0yLjYybC0wLjEzLC0wLjE1bC0xLjI0LC0wLjdsLTAuMDQsLTAuNDhsMi4wNywwLjI1bDAuMzQsLTAuMjlsMC4wOSwtMi4wM2wxLjg0LC0wLjQ0bDIuMTIsMC40NWwwLjM2LC0wLjI1bDAuNDUsLTMuMDRsLTAuNDUsLTIuMDZsLTAuMzEsLTAuMjNsLTIuNDQsMC4xNWwtMi4wNywtMC43NWwtMC4yMywwLjAxbC0yLjg4LDEuMzhsLTIuMjEsMC42MmwtMC45NiwtMC4zOGwwLjIyLC0xLjM5bC0wLjA2LC0wLjIzbC0xLjYsLTIuMTJsLTAuMjUsLTAuMTJsLTEuNzIsMC4wOGwtMS44NywtMS45MWwxLjMzLC0yLjI0bC0wLjA2LC0wLjM4bC0wLjU1LC0wLjVsMS43MiwtMy4wOGwyLjMsMS43bDAuNDgsLTAuMmwwLjI5LC0yLjI2bDQuOTksLTMuNDhsMy43NiwtMC4wOGw1LjQ2LDIuMjdsMi45NiwxLjMzbDAuMjYsLTAuMDFsMi41OSwtMS4zNmwzLjgyLC0wLjA2bDMuMTMsMS42N2wwLjM4LC0wLjA5bDAuNjMsLTAuODVsMy4zNiwwLjE0bDAuMjksLTAuMTlsMC42MywtMS41N2wtMC4xMywtMC4zN2wtMy42NCwtMi4wNWwyLjAsLTEuMzZsMC4xLC0wLjM4bC0wLjMyLC0wLjYybDIuMDksLTAuNzZsMC4xMywtMC40N2wtMS42NSwtMi4xM2wwLjg5LC0wLjkxbDkuMjcsLTEuMThsMC4xMywtMC4wNWwxLjE3LC0wLjgybDYuMiwtMS4yN2wyLjI2LC0xLjQzbDQuMTksMC43bDAuNzQsMy4zOWwwLjM4LDAuMjJsMi41MiwtMC44MWwyLjksMS4wNmwtMC4xOCwxLjYzbDAuMzIsMC4zM2wyLjUyLC0wLjIzbDUuMCwtMi41OGwwLjAzLDAuMzlsMy4xNiwyLjYybDUuNTcsOC40OGwwLjQ5LDAuMDJsMS4xOCwtMS41M2wzLjIyLDEuNzhsMC4yMSwwLjAzbDMuNSwtMC44M2wxLjIxLDAuNTJsMS4xNiwxLjgybDAuMTUsMC4xMmwxLjY3LDAuNjFsMS4wMSwxLjMybDAuMjgsMC4xMWwzLjA0LC0wLjQxbDEuMSwxLjY0bC0xLjY4LDEuODlsLTEuOTcsMC4yOGwtMC4yNiwwLjI5bC0wLjEyLDMuMDlsLTEuMiwxLjIzbC00LjgxLC0xLjAxbC0wLjM1LDAuMmwtMS43Nyw1LjUxbC0xLjE0LDAuNjJsLTQuOTIsMS4yM2wtMC4yLDAuNDFsMi4xNCw1LjA2bC0xLjQ1LDAuNjdsLTAuMTcsMC4zMWwwLjE1LDEuMjhsLTEuMDUsLTAuM2wtMS4yMSwtMS4wNGwtMC4xNywtMC4wN2wtMy43MywtMC4zMmwtNC4xNSwtMC4wOGwtMC45MiwwLjMxbC0zLjQ2LC0xLjI0bC0wLjIyLDAuMDFsLTEuNDIsMC42M2wtMC4xNywwLjIxbC0wLjMyLDEuNDlsLTMuODIsLTAuOTdsLTAuMTUsMC4wbC0xLjY1LDAuNDNsLTAuMiwwLjE3bC0wLjUxLDEuMjFaXCIsIFwibmFtZVwiOiBcIkthemFraHN0YW5cIn0sIFwiRVRcIjoge1wicGF0aFwiOiBcIk01MTYuMCwyNDcuNjNsMS4yMSwwLjkybDAuMywwLjA0bDEuMywtMC41M2wwLjQ2LDAuNDFsMC4xOSwwLjA4bDEuNjUsMC4wM2wyLjA1LDAuOTZsMC42NywwLjg4bDEuMDcsMC43OWwxLjAsMS40NWwwLjcsMC42OGwtMC43MiwwLjkybC0wLjg1LDEuMTlsLTAuMDQsMC4yNWwwLjE5LDAuNjdsMC4wNCwwLjc0bDAuMjksMC4yOGwxLjQsMC4wNGwwLjU1LC0wLjE1bDAuMjMsMC4xOWwtMC40MSwwLjY3bDAuMDEsMC4zMmwwLjkyLDEuMzlsMC45MywxLjIzbDAuOTksMC45NGwwLjEsMC4wNmw4LjE5LDIuOTlsMS41MSwwLjAxbC02LjUxLDYuOTVsLTMuMTQsMC4xMWwtMC4xOCwwLjA2bC0yLjE1LDEuNzFsLTEuNTEsMC4wNGwtMC4yMiwwLjFsLTAuNiwwLjY5bC0xLjQ2LC0wLjBsLTAuOTMsLTAuNzhsLTAuMzIsLTAuMDRsLTIuMjksMS4wNWwtMC4xMiwwLjFsLTAuNjQsMC45bC0xLjQ0LC0wLjE3bC0wLjUxLC0wLjI2bC0wLjE3LC0wLjAzbC0wLjU2LDAuMDdsLTAuNjgsLTAuMDJsLTMuMSwtMi4wOGwtMC4xNywtMC4wNWwtMS42MiwwLjBsLTAuNjgsLTAuNjVsMC4wLC0xLjI4bC0wLjIxLC0wLjI5bC0xLjE5LC0wLjM4bC0xLjQyLC0yLjYzbC0wLjEzLC0wLjEybC0xLjA1LC0wLjUzbC0wLjQ2LC0xLjBsLTEuMjcsLTEuMjNsLTAuMTcsLTAuMDhsLTEuMDgsLTAuMTNsMC41MywtMC45bDEuMTcsLTAuMDVsMC4yNiwtMC4xN2wwLjM3LC0wLjc3bDAuMDMsLTAuMTRsLTAuMDMsLTIuMjNsMC43LC0yLjQ5bDEuMDgsLTAuNjVsMC4xNCwtMC4xOWwwLjI0LC0xLjBsMS4wMywtMS44NWwxLjQ3LC0xLjIybDAuMDksLTAuMTJsMS4wMiwtMi41MWwwLjM2LC0xLjk2bDIuNjIsMC40OGwwLjMzLC0wLjE4bDAuNjMsLTEuNTVaXCIsIFwibmFtZVwiOiBcIkV0aGlvcGlhXCJ9LCBcIlpXXCI6IHtcInBhdGhcIjogXCJNNDk4Ljk1LDM0MS4ybC0xLjE2LC0wLjIzbC0wLjE2LDAuMDFsLTAuNzQsMC4yOGwtMS4xMSwtMC40MWwtMS4wMiwtMC4wNGwtMS41MiwtMS4xM2wtMC4xMiwtMC4wNWwtMS43OSwtMC4zN2wtMC42NSwtMS40NmwtMC4wMSwtMC44NmwtMC4yMiwtMC4yOWwtMC45OSwtMC4yNmwtMi43NCwtMi43N2wtMC43NywtMS40NmwtMC41MiwtMC41bC0wLjcyLC0xLjU0bDIuMjQsMC4yM2wwLjc4LDAuMjhsMC4xMiwwLjAybDAuODUsLTAuMDZsMC4yMSwtMC4xMWwxLjM4LC0xLjY2bDIuMTEsLTIuMDVsMC44MSwtMC4xOGwwLjIyLC0wLjJsMC4yNywtMC44bDEuMjksLTAuOTNsMS41MywtMC4yOGwwLjExLDAuNjZsMC4zLDAuMjVsMi4wMiwtMC4wNWwxLjA0LDAuNDhsMC41LDAuNTlsMC4xOCwwLjFsMS4xMywwLjE4bDEuMTEsMC43bDAuMDEsMy4wNmwtMC40OSwxLjgybC0wLjExLDEuOTRsMC4wMywwLjE2bDAuMzUsMC42OGwtMC4yNCwxLjNsLTAuMjcsMC4xN2wtMC4xMiwwLjE1bC0wLjY0LDEuODNsLTIuNDksMi44WlwiLCBcIm5hbWVcIjogXCJaaW1iYWJ3ZVwifSwgXCJFU1wiOiB7XCJwYXRoXCI6IFwiTTM5OC42NywxNzIuOGwwLjA5LC0xLjQ1bC0wLjA2LC0wLjJsLTAuODIsLTEuMDVsMy4xNiwtMS45NmwzLjAxLDAuNTRsMy4zMywtMC4wMmwyLjY0LDAuNTJsMi4xNCwtMC4xNWwzLjksMC4xbDAuOTEsMS4wOGwwLjE0LDAuMDlsNC42MSwxLjM4bDAuMjYsLTAuMDRsMC43NywtMC41NWwyLjY2LDEuMjlsMC4xNywwLjAzbDIuNTksLTAuMzVsMC4xLDEuMjhsLTIuMiwxLjg1bC0zLjEzLDAuNjJsLTAuMjMsMC4yM2wtMC4yMSwwLjkybC0xLjU0LDEuNjhsLTAuOTcsMi40bDAuMDIsMC4yNmwwLjg1LDEuNDZsLTEuMjcsMS4xNGwtMC4wOSwwLjE0bC0wLjUsMS43M2wtMS43MywwLjUzbC0wLjE1LDAuMWwtMS42OCwyLjFsLTMuMDMsMC4wNGwtMi4zOCwtMC4wNWwtMC4xNywwLjA1bC0xLjU3LDEuMDFsLTAuOSwxLjAxbC0wLjk2LC0wLjE5bC0wLjgyLC0wLjg2bC0wLjY5LC0xLjZsLTAuMjIsLTAuMThsLTIuMTQsLTAuNDFsLTAuMTMsLTAuNjJsMC44MywtMC45N2wwLjM5LC0wLjg2bC0wLjA2LC0wLjMzbC0wLjczLC0wLjczbDAuNjMsLTEuNzRsLTAuMDIsLTAuMjVsLTAuOCwtMS40MWwwLjY5LC0wLjE1bDAuMjMsLTAuMjdsMC4wOSwtMS4yOWwwLjMzLC0wLjM2bDAuMDgsLTAuMmwwLjAzLC0yLjE2bDEuMDMsLTAuNzJsMC4xLC0wLjM3bC0wLjcsLTEuNWwtMC4yNSwtMC4xN2wtMS40NiwtMC4xMWwtMC4yMiwwLjA3bC0wLjM0LDAuM2wtMS4xNywwLjBsLTAuNTUsLTEuMjlsLTAuMzksLTAuMTZsLTEuMDIsMC40NGwtMC40NSwwLjM2WlwiLCBcIm5hbWVcIjogXCJTcGFpblwifSwgXCJFUlwiOiB7XCJwYXRoXCI6IFwiTTUyNy4xNSwyNTMuMDVsLTAuNzcsLTAuNzRsLTEuMDEsLTEuNDdsLTEuMTQsLTAuODZsLTAuNjIsLTAuODRsLTAuMTEsLTAuMDlsLTIuMTgsLTEuMDJsLTAuMTIsLTAuMDNsLTEuNjEsLTAuMDNsLTAuNTIsLTAuNDZsLTAuMzEsLTAuMDVsLTEuMzEsMC41NGwtMS4zOCwtMS4wNmwtMC40NiwwLjEybC0wLjY5LDEuNjhsLTIuNDksLTAuNDZsLTAuMiwtMC43NmwxLjA2LC0zLjY5bDAuMjQsLTEuNjVsMC42NiwtMC42NmwxLjc2LC0wLjRsMC4xNiwtMC4xbDAuOTcsLTEuMTNsMS4yNCwyLjU1bDAuNjgsMi4zNGwwLjA5LDAuMTRsMS40LDEuMjdsMy4zOSwyLjRsMS4zNywxLjQzbDIuMTQsMi4zNGwwLjk0LDAuNmwtMC4zMiwwLjI2bC0wLjg1LC0wLjE3WlwiLCBcIm5hbWVcIjogXCJFcml0cmVhXCJ9LCBcIk1FXCI6IHtcInBhdGhcIjogXCJNNDY5LjA1LDE3Mi45bC0wLjU3LC0wLjhsLTAuMSwtMC4wOWwtMC44MiwtMC40NmwwLjE2LC0wLjMzbDAuMzUsLTEuNTdsMC43MiwtMC42MmwwLjI3LC0wLjE2bDAuNDgsMC4zOGwwLjM1LDAuNGwwLjEyLDAuMDhsMC43OSwwLjMybDAuNjYsMC40M2wtMC40MywwLjYybC0wLjI4LDAuMTFsLTAuMDcsLTAuMjVsLTAuNTMsLTAuMWwtMS4wOSwxLjQ5bC0wLjA1LDAuMjNsMC4wNiwwLjMyWlwiLCBcIm5hbWVcIjogXCJNb250ZW5lZ3JvXCJ9LCBcIk1EXCI6IHtcInBhdGhcIjogXCJNNDg4LjIsMTUzLjc1bDAuMTQsLTAuMTFsMS40OSwtMC4yOGwxLjc1LDAuOTVsMS4wNiwwLjE0bDAuOTIsMC43bC0wLjE1LDAuOWwwLjE1LDAuMzFsMC44LDAuNDZsMC4zMywxLjJsMC4wOSwwLjE0bDAuNzIsMC42NmwtMC4xMSwwLjI4bDAuMSwwLjMzbC0wLjA2LDAuMDJsLTEuMjUsLTAuMDhsLTAuMTcsLTAuMjlsLTAuMzksLTAuMTJsLTAuNTIsMC4yNWwtMC4xNiwwLjM2bDAuMTMsMC40MmwtMC42LDAuODhsLTAuNDMsMS4wM2wtMC4yMiwwLjEybC0wLjMyLC0xLjBsMC4yNSwtMS4zNGwtMC4wOCwtMS4zOGwtMC4wNiwtMC4xN2wtMS40MywtMS44N2wtMC44MSwtMS4zNmwtMC43OCwtMC45NWwtMC4xMiwtMC4wOWwtMC4yOSwtMC4xMlpcIiwgXCJuYW1lXCI6IFwiTW9sZG92YVwifSwgXCJNR1wiOiB7XCJwYXRoXCI6IFwiTTU0NC43NywzMTYuNDVsMC42NCwxLjA0bDAuNiwxLjYybDAuNCwzLjA0bDAuNjMsMS4yMWwtMC4yMiwxLjA3bC0wLjE1LDAuMjZsLTAuNTksLTEuMDVsLTAuNTIsLTAuMDFsLTAuNDcsMC43NmwtMC4wNCwwLjIzbDAuNDYsMS44NGwtMC4xOSwwLjkybC0wLjYxLDAuNTNsLTAuMSwwLjIxbC0wLjE2LDIuMTVsLTAuOTcsMi45OGwtMS4yNCwzLjU5bC0xLjU1LDQuOTdsLTAuOTYsMy42N2wtMS4wOCwyLjkzbC0xLjk0LDAuNjFsLTIuMDUsMS4wNmwtMy4yLC0xLjUzbC0wLjYyLC0xLjI2bC0wLjE4LC0yLjM5bC0wLjg3LC0yLjA3bC0wLjIyLC0xLjhsMC40LC0xLjY5bDEuMDEsLTAuNGwwLjE5LC0wLjI4bDAuMDEsLTAuNzlsMS4xNSwtMS45MWwwLjA0LC0wLjExbDAuMjMsLTEuNjZsLTAuMDMsLTAuMTdsLTAuNTcsLTEuMjFsLTAuNDYsLTEuNThsLTAuMTksLTIuMjVsMC44MiwtMS4zNmwwLjMzLC0xLjUxbDEuMTEsLTAuMWwxLjQsLTAuNTNsMC45LC0wLjQ1bDEuMDMsLTAuMDNsMC4yMSwtMC4wOWwxLjQxLC0xLjQ1bDIuMTIsLTEuNjVsMC43NSwtMS4yOWwwLjAzLC0wLjI0bC0wLjE3LC0wLjU2bDAuNTMsMC4xNWwwLjMyLC0wLjFsMS4zOCwtMS43N2wwLjA2LC0wLjE4bDAuMDQsLTEuNDRsMC41NCwtMC43NGwwLjYyLDAuNzdaXCIsIFwibmFtZVwiOiBcIk1hZGFnYXNjYXJcIn0sIFwiTUFcIjoge1wicGF0aFwiOiBcIk0zNzguNjYsMjMwLjEzbDAuMDcsLTAuNzVsMC45MywtMC43MmwwLjgyLC0xLjM3bDAuMDQsLTAuMjFsLTAuMTQsLTAuOGwwLjgsLTEuNzRsMS4zMywtMS42MWwwLjc5LC0wLjRsMC4xNCwtMC4xNWwwLjY2LC0xLjU1bDAuMDgsLTEuNDZsMC44MywtMS41MmwxLjYsLTAuOTRsMC4xMSwtMC4xMWwxLjU2LC0yLjcxbDEuMiwtMC45OWwyLjI0LC0wLjI5bDAuMTcsLTAuMDhsMS45NSwtMS44M2wxLjMsLTAuNzdsMi4wOSwtMi4yOGwwLjA3LC0wLjI2bC0wLjYxLC0zLjM0bDAuOTIsLTIuM2wwLjMzLC0xLjQ0bDEuNTIsLTEuNzlsMi40OCwtMS4yN2wxLjg2LC0xLjE2bDAuMSwtMC4xMWwxLjY3LC0yLjkzbDAuNzIsLTEuNTlsMS41NCwwLjAxbDEuNDMsMS4xNGwwLjIxLDAuMDZsMi4zMywtMC4xOWwyLjU1LDAuNjJsMC45NywwLjAzbDAuODMsMS42bDAuMTUsMS43MWwwLjg2LDIuOTZsMC4wOSwwLjE0bDAuNSwwLjQ1bC0wLjMxLDAuNzNsLTMuMTEsMC40NGwtMC4xNiwwLjA3bC0xLjA3LDAuOTdsLTEuMzYsMC4yM2wtMC4yNSwwLjI4bC0wLjEsMS44NWwtMi43NCwxLjAybC0wLjE0LDAuMTFsLTAuOSwxLjNsLTEuOTMsMC42OWwtMi41NiwwLjQ0bC00LjA0LDIuMDFsLTAuMTcsMC4yN2wwLjAyLDIuOTFsLTAuMDgsMC4wbC0wLjMsMC4zMWwwLjA1LDEuMTVsLTEuMjUsMC4wN2wtMC4xNiwwLjA2bC0wLjczLDAuNTVsLTAuOTgsMC4wbC0wLjg1LC0wLjMzbC0wLjE1LC0wLjAybC0yLjExLDAuMjlsLTAuMjQsMC4xOWwtMC43NiwxLjk1bC0wLjYzLDAuMTZsLTAuMjEsMC4xOWwtMS4xNSwzLjI5bC0zLjQyLDIuODFsLTAuMSwwLjE3bC0wLjgxLDMuNTdsLTAuOTgsMS4xMmwtMC4zLDAuODVsLTUuMTMsMC4xOVpcIiwgXCJuYW1lXCI6IFwiTW9yb2Njb1wifSwgXCJVWlwiOiB7XCJwYXRoXCI6IFwiTTU4Ny44MywxODYuNDhsMC4wNiwtMS40NmwtMC4xOSwtMC4yOWwtMy4zMSwtMS4yNGwtMi41NywtMS40bC0xLjYzLC0xLjM4bC0yLjc5LC0xLjk4bC0xLjIsLTIuOThsLTAuMTIsLTAuMTRsLTAuODQsLTAuNTRsLTAuMTgsLTAuMDVsLTIuNjEsMC4xM2wtMC43NiwtMC40OGwtMC4yNSwtMi4yNWwtMC4xNywtMC4yNGwtMy4zNywtMS42bC0wLjMyLDAuMDRsLTIuMDgsMS43M2wtMi4xMSwxLjAybC0wLjE2LDAuMzVsMC4zMSwxLjE0bC0yLjE0LDAuMDNsLTAuMDksLTEwLjY4bDYuMSwtMS43NGw2LjI1LDMuNTdsMi4zNiwyLjcybDAuMjcsMC4xbDIuOTIsLTAuNDRsNC4xNywtMC4yM2wyLjc4LDIuMDZsLTAuMTgsMi44N2wwLjI5LDAuMzJsMC45OCwwLjAybDAuNDYsMi4yMmwwLjI4LDAuMjRsMy4wLDAuMDlsMC42MSwxLjI1bDAuMjgsMC4xN2wwLjkzLC0wLjAybDAuMjYsLTAuMTZsMS4wNiwtMi4wNmwzLjIxLC0yLjAzbDEuMywtMC41bDAuMTksMC4wOGwtMS43NSwxLjYybDAuMDUsMC40OGwxLjg1LDEuMTJsMC4yNywwLjAybDEuNjUsLTAuNjlsMi40LDEuMjdsLTIuNjksMS43OWwtMS43OSwtMC4yN2wtMC44OSwwLjA2bC0wLjIyLC0wLjUybDAuNDgsLTEuMjZsLTAuMzQsLTAuNGwtMy4zNSwwLjY5bC0wLjIyLDAuMThsLTAuNzgsMS44N2wtMS4wNywxLjQ3bC0xLjkzLC0wLjEzbC0wLjI5LDAuMTZsLTAuNjUsMS4yOWwwLjE2LDAuNDJsMS42OSwwLjY0bDAuNDgsMS45MWwtMS4yNSwyLjZsLTEuNjQsLTAuNTNsLTEuMTgsLTAuMDNaXCIsIFwibmFtZVwiOiBcIlV6YmVraXN0YW5cIn0sIFwiTU1cIjoge1wicGF0aFwiOiBcIk02NzAuMSwyMzMuMzlsLTEuNDYsMS4xMWwtMS42OCwwLjExbC0wLjI2LDAuMTlsLTEuMSwyLjdsLTAuOTUsMC40MmwtMC4xNCwwLjQybDEuMjEsMi4yN2wxLjYxLDEuOTJsMC45NCwxLjU1bC0wLjgyLDEuOTlsLTAuNzcsMC40MmwtMC4xMywwLjM5bDAuNjQsMS4zNWwxLjYyLDEuOTdsMC4yNiwxLjMybC0wLjA0LDEuMTVsMC4wMiwwLjEzbDAuOTIsMi4xOGwtMS4zLDIuMjNsLTAuNzksMS42OWwtMC4xLC0wLjc3bDAuNzQsLTEuODdsLTAuMDIsLTAuMjZsLTAuOCwtMS40MmwwLjIsLTIuNjhsLTAuMDYsLTAuMmwtMC45OCwtMS4yN2wtMC44LC0yLjk4bC0wLjQ1LC0zLjIybC0xLjExLC0yLjIybC0wLjQ1LC0wLjFsLTEuNjQsMS4yOGwtMi43NCwxLjc2bC0xLjI2LC0wLjJsLTEuMjcsLTAuNDlsMC43OSwtMi45M2wwLjAsLTAuMTRsLTAuNTIsLTIuNDJsLTEuOTMsLTIuOTdsMC4yNiwtMC44bC0wLjIyLC0wLjM5bC0xLjM3LC0wLjMxbC0xLjY1LC0xLjk4bC0wLjEyLC0xLjVsMC40MSwwLjE5bDAuNDIsLTAuMjZsMC4wNSwtMS43bDEuMDgsLTAuNTRsMC4xNiwtMC4zNGwtMC4yNCwtMS4wbDAuNSwtMC43OWwwLjA1LC0wLjE1bDAuMDgsLTIuMzVsMS41OCwwLjQ5bDAuMzYsLTAuMTVsMS4xMiwtMi4xOWwwLjE1LC0xLjM0bDEuMzUsLTIuMThsMC4wNCwtMC4xN2wtMC4wNywtMS4zNWwyLjk3LC0xLjcxbDEuNjcsMC40NWwwLjM4LC0wLjMzbC0wLjE4LC0xLjQ2bDAuNywtMC40bDAuMTUsLTAuMzJsLTAuMTMsLTAuNzJsMC45NCwtMC4xM2wwLjc0LDEuNDFsMC4xMSwwLjEybDAuOTUsMC41NmwwLjA3LDEuODlsLTAuMDksMi4wOGwtMi4yOCwyLjE1bC0wLjA5LDAuMTlsLTAuMywzLjE1bDAuMzUsMC4zMmwyLjM3LC0wLjM5bDAuNTMsMi4xN2wwLjIsMC4yMWwxLjMsMC40MmwtMC42MywxLjlsMC4xNCwwLjM2bDEuODYsMC45OWwxLjEsMC40OWwwLjI0LDAuMGwxLjQ1LC0wLjZsMC4wNCwwLjUxbC0yLjAxLDEuNmwtMC41NiwwLjk2bC0xLjM0LDAuNTZaXCIsIFwibmFtZVwiOiBcIk15YW5tYXJcIn0sIFwiTUxcIjoge1wicGF0aFwiOiBcIk0zOTAuNzksMjQ4LjJsMC42NywtMC4zN2wwLjE0LC0wLjE4bDAuMzYsLTEuMzFsMC41MSwtMC4wNGwxLjY4LDAuNjlsMC4yMSwwLjBsMS4zNCwtMC40OGwwLjg5LDAuMTZsMC4zLC0wLjEzbDAuMjksLTAuNDRsOS44OSwtMC4wNGwwLjI5LC0wLjIxbDAuNTYsLTEuOGwtMC4xMSwtMC4zM2wtMC4zMywtMC4yNGwtMi4zNywtMjIuMWwzLjQxLC0wLjA0bDguMzcsNS43M2w4LjM4LDUuNjhsMC41NiwxLjE1bDAuMTQsMC4xNGwxLjU2LDAuNzVsMC45OSwwLjM2bDAuMDMsMS40NWwwLjMzLDAuMjlsMi40NSwtMC4yMmwwLjAxLDUuNTJsLTEuMywxLjY0bC0wLjA2LDAuMTVsLTAuMTgsMS4zN2wtMS45OSwwLjM2bC0zLjQsMC4yMmwtMC4xOSwwLjA5bC0wLjg1LDAuODNsLTEuNDgsMC4wOWwtMS40OSwwLjAxbC0wLjU0LC0wLjQzbC0wLjI2LC0wLjA1bC0xLjM4LDAuMzZsLTIuMzksMS4wOGwtMC4xMywwLjEybC0wLjQ0LDAuNzNsLTEuODgsMS4xMWwtMC4xMSwwLjEybC0wLjMsMC41N2wtMC44NiwwLjQybC0xLjEsLTAuMzFsLTAuMjgsMC4wN2wtMC42OSwwLjYybC0wLjA5LDAuMTZsLTAuMzUsMS42NmwtMS45MywyLjA0bC0wLjA4LDAuMjNsMC4wNSwwLjc2bC0wLjYzLDAuOTlsLTAuMDQsMC4xOWwwLjE0LDEuMjNsLTAuODEsMC4yOWwtMC4zMiwwLjE3bC0wLjI3LC0wLjc1bC0wLjM5LC0wLjE4bC0wLjY1LDAuMjZsLTAuMzYsLTAuMDRsLTAuMjksMC4xNGwtMC4zNywwLjZsLTEuNjksLTAuMDJsLTAuNjMsLTAuMzRsLTAuMzIsMC4wMmwtMC4xMiwwLjA5bC0wLjQ3LC0wLjQ1bDAuMSwtMC42bC0wLjA5LC0wLjI3bC0wLjMxLC0wLjNsLTAuMzMsLTAuMDVsLTAuMDUsMC4wMmwwLjAyLC0wLjIxbDAuNDYsLTAuNTlsLTAuMDIsLTAuMzlsLTAuOTksLTEuMDJsLTAuMzQsLTAuNzRsLTAuNTYsLTAuNTZsLTAuMTcsLTAuMDlsLTAuNSwtMC4wN2wtMC4xOSwwLjA0bC0wLjU4LDAuMzVsLTAuNzksMC4zM2wtMC42NSwwLjUxbC0wLjg1LC0wLjE2bC0wLjYzLC0wLjU5bC0wLjE0LC0wLjA3bC0wLjQxLC0wLjA4bC0wLjIsMC4wM2wtMC41OSwwLjMxbC0wLjA3LDAuMGwtMC4xLC0wLjYzbDAuMTEsLTAuODVsLTAuMjEsLTAuOThsLTAuMTEsLTAuMTdsLTAuODYsLTAuNjZsLTAuNDUsLTEuMzRsLTAuMSwtMS4zNlpcIiwgXCJuYW1lXCI6IFwiTWFsaVwifSwgXCJNTlwiOiB7XCJwYXRoXCI6IFwiTTY0MS4wNiwxNTAuNTlsMi40MSwtMC41M2w0Ljc2LC0yLjhsMy42NywtMS40OWwyLjA2LDAuOTZsMC4xMiwwLjAzbDIuNSwwLjA1bDEuNTksMS40NWwwLjE5LDAuMDhsMi40NywwLjEybDMuNTksMC44MWwwLjI3LC0wLjA3bDIuNDMsLTIuMjhsMC4wNiwtMC4zNmwtMC45MywtMS43N2wyLjMzLC0zLjFsMi42NiwxLjNsMi4yNiwwLjM5bDIuNzUsMC44bDAuNDQsMi4zbDAuMTksMC4yMmwzLjU2LDEuMzhsMC4xOCwwLjAxbDIuMzUsLTAuNmwzLjEsLTAuNDJsMi40LDAuNDFsMi4zNywxLjUybDEuNDksMS42M2wwLjIzLDAuMWwyLjI5LC0wLjAzbDMuMTMsMC41MmwwLjE1LC0wLjAxbDIuMjgsLTAuNzlsMy4yNywtMC41M2wwLjExLC0wLjA0bDMuNTYsLTIuMjNsMS4zMSwwLjMxbDEuMjYsMS4wNWwwLjIyLDAuMDdsMi40NSwtMC4yMmwtMC45OCwxLjk2bC0xLjc3LDMuMjFsLTAuMDEsMC4yOGwwLjY0LDEuMzFsMC4zNSwwLjE2bDEuMzUsLTAuMzhsMi40LDAuNDhsMC4yMiwtMC4wNGwxLjc4LC0xLjA5bDEuODIsMC45MmwyLjExLDIuMDdsLTAuMTcsMC42OGwtMS43OSwtMC4zMWwtMy43NCwwLjQ1bC0xLjg1LDAuOTZsLTEuNzgsMi4wMWwtMy43NCwxLjE4bC0yLjQ2LDEuNjFsLTIuNDUsLTAuNmwtMS40MiwtMC4yOGwtMC4zMSwwLjEzbC0xLjMxLDEuOTlsMC4wLDAuMzNsMC43OCwxLjE1bDAuMywwLjc0bC0xLjU4LDAuOTNsLTEuNzUsMS41OWwtMi44MywxLjAzbC0zLjc3LDAuMTJsLTQuMDUsMS4wNWwtMi44MSwxLjU0bC0wLjk1LC0wLjhsLTAuMTksLTAuMDdsLTIuOTYsMC4wbC0zLjY0LC0xLjhsLTIuNTUsLTAuNDhsLTMuMzgsMC40MWwtNS4xMywtMC42N2wtMi42NiwwLjA2bC0xLjM1LC0xLjY1bC0xLjEyLC0yLjc4bC0wLjIxLC0wLjE4bC0xLjUsLTAuMzNsLTIuOTgsLTEuODlsLTAuMTIsLTAuMDRsLTMuMzcsLTAuNDNsLTIuODQsLTAuNTFsLTAuNzUsLTEuMTNsMC45MywtMy41NGwtMC4wNCwtMC4yNGwtMS43MywtMi41NWwtMC4xNSwtMC4xMmwtMy41MiwtMS4xOGwtMS45OSwtMS42MWwtMC41NCwtMS44NVpcIiwgXCJuYW1lXCI6IFwiTW9uZ29saWFcIn0sIFwiTUtcIjoge1wicGF0aFwiOiBcIk00NzIuNzMsMTczLjg3bDAuMDgsMC4wMWwwLjMyLC0wLjI1bDAuMDgsLTAuNDRsMS4yOSwtMC40MWwxLjM3LC0wLjI4bDEuMDMsLTAuMDRsMS4wNiwwLjgybDAuMTQsMS41OWwtMC4yMiwwLjA0bC0wLjE3LDAuMTFsLTAuMzIsMC40bC0xLjIsLTAuMDVsLTAuMTgsMC4wNWwtMC45LDAuNjFsLTEuNDUsMC4yM2wtMC44NSwtMC41OWwtMC4zLC0xLjA5bDAuMjIsLTAuNzFaXCIsIFwibmFtZVwiOiBcIk1hY2Vkb25pYVwifSwgXCJNV1wiOiB7XCJwYXRoXCI6IFwiTTUwNy4xOCwzMTMuODRsLTAuNjcsMS44NWwtMC4wMSwwLjE2bDAuNywzLjMxbDAuMzEsMC4yNGwwLjc1LC0wLjAzbDAuNzgsMC43MWwwLjk5LDEuNzVsMC4yLDMuMDNsLTAuOTEsMC40NWwtMC4xNCwwLjE1bC0wLjU5LDEuMzhsLTEuMjQsLTEuMjFsLTAuMTcsLTEuNjJsMC40OSwtMS4xMmwwLjAyLC0wLjE2bC0wLjE1LC0xLjAzbC0wLjEzLC0wLjIxbC0wLjk5LC0wLjY1bC0wLjI2LC0wLjAzbC0wLjUzLDAuMThsLTEuMzEsLTEuMTJsLTEuMTUsLTAuNTlsMC42NiwtMi4wNmwwLjc1LC0wLjg0bDAuMDcsLTAuMjdsLTAuNDcsLTIuMDRsMC40OCwtMS45NGwwLjQsLTAuNjVsMC4wMywtMC4yNGwtMC42NCwtMi4xNWwtMC4wOCwtMC4xM2wtMC40NCwtMC40MmwxLjM0LDAuMjZsMS4yNSwxLjczbDAuNjcsMy4zWlwiLCBcIm5hbWVcIjogXCJNYWxhd2lcIn0sIFwiTVJcIjoge1wicGF0aFwiOiBcIk0zOTAuNTQsMjQ3LjY2bC0xLjQ4LC0xLjU4bC0xLjUxLC0xLjg4bC0wLjEyLC0wLjA5bC0xLjY0LC0wLjY3bC0xLjE3LC0wLjc0bC0wLjE3LC0wLjA1bC0xLjQsMC4wM2wtMC4xMiwwLjAzbC0xLjE0LDAuNTJsLTEuMTUsLTAuMjFsLTAuMjYsMC4wOGwtMC40NCwwLjQzbC0wLjExLC0wLjcybDAuNjgsLTEuMjlsMC4zMSwtMi40M2wtMC4yOCwtMi42M2wtMC4yOSwtMS4yN2wwLjI0LC0xLjI0bC0wLjAzLC0wLjJsLTAuNjUsLTEuMjRsLTEuMTksLTEuMDVsMC4zMiwtMC41MWw5LjY0LDAuMDJsMC4zLC0wLjM0bC0wLjQ2LC0zLjcxbDAuNTEsLTEuMTJsMi4xNywtMC4yMmwwLjI3LC0wLjNsLTAuMDgsLTYuNWw3LjkxLDAuMTNsMC4zMSwtMC4zbDAuMDEsLTMuNWw4LjE3LDUuNjNsLTIuODksMC4wNGwtMC4yOSwwLjMzbDIuNDIsMjIuNTZsMC4xMiwwLjIxbDAuMjYsMC4xOWwtMC40MywxLjM4bC05LjgzLDAuMDRsLTAuMjUsMC4xM2wtMC4yNywwLjQxbC0wLjc3LC0wLjE0bC0wLjE1LDAuMDFsLTEuMywwLjQ3bC0xLjY0LC0wLjY3bC0wLjE0LC0wLjAybC0wLjc5LDAuMDZsLTAuMjcsMC4yMmwtMC4zOSwxLjM5bC0wLjUzLDAuMjlaXCIsIFwibmFtZVwiOiBcIk1hdXJpdGFuaWFcIn0sIFwiVUdcIjoge1wicGF0aFwiOiBcIk01MDAuNzQsMjg3LjE3bC0yLjg0LC0wLjAybC0wLjkyLDAuMzJsLTEuMzcsMC43MWwtMC4yOSwtMC4xMmwwLjAyLC0xLjZsMC41NCwtMC44OWwwLjA0LC0wLjEzbDAuMTQsLTEuOTZsMC40OSwtMS4wOWwwLjkxLC0xLjI0bDAuOTcsLTAuNjhsMC44LC0wLjg5bC0wLjEzLC0wLjQ5bC0wLjc5LC0wLjI3bDAuMTMsLTIuNTVsMC43OCwtMC41MmwxLjQ1LDAuNTFsMC4xOCwwLjAxbDEuOTcsLTAuNTdsMS43MiwwLjAxbDAuMTgsLTAuMDZsMS4yOSwtMC45N2wwLjk4LDEuNDRsMC4yOSwxLjI0bDEuMDUsMi43NWwtMC44NCwxLjY4bC0xLjk0LDIuNjZsLTAuMDYsMC4xOGwwLjAyLDIuMzZsLTQuOCwwLjE4WlwiLCBcIm5hbWVcIjogXCJVZ2FuZGFcIn0sIFwiTVlcIjoge1wicGF0aFwiOiBcIk03MTcuNiwyNzMuNTJsLTEuNTEsMC43bC0yLjEzLC0wLjQxbC0yLjg4LC0wLjBsLTAuMjksMC4yMWwtMC44NCwyLjc3bC0wLjksMC44MmwtMC4wOCwwLjEybC0xLjIzLDMuMzRsLTEuODEsMC40N2wtMi4yOSwtMC42OGwtMC4xNCwtMC4wMWwtMS4yLDAuMjJsLTAuMTQsMC4wN2wtMS4zNiwxLjE4bC0xLjQ3LC0wLjE3bC0wLjEyLDAuMDFsLTEuNDYsMC40NmwtMS41MSwtMS4yNWwtMC4yNCwtMC45N2wxLjI2LDAuNTlsMC4yLDAuMDJsMS45MywtMC40N2wwLjIyLC0wLjIybDAuNDcsLTEuOThsMC45LC0wLjRsMi45NywtMC41NGwwLjE3LC0wLjA5bDEuOCwtMS45OGwxLjAyLC0xLjMybDAuOSwxLjAzbDAuNDgsLTAuMDRsMC40MywtMC43bDEuMDIsMC4wN2wwLjMyLC0wLjI3bDAuMjUsLTIuNzJsMS44NCwtMS42N2wxLjIzLC0xLjg5bDAuNzMsLTAuMDFsMS4xMiwxLjExbDAuMSwwLjk5bDAuMTgsMC4yNGwxLjY2LDAuNzFsMS44NSwwLjY3bC0wLjA5LDAuNTFsLTEuNDUsMC4xMWwtMC4yNiwwLjRsMC4zNSwwLjk3Wk02NzMuNzgsMjY5LjUzbDAuMTcsMS4xNGwwLjM1LDAuMjVsMS42NSwtMC4zbDAuMTgsLTAuMTFsMC42OCwtMC44NmwwLjMxLDAuMTNsMS40MSwxLjQ1bDAuOTksMS41OWwwLjEzLDEuNTdsLTAuMjYsMS4wOWwwLjAsMC4xNWwwLjI0LDAuODRsMC4xOCwxLjQ2bDAuMTEsMC4ybDAuODIsMC42NGwwLjkyLDIuMDhsLTAuMDMsMC41MmwtMS40LDAuMTNsLTIuMjksLTEuNzlsLTIuODYsLTEuOTJsLTAuMjcsLTEuMTZsLTAuMDcsLTAuMTNsLTEuMzksLTEuNjFsLTAuMzMsLTEuOTlsLTAuMDUsLTAuMTJsLTAuODQsLTEuMjdsMC4yNiwtMS43MmwtMC4wMywtMC4xOGwtMC40NSwtMC44N2wwLjEzLC0wLjEzbDEuNzEsMC45MlpcIiwgXCJuYW1lXCI6IFwiTWFsYXlzaWFcIn0sIFwiTVhcIjoge1wicGF0aFwiOiBcIk0xMzMuNDEsMjEzLjgzbDAuNjEsMC4wOWwwLjI3LC0wLjA5bDAuOTMsLTEuMDFsMC4wOCwtMC4xOGwwLjA5LC0xLjIybC0wLjA5LC0wLjIzbC0xLjkzLC0xLjk0bC0xLjQ2LC0wLjc3bC0yLjk2LC01LjYybC0wLjg2LC0yLjFsMi40NCwtMC4xOGwyLjY4LC0wLjI1bC0wLjAzLDAuMDhsMC4xNywwLjRsMy43OSwxLjM1bDUuODEsMS45N2w2Ljk2LC0wLjAybDAuMywtMC4zbDAuMCwtMC44NGwzLjkxLDAuMGwwLjg3LDAuOTNsMS4yNywwLjg3bDEuNDQsMS4xN2wwLjc5LDEuMzdsMC42MiwxLjQ5bDAuMTIsMC4xNGwxLjM1LDAuODVsMi4wOCwwLjgybDAuMzUsLTAuMWwxLjQ5LC0yLjA0bDEuODEsLTAuMDVsMS42MywxLjAxbDEuMjEsMS44bDAuODYsMS41OGwxLjQ3LDEuNTVsMC41MywxLjgybDAuNzMsMS4zMmwwLjE0LDAuMTNsMS45OCwwLjg0bDEuNzgsMC41OWwwLjYxLC0wLjAzbC0wLjc4LDEuODlsLTAuNDUsMS45NmwtMC4xOSwzLjU4bC0wLjI0LDEuMjdsMC4wMSwwLjE0bDAuNDMsMS40M2wwLjc4LDEuMzFsMC40OSwxLjk4bDAuMDYsMC4xMmwxLjYzLDEuOWwwLjYxLDEuNTFsMC45OCwxLjI4bDAuMTYsMC4xMWwyLjU4LDAuNjdsMC45OCwxLjAybDAuMzEsMC4wOGwyLjE3LC0wLjcxbDEuOTEsLTAuMjZsMS44NywtMC40N2wxLjY3LC0wLjQ5bDEuNTksLTEuMDZsMC4xMSwtMC4xNGwwLjYsLTEuNTJsMC4yMiwtMi4yMWwwLjM1LC0wLjYybDEuNTgsLTAuNjRsMi41OSwtMC41OWwyLjE4LDAuMDlsMS40MywtMC4ybDAuMzksMC4zNmwtMC4wNywxLjAybC0xLjI4LDEuNDhsLTAuNjUsMS42OGwwLjA3LDAuMzJsMC4zMywwLjMybC0wLjc5LDIuNDlsLTAuMjgsLTAuM2wtMC4yNCwtMC4wOWwtMS4wLDAuMDhsLTAuMjQsMC4xNWwtMC43NCwxLjI4bC0wLjE5LC0wLjEzbC0wLjI4LC0wLjAzbC0wLjMsMC4xMmwtMC4xOSwwLjI5bDAuMCwwLjA2bC00LjM0LC0wLjAybC0wLjMsMC4zbC0wLjAsMS4xNmwtMC44MywwLjBsLTAuMjgsMC4xOWwwLjA4LDAuMzNsMC45MywwLjg2bDAuOSwwLjU4bDAuMjQsMC40OGwwLjE2LDAuMTVsMC4yLDAuMDhsLTAuMDMsMC4zOGwtMi45NCwwLjAxbC0wLjI2LDAuMTVsLTEuMjEsMi4wOWwwLjAyLDAuMzNsMC4yNSwwLjMzbC0wLjIxLDAuNDRsLTAuMDQsMC4yMmwtMi40MiwtMi4zNWwtMS4zNiwtMC44N2wtMi4wNCwtMC42N2wtMC4xMywtMC4wMWwtMS40LDAuMTlsLTIuMDcsMC45OGwtMS4xNCwwLjIzbC0xLjcyLC0wLjY2bC0xLjg1LC0wLjQ4bC0yLjMxLC0xLjE2bC0xLjkyLC0wLjM4bC0yLjc5LC0xLjE4bC0yLjA0LC0xLjJsLTAuNiwtMC42NmwtMC4xOSwtMC4xbC0xLjM3LC0wLjE1bC0yLjQ1LC0wLjc4bC0xLjA3LC0xLjE4bC0yLjYzLC0xLjQ0bC0xLjIsLTEuNTZsLTAuNDQsLTAuOTNsMC41LC0wLjE1bDAuMiwtMC4zOWwtMC4yLC0wLjU4bDAuNDYsLTAuNTVsMC4wNywtMC4xOWwwLjAxLC0wLjkxbC0wLjA2LC0wLjE4bC0wLjgxLC0xLjEzbC0wLjI1LC0xLjA4bC0wLjg2LC0xLjM2bC0yLjIxLC0yLjYzbC0yLjUzLC0yLjA5bC0xLjIsLTEuNjNsLTAuMTEsLTAuMDlsLTIuMDgsLTEuMDZsLTAuMzQsLTAuNDhsMC4zNSwtMS41M2wtMC4xNiwtMC4zNGwtMS4yNCwtMC42MWwtMS4zOSwtMS4yM2wtMC42LC0xLjgxbC0wLjI0LC0wLjJsLTEuMjUsLTAuMmwtMS4zOCwtMS4zNWwtMS4xMSwtMS4yNWwtMC4xLC0wLjc2bC0wLjA1LC0wLjEzbC0xLjMzLC0yLjA0bC0wLjg1LC0yLjAybDAuMDQsLTAuOTlsLTAuMTQsLTAuMjdsLTEuODEsLTEuMWwtMC4yLC0wLjA0bC0wLjc0LDAuMTFsLTEuMzQsLTAuNzJsLTAuNDIsMC4xNmwtMC40LDEuMTJsLTAuMCwwLjE5bDAuNDEsMS4zbDAuMjQsMi4wNGwwLjA2LDAuMTVsMC44OCwxLjE2bDEuODQsMS44NmwwLjQsMC42MWwwLjEyLDAuMWwwLjI3LDAuMTRsMC4yOSwwLjgybDAuMzEsMC4ybDAuMiwtMC4wMmwwLjQzLDEuNTFsMC4wOSwwLjE0bDAuNzIsMC42NWwwLjUxLDAuOTFsMS41OCwxLjRsMC44LDIuNDJsMC43NywxLjIzbDAuNjYsMS4xOWwwLjEzLDEuMzRsMC4yOCwwLjI3bDEuMDgsMC4wOGwwLjkyLDEuMWwwLjgzLDEuMDhsLTAuMDMsMC4yNGwtMC44OCwwLjgxbC0wLjEzLC0wLjBsLTAuNTksLTEuNDJsLTAuMDcsLTAuMTFsLTEuNjcsLTEuNTNsLTEuODEsLTEuMjhsLTEuMTUsLTAuNjFsMC4wNywtMS44NWwtMC4zOCwtMS40NWwtMC4xMiwtMC4xN2wtMi45MSwtMi4wM2wtMC4zOSwwLjA0bC0wLjExLDAuMTFsLTAuNDIsLTAuNDZsLTAuMTEsLTAuMDhsLTEuNDksLTAuNjNsLTEuMDksLTEuMTZaXCIsIFwibmFtZVwiOiBcIk1leGljb1wifSwgXCJWVVwiOiB7XCJwYXRoXCI6IFwiTTgzOS45MiwzMjUuNjZsMC43OCwwLjczbC0wLjE4LDAuMDdsLTAuNiwtMC44Wk04MzkuMTMsMzIyLjc0bDAuMjcsMS4zNmwtMC4xMywtMC4wNmwtMC4yMSwtMC4wMmwtMC4yOSwwLjA4bC0wLjIyLC0wLjQzbC0wLjAzLC0xLjMybDAuNjEsMC40WlwiLCBcIm5hbWVcIjogXCJWYW51YXR1XCJ9LCBcIkZSXCI6IHtcInBhdGhcIjogXCJNNDQ0LjU4LDE3Mi42M2wtMC42OCwxLjkybC0wLjcyLC0wLjM4bC0wLjUxLC0xLjc5bDAuNDMsLTAuOTVsMS4xNSwtMC44M2wwLjMzLDIuMDRaTTQyOS43MSwxNDcuMDNsMS43NywxLjU3bDAuMjYsMC4wN2wxLjE2LC0wLjIzbDIuMTIsMS40NGwwLjU2LDAuMjhsMC4xNiwwLjAzbDAuNjEsLTAuMDZsMS4wOSwwLjc4bDAuMTMsMC4wNWwzLjE4LDAuNTNsLTEuMDksMS45NGwtMC4zLDIuMTZsLTAuNDgsMC4zOGwtMS4wLC0wLjI2bC0wLjM3LDAuMzJsMC4wNywwLjY2bC0xLjczLDEuNjhsLTAuMDksMC4yMWwtMC4wNCwxLjQybDAuNDEsMC4yOWwwLjk2LC0wLjRsMC42NywxLjA3bC0wLjA5LDAuNzhsMC4wNCwwLjE5bDAuNjEsMC45N2wtMC43MSwwLjc4bC0wLjA3LDAuMjhsMC42NSwyLjM5bDAuMjEsMC4yMWwxLjA5LDAuMzFsLTAuMiwwLjk1bC0yLjA4LDEuNThsLTQuODEsLTAuOGwtMC4xMywwLjAxbC0zLjY1LDAuOTlsLTAuMjIsMC4yNGwtMC4yNSwxLjZsLTIuNTksMC4zNWwtMi43NCwtMS4zM2wtMC4zMSwwLjAzbC0wLjc5LDAuNTdsLTQuMzgsLTEuMzFsLTAuNzksLTAuOTRsMS4xNiwtMS42NGwwLjA1LC0wLjE1bDAuNDgsLTYuMTdsLTAuMDYsLTAuMjFsLTIuNTgsLTMuM2wtMS44OSwtMS42NWwtMC4xMSwtMC4wNmwtMy42NCwtMS4xN2wtMC4yLC0xLjg4bDIuOTIsLTAuNjNsNC4xNCwwLjgybDAuMzUsLTAuMzZsLTAuNjUsLTMuMGwxLjc3LDEuMDVsMC4yNywwLjAybDUuODMsLTIuNTRsMC4xNywtMC4xOWwwLjcxLC0yLjU0bDEuNzUsLTAuNTNsMC4yNywwLjg4bDAuMjcsMC4yMWwxLjA0LDAuMDVsMS4wOCwxLjIzWk0yODkuMSwyNzguNDVsLTAuODUsMC44NGwtMC44OCwwLjEzbC0wLjI1LC0wLjUxbC0wLjIxLC0wLjE2bC0wLjU2LC0wLjFsLTAuMjUsMC4wN2wtMC42MywwLjU1bC0wLjYyLC0wLjI5bDAuNSwtMC44OGwwLjIxLC0xLjExbDAuNDIsLTEuMDVsLTAuMDMsLTAuMjhsLTAuOTMsLTEuNDJsLTAuMTgsLTEuNTRsMS4xMywtMS44N2wyLjQyLDAuNzhsMi41NSwyLjA0bDAuMzMsMC44MWwtMS40LDIuMTZsLTAuNzcsMS44NFpcIiwgXCJuYW1lXCI6IFwiRnJhbmNlXCJ9LCBcIkZJXCI6IHtcInBhdGhcIjogXCJNNDkyLjI2LDc2LjQybC0wLjM4LDMuMTJsMC4xMiwwLjI4bDMuNiwyLjY5bC0yLjE0LDIuOTZsLTAuMDEsMC4zM2wyLjgzLDQuNjFsLTEuNjEsMy4zNmwwLjAzLDAuMzFsMi4xNSwyLjg3bC0wLjk2LDIuNDRsMC4xLDAuMzVsMy41MSwyLjU1bC0wLjgxLDEuNzJsLTIuMjgsMi4xOWwtNS4yOCw0Ljc5bC00LjUxLDAuMzFsLTQuMzksMS4zN2wtMy44NywwLjc1bC0xLjM0LC0xLjg5bC0wLjExLC0wLjA5bC0yLjIzLC0xLjE0bDAuNTMsLTMuNTRsLTAuMDEsLTAuMTRsLTEuMTcsLTMuMzdsMS4xMiwtMi4xM2wyLjIzLC0yLjQ0bDUuNjksLTQuMzNsMS42NSwtMC44NGwwLjE2LC0wLjMxbC0wLjI2LC0xLjczbC0wLjE1LC0wLjIybC0zLjQsLTEuOTFsLTAuNzcsLTEuNDdsLTAuMDcsLTYuNDVsLTAuMTIsLTAuMjRsLTMuOTEsLTIuOTRsLTMuMCwtMS45MmwwLjk3LC0wLjc2bDIuNiwyLjE3bDAuMjEsMC4wN2wzLjIsLTAuMjFsMi42MywxLjAzbDAuMywtMC4wNWwyLjM5LC0xLjk0bDAuMDksLTAuMTNsMS4xOCwtMy4xMmwzLjYzLC0xLjQybDIuODcsMS41OWwtMC45OCwyLjg3WlwiLCBcIm5hbWVcIjogXCJGaW5sYW5kXCJ9LCBcIkZKXCI6IHtcInBhdGhcIjogXCJNODY5Ljk4LDMyNy4wN2wtMS4zMSwwLjQ0bC0wLjE0LC0wLjQxbDAuOTYsLTAuNDFsMC44NSwtMC4xN2wxLjQzLC0wLjc4bC0wLjE2LDAuNjVsLTEuNjQsMC42N1pNODY3LjU4LDMyOS4xMmwwLjU0LDAuNDdsLTAuMzEsMS4wbC0xLjMyLDAuM2wtMS4xMywtMC4yNmwtMC4xNywtMC43OGwwLjcyLC0wLjY2bDAuOTgsMC4yN2wwLjI1LC0wLjA0bDAuNDMsLTAuMjlaXCIsIFwibmFtZVwiOiBcIkZpamlcIn0sIFwiRktcIjoge1wicGF0aFwiOiBcIk0yNjguMTUsNDI3Ljg5bDIuNiwtMS43M2wxLjk4LDAuNzdsMC4zMSwtMC4wNWwxLjMyLC0xLjE3bDEuNTgsMS4xOGwtMC41NCwwLjg0bC0zLjEsMC45MmwtMS4wLC0xLjA0bC0wLjM5LC0wLjA0bC0xLjksMS4zNWwtMC44NiwtMS4wNFpcIiwgXCJuYW1lXCI6IFwiRmFsa2xhbmQgSXNsYW5kc1wifSwgXCJOSVwiOiB7XCJwYXRoXCI6IFwiTTIwMi4xLDI1Mi42bDAuMjMsLTAuMGwwLjEyLC0wLjExbDAuNjgsLTAuMDlsMC4yMiwtMC4xNWwwLjIzLC0wLjQzbDAuMiwtMC4wMWwwLjI4LC0wLjMxbC0wLjA0LC0wLjk3bDAuMjksLTAuMDNsMC41LDAuMDJsMC4yNSwtMC4xMWwwLjM3LC0wLjQ2bDAuNTEsMC4zNWwwLjQsLTAuMDZsMC4yMywtMC4yOGwwLjQ1LC0wLjI5bDAuODcsLTAuN2wwLjExLC0wLjIxbDAuMDIsLTAuMjZsMC4yMywtMC4xMmwwLjI1LC0wLjQ4bDAuMjksMC4yN2wwLjE0LDAuMDdsMC41LDAuMTJsMC4yMiwtMC4wM2wwLjQ4LC0wLjI4bDAuNjYsLTAuMDJsMC44NywtMC4zM2wwLjM2LC0wLjMybDAuMjEsMC4wMWwtMC4xMSwwLjQ4bDAuMCwwLjE0bDAuMjIsMC44bC0wLjU0LDAuODVsLTAuMjcsMS4wM2wtMC4wOSwxLjE4bDAuMTQsMC43MmwwLjA1LDAuOTVsLTAuMjQsMC4xNWwtMC4xMywwLjE5bC0wLjIzLDEuMDlsMC4wLDAuMTRsMC4xNCwwLjUzbC0wLjQyLDAuNTNsLTAuMDYsMC4yNGwwLjEyLDAuNjlsMC4wOCwwLjE1bDAuMTgsMC4xOWwtMC4yNiwwLjIzbC0wLjQ5LC0wLjExbC0wLjM1LC0wLjQ0bC0wLjE2LC0wLjFsLTAuNzksLTAuMjFsLTAuMjMsMC4wM2wtMC40NSwwLjI2bC0xLjUxLC0wLjYybC0wLjMxLDAuMDVsLTAuMTcsMC4xNWwtMS44MSwtMS42MmwtMC42LC0wLjlsLTEuMDQsLTAuNzlsLTAuNzcsLTAuNzFaXCIsIFwibmFtZVwiOiBcIk5pY2FyYWd1YVwifSwgXCJOTFwiOiB7XCJwYXRoXCI6IFwiTTQzNi4yMiwxMzYuNjVsMS44MiwwLjA4bDAuMzYsMC44OWwtMC42LDIuOTZsLTAuNTMsMS4wNmwtMS4zMiwwLjBsLTAuMywwLjM0bDAuMzUsMi44OWwtMC44MywtMC40N2wtMS41NiwtMS40M2wtMC4yOSwtMC4wN2wtMi4yNiwwLjY3bC0xLjAyLC0wLjE1bDAuNjgsLTAuNDhsMC4xLC0wLjEybDIuMTQsLTQuODRsMy4yNSwtMS4zNVpcIiwgXCJuYW1lXCI6IFwiTmV0aGVybGFuZHNcIn0sIFwiTk9cIjoge1wicGF0aFwiOiBcIk00OTEuNDUsNjcuMzFsNy4wNiwzLjBsLTIuNTIsMC45NGwtMC4xMSwwLjQ5bDIuNDMsMi40OWwtMy44MiwxLjU5bC0xLjQ4LDAuM2wwLjg5LC0yLjYxbC0wLjE0LC0wLjM2bC0zLjIxLC0xLjc4bC0wLjI1LC0wLjAybC0zLjg5LDEuNTJsLTAuMTcsMC4xN2wtMS4yLDMuMTdsLTIuMTksMS43OGwtMi41MywtMC45OWwtMC4xMywtMC4wMmwtMy4xNSwwLjIxbC0yLjY5LC0yLjI1bC0wLjM4LC0wLjAxbC0xLjQzLDEuMTFsLTEuNDcsMC4xN2wtMC4yNiwwLjI2bC0wLjMzLDIuNTdsLTQuNDIsLTAuNjVsLTAuMzMsMC4yMmwtMC42LDIuMTlsLTIuMTcsLTAuMDFsLTAuMjcsMC4xNmwtNC4xNSw3LjY4bC0zLjg4LDUuNzZsLTAuMCwwLjMzbDAuODEsMS4yM2wtMC43LDEuMjdsLTIuMywtMC4wNmwtMC4yOCwwLjE4bC0xLjYzLDMuNzJsLTAuMDIsMC4xM2wwLjE1LDUuMTdsMC4wNywwLjE4bDEuNTEsMS44NGwtMC43OSw0LjI0bC0yLjA0LDIuNWwtMC45MiwxLjc1bC0xLjM5LC0xLjg4bC0wLjQ0LC0wLjA1bC00Ljg5LDQuMjFsLTMuMTYsMC44MWwtMy4yNCwtMS43NGwtMC44NiwtMy44MmwtMC43OCwtOC42bDIuMTgsLTIuMzZsNi41NiwtMy4yOGw1LjAsLTQuMTZsNC42MywtNS43NGw1Ljk5LC04LjA5bDQuMTcsLTMuMjNsNi44NCwtNS40OWw1LjM5LC0xLjkybDQuMDYsMC4yNGwwLjIzLC0wLjA5bDMuNzIsLTMuNjdsNC41MSwwLjE5bDQuNCwtMC44OVpNNDg0LjU4LDE5Ljk1bDQuNDIsMS44MmwtMy4yNSwyLjY4bC03LjE0LDAuNjVsLTcuMTYsLTAuOTFsLTAuMzksLTEuMzdsLTAuMjgsLTAuMjJsLTMuNDgsLTAuMWwtMi4yNSwtMi4xNWw3LjA5LC0xLjQ4bDMuNTUsMS4zNmwwLjI4LC0wLjAzbDIuNDIsLTEuNjZsNi4xOCwxLjQxWk00ODEuOTksMzMuOTJsLTQuNzMsMS44NWwtMy43NiwtMS4wNmwxLjI3LC0xLjAybDAuMDQsLTAuNDNsLTEuMTgsLTEuMzVsNC40NiwtMC45NGwwLjg5LDEuODNsMC4xNywwLjE1bDIuODMsMC45NlpNNDY2LjUsMjMuOTVsNy42NCwzLjg3bC01LjYzLDEuOTRsLTAuMTksMC4xOWwtMS4zNSwzLjg4bC0yLjA4LDAuOTZsLTAuMTYsMC4xOWwtMS4xNCw0LjE4bC0yLjcxLDAuMThsLTQuOTQsLTIuOTVsMS45NSwtMS42M2wtMC4wOCwtMC41MWwtMy43LC0xLjU0bC00Ljc5LC00LjU0bC0xLjc4LC00LjAxbDYuMjksLTEuODhsMS4yNSwxLjgxbDAuMjUsMC4xM2wzLjU3LC0wLjA4bDAuMjYsLTAuMTdsMC44NywtMS43OWwzLjQxLC0wLjE4bDMuMDgsMS45NFpcIiwgXCJuYW1lXCI6IFwiTm9yd2F5XCJ9LCBcIk5BXCI6IHtcInBhdGhcIjogXCJNNDYxLjg4LDM1Ny45OGwtMS42MSwtMS43N2wtMC45NCwtMS45bC0wLjU0LC0yLjU4bC0wLjYyLC0xLjk1bC0wLjgzLC00LjA1bC0wLjA2LC0zLjEzbC0wLjMzLC0xLjVsLTAuMDcsLTAuMTRsLTAuOTUsLTEuMDZsLTEuMjcsLTIuMTJsLTEuMywtMy4xbC0wLjU5LC0xLjcxbC0xLjk4LC0yLjQ2bC0wLjEzLC0xLjY3bDAuOTksLTAuNGwxLjQ0LC0wLjQybDEuNDgsMC4wN2wxLjQyLDEuMTFsMC4zMSwwLjAzbDAuMzIsLTAuMTVsOS45OSwtMC4xMWwxLjY2LDEuMThsMC4xNiwwLjA2bDYuMDYsMC4zN2w0LjY5LC0xLjA2bDIuMDEsLTAuNTdsMS41LDAuMTRsMC42MywwLjM3bC0xLjAsMC40MWwtMC43LDAuMDFsLTAuMTYsMC4wNWwtMS4zOCwwLjg4bC0wLjc5LC0wLjg4bC0wLjI5LC0wLjA5bC0zLjgzLDAuOWwtMS44NCwwLjA4bC0wLjI5LDAuM2wtMC4wNyw4Ljk5bC0yLjE4LDAuMDhsLTAuMjksMC4zbC0wLjAsMTcuNDdsLTIuMDQsMS4yN2wtMS4yMSwwLjE4bC0xLjUxLC0wLjQ5bC0wLjk5LC0wLjE4bC0wLjM2LC0xLjBsLTAuMSwtMC4xNGwtMC45OSwtMC43NGwtMC40LDAuMDRsLTAuOTgsMS4wOVpcIiwgXCJuYW1lXCI6IFwiTmFtaWJpYVwifSwgXCJOQ1wiOiB7XCJwYXRoXCI6IFwiTTgzNS44NywzMzguNjhsMi4wNiwxLjYzbDEuMDEsMC45NGwtMC40OSwwLjMybC0xLjIxLC0wLjYybC0xLjc2LC0xLjE2bC0xLjU4LC0xLjM2bC0xLjYxLC0xLjc5bC0wLjE2LC0wLjQxbDAuNTQsMC4wMmwxLjMyLDAuODNsMS4wOCwwLjg3bDAuNzksMC43M1pcIiwgXCJuYW1lXCI6IFwiTmV3IENhbGVkb25pYVwifSwgXCJORVwiOiB7XCJwYXRoXCI6IFwiTTQyNi42NywyNTQuMTdsMC4wMywtMS4wNGwtMC4yNCwtMC4zbC0yLjY2LC0wLjUzbC0wLjA2LC0xLjBsLTAuMDcsLTAuMTdsLTEuMzcsLTEuNjJsLTAuMywtMS4wNGwwLjE1LC0wLjk0bDEuMzcsLTAuMDlsMC4xOSwtMC4wOWwwLjg1LC0wLjgzbDMuMzQsLTAuMjJsMi4yMiwtMC40MWwwLjI0LC0wLjI2bDAuMiwtMS41bDEuMzIsLTEuNjVsMC4wNywtMC4xOWwtMC4wMSwtNS43NGwzLjQsLTEuMTNsNy4yNCwtNS4xMmw4LjQ2LC00Ljk1bDMuNzYsMS4wOGwxLjM1LDEuMzlsMC4zNiwwLjA1bDEuMzksLTAuNzdsMC41NSwzLjY2bDAuMTIsMC4ybDAuODIsMC42bDAuMDMsMC42OWwwLjEsMC4yMWwwLjg3LDAuNzRsLTAuNDcsMC45OWwtMC45Niw1LjI2bC0wLjEzLDMuMjVsLTMuMDgsMi4zNGwtMC4xLDAuMTVsLTEuMDgsMy4zN2wwLjA4LDAuMzFsMC45NCwwLjg2bC0wLjAxLDEuNTFsMC4yOSwwLjNsMS4yNSwwLjA1bC0wLjE0LDAuNjZsLTAuNTEsMC4xMWwtMC4yNCwwLjI2bC0wLjA2LDAuNTdsLTAuMDQsMC4wbC0xLjU5LC0yLjYybC0wLjIxLC0wLjE0bC0wLjU5LC0wLjFsLTAuMjMsMC4wNWwtMS44MywxLjMzbC0xLjc5LC0wLjY4bC0xLjQyLC0wLjE3bC0wLjE3LDAuMDNsLTAuNjUsMC4zMmwtMS4zOSwtMC4wN2wtMC4xOSwwLjA2bC0xLjQsMS4wM2wtMS4xMiwwLjA1bC0yLjk3LC0xLjI5bC0wLjI2LDAuMDFsLTEuMTIsMC41OWwtMS4wOCwtMC4wNGwtMC44NSwtMC44OGwtMC4xMSwtMC4wN2wtMi41MSwtMC45NWwtMC4xNCwtMC4wMmwtMi42OSwwLjNsLTAuMTYsMC4wN2wtMC42NSwwLjU1bC0wLjEsMC4xNmwtMC4zNCwxLjQxbC0wLjY5LDAuOThsLTAuMDUsMC4xNWwtMC4xMywxLjcybC0xLjQ3LC0xLjEzbC0wLjE4LC0wLjA2bC0wLjksMC4wMWwtMC4yLDAuMDhsLTAuMzIsMC4yOFpcIiwgXCJuYW1lXCI6IFwiTmlnZXJcIn0sIFwiTkdcIjoge1wicGF0aFwiOiBcIk00NDIuMCwyNzIuN2wtMi40LDAuODNsLTAuODgsLTAuMTJsLTAuMTksMC4wNGwtMC44OSwwLjUybC0xLjc4LC0wLjA1bC0xLjIzLC0xLjQ0bC0wLjg4LC0xLjg3bC0xLjc3LC0xLjY2bC0wLjIxLC0wLjA4bC0zLjc4LDAuMDNsMC4xMywtMy43NWwtMC4wNiwtMS41OGwwLjQ0LC0xLjQ3bDAuNzQsLTAuNzVsMS4yMSwtMS41NmwwLjA0LC0wLjI5bC0wLjIyLC0wLjU2bDAuNDQsLTAuOWwwLjAxLC0wLjI0bC0wLjU0LC0xLjQ0bDAuMjYsLTIuOTdsMC43MiwtMS4wNmwwLjMzLC0xLjM3bDAuNTEsLTAuNDNsMi41MywtMC4yOGwyLjM4LDAuOWwwLjg5LDAuOTFsMC4yLDAuMDlsMS4yOCwwLjA0bDAuMTUsLTAuMDNsMS4wNiwtMC41NmwyLjksMS4yNmwwLjEzLDAuMDJsMS4yOCwtMC4wNmwwLjE2LC0wLjA2bDEuMzksLTEuMDJsMS4zNiwwLjA3bDAuMTUsLTAuMDNsMC42NCwtMC4zMmwxLjIyLDAuMTNsMS45LDAuNzNsMC4yOCwtMC4wNGwxLjg2LC0xLjM1bDAuMzMsMC4wNmwxLjYyLDIuNjdsMC4yOSwwLjE0bDAuMzIsLTAuMDRsMC43MywwLjc0bC0wLjE5LDAuMzdsLTAuMTIsMC43NGwtMi4wMywxLjg5bC0wLjA3LDAuMTFsLTAuNjYsMS42MmwtMC4zNSwxLjI4bC0wLjQ4LDAuNTFsLTAuMDcsMC4xMmwtMC40OCwxLjY3bC0xLjI2LDAuOThsLTAuMSwwLjE1bC0wLjM4LDEuMjRsLTAuNTgsMS4wN2wtMC4yLDAuOTFsLTEuNDMsMC43bC0xLjI2LC0wLjkzbC0wLjE5LC0wLjA2bC0wLjk1LDAuMDRsLTAuMiwwLjA5bC0xLjQxLDEuMzlsLTAuNjEsMC4wMmwtMC4yNiwwLjE3bC0xLjE5LDIuNDJsLTAuNjEsMS42N1pcIiwgXCJuYW1lXCI6IFwiTmlnZXJpYVwifSwgXCJOWlwiOiB7XCJwYXRoXCI6IFwiTTg1Ny45LDM3OS42MmwxLjg1LDMuMWwwLjMzLDAuMTRsMC4yMiwtMC4yOGwwLjA0LC0xLjQxbDAuNTcsMC40bDAuMzUsMi4wNmwwLjE3LDAuMjJsMi4wMiwwLjk0bDEuNzgsMC4yNmwwLjIyLC0wLjA2bDEuMzEsLTEuMDFsMC44NCwwLjIybC0wLjUzLDIuMjdsLTAuNjcsMS41bC0xLjcxLC0wLjA1bC0wLjI1LDAuMTJsLTAuNjcsMC44OWwtMC4wNSwwLjIzbDAuMjEsMS4xNWwtMC4zMSwwLjQ2bC0yLjE1LDMuNTdsLTEuNiwwLjk5bC0wLjI4LC0wLjUxbC0wLjE1LC0wLjEzbC0wLjcyLC0wLjNsMS4yNywtMi4xNWwwLjAxLC0wLjI5bC0wLjgyLC0xLjYzbC0wLjE1LC0wLjE0bC0yLjUsLTEuMDlsMC4wNSwtMC42OWwxLjY3LC0wLjk0bDAuMTUsLTAuMjFsMC40MiwtMi4yNGwtMC4xMSwtMS45NWwtMC4wMywtMC4xMmwtMC45NywtMS44NWwwLjA1LC0wLjQxbC0wLjA5LC0wLjI1bC0xLjE4LC0xLjE3bC0xLjk0LC0yLjQ5bC0wLjg2LC0xLjY0bDAuMzgsLTAuMDlsMS4yNCwxLjQzbDAuMTIsMC4wOGwxLjgxLDAuNjhsMC42NywyLjM5Wk04NTMuOTMsMzkzLjU1bDAuNTcsMS4yNGwwLjQ0LDAuMTJsMS41MSwtMS4wM2wwLjUyLDAuOTFsMC4wLDEuMDlsLTAuODgsMS4zMWwtMS42MiwyLjJsLTEuMjYsMS4ybC0wLjA1LDAuMzhsMC42NCwxLjAybC0xLjQsMC4wM2wtMC4xNCwwLjA0bC0yLjE0LDEuMTZsLTAuMTQsMC4xN2wtMC42NywyLjBsLTEuMzgsMy4wNmwtMy4wNywyLjE5bC0yLjEyLC0wLjA2bC0xLjU1LC0wLjk5bC0wLjE0LC0wLjA1bC0yLjUzLC0wLjJsLTAuMzEsLTAuODRsMS4yNSwtMi4xNWwzLjA3LC0yLjk3bDEuNjIsLTAuNTlsMS44MSwtMS4xN2wyLjE4LC0xLjYzbDEuNTUsLTEuNjVsMS4wOCwtMi4xOGwwLjksLTAuNzJsMC4xMSwtMC4xN2wwLjM1LC0xLjU2bDEuMzcsLTEuMDdsMC40LDAuOTFaXCIsIFwibmFtZVwiOiBcIk5ldyBaZWFsYW5kXCJ9LCBcIk5QXCI6IHtcInBhdGhcIjogXCJNNjQxLjI2LDIxMy41M2wtMC4xNCwwLjk1bDAuMzIsMS42NGwtMC4yMSwwLjc4bC0xLjgzLDAuMDRsLTIuOTgsLTAuNjJsLTEuODYsLTAuMjVsLTEuMzcsLTEuM2wtMC4xOCwtMC4wOGwtMy4zOCwtMC4zNGwtMy4yMSwtMS40OWwtMi4zOCwtMS4zNGwtMi4xNiwtMC45MmwwLjg0LC0yLjJsMS41MSwtMS4xOGwwLjg5LC0wLjU3bDEuODMsMC43N2wyLjUsMS43NmwxLjM5LDAuNDFsMC43OCwxLjIxbDAuMTcsMC4xM2wxLjkxLDAuNTNsMi4wLDEuMTdsMi45MiwwLjY2bDIuNjMsMC4yNFpcIiwgXCJuYW1lXCI6IFwiTmVwYWxcIn0sIFwiQ0lcIjoge1wicGF0aFwiOiBcIk00MTMuNTMsMjcyLjA4bC0wLjgzLDAuMDJsLTEuNzksLTAuNDlsLTEuNjQsMC4wM2wtMy4wNCwwLjQ2bC0xLjczLDAuNzJsLTIuNCwwLjg5bC0wLjEyLC0wLjAybDAuMTYsLTEuN2wwLjE5LC0wLjI1bDAuMDYsLTAuMmwtMC4wOCwtMC45OWwtMC4wOSwtMC4xOWwtMS4wNiwtMS4wNWwtMC4xNSwtMC4wOGwtMC43MSwtMC4xNWwtMC41MSwtMC40OGwwLjQ1LC0wLjkybDAuMDIsLTAuMTlsLTAuMjQsLTEuMTZsMC4wNywtMC40M2wwLjE0LC0wLjBsMC4zLC0wLjI2bDAuMTUsLTEuMWwtMC4wMiwtMC4xNWwtMC4xMywtMC4zNGwwLjA5LC0wLjEzbDAuODMsLTAuMjdsMC4xOSwtMC4zN2wtMC42MiwtMi4wMmwtMC41NSwtMS4wbDAuMTQsLTAuNTlsMC4zNSwtMC4xNGwwLjI0LC0wLjE2bDAuNTMsMC4yOWwwLjE0LDAuMDRsMS45MywwLjAybDAuMjYsLTAuMTRsMC4zNiwtMC41OGwwLjM5LDAuMDFsMC40MywtMC4xN2wwLjI4LDAuNzlsMC40MywwLjE2bDAuNTYsLTAuMzFsMC44OSwtMC4zMmwwLjkyLDAuNDVsMC4zOSwwLjc1bDAuMTQsMC4xM2wxLjEzLDAuNTNsMC4zLC0wLjAzbDAuODEsLTAuNTlsMS4wMiwtMC4wOGwxLjQ5LDAuNTdsMC42MiwzLjMzbC0xLjAzLDIuMDlsLTAuNjUsMi44NGwwLjAyLDAuMmwxLjA1LDIuMDhsLTAuMDcsMC42NFpcIiwgXCJuYW1lXCI6IFwiSXZvcnkgQ29hc3RcIn0sIFwiQ0hcIjoge1wicGF0aFwiOiBcIk00NDQuNzEsMTU2LjI3bDAuMDUsMC4zbC0wLjM0LDAuNjlsMC4xMywwLjRsMS4xMywwLjU4bDEuMDcsMC4xbC0wLjEyLDAuODFsLTAuODcsMC40MmwtMS43NSwtMC4zN2wtMC4zNCwwLjE4bC0wLjQ3LDEuMWwtMC44NiwwLjA3bC0wLjMzLC0wLjM4bC0wLjQxLC0wLjA0bC0xLjM0LDEuMDFsLTEuMDIsMC4xM2wtMC45MywtMC41OGwtMC44MiwtMS4zMmwtMC4zNywtMC4xMmwtMC43NywwLjMybDAuMDIsLTAuODRsMS43NCwtMS42OWwwLjA5LC0wLjI1bC0wLjA0LC0wLjM4bDAuNzMsMC4xOWwwLjI2LC0wLjA2bDAuNiwtMC40OGwyLjAyLDAuMDJsMC4yNCwtMC4xMmwwLjM4LC0wLjUxbDIuMzEsMC44NFpcIiwgXCJuYW1lXCI6IFwiU3dpdHplcmxhbmRcIn0sIFwiQ09cIjoge1wicGF0aFwiOiBcIk0yMzIuMjQsMjg0Ljk1bC0wLjk0LC0wLjUybC0xLjIyLC0wLjgybC0wLjMxLC0wLjAxbC0wLjYyLDAuMzVsLTEuODgsLTAuMzFsLTAuNTQsLTAuOTVsLTAuMjksLTAuMTVsLTAuMzcsMC4wM2wtMi4zNCwtMS4zM2wtMC4xNSwtMC4zNWwwLjU3LC0wLjExbDAuMjQsLTAuMzJsLTAuMSwtMS4xNWwwLjQ2LC0wLjcxbDEuMTEsLTAuMTVsMC4yMSwtMC4xM2wxLjA1LC0xLjU3bDAuOTUsLTEuMzFsLTAuMDgsLTAuNDNsLTAuNzMsLTAuNDdsMC40LC0xLjI0bDAuMDEsLTAuMTZsLTAuNTMsLTIuMTVsMC40NCwtMC41NGwwLjA2LC0wLjI0bC0wLjQsLTIuMTNsLTAuMDYsLTAuMTNsLTAuOTMsLTEuMjJsMC4yMSwtMC44bDAuNTIsMC4xMmwwLjMyLC0wLjEzbDAuNDcsLTAuNzVsMC4wMywtMC4yN2wtMC41MiwtMS4zMmwwLjA5LC0wLjExbDEuMTQsMC4wN2wwLjIyLC0wLjA4bDEuODIsLTEuNzFsMC45NiwtMC4yNWwwLjIyLC0wLjI4bDAuMDIsLTAuODFsMC40MywtMi4wMWwxLjI4LC0xLjA0bDEuNDgsLTAuMDVsMC4yNywtMC4xOWwwLjEyLC0wLjMxbDEuNzMsMC4xOWwwLjIsLTAuMDVsMS45NiwtMS4yOGwwLjk3LC0wLjU2bDEuMTYsLTEuMTZsMC42NCwwLjExbDAuNDMsMC40NGwtMC4zMSwwLjU1bC0xLjQ5LDAuMzlsLTAuMTksMC4xNmwtMC42LDEuMmwtMC45NywwLjc0bC0wLjczLDAuOTRsLTAuMDYsMC4xM2wtMC4zLDEuNzZsLTAuNjgsMS40NGwwLjIzLDAuNDNsMS4xLDAuMTRsMC4yNywwLjk3bDAuMDgsMC4xM2wwLjQ5LDAuNDlsMC4xNywwLjg1bC0wLjI3LDAuODZsLTAuMDEsMC4xNGwwLjA5LDAuNTNsMC4yLDAuMjNsMC41MiwwLjE4bDAuNTQsMC43OWwwLjI3LDAuMTNsMy4xOCwtMC4yNGwxLjMxLDAuMjlsMS43LDIuMDhsMC4zMSwwLjFsMC45NiwtMC4yNmwxLjc1LDAuMTNsMS40MSwtMC4yN2wwLjU2LDAuMjdsLTAuMzYsMS4wN2wtMC41NCwwLjgxbC0wLjA1LDAuMTNsLTAuMiwxLjhsMC41MSwxLjc5bDAuMDcsMC4xMmwwLjY1LDAuNjhsMC4wNSwwLjMybC0xLjE2LDEuMTRsMC4wNSwwLjQ3bDAuODYsMC41MmwwLjYsMC43OWwwLjMxLDEuMDFsLTAuNywtMC44MWwtMC40NCwtMC4wMWwtMC43NCwwLjc3bC00Ljc1LC0wLjA1bC0wLjMsMC4zMWwwLjAzLDEuNTdsMC4yNSwwLjI5bDEuMiwwLjIxbC0wLjAyLDAuMjRsLTAuMSwtMC4wNWwtMC4yMiwtMC4wMmwtMS40MSwwLjQxbC0wLjIyLDAuMjlsLTAuMDEsMS44MmwwLjExLDAuMjNsMS4wNCwwLjg1bDAuMzUsMS4zbC0wLjA2LDEuMDJsLTEuMDIsNi4yNmwtMC44NCwtMC44OWwtMC4xOSwtMC4wOWwtMC4yNSwtMC4wMmwxLjM1LC0yLjEzbC0wLjEsLTAuNDJsLTEuOTIsLTEuMTdsLTAuMiwtMC4wNGwtMS40MSwwLjJsLTAuODIsLTAuMzlsLTAuMjYsMC4wbC0xLjI5LDAuNjJsLTEuNjMsLTAuMjdsLTEuNCwtMi41bC0wLjEyLC0wLjEybC0xLjEsLTAuNjFsLTAuODMsLTEuMmwtMS42NywtMS4xOWwtMC4yNywtMC4wNGwtMC41NCwwLjE5WlwiLCBcIm5hbWVcIjogXCJDb2xvbWJpYVwifSwgXCJDTlwiOiB7XCJwYXRoXCI6IFwiTTc0MC4zMiwxNDguOTRsMC4yMiwwLjIxbDQuMywxLjAzbDIuODQsMi4ybDAuOTksMi45MmwwLjI4LDAuMmwzLjgsMC4wbDAuMTUsLTAuMDRsMi4xMywtMS4yNGwzLjUsLTAuOGwtMS4wNSwyLjI5bC0wLjk1LDEuMTNsLTAuMDYsMC4xMmwtMC44NSwzLjQxbC0xLjU2LDIuODFsLTIuODMsLTAuNTFsLTAuMTksMC4wM2wtMi4xNSwxLjA5bC0wLjE1LDAuMzRsMC42NSwyLjU5bC0wLjMzLDMuM2wtMS4wMywwLjA3bC0wLjI4LDAuM2wwLjAxLDAuNzVsLTEuMDksLTEuMmwtMC40OCwwLjA1bC0wLjk0LDEuNmwtMy43NiwxLjI2bC0wLjIsMC4zNmwwLjI5LDEuMTlsLTEuNjcsLTAuMDhsLTEuMTEsLTAuODhsLTAuNDIsMC4wNWwtMS42OSwyLjA4bC0yLjcxLDEuNTdsLTIuMDQsMS44OGwtMy40MiwwLjg0bC0wLjExLDAuMDVsLTEuOCwxLjM0bC0xLjU0LDAuNDZsMC41MiwtMC41M2wwLjA2LC0wLjMzbC0wLjQ0LC0wLjk2bDEuODQsLTEuODRsMC4wMiwtMC40MWwtMS4zMiwtMS41NmwtMC4zNiwtMC4wOGwtMi4yMywxLjA4bC0yLjgzLDIuMDZsLTEuNTIsMS44NWwtMi4zMiwwLjEzbC0wLjIsMC4wOWwtMS4yOCwxLjM3bC0wLjAzLDAuMzdsMS4zMiwxLjk3bDAuMTgsMC4xM2wxLjgzLDAuNDNsMC4wNywxLjA4bDAuMTgsMC4yNmwxLjk4LDAuODRsMC4zLC0wLjAzbDIuNjYsLTEuOTZsMi4wNiwxLjA0bDAuMTIsMC4wM2wxLjQsMC4wN2wwLjI3LDEuMGwtMy4yNCwwLjczbC0wLjE3LDAuMTFsLTEuMTMsMS41bC0yLjM4LDEuNGwtMC4xLDAuMWwtMS4yOSwxLjk5bDAuMSwwLjQybDIuNiwxLjVsMC45NywyLjcybDEuNTIsMi41NmwxLjY2LDIuMDhsLTAuMDMsMS43NmwtMS40LDAuNjdsLTAuMTUsMC4zOGwwLjYsMS40N2wwLjEzLDAuMTVsMS4yOSwwLjc1bC0wLjM1LDIuMGwtMC41OCwxLjk2bC0xLjIyLDAuMjFsLTAuMiwwLjE0bC0xLjgzLDIuOTNsLTIuMDIsMy41MWwtMi4yOSwzLjEzbC0zLjQsMi40MmwtMy40MiwyLjE4bC0yLjc1LDAuM2wtMC4xNSwwLjA2bC0xLjMyLDEuMDFsLTAuNjgsLTAuNjdsLTAuNDEsLTAuMDFsLTEuMzcsMS4yN2wtMy40MiwxLjI4bC0yLjYyLDAuNGwtMC4yNCwwLjIxbC0wLjgsMi41N2wtMC45NSwwLjExbC0wLjUzLC0xLjU0bDAuNTIsLTAuODlsLTAuMTksLTAuNDRsLTMuMzYsLTAuODRsLTAuMTcsMC4wMWwtMS4wOSwwLjRsLTIuMzYsLTAuNjRsLTEuMCwtMC45bDAuMzUsLTEuMzRsLTAuMjMsLTAuMzdsLTIuMjIsLTAuNDdsLTEuMTUsLTAuOTRsLTAuMzYsLTAuMDJsLTIuMDgsMS4zN2wtMi4zNSwwLjI5bC0xLjk4LC0wLjAxbC0wLjEzLDAuMDNsLTEuMzIsMC42M2wtMS4yOCwwLjM4bC0wLjIxLDAuMzNsMC4zMywyLjY1bC0wLjc4LC0wLjA0bC0wLjE0LC0wLjM5bC0wLjA3LC0xLjA0bC0wLjQxLC0wLjI2bC0xLjcyLDAuNzFsLTAuOTYsLTAuNDNsLTEuNjMsLTAuODZsMC42NSwtMS45NWwtMC4xOSwtMC4zOGwtMS40MywtMC40NmwtMC41NiwtMi4yN2wtMC4zNCwtMC4yMmwtMi4yNiwwLjM4bDAuMjUsLTIuNjVsMi4yOSwtMi4xNWwwLjA5LC0wLjJsMC4xLC0yLjIxbC0wLjA3LC0yLjA5bC0wLjE1LC0wLjI1bC0xLjAyLC0wLjZsLTAuOCwtMS41MmwtMC4zMSwtMC4xNmwtMS40MiwwLjJsLTIuMTYsLTAuMzJsMC41NSwtMC43NGwwLjAxLC0wLjM1bC0xLjE3LC0xLjdsLTAuNDEsLTAuMDhsLTEuNjcsMS4wN2wtMS45NywtMC42M2wtMC4yNSwwLjAzbC0yLjg5LDEuNzNsLTIuMjYsMS45OWwtMS44MiwwLjNsLTEuMCwtMC42NmwtMC4xNSwtMC4wNWwtMS4yOCwtMC4wNmwtMS43NSwtMC42MWwtMC4yNCwwLjAybC0xLjM1LDAuNjlsLTAuMSwwLjA4bC0xLjIsMS40NWwtMC4xNCwtMS40MWwtMC40LC0wLjI1bC0xLjQ2LDAuNTVsLTIuODMsLTAuMjZsLTIuNzcsLTAuNjFsLTEuOTksLTEuMTdsLTEuOTEsLTAuNTRsLTAuNzgsLTEuMjFsLTAuMTcsLTAuMTNsLTEuMzYsLTAuMzhsLTIuNTQsLTEuNzlsLTIuMDEsLTAuODRsLTAuMjgsMC4wMmwtMC44OSwwLjU2bC0zLjMxLC0xLjgzbC0yLjM1LC0xLjY3bC0wLjU3LC0yLjQ5bDEuMzQsMC4yOGwwLjM2LC0wLjI4bDAuMDgsLTEuNDJsLTAuMDUsLTAuMTlsLTAuOTMsLTEuMzRsMC4yNCwtMi4xOGwtMC4wNywtMC4yMmwtMi42OSwtMy4zMmwtMC4xNSwtMC4xbC0zLjk3LC0xLjExbC0wLjY5LC0yLjA1bC0wLjExLC0wLjE1bC0xLjc5LC0xLjNsLTAuMzksLTAuNzNsLTAuMzYsLTEuNTdsMC4wOCwtMS4wOWwtMC4xOCwtMC4zbC0xLjUyLC0wLjY2bC0wLjIyLC0wLjAxbC0wLjUxLDAuMThsLTAuNTIsLTIuMjFsMC41OSwtMC41NWwwLjA2LC0wLjM1bC0wLjIyLC0wLjQ0bDIuMTIsLTEuMjRsMS42MywtMC41NWwyLjU4LDAuMzlsMC4zMSwtMC4xNmwwLjg3LC0xLjc1bDMuMDUsLTAuMzRsMC4yMSwtMC4xMmwwLjg0LC0xLjEybDMuODcsLTEuNTlsMC4xNSwtMC4xNGwwLjM1LC0wLjY4bDAuMDMsLTAuMTdsLTAuMTcsLTEuNTFsMS41MiwtMC43bDAuMTUsLTAuMzlsLTIuMTIsLTUuMGw0LjYyLC0xLjE1bDEuMzUsLTAuNzJsMC4xNCwtMC4xN2wxLjcyLC01LjM3bDQuNywwLjk5bDAuMjgsLTAuMDhsMS4zOSwtMS40M2wwLjA4LC0wLjJsMC4xMSwtMi45NWwxLjgzLC0wLjI2bDAuMTgsLTAuMWwxLjg1LC0yLjA4bDAuNjEsLTAuMTdsMC41NywxLjk3bDAuMSwwLjE1bDIuMiwxLjc1bDMuNDgsMS4xN2wxLjU5LDIuMzZsLTAuOTMsMy41M2wwLjA0LDAuMjRsMC45LDEuMzVsMC4yLDAuMTNsMi45OCwwLjUzbDMuMzIsMC40M2wyLjk3LDEuODlsMS40OSwwLjM1bDEuMDgsMi42N2wxLjUyLDEuODhsMC4yNCwwLjExbDIuNzQsLTAuMDdsNS4xNSwwLjY3bDMuMzYsLTAuNDFsMi4zOSwwLjQzbDMuNjcsMS44MWwwLjEzLDAuMDNsMi45MiwtMC4wbDEuMDIsMC44NmwwLjM0LDAuMDNsMi44OCwtMS41OWwzLjk4LC0xLjAzbDMuODEsLTAuMTNsMy4wMiwtMS4xMmwxLjc3LC0xLjYxbDEuNzMsLTEuMDFsMC4xMywtMC4zN2wtMC40MSwtMS4wMWwtMC43MiwtMS4wN2wxLjA5LC0xLjY2bDEuMjEsMC4yNGwyLjU3LDAuNjNsMC4yNCwtMC4wNGwyLjQ2LC0xLjYybDMuNzgsLTEuMTlsMC4xMywtMC4wOWwxLjgsLTIuMDNsMS42NiwtMC44NGwzLjU0LC0wLjQxbDEuOTMsMC4zNWwwLjM0LC0wLjIybDAuMjcsLTEuMTJsLTAuMDgsLTAuMjlsLTIuMjcsLTIuMjJsLTIuMDgsLTEuMDdsLTAuMjksMC4wMWwtMS44MiwxLjEybC0yLjM2LC0wLjQ3bC0wLjE0LDAuMDFsLTEuMTgsMC4zNGwtMC40NiwtMC45NGwxLjY5LC0zLjA4bDEuMSwtMi4yMWwyLjc1LDEuMTJsMC4yNiwtMC4wMmwzLjUzLC0yLjA2bDAuMTUsLTAuMjZsLTAuMDIsLTEuMzVsMi4xOCwtMy4zOWwxLjM1LC0xLjA0bDAuMTIsLTAuMjRsLTAuMDMsLTEuODVsLTAuMTUsLTAuMjVsLTEuMCwtMC41OGwxLjY4LC0xLjM3bDMuMDEsLTAuNTlsMy4yNSwtMC4wOWwzLjY3LDAuOTlsMi4wOCwxLjE4bDEuNTEsMy4zbDAuOTUsMS40NWwwLjg1LDEuOTlsMC45MiwzLjE5Wk02OTcuMCwyMzcuMzdsLTEuOTUsMS4xMmwtMS43NCwtMC42OGwtMC4wNiwtMS45bDEuMDgsLTEuMDNsMi42MiwtMC43bDEuMjMsMC4wNWwwLjM3LDAuNjVsLTEuMDEsMS4wOGwtMC41NCwxLjRaXCIsIFwibmFtZVwiOiBcIkNoaW5hXCJ9LCBcIkNNXCI6IHtcInBhdGhcIjogXCJNNDUzLjc2LDI3OC45MmwtMC4yNiwtMC4xMWwtMC4xOCwtMC4wMmwtMS40MiwwLjMxbC0xLjU2LC0wLjMzbC0xLjE3LDAuMTZsLTMuNywtMC4wNWwwLjMsLTEuNjNsLTAuMDQsLTAuMjFsLTAuOTgsLTEuNjZsLTAuMTUsLTAuMTNsLTEuMDMsLTAuMzhsLTAuNDYsLTEuMDFsLTAuMTMsLTAuMTRsLTAuNDgsLTAuMjdsMC4wMiwtMC40NmwwLjYyLC0xLjcybDEuMSwtMi4yNWwwLjU0LC0wLjAybDAuMiwtMC4wOWwxLjQxLC0xLjM5bDAuNzMsLTAuMDNsMS4zMiwwLjk3bDAuMzEsMC4wM2wxLjcyLC0wLjg1bDAuMTYsLTAuMmwwLjIyLC0xLjBsMC41NywtMS4wM2wwLjM2LC0xLjE4bDEuMjYsLTAuOThsMC4xLC0wLjE1bDAuNDksLTEuN2wwLjQ4LC0wLjUxbDAuMDcsLTAuMTNsMC4zNSwtMS4zbDAuNjMsLTEuNTRsMi4wNiwtMS45MmwwLjA5LC0wLjE3bDAuMTIsLTAuNzlsMC4yNCwtMC40MWwtMC4wNCwtMC4zNmwtMC44OSwtMC45MWwwLjA0LC0wLjQ1bDAuMjgsLTAuMDZsMC44NSwxLjM5bDAuMTYsMS41OWwtMC4wOSwxLjY2bDAuMDQsMC4xN2wxLjA5LDEuODRsLTAuODYsLTAuMDJsLTAuNzIsMC4xN2wtMS4wNywtMC4yNGwtMC4zNCwwLjE3bC0wLjU0LDEuMTlsMC4wNiwwLjM0bDEuNDgsMS40N2wxLjA2LDAuNDRsMC4zMiwwLjk0bDAuNzMsMS42bC0wLjMyLDAuNTdsLTEuMjMsMi40OWwtMC41NCwwLjQxbC0wLjEyLDAuMjFsLTAuMTksMS45NWwwLjI0LDEuMDhsLTAuMTgsMC42N2wwLjA3LDAuMjhsMS4xMywxLjI1bDAuMjQsMC45M2wwLjkyLDEuMjlsMS4xLDAuOGwwLjEsMS4wMWwwLjI2LDAuNzNsLTAuMTIsMC45M2wtMS42NSwtMC40OWwtMi4wMiwtMC42NmwtMy4xOSwtMC4xMVpcIiwgXCJuYW1lXCI6IFwiQ2FtZXJvb25cIn0sIFwiQ0xcIjoge1wicGF0aFwiOiBcIk0yNDYuOCw0MjkuMWwtMS4xNCwwLjc4bC0yLjI1LDEuMjFsLTAuMTYsMC4yM2wtMC4zNywyLjk0bC0wLjc1LDAuMDZsLTIuNzIsLTEuMDdsLTIuODMsLTIuMzRsLTMuMDYsLTEuOWwtMC43MSwtMS45MmwwLjY3LC0xLjg0bC0wLjAyLC0wLjI1bC0xLjIyLC0yLjEzbC0wLjMxLC01LjQxbDEuMDIsLTIuOTVsMi41OSwtMi40bC0wLjEzLC0wLjUxbC0zLjMyLC0wLjhsMi4wNiwtMi40bDAuMDcsLTAuMTVsMC43OSwtNC43N2wyLjQ0LDAuOTVsMC40LC0wLjIybDEuMzEsLTYuMzFsLTAuMTYsLTAuMzNsLTEuNjgsLTAuOGwtMC40MiwwLjIxbC0wLjcyLDMuNDdsLTEuMDEsLTAuMjdsMC43NCwtNC4wNmwwLjg1LC01LjQ2bDEuMTIsLTEuOTZsMC4wMywtMC4yMmwtMC43MSwtMi44MmwtMC4xOSwtMi45NGwwLjc2LC0wLjA3bDAuMjYsLTAuMmwxLjUzLC00LjYybDEuNzMsLTQuNTJsMS4wNywtNC4ybC0wLjU2LC00LjJsMC43MywtMi4ybDAuMDEsLTAuMTJsLTAuMjksLTMuM2wxLjQ2LC0zLjM0bDAuNDUsLTUuMTlsMC44LC01LjUybDAuNzgsLTUuODlsLTAuMTgsLTQuMzNsLTAuNDksLTMuNDdsMS4xLC0wLjU2bDAuMTMsLTAuMTNsMC40NCwtMC44OGwwLjksMS4yOWwwLjMyLDEuOGwwLjEsMC4xOGwxLjE2LDAuOTdsLTAuNzMsMi4zM2wwLjAxLDAuMjFsMS4zMywyLjkxbDAuOTcsMy42bDAuMzUsMC4yMmwxLjU3LC0wLjMxbDAuMTYsMC4zNGwtMC43OSwyLjUxbC0yLjYxLDEuMjVsLTAuMTcsMC4yOGwwLjA4LDQuMzZsLTAuNDgsMC43OWwwLjAxLDAuMzNsMC42LDAuODRsLTEuNjIsMS41NWwtMS42NywyLjZsLTAuODksMi40N2wtMC4wMiwwLjEzbDAuMjMsMi41NmwtMS41LDIuNzZsLTAuMDMsMC4yMWwxLjE1LDQuOGwwLjExLDAuMTdsMC41NCwwLjQybC0wLjAxLDIuMzdsLTEuNCwyLjdsLTAuMDMsMC4xNWwwLjA2LDIuMjVsLTEuOCwxLjc4bC0wLjA5LDAuMjFsMC4wMiwyLjczbDAuNzEsMi42M2wtMS4zMywwLjk0bC0wLjEyLDAuMTdsLTAuNjcsMi42NGwtMC41OSwzLjAzbDAuNCwzLjU1bC0wLjg0LDAuNTFsLTAuMTQsMC4zMWwwLjU4LDMuNWwwLjA4LDAuMTZsMC45NiwwLjk5bC0wLjcsMS4wOGwwLjExLDAuNDNsMS4wNCwwLjU1bDAuMTksMC44bC0wLjg5LDAuNDhsLTAuMTYsMC4zMWwwLjI2LDEuNzdsLTAuODksNC4wNmwtMS4zMSwyLjY3bC0wLjAzLDAuMTlsMC4yOCwxLjUzbC0wLjczLDEuODhsLTEuODUsMS4zN2wtMC4xMiwwLjI2bDAuMjIsMy40NmwwLjA2LDAuMTZsMC44OCwxLjE5bDAuMjgsMC4xMmwxLjMyLC0wLjE3bC0wLjA0LDIuMTNsMC4wNCwwLjE1bDEuMDQsMS45NWwwLjI0LDAuMTZsNS45NCwwLjQ0Wk0yNDguNzksNDMwLjcxbDAuMCw3LjQxbDAuMywwLjNsMi42NywwLjBsMS4wMSwwLjA2bC0wLjU0LDAuOTFsLTEuOTksMS4wMWwtMS4xMywtMC4xbC0xLjQyLC0wLjI3bC0xLjg3LC0xLjA2bC0yLjU3LC0wLjQ5bC0zLjA5LC0xLjlsLTIuNTIsLTEuODNsLTIuNjUsLTIuOTNsMC45MywwLjMybDMuNTQsMi4yOWwzLjMyLDEuMjNsMC4zNCwtMC4wOWwxLjI5LC0xLjU3bDAuODMsLTIuMzJsMi4xMSwtMS4yOGwxLjQzLDAuMzJaXCIsIFwibmFtZVwiOiBcIkNoaWxlXCJ9LCBcIkNBXCI6IHtcInBhdGhcIjogXCJNMjgwLjE0LDE0NS42NmwtMS42NiwyLjg4bDAuMDYsMC4zN2wwLjM3LDAuMDNsMS41LC0xLjAxbDEuMTcsMC40OWwtMC42NCwwLjgzbDAuMTMsMC40NmwyLjIyLDAuODlsMC4yOCwtMC4wM2wxLjAyLC0wLjdsMi4wOSwwLjgzbC0wLjY5LDIuMWwwLjM3LDAuMzhsMS40MywtMC40NWwwLjI3LDEuNDNsMC43NCwxLjg4bC0wLjk1LDIuNWwtMC44OCwwLjA5bC0xLjM0LC0wLjQ4bDAuNDksLTIuMzRsLTAuMTQsLTAuMzJsLTAuNywtMC40bC0wLjM2LDAuMDRsLTIuODEsMi42NmwtMC42MywtMC4wNWwxLjIsLTEuMDFsLTAuMSwtMC41MmwtMi40LC0wLjc3bC0yLjc5LDAuMThsLTQuNjUsLTAuMDlsLTAuMjIsLTAuNTRsMS4zNywtMC45OWwwLjAxLC0wLjQ4bC0wLjgyLC0wLjY1bDEuOTEsLTEuNzlsMi41NywtNS4xN2wxLjQ5LC0xLjgxbDIuMDQsLTEuMDdsMC42MywwLjA4bC0wLjI3LDAuNTFsLTEuMzMsMi4wN1pNMTkzLjkyLDc0Ljg1bC0wLjAxLDQuMjRsMC4xOSwwLjI4bDAuMzMsLTAuMDdsMy4xNCwtMy4yMmwyLjY1LDIuNWwtMC43MSwzLjA0bDAuMDYsMC4yNmwyLjQyLDIuODhsMC40NiwwLjBsMi42NiwtMy4xNGwxLjgzLC0zLjc0bDAuMDMsLTAuMTJsMC4xMywtNC41M2wzLjIzLDAuMzFsMy42MywwLjY0bDMuMTgsMi4wOGwwLjEzLDEuOTFsLTEuNzksMi4yMmwtMC4wLDAuMzdsMS42OSwyLjJsLTAuMjgsMS44bC00Ljc0LDIuODRsLTMuMzMsMC42MmwtMi41LC0xLjIxbC0wLjQxLDAuMTdsLTAuNzMsMi4wNWwtMi4zOSwzLjQ0bC0wLjc0LDEuNzhsLTIuNzgsMi42MWwtMy40OCwwLjI2bC0wLjE3LDAuMDdsLTEuOTgsMS42OGwtMC4xLDAuMjFsLTAuMTUsMi4zM2wtMi42OCwwLjQ1bC0wLjE3LDAuMDlsLTMuMSwzLjJsLTIuNzUsNC4zOGwtMC45OSwzLjA2bC0wLjE0LDQuMzFsMC4yNSwwLjMxbDMuNSwwLjU4bDEuMDcsMy4yNGwxLjE4LDIuNzZsMC4zNCwwLjE4bDMuNDMsLTAuNjlsNC41NSwxLjUybDIuNDUsMS4zMmwxLjc2LDEuNjVsMC4xMiwwLjA3bDMuMTEsMC45NmwyLjYzLDEuNDZsMC4xMywwLjA0bDQuMTIsMC4ybDIuNDEsMC4zbC0wLjM2LDIuODFsMC44LDMuNTFsMS44MSwzLjc4bDAuMDgsMC4xbDMuNzMsMy4xN2wwLjM0LDAuMDNsMS45MywtMS4wOGwwLjEzLC0wLjE1bDEuMzUsLTMuNDRsMC4wMSwtMC4xOGwtMS4zMSwtNS4zOGwtMC4wOCwtMC4xNGwtMS40NiwtMS41bDMuNjgsLTEuNTFsMi44NCwtMi40NmwxLjQ1LC0yLjU1bDAuMDQsLTAuMTdsLTAuMiwtMi4zOWwtMC4wNCwtMC4xMmwtMS43LC0zLjA3bC0yLjksLTIuNjRsMi43OSwtMy42NmwwLjA1LC0wLjI3bC0xLjA4LC0zLjM4bC0wLjgsLTUuNzVsMS40NSwtMC43NWw0LjE4LDEuMDNsMi42LDAuMzhsMC4xOCwtMC4wM2wxLjkzLC0wLjk1bDIuMTgsMS4yM2wzLjAxLDIuMThsMC43MywxLjQybDAuMjUsMC4xNmw0LjE4LDAuMjdsLTAuMDYsMi45NWwwLjgzLDQuN2wwLjIyLDAuMjRsMi4xOSwwLjU1bDEuNzUsMi4wOGwwLjM4LDAuMDdsMy42MywtMi4wM2wwLjExLC0wLjExbDIuMzgsLTQuMDZsMS4zNiwtMS40M2wxLjc2LDMuMDFsMy4yNiw0LjY4bDIuNjgsNC4xOWwtMC45NCwyLjA5bDAuMTIsMC4zOGwzLjMxLDEuOThsMi4yMywxLjk4bDAuMTMsMC4wN2wzLjk0LDAuODlsMS40OCwxLjAybDAuOTYsMi44MmwwLjIyLDAuMmwxLjg1LDAuNDNsMC44OCwxLjEzbDAuMTcsMy41M2wtMS42OCwxLjE2bC0xLjc2LDEuMTRsLTQuMDgsMS4xN2wtMC4xMSwwLjA2bC0zLjA4LDIuNjVsLTQuMTEsMC41MmwtNS4zNSwtMC42OWwtMy43NiwtMC4wMmwtMi42MiwwLjIzbC0wLjIsMC4xbC0yLjA1LDIuMjlsLTMuMTMsMS40MWwtMC4xMSwwLjA4bC0zLjYsNC4yNGwtMi44NywyLjkybC0wLjA1LDAuMzZsMC4zMywwLjE0bDIuMTMsLTAuNTJsMC4xNSwtMC4wOGwzLjk4LC00LjE1bDUuMTYsLTIuNjNsMy41OCwtMC4zMWwxLjgyLDEuM2wtMi4wOSwxLjkxbC0wLjA5LDAuMjlsMC44LDMuNDZsMC44MiwyLjM3bDAuMTUsMC4xN2wzLjI1LDEuNTZsMC4xNiwwLjAzbDQuMTQsLTAuNDVsMC4yMSwtMC4xMmwyLjAzLC0yLjg2bDAuMTEsMS40NmwwLjEzLDAuMjJsMS4yNiwwLjg4bC0yLjcsMS43OGwtNS41MSwxLjgzbC0yLjUyLDEuMjZsLTIuNzUsMi4xNmwtMS41MiwtMC4xOGwtMC4wOCwtMi4xNmw0LjE5LC0yLjQ3bDAuMTQsLTAuMzRsLTAuMywtMC4yMmwtNC4wMSwwLjFsLTIuNjYsMC4zNmwtMS40NSwtMS41NmwwLjAsLTQuMTZsLTAuMTEsLTAuMjNsLTEuMTEsLTAuOTFsLTAuMjgsLTAuMDVsLTEuNSwwLjQ4bC0wLjcsLTAuN2wtMC40NSwwLjAybC0xLjkxLDIuMzlsLTAuOCwyLjVsLTAuODIsMS4zMWwtMC45NSwwLjQzbC0wLjc3LDAuMTVsLTAuMjMsMC4ybC0wLjE4LDAuNTZsLTguMiwwLjAybC0wLjEzLDAuMDNsLTEuMTksMC42MWwtMi45NSwyLjQ1bC0wLjc4LDEuMTNsLTQuNiwwLjAxbC0wLjEyLDAuMDJsLTEuMTMsMC40OGwtMC4xMywwLjQ0bDAuMzcsMC41NWwwLjIsMC44MmwtMC4wMSwwLjA5bC0zLjEsMS40MmwtMi42MywwLjVsLTIuODQsMS41N2wtMC40NywwLjBsLTAuNzIsLTAuNGwtMC4xOCwtMC4yN2wwLjAzLC0wLjE1bDAuNTIsLTEuMGwxLjIsLTEuNzFsMC43MywtMS44bDAuMDIsLTAuMTdsLTEuMDMsLTUuNDdsLTAuMTUsLTAuMjFsLTIuMzUsLTEuMzJsMC4xNiwtMC4yOWwtMC4wNSwtMC4zNWwtMC4zNywtMC4zOGwtMC4yMiwtMC4wOWwtMC41NiwwLjBsLTAuMzUsLTAuMzRsLTAuMTEsLTAuNjVsLTAuNDYsLTAuMmwtMC4zOSwwLjI2bC0wLjIsLTAuMDNsLTAuMTEsLTAuMzNsLTAuNDgsLTAuMjVsLTAuMjEsLTAuNzFsLTAuMTUsLTAuMThsLTMuOTcsLTIuMDdsLTQuOCwtMi4zOWwtMC4yNSwtMC4wMWwtMi4xOSwwLjg5bC0wLjcyLDAuMDNsLTMuMDQsLTAuODJsLTAuMTQsLTAuMGwtMS45NCwwLjRsLTIuNCwtMC45OGwtMi41NiwtMC41MWwtMS43LC0wLjE5bC0wLjYyLC0wLjQ0bC0wLjQyLC0xLjY3bC0wLjMsLTAuMjNsLTAuODUsMC4wMmwtMC4yOSwwLjNsLTAuMDEsMC45NWwtNjkuMjYsLTAuMDFsLTQuNzcsLTMuMTRsLTEuNzgsLTEuNDFsLTQuNTEsLTEuMzhsLTEuMywtMi43M2wwLjM0LC0xLjk2bC0wLjE3LC0wLjMzbC0zLjA2LC0xLjM3bC0wLjQxLC0yLjU4bC0wLjExLC0wLjE4bC0yLjkyLC0yLjRsLTAuMDUsLTEuNTNsMS4zMiwtMS41OWwwLjA3LC0wLjJsLTAuMDcsLTIuMjFsLTAuMTYsLTAuMjZsLTQuMTksLTIuMjJsLTIuNTIsLTQuMDJsLTEuNTYsLTIuNmwtMC4wOCwtMC4wOWwtMi4yOCwtMS42NGwtMS42NSwtMS40OGwtMS4zMSwtMS44OWwtMC4zOCwtMC4xbC0yLjUxLDEuMjFsLTIuMjgsMS45MmwtMi4wMywtMi4yMmwtMS44NSwtMS43MWwtMi40NCwtMS4wNGwtMi4yOCwtMC4xMmwwLjAzLC0zNy43Mmw0LjI3LDAuOThsNC4wLDIuMTNsMi42MSwwLjRsMC4yNCwtMC4wN2wyLjE3LC0xLjgxbDIuOTIsLTEuMzNsMy42MywwLjUzbDAuMTgsLTAuMDNsMy43MiwtMS45NGwzLjg5LC0xLjA2bDEuNiwxLjcybDAuMzcsMC4wNmwxLjg3LC0xLjA0bDAuMTQsLTAuMTlsMC40OCwtMS44M2wxLjM3LDAuMzhsNC4xOCwzLjk2bDAuNDEsMC4wbDIuODksLTIuNjJsMC4yOCwyLjc5bDAuMzcsMC4yNmwzLjA4LC0wLjczbDAuMTcsLTAuMTJsMC44NSwtMS4xNmwyLjgxLDAuMjRsMy44MywxLjg2bDUuODYsMS42MWwzLjQ2LDAuNzVsMi40NCwtMC4yNmwyLjg5LDEuODlsLTMuMTIsMS44OWwtMC4xNCwwLjMxbDAuMjQsMC4yNGw0LjUzLDAuOTJsNi44NCwtMC41bDIuMDQsLTAuNzFsMi41NCwyLjQ0bDAuMzksMC4wMmwyLjcyLC0yLjE2bC0wLjAxLC0wLjQ4bC0yLjI2LC0xLjYxbDEuMjcsLTEuMTZsMi45NCwtMC4xOWwxLjk0LC0wLjQybDEuODksMC45N2wyLjQ5LDIuMzJsMC4yNCwwLjA4bDIuNzEsLTAuMzNsNC4zNSwxLjlsMC4xNywwLjAybDMuODYsLTAuNjdsMy42MiwwLjFsMC4zMSwtMC4zM2wtMC4yNiwtMi40NGwxLjksLTAuNjVsMy41OCwxLjM2bC0wLjAxLDMuODRsMC4yMywwLjI5bDAuMzQsLTAuMTdsMS41MSwtMy4yM2wxLjgxLDAuMWwwLjMxLC0wLjIybDEuMTMsLTQuMzdsLTAuMDgsLTAuMjlsLTIuNjgsLTIuNzNsLTIuODMsLTEuNzZsMC4xOSwtNC43M2wyLjc3LC0zLjE1bDMuMDYsMC42OWwyLjQ0LDEuOTdsMy4yNCw0Ljg4bC0yLjA1LDIuMDJsMC4xNSwwLjUxbDQuNDEsMC44NVpNMjY1Ljg1LDE1MC43bC0wLjg0LDAuMDRsLTMuMTUsLTAuOTlsLTEuNzcsLTEuMTdsMC4xOSwtMC4wNmwzLjE3LDAuNzlsMi4zOSwxLjI3bDAuMDEsMC4xMlpNMjQ5LjQxLDMuNzFsNi42OCwwLjQ5bDUuMzQsMC43OWw0LjM0LDEuNmwtMC4wOCwxLjI0bC01LjkxLDIuNTZsLTYuMDMsMS4yMWwtMi4zNiwxLjM4bC0wLjE0LDAuMzRsMC4yOSwwLjIybDQuMzcsLTAuMDJsLTQuOTYsMy4wMWwtNC4wNiwxLjY0bC0wLjExLDAuMDhsLTQuMjEsNC42MmwtNS4wNywwLjkybC0wLjEyLDAuMDVsLTEuNTMsMS4xbC03LjUsMC41OWwtMC4yOCwwLjI4bDAuMjQsMC4zMWwyLjY3LDAuNTRsLTEuMDQsMC42bC0wLjA5LDAuNDRsMS44OSwyLjQ5bC0yLjExLDEuNjZsLTMuODMsMS41MmwtMC4xNSwwLjEzbC0xLjE0LDIuMDFsLTMuNDEsMS41NWwtMC4xNiwwLjM2bDAuMzUsMS4xOWwwLjMsMC4yMmwzLjk4LC0wLjE5bDAuMDMsMC43OGwtNi40MiwyLjk5bC02LjQ0LC0xLjQxbC03LjQxLDAuNzlsLTMuNzIsLTAuNjJsLTQuNDgsLTAuMjZsLTAuMjUsLTIuMGw0LjM3LC0xLjEzbDAuMjEsLTAuMzhsLTEuMTQsLTMuNTVsMS4xMywtMC4yOGw2LjYxLDIuMjlsMC4zNSwtMC4xMmwtMC4wNCwtMC4zN2wtMy40MSwtMy40NWwtMC4xNCwtMC4wOGwtMy41NywtMC45MmwxLjYyLC0xLjdsNC4zNiwtMS4zbDAuMiwtMC4xOGwwLjcxLC0xLjk0bC0wLjEyLC0wLjM2bC0zLjQ1LC0yLjE1bC0wLjg4LC0yLjQzbDYuMzYsMC4yM2wxLjk0LDAuNjFsMC4yMywtMC4wMmwzLjkxLC0yLjFsMC4xNSwtMC4zMmwtMC4yNiwtMC4yNGwtNS42OSwtMC42N2wtOC42OSwwLjM3bC00LjMsLTEuOTJsLTIuMTIsLTIuMzlsLTIuODIsLTEuNjhsLTAuNDQsLTEuNjVsMy40MSwtMS4wNmwyLjkzLC0wLjJsNC45MSwtMC45OWwzLjY5LC0yLjI4bDIuOTMsMC4zMWwyLjY0LDEuNjhsMC40MiwtMC4xbDEuODQsLTMuMjNsMy4xNywtMC45Nmw0LjQ1LC0wLjY5bDcuNTYsLTAuMjZsMS4yNiwwLjY0bDAuMTgsMC4wM2w3LjIsLTEuMDZsMTAuODEsMC44Wk0yMDMuOTQsNTcuNTlsMC4wMSwwLjMybDEuOTcsMi45N2wwLjUxLC0wLjAxbDIuMjYsLTMuNzVsNi4wNSwtMS44OWw0LjA4LDQuNzJsLTAuMzYsMi45NWwwLjM4LDAuMzNsNC45NSwtMS4zNmwwLjExLC0wLjA1bDIuMjMsLTEuNzdsNS4zNywyLjMxbDMuMzIsMi4xNGwwLjMsMS44OWwwLjM2LDAuMjVsNC40OCwtMS4wMWwyLjQ5LDIuOGwwLjE0LDAuMDlsNS45OSwxLjc4bDIuMDksMS43NGwyLjE4LDMuODNsLTQuMjksMS45MWwtMC4wMSwwLjU0bDUuOSwyLjgzbDMuOTUsMC45NGwzLjU0LDMuODRsMC4yLDAuMWwzLjU4LDAuMjVsLTAuNjcsMi41MWwtNC4xOCw0LjU0bC0yLjg0LC0xLjYxbC0zLjkxLC0zLjk1bC0wLjI2LC0wLjA5bC0zLjI0LDAuNTJsLTAuMjUsMC4yNmwtMC4zMiwyLjM3bDAuMSwwLjI2bDIuNjMsMi4zOGwzLjQyLDEuODlsMC45NiwxLjBsMS41NywzLjhsLTAuNzQsMi40M2wtMi44NSwtMC45NmwtNi4yNiwtMy4xNWwtMC4zOCwwLjA5bDAuMDQsMC4zOWwzLjU0LDMuNGwyLjU1LDIuMzFsMC4yMywwLjc4bC02LjI2LC0xLjQzbC01LjMzLC0yLjI1bC0yLjczLC0xLjczbDAuNjcsLTAuODZsLTAuMDksLTAuNDVsLTcuMzgsLTQuMDFsLTAuNDQsMC4yN2wwLjAzLDAuODlsLTYuODUsMC42MWwtMS44LC0xLjE3bDEuNDMsLTIuNmw0LjU2LC0wLjA3bDUuMTUsLTAuNTJsMC4yMywtMC40NWwtMC43NiwtMS4zNGwwLjgsLTEuODlsMy4yMSwtNC4wNmwwLjA1LC0wLjI5bC0wLjcyLC0xLjk1bC0wLjk3LC0xLjQ3bC0wLjExLC0wLjFsLTMuODQsLTIuMWwtNC41MywtMS4zM2wxLjA5LC0wLjc1bDAuMDUsLTAuNDVsLTIuNjUsLTIuNzVsLTAuMTgsLTAuMDlsLTIuMTIsLTAuMjRsLTEuOTEsLTEuNDdsLTAuMzksMC4wMmwtMS4yNywxLjI1bC00LjQsMC41NmwtOS4wNiwtMC45OWwtNS4yOCwtMS4zMWwtNC4wMSwtMC42N2wtMS43MiwtMS4zMWwyLjMyLC0xLjg1bDAuMSwtMC4zM2wtMC4yOCwtMC4ybC0zLjMsLTAuMDJsLTAuNzQsLTQuMzZsMS44NiwtNC4wOWwyLjQ2LC0xLjg4bDUuNzQsLTEuMTVsLTEuNSwyLjU1Wk0yNjEuMjgsMTU5LjI4bDAuMTksMC4xNGwxLjgyLDAuNDJsMS42NiwtMC4wNWwtMC42NiwwLjY4bC0wLjc1LDAuMTZsLTMuMCwtMS4yNWwtMC40NiwtMC43N2wwLjUxLC0wLjUybDAuNjgsMS4xOVpNMjMwLjg3LDg0LjQ4bC0yLjQ4LDAuMTlsLTAuNTIsLTEuNzRsMC45NiwtMi4xN2wyLjAzLC0wLjUzbDEuNzEsMS4wNGwwLjAyLDEuNmwtMC4yMiwwLjQ2bC0xLjUsMS4xNlpNMjI5LjUyLDU4LjE5bDAuMTQsMC44MmwtNC45OSwtMC4yMmwtMi43MywwLjYzbC0wLjU5LC0wLjIzbC0yLjYxLC0yLjRsMC4wOCwtMS4zOGwwLjk0LC0wLjI1bDUuNjEsMC41MWw0LjE0LDIuNTRaTTIyMi4xMiwxMDUuMGwtMC43OSwxLjYzbC0wLjc1LC0wLjIybC0wLjUyLC0wLjkxbDAuMDQsLTAuMDlsMC44NCwtMS4wMWwwLjc0LDAuMDZsMC40NCwwLjU1Wk0xODMuNzcsMzguMjJsMi43MiwxLjY1bDAuMTYsMC4wNGw0LjgzLC0wLjAxbDEuOTIsMS41MmwtMC41MSwxLjc1bDAuMTgsMC4zNmwyLjg0LDEuMTRsMS41NiwxLjE5bDAuMTYsMC4wNmwzLjM3LDAuMjJsMy42NSwwLjQybDQuMDcsLTEuMWw1LjA1LC0wLjQzbDMuOTYsMC4zNWwyLjUzLDEuOGwwLjQ4LDEuNzlsLTEuMzcsMS4xNmwtMy42LDEuMDNsLTMuMjIsLTAuNTlsLTcuMTcsMC43NmwtNS4xLDAuMDlsLTQuMCwtMC42bC02LjQ4LC0xLjU2bC0wLjgxLC0yLjU3bC0wLjMsLTIuNDlsLTAuMSwtMC4xOWwtMi41MSwtMi4yNWwtMC4xNiwtMC4wN2wtNS4xMiwtMC42M2wtMi42MSwtMS40NWwwLjc1LC0xLjcxbDQuODgsMC4zMlpNMjA3LjQ2LDkxLjI2bDAuNDIsMS42MmwwLjQyLDAuMTlsMS4xMiwtMC41NWwxLjM1LDAuOTlsMi43NCwxLjM5bDIuNzMsMS4ybDAuMiwxLjc0bDAuMzUsMC4yNmwxLjcyLC0wLjI5bDEuMzEsMC45N2wtMS43MiwwLjk2bC0zLjY4LC0wLjlsLTEuMzQsLTEuNzFsLTAuNDMsLTAuMDRsLTIuNDYsMi4xbC0zLjIzLDEuODVsLTAuNzQsLTEuOThsLTAuMzEsLTAuMTlsLTIuNDcsMC4yOGwxLjQ5LC0xLjM0bDAuMSwtMC4xOWwwLjMyLC0zLjE1bDAuNzksLTMuNDVsMS4zNCwwLjI1Wk0yMTUuNTksMTAyLjY2bC0yLjczLDIuMGwtMS40OSwtMC4wOGwtMC4zNywtMC43bDEuNjEsLTEuNTZsMy4wLDAuMDNsLTAuMDIsMC4zWk0yMDIuNzksMjQuMDdsMC4xMSwwLjEybDIuNTQsMS41M2wtMy4wMSwxLjQ3bC00LjU1LDQuMDdsLTQuMywwLjM4bC01LjA3LC0wLjY4bC0yLjUxLC0yLjA5bDAuMDMsLTEuNzJsMS44NiwtMS40bDAuMSwtMC4zNGwtMC4yOSwtMC4ybC00LjQ5LDAuMDRsLTIuNjMsLTEuNzlsLTEuNDUsLTIuMzZsMS42MSwtMi4zOGwxLjY1LC0xLjY5bDIuNDcsLTAuNGwwLjE5LC0wLjQ4bC0wLjcyLC0wLjg5bDUuMSwtMC4yNmwzLjEsMy4wNWwwLjEzLDAuMDdsNC4yMSwxLjI1bDMuOTksMS4wNmwxLjkyLDMuNjVaTTE4Ny41LDU5LjNsLTAuMTUsMC4xbC0yLjU5LDMuNGwtMi41LC0wLjE1bC0xLjQ3LC0zLjkybDAuMDQsLTIuMjRsMS4yMiwtMS45MmwyLjM0LC0xLjI2bDUuMTEsMC4xN2w0LjI4LDEuMDZsLTMuMzYsMy44NmwtMi45LDAuOVpNMTg2LjE5LDQ4LjhsLTEuMTUsMS42M2wtMy40MiwtMC4zNWwtMi42OCwtMS4xNWwxLjExLC0xLjg4bDMuMzQsLTEuMjdsMi4wMSwxLjYzbDAuNzksMS4zOFpNMTg1Ljc4LDM1LjQxbC0wLjk1LDAuMTNsLTQuNDgsLTAuMzNsLTAuNCwtMC45MWw0LjUsMC4wN2wxLjQ1LDAuODJsLTAuMSwwLjIxWk0xODAuNzYsMzIuNTZsLTMuNDMsMS4wM2wtMS44NSwtMS4xNGwtMS4wMSwtMS45MmwtMC4xNiwtMS44N2wyLjg3LDAuMmwxLjM5LDAuMzVsMi43NSwxLjc1bC0wLjU1LDEuNlpNMTgxLjAzLDc2LjMybC0xLjIxLDEuMmwtMy4xOSwtMS4yNmwtMC4xOCwtMC4wMWwtMS45MiwwLjQ1bC0yLjg4LC0xLjY3bDEuODQsLTEuMTZsMS42LC0xLjc3bDIuNDUsMS4xN2wxLjQ1LDAuNzdsMi4wNSwyLjI4Wk0xNjkuNzIsNTQuNzZsMi44MywwLjk3bDAuMTQsMC4wMWw0LjI1LC0wLjU4bDAuNDcsMS4wMWwtMi4xOSwyLjE2bDAuMDcsMC40OGwzLjYxLDEuOTVsLTAuNDEsMy44NGwtMy44NywxLjY4bC0yLjIzLC0wLjM2bC0xLjczLC0xLjc1bC02LjA3LC0zLjUzbDAuMDMsLTEuMDFsNC43OSwwLjU1bDAuMywtMC4xNmwtMC4wNCwtMC4zNGwtMi41NSwtMi44OWwyLjU5LC0yLjA1Wk0xNzQuNDQsNDAuNTZsMS40OSwxLjg3bDAuMDcsMi40OGwtMS4wNywzLjUybC0zLjg3LDAuNDhsLTIuNDEsLTAuNzJsMC4wNSwtMi43MmwtMC4zMywtMC4zbC0zLjc5LDAuMzZsLTAuMTMsLTMuMzFsMi4zNiwwLjE0bDAuMTUsLTAuMDNsMy43LC0xLjc0bDMuNDQsMC4yOWwwLjMxLC0wLjIybDAuMDMsLTAuMTJaTTE3MC4xNCwzMS41bDAuNzUsMS43NGwtMy41MiwtMC41MmwtNC4xOSwtMS43N2wtNC42NSwtMC4xN2wxLjY1LC0xLjExbC0wLjA1LC0wLjUybC0yLjg2LC0xLjI2bC0wLjEzLC0xLjU4bDQuNTIsMC43bDYuNjYsMS45OWwxLjg0LDIuNVpNMTM0LjY0LDU4LjA4bC0xLjA4LDEuOTNsMC4zNCwwLjQ0bDUuNDQsLTEuNDFsMy4zNywyLjMybDAuMzcsLTAuMDJsMi42NiwtMi4yOGwyLjAzLDEuMzhsMi4wMSw0LjUzbDAuNTMsMC4wNGwxLjI2LC0xLjkzbDAuMDMsLTAuMjdsLTEuNjcsLTQuNTVsMS44MiwtMC41OGwyLjM2LDAuNzNsMi42OSwxLjg0bDEuNTMsNC40NmwwLjc3LDMuMjRsMC4xNSwwLjE5bDQuMjIsMi4yNmw0LjMyLDIuMDRsLTAuMjEsMS41MWwtMy44NywwLjM0bC0wLjE5LDAuNWwxLjQ1LDEuNTRsLTAuNjUsMS4yM2wtNC4zLC0wLjY1bC00LjQsLTEuMTlsLTIuOTcsMC4yOGwtNC42NywxLjQ4bC02LjMxLDAuNjVsLTQuMjcsMC4zOWwtMS4yNiwtMS45MWwtMC4xNSwtMC4xMmwtMy40MiwtMS4ybC0wLjE2LC0wLjAxbC0yLjA1LDAuNDVsLTIuNjYsLTMuMDJsMS4yLC0wLjM0bDMuODIsLTAuNzZsMy41OCwwLjE5bDMuMjcsLTAuNzhsMC4yMywtMC4yOWwtMC4yNCwtMC4yOWwtNC44NCwtMS4wNmwtNS40MiwwLjM1bC0zLjQsLTAuMDlsLTAuOTcsLTEuMjJsNS4zOSwtMS43bDAuMjEsLTAuMzNsLTAuMywtMC4yNWwtMy44MiwwLjA2bC0zLjk1LC0xLjFsMS44OCwtMy4xM2wxLjY4LC0xLjgxbDYuNTQsLTIuODRsMi4xMSwwLjc3Wk0xNTguODUsNTYuNThsLTEuODIsMi42MmwtMy4zOCwtMi45bDAuNDksLTAuMzlsMy4xNywtMC4xOGwxLjU0LDAuODZaTTE0OS43MSw0Mi43bDEuMCwxLjg3bDAuMzcsMC4xNGwyLjE3LC0wLjgzbDIuMzMsMC4ybDAuMzgsMi4xNmwtMS4zOCwyLjE3bC04LjMzLDAuNzZsLTYuMzQsMi4xNWwtMy41MSwwLjFsLTAuMjIsLTEuMTNsNC45OCwtMi4xMmwwLjE3LC0wLjM0bC0wLjMxLC0wLjIzbC0xMS4yNywwLjZsLTMuMDQsLTAuNzhsMy4xNCwtNC41N2wyLjIsLTEuMzVsNi44NywxLjdsNC40LDMuMGwwLjE0LDAuMDVsNC4zNywwLjM5bDAuMjcsLTAuNDhsLTMuNDEsLTQuNjhsMS45NiwtMS42MmwyLjI4LDAuNTNsMC43OSwyLjMyWk0xNDUuNDQsMjkuODNsLTIuMTgsMC43N2wtMy43OSwtMC4wbDAuMDIsLTAuMzFsMi4zNCwtMS41bDEuMiwwLjIzbDIuNDIsMC44M1pNMTQ0LjgzLDM0LjVsLTQuNDQsMS40NmwtMy4xOCwtMS40OGwxLjYsLTEuMzZsMy41MSwtMC41M2wzLjEsMC43NWwtMC42LDEuMTZaTTExOS4wMiw2NS44N2wtNi4xNywyLjA3bC0xLjE5LC0xLjgybC0wLjEzLC0wLjExbC01LjQ4LC0yLjMybDAuOTIsLTEuN2wxLjczLC0zLjQ0bDIuMTYsLTMuMTVsLTAuMDIsLTAuMzZsLTIuMDksLTIuNTZsNy44NCwtMC43MWwzLjU5LDEuMDJsNi4zMiwwLjI3bDIuMzUsMS4zN2wyLjI1LDEuNzFsLTIuNjgsMS4wNGwtNi4yMSwzLjQxbC0zLjEsMy4yOGwtMC4wOCwwLjIxbDAuMCwxLjgxWk0xMjkuNjYsMzUuNGwtMC4zLDMuNTVsLTEuNzcsMS42N2wtMi4zNCwwLjI3bC00LjYyLDIuMmwtMy44OSwwLjc2bC0yLjgzLC0wLjkzbDMuODUsLTMuNTJsNS4wNCwtMy4zNmwzLjc1LDAuMDdsMy4xMSwtMC43Wk0xMTEuMjQsMTUyLjc0bC0wLjgyLDAuMjlsLTMuOTIsLTEuMzlsLTAuNywtMS4wNmwtMC4xMiwtMC4xbC0yLjE1LC0xLjA5bC0wLjQxLC0wLjg0bC0wLjIsLTAuMTZsLTIuNDQsLTAuNTZsLTAuODQsLTEuNTZsMC4xLC0wLjM2bDIuMzQsMC42NGwxLjUzLDAuNWwyLjI4LDAuMzRsMC43OCwxLjA0bDEuMjQsMS41NWwwLjA5LDAuMDhsMi40MiwxLjNsMC44MSwxLjM5Wk04OC41NCwxMzQuODJsMC4xNCwwLjAybDIuMCwtMC4yM2wtMC42NywzLjQ4bDAuMDYsMC4yNGwxLjc4LDIuMjJsLTAuMjQsLTAuMGwtMS40LC0xLjQybC0wLjkxLC0xLjUzbC0xLjI2LC0xLjA4bC0wLjQyLC0xLjM1bDAuMDksLTAuNjZsMC44MiwwLjMxWlwiLCBcIm5hbWVcIjogXCJDYW5hZGFcIn0sIFwiQ0dcIjoge1wicGF0aFwiOiBcIk00NTMuNjYsMjk2LjYxbC0wLjksLTAuODJsLTAuMzUsLTAuMDRsLTAuODMsMC40OGwtMC43NywwLjgzbC0xLjY1LC0yLjEzbDEuNjYsLTEuMmwwLjA4LC0wLjM5bC0wLjgxLC0xLjQzbDAuNTksLTAuNDNsMS42MiwtMC4yOWwwLjI0LC0wLjI0bDAuMSwtMC41OGwwLjk0LDAuODRsMC4xOSwwLjA4bDIuMjEsMC4xMWwwLjI3LC0wLjE0bDAuODEsLTEuMjlsMC4zMiwtMS43NmwtMC4yNywtMS45NmwtMC4wNiwtMC4xNWwtMS4wOCwtMS4zNWwxLjAyLC0yLjc0bC0wLjA5LC0wLjM0bC0wLjYyLC0wLjVsLTAuMjIsLTAuMDZsLTEuNjYsMC4xOGwtMC41NSwtMS4wM2wwLjEyLC0wLjczbDIuODUsMC4wOWwxLjk4LDAuNjVsMi4wLDAuNTlsMC4zOCwtMC4yNWwwLjE3LC0xLjNsMS4yNiwtMi4yNGwxLjM0LC0xLjE5bDEuNTQsMC4zOGwxLjM1LDAuMTJsLTAuMTEsMS4xNWwtMC43NCwxLjM0bC0wLjUsMS42MWwtMC4zMSwyLjIybDAuMTIsMS40MWwtMC40LDAuOWwtMC4wNiwwLjg4bC0wLjI0LDAuNjdsLTEuNTcsMS4xNWwtMS4yNCwxLjQxbC0xLjA5LDIuNDNsLTAuMDMsMC4xM2wwLjA4LDEuOTVsLTAuNTUsMC42OWwtMS40NiwxLjIzbC0xLjMyLDEuNDFsLTAuNjEsLTAuMjlsLTAuMTMsLTAuNTdsLTAuMjksLTAuMjNsLTEuMzYsLTAuMDJsLTAuMjMsMC4xbC0wLjcyLDAuODFsLTAuNDEsLTAuMTZaXCIsIFwibmFtZVwiOiBcIlJlcHVibGljIG9mIHRoZSBDb25nb1wifSwgXCJDRlwiOiB7XCJwYXRoXCI6IFwiTTQ1OS40MSwyNjYuNTZsMS45LC0wLjE3bDAuMjIsLTAuMTJsMC4zNiwtMC41bDAuMTQsMC4wMmwwLjU1LDAuNTFsMC4yOSwwLjA3bDMuMTUsLTAuOTZsMC4xMiwtMC4wN2wxLjA1LC0wLjk3bDEuMjksLTAuODdsMC4xMiwtMC4zM2wtMC4xNywtMC42MWwwLjM4LC0wLjEybDIuMzYsMC4xNWwwLjE1LC0wLjAzbDIuMzYsLTEuMTdsMC4xMiwtMC4xbDEuNzgsLTIuNzJsMS4xOCwtMC45NmwxLjIzLC0wLjM0bDAuMjEsMC43OWwwLjA3LDAuMTNsMS4zNywxLjVsMC4wMSwwLjg2bC0wLjM5LDEuMGwtMC4wMSwwLjE3bDAuMTYsMC43OGwwLjEsMC4xN2wwLjkxLDAuNzZsMS44OSwxLjA5bDEuMjQsMC45MmwwLjAyLDAuNjdsMC4xMiwwLjIzbDEuNjcsMS4zbDAuOTksMS4wM2wwLjYxLDEuNDZsMC4xNCwwLjE1bDEuNzksMC45NWwwLjIsMC40bC0wLjQ0LDAuMTRsLTEuNTQsLTAuMDZsLTEuOTgsLTAuMjZsLTAuOTMsMC4yMmwtMC4xOSwwLjE0bC0wLjMsMC40OGwtMC41NywwLjA1bC0wLjkxLC0wLjQ5bC0wLjI2LC0wLjAxbC0yLjcsMS4yMWwtMS4wNCwtMC4yM2wtMC4yMSwwLjAzbC0wLjM0LDAuMTlsLTAuMTIsMC4xM2wtMC42NCwxLjNsLTEuNjcsLTAuNDNsLTEuNzcsLTAuMjRsLTEuNTgsLTAuOTFsLTIuMDYsLTAuODVsLTAuMjcsMC4wMmwtMS40MiwwLjg4bC0wLjk3LDEuMjdsLTAuMDYsMC4xNGwtMC4xOSwxLjQ2bC0xLjMsLTAuMTFsLTEuNjcsLTAuNDJsLTAuMjcsMC4wN2wtMS41NSwxLjQxbC0wLjk5LDEuNzZsLTAuMTQsLTEuMThsLTAuMTMsLTAuMjJsLTEuMSwtMC43OGwtMC44NiwtMS4ybC0wLjIsLTAuODRsLTAuMDcsLTAuMTNsLTEuMDcsLTEuMTlsMC4xNiwtMC41OWwwLjAsLTAuMTVsLTAuMjQsLTEuMDFsMC4xOCwtMS43N2wwLjUsLTAuMzhsMC4wOSwtMC4xMWwxLjE4LC0yLjRaXCIsIFwibmFtZVwiOiBcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY1wifSwgXCJDRFwiOiB7XCJwYXRoXCI6IFwiTTQ5Ny44NSwyNzYuMjVsLTAuMTQsMi43N2wwLjIsMC4zbDAuNTcsMC4xOWwtMC40NywwLjUybC0xLjAsMC43MWwtMC45NiwxLjMxbC0wLjU2LDEuMjJsLTAuMTYsMi4wNGwtMC41NCwwLjg5bC0wLjA0LDAuMTVsLTAuMDIsMS43NmwtMC42MywwLjYxbC0wLjA5LDAuMmwtMC4wOCwxLjMzbC0wLjIsMC4xMWwtMC4xNSwwLjIxbC0wLjIzLDEuMzdsMC4wMywwLjJsMC42LDEuMDhsMC4xNiwyLjk2bDAuNDQsMi4yOWwtMC4yNCwxLjI1bDAuMDEsMC4xNWwwLjUsMS40NmwwLjA3LDAuMTJsMS40MSwxLjM3bDEuMDksMi41NmwtMC41MSwtMC4xMWwtMy40NSwwLjQ1bC0wLjY3LDAuM2wtMC4xNSwwLjE1bC0wLjcxLDEuNjFsMC4wMSwwLjI2bDAuNTIsMS4wM2wtMC40MywyLjlsLTAuMzEsMi41NWwwLjEzLDAuMjlsMC43LDAuNDZsMS43NSwwLjk5bDAuMzEsLTAuMDFsMC4yNiwtMC4xN2wwLjE1LDEuOWwtMS40NCwtMC4wMmwtMC45NCwtMS4yOGwtMC45NCwtMS4xbC0wLjE3LC0wLjFsLTEuNzYsLTAuMzNsLTAuNSwtMS4xOGwtMC40MiwtMC4xNWwtMS40NCwwLjc1bC0xLjc5LC0wLjMybC0wLjc3LC0xLjA1bC0wLjIsLTAuMTJsLTEuNTksLTAuMjNsLTAuOTcsMC4wNGwtMC4xLC0wLjUzbC0wLjI3LC0wLjI1bC0wLjg2LC0wLjA2bC0xLjEzLC0wLjE1bC0xLjYyLDAuMzdsLTEuMDQsLTAuMDZsLTAuMzIsMC4wOWwwLjExLC0yLjU2bC0wLjA4LC0wLjIxbC0wLjc3LC0wLjg3bC0wLjE3LC0xLjQxbDAuMzYsLTEuNDdsLTAuMDMsLTAuMjFsLTAuNDgsLTAuOTFsLTAuMDQsLTEuNTJsLTAuMywtMC4yOWwtMi42NSwwLjAybDAuMTMsLTAuNTNsLTAuMjksLTAuMzdsLTEuMjgsMC4wMWwtMC4yOCwwLjIxbC0wLjA3LDAuMjRsLTEuMzUsMC4wOWwtMC4yNiwwLjE4bC0wLjYyLDEuNDVsLTAuMjUsMC40MmwtMS4xNywtMC4zbC0wLjE5LDAuMDFsLTAuNzksMC4zNGwtMS40NCwwLjE4bC0xLjQxLC0xLjk2bC0wLjcsLTEuNDdsLTAuNjEsLTEuODZsLTAuMjgsLTAuMjFsLTcuMzksLTAuMDNsLTAuOTIsMC4zbC0wLjc4LC0wLjAzbC0wLjc4LDAuMjVsLTAuMTEsLTAuMjVsMC4zNSwtMC4xNWwwLjE4LC0wLjI2bDAuMDcsLTEuMDJsMC4zMywtMC41MmwwLjcyLC0wLjQybDAuNTIsMC4ybDAuMzMsLTAuMDhsMC43NiwtMC44NmwwLjk5LDAuMDJsMC4xMSwwLjQ4bDAuMTYsMC4ybDAuOTQsMC40NGwwLjM1LC0wLjA3bDEuNDYsLTEuNTZsMS40NCwtMS4yMWwwLjY4LC0wLjg1bDAuMDYsLTAuMmwtMC4wOCwtMS45OWwxLjA0LC0yLjMzbDEuMSwtMS4yM2wxLjYyLC0xLjE5bDAuMTEsLTAuMTRsMC4yOSwtMC44bDAuMDgsLTAuOTRsMC4zOCwtMC44MmwwLjAzLC0wLjE2bC0wLjEzLC0xLjM4bDAuMywtMi4xNmwwLjQ3LC0xLjUxbDAuNzMsLTEuMzFsMC4wNCwtMC4xMmwwLjE1LC0xLjUxbDAuMjEsLTEuNjZsMC44OSwtMS4xNmwxLjE2LC0wLjdsMS45LDAuNzlsMS42OSwwLjk1bDEuODEsMC4yNGwxLjg1LDAuNDhsMC4zNSwtMC4xNmwwLjcxLC0xLjQzbDAuMTYsLTAuMDlsMS4wMywwLjIzbDAuMTksLTAuMDJsMi42NSwtMS4xOWwwLjg2LDAuNDZsMC4xNywwLjAzbDAuODEsLTAuMDhsMC4yMywtMC4xNGwwLjMxLC0wLjVsMC43NSwtMC4xN2wxLjgzLDAuMjZsMS42NCwwLjA2bDAuNzIsLTAuMjFsMS4zOSwxLjlsMC4xNiwwLjExbDEuMTIsMC4zbDAuMjQsLTAuMDRsMC41OCwtMC4zNmwxLjA1LDAuMTVsMC4xNSwtMC4wMmwxLjE1LC0wLjQ0bDAuNDcsMC44NGwwLjA4LDAuMDlsMi4wOCwxLjU3WlwiLCBcIm5hbWVcIjogXCJEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSBDb25nb1wifSwgXCJDWlwiOiB7XCJwYXRoXCI6IFwiTTQ2My4yOSwxNTIuMjJsLTAuODgsLTAuNDdsLTAuMTgsLTAuMDNsLTEuMDgsMC4xNWwtMS44NiwtMC45NGwtMC4yMSwtMC4wMmwtMC44OCwwLjI0bC0wLjEzLDAuMDdsLTEuMjUsMS4xN2wtMS42MywtMC45MWwtMS4zOCwtMS4zNmwtMS4yMiwtMC43NWwtMC4yNCwtMS4yNGwtMC4zMywtMC43NWwxLjUzLC0wLjZsMC45OCwtMC44NGwxLjc0LC0wLjYybDAuMTEsLTAuMDdsMC40NywtMC40N2wwLjQ2LDAuMjdsMC4yNCwwLjAzbDAuOTYsLTAuM2wxLjA2LDAuOTVsMC4xNSwwLjA3bDEuNTcsMC4yNGwtMC4xLDAuNmwwLjE2LDAuMzJsMS4zNiwwLjY4bDAuNDEsLTAuMTVsMC4yOCwtMC42MmwxLjI5LDAuMjhsMC4xOSwwLjg0bDAuMjYsMC4yM2wxLjczLDAuMThsMC43NCwxLjAybC0wLjE3LDAuMGwtMC4yNSwwLjEzbC0wLjMyLDAuNDlsLTAuNDYsMC4xMWwtMC4yMiwwLjIzbC0wLjEzLDAuNTdsLTAuMzIsMC4xbC0wLjIsMC4yMmwtMC4wMywwLjE0bC0wLjY1LDAuMjVsLTEuMDUsLTAuMDVsLTAuMjgsMC4xN2wtMC4yMiwwLjQzWlwiLCBcIm5hbWVcIjogXCJDemVjaCBSZXB1YmxpY1wifSwgXCJDWVwiOiB7XCJwYXRoXCI6IFwiTTUwNS4wMywxOTMuNzVsLTEuNTEsMC42OGwtMS4wLC0wLjNsLTAuMzIsLTAuNjNsMC42OSwtMC4wNmwwLjQxLDAuMTNsMC4xOSwtMC4wbDAuNjIsLTAuMjJsMC4zMSwwLjAybDAuMDYsMC4yMmwwLjQ5LDAuMTdsMC4wNiwtMC4wMVpcIiwgXCJuYW1lXCI6IFwiQ3lwcnVzXCJ9LCBcIkNSXCI6IHtcInBhdGhcIjogXCJNMjEzLjAsMjYzLjg0bC0wLjk4LC0wLjRsLTAuMywtMC4zMWwwLjE2LC0wLjI0bDAuMDUsLTAuMjFsLTAuMDksLTAuNTZsLTAuMSwtMC4xOGwtMC43NiwtMC42NWwtMC45OSwtMC41bC0wLjc0LC0wLjI4bC0wLjEzLC0wLjU4bC0wLjEyLC0wLjE4bC0wLjY2LC0wLjQ1bC0wLjM0LC0wLjBsLTAuMTMsMC4zMWwwLjEzLDAuNTlsLTAuMTcsMC4yMWwtMC4zNCwtMC40MmwtMC4xNCwtMC4xbC0wLjcsLTAuMjJsLTAuMjMsLTAuMzRsMC4wMSwtMC42MmwwLjMxLC0wLjc0bC0wLjE0LC0wLjM4bC0wLjMsLTAuMTVsMC40NywtMC40bDEuNDgsMC42bDAuMjYsLTAuMDJsMC40NywtMC4yN2wwLjU4LDAuMTVsMC4zNSwwLjQ0bDAuMTcsMC4xMWwwLjc0LDAuMTdsMC4yNywtMC4wN2wwLjMsLTAuMjdsMC41MiwxLjA5bDAuOTcsMS4wMmwwLjc3LDAuNzFsLTAuNDEsMC4xbC0wLjIzLDAuM2wwLjAxLDEuMDJsMC4xMiwwLjI0bDAuMiwwLjE0bC0wLjA3LDAuMDVsLTAuMTEsMC4zbDAuMDgsMC4zN2wtMC4yMywwLjYzWlwiLCBcIm5hbWVcIjogXCJDb3N0YSBSaWNhXCJ9LCBcIkNVXCI6IHtcInBhdGhcIjogXCJNMjE1LjAxLDIyNi4wOWwyLjA4LDAuMThsMS45NCwwLjAzbDIuMjQsMC44NmwwLjk1LDAuOTJsMC4yNSwwLjA4bDIuMjIsLTAuMjhsMC43OSwwLjU1bDMuNjgsMi44MWwwLjE5LDAuMDZsMC43NywtMC4wM2wxLjE4LDAuNDJsLTAuMTIsMC40N2wwLjI3LDAuMzdsMS43OCwwLjFsMS41OSwwLjlsLTAuMTEsMC4yMmwtMS41LDAuM2wtMS42NCwwLjEzbC0xLjc1LC0wLjJsLTIuNjksMC4xOWwxLjAsLTAuODZsLTAuMDMsLTAuNDhsLTEuMDIsLTAuNjhsLTAuMTMsLTAuMDVsLTEuNTIsLTAuMTZsLTAuNzQsLTAuNjRsLTAuNTcsLTEuNDJsLTAuMywtMC4xOWwtMS4zNiwwLjFsLTIuMjMsLTAuNjdsLTAuNzEsLTAuNTJsLTAuMTQsLTAuMDZsLTMuMiwtMC40bC0wLjQyLC0wLjI1bDAuNTYsLTAuMzlsMC4xMiwtMC4zM2wtMC4yNywtMC4yMmwtMi40NiwtMC4xM2wtMC4yLDAuMDZsLTEuNzIsMS4zMWwtMC45NCwwLjAzbC0wLjI1LDAuMTVsLTAuMjksMC41M2wtMS4wNCwwLjI0bC0wLjI5LC0wLjA3bDAuNywtMC40M2wwLjEsLTAuMTFsMC41LC0wLjg3bDEuMDQsLTAuNTRsMS4yMywtMC40OWwxLjg2LC0wLjI1bDAuNjIsLTAuMjhaXCIsIFwibmFtZVwiOiBcIkN1YmFcIn0sIFwiU1pcIjoge1wicGF0aFwiOiBcIk01MDAuOTUsMzUzLjQxbC0wLjQxLDAuOTdsLTEuMTYsMC4yM2wtMS4yOSwtMS4yNmwtMC4wMiwtMC43MWwwLjYzLC0wLjkzbDAuMjMsLTAuN2wwLjQ3LC0wLjEybDEuMDQsMC40bDAuMzIsMS4wNWwwLjIsMS4wOFpcIiwgXCJuYW1lXCI6IFwiU3dhemlsYW5kXCJ9LCBcIlNZXCI6IHtcInBhdGhcIjogXCJNNTEwLjg0LDE5OS44M2wwLjA5LC0wLjExbDAuMDcsLTAuMmwtMC4wNCwtMS4wOGwwLjU2LC0xLjRsMS4zLC0xLjAxbDAuMSwtMC4zNGwtMC40MSwtMS4xMWwtMC4yNCwtMC4xOWwtMC44OSwtMC4xMWwtMC4yLC0xLjg0bDAuNTUsLTEuMDVsMS4zLC0xLjIybDAuMDksLTAuMTlsMC4wOSwtMS4wOWwwLjM5LDAuMjdsMC4yNSwwLjA0bDIuNjYsLTAuNzdsMS4zNSwwLjUybDIuMDYsLTAuMDFsMi45MywtMS4wOGwxLjM1LDAuMDRsMi4xNCwtMC4zNGwtMC44MywxLjE2bC0xLjMxLDAuNjhsLTAuMTYsMC4zbDAuMjMsMi4wM2wtMC45LDMuMjVsLTUuNDMsMi44N2wtNC43OSwyLjkxbC0yLjMyLC0wLjkyWlwiLCBcIm5hbWVcIjogXCJTeXJpYVwifSwgXCJLR1wiOiB7XCJwYXRoXCI6IFwiTTU5OS4wNCwxNzIuMTVsMC4zOCwtMC45bDEuNDMsLTAuMzdsNC4wNCwxLjAybDAuMzcsLTAuMjNsMC4zNiwtMS42NGwxLjE3LC0wLjUybDMuNDUsMS4yNGwwLjIsLTAuMGwwLjg2LC0wLjMxbDQuMDksMC4wOGwzLjYxLDAuMzFsMS4xOCwxLjAybDAuMTEsMC4wNmwxLjE5LDAuMzRsLTAuMTMsMC4yNmwtMy44NCwxLjU4bC0wLjEzLDAuMWwtMC44MSwxLjA4bC0zLjA4LDAuMzRsLTAuMjQsMC4xNmwtMC44NSwxLjdsLTIuNDMsLTAuMzdsLTAuMTQsMC4wMWwtMS43OSwwLjYxbC0yLjM5LDEuNGwtMC4xMiwwLjM5bDAuMjUsMC40OWwtMC40OCwwLjQ1bC00LjU3LDAuNDNsLTMuMDQsLTAuOTRsLTIuNDUsMC4xOGwwLjE0LC0xLjAybDIuNDIsMC40NGwwLjI3LC0wLjA4bDAuODEsLTAuODFsMS43NiwwLjI3bDAuMjEsLTAuMDVsMy4yMSwtMi4xNGwtMC4wMywtMC41MWwtMi45NywtMS41N2wtMC4yNiwtMC4wMWwtMS42NCwwLjY5bC0xLjM4LC0wLjg0bDEuODEsLTEuNjdsLTAuMDksLTAuNWwtMC40NiwtMC4xOFpcIiwgXCJuYW1lXCI6IFwiS3lyZ3l6c3RhblwifSwgXCJLRVwiOiB7XCJwYXRoXCI6IFwiTTUyMy4zLDI4Ny4wNGwwLjA2LDAuMTdsMS4yOSwxLjhsLTEuNDYsMC44NGwtMC4xMSwwLjExbC0wLjU1LDAuOTNsLTAuODEsMC4xNmwtMC4yNCwwLjI0bC0wLjM0LDEuNjlsLTAuODEsMS4wNmwtMC40NiwxLjU4bC0wLjc2LDAuNjNsLTMuMywtMi4zbC0wLjE2LC0xLjMybC0wLjE1LC0wLjIzbC05LjM1LC01LjI4bC0wLjAyLC0yLjRsMS45MiwtMi42M2wwLjkxLC0xLjgzbDAuMDEsLTAuMjRsLTEuMDksLTIuODZsLTAuMjksLTEuMjRsLTEuMDksLTEuNjNsMi45MywtMi44NWwwLjkyLDAuM2wwLjAsMS4xOWwwLjA5LDAuMjJsMC44NiwwLjgzbDAuMjEsMC4wOGwxLjY1LDAuMGwzLjA5LDIuMDhsMC4xNiwwLjA1bDAuNzksMC4wM2wwLjU0LC0wLjA2bDAuNTgsMC4yOGwxLjY3LDAuMmwwLjI4LC0wLjEybDAuNjksLTAuOThsMi4wNCwtMC45NGwwLjg2LDAuNzNsMC4xOSwwLjA3bDEuMSwwLjBsLTEuODIsMi4zNmwtMC4wNiwwLjE4bDAuMDMsOS4xMlpcIiwgXCJuYW1lXCI6IFwiS2VueWFcIn0sIFwiU1NcIjoge1wicGF0aFwiOiBcIk01MDUuNywyNjEuMzlsMC4wMiwxLjY0bC0wLjI3LDAuNTVsLTEuMTUsMC4wNWwtMC4yNCwwLjE1bC0wLjg1LDEuNDRsMC4yMiwwLjQ1bDEuNDQsMC4xN2wxLjE1LDEuMTJsMC40MiwwLjk1bDAuMTQsMC4xNWwxLjA2LDAuNTRsMS4zMywyLjQ1bC0zLjA2LDIuOThsLTEuNDQsMS4wOGwtMS43NSwwLjAxbC0xLjkyLDAuNTZsLTEuNSwtMC41M2wtMC4yNywwLjAzbC0wLjg1LDAuNTdsLTEuOTgsLTEuNWwtMC41NiwtMS4wMmwtMC4zNywtMC4xM2wtMS4zMiwwLjVsLTEuMDgsLTAuMTVsLTAuMiwwLjA0bC0wLjU2LDAuMzVsLTAuOSwtMC4yNGwtMS40NCwtMS45N2wtMC4zOSwtMC43N2wtMC4xMywtMC4xM2wtMS43OCwtMC45NGwtMC42NSwtMS41bC0xLjA4LC0xLjEybC0xLjU3LC0xLjIybC0wLjAyLC0wLjY4bC0wLjEyLC0wLjIzbC0xLjM3LC0xLjAybC0xLjE3LC0wLjY4bDAuMiwtMC4wOGwwLjg2LC0wLjQ4bDAuMTQsLTAuMThsMC42MywtMi4yMmwwLjYsLTEuMDJsMS40NywtMC4yOGwwLjM1LDAuNTZsMS4yOSwxLjQ4bDAuMTQsMC4wOWwwLjY5LDAuMjJsMC4yMiwtMC4wMmwwLjgzLC0wLjRsMS41OCwwLjA4bDAuMjYsMC4zOWwwLjI1LDAuMTNsMi40OSwwLjBsMC4zLC0wLjI1bDAuMDYsLTAuMzVsMS4xMywtMC40MmwwLjE4LC0wLjE4bDAuMjIsLTAuNjNsMC42OCwtMC4zOGwxLjk1LDEuMzdsMC4yMywwLjA1bDEuMjksLTAuMjZsMC4xOSwtMC4xMmwxLjIzLC0xLjhsMS4zNiwtMS4zN2wwLjA4LC0wLjI1bC0wLjIxLC0xLjUybC0wLjA2LC0wLjE1bC0wLjI1LC0wLjNsMC45NCwtMC4wOGwwLjI2LC0wLjIxbDAuMSwtMC4zMmwwLjYsMC4wOWwtMC4yNSwxLjY3bDAuMywxLjgzbDAuMTEsMC4xOWwxLjIyLDAuOTRsMC4yNSwwLjczbC0wLjA0LDEuMmwwLjI2LDAuMzFsMC4wOSwwLjAxWlwiLCBcIm5hbWVcIjogXCJTb3V0aCBTdWRhblwifSwgXCJTUlwiOiB7XCJwYXRoXCI6IFwiTTI3OC4xLDI3MC4yNmwyLjcxLDAuNDVsMC4zMSwtMC4xNGwwLjE5LC0wLjMybDEuODIsLTAuMTZsMi4yNSwwLjU2bC0xLjA5LDEuODFsLTAuMDQsMC4xOWwwLjIsMS43MmwwLjA1LDAuMTNsMC45LDEuMzVsLTAuMzksMC45OWwtMC4yMSwxLjA5bC0wLjQ4LDAuOGwtMS4yLC0wLjQ0bC0wLjE3LC0wLjAxbC0xLjEyLDAuMjRsLTAuOTUsLTAuMjFsLTAuMzUsMC4ybC0wLjI1LDAuNzNsMC4wNSwwLjI5bDAuMywwLjM1bC0wLjA2LDAuMTNsLTEuMDEsLTAuMTVsLTEuNDIsLTIuMDNsLTAuMzIsLTEuMzZsLTAuMjksLTAuMjNsLTAuNjMsLTAuMGwtMC45NSwtMS41NmwwLjQxLC0xLjE2bDAuMDEsLTAuMTdsLTAuMDgsLTAuMzVsMS4yOSwtMC41NmwwLjE4LC0wLjIybDAuMzUsLTEuOTdaXCIsIFwibmFtZVwiOiBcIlN1cmluYW1lXCJ9LCBcIktIXCI6IHtcInBhdGhcIjogXCJNNjgwLjI4LDI1Ny44OWwtMC45MywtMS4ybC0xLjI0LC0yLjU2bC0wLjU2LC0yLjlsMS40NSwtMS45MmwzLjA3LC0wLjQ2bDIuMjYsMC4zNWwyLjAzLDAuOThsMC4zOCwtMC4xMWwxLjAsLTEuNTVsMS44NiwwLjc5bDAuNTIsMS41MWwtMC4yOCwyLjgybC00LjA1LDEuODhsLTAuMTIsMC40NWwwLjc5LDEuMWwtMi4yLDAuMTdsLTIuMDgsMC45OGwtMS44OSwtMC4zM1pcIiwgXCJuYW1lXCI6IFwiQ2FtYm9kaWFcIn0sIFwiU1ZcIjoge1wicGF0aFwiOiBcIk0xOTcuMDIsMjQ4Ljg5bDAuMTgsLTAuMDVsMC41OSwwLjE3bDAuNTUsMC41MWwwLjY0LDAuMzVsMC4wNiwwLjIybDAuMzcsMC4yMWwxLjAxLC0wLjI4bDAuMzgsMC4xM2wwLjE2LDAuMTNsLTAuMTQsMC44MWwtMC4xOCwwLjM4bC0xLjIyLC0wLjAzbC0wLjg0LC0wLjIzbC0xLjExLC0wLjUybC0xLjMxLC0wLjE1bC0wLjQ5LC0wLjM4bDAuMDIsLTAuMDhsMC43NiwtMC41N2wwLjQ2LC0wLjI3bDAuMTEsLTAuMzVaXCIsIFwibmFtZVwiOiBcIkVsIFNhbHZhZG9yXCJ9LCBcIlNLXCI6IHtcInBhdGhcIjogXCJNNDY4LjAxLDE1MC4wMmwwLjA1LDAuMDdsMC4zNiwwLjFsMC44NSwtMC4zN2wxLjEyLDEuMDJsMC4zMywwLjA1bDEuMzgsLTAuNjVsMS4wNywwLjNsMC4xNiwwLjBsMS42OSwtMC40M2wxLjk1LDEuMDJsLTAuNTEsMC42NGwtMC40NSwxLjJsLTAuMzIsMC4ybC0yLjU1LC0wLjkzbC0wLjE3LC0wLjAxbC0wLjgyLDAuMmwtMC4xNywwLjExbC0wLjUzLDAuNjhsLTAuOTQsMC4zMmwtMC4xNCwtMC4xMWwtMC4yOSwtMC4wNGwtMS4xOCwwLjQ4bC0wLjk1LDAuMDlsLTAuMjYsMC4yMWwtMC4xNSwwLjQ3bC0xLjg0LDAuMzRsLTAuODIsLTAuMzFsLTEuMTQsLTAuNzNsLTAuMiwtMC44OWwwLjQyLC0wLjg0bDAuOTEsMC4wNWwwLjEyLC0wLjAybDAuODYsLTAuMzNsMC4xOCwtMC4yMWwwLjAzLC0wLjEzbDAuMzIsLTAuMWwwLjIsLTAuMjJsMC4xMiwtMC41NWwwLjM5LC0wLjFsMC4xOCwtMC4xM2wwLjMsLTAuNDVsMC40MywtMC4wWlwiLCBcIm5hbWVcIjogXCJTbG92YWtpYVwifSwgXCJLUlwiOiB7XCJwYXRoXCI6IFwiTTczNy4zMSwxODUuNzJsMC44NCwwLjA4bDAuMjcsLTAuMTJsMC44OSwtMS4ybDEuNjMsLTAuMTNsMS4xLC0wLjJsMC4yMSwtMC4xNmwwLjEyLC0wLjI0bDEuODYsMi45NWwwLjU5LDEuNzlsMC4wMiwzLjE3bC0wLjg0LDEuMzhsLTIuMjMsMC41NWwtMS45NSwxLjE0bC0xLjkxLDAuMjFsLTAuMjIsLTEuMjFsMC40NSwtMi4wN2wtMC4wMSwtMC4xN2wtMC45OSwtMi42N2wxLjU0LC0wLjRsMC4xNywtMC40NmwtMS41NSwtMi4yNFpcIiwgXCJuYW1lXCI6IFwiU291dGggS29yZWFcIn0sIFwiU0lcIjoge1wicGF0aFwiOiBcIk00NTUuNzcsMTU5LjU5bDEuNzksMC4yMWwwLjE4LC0wLjA0bDEuMiwtMC42OGwyLjEyLC0wLjA4bDAuMjEsLTAuMWwwLjM4LC0wLjQybDAuMSwwLjAxbDAuMjgsMC42MmwtMS43MSwwLjcxbC0wLjE4LDAuMjJsLTAuMjEsMS4xbC0wLjcxLDAuMjZsLTAuMiwwLjI4bDAuMDEsMC41NWwtMC41OSwtMC4wNGwtMC43OSwtMC40N2wtMC4zOCwwLjA2bC0wLjM2LDAuNDFsLTAuODQsLTAuMDVsMC4wNSwtMC4xNWwtMC41NiwtMS4yNGwwLjIxLC0xLjE3WlwiLCBcIm5hbWVcIjogXCJTbG92ZW5pYVwifSwgXCJLUFwiOiB7XCJwYXRoXCI6IFwiTTc0Ny43NiwxNzIuMDJsLTAuMjMsLTAuMDRsLTAuMjYsMC4wOGwtMS4wOSwxLjAybC0wLjc4LDEuMDZsLTAuMDYsMC4xOWwwLjA5LDEuOTVsLTEuMTIsMC41N2wtMC41MywwLjU4bC0wLjg4LDAuODJsLTEuNjksMC41MWwtMS4wOSwwLjc5bC0wLjEyLDAuMjJsLTAuMDcsMS4xN2wtMC4yMiwwLjI1bDAuMDksMC40N2wwLjk2LDAuNDZsMS4yMiwxLjFsLTAuMTksMC4zN2wtMC45MSwwLjE2bC0xLjc1LDAuMTRsLTAuMjIsMC4xMmwtMC44NywxLjE4bC0wLjk1LC0wLjA5bC0wLjMsMC4xOGwtMC45NywtMC40NGwtMC4zOSwwLjEzbC0wLjI1LDAuNDRsLTAuMjksMC4wOWwtMC4wMywtMC4ybC0wLjE4LC0wLjIzbC0wLjYyLC0wLjI1bC0wLjQzLC0wLjI5bDAuNTIsLTAuOTdsMC41MiwtMC4zbDAuMTMsLTAuMzhsLTAuMTgsLTAuNDJsMC41OSwtMS40N2wwLjAxLC0wLjIxbC0wLjE2LC0wLjQ4bC0wLjIyLC0wLjJsLTEuNDEsLTAuMzFsLTAuODIsLTAuNTVsMS43NCwtMS42MmwyLjczLC0xLjU4bDEuNjIsLTEuOTZsMC45NiwwLjc2bDAuMTcsMC4wNmwyLjE3LDAuMTFsMC4zMSwtMC4zN2wtMC4zMiwtMS4zMWwzLjYxLC0xLjIxbDAuMTYsLTAuMTNsMC43OSwtMS4zNGwxLjI1LDEuMzhaXCIsIFwibmFtZVwiOiBcIk5vcnRoIEtvcmVhXCJ9LCBcIlNPXCI6IHtcInBhdGhcIjogXCJNNTQzLjgsMjU2LjQ4bDAuNjEsLTAuMDVsMS4xNCwtMC4zN2wxLjMxLC0wLjI1bDAuMTIsLTAuMDVsMS4xMSwtMC44MWwwLjU3LC0wLjBsMC4wMywwLjM5bC0wLjIzLDEuNDlsMC4wMSwxLjI1bC0wLjUyLDAuOTJsLTAuNywyLjcxbC0xLjE5LDIuNzlsLTEuNTQsMy4ybC0yLjEzLDMuNjZsLTIuMTIsMi43OWwtMi45MiwzLjM5bC0yLjQ3LDIuMGwtMy43NiwyLjVsLTIuMzMsMS45bC0yLjc3LDMuMDZsLTAuNjEsMS4zNWwtMC4yOCwwLjI5bC0xLjIyLC0xLjY5bC0wLjAzLC04LjkybDIuMTIsLTIuNzZsMC41OSwtMC42OGwxLjQ3LC0wLjA0bDAuMTgsLTAuMDZsMi4xNSwtMS43MWwzLjE2LC0wLjExbDAuMjEsLTAuMDlsNy4wOCwtNy41NWwxLjc2LC0yLjEybDEuMTQsLTEuNTdsMC4wNiwtMC4xOGwwLjAxLC00LjY3WlwiLCBcIm5hbWVcIjogXCJTb21hbGlhXCJ9LCBcIlNOXCI6IHtcInBhdGhcIjogXCJNMzc5LjI4LDI1MC4zNGwtMC45NSwtMS44MmwtMC4wOSwtMC4xbC0wLjgzLC0wLjZsMC42MiwtMC4yOGwwLjEzLC0wLjExbDEuMjEsLTEuOGwwLjYsLTEuMzFsMC43MSwtMC42OGwxLjA5LDAuMmwwLjE4LC0wLjAybDEuMTcsLTAuNTNsMS4yNSwtMC4wM2wxLjE3LDAuNzNsMS41OSwwLjY1bDEuNDcsMS44M2wxLjU5LDEuN2wwLjEyLDEuNTZsMC40OSwxLjQ2bDAuMSwwLjE0bDAuODUsMC42NWwwLjE4LDAuODJsLTAuMDgsMC41N2wtMC4xMywwLjA1bC0xLjI5LC0wLjE5bC0wLjI5LDAuMTNsLTAuMTEsMC4xNmwtMC4zNSwwLjA0bC0xLjgzLC0wLjYxbC01Ljg0LC0wLjEzbC0wLjEyLDAuMDJsLTAuNiwwLjI2bC0wLjg3LC0wLjA2bC0xLjAxLDAuMzJsLTAuMjYsLTEuMjZsMS45LDAuMDRsMC4xNiwtMC4wNGwwLjU0LC0wLjMybDAuMzcsLTAuMDJsMC4xNSwtMC4wNWwwLjc4LC0wLjVsMC45MiwwLjQ2bDAuMTIsMC4wM2wxLjA5LDAuMDRsMC4xNSwtMC4wM2wxLjA4LC0wLjU3bDAuMTEsLTAuNDRsLTAuNTEsLTAuNzRsLTAuMzksLTAuMWwtMC43NiwwLjM5bC0wLjYyLC0wLjAxbC0wLjkyLC0wLjU4bC0wLjE4LC0wLjA1bC0wLjc5LDAuMDRsLTAuMiwwLjA5bC0wLjQ4LDAuNTFsLTIuNDEsMC4wNlpcIiwgXCJuYW1lXCI6IFwiU2VuZWdhbFwifSwgXCJTTFwiOiB7XCJwYXRoXCI6IFwiTTM5Mi4xOSwyNjcuNTNsLTAuNDQsLTAuMTJsLTEuNzMsLTAuOTdsLTEuMjQsLTEuMjhsLTAuNCwtMC44NGwtMC4yNywtMS42NWwxLjIxLC0xLjBsMC4wOSwtMC4xMmwwLjI3LC0wLjY2bDAuMzIsLTAuNDFsMC41NiwtMC4wNWwwLjE2LC0wLjA3bDAuNSwtMC40MWwxLjc1LDAuMGwwLjU5LDAuNzdsMC40OSwwLjk2bC0wLjA3LDAuNjRsMC4wNCwwLjE5bDAuMzYsMC41OGwtMC4wMywwLjg0bDAuMjQsMC4ybC0wLjY0LDAuNjVsLTEuMTMsMS4zN2wtMC4wNiwwLjE0bC0wLjEyLDAuNjZsLTAuNDMsMC41OFpcIiwgXCJuYW1lXCI6IFwiU2llcnJhIExlb25lXCJ9LCBcIlNCXCI6IHtcInBhdGhcIjogXCJNODI2Ljc0LDMxMS41MWwwLjIzLDAuMjlsLTAuOTUsLTAuMDFsLTAuMzksLTAuNjNsMC42NSwwLjI3bDAuNDUsMC4wOVpNODI1LjAxLDMwOC41MmwtMS4xOCwtMS4zOWwtMC4zNywtMS4wNmwwLjI0LDAuMGwwLjgyLDEuODRsMC40OSwwLjZaTTgyMy4yMSwzMDkuNDJsLTAuNDQsMC4wM2wtMS40MywtMC4yNGwtMC4zMiwtMC4yNGwwLjA4LC0wLjVsMS4yOSwwLjMxbDAuNzIsMC40N2wwLjExLDAuMThaTTgxNy45LDMwMy44MWwyLjU5LDEuNDRsMC4zLDAuNDFsLTEuMjEsLTAuNjZsLTEuMzQsLTAuODlsLTAuMzQsLTAuM1pNODEzLjc3LDMwMi40bDAuNDgsMC4zNGwwLjEsMC4wOGwtMC4zMywtMC4xN2wtMC4yNSwtMC4yNVpcIiwgXCJuYW1lXCI6IFwiU29sb21vbiBJc2xhbmRzXCJ9LCBcIlNBXCI6IHtcInBhdGhcIjogXCJNNTI4LjI0LDI0My4xbC0wLjIsLTAuNjlsLTAuMDcsLTAuMTJsLTAuNjksLTAuNzFsLTAuMTgsLTAuOTRsLTAuMTIsLTAuMTlsLTEuMjQsLTAuODlsLTEuMjgsLTIuMDlsLTAuNywtMi4wOGwtMC4wNywtMC4xMWwtMS43MywtMS43OWwtMC4xMSwtMC4wN2wtMS4wMywtMC4zOWwtMS41NywtMi4zNmwtMC4yNywtMS43MmwwLjEsLTEuNTNsLTAuMDMsLTAuMTVsLTEuNDQsLTIuOTNsLTEuMjUsLTEuMTNsLTEuMzQsLTAuNTZsLTAuNzIsLTEuMzNsMC4xMSwtMC40OWwtMC4wMiwtMC4ybC0wLjcsLTEuMzhsLTAuMDgsLTAuMWwtMC42OCwtMC41NmwtMC45NywtMS45OGwtMi44LC00LjAzbC0wLjI1LC0wLjEzbC0wLjg1LDAuMDFsMC4yOSwtMS4xMWwwLjEyLC0wLjk3bDAuMjMsLTAuODFsMi41MiwwLjM5bDAuMjMsLTAuMDZsMS4wOCwtMC44NGwwLjYsLTAuOTVsMS43OCwtMC4zNWwwLjIyLC0wLjE3bDAuMzcsLTAuODNsMC43NCwtMC40MmwwLjA4LC0wLjQ2bC0yLjE3LC0yLjRsNC41NSwtMS4yNmwwLjEyLC0wLjA2bDAuMzYsLTAuMzJsMi44MywwLjcxbDMuNjcsMS45MWw3LjA0LDUuNWwwLjE3LDAuMDZsNC42NCwwLjIybDIuMDYsMC4yNGwwLjU1LDEuMTVsMC4yOCwwLjE3bDEuNTYsLTAuMDZsMC45LDIuMTVsMC4xNCwwLjE1bDEuMTQsMC41N2wwLjM5LDAuODVsMC4xMSwwLjEzbDEuNTksMS4wNmwwLjEyLDAuOTFsLTAuMjMsMC44M2wwLjAxLDAuMThsMC4zMiwwLjlsMC4wNywwLjExbDAuNjgsMC43bDAuMzMsMC44NmwwLjM3LDAuNjVsMC4wOSwwLjFsMC43NiwwLjUzbDAuMjUsMC4wNGwwLjQ1LC0wLjEybDAuMzUsMC43NWwwLjEsMC42M2wwLjk2LDIuNjhsMC4yMywwLjE5bDcuNTMsMS4zM2wwLjI3LC0wLjA5bDAuMjQsLTAuMjZsMC44NywxLjQxbC0xLjU4LDQuOTZsLTcuMzQsMi41NGwtNy4yOCwxLjAybC0yLjM0LDEuMTdsLTAuMTIsMC4xbC0xLjc0LDIuNjNsLTAuODYsMC4zMmwtMC40OSwtMC42OGwtMC4yOCwtMC4xMmwtMC45MiwwLjEybC0yLjMyLC0wLjI1bC0wLjQxLC0wLjIzbC0wLjE1LC0wLjA0bC0yLjg5LDAuMDZsLTAuNjMsMC4ybC0wLjkxLC0wLjU5bC0wLjQzLDAuMTFsLTAuNjYsMS4yN2wtMC4wMywwLjIxbDAuMjEsMC44OWwtMC42LDAuNDVaXCIsIFwibmFtZVwiOiBcIlNhdWRpIEFyYWJpYVwifSwgXCJTRVwiOiB7XCJwYXRoXCI6IFwiTTQ3Ni40Miw5MC40NGwtMC4xNSwwLjFsLTIuNDMsMi44NmwtMC4wNywwLjI0bDAuMzYsMi4zMWwtMy44NCwzLjFsLTQuODMsMy4zOGwtMC4xMSwwLjE1bC0xLjgyLDUuNDVsMC4wMywwLjI2bDEuNzgsMi42OGwyLjI3LDEuOTlsLTIuMTMsMy44OGwtMi40OSwwLjgybC0wLjIsMC4yNGwtMC45NSw2LjA1bC0xLjMyLDMuMDlsLTIuODIsLTAuMzJsLTAuMywwLjE2bC0xLjM0LDIuNjRsLTIuNDgsMC4xNGwtMC43NiwtMy4xNWwtMi4wOSwtNC4wNGwtMS44NSwtNS4wMWwxLjAzLC0xLjk4bDIuMDYsLTIuNTNsMC4wNiwtMC4xM2wwLjgzLC00LjQ1bC0wLjA2LC0wLjI1bC0xLjU0LC0xLjg2bC0wLjE1LC01LjBsMS41MiwtMy40OGwyLjI4LDAuMDZsMC4yNywtMC4xNmwwLjg3LC0xLjU5bC0wLjAxLC0wLjMxbC0wLjgsLTEuMjFsMy43OSwtNS42M2w0LjA3LC03LjU0bDIuMjMsMC4wMWwwLjI5LC0wLjIybDAuNTksLTIuMTVsNC40NiwwLjY2bDAuMzQsLTAuMjZsMC4zNCwtMi42NGwxLjIxLC0wLjE0bDMuMjQsMi4wOGwzLjc4LDIuODVsMC4wNiw2LjM3bDAuMDMsMC4xNGwwLjY3LDEuMjlsLTMuOTUsMS4wN1pcIiwgXCJuYW1lXCI6IFwiU3dlZGVuXCJ9LCBcIlNEXCI6IHtcInBhdGhcIjogXCJNNTA1Ljk4LDI1OS43NWwtMC4zMSwtMC45bC0wLjEsLTAuMTRsLTEuMiwtMC45M2wtMC4yNywtMS42NmwwLjI5LC0xLjgzbC0wLjI1LC0wLjM0bC0xLjE2LC0wLjE3bC0wLjMzLDAuMjFsLTAuMTEsMC4zN2wtMS4zLDAuMTFsLTAuMjEsMC40OWwwLjU1LDAuNjhsMC4xOCwxLjI5bC0xLjMxLDEuMzNsLTEuMTgsMS43MmwtMS4wNCwwLjIxbC0yLjAsLTEuNGwtMC4zMiwtMC4wMmwtMC45NSwwLjUybC0wLjE0LDAuMTZsLTAuMjEsMC42bC0xLjE2LDAuNDNsLTAuMTksMC4yM2wtMC4wNCwwLjI3bC0yLjA4LDAuMGwtMC4yNSwtMC4zOWwtMC4yNCwtMC4xM2wtMS44MSwtMC4wOWwtMC4xNCwwLjAzbC0wLjgsMC4zOGwtMC40OSwtMC4xNmwtMS4yMiwtMS4zOWwtMC40MiwtMC42N2wtMC4zMSwtMC4xNGwtMS44MSwwLjM1bC0wLjIsMC4xNGwtMC43MiwxLjI0bC0wLjYxLDIuMTRsLTAuNzMsMC40bC0wLjYyLDAuMjJsLTAuODMsLTAuNjhsLTAuMTIsLTAuNmwwLjM4LC0wLjk3bDAuMDEsLTEuMTRsLTAuMDgsLTAuMmwtMS4zOSwtMS41M2wtMC4yNSwtMC45N2wwLjAzLC0wLjU3bC0wLjExLC0wLjI1bC0wLjgxLC0wLjY2bC0wLjAzLC0xLjM0bC0wLjA0LC0wLjE0bC0wLjUyLC0wLjk4bC0wLjMxLC0wLjE1bC0wLjQyLDAuMDdsMC4xMiwtMC40NGwwLjYzLC0xLjAzbDAuMDMsLTAuMjNsLTAuMjQsLTAuODhsMC42OSwtMC42NmwwLjAyLC0wLjQxbC0wLjQsLTAuNDZsMC41OCwtMS4zOWwxLjA0LC0xLjcxbDEuOTcsMC4xNmwwLjMyLC0wLjNsLTAuMTIsLTEwLjI0bDAuMDIsLTAuOGwyLjU5LC0wLjAxbDAuMywtMC4zbDAuMCwtNC45MmwyOS4xOSwwLjBsMC42OCwyLjE3bC0wLjQsMC4zNWwtMC4xLDAuMjdsMC4zNiwyLjY5bDAuOTMsMy4xNWwwLjEyLDAuMTZsMi4wNSwxLjRsLTAuOTksMS4xNWwtMS43NSwwLjRsLTAuMTUsMC4wOGwtMC43OSwwLjc5bC0wLjA4LDAuMTdsLTAuMjQsMS42OWwtMS4wNywzLjc1bC0wLjAsMC4xNmwwLjI1LDAuOTZsLTAuMzgsMi4xbC0wLjk4LDIuNDFsLTEuNTIsMS4zbC0xLjA3LDEuOTRsLTAuMjUsMC45OWwtMS4wOCwwLjY0bC0wLjEzLDAuMThsLTAuNDYsMS42NVpcIiwgXCJuYW1lXCI6IFwiU3VkYW5cIn0sIFwiRE9cIjoge1wicGF0aFwiOiBcIk0yNDEuNywyMzQuOTdsMC4xNSwtMC4yMmwxLjczLDAuMDFsMS40MywwLjY0bDAuMTUsMC4wM2wwLjQ1LC0wLjA0bDAuMzYsMC43NGwwLjI4LDAuMTdsMS4wMiwtMC4wNGwtMC4wNCwwLjQzbDAuMjcsMC4zM2wxLjAzLDAuMDlsMC45MSwwLjdsLTAuNTcsMC42NGwtMC45OSwtMC40N2wtMC4xNiwtMC4wM2wtMS4xMSwwLjExbC0wLjc5LC0wLjEybC0wLjI2LDAuMDlsLTAuMzgsMC40bC0wLjY2LDAuMTFsLTAuMjgsLTAuNDVsLTAuMzgsLTAuMTJsLTAuODMsMC4zN2wtMC4xNCwwLjEzbC0wLjg1LDEuNDlsLTAuMjcsLTAuMTdsLTAuMSwtMC41OGwwLjA1LC0wLjY3bC0wLjA3LC0wLjIxbC0wLjQ0LC0wLjUzbDAuMzUsLTAuMjVsMC4xMiwtMC4xOWwwLjE5LC0xLjBsLTAuMiwtMS40WlwiLCBcIm5hbWVcIjogXCJEb21pbmljYW4gUmVwdWJsaWNcIn0sIFwiREpcIjoge1wicGF0aFwiOiBcIk01MjguNzgsMjUzLjM2bDAuMzQsMC40NWwtMC4wNiwwLjc2bC0xLjI2LDAuNTRsLTAuMDUsMC41M2wwLjgyLDAuNTNsLTAuNTcsMC44M2wtMC4zLC0wLjI1bC0wLjI3LC0wLjA1bC0wLjU2LDAuMTdsLTEuMDcsLTAuMDNsLTAuMDQsLTAuNTZsLTAuMTYsLTAuNTZsMC43NiwtMS4wN2wwLjc2LC0wLjk3bDAuODksMC4xOGwwLjI1LC0wLjA2bDAuNTEsLTAuNDJaXCIsIFwibmFtZVwiOiBcIkRqaWJvdXRpXCJ9LCBcIkRLXCI6IHtcInBhdGhcIjogXCJNNDUyLjQsMTI5LjA3bC0xLjI3LDIuMzlsLTIuMjUsLTEuNjlsLTAuMjYsLTEuMDhsMy4xNSwtMS4wbDAuNjMsMS4zOVpNNDQ3Ljg3LDEyNi4yNWwtMC4zNSwwLjc2bC0wLjQ3LC0wLjI0bC0wLjM4LDAuMDlsLTEuOCwyLjUzbC0wLjAzLDAuMjlsMC41NiwxLjRsLTEuMjIsMC40bC0xLjY4LC0wLjQxbC0wLjkyLC0xLjc2bC0wLjA3LC0zLjQ3bDAuMzgsLTAuODhsMC42MiwtMC45M2wyLjA3LC0wLjIxbDAuMTksLTAuMWwwLjg0LC0wLjk1bDEuNSwtMC43NmwtMC4wNiwxLjI2bC0wLjcsMS4xbC0wLjAzLDAuMjVsMC4zLDEuMGwwLjE4LDAuMTlsMS4wNiwwLjQyWlwiLCBcIm5hbWVcIjogXCJEZW5tYXJrXCJ9LCBcIkRFXCI6IHtcInBhdGhcIjogXCJNNDQ1LjUxLDEzMS42OWwwLjAzLDAuOTRsMC4yMSwwLjI4bDIuMzIsMC43NGwtMC4wMiwxLjBsMC4zNywwLjNsMi41NSwtMC42NWwxLjM2LC0wLjg5bDIuNjMsMS4yN2wxLjA5LDEuMDFsMC41MSwxLjUxbC0wLjYsMC43OGwtMC4wLDAuMzZsMC44OCwxLjE3bDAuNTgsMS42OGwtMC4xOCwxLjA4bDAuMDMsMC4xOGwwLjg3LDEuODFsLTAuNjYsMC4ybC0wLjU1LC0wLjMybC0wLjM2LDAuMDVsLTAuNTgsMC41OGwtMS43MywwLjYybC0wLjk5LDAuODRsLTEuNzcsMC43bC0wLjE2LDAuNGwwLjQyLDAuOTRsMC4yNiwxLjM0bDAuMTQsMC4ybDEuMjUsMC43NmwxLjIyLDEuMmwtMC43MSwxLjJsLTAuODEsMC4zN2wtMC4xNywwLjMybDAuMzQsMS45OWwtMC4wNCwwLjA5bC0wLjQ3LC0wLjM5bC0wLjE3LC0wLjA3bC0xLjIsLTAuMWwtMS44NSwwLjU3bC0yLjE1LC0wLjEzbC0wLjI5LDAuMThsLTAuMjEsMC41bC0wLjk2LC0wLjY3bC0wLjI0LC0wLjA1bC0wLjY3LDAuMTZsLTIuNiwtMC45NGwtMC4zNCwwLjFsLTAuNDIsMC41N2wtMS42NCwtMC4wMmwwLjI2LC0xLjg4bDEuMjQsLTIuMTVsLTAuMjEsLTAuNDVsLTMuNTQsLTAuNThsLTAuOTgsLTAuNzFsMC4xMiwtMS4yNmwtMC4wNSwtMC4ybC0wLjQ0LC0wLjY0bDAuMjcsLTIuMThsLTAuMzgsLTMuMTRsMS4xNywtMC4wbDAuMjcsLTAuMTdsMC42MywtMS4yNmwwLjY1LC0zLjE3bC0wLjAyLC0wLjE3bC0wLjQxLC0xLjBsMC4zMiwtMC40N2wxLjc3LC0wLjE2bDAuMzcsMC42bDAuNDcsMC4wNmwxLjcsLTEuNjlsMC4wNiwtMC4zM2wtMC41NSwtMS4yNGwtMC4wOSwtMS41MWwxLjUsMC4zNmwwLjE2LC0wLjAxbDEuMjIsLTAuNFpcIiwgXCJuYW1lXCI6IFwiR2VybWFueVwifSwgXCJZRVwiOiB7XCJwYXRoXCI6IFwiTTU1My41MywyNDIuNjVsLTEuNTEsMC41OGwtMC4xNywwLjE2bC0wLjQ4LDEuMTRsLTAuMDcsMC43OWwtMi4zMSwxLjBsLTMuOTgsMS4xOWwtMi4yOCwxLjhsLTAuOTcsMC4xMmwtMC43LC0wLjE0bC0wLjIzLDAuMDVsLTEuNDIsMS4wM2wtMS41MSwwLjQ3bC0yLjA3LDAuMTNsLTAuNjgsMC4xNWwtMC4xNywwLjFsLTAuNDksMC42bC0wLjU3LDAuMTZsLTAuMTgsMC4xM2wtMC4zLDAuNDlsLTEuMDYsLTAuMDVsLTAuMTMsMC4wMmwtMC43MywwLjMybC0xLjQ4LC0wLjExbC0wLjU1LC0xLjI2bDAuMDcsLTEuMzJsLTAuMDQsLTAuMTZsLTAuMzksLTAuNzJsLTAuNDgsLTEuODVsLTAuNTIsLTAuNzlsMC4wOCwtMC4wMmwwLjIyLC0wLjM2bC0wLjIzLC0xLjA1bDAuMjQsLTAuMzlsMC4wNCwtMC4xOWwtMC4wOSwtMC45NWwwLjk2LC0wLjcybDAuMTEsLTAuMzFsLTAuMjMsLTAuOThsMC40NiwtMC44OGwwLjc1LDAuNDlsMC4yNiwwLjAzbDAuNjMsLTAuMjJsMi43NiwtMC4wNmwwLjUsMC4yNWwyLjQyLDAuMjZsMC44NSwtMC4xMWwwLjUyLDAuNzFsMC4zNSwwLjFsMS4xNywtMC40M2wwLjE1LC0wLjEybDEuNzUsLTIuNjRsMi4yMiwtMS4xMWw2Ljk1LC0wLjk2bDIuNTUsNS41OFpcIiwgXCJuYW1lXCI6IFwiWWVtZW5cIn0sIFwiQVRcIjoge1wicGF0aFwiOiBcIk00NjMuMTcsMTU0LjE1bC0wLjE0LDAuOTlsLTEuMTUsMC4wMWwtMC4yNCwwLjQ3bDAuMzksMC41NmwtMC43NSwxLjg0bC0wLjM2LDAuNGwtMi4wNiwwLjA3bC0wLjE0LDAuMDRsLTEuMTgsMC42N2wtMS45NiwtMC4yM2wtMy40MywtMC43OGwtMC41LC0wLjk3bC0wLjMzLC0wLjE2bC0yLjQ3LDAuNTVsLTAuMiwwLjE2bC0wLjE4LDAuMzdsLTEuMjcsLTAuMzhsLTEuMjgsLTAuMDlsLTAuODEsLTAuNDFsMC4yNSwtMC41MWwwLjAzLC0wLjE4bC0wLjA1LC0wLjI4bDAuMzUsLTAuMDhsMS4xNiwwLjgxbDAuNDUsLTAuMTNsMC4yNywtMC42NGwyLjAsMC4xMmwxLjg0LC0wLjU3bDEuMDUsMC4wOWwwLjcxLDAuNTlsMC40NywtMC4xMWwwLjIzLC0wLjU0bDAuMDIsLTAuMTdsLTAuMzIsLTEuODVsMC42OSwtMC4zMWwwLjEzLC0wLjEybDAuNzMsLTEuMjNsMS42MSwwLjg5bDAuMzUsLTAuMDRsMS4zNSwtMS4yN2wwLjcsLTAuMTlsMS44NCwwLjkzbDAuMTgsMC4wM2wxLjA4LC0wLjE1bDAuODEsMC40M2wtMC4wNywwLjE1bC0wLjAyLDAuMmwwLjI0LDEuMDZaXCIsIFwibmFtZVwiOiBcIkF1c3RyaWFcIn0sIFwiRFpcIjoge1wicGF0aFwiOiBcIk00NTAuNTgsMjI0Ljk0bC04LjMxLDQuODZsLTcuMjMsNS4xMmwtMy40NiwxLjEzbC0yLjQyLDAuMjJsLTAuMDIsLTEuMzNsLTAuMiwtMC4yOGwtMS4xNSwtMC40MmwtMS40NSwtMC42OWwtMC41NSwtMS4xM2wtMC4xLC0wLjEybC04LjQ1LC01LjcybC0xNy43MiwtMTIuMTdsMC4wMywtMC4zOGwtMC4wMiwtMy4yMWwzLjg0LC0xLjkxbDIuNDYsLTAuNDFsMi4xLC0wLjc1bDAuMTQsLTAuMTFsMC45LC0xLjNsMi44NCwtMS4wNmwwLjE5LC0wLjI3bDAuMDksLTEuODFsMS4yMSwtMC4ybDAuMTUsLTAuMDdsMS4wNiwtMC45NmwzLjE5LC0wLjQ2bDAuMjMsLTAuMThsMC40NiwtMS4wOGwtMC4wOCwtMC4zNGwtMC42LC0wLjU0bC0wLjgzLC0yLjg1bC0wLjE4LC0xLjhsLTAuODIsLTEuNTdsMi4xMywtMS4zN2wyLjY1LC0wLjQ5bDAuMTMsLTAuMDVsMS41NSwtMS4xNWwyLjM0LC0wLjg1bDQuMiwtMC41MWw0LjA3LC0wLjIzbDEuMjEsMC40MWwwLjIzLC0wLjAxbDIuMywtMS4xMWwyLjUyLC0wLjAybDAuOTQsMC42MmwwLjIsMC4wNWwxLjI1LC0wLjEzbC0wLjM2LDEuMDNsLTAuMDEsMC4xNGwwLjM5LDIuNjZsLTAuNTYsMi4ybC0xLjQ5LDEuNTJsLTAuMDgsMC4yNGwwLjIyLDIuMTJsMC4xMSwwLjJsMS45NCwxLjU4bDAuMDIsMC41NGwwLjEyLDAuMjNsMS40NSwxLjA2bDEuMDQsNC44NWwwLjgxLDIuNDJsMC4xMywxLjE5bC0wLjQzLDIuMTdsMC4xNywxLjI4bC0wLjMxLDEuNTNsMC4yLDEuNTZsLTAuOSwxLjAybC0wLjAxLDAuMzhsMS40MywxLjg4bDAuMDksMS4wNmwwLjA0LDAuMTNsMC44OSwxLjQ4bDAuMzcsMC4xMmwxLjAzLC0wLjQzbDEuNzksMS4xMmwwLjg5LDEuMzRaXCIsIFwibmFtZVwiOiBcIkFsZ2VyaWFcIn0sIFwiVVNcIjoge1wicGF0aFwiOiBcIk04OTIuNjQsOTkuMDVsMS4xNiwwLjU3bDAuMjEsMC4wMmwxLjQ1LC0wLjM4bDEuOTIsMC45OWwyLjE3LDAuNDdsLTEuNjUsMC43MmwtMS43NSwtMC43OWwtMC45MywtMC43bC0wLjIxLC0wLjA2bC0yLjExLDAuMjJsLTAuMzUsLTAuMmwwLjA5LC0wLjg3Wk0xODMuMjksMTUwLjM3bDAuMzksMS41NGwwLjEyLDAuMTdsMC43OCwwLjU1bDAuMTQsMC4wNWwxLjc0LDAuMmwyLjUyLDAuNWwyLjQsMC45OGwwLjE3LDAuMDJsMS45NiwtMC40bDMuMDEsMC44MWwwLjkxLC0wLjAybDIuMjIsLTAuODhsNC42NywyLjMzbDMuODYsMi4wMWwwLjIxLDAuNzFsMC4xNSwwLjE4bDAuMzMsMC4xN2wtMC4wMiwwLjA1bDAuMjMsMC40M2wwLjY3LDAuMWwwLjIxLC0wLjA1bDAuMSwtMC4wN2wwLjA1LDAuMjlsMC4wOSwwLjE2bDAuNSwwLjVsMC4yMSwwLjA5bDAuNTYsMC4wbDAuMTMsMC4xM2wtMC4yLDAuMzZsMC4xMiwwLjQxbDIuNDksMS4zOWwwLjk5LDUuMjRsLTAuNjksMS42OGwtMS4xNiwxLjY0bC0wLjYsMS4xOGwtMC4wNiwwLjMxbDAuMDQsMC4yMmwwLjI4LDAuNDNsMC4xMSwwLjFsMC44NSwwLjQ3bDAuMTUsMC4wNGwwLjYzLDAuMGwwLjE0LC0wLjA0bDIuODcsLTEuNThsMi42LC0wLjQ5bDMuMjgsLTEuNWwwLjE3LC0wLjIzbDAuMDQsLTAuNDNsLTAuMjMsLTAuOTNsLTAuMjQsLTAuMzlsMC43NCwtMC4zMmw0LjcsLTAuMDFsMC4yNSwtMC4xM2wwLjc3LC0xLjE1bDIuOSwtMi40MWwxLjA0LC0wLjUybDguMzUsLTAuMDJsMC4yOCwtMC4yMWwwLjIsLTAuNmwwLjcsLTAuMTRsMS4wNiwtMC40OGwwLjEzLC0wLjExbDAuOTIsLTEuNDlsMC43NSwtMi4zOWwxLjY3LC0yLjA4bDAuNTksMC42bDAuMywwLjA3bDEuNTIsLTAuNDlsMC44OCwwLjcybC0wLjAsNC4xNGwwLjA4LDAuMmwxLjYsMS43MmwwLjMxLDAuNzJsLTIuNDIsMS4zNWwtMi41NSwxLjA1bC0yLjY0LDAuOWwtMC4xNCwwLjExbC0xLjMzLDEuODFsLTAuNDQsMC43bC0wLjA1LDAuMTVsLTAuMDMsMS42bDAuMDMsMC4xNGwwLjgzLDEuNTlsMC4yNCwwLjE2bDAuNzgsMC4wNmwtMS4xNSwwLjMzbC0xLjI1LC0wLjA0bC0xLjgzLDAuNTJsLTIuNTEsMC4yOWwtMi4xNywwLjg4bC0wLjE3LDAuMzZsMC4zMywwLjIybDMuNTUsLTAuNTRsMC4xNSwwLjExbC0yLjg3LDAuNzNsLTEuMTksMC4wbC0wLjE2LC0wLjMzbC0wLjM2LDAuMDZsLTAuNzYsMC44MmwwLjE3LDAuNWwwLjQyLDAuMDhsLTAuNDUsMS43NWwtMS40LDEuNzRsLTAuMDQsLTAuMTdsLTAuMjEsLTAuMjJsLTAuNDgsLTAuMTNsLTAuNzcsLTAuNjlsLTAuMzYsLTAuMDNsLTAuMTIsMC4zNGwwLjUyLDEuNThsMC4wOSwwLjE0bDAuNTIsMC40M2wwLjAzLDAuODdsLTAuNzQsMS4wNWwtMC4zOSwwLjYzbDAuMDUsLTAuMTJsLTAuMDgsLTAuMzRsLTEuMTksLTEuMDNsLTAuMjgsLTIuMzFsLTAuMjYsLTAuMjZsLTAuMzIsMC4xOWwtMC40OCwxLjI3bC0wLjAxLDAuMTlsMC4zOSwxLjMzbC0xLjE0LC0wLjMxbC0wLjM2LDAuMThsMC4xNCwwLjM4bDEuNTcsMC44NWwwLjEsMi41OGwwLjIyLDAuMjhsMC41NSwwLjE1bDAuMjEsMC44MWwwLjMzLDIuNzJsLTEuNDYsMS45NGwtMi41LDAuODFsLTAuMTIsMC4wN2wtMS41OCwxLjU4bC0xLjE1LDAuMTdsLTAuMTUsMC4wNmwtMS4yNywxLjAzbC0wLjA5LDAuMTNsLTAuMzIsMC44NWwtMi43MSwxLjc5bC0xLjQ1LDEuMzdsLTEuMTgsMS42NGwtMC4wNSwwLjEybC0wLjM5LDEuOTZsMC4wLDAuMTNsMC40NCwxLjkxbDAuODUsMi4zN2wxLjEsMS45MWwwLjAzLDEuMmwxLjE2LDMuMDdsLTAuMDgsMS43NGwtMC4xLDAuOTlsLTAuNTcsMS40OGwtMC41NCwwLjI0bC0wLjk3LC0wLjI2bC0wLjM0LC0xLjAybC0wLjEyLC0wLjE2bC0wLjg5LC0wLjU4bC0yLjQ0LC00LjI4bC0wLjM0LC0wLjk0bDAuNDksLTEuNzFsLTAuMDIsLTAuMjFsLTAuNywtMS41bC0yLjAsLTIuMzVsLTAuMTEsLTAuMDhsLTAuOTgsLTAuNDJsLTAuMjUsMC4wMWwtMi40MiwxLjE5bC0wLjI2LC0wLjA4bC0xLjI2LC0xLjI5bC0xLjU3LC0wLjY4bC0wLjE2LC0wLjAybC0yLjc5LDAuMzRsLTIuMTgsLTAuM2wtMS45OCwwLjE5bC0xLjEyLDAuNDVsLTAuMTQsMC40NGwwLjQsMC42NWwtMC4wNCwxLjAybDAuMDksMC4yMmwwLjI5LDAuM2wtMC4wNiwwLjA1bC0wLjc3LC0wLjMzbC0wLjI2LDAuMDFsLTAuODcsMC40OGwtMS42NCwtMC4wOGwtMS43OSwtMS4zOWwtMC4yMywtMC4wNmwtMi4xMSwwLjMzbC0xLjc1LC0wLjYxbC0wLjE0LC0wLjAxbC0xLjYxLDAuMmwtMi4xMSwwLjY0bC0wLjExLDAuMDZsLTIuMjUsMS45OWwtMi41MywxLjIxbC0xLjQzLDEuMzhsLTAuNTgsMS4yMmwtMC4wMywwLjEybC0wLjAzLDEuODZsMC4xMywxLjMybDAuMywwLjYybC0wLjQ2LDAuMDRsLTEuNzEsLTAuNTdsLTEuODUsLTAuNzlsLTAuNjMsLTEuMTRsLTAuNTQsLTEuODVsLTAuMDcsLTAuMTJsLTEuNDUsLTEuNTFsLTAuODYsLTEuNThsLTEuMjYsLTEuODdsLTAuMDksLTAuMDlsLTEuNzYsLTEuMDlsLTAuMTcsLTAuMDRsLTIuMDUsMC4wNWwtMC4yMywwLjEybC0xLjQ0LDEuOTdsLTEuODQsLTAuNzJsLTEuMTksLTAuNzZsLTAuNiwtMS40NWwtMC45LC0xLjUybC0xLjQ5LC0xLjIxbC0xLjI3LC0wLjg3bC0wLjg5LC0wLjk2bC0wLjIyLC0wLjFsLTQuMzQsLTAuMGwtMC4zLDAuM2wtMC4wLDAuODRsLTYuNjIsMC4wMmwtNS42NiwtMS45M2wtMy40OCwtMS4yNGwwLjExLC0wLjI1bC0wLjMsLTAuNDJsLTMuMTgsMC4zbC0yLjYsMC4ybC0wLjM1LC0xLjE5bC0wLjA4LC0wLjEzbC0xLjYyLC0xLjYxbC0wLjEzLC0wLjA4bC0xLjAyLC0wLjI5bC0wLjIyLC0wLjY2bC0wLjI1LC0wLjJsLTEuMzEsLTAuMTNsLTAuODIsLTAuN2wtMC4xNiwtMC4wN2wtMi4yNSwtMC4yN2wtMC40OCwtMC4zNGwtMC4yOCwtMS40NGwtMC4wNywtMC4xNGwtMi40MSwtMi44NGwtMi4wMywtMy44OWwwLjA4LC0wLjU4bC0wLjEsLTAuMjdsLTEuMDgsLTAuOTRsLTEuODcsLTIuMzZsLTAuMzMsLTIuMzFsLTAuMDcsLTAuMTVsLTEuMjQsLTEuNWwwLjUyLC0yLjRsLTAuMDksLTIuNTdsLTAuNzgsLTIuM2wwLjk2LC0yLjgzbDAuNjEsLTUuNjZsLTAuNDYsLTQuMjZsLTAuNzksLTIuNzFsLTAuNjgsLTEuNGwwLjEzLC0wLjI2bDMuMjQsMC45N2wxLjI4LDIuODhsMC41MiwwLjA2bDAuNjIsLTAuODRsMC4wNiwtMC4yMmwtMC40LC0yLjYxbC0wLjc0LC0yLjI5bDY4LjksLTAuMGwwLjMsLTAuM2wwLjAxLC0wLjk1bDAuMzIsLTAuMDFaTTMyLjUsNjcuNDNsMS43NSwxLjk5bDAuNDEsMC4wNGwxLjAyLC0wLjgxbDMuNzksMC4yNWwtMC4xLDAuNzJsMC4yNCwwLjM0bDMuODMsMC43N2wyLjYsLTAuNDRsNS4yMSwxLjQxbDQuODQsMC40M2wxLjksMC41N2wwLjE1LDAuMDFsMy4yNSwtMC43MWwzLjcyLDEuMzJsMi41MiwwLjU4bC0wLjAzLDM4LjE0bDAuMjksMC4zbDIuNDEsMC4xMWwyLjM0LDEuMGwxLjcsMS41OWwyLjIyLDIuNDJsMC40MiwwLjAzbDIuNDEsLTIuMDRsMi4yNSwtMS4wOGwxLjIzLDEuNzZsMS43MSwxLjUzbDIuMjQsMS42MmwxLjU0LDIuNTZsMi41Niw0LjA5bDAuMTEsMC4xMWw0LjEsMi4xN2wwLjA2LDEuOTNsLTEuMTIsMS4zNWwtMS4yMiwtMS4xNGwtMi4wOCwtMS4wNWwtMC42OCwtMi45NGwtMC4wOSwtMC4xNmwtMy4xOCwtMi44NGwtMS4zMiwtMy4zNWwtMC4yNSwtMC4xOWwtMi40MywtMC4yNGwtMy45MywtMC4wOWwtMi44NSwtMS4wMmwtNS4yNCwtMy44NWwtNi43NywtMi4wNGwtMy41MiwwLjNsLTQuODQsLTEuN2wtMi45NiwtMS42bC0wLjIzLC0wLjAybC0yLjc4LDAuOGwtMC4yMSwwLjM1bDAuNDYsMi4zMWwtMS4xMSwwLjE5bC0yLjksMC43OGwtMi4yNCwxLjI2bC0yLjQyLDAuNjhsLTAuMjksLTEuNzlsMS4wNywtMy40OWwyLjU0LC0xLjExbDAuMTIsLTAuNDVsLTAuNjksLTAuOTZsLTAuNDEsLTAuMDdsLTMuMTksMi4xMmwtMS43NiwyLjU0bC0zLjU3LDIuNjJsLTAuMDMsMC40NmwxLjYzLDEuNTlsLTIuMTQsMi4zOGwtMi42NCwxLjQ5bC0yLjQ5LDEuMDlsLTAuMTYsMC4xN2wtMC41OCwxLjQ4bC0zLjgsMS43OWwtMC4xNCwwLjE0bC0wLjc1LDEuNTdsLTIuNzUsMS40MWwtMS42MiwtMC4yNWwtMC4xNiwwLjAybC0yLjM1LDAuOThsLTIuNTQsMS4xOWwtMi4wNiwxLjE1bC00LjA1LDAuOTNsLTAuMSwtMC4xNWwyLjQ1LC0xLjQ1bDIuNDksLTEuMWwyLjYxLC0xLjg4bDMuMDMsLTAuMzlsMC4xOSwtMC4xbDEuMiwtMS40MWwzLjQzLC0yLjExbDAuNjEsLTAuNzVsMS44MSwtMS4yNGwwLjEzLC0wLjJsMC40MiwtMi43bDEuMjQsLTIuMTJsLTAuMDMsLTAuMzVsLTAuMzQsLTAuMDlsLTIuNzMsMS4wNWwtMC42NywtMC41M2wtMC4zOSwwLjAybC0xLjEzLDEuMTFsLTEuNDMsLTEuNjJsLTAuNDksMC4wNmwtMC40MSwwLjhsLTAuNjcsLTEuMzFsLTAuNDIsLTAuMTJsLTIuNDMsMS40M2wtMS4xOCwtMC4wbC0wLjE4LC0xLjg2bDAuNDMsLTEuM2wtMC4wOSwtMC4zM2wtMS42MSwtMS4zM2wtMC4yNiwtMC4wNmwtMy4xMSwwLjY4bC0yLjAsLTEuNjZsLTEuNjEsLTAuODVsLTAuMDEsLTEuOTdsLTAuMTEsLTAuMjNsLTEuNzYsLTEuNDhsMC44NiwtMS45NmwyLjAxLC0yLjEzbDAuODgsLTEuOTRsMS43OSwtMC4yNWwxLjY1LDAuNmwwLjMxLC0wLjA2bDEuOTEsLTEuOGwxLjY3LDAuMzFsMC4yMiwtMC4wNGwxLjkxLC0xLjIzbDAuMTMsLTAuMzNsLTAuNDcsLTEuODJsLTAuMTUsLTAuMTlsLTEuMCwtMC41MmwxLjUxLC0xLjI3bDAuMDksLTAuMzRsLTAuMjksLTAuMTlsLTEuNjIsMC4wNmwtMi42NiwwLjg4bC0wLjEzLDAuMDlsLTAuNjIsMC43MmwtMS43NywtMC44bC0wLjE2LC0wLjAybC0zLjQ4LDAuNDRsLTMuNSwtMC45MmwtMS4wNiwtMS42MWwtMi43OCwtMi4wOWwzLjA3LC0xLjUxbDUuNTIsLTIuMDFsMS42NSwwLjBsLTAuMjgsMS43M2wwLjMxLDAuMzVsNS4yOSwtMC4xNmwwLjIzLC0wLjQ5bC0yLjAzLC0yLjU5bC0wLjEsLTAuMDhsLTMuMDMsLTEuNThsLTEuNzksLTIuMTJsLTIuNCwtMS44M2wtMy4xOCwtMS4yN2wxLjEzLC0xLjg0bDQuMjgsLTAuMTRsMC4xNSwtMC4wNWwzLjE2LC0yLjBsMC4xMywtMC4xN2wwLjU3LC0yLjA3bDIuNDMsLTIuMDJsMi40MiwtMC41Mmw0LjY3LC0xLjk4bDIuMjIsMC4yOWwwLjIsLTAuMDRsMy43NCwtMi4zN2wzLjU3LDAuOTFaTTM3LjY2LDEyMy40OWwtMi4zMSwxLjI2bC0xLjA0LC0wLjc1bC0wLjMxLC0xLjM1bDIuMDYsLTEuMTZsMS4yNCwtMC41MWwxLjQ4LDAuMjJsMC43NiwwLjgxbC0xLjg5LDEuNDlaTTMwLjg5LDIzMy44NGwxLjIsMC41N2wwLjM1LDAuM2wwLjQ4LDAuNjlsLTEuNiwwLjg2bC0wLjMsMC4zMWwtMC4yNCwtMC4xNGwwLjA1LC0wLjU0bC0wLjAyLC0wLjE1bC0wLjM2LC0wLjgzbDAuMDUsLTAuMTJsMC4zOSwtMC4zOGwwLjA3LC0wLjMxbC0wLjA5LC0wLjI3Wk0yOS4wNiwyMzEuODlsMC41LDAuMTRsMC4zMSwwLjE5bC0wLjQ2LDAuMWwtMC4zNCwtMC40M1pNMjUuMDIsMjMwLjEzbDAuMiwtMC4xMWwwLjQsMC40N2wtMC40MywtMC4wNWwtMC4xNywtMC4zMVpNMjEuMjksMjI4LjY4bDAuMSwtMC4wN2wwLjIyLDAuMDJsMC4wMiwwLjIxbC0wLjAyLDAuMDJsLTAuMzIsLTAuMThaTTYuMCwxMTMuMzNsLTEuMTksMC40NWwtMS41LC0wLjY0bC0wLjk0LC0wLjYzbDEuNzYsLTAuNDZsMS43MSwwLjI5bDAuMTYsMC45OFpcIiwgXCJuYW1lXCI6IFwiVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhXCJ9LCBcIkxWXCI6IHtcInBhdGhcIjogXCJNNDczLjk5LDEyNy4xNmwwLjA3LC0yLjE1bDEuMTUsLTIuMTFsMi4wNSwtMS4wN2wxLjg0LDIuNDhsMC4yNSwwLjEybDIuMDEsLTAuMDdsMC4yOSwtMC4yNWwwLjQ1LC0yLjU4bDEuODUsLTAuNTZsMC45OCwwLjRsMi4xMywxLjMzbDAuMTYsMC4wNWwxLjk3LDAuMDFsMS4wMiwwLjdsMC4yMSwxLjY3bDAuNzEsMS44NGwtMi40NCwxLjIzbC0xLjM2LDAuNTNsLTIuMjgsLTEuNjJsLTAuMTIsLTAuMDVsLTEuMTgsLTAuMmwtMC4yOCwtMC42bC0wLjMxLC0wLjE3bC0yLjQzLDAuMzVsLTQuMTcsLTAuMjNsLTAuMTIsMC4wMmwtMi40NSwwLjkzWlwiLCBcIm5hbWVcIjogXCJMYXR2aWFcIn0sIFwiVVlcIjoge1wicGF0aFwiOiBcIk0yNzYuOSwzNjMuMTdsMS4zLC0wLjIzbDIuNCwyLjA0bDAuMjIsMC4wN2wwLjgyLC0wLjA3bDIuNDgsMS43bDEuOTMsMS41bDEuMjgsMS42N2wtMC45NSwxLjE0bC0wLjA0LDAuMzFsMC42MywxLjQ1bC0wLjk2LDEuNTdsLTIuNjUsMS40N2wtMS43MywtMC41M2wtMC4xNSwtMC4wMWwtMS4yNSwwLjI4bC0yLjIyLC0xLjE2bC0wLjE2LC0wLjAzbC0xLjU2LDAuMDhsLTEuMzMsLTEuMzZsMC4xNywtMS41OGwwLjQ4LC0wLjU1bDAuMDcsLTAuMmwtMC4wMiwtMi43NGwwLjY2LC0yLjhsMC41NywtMi4wMlpcIiwgXCJuYW1lXCI6IFwiVXJ1Z3VheVwifSwgXCJMQlwiOiB7XCJwYXRoXCI6IFwiTTUxMC40NCwxOTguMTFsLTAuNDgsMC4wM2wtMC4yNiwwLjE3bC0wLjE1LDAuMzJsLTAuMjEsLTAuMGwwLjcyLC0xLjg1bDEuMTksLTEuOWwwLjc0LDAuMDlsMC4yNywwLjczbC0xLjE5LDAuOTNsLTAuMDksMC4xM2wtMC41NCwxLjM2WlwiLCBcIm5hbWVcIjogXCJMZWJhbm9uXCJ9LCBcIkxBXCI6IHtcInBhdGhcIjogXCJNNjg0Ljg3LDI0OC44bDAuNjEsLTAuODZsMC4wNSwtMC4xNmwwLjExLC0yLjE3bC0wLjA4LC0wLjIybC0xLjk2LC0yLjE2bC0wLjE1LC0yLjQ0bC0wLjA4LC0wLjE4bC0xLjksLTIuMWwtMC4xOSwtMC4xbC0xLjg5LC0wLjE4bC0wLjI5LDAuMTVsLTAuNDIsMC43NmwtMS4yMSwwLjA2bC0wLjY3LC0wLjQxbC0wLjMxLC0wLjBsLTIuMiwxLjI5bC0wLjA1LC0xLjc3bDAuNjEsLTIuN2wtMC4yNywtMC4zN2wtMS40NCwtMC4xbC0wLjEyLC0xLjMxbC0wLjEyLC0wLjIxbC0wLjg3LC0wLjY1bDAuMzgsLTAuNjhsMS43NiwtMS40MWwwLjA4LDAuMjJsMC4yNywwLjJsMS4zMywwLjA3bDAuMzEsLTAuMzRsLTAuMzUsLTIuNzVsMC44NSwtMC4yNWwxLjMyLDEuODhsMS4xMSwyLjM2bDAuMjcsMC4xN2wyLjg5LDAuMDJsMC43OCwxLjgybC0xLjMyLDAuNTZsLTAuMTIsMC4wOWwtMC43MiwwLjkzbDAuMSwwLjQ1bDIuOTMsMS41MmwzLjYyLDUuMjdsMS44OCwxLjc4bDAuNTgsMS42N2wtMC4zOCwyLjExbC0xLjg3LC0wLjc5bC0wLjM3LDAuMTFsLTAuOTksMS41NGwtMS41MSwtMC43M1pcIiwgXCJuYW1lXCI6IFwiTGFvc1wifSwgXCJUV1wiOiB7XCJwYXRoXCI6IFwiTTcyNS42LDIyMi41bC0xLjUsNC4yMmwtMC44MiwxLjY1bC0xLjAxLC0xLjdsLTAuMjYsLTEuOGwxLjQsLTIuNDhsMS44LC0xLjgxbDAuNzYsMC41M2wtMC4zOCwxLjM5WlwiLCBcIm5hbWVcIjogXCJUYWl3YW5cIn0sIFwiVFRcIjoge1wicGF0aFwiOiBcIk0yNjYuMzUsMjU5LjQ2bDAuNDEsLTAuMzlsMC4wOSwtMC4yM2wtMC4wNCwtMC43NWwxLjE0LC0wLjI2bDAuMiwwLjAzbC0wLjA3LDEuMzdsLTEuNzMsMC4yM1pcIiwgXCJuYW1lXCI6IFwiVHJpbmlkYWQgYW5kIFRvYmFnb1wifSwgXCJUUlwiOiB7XCJwYXRoXCI6IFwiTTUxMy4yNSwxNzUuMzhsMy42MywxLjE3bDAuMTQsMC4wMWwyLjg4LC0wLjQ1bDIuMTEsMC4yNmwwLjE4LC0wLjAzbDIuOSwtMS41M2wyLjUxLC0wLjEzbDIuMjUsMS4zN2wwLjM2LDAuODhsLTAuMjMsMS4zNmwwLjE5LDAuMzNsMS44MSwwLjcybDAuNjEsMC41M2wtMS4zMSwwLjY0bC0wLjE2LDAuMzRsMC43NiwzLjI0bC0wLjQ0LDAuOGwwLjAxLDAuM2wxLjE5LDIuMDJsLTAuNzEsMC4yOWwtMC43NCwtMC42MmwtMC4xNSwtMC4wN2wtMi45MSwtMC4zN2wtMC4xNSwwLjAybC0xLjA0LDAuNDNsLTIuNzgsMC40NGwtMS40NCwtMC4wM2wtMi44MywxLjA2bC0xLjk1LDAuMDFsLTEuMjgsLTAuNTJsLTAuMiwtMC4wMWwtMi42MiwwLjc2bC0wLjcsLTAuNDhsLTAuNDcsMC4yMmwtMC4xMywxLjQ5bC0xLjAxLDAuOTRsLTAuNTgsLTAuODJsMC43OSwtMC45bDAuMDQsLTAuMzRsLTAuMzEsLTAuMTVsLTEuNDYsMC4yM2wtMi4wMywtMC42NGwtMC4zLDAuMDdsLTEuNjUsMS41OGwtMy41OCwwLjNsLTEuOTQsLTEuNDdsLTAuMTcsLTAuMDZsLTIuNywtMC4xbC0wLjI4LDAuMTdsLTAuNTEsMS4wNmwtMS40NywwLjI5bC0yLjMyLC0xLjQ2bC0wLjE3LC0wLjA1bC0yLjU1LDAuMDVsLTEuNCwtMi43bC0xLjcyLC0xLjU0bDEuMTEsLTIuMDZsLTAuMDcsLTAuMzdsLTEuMzUsLTEuMTlsMi40NywtMi41MWwzLjc0LC0wLjExbDAuMjYsLTAuMTdsMC45NiwtMi4wN2w0LjU2LDAuMzhsMC4xOSwtMC4wNWwyLjk3LC0xLjkybDIuODQsLTAuODNsNC4wMywtMC4wNmw0LjMxLDIuMDhaTTQ4OC44NSwxNzYuOGwtMS44MSwxLjM4bC0wLjU3LC0xLjAxbDAuMDIsLTAuMzZsMC40NSwtMC4yNWwwLjEzLC0wLjE1bDAuNzgsLTEuODdsLTAuMTEsLTAuMzdsLTAuNzIsLTAuNDdsMS45MSwtMC43MWwxLjg5LDAuMzVsMC4yNSwwLjk3bDAuMTcsMC4ybDEuODcsMC44M2wtMC4xOSwwLjMxbC0yLjgyLDAuMTZsLTAuMTgsMC4wN2wtMS4wNiwwLjkxWlwiLCBcIm5hbWVcIjogXCJUdXJrZXlcIn0sIFwiTEtcIjoge1wicGF0aFwiOiBcIk02MjUuNDQsMjY2LjA3bC0wLjM1LDIuNGwtMC45LDAuNjFsLTEuOTEsMC41bC0xLjA0LC0xLjc1bC0wLjQzLC0zLjVsMS4wLC0zLjZsMS4zNCwxLjA5bDEuMTMsMS43MmwxLjE2LDIuNTJaXCIsIFwibmFtZVwiOiBcIlNyaSBMYW5rYVwifSwgXCJUTlwiOiB7XCJwYXRoXCI6IFwiTTQ0NC45MSwyMDYuMThsLTAuOTksLTQuNTdsLTAuMTIsLTAuMThsLTEuNDMsLTEuMDRsLTAuMDIsLTAuNTNsLTAuMTEsLTAuMjJsLTEuOTUsLTEuNTlsLTAuMTksLTEuODVsMS40NCwtMS40N2wwLjA4LC0wLjE0bDAuNTksLTIuMzRsLTAuMzgsLTIuNzdsMC40NCwtMS4yOGwyLjUyLC0xLjA4bDEuNDEsMC4yOGwtMC4wNiwxLjJsMC40MywwLjI4bDEuODEsLTAuOWwwLjAyLDAuMDZsLTEuMTQsMS4yOGwtMC4wOCwwLjJsLTAuMDIsMS4zMmwwLjExLDAuMjRsMC43NCwwLjZsLTAuMjksMi4xOGwtMS41NiwxLjM1bC0wLjA5LDAuMzJsMC40OCwxLjU0bDAuMjgsMC4yMWwxLjExLDAuMDRsMC41NSwxLjE3bDAuMTUsMC4xNGwwLjc2LDAuMzVsLTAuMTIsMS43OWwtMS4xLDAuNzJsLTAuOCwwLjkxbC0xLjY4LDEuMDRsLTAuMTMsMC4zMmwwLjI1LDEuMDhsLTAuMTgsMC45NmwtMC43NCwwLjM5WlwiLCBcIm5hbWVcIjogXCJUdW5pc2lhXCJ9LCBcIlRMXCI6IHtcInBhdGhcIjogXCJNNzM0LjIxLDMwNy4yMmwwLjE3LC0wLjM0bDEuOTksLTAuNTJsMS43MiwtMC4wOGwwLjc4LC0wLjNsMC4yOSwwLjFsLTAuNDMsMC4zMmwtMi41NywxLjA5bC0xLjcxLDAuNTlsLTAuMDUsLTAuNDlsLTAuMTksLTAuMzZaXCIsIFwibmFtZVwiOiBcIkVhc3QgVGltb3JcIn0sIFwiVE1cIjoge1wicGF0aFwiOiBcIk01NTMuMTYsMTczLjUxbC0wLjEyLDEuMGwtMC4yNiwtMC42NWwwLjM4LC0wLjM0Wk01NTMuNTQsMTczLjE2bDAuMTMsLTAuMTJsMC40MywtMC4wOWwtMC41NiwwLjIxWk01NTUuNjgsMTcyLjZsMC42NSwtMC4xNGwxLjUzLDAuNzZsMS43MSwyLjI5bDAuMjcsMC4xMmwxLjI3LC0wLjE0bDIuODEsLTAuMDRsMC4yOSwtMC4zOGwtMC4zNSwtMS4yN2wxLjk4LC0wLjk3bDEuOTYsLTEuNjNsMy4wNSwxLjQ0bDAuMjUsMi4yM2wwLjE0LDAuMjJsMC45NiwwLjYxbDAuMTgsMC4wNWwyLjYxLC0wLjEzbDAuNjgsMC40NGwxLjIsMi45N2wwLjEsMC4xM2wyLjg1LDIuMDNsMS42NywxLjQxbDIuNjYsMS40NWwzLjEzLDEuMTdsLTAuMDUsMS4yM2wtMC4zNiwtMC4wNGwtMS4xMiwtMC43M2wtMC40NCwwLjE0bC0wLjM0LDAuODlsLTEuOTYsMC41MmwtMC4yMiwwLjIzbC0wLjQ3LDIuMTdsLTEuMjYsMC43OGwtMS45MywwLjQybC0wLjIxLDAuMThsLTAuNDYsMS4xNGwtMS42NCwwLjMzbC0yLjMsLTAuOTdsLTAuMiwtMi4yM2wtMC4yOCwtMC4yN2wtMS43NiwtMC4xbC0yLjc4LC0yLjQ4bC0wLjE1LC0wLjA3bC0xLjk1LC0wLjMxbC0yLjgyLC0xLjQ4bC0xLjc4LC0wLjI3bC0wLjE4LDAuMDNsLTEuMDMsMC41MWwtMS42LC0wLjA4bC0wLjIyLDAuMDhsLTEuNzIsMS42bC0xLjgzLDAuNDZsLTAuMzksLTEuN2wwLjM2LC0zLjBsLTAuMTYsLTAuM2wtMS43MywtMC44OGwwLjU3LC0xLjc3bC0wLjI1LC0wLjM5bC0xLjMzLC0wLjE0bDAuNDEsLTEuODVsMi4wNSwwLjYzbDAuMjEsLTAuMDFsMi4yLC0wLjk1bDAuMDksLTAuNDlsLTEuNzgsLTEuNzVsLTAuNjksLTEuNjZsLTAuMDcsLTAuMDNaXCIsIFwibmFtZVwiOiBcIlR1cmttZW5pc3RhblwifSwgXCJUSlwiOiB7XCJwYXRoXCI6IFwiTTU5Ny45OSwxNzguNzFsLTAuMjMsMC4yM2wtMi41NywtMC40N2wtMC4zNSwwLjI1bC0wLjI0LDEuN2wwLjMyLDAuMzRsMi42NiwtMC4yMmwzLjE1LDAuOTVsNC40NywtMC40MmwwLjU4LDIuNDVsMC4zOSwwLjIxbDAuNzEsLTAuMjVsMS4yMiwwLjUzbC0wLjA2LDEuMDFsMC4yOSwxLjI4bC0yLjE5LC0wLjBsLTEuNzEsLTAuMjFsLTAuMjMsMC4wN2wtMS41MSwxLjI1bC0xLjA1LDAuMjdsLTAuNzcsMC41MWwtMC43MSwtMC42N2wwLjIyLC0yLjI4bC0wLjI0LC0wLjMybC0wLjQzLC0wLjA4bDAuMTcsLTAuNTdsLTAuMTYsLTAuMzZsLTEuMzYsLTAuNjZsLTAuMzQsMC4wNWwtMS4wOCwxLjAxbC0wLjA5LDAuMTVsLTAuMjUsMS4wOWwtMC4yNCwwLjI2bC0xLjM2LC0wLjA1bC0wLjI3LDAuMTRsLTAuNjUsMS4wNmwtMC41OCwtMC4zOWwtMC4zLC0wLjAybC0xLjY4LDAuODZsLTAuMzYsLTAuMTZsMS4yOCwtMi42NWwwLjAyLC0wLjJsLTAuNTQsLTIuMTdsLTAuMTgsLTAuMjFsLTEuNTMsLTAuNThsMC40MSwtMC44MmwxLjg5LDAuMTNsMC4yNiwtMC4xMmwxLjE5LC0xLjYzbDAuNzcsLTEuODJsMi42NiwtMC41NWwtMC4zMywwLjg3bDAuMDEsMC4yM2wwLjM2LDAuODJsMC4zLDAuMThsMC4yMywtMC4wMlpcIiwgXCJuYW1lXCI6IFwiVGFqaWtpc3RhblwifSwgXCJMU1wiOiB7XCJwYXRoXCI6IFwiTTQ5My4zMiwzNTkuNjlsMC42OSwwLjY1bC0wLjY1LDEuMTJsLTAuMzgsMC44bC0xLjI3LDAuMzlsLTAuMTgsMC4xNWwtMC40LDAuNzdsLTAuNTksMC4xOGwtMS41OSwtMS43OGwxLjE2LC0xLjVsMS4zLC0xLjAybDAuOTcsLTAuNDZsMC45NCwwLjcyWlwiLCBcIm5hbWVcIjogXCJMZXNvdGhvXCJ9LCBcIlRIXCI6IHtcInBhdGhcIjogXCJNNjc3LjQyLDI1My42OGwtMS43LC0wLjg4bC0wLjE0LC0wLjAzbC0xLjc3LDAuMDRsMC4zLC0xLjY0bC0wLjMsLTAuMzVsLTIuMjEsMC4wMWwtMC4zLDAuMjhsLTAuMiwyLjc2bC0yLjE1LDUuOWwtMC4wMiwwLjEzbDAuMTcsMS44M2wwLjI4LDAuMjdsMS40NSwwLjA3bDAuOTMsMi4xbDAuNDQsMi4xNWwwLjA4LDAuMTVsMS40LDEuNDRsMC4xNiwwLjA5bDEuNDMsMC4yN2wxLjA0LDEuMDVsLTAuNTgsMC43M2wtMS4yNCwwLjIybC0wLjE1LC0wLjk5bC0wLjE1LC0wLjIybC0yLjA0LC0xLjFsLTAuMzYsMC4wNmwtMC4yMywwLjIzbC0wLjcyLC0wLjcxbC0wLjQxLC0xLjE4bC0wLjA2LC0wLjExbC0xLjMzLC0xLjQybC0xLjIyLC0xLjJsLTAuNSwwLjEzbC0wLjE1LDAuNTRsLTAuMTQsLTAuNDFsMC4yNiwtMS40OGwwLjczLC0yLjM4bDEuMiwtMi41N2wxLjM3LC0yLjM1bDAuMDIsLTAuMjdsLTAuOTUsLTIuMjZsMC4wMywtMS4xOWwtMC4yOSwtMS40MmwtMC4wNiwtMC4xM2wtMS42NSwtMi4wbC0wLjQ2LC0wLjk5bDAuNjIsLTAuMzRsMC4xMywtMC4xNWwwLjkyLC0yLjIzbC0wLjAyLC0wLjI3bC0xLjA1LC0xLjc0bC0xLjU3LC0xLjg2bC0xLjA0LC0xLjk2bDAuNzYsLTAuMzRsMC4xNiwtMC4xNmwxLjA3LC0yLjYzbDEuNTgsLTAuMWwwLjE2LC0wLjA2bDEuNDMsLTEuMTFsMS4yNCwtMC41MmwwLjg0LDAuNjJsMC4xMywxLjQzbDAuMjgsMC4yN2wxLjM0LDAuMDlsLTAuNTQsMi4zOWwwLjA1LDIuMzlsMC40NSwwLjI1bDIuNDgsLTEuNDVsMC42LDAuMzZsMC4xNywwLjA0bDEuNDcsLTAuMDdsMC4yNSwtMC4xNWwwLjQxLC0wLjczbDEuNTgsMC4xNWwxLjc2LDEuOTNsMC4xNSwyLjQ0bDAuMDgsMC4xOGwxLjk0LDIuMTVsLTAuMSwxLjk2bC0wLjY2LDAuOTNsLTIuMjUsLTAuMzRsLTMuMjQsMC40OWwtMC4xOSwwLjEybC0xLjYsMi4xMmwtMC4wNiwwLjI0bDAuNDgsMi40NlpcIiwgXCJuYW1lXCI6IFwiVGhhaWxhbmRcIn0sIFwiVEZcIjoge1wicGF0aFwiOiBcIk01OTMuNzYsNDE3LjczbDEuMzgsMC44NGwyLjE1LDAuMzdsMC4wNCwwLjMxbC0wLjU5LDEuMjRsLTMuMzYsMC4xOWwtMC4wNSwtMS4zOGwwLjQzLC0xLjU2WlwiLCBcIm5hbWVcIjogXCJGcmVuY2ggU291dGhlcm4gYW5kIEFudGFyY3RpYyBMYW5kc1wifSwgXCJUR1wiOiB7XCJwYXRoXCI6IFwiTTQyNS4yMywyNjkuMjlsLTEuNDksMC40bC0wLjQzLC0wLjY4bC0wLjY0LC0xLjU0bC0wLjE4LC0xLjE2bDAuNTQsLTIuMjFsLTAuMDQsLTAuMjRsLTAuNTksLTAuODZsLTAuMjMsLTEuOWwwLjAsLTEuODJsLTAuMDcsLTAuMTlsLTAuOTUsLTEuMTlsMC4xLC0wLjQxbDEuNTgsMC4wNGwtMC4yMywwLjk3bDAuMDgsMC4yOGwxLjU1LDEuNTVsMC4wOSwxLjEzbDAuMDgsMC4xOWwwLjQyLDAuNDNsLTAuMTEsNS42NmwwLjUyLDEuNTNaXCIsIFwibmFtZVwiOiBcIlRvZ29cIn0sIFwiVERcIjoge1wicGF0aFwiOiBcIk00NTcuNTcsMjUyLjQ2bDAuMjMsLTEuMDhsLTAuMjgsLTAuMzZsLTEuMzIsLTAuMDVsMC4wLC0xLjM1bC0wLjEsLTAuMjJsLTAuOSwtMC44MmwwLjk5LC0zLjFsMy4xMiwtMi4zN2wwLjEyLC0wLjIzbDAuMTMsLTMuMzNsMC45NSwtNS4ybDAuNTMsLTEuMDlsLTAuMDcsLTAuMzZsLTAuOTQsLTAuODFsLTAuMDMsLTAuN2wtMC4xMiwtMC4yM2wtMC44NCwtMC42MWwtMC41NywtMy43NmwyLjIxLC0xLjI2bDE5LjY3LDkuODhsMC4xMiw5Ljc0bC0xLjgzLC0wLjE1bC0wLjI4LDAuMTRsLTEuMTQsMS44OWwtMC42OCwxLjYybDAuMDUsMC4zMWwwLjMzLDAuMzhsLTAuNjEsMC41OGwtMC4wOCwwLjNsMC4yNSwwLjkzbC0wLjU4LDAuOTVsLTAuMjksMS4wMWwwLjM0LDAuMzdsMC42NywtMC4xMWwwLjM5LDAuNzNsMC4wMywxLjRsMC4xMSwwLjIzbDAuOCwwLjY1bC0wLjAxLDAuMjRsLTEuMzgsMC4zN2wtMC4xMSwwLjA2bC0xLjI3LDEuMDNsLTEuODMsMi43NmwtMi4yMSwxLjFsLTIuMzQsLTAuMTVsLTAuODIsMC4yNWwtMC4yLDAuMzdsMC4xOSwwLjY4bC0xLjE2LDAuNzlsLTEuMDEsMC45NGwtMi45MiwwLjg5bC0wLjUsLTAuNDZsLTAuMTcsLTAuMDhsLTAuNDEsLTAuMDVsLTAuMjgsMC4xMmwtMC4zOCwwLjU0bC0xLjM2LDAuMTJsMC4xLC0wLjE4bDAuMDEsLTAuMjdsLTAuNzgsLTEuNzJsLTAuMzUsLTEuMDNsLTAuMTcsLTAuMThsLTEuMDMsLTAuNDFsLTEuMjksLTEuMjhsMC4zNiwtMC43OGwwLjksMC4ybDAuMTQsLTAuMGwwLjY3LC0wLjE3bDEuMzYsMC4wMmwwLjI2LC0wLjQ1bC0xLjMyLC0yLjIybDAuMDksLTEuNjRsLTAuMTcsLTEuNjhsLTAuMDQsLTAuMTNsLTAuOTMsLTEuNTNaXCIsIFwibmFtZVwiOiBcIkNoYWRcIn0sIFwiTFlcIjoge1wicGF0aFwiOiBcIk00NTcuOTksMjI2LjM4bC0xLjU3LDAuODdsLTEuMjUsLTEuMjhsLTAuMTMsLTAuMDhsLTMuODUsLTEuMTFsLTEuMDQsLTEuNTdsLTAuMDksLTAuMDlsLTEuOTgsLTEuMjNsLTAuMjcsLTAuMDJsLTAuOTMsMC4zOWwtMC43MiwtMS4ybC0wLjA5LC0xLjA3bC0wLjA2LC0wLjE2bC0xLjMzLC0xLjc1bDAuODMsLTAuOTRsMC4wNywtMC4yNGwtMC4yMSwtMS42NGwwLjMxLC0xLjQzbC0wLjE3LC0xLjI5bDAuNDMsLTIuMjZsLTAuMTUsLTEuMzNsLTAuNzMsLTIuMThsMC45OSwtMC41MmwwLjE2LC0wLjIxbDAuMjIsLTEuMTZsLTAuMjIsLTEuMDZsMS41NCwtMC45NWwwLjgxLC0wLjkybDEuMTksLTAuNzhsMC4xNCwtMC4yM2wwLjEyLC0xLjc2bDIuNTcsMC44NGwwLjE2LDAuMDFsMC45OSwtMC4yM2wyLjAxLDAuNDVsMy4xOSwxLjJsMS4xMiwyLjM2bDAuMiwwLjE2bDIuMjQsMC41M2wzLjUsMS4xNGwyLjY1LDEuMzZsMC4yOSwtMC4wMWwxLjIyLC0wLjcxbDEuMjcsLTEuMzJsMC4wNywtMC4yOWwtMC41NSwtMi4wbDAuNjksLTEuMTlsMS43LC0xLjIzbDEuNjEsLTAuMzVsMy4yLDAuNTRsMC43OCwxLjE0bDAuMjQsMC4xM2wwLjg1LDAuMDFsMC44NCwwLjQ3bDIuMzUsMC4zMWwwLjQyLDAuNjNsLTAuNzksMS4xNmwtMC4wNCwwLjI2bDAuMzUsMS4wOGwtMC42MSwxLjZsLTAuMCwwLjJsMC43MywyLjE2bDAuMCwyNC4yNGwtMi41OCwwLjAxbC0wLjMsMC4yOWwtMC4wMiwwLjYybC0xOS41NSwtOS44M2wtMC4yOCwwLjAxbC0yLjUzLDEuNDRaXCIsIFwibmFtZVwiOiBcIkxpYnlhXCJ9LCBcIkFFXCI6IHtcInBhdGhcIjogXCJNNTUwLjU5LDIyMy44bDAuMTIsMC4wOGwxLjkyLC0wLjQxbDMuNTQsMC4xNWwwLjIzLC0wLjA5bDEuNzEsLTEuNzlsMS44NiwtMS43bDEuMzEsLTEuMzZsMC4yNiwwLjVsMC4yOCwxLjcybC0wLjkzLDAuMDFsLTAuMywwLjI2bC0wLjIxLDEuNzNsMC4xMSwwLjI3bDAuMDgsMC4wNmwtMC43LDAuMzJsLTAuMTcsMC4yN2wtMC4wMSwwLjk5bC0wLjY4LDEuMDJsLTAuMDUsMC4xNWwtMC4wNiwwLjk2bC0wLjMyLDAuMzZsLTcuMTksLTEuMjdsLTAuNzksLTIuMjJaXCIsIFwibmFtZVwiOiBcIlVuaXRlZCBBcmFiIEVtaXJhdGVzXCJ9LCBcIlZFXCI6IHtcInBhdGhcIjogXCJNMjQwLjY2LDI1Ni41bDAuNjUsMC45MWwtMC4wMywxLjEzbC0xLjA1LDEuMzlsLTAuMDMsMC4zMWwwLjk1LDIuMGwwLjMyLDAuMTdsMS4wOCwtMC4xNmwwLjI0LC0wLjIxbDAuNTYsLTEuODNsLTAuMDYsLTAuMjlsLTAuNzEsLTAuODFsLTAuMSwtMS41OGwyLjksLTAuOTZsMC4xOSwtMC4zN2wtMC4yOSwtMS4wMmwwLjQ1LC0wLjQxbDAuNzIsMS40M2wwLjI2LDAuMTZsMS42NSwwLjA0bDEuNDYsMS4yN2wwLjA4LDAuNzJsMC4zLDAuMjdsMi4yOCwwLjAybDIuNTUsLTAuMjVsMS4zNCwxLjA2bDAuMTQsMC4wNmwxLjkyLDAuMzFsMC4yLC0wLjAzbDEuNCwtMC43OWwwLjE1LC0wLjI1bDAuMDIsLTAuMzZsMi44MiwtMC4xNGwxLjE3LC0wLjAxbC0wLjQxLDAuMTRsLTAuMTQsMC40NmwwLjg2LDEuMTlsMC4yMiwwLjEybDEuOTMsMC4xOGwxLjczLDEuMTNsMC4zNywxLjlsMC4zMSwwLjI0bDEuMjEsLTAuMDVsMC41MiwwLjMybC0xLjYzLDEuMjFsLTAuMTEsMC4xN2wtMC4yMiwwLjkybDAuMDcsMC4yN2wwLjYzLDAuNjlsLTAuMzEsMC4yNGwtMS40OCwwLjM5bC0wLjIyLDAuM2wwLjA0LDEuMDNsLTAuNTksMC42bC0wLjAxLDAuNDFsMS42NywxLjg3bDAuMjMsMC40OGwtMC43MiwwLjc2bC0yLjcxLDAuOTFsLTEuNzgsMC4zOWwtMC4xMywwLjA2bC0wLjYsMC40OWwtMS44NCwtMC41OGwtMS44OSwtMC4zM2wtMC4xOCwwLjAzbC0wLjQ3LDAuMjNsLTAuMDIsMC41M2wwLjk2LDAuNTZsLTAuMDgsMS41OGwwLjM1LDEuNThsMC4yNiwwLjIzbDEuOTEsMC4xOWwwLjAyLDAuMDdsLTEuNTQsMC42MmwtMC4xOCwwLjJsLTAuMjUsMC45MmwtMC44OCwwLjM1bC0xLjg1LDAuNThsLTAuMTYsMC4xM2wtMC40LDAuNjRsLTEuNjYsMC4xNGwtMS4yMiwtMS4xOGwtMC43OSwtMi41MmwtMC42NywtMC44OGwtMC42NiwtMC40M2wwLjk5LC0wLjk4bDAuMDksLTAuMjZsLTAuMDksLTAuNTZsLTAuMDgsLTAuMTZsLTAuNjYsLTAuNjlsLTAuNDcsLTEuNTRsMC4xOCwtMS42N2wwLjU1LC0wLjg1bDAuNDUsLTEuMzVsLTAuMTUsLTAuMzZsLTAuODksLTAuNDNsLTAuMTksLTAuMDJsLTEuMzksMC4yOGwtMS43NiwtMC4xM2wtMC45MiwwLjIzbC0xLjY0LC0yLjAxbC0wLjE3LC0wLjFsLTEuNTQsLTAuMzNsLTMuMDUsMC4yM2wtMC41LC0wLjczbC0wLjE1LC0wLjEybC0wLjQ1LC0wLjE1bC0wLjA1LC0wLjI4bDAuMjgsLTAuODZsMC4wMSwtMC4xNWwtMC4yLC0xLjAxbC0wLjA4LC0wLjE1bC0wLjUsLTAuNWwtMC4zLC0xLjA4bC0wLjI1LC0wLjIybC0wLjg5LC0wLjEybDAuNTQsLTEuMThsMC4yOSwtMS43M2wwLjY2LC0wLjg1bDAuOTQsLTAuN2wwLjA5LC0wLjExbDAuMywtMC42WlwiLCBcIm5hbWVcIjogXCJWZW5lenVlbGFcIn0sIFwiQUZcIjoge1wicGF0aFwiOiBcIk01NzQuNDIsMTkyLjFsMi4yNCwwLjk1bDAuMTgsMC4wMmwxLjg5LC0wLjM4bDAuMjIsLTAuMThsMC40NiwtMS4xNGwxLjgyLC0wLjRsMS41LC0wLjkxbDAuMTQsLTAuMTlsMC40NiwtMi4xMmwxLjkzLC0wLjUxbDAuMiwtMC4xOGwwLjI2LC0wLjY4bDAuODcsMC41N2wwLjEzLDAuMDVsMC43OSwwLjA5bDEuMzUsMC4wMmwxLjgzLDAuNTlsMC43NSwwLjM0bDAuMjYsLTAuMDFsMS42NiwtMC44NWwwLjcsMC40NmwwLjQyLC0wLjA5bDAuNzIsLTEuMTdsMS4zMiwwLjA1bDAuMjMsLTAuMWwwLjM5LC0wLjQzbDAuMDcsLTAuMTRsMC4yNCwtMS4wOGwwLjg2LC0wLjgxbDAuOTQsMC40NmwtMC4yLDAuNjRsMC4yMywwLjM4bDAuNDksMC4wOWwtMC4yMSwyLjE1bDAuMDksMC4yNWwwLjk5LDAuOTRsMC4zOCwwLjAzbDAuODMsLTAuNTdsMS4wNiwtMC4yN2wwLjEyLC0wLjA2bDEuNDYsLTEuMjFsMS42MywwLjJsMi40LDAuMGwwLjE3LDAuMzJsLTEuMTIsMC4yNWwtMS4yMywwLjUybC0yLjg2LDAuMzNsLTIuNjksMC42bC0wLjEzLDAuMDZsLTEuNDYsMS4yNWwtMC4wNywwLjM2bDAuNTgsMS4xOGwwLjI1LDEuMjFsLTEuMTMsMS4wOGwtMC4wOSwwLjI1bDAuMDksMC45OGwtMC41MywwLjc5bC0yLjIyLC0wLjA4bC0wLjI4LDAuNDRsMC44MywxLjU3bC0xLjMsMC41OGwtMC4xMywwLjExbC0xLjA2LDEuNjlsLTAuMDUsMC4xOGwwLjEzLDEuNTFsLTAuNzMsMC41OGwtMC43OCwtMC4yMmwtMC4xNCwtMC4wMWwtMS45MSwwLjM2bC0wLjIzLDAuMTlsLTAuMiwwLjU3bC0xLjY1LC0wLjBsLTAuMjIsMC4xbC0xLjQsMS41NmwtMC4wOCwwLjE5bC0wLjA4LDIuMTNsLTIuOTksMS4wNWwtMS42NywtMC4yM2wtMC4yNywwLjFsLTAuMzksMC40NmwtMS40MywtMC4zMWwtMi40MywwLjRsLTMuNjksLTEuMjNsMS45NiwtMi4xNWwwLjA4LC0wLjI0bC0wLjIxLC0xLjc4bC0wLjIzLC0wLjI2bC0xLjY5LC0wLjQybC0wLjE5LC0xLjYybC0wLjc3LC0yLjA4bDAuOTgsLTEuNDFsLTAuMTQsLTAuNDVsLTAuODIsLTAuMzFsMC42LC0xLjc5bDAuOTMsLTMuMjFaXCIsIFwibmFtZVwiOiBcIkFmZ2hhbmlzdGFuXCJ9LCBcIklRXCI6IHtcInBhdGhcIjogXCJNNTM0LjQyLDE5MC44OWwwLjEzLDAuMTRsMS41LDAuNzhsMC4xNSwxLjM0bC0xLjEzLDAuODdsLTAuMTEsMC4xNmwtMC41OCwyLjJsMC4wNCwwLjI0bDEuNzMsMi42N2wwLjEyLDAuMWwyLjk5LDEuNDlsMS4xOCwxLjk0bC0wLjM5LDEuODlsMC4yOSwwLjM2bDAuNSwtMC4wbDAuMDIsMS4xN2wwLjA4LDAuMmwwLjgzLDAuODZsLTIuMzYsLTAuMjlsLTAuMjksMC4xM2wtMS43NCwyLjQ5bC00LjQsLTAuMjFsLTcuMDMsLTUuNDlsLTMuNzMsLTEuOTRsLTIuOTIsLTAuNzRsLTAuODksLTMuMGw1LjMzLC0yLjgxbDAuMTUsLTAuMTlsMC45NSwtMy40M2wtMC4yLC0yLjBsMS4xOSwtMC42MWwwLjExLC0wLjA5bDEuMjMsLTEuNzNsMC45MiwtMC4zOGwyLjc1LDAuMzVsMC44MSwwLjY4bDAuMzEsMC4wNWwwLjk0LC0wLjM4bDEuNSwzLjE3WlwiLCBcIm5hbWVcIjogXCJJcmFxXCJ9LCBcIklTXCI6IHtcInBhdGhcIjogXCJNMzg0LjI2LDg3Ljk2bC0wLjUxLDIuMzVsMC4wOCwwLjI4bDIuNjEsMi41OGwtMi45OSwyLjgzbC03LjE2LDIuNzJsLTIuMDgsMC43bC05LjUxLC0xLjcxbDEuODksLTEuMzZsLTAuMDcsLTAuNTNsLTQuNCwtMS41OWwzLjMzLC0wLjU5bDAuMjUsLTAuMzJsLTAuMTEsLTEuMmwtMC4yNSwtMC4yN2wtNC44MiwtMC44OGwxLjM4LC0yLjJsMy41NCwtMC41N2wzLjgsMi43NGwwLjMzLDAuMDFsMy42OCwtMi4xOGwzLjAyLDEuMTJsMC4yNSwtMC4wMmw0LjAxLC0yLjE4bDMuNzIsMC4yN1pcIiwgXCJuYW1lXCI6IFwiSWNlbGFuZFwifSwgXCJJUlwiOiB7XCJwYXRoXCI6IFwiTTU1Ni4yLDE4Ny41bDIuMDUsLTAuNTJsMC4xMywtMC4wN2wxLjY5LC0xLjU3bDEuNTUsMC4wOGwwLjE1LC0wLjAzbDEuMDIsLTAuNWwxLjY0LDAuMjVsMi44MiwxLjQ4bDEuOTEsMC4zbDIuOCwyLjQ5bDAuMTgsMC4wOGwxLjYxLDAuMDlsMC4xOSwyLjA5bC0xLjAsMy40N2wtMC42OSwyLjA0bDAuMTgsMC4zOGwwLjczLDAuMjhsLTAuODUsMS4yMmwtMC4wNCwwLjI4bDAuODEsMi4xOWwwLjE5LDEuNzJsMC4yMywwLjI2bDEuNjksMC40MmwwLjE3LDEuNDNsLTIuMTgsMi4zOWwtMC4wMSwwLjRsMS4yMiwxLjQybDEuMCwxLjYybDAuMTIsMC4xMWwyLjIzLDEuMTFsMC4wNiwyLjJsMC4yLDAuMjdsMS4wMywwLjM4bDAuMTQsMC44M2wtMy4zOCwxLjNsLTAuMTgsMC4xOWwtMC44NywyLjg1bC00LjQ0LC0wLjc2bC0yLjc1LC0wLjYybC0yLjY0LC0wLjMybC0xLjAxLC0zLjExbC0wLjE3LC0wLjE5bC0xLjIsLTAuNDhsLTAuMTgsLTAuMDFsLTEuOTksMC41MWwtMi40MiwxLjI1bC0yLjg5LC0wLjg0bC0yLjQ4LC0yLjAzbC0yLjQxLC0wLjc5bC0xLjYxLC0yLjQ3bC0xLjg0LC0zLjYzbC0wLjM2LC0wLjE1bC0xLjIyLDAuNGwtMS40OCwtMC44NGwtMC4zNywwLjA2bC0wLjcyLDAuODJsLTEuMDgsLTEuMTJsLTAuMDIsLTEuMzVsLTAuMywtMC4yOWwtMC40MywwLjBsMC4zNCwtMS42NGwtMC4wNCwtMC4yMmwtMS4yOSwtMi4xMWwtMC4xMiwtMC4xMWwtMy4wLC0xLjQ5bC0xLjYyLC0yLjQ5bDAuNTIsLTEuOThsMS4xOCwtMC45MmwwLjExLC0wLjI3bC0wLjE5LC0xLjY2bC0wLjE2LC0wLjIzbC0xLjU1LC0wLjgxbC0xLjU4LC0zLjMzbC0xLjMsLTIuMmwwLjQxLC0wLjc1bDAuMDMsLTAuMjFsLTAuNzMsLTMuMTJsMS4yLC0wLjU5bDAuMzUsMC45bDEuMjYsMS4zNWwwLjE1LDAuMDlsMS44MSwwLjM5bDAuOTEsLTAuMDlsMC4xNSwtMC4wNmwyLjksLTIuMTNsMC43LC0wLjE2bDAuNDgsMC41NmwtMC43NSwxLjI2bDAuMDUsMC4zN2wxLjU2LDEuNTNsMC4yOCwwLjA4bDAuMzcsLTAuMDlsMC43LDEuODlsMC4yMSwwLjE5bDIuMzEsMC41OWwxLjY5LDEuNGwwLjE1LDAuMDdsMy42NiwwLjQ5bDMuOTEsLTAuNzZsMC4yMywtMC4xOWwwLjE5LC0wLjUyWlwiLCBcIm5hbWVcIjogXCJJcmFuXCJ9LCBcIkFNXCI6IHtcInBhdGhcIjogXCJNNTMwLjUxLDE3Ni4wOGwyLjkxLC0wLjM5bDAuNDEsMC42M2wwLjExLDAuMWwwLjY2LDAuMzZsLTAuMzIsMC40N2wwLjA3LDAuNDFsMS4xLDAuODRsLTAuNTMsMC43bDAuMDYsMC40MmwxLjA2LDAuOGwxLjAxLDAuNDRsMC4wNCwxLjU2bC0wLjQ0LDAuMDRsLTAuODgsLTEuNDZsMC4wMSwtMC4zN2wtMC4zLC0wLjMxbC0wLjk4LDAuMDFsLTAuNjUsLTAuNjlsLTAuMjYsLTAuMDlsLTAuMzgsMC4wNmwtMC45NywtMC44MmwtMS42NCwtMC42NWwwLjIsLTEuMmwtMC4wMiwtMC4xNmwtMC4yOCwtMC42OVpcIiwgXCJuYW1lXCI6IFwiQXJtZW5pYVwifSwgXCJJVFwiOiB7XCJwYXRoXCI6IFwiTTQ1MS42OCwxNTguNThsMC4yLDAuMTZsMy4zLDAuNzVsLTAuMjIsMS4yNmwwLjAyLDAuMThsMC4zNSwwLjc4bC0xLjQsLTAuMzJsLTAuMjEsMC4wM2wtMi4wNCwxLjFsLTAuMTYsMC4yOWwwLjEzLDEuNDdsLTAuMjksMC44MmwwLjAyLDAuMjRsMC44MiwxLjU3bDAuMSwwLjExbDIuMjgsMS41bDEuMjksMi41M2wyLjc5LDIuNDNsMC4yLDAuMDdsMS44MywtMC4wMmwwLjMxLDAuMzRsLTAuNDYsMC4zOWwwLjA2LDAuNWw0LjA2LDEuOTdsMi4wNiwxLjQ5bDAuMTcsMC4zNmwtMC4yNCwwLjUzbC0xLjA4LC0xLjA3bC0wLjE1LC0wLjA4bC0yLjE4LC0wLjQ5bC0wLjMzLDAuMTVsLTEuMDUsMS45MWwwLjExLDAuNGwxLjYzLDAuOThsLTAuMjIsMS4xMmwtMC44NCwwLjE0bC0wLjIyLDAuMTVsLTEuMjcsMi4zOGwtMC41NCwwLjEybDAuMDEsLTAuNDdsMC40OCwtMS40NmwwLjUsLTAuNThsMC4wMywtMC4zNWwtMC45NywtMS42OWwtMC43NiwtMS40OGwtMC4xNywtMC4xNWwtMC45NCwtMC4zM2wtMC42OCwtMS4xOGwtMC4xNiwtMC4xM2wtMS41MywtMC41MmwtMS4wMywtMS4xNGwtMC4xOSwtMC4xbC0xLjc4LC0wLjE5bC0xLjg4LC0xLjNsLTIuMjcsLTEuOTRsLTEuNjQsLTEuNjhsLTAuNzYsLTIuOTRsLTAuMjEsLTAuMjFsLTEuMjIsLTAuMzVsLTIuMDEsLTEuMGwtMC4yNCwtMC4wMWwtMS4xNSwwLjQybC0wLjExLDAuMDdsLTEuMzgsMS4zNmwtMC41LDAuMTFsMC4xOSwtMC44N2wtMC4yMSwtMC4zNWwtMS4xOSwtMC4zNGwtMC41NiwtMi4wNmwwLjc2LC0wLjgybDAuMDMsLTAuMzZsLTAuNjgsLTEuMDhsMC4wNCwtMC4zMWwwLjY4LDAuNDJsMC4xOSwwLjA0bDEuMjEsLTAuMTVsMC4xNCwtMC4wNmwxLjE4LC0wLjg5bDAuMjUsMC4yOWwwLjI1LDAuMWwxLjE5LC0wLjFsMC4yNSwtMC4xOGwwLjQ1LC0xLjA0bDEuNjEsMC4zNGwwLjE5LC0wLjAybDEuMSwtMC41M2wwLjE3LC0wLjIybDAuMTUsLTAuOTVsMS4xOSwwLjM1bDAuMzUsLTAuMTZsMC4yMywtMC40N2wyLjExLC0wLjQ3bDAuNDUsMC44OVpNNDU5LjM1LDE4NC42M2wtMC43MSwxLjgxbDAuMCwwLjIzbDAuMzMsMC43OWwtMC4zNywxLjAzbC0xLjYsLTAuOTFsLTEuMzMsLTAuMzRsLTMuMjQsLTEuMzZsMC4yMywtMC45OWwyLjczLDAuMjRsMy45NSwtMC41Wk00NDMuOTUsMTc1LjkxbDEuMjYsMS43N2wtMC4zMSwzLjQ3bC0wLjgyLC0wLjEzbC0wLjI2LDAuMDhsLTAuODMsMC43OWwtMC42NCwtMC41MmwtMC4xLC0zLjQybC0wLjQ0LC0xLjM0bDAuOTEsMC4xbDAuMjEsLTAuMDZsMS4wMSwtMC43NFpcIiwgXCJuYW1lXCI6IFwiSXRhbHlcIn0sIFwiVk5cIjoge1wicGF0aFwiOiBcIk02OTAuOCwyMzAuMjFsLTIuODYsMS45M2wtMi4wOSwyLjQ2bC0wLjA2LDAuMTFsLTAuNTUsMS44bDAuMDQsMC4yNmw0LjI2LDYuMWwyLjMxLDEuNjNsMS40NiwxLjk3bDEuMTIsNC42MmwtMC4zMiw0LjNsLTEuOTcsMS41N2wtMi44NSwxLjYybC0yLjA5LDIuMTRsLTIuODMsMi4xM2wtMC42NywtMS4xOWwwLjY1LC0xLjU4bC0wLjA5LC0wLjM1bC0xLjQ3LC0xLjE0bDEuNjcsLTAuNzlsMi41NywtMC4xOGwwLjIyLC0wLjQ3bC0wLjg5LC0xLjI0bDMuODgsLTEuOGwwLjE3LC0wLjI0bDAuMzEsLTMuMDVsLTAuMDEsLTAuMTNsLTAuNTYsLTEuNjNsMC40NCwtMi40OGwtMC4wMSwtMC4xNWwtMC42MywtMS44MWwtMC4wOCwtMC4xMmwtMS44NywtMS43N2wtMy42NCwtNS4zbC0wLjExLC0wLjFsLTIuNjgsLTEuMzlsMC40NSwtMC41OWwxLjUzLC0wLjY1bDAuMTYsLTAuMzlsLTAuOTcsLTIuMjdsLTAuMjcsLTAuMThsLTIuODksLTAuMDJsLTEuMDQsLTIuMjFsLTEuMjgsLTEuODNsMC45NiwtMC40NmwxLjk3LDAuMDFsMi40MywtMC4zbDAuMTMsLTAuMDVsMS45NSwtMS4yOWwxLjA0LDAuODVsMC4xMywwLjA2bDEuOTgsMC40MmwtMC4zMiwxLjIxbDAuMDksMC4zbDEuMTksMS4wN2wwLjEyLDAuMDdsMS44OCwwLjUxWlwiLCBcIm5hbWVcIjogXCJWaWV0bmFtXCJ9LCBcIkFSXCI6IHtcInBhdGhcIjogXCJNMjU4LjExLDM0MS4zNGwxLjQsMS44MWwwLjUxLC0wLjA2bDAuODksLTEuOTRsMi41MSwwLjFsMC4zNiwwLjQ5bDQuNiw0LjMxbDAuMTUsMC4wOGwxLjk5LDAuMzlsMy4wMSwxLjkzbDIuNSwxLjAxbDAuMjgsMC45MWwtMi40LDMuOTdsMC4xNywwLjQ0bDIuNTcsMC43NGwyLjgxLDAuNDFsMi4wOSwtMC40NGwwLjE0LC0wLjA3bDIuMjcsLTIuMDZsMC4wOSwtMC4xN2wwLjM4LC0yLjJsMC44OCwtMC4zNmwxLjA1LDEuMjlsLTAuMDQsMS44OGwtMS45OCwxLjRsLTEuNzIsMS4xM2wtMi44NCwyLjY1bC0zLjM0LDMuNzNsLTAuMDcsMC4xMmwtMC42MywyLjIybC0wLjY3LDIuODVsMC4wMiwyLjczbC0wLjQ3LDAuNTRsLTAuMDcsMC4xN2wtMC4zNiwzLjI4bDAuMTIsMC4yN2wzLjAzLDIuMzJsLTAuMzEsMS43OGwwLjExLDAuMjlsMS40NCwxLjE1bC0wLjExLDEuMTdsLTIuMzIsMy41N2wtMy41OSwxLjUxbC00Ljk1LDAuNmwtMi43MiwtMC4yOWwtMC4zMiwwLjM4bDAuNSwxLjY3bC0wLjQ5LDIuMTNsMC4wMSwwLjE2bDAuNCwxLjI5bC0xLjI3LDAuODhsLTIuNDEsMC4zOWwtMi4zMywtMS4wNWwtMC4zMSwwLjA0bC0wLjk3LDAuNzhsLTAuMTEsMC4yN2wwLjM1LDIuOThsMC4xNiwwLjIzbDEuNjksMC45MWwwLjMxLC0wLjAybDEuMDgsLTAuNzVsMC40NiwwLjk2bC0yLjEsMC44OGwtMi4wMSwxLjg5bC0wLjA5LDAuMThsLTAuMzYsMy4wNWwtMC41MSwxLjQybC0yLjE2LDAuMDFsLTAuMTksMC4wN2wtMS45NiwxLjU5bC0wLjEsMC4xNWwtMC43MiwyLjM0bDAuMDgsMC4zMWwyLjQ2LDIuMzFsMC4xMywwLjA3bDIuMDksMC41NmwtMC43NCwyLjQ1bC0yLjg2LDEuNzVsLTAuMTIsMC4xNGwtMS41OSwzLjcxbC0yLjIsMS4yNGwtMC4xLDAuMDlsLTEuMDMsMS41NGwtMC4wNCwwLjIzbDAuODEsMy40NWwwLjA2LDAuMTNsMS4xMywxLjMybC0yLjU5LC0wLjU3bC01Ljg5LC0wLjQ0bC0wLjkyLC0xLjczbDAuMDUsLTIuNGwtMC4zNCwtMC4zbC0xLjQ5LDAuMTlsLTAuNzIsLTAuOThsLTAuMiwtMy4yMWwxLjc5LC0xLjMzbDAuMSwtMC4xM2wwLjc5LC0yLjA0bDAuMDIsLTAuMTZsLTAuMjcsLTEuNTJsMS4zMSwtMi42OWwwLjkxLC00LjE1bC0wLjIzLC0xLjcybDAuOTEsLTAuNDlsMC4xNSwtMC4zM2wtMC4yNywtMS4xNmwtMC4xNSwtMC4ybC0wLjg3LC0wLjQ2bDAuNjUsLTEuMDFsLTAuMDQsLTAuMzdsLTEuMDYsLTEuMDlsLTAuNTQsLTMuMmwwLjgzLC0wLjUxbDAuMTQsLTAuMjlsLTAuNDIsLTMuNmwwLjU4LC0yLjk4bDAuNjQsLTIuNWwxLjQxLC0xLjBsMC4xMiwtMC4zMmwtMC43NSwtMi44bC0wLjAxLC0yLjQ4bDEuODEsLTEuNzhsMC4wOSwtMC4yMmwtMC4wNiwtMi4zbDEuMzksLTIuNjlsMC4wMywtMC4xNGwwLjAxLC0yLjU4bC0wLjExLC0wLjI0bC0wLjU3LC0wLjQ1bC0xLjEsLTQuNTlsMS40OSwtMi43M2wwLjA0LC0wLjE3bC0wLjIzLC0yLjU5bDAuODYsLTIuMzhsMS42LC0yLjQ4bDEuNzQsLTEuNjVsMC4wNCwtMC4zOWwtMC42NCwtMC44OWwwLjQyLC0wLjdsMC4wNCwtMC4xNmwtMC4wOCwtNC4yNmwyLjU1LC0xLjIzbDAuMTYsLTAuMThsMC44NiwtMi43NWwtMC4wMSwtMC4yMmwtMC4yMiwtMC40OGwxLjg0LC0yLjFsMy4wLDAuNTlaTTI1Ni43Nyw0MzguOThsLTIuMSwwLjE1bC0xLjE4LC0xLjE0bC0wLjE5LC0wLjA4bC0xLjUzLC0wLjA5bC0yLjM4LC0wLjBsLTAuMCwtNi4yOGwwLjQsMC42NWwxLjI1LDIuNTVsMC4xMSwwLjEybDMuMjYsMi4wN2wzLjE5LDAuOGwtMC44MiwxLjI2WlwiLCBcIm5hbWVcIjogXCJBcmdlbnRpbmFcIn0sIFwiQVVcIjoge1wicGF0aFwiOiBcIk03MDUuNTUsMzUzLjA2bDAuMDksMC4wOWwwLjM3LDAuMDVsMC4xMywtMC4zNWwtMC41NywtMS42OWwwLjQ4LDAuM2wwLjcxLDAuOTlsMC4zNCwwLjExbDAuMiwtMC4yOWwtMC4wNCwtMS4zN2wtMC4wNCwtMC4xNGwtMS4yMiwtMi4wN2wtMC4yOCwtMC45bC0wLjUxLC0wLjY5bDAuMjQsLTEuMzNsMC41MiwtMC43bDAuMzQsLTEuMzJsMC4wMSwtMC4xM2wtMC4yNSwtMS40NGwwLjUxLC0wLjk0bDAuMSwxLjAzbDAuMjMsMC4yNmwwLjMyLC0wLjE0bDEuMDEsLTEuNzJsMS45NCwtMC44NGwxLjI3LC0xLjE0bDEuODQsLTAuOTJsMS4wLC0wLjE4bDAuNiwwLjI4bDAuMjYsLTAuMGwxLjk0LC0wLjk2bDEuNDgsLTAuMjhsMC4xOSwtMC4xM2wwLjMyLC0wLjQ5bDAuNTEsLTAuMThsMS40MiwwLjA1bDIuNjMsLTAuNzZsMC4xMSwtMC4wNmwxLjM2LC0xLjE1bDAuMDgsLTAuMWwwLjYxLC0xLjMzbDEuNDIsLTEuMjdsMC4xLC0wLjE5bDAuMTEsLTEuMDNsMC4wNiwtMS4zMmwxLjM5LC0xLjc0bDAuODUsMS43OWwwLjQsMC4xNGwxLjA3LC0wLjUxbDAuMTEsLTAuNDVsLTAuNzcsLTEuMDVsMC41MywtMC44NGwwLjg2LDAuNDNsMC40MywtMC4yMmwwLjI5LC0xLjg1bDEuMjksLTEuMTlsMC42LC0wLjk4bDEuMTYsLTAuNGwwLjIsLTAuMjdsMC4wMiwtMC4zNGwwLjc0LDAuMmwwLjM4LC0wLjI3bDAuMDMsLTAuNDRsMS45OCwtMC42MWwxLjcsMS4wOGwxLjM2LDEuNDhsMC4yMiwwLjFsMS41NSwwLjAybDEuNTcsMC4yNGwwLjMzLC0wLjRsLTAuNDgsLTEuMjdsMS4wOSwtMS44NmwxLjA2LC0wLjYzbDAuMSwtMC40MmwtMC4yOCwtMC40NmwwLjkzLC0xLjI0bDEuMzYsLTAuOGwxLjE2LDAuMjdsMC4xNCwwLjBsMi4xLC0wLjQ4bDAuMjMsLTAuM2wtMC4wNSwtMS4zbC0wLjE4LC0wLjI2bC0xLjA4LC0wLjQ5bDAuNDQsLTAuMTJsMS41MiwwLjU4bDEuMzksMS4wNmwyLjExLDAuNjVsMC4xOSwtMC4wbDAuNTksLTAuMjFsMS40NCwwLjcybDAuMjcsMC4wbDEuMzcsLTAuNjhsMC44NCwwLjJsMC4yNiwtMC4wNmwwLjM3LC0wLjNsMC44MiwwLjg5bC0wLjU2LDEuMTRsLTAuODQsMC45MWwtMC43NSwwLjA3bC0wLjI2LDAuMzhsMC4yNiwwLjlsLTAuNjcsMS4xNWwtMC44OCwxLjI0bC0wLjA1LDAuMjVsMC4xOCwwLjcybDAuMTIsMC4xN2wxLjk5LDEuNDJsMS45NiwwLjg0bDEuMjUsMC44NmwxLjgsMS41MWwwLjE5LDAuMDdsMC42MywtMC4wbDEuMTUsMC41OGwwLjM0LDAuN2wwLjE3LDAuMTVsMi4zOSwwLjg4bDAuMjQsLTAuMDJsMS42NSwtMC44OGwwLjE0LC0wLjE2bDAuNDksLTEuMzdsMC41MiwtMS4xOWwwLjMxLC0xLjM5bDAuNzUsLTIuMDJsMC4wMSwtMC4xOWwtMC4zMywtMS4xNmwwLjE2LC0wLjY3bDAuMCwtMC4xM2wtMC4yOCwtMS40MWwwLjMsLTEuNzhsMC40MiwtMC40NWwwLjA1LC0wLjMzbC0wLjMzLC0wLjczbDAuNTYsLTEuMjVsMC40OCwtMS4zOWwwLjA3LC0wLjY5bDAuNTgsLTAuNTlsMC40OCwwLjg0bDAuMTcsMS41M2wwLjE3LDAuMjRsMC40NywwLjIzbDAuMDksMC45bDAuMDUsMC4xNGwwLjg3LDEuMjNsMC4xNywxLjMzbC0wLjA5LDAuODlsMC4wMywwLjE1bDAuOSwyLjBsMC40MywwLjEzbDEuMzgsLTAuODNsMC43MSwwLjkybDEuMDYsMC44OGwtMC4yMiwwLjk2bDAuMCwwLjE0bDAuNTMsMi4ybDAuMzgsMS4zbDAuMTUsMC4xOGwwLjUyLDAuMjZsMC42MiwyLjAxbC0wLjIzLDEuMjdsMC4wMiwwLjE4bDAuODEsMS43NmwwLjE0LDAuMTRsMi42OSwxLjM1bDMuMjEsMi4yMWwtMC4yLDAuNGwwLjA0LDAuMzRsMS4zOSwxLjZsMC45NSwyLjc4bDAuNDMsMC4xNmwwLjc5LC0wLjQ2bDAuODUsMC45NmwwLjM5LDAuMDVsMC4yMiwtMC4xNWwwLjM2LDIuMzNsMC4wOSwwLjE4bDEuNzgsMS42M2wxLjE2LDEuMDFsMS45LDIuMWwwLjY3LDIuMDVsMC4wNiwxLjQ3bC0wLjE3LDEuNjRsMC4wMywwLjE3bDEuMTYsMi4yMmwtMC4xNCwyLjI4bC0wLjQzLDEuMjRsLTAuNjgsMi40NGwwLjA0LDEuNjNsLTAuNDgsMS45MmwtMS4wNiwyLjQzbC0xLjc5LDEuMzJsLTAuMSwwLjEybC0wLjkxLDIuMTVsLTAuODIsMS4zN2wtMC43NiwyLjQ3bC0wLjk4LDEuNDZsLTAuNjMsMi4xNGwtMC4zMywyLjAybDAuMSwwLjgybC0xLjIxLDAuODVsLTIuNzEsMC4xbC0wLjEzLDAuMDNsLTIuMzEsMS4xOWwtMS4yMSwxLjE3bC0xLjM0LDEuMTFsLTEuODksLTEuMThsLTEuMzMsLTAuNDZsMC4zMiwtMS4yNGwtMC40LC0wLjM1bC0xLjQ2LDAuNjFsLTIuMDYsMS45OGwtMS45OSwtMC43M2wtMS40MywtMC40NmwtMS40NSwtMC4yMmwtMi4zMiwtMC44MWwtMS41MSwtMS42N2wtMC40NSwtMi4xMWwtMC42LC0xLjVsLTAuMDcsLTAuMTFsLTEuMjMsLTEuMTZsLTAuMTYsLTAuMDhsLTEuOTYsLTAuMjhsMC41OSwtMC45OWwwLjAzLC0wLjI0bC0wLjYxLC0yLjFsLTAuNTQsLTAuMDhsLTEuMTYsMS44NWwtMS4yMywwLjI5bDAuNzMsLTAuODhsMC4wNiwtMC4xMmwwLjM3LC0xLjU3bDAuOTMsLTEuMzNsMC4wNSwtMC4ybC0wLjIsLTIuMDdsLTAuNTMsLTAuMTdsLTIuMDEsMi4zNWwtMS41MiwwLjk0bC0wLjEyLDAuMTRsLTAuODIsMS45M2wtMS41LC0wLjlsMC4wNywtMS4zMmwtMC4wNiwtMC4ybC0xLjU3LC0yLjA0bC0xLjE1LC0wLjkybDAuMywtMC40MWwtMC4xLC0wLjQ0bC0zLjIxLC0xLjY5bC0wLjEzLC0wLjAzbC0xLjY5LC0wLjA4bC0yLjM1LC0xLjMxbC0wLjE2LC0wLjA0bC00LjU1LDAuMjdsLTMuMjQsMC45OWwtMi44LDAuOTFsLTIuMzMsLTAuMThsLTAuMTcsMC4wM2wtMi42MywxLjQxbC0yLjE0LDAuNjRsLTAuMiwwLjE5bC0wLjQ3LDEuNDJsLTAuOCwwLjk5bC0xLjk5LDAuMDZsLTEuNTUsMC4yNGwtMi4yNywtMC41bC0xLjc5LDAuM2wtMS43MSwwLjEzbC0wLjE5LDAuMDlsLTEuMzgsMS4zOWwtMC41OCwtMC4xbC0wLjIxLDAuMDRsLTEuMjYsMC44bC0xLjEzLDAuODVsLTEuNzIsLTAuMWwtMS42LC0wLjBsLTIuNTgsLTEuNzZsLTEuMjEsLTAuNDlsMC4wNCwtMS4xOWwxLjA0LC0wLjMybDAuMTYsLTAuMTJsMC40MiwtMC42NGwwLjA1LC0wLjE5bC0wLjA5LC0wLjk3bDAuMywtMi4wbC0wLjI4LC0xLjY0bC0xLjM0LC0yLjg0bC0wLjM5LC0xLjQ5bDAuMSwtMS41MWwtMC4wNCwtMC4xN2wtMC45NiwtMS43MmwtMC4wNiwtMC43M2wtMC4wOSwtMC4xOWwtMS4wNCwtMS4wMWwtMC4zLC0yLjAybC0wLjA1LC0wLjEybC0xLjIzLC0xLjgzWk03ODQuOTUsMzkzLjM1bDIuMzksMS4wMWwwLjIsMC4wMWwzLjI2LC0wLjk2bDEuMTksMC4xNmwwLjE2LDMuMTlsLTAuNzgsMC45NWwtMC4wNywwLjE2bC0wLjE5LDEuODNsLTAuNDMsLTAuNDFsLTAuNDQsMC4wM2wtMS42MSwxLjk2bC0wLjQsLTAuMTJsLTEuMzgsLTAuMDlsLTEuNDMsLTIuNDJsLTAuMzcsLTIuMDNsLTEuNCwtMi41M2wwLjA0LC0wLjk0bDEuMjcsMC4yWlwiLCBcIm5hbWVcIjogXCJBdXN0cmFsaWFcIn0sIFwiSUxcIjoge1wicGF0aFwiOiBcIk01MDkuMDQsMTk5LjIybDAuNzEsMC4wbDAuMjcsLTAuMTdsMC4xNSwtMC4zM2wwLjE5LC0wLjAxbDAuMDIsMC43M2wtMC4yNywwLjM0bDAuMDIsMC4wOGwtMC4zMiwwLjYybC0wLjY1LC0wLjI3bC0wLjQxLDAuMTlsLTAuNTIsMS44NWwwLjE2LDAuMzVsMC4xNCwwLjA3bC0wLjE3LDAuMWwtMC4xNCwwLjIxbC0wLjExLDAuNzNsMC4zOSwwLjMzbDAuODEsLTAuMjZsMC4wMywwLjY0bC0wLjk3LDMuNDNsLTEuMjgsLTMuNjdsMC42MiwtMC43OGwtMC4wMywtMC40MWwwLjU4LC0xLjE2bDAuNSwtMi4wN2wwLjI3LC0wLjU0WlwiLCBcIm5hbWVcIjogXCJJc3JhZWxcIn0sIFwiSU5cIjoge1wicGF0aFwiOiBcIk02MTUuODQsMTkyLjU4bDIuNCwyLjk3bC0wLjI0LDIuMTdsMC4wNSwwLjJsMC45NCwxLjM1bC0wLjA2LDAuOTdsLTEuNDYsLTAuM2wtMC4zNSwwLjM2bDAuNywzLjA2bDAuMTIsMC4xOGwyLjQ2LDEuNzVsMy4xMSwxLjcybC0xLjIzLDAuOTZsLTAuMSwwLjEzbC0wLjk3LDIuNTVsMC4xNiwwLjM4bDIuNDEsMS4wMmwyLjM3LDEuMzNsMy4yNywxLjUybDMuNDMsMC4zN2wxLjM3LDEuM2wwLjE3LDAuMDhsMS45MiwwLjI1bDMuMCwwLjYybDIuMTUsLTAuMDRsMC4yOCwtMC4yMmwwLjI5LC0xLjA2bDAuMCwtMC4xM2wtMC4zMiwtMS42NmwwLjE2LC0wLjk0bDEuMCwtMC4zN2wwLjIzLDIuMjhsMC4xOCwwLjI0bDIuMjgsMS4wMmwwLjIsMC4wMmwxLjUyLC0wLjQxbDIuMDYsMC4xOGwyLjA4LC0wLjA4bDAuMjksLTAuMjdsMC4xOCwtMS42NmwtMC4xLC0wLjI2bC0wLjUzLC0wLjQ0bDEuMzgsLTAuMjNsMC4xNSwtMC4wN2wyLjI2LC0yLjBsMi43NSwtMS42NWwxLjk3LDAuNjNsMC4yNSwtMC4wM2wxLjU0LC0wLjk5bDAuODksMS4yOGwtMC43MiwwLjk3bDAuMiwwLjQ4bDIuNDksMC4zN2wwLjExLDAuNjFsLTAuNjksMC4zOWwtMC4xNSwwLjNsMC4xNSwxLjIybC0xLjM2LC0wLjM3bC0wLjIzLDAuMDNsLTMuMjQsMS44NmwtMC4xNSwwLjI4bDAuMDcsMS40NGwtMS4zMywyLjE2bC0wLjA0LDAuMTNsLTAuMTIsMS4yNGwtMC45OCwxLjkxbC0xLjcyLC0wLjUzbC0wLjM5LDAuMjhsLTAuMDksMi42NmwtMC41MiwwLjgzbC0wLjA0LDAuMjNsMC4yMSwwLjg5bC0wLjcxLDAuMzZsLTEuMjEsLTMuODVsLTAuMjksLTAuMjFsLTAuNjksMC4wMWwtMC4yOSwwLjIzbC0wLjI4LDEuMTdsLTAuODQsLTAuODRsMC42LC0xLjE3bDAuOTcsLTAuMTNsMC4yMywtMC4xNmwxLjE1LC0yLjI1bC0wLjE4LC0wLjQybC0xLjU0LC0wLjQ3bC0yLjMsMC4wNGwtMi4xMywtMC4zM2wtMC4xOSwtMS42M2wtMC4yNiwtMC4yNmwtMS4xMywtMC4xM2wtMS45MywtMS4xM2wtMC40MiwwLjEzbC0wLjg4LDEuODJsMC4wOCwwLjM3bDEuNDcsMS4xNWwtMS4yMSwwLjc3bC0wLjEsMC4xbC0wLjU2LDAuOTdsMC4xMywwLjQybDEuMzEsMC42MWwtMC4zNiwxLjM1bDAuMDEsMC4ybDAuODUsMS45NWwwLjM3LDIuMDVsLTAuMjYsMC42OGwtMS41NSwtMC4wMmwtMy4wOSwwLjU0bC0wLjI1LDAuMzJsMC4xMywxLjg0bC0xLjIxLDEuNGwtMy42NCwxLjc5bC0yLjc5LDMuMDRsLTEuODYsMS42MWwtMi40OCwxLjY4bC0wLjEzLDAuMjVsLTAuMCwxLjBsLTEuMDcsMC41NWwtMi4yMSwwLjlsLTEuMTMsMC4xM2wtMC4yNSwwLjE5bC0wLjc1LDEuOTZsLTAuMDIsMC4xNWwwLjUyLDMuMzFsMC4xMywyLjAzbC0xLjAzLDIuMzVsLTAuMDMsMC4xMmwtMC4wMSw0LjAzbC0xLjAyLDAuMWwtMC4yMywwLjE1bC0xLjE0LDEuOTNsMC4wNCwwLjM2bDAuNDQsMC40OGwtMS44MywwLjU3bC0wLjE4LDAuMTVsLTAuODEsMS42NWwtMC43NCwwLjUzbC0yLjE0LC0yLjEybC0xLjE0LC0zLjQ3bC0wLjk2LC0yLjU3bC0wLjksLTEuMjZsLTEuMywtMi4zOGwtMC42MSwtMy4xNGwtMC40NCwtMS42MmwtMi4yOSwtMy41NmwtMS4wMywtNC45NGwtMC43NCwtMy4yOWwwLjAxLC0zLjEybC0wLjQ5LC0yLjUxbC0wLjQxLC0wLjIybC0zLjU2LDEuNTNsLTEuNTksLTAuMjhsLTIuOTYsLTIuODdsMC45NCwtMC43NGwwLjA2LC0wLjQxbC0wLjc0LC0xLjAzbC0yLjczLC0yLjFsMS4zNSwtMS40M2w1LjM4LDAuMDFsMC4yOSwtMC4zNmwtMC41LC0yLjI5bC0wLjA5LC0wLjE1bC0xLjMzLC0xLjI4bC0wLjI3LC0xLjk2bC0wLjEyLC0wLjJsLTEuMzYsLTEuMGwyLjQyLC0yLjQ4bDIuNzcsMC4ybDAuMjQsLTAuMWwyLjYyLC0yLjg1bDEuNTksLTIuOGwyLjQxLC0yLjc0bDAuMDcsLTAuMmwtMC4wNCwtMS44MmwyLjAxLC0xLjUxbC0wLjAxLC0wLjQ5bC0xLjk1LC0xLjMzbC0wLjgzLC0xLjgxbC0wLjgyLC0yLjI3bDAuOTgsLTAuOTdsMy42NCwwLjY2bDIuODksLTAuNDJsMC4xNywtMC4wOGwyLjE4LC0yLjE1WlwiLCBcIm5hbWVcIjogXCJJbmRpYVwifSwgXCJUWlwiOiB7XCJwYXRoXCI6IFwiTTUwNS43NywyODcuNThsMC4zNiwwLjIzbDguOTUsNS4wM2wwLjE1LDEuM2wwLjEzLDAuMjFsMy40LDIuMzdsLTEuMDcsMi44OGwtMC4wMiwwLjE0bDAuMTUsMS40MmwwLjE1LDAuMjNsMS40NywwLjg0bDAuMDUsMC40MmwtMC42NiwxLjQ0bC0wLjAyLDAuMThsMC4xMywwLjcybC0wLjE2LDEuMTZsMC4wMywwLjE5bDAuODcsMS41N2wxLjAzLDIuNDhsMC4xMiwwLjE0bDAuNTMsMC4zMmwtMS41OSwxLjE4bC0yLjY0LDAuOTVsLTEuNDUsLTAuMDRsLTAuMiwwLjA3bC0wLjgxLDAuNjlsLTEuNjQsMC4wNmwtMC42OCwwLjNsLTIuOSwtMC42OWwtMS43MSwwLjE3bC0wLjY1LC0zLjE4bC0wLjA1LC0wLjEybC0xLjM1LC0xLjg4bC0wLjE5LC0wLjEybC0yLjQxLC0wLjQ2bC0xLjM4LC0wLjc0bC0xLjYzLC0wLjQ0bC0wLjk2LC0wLjQxbC0wLjk1LC0wLjU4bC0xLjMxLC0zLjA5bC0xLjQ3LC0xLjQ2bC0wLjQ1LC0xLjMxbDAuMjQsLTEuMzRsLTAuMzksLTEuOTlsMC43MSwtMC4wOGwwLjE4LC0wLjA5bDAuOTEsLTAuOTFsMC45OCwtMS4zMWwwLjU5LC0wLjVsMC4xMSwtMC4yNGwtMC4wMiwtMC44MWwtMC4wOCwtMC4ybC0wLjQ3LC0wLjVsLTAuMSwtMC42N2wwLjUxLC0wLjIzbDAuMTgsLTAuMjVsMC4xNCwtMS40N2wtMC4wNSwtMC4ybC0wLjc2LC0xLjA5bDAuNDUsLTAuMTVsMi43MSwwLjAzbDUuMDEsLTAuMTlaXCIsIFwibmFtZVwiOiBcIlRhbnphbmlhXCJ9LCBcIkFaXCI6IHtcInBhdGhcIjogXCJNNTM5LjM2LDE3NS42NmwwLjE2LDAuMDlsMS4xMSwwLjJsMC4zMiwtMC4xNWwwLjQsLTAuNzFsMS4yMiwtMC45OWwxLjExLDEuMzNsMS4yNiwyLjA5bDAuMjIsMC4xNGwxLjA2LDAuMTNsMC4yOCwwLjI5bC0xLjQ2LDAuMTdsLTAuMjYsMC4yNGwtMC40MywyLjI2bC0wLjM5LDAuOTJsLTAuODUsMC42M2wtMC4xMiwwLjI1bDAuMDYsMS4ybC0wLjIyLDAuMDVsLTEuMjgsLTEuMjVsMC43NCwtMS4yNWwtMC4wMywtMC4zNWwtMC43NCwtMC44NmwtMC4zLC0wLjFsLTEuMDUsMC4yN2wtMi40OSwxLjgybC0wLjA0LC0xLjQ2bC0wLjE4LC0wLjI3bC0xLjA5LC0wLjQ3bC0wLjgsLTAuNmwwLjUzLC0wLjdsLTAuMDYsLTAuNDJsLTEuMTEsLTAuODRsMC4zNCwtMC41MWwtMC4xMSwtMC40M2wtMC44OSwtMC40OGwtMC4zMywtMC40OWwwLjI1LC0wLjJsMS43OCwwLjgxbDEuMzUsMC4xOGwwLjI1LC0wLjA5bDAuMzQsLTAuMzVsMC4wMiwtMC4zOWwtMS4wNCwtMS4zNmwwLjI4LC0wLjE4bDAuNDksMC4wN2wxLjY1LDEuNzRaTTUzMy41MywxODAuMTZsMC42MywwLjY3bDAuMjIsMC4wOWwwLjgsLTAuMGwwLjA0LDAuMzFsMC42NiwxLjA5bC0wLjk0LC0wLjIxbC0xLjE2LC0xLjI0bC0wLjI1LC0wLjcxWlwiLCBcIm5hbWVcIjogXCJBemVyYmFpamFuXCJ9LCBcIklFXCI6IHtcInBhdGhcIjogXCJNNDA1LjE3LDEzNS4zNWwwLjM2LDIuMTZsLTEuNzgsMi44NGwtNC4yOCwxLjkxbC0zLjAyLC0wLjQzbDEuODEsLTMuMTNsMC4wMiwtMC4yNmwtMS4yMywtMy4yNmwzLjI0LC0yLjU2bDEuNTQsLTEuMzJsMC4zNywxLjMzbC0wLjQ5LDEuNzdsMC4zLDAuMzhsMS40OSwtMC4wNWwxLjY4LDAuNjNaXCIsIFwibmFtZVwiOiBcIklyZWxhbmRcIn0sIFwiSURcIjoge1wicGF0aFwiOiBcIk03NTYuNTYsMjg3Ljg2bDAuNjksNC4wMmwwLjE1LDAuMjFsMi41OSwxLjVsMC4zOSwtMC4wN2wyLjA1LC0yLjYxbDIuNzUsLTEuNDVsMi4wOSwtMC4wbDIuMDgsMC44NWwxLjg1LDAuODlsMi41MiwwLjQ2bDAuMDgsMTUuNDRsLTEuNzIsLTEuNmwtMC4xNSwtMC4wN2wtMi41NCwtMC41MWwtMC4yOSwwLjFsLTAuNTMsMC42MmwtMi41MywwLjA2bDAuNzgsLTEuNTFsMS40OCwtMC42NmwwLjE3LC0wLjM0bC0wLjY1LC0yLjc0bC0xLjIzLC0yLjE5bC0wLjE0LC0wLjEzbC00Ljg1LC0yLjEzbC0yLjA5LC0wLjIzbC0zLjcsLTIuMjhsLTAuNDEsMC4xbC0wLjY3LDEuMTFsLTAuNjMsMC4xNGwtMC40MSwtMC42N2wtMC4wMSwtMS4wMWwtMC4xNCwtMC4yNWwtMS4zOSwtMC44OWwyLjA1LC0wLjY5bDEuNzMsMC4wNWwwLjI5LC0wLjM5bC0wLjIxLC0wLjY2bC0wLjI5LC0wLjIxbC0zLjUsLTAuMGwtMC45LC0xLjM2bC0wLjE5LC0wLjEzbC0yLjE0LC0wLjQ0bC0wLjY1LC0wLjc2bDIuODYsLTAuNTFsMS4yOCwtMC43OWwzLjc1LDAuOTZsMC4zMiwwLjc2Wk03NTguMDEsMzAwLjM3bC0wLjc5LDEuMDRsLTAuMTQsLTEuMDdsMC40LC0wLjgxbDAuMjksLTAuNDdsMC4yNCwwLjMxbC0wLjAsMS4wWk03NDcuNDUsMjkyLjlsMC40OCwxLjAybC0xLjQ1LC0wLjY5bC0yLjA5LC0wLjIxbC0xLjQ1LDAuMTZsLTEuMjgsLTAuMDdsMC4zNSwtMC44MWwyLjg2LC0wLjFsMi41OCwwLjY4Wk03NDEuMTUsMjg1LjY5bC0wLjE2LC0wLjI1bC0wLjcyLC0zLjA4bDAuNDcsLTEuODZsMC4zNSwtMC4zOGwwLjEsMC43M2wwLjI1LDAuMjZsMS4yOCwwLjE5bDAuMTgsMC43OGwtMC4xMSwxLjhsLTAuOTYsLTAuMThsLTAuMzUsMC4yMmwtMC4zOCwxLjUybDAuMDUsMC4yNFpNNzQxLjE5LDI4NS43NWwwLjc2LDAuOTdsLTAuMTEsMC4wNWwtMC42NSwtMS4wMlpNNzM5LjE4LDI5My41MmwtMC42MSwwLjU0bC0xLjQ0LC0wLjM4bC0wLjI1LC0wLjU1bDEuOTMsLTAuMDlsMC4zNiwwLjQ4Wk03MjguNCwyOTUuODdsLTAuMjcsLTAuMDdsLTIuMjYsMC44OWwtMC4zNywtMC40MWwwLjI3LC0wLjhsLTAuMDksLTAuMzNsLTEuNjgsLTEuMzdsMC4xNywtMi4yOWwtMC40MiwtMC4zbC0xLjY3LDAuNzZsLTAuMTcsMC4yOWwwLjIxLDIuOTJsMC4wOSwzLjM0bC0xLjIyLDAuMjhsLTAuNzgsLTAuNTRsMC42NSwtMi4xbDAuMDEsLTAuMTRsLTAuMzksLTIuNDJsLTAuMjksLTAuMjVsLTAuODYsLTAuMDJsLTAuNjMsLTEuNGwwLjk5LC0xLjYxbDAuMzUsLTEuOTdsMS4yNCwtMy43M2wwLjQ5LC0wLjk2bDEuOTUsLTEuN2wxLjg2LDAuNjlsMy4xNiwwLjM1bDIuOTIsLTAuMWwwLjE3LC0wLjA2bDIuMjQsLTEuNjVsMC4xMSwwLjE0bC0xLjgsMi4yMmwtMS43MiwwLjQ0bC0yLjQxLC0wLjQ4bC00LjIxLDAuMTNsLTIuMTksMC4zNmwtMC4yNSwwLjI0bC0wLjM2LDEuOWwwLjA4LDAuMjdsMi4yNCwyLjIzbDAuNCwwLjAybDEuMjksLTEuMDhsMy4xOSwtMC41OGwtMC4xOSwwLjA2bC0xLjA0LDEuNGwtMi4xMywwLjk0bC0wLjEyLDAuNDVsMi4yNiwzLjA2bC0wLjM3LDAuNjlsMC4wMywwLjMybDEuNTEsMS45NVpNNzI4LjQ4LDI5NS45N2wwLjU5LDAuNzZsLTAuMDIsMS4zN2wtMS4wLDAuNTVsLTAuNjQsLTAuNThsMS4wOSwtMS44NGwtMC4wMiwtMC4yNlpNNzI4LjY0LDI4Ni45NWwwLjc5LC0wLjE0bC0wLjA3LDAuMzlsLTAuNzIsLTAuMjRaTTczMi4zOCwzMTAuMWwtMS44OSwwLjQ5bC0wLjA2LC0wLjA2bDAuMTcsLTAuNjRsMS4wLC0xLjQybDIuMTQsLTAuODdsMC4xLDAuMmwwLjA0LDAuNThsLTEuNDksMS43MlpNNzI4LjI2LDMwNS43MWwtMC4xNywwLjYzbC0zLjUzLDAuNjdsLTMuMDIsLTAuMjhsLTAuMCwtMC40MmwxLjY2LC0wLjQ0bDEuNDcsMC43MWwwLjE2LDAuMDNsMS43NSwtMC4yMWwxLjY5LC0wLjY5Wk03MjIuOTgsMzEwLjMzbC0wLjc0LDAuMDNsLTIuNTIsLTEuMzVsMS40MiwtMC4zbDEuMTksMC43bDAuNzIsMC42M2wtMC4wNiwwLjI4Wk03MTYuMjQsMzA1LjYzbDAuNjYsMC40OWwwLjIyLDAuMDZsMS4zNSwtMC4xOGwwLjMxLDAuNTNsLTQuMTgsMC43N2wtMC44LC0wLjAxbDAuNTEsLTAuODZsMS4yLC0wLjAybDAuMjQsLTAuMTJsMC40OSwtMC42NVpNNzE1Ljg0LDI4MC4yMWwwLjA5LDAuMzRsMi4yNSwxLjg2bC0yLjI1LDAuMjJsLTAuMjQsMC4xN2wtMC44NCwxLjcxbC0wLjAzLDAuMTVsMC4xLDIuMTFsLTIuMjcsMS42MmwtMC4xMywwLjI0bC0wLjA2LDIuNDZsLTAuNzQsMi45MmwtMC4wMiwtMC4wNWwtMC4zOSwtMC4xNmwtMi42MiwxLjA0bC0wLjg2LC0xLjMzbC0wLjIzLC0wLjE0bC0xLjcxLC0wLjE0bC0xLjE5LC0wLjc2bC0wLjI1LC0wLjAzbC0yLjc4LDAuODRsLTAuNzksLTEuMDVsLTAuMjYsLTAuMTJsLTEuNjEsMC4xM2wtMS44LC0wLjI1bC0wLjM2LC0zLjEzbC0wLjE1LC0wLjIzbC0xLjE4LC0wLjY1bC0xLjEzLC0yLjAybC0wLjMzLC0yLjFsMC4yNywtMi4xOWwxLjA1LC0xLjE3bDAuMjgsMS4xMmwwLjEsMC4xNmwxLjcxLDEuNDFsMC4yOCwwLjA1bDEuNTUsLTAuNDlsMS41NCwwLjE3bDAuMjMsLTAuMDdsMS40LC0xLjIxbDEuMDUsLTAuMTlsMi4zLDAuNjhsMC4xNiwwLjBsMi4wNCwtMC41M2wwLjIxLC0wLjE5bDEuMjYsLTMuNDFsMC45MSwtMC44MmwwLjA5LC0wLjE0bDAuOCwtMi42NGwyLjYzLDAuMGwxLjcxLDAuMzNsLTEuMTksMS44OWwwLjAyLDAuMzRsMS43NCwyLjI0bC0wLjM3LDEuMFpNNjkyLjY3LDMwMi4wbDAuMjYsMC4xOWw0LjgsMC4yNWwwLjI4LC0wLjE2bDAuNDQsLTAuODNsNC4yOSwxLjEybDAuODUsMS41MmwwLjIzLDAuMTVsMy43MSwwLjQ1bDIuMzcsMS4xNWwtMi4wNiwwLjY5bC0yLjc3LC0xLjBsLTIuMjUsMC4wN2wtMi41NywtMC4xOGwtMi4zMSwtMC40NWwtMi45NCwtMC45N2wtMS44NCwtMC4yNWwtMC4xMywwLjAxbC0wLjk3LDAuMjlsLTQuMzQsLTAuOThsLTAuMzgsLTAuOTRsLTAuMjUsLTAuMTlsLTEuNzYsLTAuMTRsMS4zMSwtMS44NGwyLjgxLDAuMTRsMS45NywwLjk2bDAuOTUsMC4xOWwwLjI4LDAuNzRaTTY4NS42MywyOTkuMjdsLTIuMzYsMC4wNGwtMi4wNywtMi4wNWwtMy4xNywtMi4wMmwtMS4wNiwtMS41bC0xLjg4LC0yLjAybC0xLjIyLC0xLjg1bC0xLjksLTMuNDlsLTIuMiwtMi4xMWwtMC43MSwtMi4wOGwtMC45NCwtMS45OWwtMC4xLC0wLjEybC0yLjIxLC0xLjU0bC0xLjM1LC0yLjE3bC0xLjg2LC0xLjM5bC0yLjUzLC0yLjY4bC0wLjE0LC0wLjgxbDEuMjIsMC4wOGwzLjc2LDAuNDdsMi4xNiwyLjRsMS45NCwxLjdsMS4zNywxLjA0bDIuMzUsMi42N2wwLjIyLDAuMWwyLjQ0LDAuMDRsMS45OSwxLjYybDEuNDIsMi4wNmwwLjA5LDAuMDlsMS42NywxLjBsLTAuODgsMS44bDAuMTEsMC4zOWwxLjQ0LDAuODdsMC4xMywwLjA0bDAuNjgsMC4wNWwwLjQxLDEuNjJsMC44NywxLjRsMC4yMiwwLjE0bDEuNzEsMC4yMWwxLjA2LDEuMzhsLTAuNjEsMy4wNGwtMC4wOSwzLjZaXCIsIFwibmFtZVwiOiBcIkluZG9uZXNpYVwifSwgXCJVQVwiOiB7XCJwYXRoXCI6IFwiTTUwMC41NCwxNDEuNDJsMC45LDAuMTNsMC4yNywtMC4xMWwwLjUyLC0wLjYybDAuNjgsMC4xM2wyLjQzLC0wLjNsMS4zMiwxLjU3bC0wLjQ1LDAuNDhsLTAuMDcsMC4yNmwwLjIxLDEuMDNsMC4yNywwLjI0bDEuODUsMC4xNWwwLjc2LDEuMjJsLTAuMDUsMC41NWwwLjIsMC4zMWwzLjE4LDEuMTVsMC4xOCwwLjAxbDEuNzUsLTAuNDdsMS40MiwxLjQxbDAuMjIsMC4wOWwxLjQyLC0wLjAzbDMuNDQsMC45OWwwLjAyLDAuNjVsLTAuOTcsMS42MmwtMC4wMywwLjI0bDAuNTIsMS42N2wtMC4yOSwwLjc5bC0yLjI0LDAuMjJsLTAuMTQsMC4wNWwtMS4yOSwwLjg5bC0wLjEzLDAuMjNsLTAuMDcsMS4xNmwtMS43NSwwLjIybC0wLjEyLDAuMDRsLTEuNiwwLjk4bC0yLjI3LDAuMTZsLTAuMTIsMC4wNGwtMi4xNiwxLjE3bC0wLjE2LDAuMjlsMC4xNSwxLjk0bDAuMTQsMC4yM2wxLjIzLDAuNzVsMC4xOCwwLjA0bDIuMDYsLTAuMTVsLTAuMjIsMC41MWwtMi42NywwLjU0bC0zLjI3LDEuNzJsLTEuMCwtMC40NWwwLjQ1LC0xLjE5bC0wLjE5LC0wLjM5bC0yLjM0LC0wLjc4bDAuMTUsLTAuMmwyLjMyLC0xLjBsMC4wOSwtMC40OWwtMC43MywtMC43MmwtMC4xNSwtMC4wOGwtMy42OSwtMC43NWwtMC4xNCwtMC45NmwtMC4zNSwtMC4yNWwtMi4zMiwwLjM5bC0wLjIxLDAuMTVsLTAuOTEsMS43bC0xLjc3LDIuMWwtMC45MywtMC40NGwtMC4yNCwtMC4wbC0xLjA1LDAuNDVsLTAuNDgsLTAuMjVsMC4xMywtMC4wN2wwLjE0LC0wLjE1bDAuNDMsLTEuMDRsMC42NywtMC45N2wwLjA0LC0wLjI2bC0wLjEsLTAuMzFsMC4wNCwtMC4wMmwwLjExLDAuMTlsMC4yNCwwLjE1bDEuNDgsMC4wOWwwLjc4LC0wLjI1bDAuMDcsLTAuNTNsLTAuMjcsLTAuMTlsMC4wOSwtMC4yNWwtMC4wOCwtMC4zM2wtMC44MSwtMC43NGwtMC4zNCwtMS4yNGwtMC4xNCwtMC4xOGwtMC43MywtMC40MmwwLjE1LC0wLjg3bC0wLjExLC0wLjI5bC0xLjEzLC0wLjg2bC0wLjE1LC0wLjA2bC0wLjk3LC0wLjExbC0xLjc5LC0wLjk3bC0wLjIsLTAuMDNsLTEuNjYsMC4zMmwtMC4xMywwLjA2bC0wLjUyLDAuNDFsLTAuOTUsLTAuMGwtMC4yMywwLjExbC0wLjU2LDAuNjZsLTEuNzQsMC4yOWwtMC43OSwwLjQzbC0xLjAxLC0wLjY4bC0wLjE2LC0wLjA1bC0xLjU3LC0wLjAxbC0xLjUyLC0wLjM1bC0wLjIzLDAuMDRsLTAuNzEsMC40NWwtMC4wOSwtMC40M2wtMC4xMywtMC4xOWwtMS4xOCwtMC43NGwwLjM4LC0xLjAybDAuNTMsLTAuNjRsMC4zNSwwLjEybDAuMzcsLTAuNDFsLTAuNTcsLTEuMjlsMi4xLC0yLjVsMS4xNiwtMC4zNmwwLjIsLTAuMmwwLjI3LC0wLjkybC0wLjAxLC0wLjJsLTEuMSwtMi41MmwwLjc5LC0wLjA5bDAuMTMsLTAuMDVsMS4zLC0wLjg2bDEuODMsLTAuMDdsMi40OCwwLjI2bDIuODQsMC44bDEuOTEsMC4wNmwwLjg4LDAuNDVsMC4yOSwtMC4wMWwwLjcyLC0wLjQ0bDAuNDksMC41OGwwLjI1LDAuMTFsMi4yLC0wLjE2bDAuOTQsMC4zbDAuMzksLTAuMjZsMC4xNSwtMS41N2wwLjYxLC0wLjU5bDIuMDEsLTAuMTlaXCIsIFwibmFtZVwiOiBcIlVrcmFpbmVcIn0sIFwiUUFcIjoge1wicGF0aFwiOiBcIk01NDguNDcsMjIxLjQ3bC0wLjE1LC0xLjcybDAuNTksLTEuMjNsMC4zOCwtMC4xNmwwLjU0LDAuNmwwLjA0LDEuNGwtMC40NywxLjM3bC0wLjQxLDAuMTFsLTAuNTMsLTAuMzdaXCIsIFwibmFtZVwiOiBcIlFhdGFyXCJ9LCBcIk1aXCI6IHtcInBhdGhcIjogXCJNNTA3LjcxLDMxNC4xNGwxLjY1LC0wLjE4bDIuOTYsMC43bDAuMiwtMC4wMmwwLjYsLTAuMjlsMS42OCwtMC4wNmwwLjE4LC0wLjA3bDAuOCwtMC42OWwxLjUsMC4wMmwyLjc0LC0wLjk4bDEuNzQsLTEuMjdsMC4yNSwwLjdsLTAuMSwyLjQ3bDAuMzEsMi4yN2wwLjEsMy45N2wwLjQyLDEuMjRsLTAuNywxLjcxbC0wLjk0LDEuNzNsLTEuNTIsMS41MmwtNS4wNiwyLjIxbC0yLjg4LDIuOGwtMS4wMSwwLjUxbC0xLjcyLDEuODFsLTAuOTksMC41OGwtMC4xNSwwLjIzbC0wLjIxLDEuODZsMC4wNCwwLjE5bDEuMTcsMS45NWwwLjQ3LDEuNDdsMC4wMywwLjc0bDAuMzksMC4yOGwwLjA1LC0wLjAxbC0wLjA2LDIuMTNsLTAuMzksMS4xOWwwLjEsMC4zM2wwLjQyLDAuMzJsLTAuMjgsMC44M2wtMC45NSwwLjg2bC0yLjAzLDAuODhsLTMuMDgsMS40OWwtMS4xLDAuOTlsLTAuMDksMC4yOGwwLjIxLDEuMTNsMC4yMSwwLjIzbDAuMzgsMC4xMWwtMC4xNCwwLjg5bC0xLjM5LC0wLjAybC0wLjE3LC0wLjk0bC0wLjM4LC0xLjIzbC0wLjIsLTAuODlsMC40NCwtMi45MWwtMC4wMSwtMC4xNGwtMC42NSwtMS44OGwtMS4xNSwtMy41NWwyLjUyLC0yLjg1bDAuNjgsLTEuODlsMC4yOSwtMC4xOGwwLjE0LC0wLjJsMC4yOCwtMS41M2wtMC4wMywtMC4xOWwtMC4zNiwtMC43bDAuMSwtMS44M2wwLjQ5LC0xLjg0bC0wLjAxLC0zLjI2bC0wLjE0LC0wLjI1bC0xLjMsLTAuODNsLTAuMTEsLTAuMDRsLTEuMDgsLTAuMTdsLTAuNDcsLTAuNTVsLTAuMSwtMC4wOGwtMS4xNiwtMC41NGwtMC4xMywtMC4wM2wtMS44MywwLjA0bC0wLjMyLC0yLjI1bDcuMTksLTEuOTlsMS4zMiwxLjEybDAuMjksMC4wNmwwLjU1LC0wLjE5bDAuNzUsMC40OWwwLjExLDAuODFsLTAuNDksMS4xMWwtMC4wMiwwLjE1bDAuMTksMS44MWwwLjA5LDAuMThsMS42MywxLjU5bDAuNDgsLTAuMWwwLjcyLC0xLjY4bDAuOTksLTAuNDlsMC4xNywtMC4yOWwtMC4yMSwtMy4yOWwtMC4wNCwtMC4xM2wtMS4xMSwtMS45MmwtMC45LC0wLjgybC0wLjIxLC0wLjA4bC0wLjYyLDAuMDNsLTAuNjMsLTIuOThsMC42MSwtMS42N1pcIiwgXCJuYW1lXCI6IFwiTW96YW1iaXF1ZVwifX0sIFwiaGVpZ2h0XCI6IDQ0MC43MDYzMTA3NDQxMzMxLCBcInByb2plY3Rpb25cIjoge1widHlwZVwiOiBcIm1pbGxcIiwgXCJjZW50cmFsTWVyaWRpYW5cIjogMTEuNX0sIFwid2lkdGhcIjogOTAwLjB9KTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9wbHVnaW5zL2p2ZWN0b3JtYXAvanF1ZXJ5LWp2ZWN0b3JtYXAtd29ybGQtbWlsbC1lbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///53\n");

/***/ }),

/***/ 54:
/***/ (function(module, exports) {

eval("/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n *\n * Version: 1.3.8\n *\n */\n(function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:\"auto\",height:\"250px\",size:\"7px\",color:\"#000\",position:\"right\",distance:\"1px\",start:\"top\",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:\"#333\",railOpacity:.2,railDraggable:!0,railClass:\"slimScrollRail\",barClass:\"slimScrollBar\",wrapperClass:\"slimScrollDiv\",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:\"7px\",railBorderRadius:\"7px\"},f);this.each(function(){function v(d){if(r){d=d||window.event;\nvar c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest(\".\"+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css(\"top\"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0<d?Math.ceil(g):Math.floor(g),c.css({top:g+\"px\"}));l=parseInt(c.css(\"top\"))/(b.outerHeight()-c.outerHeight());g=\nl*(b[0].scrollHeight-b.outerHeight());e&&(g=d,d=g/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),f),c.css({top:d+\"px\"}));b.scrollTop(g);b.trigger(\"slimscrolling\",~~g);w();p()}function x(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),30);c.css({height:u+\"px\"});var a=u==b.outerHeight()?\"none\":\"block\";c.css({display:a})}function w(){x();clearTimeout(B);l==~~l?(k=a.allowPageScroll,C!=l&&b.trigger(\"slimscroll\",0==~~l?\"top\":\"bottom\")):k=!1;C=l;u>=b.outerHeight()?k=!0:(c.stop(!0,\n!0).fadeIn(\"fast\"),a.railVisible&&m.stop(!0,!0).fadeIn(\"fast\"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut(\"slow\"),m.fadeOut(\"slow\"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings(\".\"+a.barClass),m=b.siblings(\".\"+a.railClass);x();if(e.isPlainObject(f)){if(\"height\"in f&&\"auto\"==f.height){b.parent().css(\"height\",\"auto\");b.css(\"height\",\"auto\");var h=b.parent().parent().height();b.parent().css(\"height\",\nh);b.css(\"height\",h)}else\"height\"in f&&(h=f.height,b.parent().css(\"height\",h),b.css(\"height\",h));if(\"scrollTo\"in f)q=parseInt(a.scrollTo);else if(\"scrollBy\"in f)q+=parseInt(a.scrollBy);else if(\"destroy\"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&\"destroy\"in f)){a.height=\"auto\"==a.height?b.parent().height():a.height;q=e(\"<div></div>\").addClass(a.wrapperClass).css({position:\"relative\",overflow:\"hidden\",width:a.width,height:a.height});b.css({overflow:\"hidden\",\nwidth:a.width,height:a.height});var m=e(\"<div></div>\").addClass(a.railClass).css({width:a.size,height:\"100%\",position:\"absolute\",top:0,display:a.alwaysVisible&&a.railVisible?\"block\":\"none\",\"border-radius\":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e(\"<div></div>\").addClass(a.barClass).css({background:a.color,width:a.size,position:\"absolute\",top:0,opacity:a.opacity,display:a.alwaysVisible?\"block\":\"none\",\"border-radius\":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,\nWebkitBorderRadius:a.borderRadius,zIndex:99}),h=\"right\"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);a.railDraggable&&c.bind(\"mousedown\",function(a){var b=e(document);z=!0;t=parseFloat(c.css(\"top\"));pageY=a.pageY;b.bind(\"mousemove.slimscroll\",function(a){currTop=t+a.pageY-pageY;c.css(\"top\",currTop);n(0,c.position().top,!1)});b.bind(\"mouseup.slimscroll\",function(a){z=!1;p();b.unbind(\".slimscroll\")});return!1}).bind(\"selectstart.slimscroll\",\nfunction(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind(\"touchstart\",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind(\"touchmove\",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)});\nx();\"bottom\"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):\"top\"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener(\"DOMMouseScroll\",v,!1),this.addEventListener(\"mousewheel\",v,!1)):document.attachEvent(\"onmousewheel\",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2pxdWVyeS1zbGltc2Nyb2xsL2pxdWVyeS5zbGltc2Nyb2xsLm1pbi5qcz8xNWE0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxhQUFhLHVCQUF1QixnQkFBZ0IsNlhBQTZYLElBQUkscUJBQXFCLGNBQWMsTUFBTTtBQUMzZSxRQUFRLG9DQUFvQyx5QkFBeUIsMkZBQTJGLHlDQUF5Qyx1QkFBdUIsa0JBQWtCLEtBQUssc0NBQXNDLDZJQUE2SSxXQUFXLEdBQUcsMkRBQTJEO0FBQ25mLHNDQUFzQyxpRkFBaUYsV0FBVyxHQUFHLGVBQWUsK0JBQStCLElBQUksSUFBSSxhQUFhLGlFQUFpRSxPQUFPLGNBQWMsRUFBRSx3Q0FBd0MsT0FBTyxVQUFVLEVBQUUsYUFBYSxJQUFJLGdCQUFnQixzRkFBc0YsSUFBSTtBQUN0ZCxnRUFBZ0UsYUFBYSwwQ0FBMEMsaUVBQWlFLE9BQU8sbUNBQW1DLHdDQUF3QywrRUFBK0UsSUFBSSx1QkFBdUIsbUNBQW1DLGdDQUFnQyx1QkFBdUIsbUNBQW1DO0FBQ2pmLEdBQUcsa0JBQWtCLDRFQUE0RSx5Q0FBeUMsK0NBQStDLHVCQUF1QixXQUFXLFdBQVcsV0FBVyxPQUFPLFlBQVksOENBQThDLHVEQUF1RCxpREFBaUQsb0VBQW9FLEVBQUUsT0FBTztBQUN2ZSw4QkFBOEIsRUFBRSxrREFBa0QscU1BQXFNLCtDQUErQztBQUN0VSw0Q0FBNEMseUJBQXlCLGlCQUFpQixFQUFFLGlCQUFpQixTQUFTLFNBQVMsVUFBVSxxQkFBcUIscUJBQXFCLGdEQUFnRCxrQkFBa0IsS0FBSywyQkFBMkIsY0FBYywwQ0FBMEMsd0JBQXdCLHFCQUFxQix5QkFBeUIsRUFBRSx3Q0FBd0MsS0FBSyxJQUFJLHdCQUF3QixFQUFFLFNBQVM7QUFDcmUsWUFBWSxvQkFBb0IsbUJBQW1CLFNBQVMsRUFBRSxtQkFBbUIsSUFBSSxZQUFZLElBQUksRUFBRSxtQkFBbUIsS0FBSyxZQUFZLEtBQUssRUFBRSxtQkFBbUIsS0FBSyxJQUFJLElBQUksWUFBWSxLQUFLLElBQUksRUFBRSxrQ0FBa0MscUVBQXFFLEVBQUUsK0JBQStCLG9DQUFvQyxrSUFBa0k7QUFDdmYsSUFBSSwyQkFBMkIsb0NBQW9DLDZGQUE2Rix3SkFBd0osRUFBRSxhQUFhLEVBQUUsYUFBYSwyQkFBMkIsRUFBRSIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBDb3B5cmlnaHQgKGMpIDIwMTEgUGlvdHIgUm9jaGFsYSAoaHR0cDovL3JvY2hhLmxhKVxuICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocClcbiAqIGFuZCBHUEwgKGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwKSBsaWNlbnNlcy5cbiAqXG4gKiBWZXJzaW9uOiAxLjMuOFxuICpcbiAqL1xuKGZ1bmN0aW9uKGUpe2UuZm4uZXh0ZW5kKHtzbGltU2Nyb2xsOmZ1bmN0aW9uKGYpe3ZhciBhPWUuZXh0ZW5kKHt3aWR0aDpcImF1dG9cIixoZWlnaHQ6XCIyNTBweFwiLHNpemU6XCI3cHhcIixjb2xvcjpcIiMwMDBcIixwb3NpdGlvbjpcInJpZ2h0XCIsZGlzdGFuY2U6XCIxcHhcIixzdGFydDpcInRvcFwiLG9wYWNpdHk6LjQsYWx3YXlzVmlzaWJsZTohMSxkaXNhYmxlRmFkZU91dDohMSxyYWlsVmlzaWJsZTohMSxyYWlsQ29sb3I6XCIjMzMzXCIscmFpbE9wYWNpdHk6LjIscmFpbERyYWdnYWJsZTohMCxyYWlsQ2xhc3M6XCJzbGltU2Nyb2xsUmFpbFwiLGJhckNsYXNzOlwic2xpbVNjcm9sbEJhclwiLHdyYXBwZXJDbGFzczpcInNsaW1TY3JvbGxEaXZcIixhbGxvd1BhZ2VTY3JvbGw6ITEsd2hlZWxTdGVwOjIwLHRvdWNoU2Nyb2xsU3RlcDoyMDAsYm9yZGVyUmFkaXVzOlwiN3B4XCIscmFpbEJvcmRlclJhZGl1czpcIjdweFwifSxmKTt0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiB2KGQpe2lmKHIpe2Q9ZHx8d2luZG93LmV2ZW50O1xudmFyIGM9MDtkLndoZWVsRGVsdGEmJihjPS1kLndoZWVsRGVsdGEvMTIwKTtkLmRldGFpbCYmKGM9ZC5kZXRhaWwvMyk7ZShkLnRhcmdldHx8ZC5zcmNUYXJnZXR8fGQuc3JjRWxlbWVudCkuY2xvc2VzdChcIi5cIithLndyYXBwZXJDbGFzcykuaXMoYi5wYXJlbnQoKSkmJm4oYywhMCk7ZC5wcmV2ZW50RGVmYXVsdCYmIWsmJmQucHJldmVudERlZmF1bHQoKTtrfHwoZC5yZXR1cm5WYWx1ZT0hMSl9fWZ1bmN0aW9uIG4oZCxnLGUpe2s9ITE7dmFyIGY9Yi5vdXRlckhlaWdodCgpLWMub3V0ZXJIZWlnaHQoKTtnJiYoZz1wYXJzZUludChjLmNzcyhcInRvcFwiKSkrZCpwYXJzZUludChhLndoZWVsU3RlcCkvMTAwKmMub3V0ZXJIZWlnaHQoKSxnPU1hdGgubWluKE1hdGgubWF4KGcsMCksZiksZz0wPGQ/TWF0aC5jZWlsKGcpOk1hdGguZmxvb3IoZyksYy5jc3Moe3RvcDpnK1wicHhcIn0pKTtsPXBhcnNlSW50KGMuY3NzKFwidG9wXCIpKS8oYi5vdXRlckhlaWdodCgpLWMub3V0ZXJIZWlnaHQoKSk7Zz1cbmwqKGJbMF0uc2Nyb2xsSGVpZ2h0LWIub3V0ZXJIZWlnaHQoKSk7ZSYmKGc9ZCxkPWcvYlswXS5zY3JvbGxIZWlnaHQqYi5vdXRlckhlaWdodCgpLGQ9TWF0aC5taW4oTWF0aC5tYXgoZCwwKSxmKSxjLmNzcyh7dG9wOmQrXCJweFwifSkpO2Iuc2Nyb2xsVG9wKGcpO2IudHJpZ2dlcihcInNsaW1zY3JvbGxpbmdcIix+fmcpO3coKTtwKCl9ZnVuY3Rpb24geCgpe3U9TWF0aC5tYXgoYi5vdXRlckhlaWdodCgpL2JbMF0uc2Nyb2xsSGVpZ2h0KmIub3V0ZXJIZWlnaHQoKSwzMCk7Yy5jc3Moe2hlaWdodDp1K1wicHhcIn0pO3ZhciBhPXU9PWIub3V0ZXJIZWlnaHQoKT9cIm5vbmVcIjpcImJsb2NrXCI7Yy5jc3Moe2Rpc3BsYXk6YX0pfWZ1bmN0aW9uIHcoKXt4KCk7Y2xlYXJUaW1lb3V0KEIpO2w9PX5+bD8oaz1hLmFsbG93UGFnZVNjcm9sbCxDIT1sJiZiLnRyaWdnZXIoXCJzbGltc2Nyb2xsXCIsMD09fn5sP1widG9wXCI6XCJib3R0b21cIikpOms9ITE7Qz1sO3U+PWIub3V0ZXJIZWlnaHQoKT9rPSEwOihjLnN0b3AoITAsXG4hMCkuZmFkZUluKFwiZmFzdFwiKSxhLnJhaWxWaXNpYmxlJiZtLnN0b3AoITAsITApLmZhZGVJbihcImZhc3RcIikpfWZ1bmN0aW9uIHAoKXthLmFsd2F5c1Zpc2libGV8fChCPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmRpc2FibGVGYWRlT3V0JiZyfHx5fHx6fHwoYy5mYWRlT3V0KFwic2xvd1wiKSxtLmZhZGVPdXQoXCJzbG93XCIpKX0sMUUzKSl9dmFyIHIseSx6LEIsQSx1LGwsQyxrPSExLGI9ZSh0aGlzKTtpZihiLnBhcmVudCgpLmhhc0NsYXNzKGEud3JhcHBlckNsYXNzKSl7dmFyIHE9Yi5zY3JvbGxUb3AoKSxjPWIuc2libGluZ3MoXCIuXCIrYS5iYXJDbGFzcyksbT1iLnNpYmxpbmdzKFwiLlwiK2EucmFpbENsYXNzKTt4KCk7aWYoZS5pc1BsYWluT2JqZWN0KGYpKXtpZihcImhlaWdodFwiaW4gZiYmXCJhdXRvXCI9PWYuaGVpZ2h0KXtiLnBhcmVudCgpLmNzcyhcImhlaWdodFwiLFwiYXV0b1wiKTtiLmNzcyhcImhlaWdodFwiLFwiYXV0b1wiKTt2YXIgaD1iLnBhcmVudCgpLnBhcmVudCgpLmhlaWdodCgpO2IucGFyZW50KCkuY3NzKFwiaGVpZ2h0XCIsXG5oKTtiLmNzcyhcImhlaWdodFwiLGgpfWVsc2VcImhlaWdodFwiaW4gZiYmKGg9Zi5oZWlnaHQsYi5wYXJlbnQoKS5jc3MoXCJoZWlnaHRcIixoKSxiLmNzcyhcImhlaWdodFwiLGgpKTtpZihcInNjcm9sbFRvXCJpbiBmKXE9cGFyc2VJbnQoYS5zY3JvbGxUbyk7ZWxzZSBpZihcInNjcm9sbEJ5XCJpbiBmKXErPXBhcnNlSW50KGEuc2Nyb2xsQnkpO2Vsc2UgaWYoXCJkZXN0cm95XCJpbiBmKXtjLnJlbW92ZSgpO20ucmVtb3ZlKCk7Yi51bndyYXAoKTtyZXR1cm59bihxLCExLCEwKX19ZWxzZSBpZighKGUuaXNQbGFpbk9iamVjdChmKSYmXCJkZXN0cm95XCJpbiBmKSl7YS5oZWlnaHQ9XCJhdXRvXCI9PWEuaGVpZ2h0P2IucGFyZW50KCkuaGVpZ2h0KCk6YS5oZWlnaHQ7cT1lKFwiPGRpdj48L2Rpdj5cIikuYWRkQ2xhc3MoYS53cmFwcGVyQ2xhc3MpLmNzcyh7cG9zaXRpb246XCJyZWxhdGl2ZVwiLG92ZXJmbG93OlwiaGlkZGVuXCIsd2lkdGg6YS53aWR0aCxoZWlnaHQ6YS5oZWlnaHR9KTtiLmNzcyh7b3ZlcmZsb3c6XCJoaWRkZW5cIixcbndpZHRoOmEud2lkdGgsaGVpZ2h0OmEuaGVpZ2h0fSk7dmFyIG09ZShcIjxkaXY+PC9kaXY+XCIpLmFkZENsYXNzKGEucmFpbENsYXNzKS5jc3Moe3dpZHRoOmEuc2l6ZSxoZWlnaHQ6XCIxMDAlXCIscG9zaXRpb246XCJhYnNvbHV0ZVwiLHRvcDowLGRpc3BsYXk6YS5hbHdheXNWaXNpYmxlJiZhLnJhaWxWaXNpYmxlP1wiYmxvY2tcIjpcIm5vbmVcIixcImJvcmRlci1yYWRpdXNcIjphLnJhaWxCb3JkZXJSYWRpdXMsYmFja2dyb3VuZDphLnJhaWxDb2xvcixvcGFjaXR5OmEucmFpbE9wYWNpdHksekluZGV4OjkwfSksYz1lKFwiPGRpdj48L2Rpdj5cIikuYWRkQ2xhc3MoYS5iYXJDbGFzcykuY3NzKHtiYWNrZ3JvdW5kOmEuY29sb3Isd2lkdGg6YS5zaXplLHBvc2l0aW9uOlwiYWJzb2x1dGVcIix0b3A6MCxvcGFjaXR5OmEub3BhY2l0eSxkaXNwbGF5OmEuYWx3YXlzVmlzaWJsZT9cImJsb2NrXCI6XCJub25lXCIsXCJib3JkZXItcmFkaXVzXCI6YS5ib3JkZXJSYWRpdXMsQm9yZGVyUmFkaXVzOmEuYm9yZGVyUmFkaXVzLE1vekJvcmRlclJhZGl1czphLmJvcmRlclJhZGl1cyxcbldlYmtpdEJvcmRlclJhZGl1czphLmJvcmRlclJhZGl1cyx6SW5kZXg6OTl9KSxoPVwicmlnaHRcIj09YS5wb3NpdGlvbj97cmlnaHQ6YS5kaXN0YW5jZX06e2xlZnQ6YS5kaXN0YW5jZX07bS5jc3MoaCk7Yy5jc3MoaCk7Yi53cmFwKHEpO2IucGFyZW50KCkuYXBwZW5kKGMpO2IucGFyZW50KCkuYXBwZW5kKG0pO2EucmFpbERyYWdnYWJsZSYmYy5iaW5kKFwibW91c2Vkb3duXCIsZnVuY3Rpb24oYSl7dmFyIGI9ZShkb2N1bWVudCk7ej0hMDt0PXBhcnNlRmxvYXQoYy5jc3MoXCJ0b3BcIikpO3BhZ2VZPWEucGFnZVk7Yi5iaW5kKFwibW91c2Vtb3ZlLnNsaW1zY3JvbGxcIixmdW5jdGlvbihhKXtjdXJyVG9wPXQrYS5wYWdlWS1wYWdlWTtjLmNzcyhcInRvcFwiLGN1cnJUb3ApO24oMCxjLnBvc2l0aW9uKCkudG9wLCExKX0pO2IuYmluZChcIm1vdXNldXAuc2xpbXNjcm9sbFwiLGZ1bmN0aW9uKGEpe3o9ITE7cCgpO2IudW5iaW5kKFwiLnNsaW1zY3JvbGxcIil9KTtyZXR1cm4hMX0pLmJpbmQoXCJzZWxlY3RzdGFydC5zbGltc2Nyb2xsXCIsXG5mdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpO2EucHJldmVudERlZmF1bHQoKTtyZXR1cm4hMX0pO20uaG92ZXIoZnVuY3Rpb24oKXt3KCl9LGZ1bmN0aW9uKCl7cCgpfSk7Yy5ob3ZlcihmdW5jdGlvbigpe3k9ITB9LGZ1bmN0aW9uKCl7eT0hMX0pO2IuaG92ZXIoZnVuY3Rpb24oKXtyPSEwO3coKTtwKCl9LGZ1bmN0aW9uKCl7cj0hMTtwKCl9KTtiLmJpbmQoXCJ0b3VjaHN0YXJ0XCIsZnVuY3Rpb24oYSxiKXthLm9yaWdpbmFsRXZlbnQudG91Y2hlcy5sZW5ndGgmJihBPWEub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdLnBhZ2VZKX0pO2IuYmluZChcInRvdWNobW92ZVwiLGZ1bmN0aW9uKGIpe2t8fGIub3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpO2Iub3JpZ2luYWxFdmVudC50b3VjaGVzLmxlbmd0aCYmKG4oKEEtYi5vcmlnaW5hbEV2ZW50LnRvdWNoZXNbMF0ucGFnZVkpL2EudG91Y2hTY3JvbGxTdGVwLCEwKSxBPWIub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdLnBhZ2VZKX0pO1xueCgpO1wiYm90dG9tXCI9PT1hLnN0YXJ0PyhjLmNzcyh7dG9wOmIub3V0ZXJIZWlnaHQoKS1jLm91dGVySGVpZ2h0KCl9KSxuKDAsITApKTpcInRvcFwiIT09YS5zdGFydCYmKG4oZShhLnN0YXJ0KS5wb3NpdGlvbigpLnRvcCxudWxsLCEwKSxhLmFsd2F5c1Zpc2libGV8fGMuaGlkZSgpKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcj8odGhpcy5hZGRFdmVudExpc3RlbmVyKFwiRE9NTW91c2VTY3JvbGxcIix2LCExKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXdoZWVsXCIsdiwhMSkpOmRvY3VtZW50LmF0dGFjaEV2ZW50KFwib25tb3VzZXdoZWVsXCIsdil9fSk7cmV0dXJuIHRoaXN9fSk7ZS5mbi5leHRlbmQoe3NsaW1zY3JvbGw6ZS5mbi5zbGltU2Nyb2xsfSl9KShqUXVlcnkpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvYm93ZXJfY29tcG9uZW50cy9qcXVlcnktc2xpbXNjcm9sbC9qcXVlcnkuc2xpbXNjcm9sbC5taW4uanNcbi8vIG1vZHVsZSBpZCA9IDU0XG4vLyBtb2R1bGUgY2h1bmtzID0gMSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///54\n");

/***/ }),

/***/ 55:
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * Chart.js\n * http://chartjs.org/\n * Version: 1.0.2\n *\n * Copyright 2015 Nick Downie\n * Released under the MIT license\n * https://github.com/nnnick/Chart.js/blob/master/LICENSE.md\n */\n\n\n(function(){\n\n\t\"use strict\";\n\n\t//Declare root variable - window in the browser, global on the server\n\tvar root = this,\n\t\tprevious = root.Chart;\n\n\t//Occupy the global variable of Chart, and create a simple base class\n\tvar Chart = function(context){\n\t\tvar chart = this;\n\t\tthis.canvas = context.canvas;\n\n\t\tthis.ctx = context;\n\n\t\t//Variables global to the chart\n\t\tvar computeDimension = function(element,dimension)\n\t\t{\n\t\t\tif (element['offset'+dimension])\n\t\t\t{\n\t\t\t\treturn element['offset'+dimension];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn document.defaultView.getComputedStyle(element).getPropertyValue(dimension);\n\t\t\t}\n\t\t}\n\n\t\tvar width = this.width = computeDimension(context.canvas,'Width');\n\t\tvar height = this.height = computeDimension(context.canvas,'Height');\n\n\t\t// Firefox requires this to work correctly\n\t\tcontext.canvas.width  = width;\n\t\tcontext.canvas.height = height;\n\n\t\tvar width = this.width = context.canvas.width;\n\t\tvar height = this.height = context.canvas.height;\n\t\tthis.aspectRatio = this.width / this.height;\n\t\t//High pixel density displays - multiply the size of the canvas height/width by the device pixel ratio, then scale.\n\t\thelpers.retinaScale(this);\n\n\t\treturn this;\n\t};\n\t//Globally expose the defaults to allow for user updating/changing\n\tChart.defaults = {\n\t\tglobal: {\n\t\t\t// Boolean - Whether to animate the chart\n\t\t\tanimation: true,\n\n\t\t\t// Number - Number of animation steps\n\t\t\tanimationSteps: 60,\n\n\t\t\t// String - Animation easing effect\n\t\t\tanimationEasing: \"easeOutQuart\",\n\n\t\t\t// Boolean - If we should show the scale at all\n\t\t\tshowScale: true,\n\n\t\t\t// Boolean - If we want to override with a hard coded scale\n\t\t\tscaleOverride: false,\n\n\t\t\t// ** Required if scaleOverride is true **\n\t\t\t// Number - The number of steps in a hard coded scale\n\t\t\tscaleSteps: null,\n\t\t\t// Number - The value jump in the hard coded scale\n\t\t\tscaleStepWidth: null,\n\t\t\t// Number - The scale starting value\n\t\t\tscaleStartValue: null,\n\n\t\t\t// String - Colour of the scale line\n\t\t\tscaleLineColor: \"rgba(0,0,0,.1)\",\n\n\t\t\t// Number - Pixel width of the scale line\n\t\t\tscaleLineWidth: 1,\n\n\t\t\t// Boolean - Whether to show labels on the scale\n\t\t\tscaleShowLabels: true,\n\n\t\t\t// Interpolated JS string - can access value\n\t\t\tscaleLabel: \"<%=value%>\",\n\n\t\t\t// Boolean - Whether the scale should stick to integers, and not show any floats even if drawing space is there\n\t\t\tscaleIntegersOnly: true,\n\n\t\t\t// Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value\n\t\t\tscaleBeginAtZero: false,\n\n\t\t\t// String - Scale label font declaration for the scale label\n\t\t\tscaleFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\n\t\t\t// Number - Scale label font size in pixels\n\t\t\tscaleFontSize: 12,\n\n\t\t\t// String - Scale label font weight style\n\t\t\tscaleFontStyle: \"normal\",\n\n\t\t\t// String - Scale label font colour\n\t\t\tscaleFontColor: \"#666\",\n\n\t\t\t// Boolean - whether or not the chart should be responsive and resize when the browser does.\n\t\t\tresponsive: false,\n\n\t\t\t// Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container\n\t\t\tmaintainAspectRatio: true,\n\n\t\t\t// Boolean - Determines whether to draw tooltips on the canvas or not - attaches events to touchmove & mousemove\n\t\t\tshowTooltips: true,\n\n\t\t\t// Boolean - Determines whether to draw built-in tooltip or call custom tooltip function\n\t\t\tcustomTooltips: false,\n\n\t\t\t// Array - Array of string names to attach tooltip events\n\t\t\ttooltipEvents: [\"mousemove\", \"touchstart\", \"touchmove\", \"mouseout\"],\n\n\t\t\t// String - Tooltip background colour\n\t\t\ttooltipFillColor: \"rgba(0,0,0,0.8)\",\n\n\t\t\t// String - Tooltip label font declaration for the scale label\n\t\t\ttooltipFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\n\t\t\t// Number - Tooltip label font size in pixels\n\t\t\ttooltipFontSize: 14,\n\n\t\t\t// String - Tooltip font weight style\n\t\t\ttooltipFontStyle: \"normal\",\n\n\t\t\t// String - Tooltip label font colour\n\t\t\ttooltipFontColor: \"#fff\",\n\n\t\t\t// String - Tooltip title font declaration for the scale label\n\t\t\ttooltipTitleFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\n\t\t\t// Number - Tooltip title font size in pixels\n\t\t\ttooltipTitleFontSize: 14,\n\n\t\t\t// String - Tooltip title font weight style\n\t\t\ttooltipTitleFontStyle: \"bold\",\n\n\t\t\t// String - Tooltip title font colour\n\t\t\ttooltipTitleFontColor: \"#fff\",\n\n\t\t\t// Number - pixel width of padding around tooltip text\n\t\t\ttooltipYPadding: 6,\n\n\t\t\t// Number - pixel width of padding around tooltip text\n\t\t\ttooltipXPadding: 6,\n\n\t\t\t// Number - Size of the caret on the tooltip\n\t\t\ttooltipCaretSize: 8,\n\n\t\t\t// Number - Pixel radius of the tooltip border\n\t\t\ttooltipCornerRadius: 6,\n\n\t\t\t// Number - Pixel offset from point x to tooltip edge\n\t\t\ttooltipXOffset: 10,\n\n\t\t\t// String - Template string for single tooltips\n\t\t\ttooltipTemplate: \"<%if (label){%><%=label%>: <%}%><%= value %>\",\n\n\t\t\t// String - Template string for single tooltips\n\t\t\tmultiTooltipTemplate: \"<%= value %>\",\n\n\t\t\t// String - Colour behind the legend colour block\n\t\t\tmultiTooltipKeyBackground: '#fff',\n\n\t\t\t// Function - Will fire on animation progression.\n\t\t\tonAnimationProgress: function(){},\n\n\t\t\t// Function - Will fire on animation completion.\n\t\t\tonAnimationComplete: function(){}\n\n\t\t}\n\t};\n\n\t//Create a dictionary of chart types, to allow for extension of existing types\n\tChart.types = {};\n\n\t//Global Chart helpers object for utility methods and classes\n\tvar helpers = Chart.helpers = {};\n\n\t\t//-- Basic js utility methods\n\tvar each = helpers.each = function(loopable,callback,self){\n\t\t\tvar additionalArgs = Array.prototype.slice.call(arguments, 3);\n\t\t\t// Check to see if null or undefined firstly.\n\t\t\tif (loopable){\n\t\t\t\tif (loopable.length === +loopable.length){\n\t\t\t\t\tvar i;\n\t\t\t\t\tfor (i=0; i<loopable.length; i++){\n\t\t\t\t\t\tcallback.apply(self,[loopable[i], i].concat(additionalArgs));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tfor (var item in loopable){\n\t\t\t\t\t\tcallback.apply(self,[loopable[item],item].concat(additionalArgs));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tclone = helpers.clone = function(obj){\n\t\t\tvar objClone = {};\n\t\t\teach(obj,function(value,key){\n\t\t\t\tif (obj.hasOwnProperty(key)) objClone[key] = value;\n\t\t\t});\n\t\t\treturn objClone;\n\t\t},\n\t\textend = helpers.extend = function(base){\n\t\t\teach(Array.prototype.slice.call(arguments,1), function(extensionObject) {\n\t\t\t\teach(extensionObject,function(value,key){\n\t\t\t\t\tif (extensionObject.hasOwnProperty(key)) base[key] = value;\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn base;\n\t\t},\n\t\tmerge = helpers.merge = function(base,master){\n\t\t\t//Merge properties in left object over to a shallow clone of object right.\n\t\t\tvar args = Array.prototype.slice.call(arguments,0);\n\t\t\targs.unshift({});\n\t\t\treturn extend.apply(null, args);\n\t\t},\n\t\tindexOf = helpers.indexOf = function(arrayToSearch, item){\n\t\t\tif (Array.prototype.indexOf) {\n\t\t\t\treturn arrayToSearch.indexOf(item);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tfor (var i = 0; i < arrayToSearch.length; i++) {\n\t\t\t\t\tif (arrayToSearch[i] === item) return i;\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t},\n\t\twhere = helpers.where = function(collection, filterCallback){\n\t\t\tvar filtered = [];\n\n\t\t\thelpers.each(collection, function(item){\n\t\t\t\tif (filterCallback(item)){\n\t\t\t\t\tfiltered.push(item);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn filtered;\n\t\t},\n\t\tfindNextWhere = helpers.findNextWhere = function(arrayToSearch, filterCallback, startIndex){\n\t\t\t// Default to start of the array\n\t\t\tif (!startIndex){\n\t\t\t\tstartIndex = -1;\n\t\t\t}\n\t\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n\t\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\t\tif (filterCallback(currentItem)){\n\t\t\t\t\treturn currentItem;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfindPreviousWhere = helpers.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex){\n\t\t\t// Default to end of the array\n\t\t\tif (!startIndex){\n\t\t\t\tstartIndex = arrayToSearch.length;\n\t\t\t}\n\t\t\tfor (var i = startIndex - 1; i >= 0; i--) {\n\t\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\t\tif (filterCallback(currentItem)){\n\t\t\t\t\treturn currentItem;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tinherits = helpers.inherits = function(extensions){\n\t\t\t//Basic javascript inheritance based on the model created in Backbone.js\n\t\t\tvar parent = this;\n\t\t\tvar ChartElement = (extensions && extensions.hasOwnProperty(\"constructor\")) ? extensions.constructor : function(){ return parent.apply(this, arguments); };\n\n\t\t\tvar Surrogate = function(){ this.constructor = ChartElement;};\n\t\t\tSurrogate.prototype = parent.prototype;\n\t\t\tChartElement.prototype = new Surrogate();\n\n\t\t\tChartElement.extend = inherits;\n\n\t\t\tif (extensions) extend(ChartElement.prototype, extensions);\n\n\t\t\tChartElement.__super__ = parent.prototype;\n\n\t\t\treturn ChartElement;\n\t\t},\n\t\tnoop = helpers.noop = function(){},\n\t\tuid = helpers.uid = (function(){\n\t\t\tvar id=0;\n\t\t\treturn function(){\n\t\t\t\treturn \"chart-\" + id++;\n\t\t\t};\n\t\t})(),\n\t\twarn = helpers.warn = function(str){\n\t\t\t//Method for warning of errors\n\t\t\tif (window.console && typeof window.console.warn == \"function\") console.warn(str);\n\t\t},\n\t\tamd = helpers.amd = (\"function\" == 'function' && __webpack_require__(11)),\n\t\t//-- Math methods\n\t\tisNumber = helpers.isNumber = function(n){\n\t\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t\t},\n\t\tmax = helpers.max = function(array){\n\t\t\treturn Math.max.apply( Math, array );\n\t\t},\n\t\tmin = helpers.min = function(array){\n\t\t\treturn Math.min.apply( Math, array );\n\t\t},\n\t\tcap = helpers.cap = function(valueToCap,maxValue,minValue){\n\t\t\tif(isNumber(maxValue)) {\n\t\t\t\tif( valueToCap > maxValue ) {\n\t\t\t\t\treturn maxValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if(isNumber(minValue)){\n\t\t\t\tif ( valueToCap < minValue ){\n\t\t\t\t\treturn minValue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn valueToCap;\n\t\t},\n\t\tgetDecimalPlaces = helpers.getDecimalPlaces = function(num){\n\t\t\tif (num%1!==0 && isNumber(num)){\n\t\t\t\treturn num.toString().split(\".\")[1].length;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\ttoRadians = helpers.radians = function(degrees){\n\t\t\treturn degrees * (Math.PI/180);\n\t\t},\n\t\t// Gets the angle from vertical upright to the point about a centre.\n\t\tgetAngleFromPoint = helpers.getAngleFromPoint = function(centrePoint, anglePoint){\n\t\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x,\n\t\t\t\tdistanceFromYCenter = anglePoint.y - centrePoint.y,\n\t\t\t\tradialDistanceFromCenter = Math.sqrt( distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n\n\t\t\tvar angle = Math.PI * 2 + Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n\t\t\t//If the segment is in the top left quadrant, we need to add another rotation to the angle\n\t\t\tif (distanceFromXCenter < 0 && distanceFromYCenter < 0){\n\t\t\t\tangle += Math.PI*2;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tangle: angle,\n\t\t\t\tdistance: radialDistanceFromCenter\n\t\t\t};\n\t\t},\n\t\taliasPixel = helpers.aliasPixel = function(pixelWidth){\n\t\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\n\t\t},\n\t\tsplineCurve = helpers.splineCurve = function(FirstPoint,MiddlePoint,AfterPoint,t){\n\t\t\t//Props to Rob Spencer at scaled innovation for his post on splining between points\n\t\t\t//http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\t\t\tvar d01=Math.sqrt(Math.pow(MiddlePoint.x-FirstPoint.x,2)+Math.pow(MiddlePoint.y-FirstPoint.y,2)),\n\t\t\t\td12=Math.sqrt(Math.pow(AfterPoint.x-MiddlePoint.x,2)+Math.pow(AfterPoint.y-MiddlePoint.y,2)),\n\t\t\t\tfa=t*d01/(d01+d12),// scaling factor for triangle Ta\n\t\t\t\tfb=t*d12/(d01+d12);\n\t\t\treturn {\n\t\t\t\tinner : {\n\t\t\t\t\tx : MiddlePoint.x-fa*(AfterPoint.x-FirstPoint.x),\n\t\t\t\t\ty : MiddlePoint.y-fa*(AfterPoint.y-FirstPoint.y)\n\t\t\t\t},\n\t\t\t\touter : {\n\t\t\t\t\tx: MiddlePoint.x+fb*(AfterPoint.x-FirstPoint.x),\n\t\t\t\t\ty : MiddlePoint.y+fb*(AfterPoint.y-FirstPoint.y)\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tcalculateOrderOfMagnitude = helpers.calculateOrderOfMagnitude = function(val){\n\t\t\treturn Math.floor(Math.log(val) / Math.LN10);\n\t\t},\n\t\tcalculateScaleRange = helpers.calculateScaleRange = function(valuesArray, drawingSize, textSize, startFromZero, integersOnly){\n\n\t\t\t//Set a minimum step of two - a point at the top of the graph, and a point at the base\n\t\t\tvar minSteps = 2,\n\t\t\t\tmaxSteps = Math.floor(drawingSize/(textSize * 1.5)),\n\t\t\t\tskipFitting = (minSteps >= maxSteps);\n\n\t\t\tvar maxValue = max(valuesArray),\n\t\t\t\tminValue = min(valuesArray);\n\n\t\t\t// We need some degree of seperation here to calculate the scales if all the values are the same\n\t\t\t// Adding/minusing 0.5 will give us a range of 1.\n\t\t\tif (maxValue === minValue){\n\t\t\t\tmaxValue += 0.5;\n\t\t\t\t// So we don't end up with a graph with a negative start value if we've said always start from zero\n\t\t\t\tif (minValue >= 0.5 && !startFromZero){\n\t\t\t\t\tminValue -= 0.5;\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t// Make up a whole number above the values\n\t\t\t\t\tmaxValue += 0.5;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar\tvalueRange = Math.abs(maxValue - minValue),\n\t\t\t\trangeOrderOfMagnitude = calculateOrderOfMagnitude(valueRange),\n\t\t\t\tgraphMax = Math.ceil(maxValue / (1 * Math.pow(10, rangeOrderOfMagnitude))) * Math.pow(10, rangeOrderOfMagnitude),\n\t\t\t\tgraphMin = (startFromZero) ? 0 : Math.floor(minValue / (1 * Math.pow(10, rangeOrderOfMagnitude))) * Math.pow(10, rangeOrderOfMagnitude),\n\t\t\t\tgraphRange = graphMax - graphMin,\n\t\t\t\tstepValue = Math.pow(10, rangeOrderOfMagnitude),\n\t\t\t\tnumberOfSteps = Math.round(graphRange / stepValue);\n\n\t\t\t//If we have more space on the graph we'll use it to give more definition to the data\n\t\t\twhile((numberOfSteps > maxSteps || (numberOfSteps * 2) < maxSteps) && !skipFitting) {\n\t\t\t\tif(numberOfSteps > maxSteps){\n\t\t\t\t\tstepValue *=2;\n\t\t\t\t\tnumberOfSteps = Math.round(graphRange/stepValue);\n\t\t\t\t\t// Don't ever deal with a decimal number of steps - cancel fitting and just use the minimum number of steps.\n\t\t\t\t\tif (numberOfSteps % 1 !== 0){\n\t\t\t\t\t\tskipFitting = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//We can fit in double the amount of scale points on the scale\n\t\t\t\telse{\n\t\t\t\t\t//If user has declared ints only, and the step value isn't a decimal\n\t\t\t\t\tif (integersOnly && rangeOrderOfMagnitude >= 0){\n\t\t\t\t\t\t//If the user has said integers only, we need to check that making the scale more granular wouldn't make it a float\n\t\t\t\t\t\tif(stepValue/2 % 1 === 0){\n\t\t\t\t\t\t\tstepValue /=2;\n\t\t\t\t\t\t\tnumberOfSteps = Math.round(graphRange/stepValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//If it would make it a float break out of the loop\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//If the scale doesn't have to be an int, make the scale more granular anyway.\n\t\t\t\t\telse{\n\t\t\t\t\t\tstepValue /=2;\n\t\t\t\t\t\tnumberOfSteps = Math.round(graphRange/stepValue);\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (skipFitting){\n\t\t\t\tnumberOfSteps = minSteps;\n\t\t\t\tstepValue = graphRange / numberOfSteps;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tsteps : numberOfSteps,\n\t\t\t\tstepValue : stepValue,\n\t\t\t\tmin : graphMin,\n\t\t\t\tmax\t: graphMin + (numberOfSteps * stepValue)\n\t\t\t};\n\n\t\t},\n\t\t/* jshint ignore:start */\n\t\t// Blows up jshint errors based on the new Function constructor\n\t\t//Templating methods\n\t\t//Javascript micro templating by John Resig - source at http://ejohn.org/blog/javascript-micro-templating/\n\t\ttemplate = helpers.template = function(templateString, valuesObject){\n\n\t\t\t// If templateString is function rather than string-template - call the function for valuesObject\n\n\t\t\tif(templateString instanceof Function){\n\t\t\t \treturn templateString(valuesObject);\n\t\t \t}\n\n\t\t\tvar cache = {};\n\t\t\tfunction tmpl(str, data){\n\t\t\t\t// Figure out if we're getting a template, or if we need to\n\t\t\t\t// load the template - and be sure to cache the result.\n\t\t\t\tvar fn = !/\\W/.test(str) ?\n\t\t\t\tcache[str] = cache[str] :\n\n\t\t\t\t// Generate a reusable function that will serve as a template\n\t\t\t\t// generator (and which will be cached).\n\t\t\t\tnew Function(\"obj\",\n\t\t\t\t\t\"var p=[],print=function(){p.push.apply(p,arguments);};\" +\n\n\t\t\t\t\t// Introduce the data as local variables using with(){}\n\t\t\t\t\t\"with(obj){p.push('\" +\n\n\t\t\t\t\t// Convert the template into pure JavaScript\n\t\t\t\t\tstr\n\t\t\t\t\t\t.replace(/[\\r\\t\\n]/g, \" \")\n\t\t\t\t\t\t.split(\"<%\").join(\"\\t\")\n\t\t\t\t\t\t.replace(/((^|%>)[^\\t]*)'/g, \"$1\\r\")\n\t\t\t\t\t\t.replace(/\\t=(.*?)%>/g, \"',$1,'\")\n\t\t\t\t\t\t.split(\"\\t\").join(\"');\")\n\t\t\t\t\t\t.split(\"%>\").join(\"p.push('\")\n\t\t\t\t\t\t.split(\"\\r\").join(\"\\\\'\") +\n\t\t\t\t\t\"');}return p.join('');\"\n\t\t\t\t);\n\n\t\t\t\t// Provide some basic currying to the user\n\t\t\t\treturn data ? fn( data ) : fn;\n\t\t\t}\n\t\t\treturn tmpl(templateString,valuesObject);\n\t\t},\n\t\t/* jshint ignore:end */\n\t\tgenerateLabels = helpers.generateLabels = function(templateString,numberOfSteps,graphMin,stepValue){\n\t\t\tvar labelsArray = new Array(numberOfSteps);\n\t\t\tif (labelTemplateString){\n\t\t\t\teach(labelsArray,function(val,index){\n\t\t\t\t\tlabelsArray[index] = template(templateString,{value: (graphMin + (stepValue*(index+1)))});\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn labelsArray;\n\t\t},\n\t\t//--Animation methods\n\t\t//Easing functions adapted from Robert Penner's easing equations\n\t\t//http://www.robertpenner.com/easing/\n\t\teasingEffects = helpers.easingEffects = {\n\t\t\tlinear: function (t) {\n\t\t\t\treturn t;\n\t\t\t},\n\t\t\teaseInQuad: function (t) {\n\t\t\t\treturn t * t;\n\t\t\t},\n\t\t\teaseOutQuad: function (t) {\n\t\t\t\treturn -1 * t * (t - 2);\n\t\t\t},\n\t\t\teaseInOutQuad: function (t) {\n\t\t\t\tif ((t /= 1 / 2) < 1) return 1 / 2 * t * t;\n\t\t\t\treturn -1 / 2 * ((--t) * (t - 2) - 1);\n\t\t\t},\n\t\t\teaseInCubic: function (t) {\n\t\t\t\treturn t * t * t;\n\t\t\t},\n\t\t\teaseOutCubic: function (t) {\n\t\t\t\treturn 1 * ((t = t / 1 - 1) * t * t + 1);\n\t\t\t},\n\t\t\teaseInOutCubic: function (t) {\n\t\t\t\tif ((t /= 1 / 2) < 1) return 1 / 2 * t * t * t;\n\t\t\t\treturn 1 / 2 * ((t -= 2) * t * t + 2);\n\t\t\t},\n\t\t\teaseInQuart: function (t) {\n\t\t\t\treturn t * t * t * t;\n\t\t\t},\n\t\t\teaseOutQuart: function (t) {\n\t\t\t\treturn -1 * ((t = t / 1 - 1) * t * t * t - 1);\n\t\t\t},\n\t\t\teaseInOutQuart: function (t) {\n\t\t\t\tif ((t /= 1 / 2) < 1) return 1 / 2 * t * t * t * t;\n\t\t\t\treturn -1 / 2 * ((t -= 2) * t * t * t - 2);\n\t\t\t},\n\t\t\teaseInQuint: function (t) {\n\t\t\t\treturn 1 * (t /= 1) * t * t * t * t;\n\t\t\t},\n\t\t\teaseOutQuint: function (t) {\n\t\t\t\treturn 1 * ((t = t / 1 - 1) * t * t * t * t + 1);\n\t\t\t},\n\t\t\teaseInOutQuint: function (t) {\n\t\t\t\tif ((t /= 1 / 2) < 1) return 1 / 2 * t * t * t * t * t;\n\t\t\t\treturn 1 / 2 * ((t -= 2) * t * t * t * t + 2);\n\t\t\t},\n\t\t\teaseInSine: function (t) {\n\t\t\t\treturn -1 * Math.cos(t / 1 * (Math.PI / 2)) + 1;\n\t\t\t},\n\t\t\teaseOutSine: function (t) {\n\t\t\t\treturn 1 * Math.sin(t / 1 * (Math.PI / 2));\n\t\t\t},\n\t\t\teaseInOutSine: function (t) {\n\t\t\t\treturn -1 / 2 * (Math.cos(Math.PI * t / 1) - 1);\n\t\t\t},\n\t\t\teaseInExpo: function (t) {\n\t\t\t\treturn (t === 0) ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1));\n\t\t\t},\n\t\t\teaseOutExpo: function (t) {\n\t\t\t\treturn (t === 1) ? 1 : 1 * (-Math.pow(2, -10 * t / 1) + 1);\n\t\t\t},\n\t\t\teaseInOutExpo: function (t) {\n\t\t\t\tif (t === 0) return 0;\n\t\t\t\tif (t === 1) return 1;\n\t\t\t\tif ((t /= 1 / 2) < 1) return 1 / 2 * Math.pow(2, 10 * (t - 1));\n\t\t\t\treturn 1 / 2 * (-Math.pow(2, -10 * --t) + 2);\n\t\t\t},\n\t\t\teaseInCirc: function (t) {\n\t\t\t\tif (t >= 1) return t;\n\t\t\t\treturn -1 * (Math.sqrt(1 - (t /= 1) * t) - 1);\n\t\t\t},\n\t\t\teaseOutCirc: function (t) {\n\t\t\t\treturn 1 * Math.sqrt(1 - (t = t / 1 - 1) * t);\n\t\t\t},\n\t\t\teaseInOutCirc: function (t) {\n\t\t\t\tif ((t /= 1 / 2) < 1) return -1 / 2 * (Math.sqrt(1 - t * t) - 1);\n\t\t\t\treturn 1 / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t\t\t},\n\t\t\teaseInElastic: function (t) {\n\t\t\t\tvar s = 1.70158;\n\t\t\t\tvar p = 0;\n\t\t\t\tvar a = 1;\n\t\t\t\tif (t === 0) return 0;\n\t\t\t\tif ((t /= 1) == 1) return 1;\n\t\t\t\tif (!p) p = 1 * 0.3;\n\t\t\t\tif (a < Math.abs(1)) {\n\t\t\t\t\ta = 1;\n\t\t\t\t\ts = p / 4;\n\t\t\t\t} else s = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * 1 - s) * (2 * Math.PI) / p));\n\t\t\t},\n\t\t\teaseOutElastic: function (t) {\n\t\t\t\tvar s = 1.70158;\n\t\t\t\tvar p = 0;\n\t\t\t\tvar a = 1;\n\t\t\t\tif (t === 0) return 0;\n\t\t\t\tif ((t /= 1) == 1) return 1;\n\t\t\t\tif (!p) p = 1 * 0.3;\n\t\t\t\tif (a < Math.abs(1)) {\n\t\t\t\t\ta = 1;\n\t\t\t\t\ts = p / 4;\n\t\t\t\t} else s = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t * 1 - s) * (2 * Math.PI) / p) + 1;\n\t\t\t},\n\t\t\teaseInOutElastic: function (t) {\n\t\t\t\tvar s = 1.70158;\n\t\t\t\tvar p = 0;\n\t\t\t\tvar a = 1;\n\t\t\t\tif (t === 0) return 0;\n\t\t\t\tif ((t /= 1 / 2) == 2) return 1;\n\t\t\t\tif (!p) p = 1 * (0.3 * 1.5);\n\t\t\t\tif (a < Math.abs(1)) {\n\t\t\t\t\ta = 1;\n\t\t\t\t\ts = p / 4;\n\t\t\t\t} else s = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t\t\tif (t < 1) return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * 1 - s) * (2 * Math.PI) / p));\n\t\t\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * 1 - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t\t\t},\n\t\t\teaseInBack: function (t) {\n\t\t\t\tvar s = 1.70158;\n\t\t\t\treturn 1 * (t /= 1) * t * ((s + 1) * t - s);\n\t\t\t},\n\t\t\teaseOutBack: function (t) {\n\t\t\t\tvar s = 1.70158;\n\t\t\t\treturn 1 * ((t = t / 1 - 1) * t * ((s + 1) * t + s) + 1);\n\t\t\t},\n\t\t\teaseInOutBack: function (t) {\n\t\t\t\tvar s = 1.70158;\n\t\t\t\tif ((t /= 1 / 2) < 1) return 1 / 2 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t\t\treturn 1 / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t\t\t},\n\t\t\teaseInBounce: function (t) {\n\t\t\t\treturn 1 - easingEffects.easeOutBounce(1 - t);\n\t\t\t},\n\t\t\teaseOutBounce: function (t) {\n\t\t\t\tif ((t /= 1) < (1 / 2.75)) {\n\t\t\t\t\treturn 1 * (7.5625 * t * t);\n\t\t\t\t} else if (t < (2 / 2.75)) {\n\t\t\t\t\treturn 1 * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75);\n\t\t\t\t} else if (t < (2.5 / 2.75)) {\n\t\t\t\t\treturn 1 * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375);\n\t\t\t\t} else {\n\t\t\t\t\treturn 1 * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375);\n\t\t\t\t}\n\t\t\t},\n\t\t\teaseInOutBounce: function (t) {\n\t\t\t\tif (t < 1 / 2) return easingEffects.easeInBounce(t * 2) * 0.5;\n\t\t\t\treturn easingEffects.easeOutBounce(t * 2 - 1) * 0.5 + 1 * 0.5;\n\t\t\t}\n\t\t},\n\t\t//Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n\t\trequestAnimFrame = helpers.requestAnimFrame = (function(){\n\t\t\treturn window.requestAnimationFrame ||\n\t\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\t\twindow.oRequestAnimationFrame ||\n\t\t\t\twindow.msRequestAnimationFrame ||\n\t\t\t\tfunction(callback) {\n\t\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\n\t\t\t\t};\n\t\t})(),\n\t\tcancelAnimFrame = helpers.cancelAnimFrame = (function(){\n\t\t\treturn window.cancelAnimationFrame ||\n\t\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\t\twindow.oCancelAnimationFrame ||\n\t\t\t\twindow.msCancelAnimationFrame ||\n\t\t\t\tfunction(callback) {\n\t\t\t\t\treturn window.clearTimeout(callback, 1000 / 60);\n\t\t\t\t};\n\t\t})(),\n\t\tanimationLoop = helpers.animationLoop = function(callback,totalSteps,easingString,onProgress,onComplete,chartInstance){\n\n\t\t\tvar currentStep = 0,\n\t\t\t\teasingFunction = easingEffects[easingString] || easingEffects.linear;\n\n\t\t\tvar animationFrame = function(){\n\t\t\t\tcurrentStep++;\n\t\t\t\tvar stepDecimal = currentStep/totalSteps;\n\t\t\t\tvar easeDecimal = easingFunction(stepDecimal);\n\n\t\t\t\tcallback.call(chartInstance,easeDecimal,stepDecimal, currentStep);\n\t\t\t\tonProgress.call(chartInstance,easeDecimal,stepDecimal);\n\t\t\t\tif (currentStep < totalSteps){\n\t\t\t\t\tchartInstance.animationFrame = requestAnimFrame(animationFrame);\n\t\t\t\t} else{\n\t\t\t\t\tonComplete.apply(chartInstance);\n\t\t\t\t}\n\t\t\t};\n\t\t\trequestAnimFrame(animationFrame);\n\t\t},\n\t\t//-- DOM methods\n\t\tgetRelativePosition = helpers.getRelativePosition = function(evt){\n\t\t\tvar mouseX, mouseY;\n\t\t\tvar e = evt.originalEvent || evt,\n\t\t\t\tcanvas = evt.currentTarget || evt.srcElement,\n\t\t\t\tboundingRect = canvas.getBoundingClientRect();\n\n\t\t\tif (e.touches){\n\t\t\t\tmouseX = e.touches[0].clientX - boundingRect.left;\n\t\t\t\tmouseY = e.touches[0].clientY - boundingRect.top;\n\n\t\t\t}\n\t\t\telse{\n\t\t\t\tmouseX = e.clientX - boundingRect.left;\n\t\t\t\tmouseY = e.clientY - boundingRect.top;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tx : mouseX,\n\t\t\t\ty : mouseY\n\t\t\t};\n\n\t\t},\n\t\taddEvent = helpers.addEvent = function(node,eventType,method){\n\t\t\tif (node.addEventListener){\n\t\t\t\tnode.addEventListener(eventType,method);\n\t\t\t} else if (node.attachEvent){\n\t\t\t\tnode.attachEvent(\"on\"+eventType, method);\n\t\t\t} else {\n\t\t\t\tnode[\"on\"+eventType] = method;\n\t\t\t}\n\t\t},\n\t\tremoveEvent = helpers.removeEvent = function(node, eventType, handler){\n\t\t\tif (node.removeEventListener){\n\t\t\t\tnode.removeEventListener(eventType, handler, false);\n\t\t\t} else if (node.detachEvent){\n\t\t\t\tnode.detachEvent(\"on\"+eventType,handler);\n\t\t\t} else{\n\t\t\t\tnode[\"on\" + eventType] = noop;\n\t\t\t}\n\t\t},\n\t\tbindEvents = helpers.bindEvents = function(chartInstance, arrayOfEvents, handler){\n\t\t\t// Create the events object if it's not already present\n\t\t\tif (!chartInstance.events) chartInstance.events = {};\n\n\t\t\teach(arrayOfEvents,function(eventName){\n\t\t\t\tchartInstance.events[eventName] = function(){\n\t\t\t\t\thandler.apply(chartInstance, arguments);\n\t\t\t\t};\n\t\t\t\taddEvent(chartInstance.chart.canvas,eventName,chartInstance.events[eventName]);\n\t\t\t});\n\t\t},\n\t\tunbindEvents = helpers.unbindEvents = function (chartInstance, arrayOfEvents) {\n\t\t\teach(arrayOfEvents, function(handler,eventName){\n\t\t\t\tremoveEvent(chartInstance.chart.canvas, eventName, handler);\n\t\t\t});\n\t\t},\n\t\tgetMaximumWidth = helpers.getMaximumWidth = function(domNode){\n\t\t\tvar container = domNode.parentNode;\n\t\t\t// TODO = check cross browser stuff with this.\n\t\t\treturn container.clientWidth;\n\t\t},\n\t\tgetMaximumHeight = helpers.getMaximumHeight = function(domNode){\n\t\t\tvar container = domNode.parentNode;\n\t\t\t// TODO = check cross browser stuff with this.\n\t\t\treturn container.clientHeight;\n\t\t},\n\t\tgetMaximumSize = helpers.getMaximumSize = helpers.getMaximumWidth, // legacy support\n\t\tretinaScale = helpers.retinaScale = function(chart){\n\t\t\tvar ctx = chart.ctx,\n\t\t\t\twidth = chart.canvas.width,\n\t\t\t\theight = chart.canvas.height;\n\n\t\t\tif (window.devicePixelRatio) {\n\t\t\t\tctx.canvas.style.width = width + \"px\";\n\t\t\t\tctx.canvas.style.height = height + \"px\";\n\t\t\t\tctx.canvas.height = height * window.devicePixelRatio;\n\t\t\t\tctx.canvas.width = width * window.devicePixelRatio;\n\t\t\t\tctx.scale(window.devicePixelRatio, window.devicePixelRatio);\n\t\t\t}\n\t\t},\n\t\t//-- Canvas methods\n\t\tclear = helpers.clear = function(chart){\n\t\t\tchart.ctx.clearRect(0,0,chart.width,chart.height);\n\t\t},\n\t\tfontString = helpers.fontString = function(pixelSize,fontStyle,fontFamily){\n\t\t\treturn fontStyle + \" \" + pixelSize+\"px \" + fontFamily;\n\t\t},\n\t\tlongestText = helpers.longestText = function(ctx,font,arrayOfStrings){\n\t\t\tctx.font = font;\n\t\t\tvar longest = 0;\n\t\t\teach(arrayOfStrings,function(string){\n\t\t\t\tvar textWidth = ctx.measureText(string).width;\n\t\t\t\tlongest = (textWidth > longest) ? textWidth : longest;\n\t\t\t});\n\t\t\treturn longest;\n\t\t},\n\t\tdrawRoundedRectangle = helpers.drawRoundedRectangle = function(ctx,x,y,width,height,radius){\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x + radius, y);\n\t\t\tctx.lineTo(x + width - radius, y);\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\t\t\tctx.lineTo(x + width, y + height - radius);\n\t\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\t\t\tctx.lineTo(x + radius, y + height);\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\t\t\tctx.lineTo(x, y + radius);\n\t\t\tctx.quadraticCurveTo(x, y, x + radius, y);\n\t\t\tctx.closePath();\n\t\t};\n\n\n\t//Store a reference to each instance - allowing us to globally resize chart instances on window resize.\n\t//Destroy method on the chart will remove the instance of the chart from this reference.\n\tChart.instances = {};\n\n\tChart.Type = function(data,options,chart){\n\t\tthis.options = options;\n\t\tthis.chart = chart;\n\t\tthis.id = uid();\n\t\t//Add the chart instance to the global namespace\n\t\tChart.instances[this.id] = this;\n\n\t\t// Initialize is always called when a chart type is created\n\t\t// By default it is a no op, but it should be extended\n\t\tif (options.responsive){\n\t\t\tthis.resize();\n\t\t}\n\t\tthis.initialize.call(this,data);\n\t};\n\n\t//Core methods that'll be a part of every chart type\n\textend(Chart.Type.prototype,{\n\t\tinitialize : function(){return this;},\n\t\tclear : function(){\n\t\t\tclear(this.chart);\n\t\t\treturn this;\n\t\t},\n\t\tstop : function(){\n\t\t\t// Stops any current animation loop occuring\n\t\t\tcancelAnimFrame(this.animationFrame);\n\t\t\treturn this;\n\t\t},\n\t\tresize : function(callback){\n\t\t\tthis.stop();\n\t\t\tvar canvas = this.chart.canvas,\n\t\t\t\tnewWidth = getMaximumWidth(this.chart.canvas),\n\t\t\t\tnewHeight = this.options.maintainAspectRatio ? newWidth / this.chart.aspectRatio : getMaximumHeight(this.chart.canvas);\n\n\t\t\tcanvas.width = this.chart.width = newWidth;\n\t\t\tcanvas.height = this.chart.height = newHeight;\n\n\t\t\tretinaScale(this.chart);\n\n\t\t\tif (typeof callback === \"function\"){\n\t\t\t\tcallback.apply(this, Array.prototype.slice.call(arguments, 1));\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\t\treflow : noop,\n\t\trender : function(reflow){\n\t\t\tif (reflow){\n\t\t\t\tthis.reflow();\n\t\t\t}\n\t\t\tif (this.options.animation && !reflow){\n\t\t\t\thelpers.animationLoop(\n\t\t\t\t\tthis.draw,\n\t\t\t\t\tthis.options.animationSteps,\n\t\t\t\t\tthis.options.animationEasing,\n\t\t\t\t\tthis.options.onAnimationProgress,\n\t\t\t\t\tthis.options.onAnimationComplete,\n\t\t\t\t\tthis\n\t\t\t\t);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.draw();\n\t\t\t\tthis.options.onAnimationComplete.call(this);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\t\tgenerateLegend : function(){\n\t\t\treturn template(this.options.legendTemplate,this);\n\t\t},\n\t\tdestroy : function(){\n\t\t\tthis.clear();\n\t\t\tunbindEvents(this, this.events);\n\t\t\tvar canvas = this.chart.canvas;\n\n\t\t\t// Reset canvas height/width attributes starts a fresh with the canvas context\n\t\t\tcanvas.width = this.chart.width;\n\t\t\tcanvas.height = this.chart.height;\n\n\t\t\t// < IE9 doesn't support removeProperty\n\t\t\tif (canvas.style.removeProperty) {\n\t\t\t\tcanvas.style.removeProperty('width');\n\t\t\t\tcanvas.style.removeProperty('height');\n\t\t\t} else {\n\t\t\t\tcanvas.style.removeAttribute('width');\n\t\t\t\tcanvas.style.removeAttribute('height');\n\t\t\t}\n\n\t\t\tdelete Chart.instances[this.id];\n\t\t},\n\t\tshowTooltip : function(ChartElements, forceRedraw){\n\t\t\t// Only redraw the chart if we've actually changed what we're hovering on.\n\t\t\tif (typeof this.activeElements === 'undefined') this.activeElements = [];\n\n\t\t\tvar isChanged = (function(Elements){\n\t\t\t\tvar changed = false;\n\n\t\t\t\tif (Elements.length !== this.activeElements.length){\n\t\t\t\t\tchanged = true;\n\t\t\t\t\treturn changed;\n\t\t\t\t}\n\n\t\t\t\teach(Elements, function(element, index){\n\t\t\t\t\tif (element !== this.activeElements[index]){\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\t\t\t\treturn changed;\n\t\t\t}).call(this, ChartElements);\n\n\t\t\tif (!isChanged && !forceRedraw){\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.activeElements = ChartElements;\n\t\t\t}\n\t\t\tthis.draw();\n\t\t\tif(this.options.customTooltips){\n\t\t\t\tthis.options.customTooltips(false);\n\t\t\t}\n\t\t\tif (ChartElements.length > 0){\n\t\t\t\t// If we have multiple datasets, show a MultiTooltip for all of the data points at that index\n\t\t\t\tif (this.datasets && this.datasets.length > 1) {\n\t\t\t\t\tvar dataArray,\n\t\t\t\t\t\tdataIndex;\n\n\t\t\t\t\tfor (var i = this.datasets.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tdataArray = this.datasets[i].points || this.datasets[i].bars || this.datasets[i].segments;\n\t\t\t\t\t\tdataIndex = indexOf(dataArray, ChartElements[0]);\n\t\t\t\t\t\tif (dataIndex !== -1){\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar tooltipLabels = [],\n\t\t\t\t\t\ttooltipColors = [],\n\t\t\t\t\t\tmedianPosition = (function(index) {\n\n\t\t\t\t\t\t\t// Get all the points at that particular index\n\t\t\t\t\t\t\tvar Elements = [],\n\t\t\t\t\t\t\t\tdataCollection,\n\t\t\t\t\t\t\t\txPositions = [],\n\t\t\t\t\t\t\t\tyPositions = [],\n\t\t\t\t\t\t\t\txMax,\n\t\t\t\t\t\t\t\tyMax,\n\t\t\t\t\t\t\t\txMin,\n\t\t\t\t\t\t\t\tyMin;\n\t\t\t\t\t\t\thelpers.each(this.datasets, function(dataset){\n\t\t\t\t\t\t\t\tdataCollection = dataset.points || dataset.bars || dataset.segments;\n\t\t\t\t\t\t\t\tif (dataCollection[dataIndex] && dataCollection[dataIndex].hasValue()){\n\t\t\t\t\t\t\t\t\tElements.push(dataCollection[dataIndex]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\thelpers.each(Elements, function(element) {\n\t\t\t\t\t\t\t\txPositions.push(element.x);\n\t\t\t\t\t\t\t\tyPositions.push(element.y);\n\n\n\t\t\t\t\t\t\t\t//Include any colour information about the element\n\t\t\t\t\t\t\t\ttooltipLabels.push(helpers.template(this.options.multiTooltipTemplate, element));\n\t\t\t\t\t\t\t\ttooltipColors.push({\n\t\t\t\t\t\t\t\t\tfill: element._saved.fillColor || element.fillColor,\n\t\t\t\t\t\t\t\t\tstroke: element._saved.strokeColor || element.strokeColor\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t}, this);\n\n\t\t\t\t\t\t\tyMin = min(yPositions);\n\t\t\t\t\t\t\tyMax = max(yPositions);\n\n\t\t\t\t\t\t\txMin = min(xPositions);\n\t\t\t\t\t\t\txMax = max(xPositions);\n\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tx: (xMin > this.chart.width/2) ? xMin : xMax,\n\t\t\t\t\t\t\t\ty: (yMin + yMax)/2\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}).call(this, dataIndex);\n\n\t\t\t\t\tnew Chart.MultiTooltip({\n\t\t\t\t\t\tx: medianPosition.x,\n\t\t\t\t\t\ty: medianPosition.y,\n\t\t\t\t\t\txPadding: this.options.tooltipXPadding,\n\t\t\t\t\t\tyPadding: this.options.tooltipYPadding,\n\t\t\t\t\t\txOffset: this.options.tooltipXOffset,\n\t\t\t\t\t\tfillColor: this.options.tooltipFillColor,\n\t\t\t\t\t\ttextColor: this.options.tooltipFontColor,\n\t\t\t\t\t\tfontFamily: this.options.tooltipFontFamily,\n\t\t\t\t\t\tfontStyle: this.options.tooltipFontStyle,\n\t\t\t\t\t\tfontSize: this.options.tooltipFontSize,\n\t\t\t\t\t\ttitleTextColor: this.options.tooltipTitleFontColor,\n\t\t\t\t\t\ttitleFontFamily: this.options.tooltipTitleFontFamily,\n\t\t\t\t\t\ttitleFontStyle: this.options.tooltipTitleFontStyle,\n\t\t\t\t\t\ttitleFontSize: this.options.tooltipTitleFontSize,\n\t\t\t\t\t\tcornerRadius: this.options.tooltipCornerRadius,\n\t\t\t\t\t\tlabels: tooltipLabels,\n\t\t\t\t\t\tlegendColors: tooltipColors,\n\t\t\t\t\t\tlegendColorBackground : this.options.multiTooltipKeyBackground,\n\t\t\t\t\t\ttitle: ChartElements[0].label,\n\t\t\t\t\t\tchart: this.chart,\n\t\t\t\t\t\tctx: this.chart.ctx,\n\t\t\t\t\t\tcustom: this.options.customTooltips\n\t\t\t\t\t}).draw();\n\n\t\t\t\t} else {\n\t\t\t\t\teach(ChartElements, function(Element) {\n\t\t\t\t\t\tvar tooltipPosition = Element.tooltipPosition();\n\t\t\t\t\t\tnew Chart.Tooltip({\n\t\t\t\t\t\t\tx: Math.round(tooltipPosition.x),\n\t\t\t\t\t\t\ty: Math.round(tooltipPosition.y),\n\t\t\t\t\t\t\txPadding: this.options.tooltipXPadding,\n\t\t\t\t\t\t\tyPadding: this.options.tooltipYPadding,\n\t\t\t\t\t\t\tfillColor: this.options.tooltipFillColor,\n\t\t\t\t\t\t\ttextColor: this.options.tooltipFontColor,\n\t\t\t\t\t\t\tfontFamily: this.options.tooltipFontFamily,\n\t\t\t\t\t\t\tfontStyle: this.options.tooltipFontStyle,\n\t\t\t\t\t\t\tfontSize: this.options.tooltipFontSize,\n\t\t\t\t\t\t\tcaretHeight: this.options.tooltipCaretSize,\n\t\t\t\t\t\t\tcornerRadius: this.options.tooltipCornerRadius,\n\t\t\t\t\t\t\ttext: template(this.options.tooltipTemplate, Element),\n\t\t\t\t\t\t\tchart: this.chart,\n\t\t\t\t\t\t\tcustom: this.options.customTooltips\n\t\t\t\t\t\t}).draw();\n\t\t\t\t\t}, this);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\t\ttoBase64Image : function(){\n\t\t\treturn this.chart.canvas.toDataURL.apply(this.chart.canvas, arguments);\n\t\t}\n\t});\n\n\tChart.Type.extend = function(extensions){\n\n\t\tvar parent = this;\n\n\t\tvar ChartType = function(){\n\t\t\treturn parent.apply(this,arguments);\n\t\t};\n\n\t\t//Copy the prototype object of the this class\n\t\tChartType.prototype = clone(parent.prototype);\n\t\t//Now overwrite some of the properties in the base class with the new extensions\n\t\textend(ChartType.prototype, extensions);\n\n\t\tChartType.extend = Chart.Type.extend;\n\n\t\tif (extensions.name || parent.prototype.name){\n\n\t\t\tvar chartName = extensions.name || parent.prototype.name;\n\t\t\t//Assign any potential default values of the new chart type\n\n\t\t\t//If none are defined, we'll use a clone of the chart type this is being extended from.\n\t\t\t//I.e. if we extend a line chart, we'll use the defaults from the line chart if our new chart\n\t\t\t//doesn't define some defaults of their own.\n\n\t\t\tvar baseDefaults = (Chart.defaults[parent.prototype.name]) ? clone(Chart.defaults[parent.prototype.name]) : {};\n\n\t\t\tChart.defaults[chartName] = extend(baseDefaults,extensions.defaults);\n\n\t\t\tChart.types[chartName] = ChartType;\n\n\t\t\t//Register this new chart type in the Chart prototype\n\t\t\tChart.prototype[chartName] = function(data,options){\n\t\t\t\tvar config = merge(Chart.defaults.global, Chart.defaults[chartName], options || {});\n\t\t\t\treturn new ChartType(data,config,this);\n\t\t\t};\n\t\t} else{\n\t\t\twarn(\"Name not provided for this chart, so it hasn't been registered\");\n\t\t}\n\t\treturn parent;\n\t};\n\n\tChart.Element = function(configuration){\n\t\textend(this,configuration);\n\t\tthis.initialize.apply(this,arguments);\n\t\tthis.save();\n\t};\n\textend(Chart.Element.prototype,{\n\t\tinitialize : function(){},\n\t\trestore : function(props){\n\t\t\tif (!props){\n\t\t\t\textend(this,this._saved);\n\t\t\t} else {\n\t\t\t\teach(props,function(key){\n\t\t\t\t\tthis[key] = this._saved[key];\n\t\t\t\t},this);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\t\tsave : function(){\n\t\t\tthis._saved = clone(this);\n\t\t\tdelete this._saved._saved;\n\t\t\treturn this;\n\t\t},\n\t\tupdate : function(newProps){\n\t\t\teach(newProps,function(value,key){\n\t\t\t\tthis._saved[key] = this[key];\n\t\t\t\tthis[key] = value;\n\t\t\t},this);\n\t\t\treturn this;\n\t\t},\n\t\ttransition : function(props,ease){\n\t\t\teach(props,function(value,key){\n\t\t\t\tthis[key] = ((value - this._saved[key]) * ease) + this._saved[key];\n\t\t\t},this);\n\t\t\treturn this;\n\t\t},\n\t\ttooltipPosition : function(){\n\t\t\treturn {\n\t\t\t\tx : this.x,\n\t\t\t\ty : this.y\n\t\t\t};\n\t\t},\n\t\thasValue: function(){\n\t\t\treturn isNumber(this.value);\n\t\t}\n\t});\n\n\tChart.Element.extend = inherits;\n\n\n\tChart.Point = Chart.Element.extend({\n\t\tdisplay: true,\n\t\tinRange: function(chartX,chartY){\n\t\t\tvar hitDetectionRange = this.hitDetectionRadius + this.radius;\n\t\t\treturn ((Math.pow(chartX-this.x, 2)+Math.pow(chartY-this.y, 2)) < Math.pow(hitDetectionRange,2));\n\t\t},\n\t\tdraw : function(){\n\t\t\tif (this.display){\n\t\t\t\tvar ctx = this.ctx;\n\t\t\t\tctx.beginPath();\n\n\t\t\t\tctx.arc(this.x, this.y, this.radius, 0, Math.PI*2);\n\t\t\t\tctx.closePath();\n\n\t\t\t\tctx.strokeStyle = this.strokeColor;\n\t\t\t\tctx.lineWidth = this.strokeWidth;\n\n\t\t\t\tctx.fillStyle = this.fillColor;\n\n\t\t\t\tctx.fill();\n\t\t\t\tctx.stroke();\n\t\t\t}\n\n\n\t\t\t//Quick debug for bezier curve splining\n\t\t\t//Highlights control points and the line between them.\n\t\t\t//Handy for dev - stripped in the min version.\n\n\t\t\t// ctx.save();\n\t\t\t// ctx.fillStyle = \"black\";\n\t\t\t// ctx.strokeStyle = \"black\"\n\t\t\t// ctx.beginPath();\n\t\t\t// ctx.arc(this.controlPoints.inner.x,this.controlPoints.inner.y, 2, 0, Math.PI*2);\n\t\t\t// ctx.fill();\n\n\t\t\t// ctx.beginPath();\n\t\t\t// ctx.arc(this.controlPoints.outer.x,this.controlPoints.outer.y, 2, 0, Math.PI*2);\n\t\t\t// ctx.fill();\n\n\t\t\t// ctx.moveTo(this.controlPoints.inner.x,this.controlPoints.inner.y);\n\t\t\t// ctx.lineTo(this.x, this.y);\n\t\t\t// ctx.lineTo(this.controlPoints.outer.x,this.controlPoints.outer.y);\n\t\t\t// ctx.stroke();\n\n\t\t\t// ctx.restore();\n\n\n\n\t\t}\n\t});\n\n\tChart.Arc = Chart.Element.extend({\n\t\tinRange : function(chartX,chartY){\n\n\t\t\tvar pointRelativePosition = helpers.getAngleFromPoint(this, {\n\t\t\t\tx: chartX,\n\t\t\t\ty: chartY\n\t\t\t});\n\n\t\t\t//Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (pointRelativePosition.angle >= this.startAngle && pointRelativePosition.angle <= this.endAngle),\n\t\t\t\twithinRadius = (pointRelativePosition.distance >= this.innerRadius && pointRelativePosition.distance <= this.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t\t//Ensure within the outside of the arc centre, but inside arc outer\n\t\t},\n\t\ttooltipPosition : function(){\n\t\t\tvar centreAngle = this.startAngle + ((this.endAngle - this.startAngle) / 2),\n\t\t\t\trangeFromCentre = (this.outerRadius - this.innerRadius) / 2 + this.innerRadius;\n\t\t\treturn {\n\t\t\t\tx : this.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\t\ty : this.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t\t};\n\t\t},\n\t\tdraw : function(animationPercent){\n\n\t\t\tvar easingDecimal = animationPercent || 1;\n\n\t\t\tvar ctx = this.ctx;\n\n\t\t\tctx.beginPath();\n\n\t\t\tctx.arc(this.x, this.y, this.outerRadius, this.startAngle, this.endAngle);\n\n\t\t\tctx.arc(this.x, this.y, this.innerRadius, this.endAngle, this.startAngle, true);\n\n\t\t\tctx.closePath();\n\t\t\tctx.strokeStyle = this.strokeColor;\n\t\t\tctx.lineWidth = this.strokeWidth;\n\n\t\t\tctx.fillStyle = this.fillColor;\n\n\t\t\tctx.fill();\n\t\t\tctx.lineJoin = 'bevel';\n\n\t\t\tif (this.showStroke){\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t}\n\t});\n\n\tChart.Rectangle = Chart.Element.extend({\n\t\tdraw : function(){\n\t\t\tvar ctx = this.ctx,\n\t\t\t\thalfWidth = this.width/2,\n\t\t\t\tleftX = this.x - halfWidth,\n\t\t\t\trightX = this.x + halfWidth,\n\t\t\t\ttop = this.base - (this.base - this.y),\n\t\t\t\thalfStroke = this.strokeWidth / 2;\n\n\t\t\t// Canvas doesn't allow us to stroke inside the width so we can\n\t\t\t// adjust the sizes to fit if we're setting a stroke on the line\n\t\t\tif (this.showStroke){\n\t\t\t\tleftX += halfStroke;\n\t\t\t\trightX -= halfStroke;\n\t\t\t\ttop += halfStroke;\n\t\t\t}\n\n\t\t\tctx.beginPath();\n\n\t\t\tctx.fillStyle = this.fillColor;\n\t\t\tctx.strokeStyle = this.strokeColor;\n\t\t\tctx.lineWidth = this.strokeWidth;\n\n\t\t\t// It'd be nice to keep this class totally generic to any rectangle\n\t\t\t// and simply specify which border to miss out.\n\t\t\tctx.moveTo(leftX, this.base);\n\t\t\tctx.lineTo(leftX, top);\n\t\t\tctx.lineTo(rightX, top);\n\t\t\tctx.lineTo(rightX, this.base);\n\t\t\tctx.fill();\n\t\t\tif (this.showStroke){\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t},\n\t\theight : function(){\n\t\t\treturn this.base - this.y;\n\t\t},\n\t\tinRange : function(chartX,chartY){\n\t\t\treturn (chartX >= this.x - this.width/2 && chartX <= this.x + this.width/2) && (chartY >= this.y && chartY <= this.base);\n\t\t}\n\t});\n\n\tChart.Tooltip = Chart.Element.extend({\n\t\tdraw : function(){\n\n\t\t\tvar ctx = this.chart.ctx;\n\n\t\t\tctx.font = fontString(this.fontSize,this.fontStyle,this.fontFamily);\n\n\t\t\tthis.xAlign = \"center\";\n\t\t\tthis.yAlign = \"above\";\n\n\t\t\t//Distance between the actual element.y position and the start of the tooltip caret\n\t\t\tvar caretPadding = this.caretPadding = 2;\n\n\t\t\tvar tooltipWidth = ctx.measureText(this.text).width + 2*this.xPadding,\n\t\t\t\ttooltipRectHeight = this.fontSize + 2*this.yPadding,\n\t\t\t\ttooltipHeight = tooltipRectHeight + this.caretHeight + caretPadding;\n\n\t\t\tif (this.x + tooltipWidth/2 >this.chart.width){\n\t\t\t\tthis.xAlign = \"left\";\n\t\t\t} else if (this.x - tooltipWidth/2 < 0){\n\t\t\t\tthis.xAlign = \"right\";\n\t\t\t}\n\n\t\t\tif (this.y - tooltipHeight < 0){\n\t\t\t\tthis.yAlign = \"below\";\n\t\t\t}\n\n\n\t\t\tvar tooltipX = this.x - tooltipWidth/2,\n\t\t\t\ttooltipY = this.y - tooltipHeight;\n\n\t\t\tctx.fillStyle = this.fillColor;\n\n\t\t\t// Custom Tooltips\n\t\t\tif(this.custom){\n\t\t\t\tthis.custom(this);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tswitch(this.yAlign)\n\t\t\t\t{\n\t\t\t\tcase \"above\":\n\t\t\t\t\t//Draw a caret above the x/y\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(this.x,this.y - caretPadding);\n\t\t\t\t\tctx.lineTo(this.x + this.caretHeight, this.y - (caretPadding + this.caretHeight));\n\t\t\t\t\tctx.lineTo(this.x - this.caretHeight, this.y - (caretPadding + this.caretHeight));\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\tctx.fill();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"below\":\n\t\t\t\t\ttooltipY = this.y + caretPadding + this.caretHeight;\n\t\t\t\t\t//Draw a caret below the x/y\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(this.x, this.y + caretPadding);\n\t\t\t\t\tctx.lineTo(this.x + this.caretHeight, this.y + caretPadding + this.caretHeight);\n\t\t\t\t\tctx.lineTo(this.x - this.caretHeight, this.y + caretPadding + this.caretHeight);\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\tctx.fill();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tswitch(this.xAlign)\n\t\t\t\t{\n\t\t\t\tcase \"left\":\n\t\t\t\t\ttooltipX = this.x - tooltipWidth + (this.cornerRadius + this.caretHeight);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"right\":\n\t\t\t\t\ttooltipX = this.x - (this.cornerRadius + this.caretHeight);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdrawRoundedRectangle(ctx,tooltipX,tooltipY,tooltipWidth,tooltipRectHeight,this.cornerRadius);\n\n\t\t\t\tctx.fill();\n\n\t\t\t\tctx.fillStyle = this.textColor;\n\t\t\t\tctx.textAlign = \"center\";\n\t\t\t\tctx.textBaseline = \"middle\";\n\t\t\t\tctx.fillText(this.text, tooltipX + tooltipWidth/2, tooltipY + tooltipRectHeight/2);\n\t\t\t}\n\t\t}\n\t});\n\n\tChart.MultiTooltip = Chart.Element.extend({\n\t\tinitialize : function(){\n\t\t\tthis.font = fontString(this.fontSize,this.fontStyle,this.fontFamily);\n\n\t\t\tthis.titleFont = fontString(this.titleFontSize,this.titleFontStyle,this.titleFontFamily);\n\n\t\t\tthis.height = (this.labels.length * this.fontSize) + ((this.labels.length-1) * (this.fontSize/2)) + (this.yPadding*2) + this.titleFontSize *1.5;\n\n\t\t\tthis.ctx.font = this.titleFont;\n\n\t\t\tvar titleWidth = this.ctx.measureText(this.title).width,\n\t\t\t\t//Label has a legend square as well so account for this.\n\t\t\t\tlabelWidth = longestText(this.ctx,this.font,this.labels) + this.fontSize + 3,\n\t\t\t\tlongestTextWidth = max([labelWidth,titleWidth]);\n\n\t\t\tthis.width = longestTextWidth + (this.xPadding*2);\n\n\n\t\t\tvar halfHeight = this.height/2;\n\n\t\t\t//Check to ensure the height will fit on the canvas\n\t\t\tif (this.y - halfHeight < 0 ){\n\t\t\t\tthis.y = halfHeight;\n\t\t\t} else if (this.y + halfHeight > this.chart.height){\n\t\t\t\tthis.y = this.chart.height - halfHeight;\n\t\t\t}\n\n\t\t\t//Decide whether to align left or right based on position on canvas\n\t\t\tif (this.x > this.chart.width/2){\n\t\t\t\tthis.x -= this.xOffset + this.width;\n\t\t\t} else {\n\t\t\t\tthis.x += this.xOffset;\n\t\t\t}\n\n\n\t\t},\n\t\tgetLineHeight : function(index){\n\t\t\tvar baseLineHeight = this.y - (this.height/2) + this.yPadding,\n\t\t\t\tafterTitleIndex = index-1;\n\n\t\t\t//If the index is zero, we're getting the title\n\t\t\tif (index === 0){\n\t\t\t\treturn baseLineHeight + this.titleFontSize/2;\n\t\t\t} else{\n\t\t\t\treturn baseLineHeight + ((this.fontSize*1.5*afterTitleIndex) + this.fontSize/2) + this.titleFontSize * 1.5;\n\t\t\t}\n\n\t\t},\n\t\tdraw : function(){\n\t\t\t// Custom Tooltips\n\t\t\tif(this.custom){\n\t\t\t\tthis.custom(this);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tdrawRoundedRectangle(this.ctx,this.x,this.y - this.height/2,this.width,this.height,this.cornerRadius);\n\t\t\t\tvar ctx = this.ctx;\n\t\t\t\tctx.fillStyle = this.fillColor;\n\t\t\t\tctx.fill();\n\t\t\t\tctx.closePath();\n\n\t\t\t\tctx.textAlign = \"left\";\n\t\t\t\tctx.textBaseline = \"middle\";\n\t\t\t\tctx.fillStyle = this.titleTextColor;\n\t\t\t\tctx.font = this.titleFont;\n\n\t\t\t\tctx.fillText(this.title,this.x + this.xPadding, this.getLineHeight(0));\n\n\t\t\t\tctx.font = this.font;\n\t\t\t\thelpers.each(this.labels,function(label,index){\n\t\t\t\t\tctx.fillStyle = this.textColor;\n\t\t\t\t\tctx.fillText(label,this.x + this.xPadding + this.fontSize + 3, this.getLineHeight(index + 1));\n\n\t\t\t\t\t//A bit gnarly, but clearing this rectangle breaks when using explorercanvas (clears whole canvas)\n\t\t\t\t\t//ctx.clearRect(this.x + this.xPadding, this.getLineHeight(index + 1) - this.fontSize/2, this.fontSize, this.fontSize);\n\t\t\t\t\t//Instead we'll make a white filled block to put the legendColour palette over.\n\n\t\t\t\t\tctx.fillStyle = this.legendColorBackground;\n\t\t\t\t\tctx.fillRect(this.x + this.xPadding, this.getLineHeight(index + 1) - this.fontSize/2, this.fontSize, this.fontSize);\n\n\t\t\t\t\tctx.fillStyle = this.legendColors[index].fill;\n\t\t\t\t\tctx.fillRect(this.x + this.xPadding, this.getLineHeight(index + 1) - this.fontSize/2, this.fontSize, this.fontSize);\n\n\n\t\t\t\t},this);\n\t\t\t}\n\t\t}\n\t});\n\n\tChart.Scale = Chart.Element.extend({\n\t\tinitialize : function(){\n\t\t\tthis.fit();\n\t\t},\n\t\tbuildYLabels : function(){\n\t\t\tthis.yLabels = [];\n\n\t\t\tvar stepDecimalPlaces = getDecimalPlaces(this.stepValue);\n\n\t\t\tfor (var i=0; i<=this.steps; i++){\n\t\t\t\tthis.yLabels.push(template(this.templateString,{value:(this.min + (i * this.stepValue)).toFixed(stepDecimalPlaces)}));\n\t\t\t}\n\t\t\tthis.yLabelWidth = (this.display && this.showLabels) ? longestText(this.ctx,this.font,this.yLabels) : 0;\n\t\t},\n\t\taddXLabel : function(label){\n\t\t\tthis.xLabels.push(label);\n\t\t\tthis.valuesCount++;\n\t\t\tthis.fit();\n\t\t},\n\t\tremoveXLabel : function(){\n\t\t\tthis.xLabels.shift();\n\t\t\tthis.valuesCount--;\n\t\t\tthis.fit();\n\t\t},\n\t\t// Fitting loop to rotate x Labels and figure out what fits there, and also calculate how many Y steps to use\n\t\tfit: function(){\n\t\t\t// First we need the width of the yLabels, assuming the xLabels aren't rotated\n\n\t\t\t// To do that we need the base line at the top and base of the chart, assuming there is no x label rotation\n\t\t\tthis.startPoint = (this.display) ? this.fontSize : 0;\n\t\t\tthis.endPoint = (this.display) ? this.height - (this.fontSize * 1.5) - 5 : this.height; // -5 to pad labels\n\n\t\t\t// Apply padding settings to the start and end point.\n\t\t\tthis.startPoint += this.padding;\n\t\t\tthis.endPoint -= this.padding;\n\n\t\t\t// Cache the starting height, so can determine if we need to recalculate the scale yAxis\n\t\t\tvar cachedHeight = this.endPoint - this.startPoint,\n\t\t\t\tcachedYLabelWidth;\n\n\t\t\t// Build the current yLabels so we have an idea of what size they'll be to start\n\t\t\t/*\n\t\t\t *\tThis sets what is returned from calculateScaleRange as static properties of this class:\n\t\t\t *\n\t\t\t\tthis.steps;\n\t\t\t\tthis.stepValue;\n\t\t\t\tthis.min;\n\t\t\t\tthis.max;\n\t\t\t *\n\t\t\t */\n\t\t\tthis.calculateYRange(cachedHeight);\n\n\t\t\t// With these properties set we can now build the array of yLabels\n\t\t\t// and also the width of the largest yLabel\n\t\t\tthis.buildYLabels();\n\n\t\t\tthis.calculateXLabelRotation();\n\n\t\t\twhile((cachedHeight > this.endPoint - this.startPoint)){\n\t\t\t\tcachedHeight = this.endPoint - this.startPoint;\n\t\t\t\tcachedYLabelWidth = this.yLabelWidth;\n\n\t\t\t\tthis.calculateYRange(cachedHeight);\n\t\t\t\tthis.buildYLabels();\n\n\t\t\t\t// Only go through the xLabel loop again if the yLabel width has changed\n\t\t\t\tif (cachedYLabelWidth < this.yLabelWidth){\n\t\t\t\t\tthis.calculateXLabelRotation();\n\t\t\t\t}\n\t\t\t}\n\n\t\t},\n\t\tcalculateXLabelRotation : function(){\n\t\t\t//Get the width of each grid by calculating the difference\n\t\t\t//between x offsets between 0 and 1.\n\n\t\t\tthis.ctx.font = this.font;\n\n\t\t\tvar firstWidth = this.ctx.measureText(this.xLabels[0]).width,\n\t\t\t\tlastWidth = this.ctx.measureText(this.xLabels[this.xLabels.length - 1]).width,\n\t\t\t\tfirstRotated,\n\t\t\t\tlastRotated;\n\n\n\t\t\tthis.xScalePaddingRight = lastWidth/2 + 3;\n\t\t\tthis.xScalePaddingLeft = (firstWidth/2 > this.yLabelWidth + 10) ? firstWidth/2 : this.yLabelWidth + 10;\n\n\t\t\tthis.xLabelRotation = 0;\n\t\t\tif (this.display){\n\t\t\t\tvar originalLabelWidth = longestText(this.ctx,this.font,this.xLabels),\n\t\t\t\t\tcosRotation,\n\t\t\t\t\tfirstRotatedWidth;\n\t\t\t\tthis.xLabelWidth = originalLabelWidth;\n\t\t\t\t//Allow 3 pixels x2 padding either side for label readability\n\t\t\t\tvar xGridWidth = Math.floor(this.calculateX(1) - this.calculateX(0)) - 6;\n\n\t\t\t\t//Max label rotate should be 90 - also act as a loop counter\n\t\t\t\twhile ((this.xLabelWidth > xGridWidth && this.xLabelRotation === 0) || (this.xLabelWidth > xGridWidth && this.xLabelRotation <= 90 && this.xLabelRotation > 0)){\n\t\t\t\t\tcosRotation = Math.cos(toRadians(this.xLabelRotation));\n\n\t\t\t\t\tfirstRotated = cosRotation * firstWidth;\n\t\t\t\t\tlastRotated = cosRotation * lastWidth;\n\n\t\t\t\t\t// We're right aligning the text now.\n\t\t\t\t\tif (firstRotated + this.fontSize / 2 > this.yLabelWidth + 8){\n\t\t\t\t\t\tthis.xScalePaddingLeft = firstRotated + this.fontSize / 2;\n\t\t\t\t\t}\n\t\t\t\t\tthis.xScalePaddingRight = this.fontSize/2;\n\n\n\t\t\t\t\tthis.xLabelRotation++;\n\t\t\t\t\tthis.xLabelWidth = cosRotation * originalLabelWidth;\n\n\t\t\t\t}\n\t\t\t\tif (this.xLabelRotation > 0){\n\t\t\t\t\tthis.endPoint -= Math.sin(toRadians(this.xLabelRotation))*originalLabelWidth + 3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.xLabelWidth = 0;\n\t\t\t\tthis.xScalePaddingRight = this.padding;\n\t\t\t\tthis.xScalePaddingLeft = this.padding;\n\t\t\t}\n\n\t\t},\n\t\t// Needs to be overidden in each Chart type\n\t\t// Otherwise we need to pass all the data into the scale class\n\t\tcalculateYRange: noop,\n\t\tdrawingArea: function(){\n\t\t\treturn this.startPoint - this.endPoint;\n\t\t},\n\t\tcalculateY : function(value){\n\t\t\tvar scalingFactor = this.drawingArea() / (this.min - this.max);\n\t\t\treturn this.endPoint - (scalingFactor * (value - this.min));\n\t\t},\n\t\tcalculateX : function(index){\n\t\t\tvar isRotated = (this.xLabelRotation > 0),\n\t\t\t\t// innerWidth = (this.offsetGridLines) ? this.width - offsetLeft - this.padding : this.width - (offsetLeft + halfLabelWidth * 2) - this.padding,\n\t\t\t\tinnerWidth = this.width - (this.xScalePaddingLeft + this.xScalePaddingRight),\n\t\t\t\tvalueWidth = innerWidth/Math.max((this.valuesCount - ((this.offsetGridLines) ? 0 : 1)), 1),\n\t\t\t\tvalueOffset = (valueWidth * index) + this.xScalePaddingLeft;\n\n\t\t\tif (this.offsetGridLines){\n\t\t\t\tvalueOffset += (valueWidth/2);\n\t\t\t}\n\n\t\t\treturn Math.round(valueOffset);\n\t\t},\n\t\tupdate : function(newProps){\n\t\t\thelpers.extend(this, newProps);\n\t\t\tthis.fit();\n\t\t},\n\t\tdraw : function(){\n\t\t\tvar ctx = this.ctx,\n\t\t\t\tyLabelGap = (this.endPoint - this.startPoint) / this.steps,\n\t\t\t\txStart = Math.round(this.xScalePaddingLeft);\n\t\t\tif (this.display){\n\t\t\t\tctx.fillStyle = this.textColor;\n\t\t\t\tctx.font = this.font;\n\t\t\t\teach(this.yLabels,function(labelString,index){\n\t\t\t\t\tvar yLabelCenter = this.endPoint - (yLabelGap * index),\n\t\t\t\t\t\tlinePositionY = Math.round(yLabelCenter),\n\t\t\t\t\t\tdrawHorizontalLine = this.showHorizontalLines;\n\n\t\t\t\t\tctx.textAlign = \"right\";\n\t\t\t\t\tctx.textBaseline = \"middle\";\n\t\t\t\t\tif (this.showLabels){\n\t\t\t\t\t\tctx.fillText(labelString,xStart - 10,yLabelCenter);\n\t\t\t\t\t}\n\n\t\t\t\t\t// This is X axis, so draw it\n\t\t\t\t\tif (index === 0 && !drawHorizontalLine){\n\t\t\t\t\t\tdrawHorizontalLine = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (drawHorizontalLine){\n\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0){\n\t\t\t\t\t\t// This is a grid line in the centre, so drop that\n\t\t\t\t\t\tctx.lineWidth = this.gridLineWidth;\n\t\t\t\t\t\tctx.strokeStyle = this.gridLineColor;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// This is the first line on the scale\n\t\t\t\t\t\tctx.lineWidth = this.lineWidth;\n\t\t\t\t\t\tctx.strokeStyle = this.lineColor;\n\t\t\t\t\t}\n\n\t\t\t\t\tlinePositionY += helpers.aliasPixel(ctx.lineWidth);\n\n\t\t\t\t\tif(drawHorizontalLine){\n\t\t\t\t\t\tctx.moveTo(xStart, linePositionY);\n\t\t\t\t\t\tctx.lineTo(this.width, linePositionY);\n\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t\tctx.closePath();\n\t\t\t\t\t}\n\n\t\t\t\t\tctx.lineWidth = this.lineWidth;\n\t\t\t\t\tctx.strokeStyle = this.lineColor;\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(xStart - 5, linePositionY);\n\t\t\t\t\tctx.lineTo(xStart, linePositionY);\n\t\t\t\t\tctx.stroke();\n\t\t\t\t\tctx.closePath();\n\n\t\t\t\t},this);\n\n\t\t\t\teach(this.xLabels,function(label,index){\n\t\t\t\t\tvar xPos = this.calculateX(index) + aliasPixel(this.lineWidth),\n\t\t\t\t\t\t// Check to see if line/bar here and decide where to place the line\n\t\t\t\t\t\tlinePos = this.calculateX(index - (this.offsetGridLines ? 0.5 : 0)) + aliasPixel(this.lineWidth),\n\t\t\t\t\t\tisRotated = (this.xLabelRotation > 0),\n\t\t\t\t\t\tdrawVerticalLine = this.showVerticalLines;\n\n\t\t\t\t\t// This is Y axis, so draw it\n\t\t\t\t\tif (index === 0 && !drawVerticalLine){\n\t\t\t\t\t\tdrawVerticalLine = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (drawVerticalLine){\n\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0){\n\t\t\t\t\t\t// This is a grid line in the centre, so drop that\n\t\t\t\t\t\tctx.lineWidth = this.gridLineWidth;\n\t\t\t\t\t\tctx.strokeStyle = this.gridLineColor;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// This is the first line on the scale\n\t\t\t\t\t\tctx.lineWidth = this.lineWidth;\n\t\t\t\t\t\tctx.strokeStyle = this.lineColor;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (drawVerticalLine){\n\t\t\t\t\t\tctx.moveTo(linePos,this.endPoint);\n\t\t\t\t\t\tctx.lineTo(linePos,this.startPoint - 3);\n\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t\tctx.closePath();\n\t\t\t\t\t}\n\n\n\t\t\t\t\tctx.lineWidth = this.lineWidth;\n\t\t\t\t\tctx.strokeStyle = this.lineColor;\n\n\n\t\t\t\t\t// Small lines at the bottom of the base grid line\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(linePos,this.endPoint);\n\t\t\t\t\tctx.lineTo(linePos,this.endPoint + 5);\n\t\t\t\t\tctx.stroke();\n\t\t\t\t\tctx.closePath();\n\n\t\t\t\t\tctx.save();\n\t\t\t\t\tctx.translate(xPos,(isRotated) ? this.endPoint + 12 : this.endPoint + 8);\n\t\t\t\t\tctx.rotate(toRadians(this.xLabelRotation)*-1);\n\t\t\t\t\tctx.font = this.font;\n\t\t\t\t\tctx.textAlign = (isRotated) ? \"right\" : \"center\";\n\t\t\t\t\tctx.textBaseline = (isRotated) ? \"middle\" : \"top\";\n\t\t\t\t\tctx.fillText(label, 0, 0);\n\t\t\t\t\tctx.restore();\n\t\t\t\t},this);\n\n\t\t\t}\n\t\t}\n\n\t});\n\n\tChart.RadialScale = Chart.Element.extend({\n\t\tinitialize: function(){\n\t\t\tthis.size = min([this.height, this.width]);\n\t\t\tthis.drawingArea = (this.display) ? (this.size/2) - (this.fontSize/2 + this.backdropPaddingY) : (this.size/2);\n\t\t},\n\t\tcalculateCenterOffset: function(value){\n\t\t\t// Take into account half font size + the yPadding of the top value\n\t\t\tvar scalingFactor = this.drawingArea / (this.max - this.min);\n\n\t\t\treturn (value - this.min) * scalingFactor;\n\t\t},\n\t\tupdate : function(){\n\t\t\tif (!this.lineArc){\n\t\t\t\tthis.setScaleSize();\n\t\t\t} else {\n\t\t\t\tthis.drawingArea = (this.display) ? (this.size/2) - (this.fontSize/2 + this.backdropPaddingY) : (this.size/2);\n\t\t\t}\n\t\t\tthis.buildYLabels();\n\t\t},\n\t\tbuildYLabels: function(){\n\t\t\tthis.yLabels = [];\n\n\t\t\tvar stepDecimalPlaces = getDecimalPlaces(this.stepValue);\n\n\t\t\tfor (var i=0; i<=this.steps; i++){\n\t\t\t\tthis.yLabels.push(template(this.templateString,{value:(this.min + (i * this.stepValue)).toFixed(stepDecimalPlaces)}));\n\t\t\t}\n\t\t},\n\t\tgetCircumference : function(){\n\t\t\treturn ((Math.PI*2) / this.valuesCount);\n\t\t},\n\t\tsetScaleSize: function(){\n\t\t\t/*\n\t\t\t * Right, this is really confusing and there is a lot of maths going on here\n\t\t\t * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t\t\t *\n\t\t\t * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t\t\t *\n\t\t\t * Solution:\n\t\t\t *\n\t\t\t * We assume the radius of the polygon is half the size of the canvas at first\n\t\t\t * at each index we check if the text overlaps.\n\t\t\t *\n\t\t\t * Where it does, we store that angle and that index.\n\t\t\t *\n\t\t\t * After finding the largest index and angle we calculate how much we need to remove\n\t\t\t * from the shape radius to move the point inwards by that x.\n\t\t\t *\n\t\t\t * We average the left and right distances to get the maximum shape radius that can fit in the box\n\t\t\t * along with labels.\n\t\t\t *\n\t\t\t * Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t\t\t * on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t\t\t *\n\t\t\t * This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t\t\t * and position it in the most space efficient manner\n\t\t\t *\n\t\t\t * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\t\t\t */\n\n\n\t\t\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n\t\t\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n\t\t\tvar largestPossibleRadius = min([(this.height/2 - this.pointLabelFontSize - 5), this.width/2]),\n\t\t\t\tpointPosition,\n\t\t\t\ti,\n\t\t\t\ttextWidth,\n\t\t\t\thalfTextWidth,\n\t\t\t\tfurthestRight = this.width,\n\t\t\t\tfurthestRightIndex,\n\t\t\t\tfurthestRightAngle,\n\t\t\t\tfurthestLeft = 0,\n\t\t\t\tfurthestLeftIndex,\n\t\t\t\tfurthestLeftAngle,\n\t\t\t\txProtrusionLeft,\n\t\t\t\txProtrusionRight,\n\t\t\t\tradiusReductionRight,\n\t\t\t\tradiusReductionLeft,\n\t\t\t\tmaxWidthRadius;\n\t\t\tthis.ctx.font = fontString(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily);\n\t\t\tfor (i=0;i<this.valuesCount;i++){\n\t\t\t\t// 5px to space the text slightly out - similar to what we do in the draw function.\n\t\t\t\tpointPosition = this.getPointPosition(i, largestPossibleRadius);\n\t\t\t\ttextWidth = this.ctx.measureText(template(this.templateString, { value: this.labels[i] })).width + 5;\n\t\t\t\tif (i === 0 || i === this.valuesCount/2){\n\t\t\t\t\t// If we're at index zero, or exactly the middle, we're at exactly the top/bottom\n\t\t\t\t\t// of the radar chart, so text will be aligned centrally, so we'll half it and compare\n\t\t\t\t\t// w/left and right text sizes\n\t\t\t\t\thalfTextWidth = textWidth/2;\n\t\t\t\t\tif (pointPosition.x + halfTextWidth > furthestRight) {\n\t\t\t\t\t\tfurthestRight = pointPosition.x + halfTextWidth;\n\t\t\t\t\t\tfurthestRightIndex = i;\n\t\t\t\t\t}\n\t\t\t\t\tif (pointPosition.x - halfTextWidth < furthestLeft) {\n\t\t\t\t\t\tfurthestLeft = pointPosition.x - halfTextWidth;\n\t\t\t\t\t\tfurthestLeftIndex = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (i < this.valuesCount/2) {\n\t\t\t\t\t// Less than half the values means we'll left align the text\n\t\t\t\t\tif (pointPosition.x + textWidth > furthestRight) {\n\t\t\t\t\t\tfurthestRight = pointPosition.x + textWidth;\n\t\t\t\t\t\tfurthestRightIndex = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (i > this.valuesCount/2){\n\t\t\t\t\t// More than half the values means we'll right align the text\n\t\t\t\t\tif (pointPosition.x - textWidth < furthestLeft) {\n\t\t\t\t\t\tfurthestLeft = pointPosition.x - textWidth;\n\t\t\t\t\t\tfurthestLeftIndex = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\txProtrusionLeft = furthestLeft;\n\n\t\t\txProtrusionRight = Math.ceil(furthestRight - this.width);\n\n\t\t\tfurthestRightAngle = this.getIndexAngle(furthestRightIndex);\n\n\t\t\tfurthestLeftAngle = this.getIndexAngle(furthestLeftIndex);\n\n\t\t\tradiusReductionRight = xProtrusionRight / Math.sin(furthestRightAngle + Math.PI/2);\n\n\t\t\tradiusReductionLeft = xProtrusionLeft / Math.sin(furthestLeftAngle + Math.PI/2);\n\n\t\t\t// Ensure we actually need to reduce the size of the chart\n\t\t\tradiusReductionRight = (isNumber(radiusReductionRight)) ? radiusReductionRight : 0;\n\t\t\tradiusReductionLeft = (isNumber(radiusReductionLeft)) ? radiusReductionLeft : 0;\n\n\t\t\tthis.drawingArea = largestPossibleRadius - (radiusReductionLeft + radiusReductionRight)/2;\n\n\t\t\t//this.drawingArea = min([maxWidthRadius, (this.height - (2 * (this.pointLabelFontSize + 5)))/2])\n\t\t\tthis.setCenterPoint(radiusReductionLeft, radiusReductionRight);\n\n\t\t},\n\t\tsetCenterPoint: function(leftMovement, rightMovement){\n\n\t\t\tvar maxRight = this.width - rightMovement - this.drawingArea,\n\t\t\t\tmaxLeft = leftMovement + this.drawingArea;\n\n\t\t\tthis.xCenter = (maxLeft + maxRight)/2;\n\t\t\t// Always vertically in the centre as the text height doesn't change\n\t\t\tthis.yCenter = (this.height/2);\n\t\t},\n\n\t\tgetIndexAngle : function(index){\n\t\t\tvar angleMultiplier = (Math.PI * 2) / this.valuesCount;\n\t\t\t// Start from the top instead of right, so remove a quarter of the circle\n\n\t\t\treturn index * angleMultiplier - (Math.PI/2);\n\t\t},\n\t\tgetPointPosition : function(index, distanceFromCenter){\n\t\t\tvar thisAngle = this.getIndexAngle(index);\n\t\t\treturn {\n\t\t\t\tx : (Math.cos(thisAngle) * distanceFromCenter) + this.xCenter,\n\t\t\t\ty : (Math.sin(thisAngle) * distanceFromCenter) + this.yCenter\n\t\t\t};\n\t\t},\n\t\tdraw: function(){\n\t\t\tif (this.display){\n\t\t\t\tvar ctx = this.ctx;\n\t\t\t\teach(this.yLabels, function(label, index){\n\t\t\t\t\t// Don't draw a centre value\n\t\t\t\t\tif (index > 0){\n\t\t\t\t\t\tvar yCenterOffset = index * (this.drawingArea/this.steps),\n\t\t\t\t\t\t\tyHeight = this.yCenter - yCenterOffset,\n\t\t\t\t\t\t\tpointPosition;\n\n\t\t\t\t\t\t// Draw circular lines around the scale\n\t\t\t\t\t\tif (this.lineWidth > 0){\n\t\t\t\t\t\t\tctx.strokeStyle = this.lineColor;\n\t\t\t\t\t\t\tctx.lineWidth = this.lineWidth;\n\n\t\t\t\t\t\t\tif(this.lineArc){\n\t\t\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\t\t\tctx.arc(this.xCenter, this.yCenter, yCenterOffset, 0, Math.PI*2);\n\t\t\t\t\t\t\t\tctx.closePath();\n\t\t\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t\t\t} else{\n\t\t\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\t\t\tfor (var i=0;i<this.valuesCount;i++)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tpointPosition = this.getPointPosition(i, this.calculateCenterOffset(this.min + (index * this.stepValue)));\n\t\t\t\t\t\t\t\t\tif (i === 0){\n\t\t\t\t\t\t\t\t\t\tctx.moveTo(pointPosition.x, pointPosition.y);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tctx.closePath();\n\t\t\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.showLabels){\n\t\t\t\t\t\t\tctx.font = fontString(this.fontSize,this.fontStyle,this.fontFamily);\n\t\t\t\t\t\t\tif (this.showLabelBackdrop){\n\t\t\t\t\t\t\t\tvar labelWidth = ctx.measureText(label).width;\n\t\t\t\t\t\t\t\tctx.fillStyle = this.backdropColor;\n\t\t\t\t\t\t\t\tctx.fillRect(\n\t\t\t\t\t\t\t\t\tthis.xCenter - labelWidth/2 - this.backdropPaddingX,\n\t\t\t\t\t\t\t\t\tyHeight - this.fontSize/2 - this.backdropPaddingY,\n\t\t\t\t\t\t\t\t\tlabelWidth + this.backdropPaddingX*2,\n\t\t\t\t\t\t\t\t\tthis.fontSize + this.backdropPaddingY*2\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t\t\tctx.textBaseline = \"middle\";\n\t\t\t\t\t\t\tctx.fillStyle = this.fontColor;\n\t\t\t\t\t\t\tctx.fillText(label, this.xCenter, yHeight);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t\tif (!this.lineArc){\n\t\t\t\t\tctx.lineWidth = this.angleLineWidth;\n\t\t\t\t\tctx.strokeStyle = this.angleLineColor;\n\t\t\t\t\tfor (var i = this.valuesCount - 1; i >= 0; i--) {\n\t\t\t\t\t\tif (this.angleLineWidth > 0){\n\t\t\t\t\t\t\tvar outerPosition = this.getPointPosition(i, this.calculateCenterOffset(this.max));\n\t\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\t\tctx.moveTo(this.xCenter, this.yCenter);\n\t\t\t\t\t\t\tctx.lineTo(outerPosition.x, outerPosition.y);\n\t\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t\t\tctx.closePath();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Extra 3px out for some label spacing\n\t\t\t\t\t\tvar pointLabelPosition = this.getPointPosition(i, this.calculateCenterOffset(this.max) + 5);\n\t\t\t\t\t\tctx.font = fontString(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily);\n\t\t\t\t\t\tctx.fillStyle = this.pointLabelFontColor;\n\n\t\t\t\t\t\tvar labelsCount = this.labels.length,\n\t\t\t\t\t\t\thalfLabelsCount = this.labels.length/2,\n\t\t\t\t\t\t\tquarterLabelsCount = halfLabelsCount/2,\n\t\t\t\t\t\t\tupperHalf = (i < quarterLabelsCount || i > labelsCount - quarterLabelsCount),\n\t\t\t\t\t\t\texactQuarter = (i === quarterLabelsCount || i === labelsCount - quarterLabelsCount);\n\t\t\t\t\t\tif (i === 0){\n\t\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t\t} else if(i === halfLabelsCount){\n\t\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t\t} else if (i < halfLabelsCount){\n\t\t\t\t\t\t\tctx.textAlign = 'left';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tctx.textAlign = 'right';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Set the correct text baseline based on outer positioning\n\t\t\t\t\t\tif (exactQuarter){\n\t\t\t\t\t\t\tctx.textBaseline = 'middle';\n\t\t\t\t\t\t} else if (upperHalf){\n\t\t\t\t\t\t\tctx.textBaseline = 'bottom';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tctx.textBaseline = 'top';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tctx.fillText(this.labels[i], pointLabelPosition.x, pointLabelPosition.y);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Attach global event to resize each chart instance when the browser resizes\n\thelpers.addEvent(window, \"resize\", (function(){\n\t\t// Basic debounce of resize function so it doesn't hurt performance when resizing browser.\n\t\tvar timeout;\n\t\treturn function(){\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = setTimeout(function(){\n\t\t\t\teach(Chart.instances,function(instance){\n\t\t\t\t\t// If the responsive flag is set in the chart instance config\n\t\t\t\t\t// Cascade the resize event down to the chart.\n\t\t\t\t\tif (instance.options.responsive){\n\t\t\t\t\t\tinstance.resize(instance.render, true);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, 50);\n\t\t};\n\t})());\n\n\n\tif (amd) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){\n\t\t\treturn Chart;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = Chart;\n\t}\n\n\troot.Chart = Chart;\n\n\tChart.noConflict = function(){\n\t\troot.Chart = previous;\n\t\treturn Chart;\n\t};\n\n}).call(this);\n\n(function(){\n\t\"use strict\";\n\n\tvar root = this,\n\t\tChart = root.Chart,\n\t\thelpers = Chart.helpers;\n\n\n\tvar defaultConfig = {\n\t\t//Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value\n\t\tscaleBeginAtZero : true,\n\n\t\t//Boolean - Whether grid lines are shown across the chart\n\t\tscaleShowGridLines : true,\n\n\t\t//String - Colour of the grid lines\n\t\tscaleGridLineColor : \"rgba(0,0,0,.05)\",\n\n\t\t//Number - Width of the grid lines\n\t\tscaleGridLineWidth : 1,\n\n\t\t//Boolean - Whether to show horizontal lines (except X axis)\n\t\tscaleShowHorizontalLines: true,\n\n\t\t//Boolean - Whether to show vertical lines (except Y axis)\n\t\tscaleShowVerticalLines: true,\n\n\t\t//Boolean - If there is a stroke on each bar\n\t\tbarShowStroke : true,\n\n\t\t//Number - Pixel width of the bar stroke\n\t\tbarStrokeWidth : 2,\n\n\t\t//Number - Spacing between each of the X value sets\n\t\tbarValueSpacing : 5,\n\n\t\t//Number - Spacing between data sets within X values\n\t\tbarDatasetSpacing : 1,\n\n\t\t//String - A legend template\n\t\tlegendTemplate : \"<ul class=\\\"<%=name.toLowerCase()%>-legend\\\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\\\"background-color:<%=datasets[i].fillColor%>\\\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>\"\n\n\t};\n\n\n\tChart.Type.extend({\n\t\tname: \"Bar\",\n\t\tdefaults : defaultConfig,\n\t\tinitialize:  function(data){\n\n\t\t\t//Expose options as a scope variable here so we can access it in the ScaleClass\n\t\t\tvar options = this.options;\n\n\t\t\tthis.ScaleClass = Chart.Scale.extend({\n\t\t\t\toffsetGridLines : true,\n\t\t\t\tcalculateBarX : function(datasetCount, datasetIndex, barIndex){\n\t\t\t\t\t//Reusable method for calculating the xPosition of a given bar based on datasetIndex & width of the bar\n\t\t\t\t\tvar xWidth = this.calculateBaseWidth(),\n\t\t\t\t\t\txAbsolute = this.calculateX(barIndex) - (xWidth/2),\n\t\t\t\t\t\tbarWidth = this.calculateBarWidth(datasetCount);\n\n\t\t\t\t\treturn xAbsolute + (barWidth * datasetIndex) + (datasetIndex * options.barDatasetSpacing) + barWidth/2;\n\t\t\t\t},\n\t\t\t\tcalculateBaseWidth : function(){\n\t\t\t\t\treturn (this.calculateX(1) - this.calculateX(0)) - (2*options.barValueSpacing);\n\t\t\t\t},\n\t\t\t\tcalculateBarWidth : function(datasetCount){\n\t\t\t\t\t//The padding between datasets is to the right of each bar, providing that there are more than 1 dataset\n\t\t\t\t\tvar baseWidth = this.calculateBaseWidth() - ((datasetCount - 1) * options.barDatasetSpacing);\n\n\t\t\t\t\treturn (baseWidth / datasetCount);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.datasets = [];\n\n\t\t\t//Set up tooltip events on the chart\n\t\t\tif (this.options.showTooltips){\n\t\t\t\thelpers.bindEvents(this, this.options.tooltipEvents, function(evt){\n\t\t\t\t\tvar activeBars = (evt.type !== 'mouseout') ? this.getBarsAtEvent(evt) : [];\n\n\t\t\t\t\tthis.eachBars(function(bar){\n\t\t\t\t\t\tbar.restore(['fillColor', 'strokeColor']);\n\t\t\t\t\t});\n\t\t\t\t\thelpers.each(activeBars, function(activeBar){\n\t\t\t\t\t\tactiveBar.fillColor = activeBar.highlightFill;\n\t\t\t\t\t\tactiveBar.strokeColor = activeBar.highlightStroke;\n\t\t\t\t\t});\n\t\t\t\t\tthis.showTooltip(activeBars);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t//Declare the extension of the default point, to cater for the options passed in to the constructor\n\t\t\tthis.BarClass = Chart.Rectangle.extend({\n\t\t\t\tstrokeWidth : this.options.barStrokeWidth,\n\t\t\t\tshowStroke : this.options.barShowStroke,\n\t\t\t\tctx : this.chart.ctx\n\t\t\t});\n\n\t\t\t//Iterate through each of the datasets, and build this into a property of the chart\n\t\t\thelpers.each(data.datasets,function(dataset,datasetIndex){\n\n\t\t\t\tvar datasetObject = {\n\t\t\t\t\tlabel : dataset.label || null,\n\t\t\t\t\tfillColor : dataset.fillColor,\n\t\t\t\t\tstrokeColor : dataset.strokeColor,\n\t\t\t\t\tbars : []\n\t\t\t\t};\n\n\t\t\t\tthis.datasets.push(datasetObject);\n\n\t\t\t\thelpers.each(dataset.data,function(dataPoint,index){\n\t\t\t\t\t//Add a new point for each piece of data, passing any required data to draw.\n\t\t\t\t\tdatasetObject.bars.push(new this.BarClass({\n\t\t\t\t\t\tvalue : dataPoint,\n\t\t\t\t\t\tlabel : data.labels[index],\n\t\t\t\t\t\tdatasetLabel: dataset.label,\n\t\t\t\t\t\tstrokeColor : dataset.strokeColor,\n\t\t\t\t\t\tfillColor : dataset.fillColor,\n\t\t\t\t\t\thighlightFill : dataset.highlightFill || dataset.fillColor,\n\t\t\t\t\t\thighlightStroke : dataset.highlightStroke || dataset.strokeColor\n\t\t\t\t\t}));\n\t\t\t\t},this);\n\n\t\t\t},this);\n\n\t\t\tthis.buildScale(data.labels);\n\n\t\t\tthis.BarClass.prototype.base = this.scale.endPoint;\n\n\t\t\tthis.eachBars(function(bar, index, datasetIndex){\n\t\t\t\thelpers.extend(bar, {\n\t\t\t\t\twidth : this.scale.calculateBarWidth(this.datasets.length),\n\t\t\t\t\tx: this.scale.calculateBarX(this.datasets.length, datasetIndex, index),\n\t\t\t\t\ty: this.scale.endPoint\n\t\t\t\t});\n\t\t\t\tbar.save();\n\t\t\t}, this);\n\n\t\t\tthis.render();\n\t\t},\n\t\tupdate : function(){\n\t\t\tthis.scale.update();\n\t\t\t// Reset any highlight colours before updating.\n\t\t\thelpers.each(this.activeElements, function(activeElement){\n\t\t\t\tactiveElement.restore(['fillColor', 'strokeColor']);\n\t\t\t});\n\n\t\t\tthis.eachBars(function(bar){\n\t\t\t\tbar.save();\n\t\t\t});\n\t\t\tthis.render();\n\t\t},\n\t\teachBars : function(callback){\n\t\t\thelpers.each(this.datasets,function(dataset, datasetIndex){\n\t\t\t\thelpers.each(dataset.bars, callback, this, datasetIndex);\n\t\t\t},this);\n\t\t},\n\t\tgetBarsAtEvent : function(e){\n\t\t\tvar barsArray = [],\n\t\t\t\teventPosition = helpers.getRelativePosition(e),\n\t\t\t\tdatasetIterator = function(dataset){\n\t\t\t\t\tbarsArray.push(dataset.bars[barIndex]);\n\t\t\t\t},\n\t\t\t\tbarIndex;\n\n\t\t\tfor (var datasetIndex = 0; datasetIndex < this.datasets.length; datasetIndex++) {\n\t\t\t\tfor (barIndex = 0; barIndex < this.datasets[datasetIndex].bars.length; barIndex++) {\n\t\t\t\t\tif (this.datasets[datasetIndex].bars[barIndex].inRange(eventPosition.x,eventPosition.y)){\n\t\t\t\t\t\thelpers.each(this.datasets, datasetIterator);\n\t\t\t\t\t\treturn barsArray;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn barsArray;\n\t\t},\n\t\tbuildScale : function(labels){\n\t\t\tvar self = this;\n\n\t\t\tvar dataTotal = function(){\n\t\t\t\tvar values = [];\n\t\t\t\tself.eachBars(function(bar){\n\t\t\t\t\tvalues.push(bar.value);\n\t\t\t\t});\n\t\t\t\treturn values;\n\t\t\t};\n\n\t\t\tvar scaleOptions = {\n\t\t\t\ttemplateString : this.options.scaleLabel,\n\t\t\t\theight : this.chart.height,\n\t\t\t\twidth : this.chart.width,\n\t\t\t\tctx : this.chart.ctx,\n\t\t\t\ttextColor : this.options.scaleFontColor,\n\t\t\t\tfontSize : this.options.scaleFontSize,\n\t\t\t\tfontStyle : this.options.scaleFontStyle,\n\t\t\t\tfontFamily : this.options.scaleFontFamily,\n\t\t\t\tvaluesCount : labels.length,\n\t\t\t\tbeginAtZero : this.options.scaleBeginAtZero,\n\t\t\t\tintegersOnly : this.options.scaleIntegersOnly,\n\t\t\t\tcalculateYRange: function(currentHeight){\n\t\t\t\t\tvar updatedRanges = helpers.calculateScaleRange(\n\t\t\t\t\t\tdataTotal(),\n\t\t\t\t\t\tcurrentHeight,\n\t\t\t\t\t\tthis.fontSize,\n\t\t\t\t\t\tthis.beginAtZero,\n\t\t\t\t\t\tthis.integersOnly\n\t\t\t\t\t);\n\t\t\t\t\thelpers.extend(this, updatedRanges);\n\t\t\t\t},\n\t\t\t\txLabels : labels,\n\t\t\t\tfont : helpers.fontString(this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily),\n\t\t\t\tlineWidth : this.options.scaleLineWidth,\n\t\t\t\tlineColor : this.options.scaleLineColor,\n\t\t\t\tshowHorizontalLines : this.options.scaleShowHorizontalLines,\n\t\t\t\tshowVerticalLines : this.options.scaleShowVerticalLines,\n\t\t\t\tgridLineWidth : (this.options.scaleShowGridLines) ? this.options.scaleGridLineWidth : 0,\n\t\t\t\tgridLineColor : (this.options.scaleShowGridLines) ? this.options.scaleGridLineColor : \"rgba(0,0,0,0)\",\n\t\t\t\tpadding : (this.options.showScale) ? 0 : (this.options.barShowStroke) ? this.options.barStrokeWidth : 0,\n\t\t\t\tshowLabels : this.options.scaleShowLabels,\n\t\t\t\tdisplay : this.options.showScale\n\t\t\t};\n\n\t\t\tif (this.options.scaleOverride){\n\t\t\t\thelpers.extend(scaleOptions, {\n\t\t\t\t\tcalculateYRange: helpers.noop,\n\t\t\t\t\tsteps: this.options.scaleSteps,\n\t\t\t\t\tstepValue: this.options.scaleStepWidth,\n\t\t\t\t\tmin: this.options.scaleStartValue,\n\t\t\t\t\tmax: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.scale = new this.ScaleClass(scaleOptions);\n\t\t},\n\t\taddData : function(valuesArray,label){\n\t\t\t//Map the values array for each of the datasets\n\t\t\thelpers.each(valuesArray,function(value,datasetIndex){\n\t\t\t\t//Add a new point for each piece of data, passing any required data to draw.\n\t\t\t\tthis.datasets[datasetIndex].bars.push(new this.BarClass({\n\t\t\t\t\tvalue : value,\n\t\t\t\t\tlabel : label,\n\t\t\t\t\tx: this.scale.calculateBarX(this.datasets.length, datasetIndex, this.scale.valuesCount+1),\n\t\t\t\t\ty: this.scale.endPoint,\n\t\t\t\t\twidth : this.scale.calculateBarWidth(this.datasets.length),\n\t\t\t\t\tbase : this.scale.endPoint,\n\t\t\t\t\tstrokeColor : this.datasets[datasetIndex].strokeColor,\n\t\t\t\t\tfillColor : this.datasets[datasetIndex].fillColor\n\t\t\t\t}));\n\t\t\t},this);\n\n\t\t\tthis.scale.addXLabel(label);\n\t\t\t//Then re-render the chart.\n\t\t\tthis.update();\n\t\t},\n\t\tremoveData : function(){\n\t\t\tthis.scale.removeXLabel();\n\t\t\t//Then re-render the chart.\n\t\t\thelpers.each(this.datasets,function(dataset){\n\t\t\t\tdataset.bars.shift();\n\t\t\t},this);\n\t\t\tthis.update();\n\t\t},\n\t\treflow : function(){\n\t\t\thelpers.extend(this.BarClass.prototype,{\n\t\t\t\ty: this.scale.endPoint,\n\t\t\t\tbase : this.scale.endPoint\n\t\t\t});\n\t\t\tvar newScaleProps = helpers.extend({\n\t\t\t\theight : this.chart.height,\n\t\t\t\twidth : this.chart.width\n\t\t\t});\n\t\t\tthis.scale.update(newScaleProps);\n\t\t},\n\t\tdraw : function(ease){\n\t\t\tvar easingDecimal = ease || 1;\n\t\t\tthis.clear();\n\n\t\t\tvar ctx = this.chart.ctx;\n\n\t\t\tthis.scale.draw(easingDecimal);\n\n\t\t\t//Draw all the bars for each dataset\n\t\t\thelpers.each(this.datasets,function(dataset,datasetIndex){\n\t\t\t\thelpers.each(dataset.bars,function(bar,index){\n\t\t\t\t\tif (bar.hasValue()){\n\t\t\t\t\t\tbar.base = this.scale.endPoint;\n\t\t\t\t\t\t//Transition then draw\n\t\t\t\t\t\tbar.transition({\n\t\t\t\t\t\t\tx : this.scale.calculateBarX(this.datasets.length, datasetIndex, index),\n\t\t\t\t\t\t\ty : this.scale.calculateY(bar.value),\n\t\t\t\t\t\t\twidth : this.scale.calculateBarWidth(this.datasets.length)\n\t\t\t\t\t\t}, easingDecimal).draw();\n\t\t\t\t\t}\n\t\t\t\t},this);\n\n\t\t\t},this);\n\t\t}\n\t});\n\n\n}).call(this);\n\n(function(){\n\t\"use strict\";\n\n\tvar root = this,\n\t\tChart = root.Chart,\n\t\t//Cache a local reference to Chart.helpers\n\t\thelpers = Chart.helpers;\n\n\tvar defaultConfig = {\n\t\t//Boolean - Whether we should show a stroke on each segment\n\t\tsegmentShowStroke : true,\n\n\t\t//String - The colour of each segment stroke\n\t\tsegmentStrokeColor : \"#fff\",\n\n\t\t//Number - The width of each segment stroke\n\t\tsegmentStrokeWidth : 2,\n\n\t\t//The percentage of the chart that we cut out of the middle.\n\t\tpercentageInnerCutout : 50,\n\n\t\t//Number - Amount of animation steps\n\t\tanimationSteps : 100,\n\n\t\t//String - Animation easing effect\n\t\tanimationEasing : \"easeOutBounce\",\n\n\t\t//Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate : true,\n\n\t\t//Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale : false,\n\n\t\t//String - A legend template\n\t\tlegendTemplate : \"<ul class=\\\"<%=name.toLowerCase()%>-legend\\\"><% for (var i=0; i<segments.length; i++){%><li><span style=\\\"background-color:<%=segments[i].fillColor%>\\\"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>\"\n\n\t};\n\n\n\tChart.Type.extend({\n\t\t//Passing in a name registers this chart in the Chart namespace\n\t\tname: \"Doughnut\",\n\t\t//Providing a defaults will also register the deafults in the chart namespace\n\t\tdefaults : defaultConfig,\n\t\t//Initialize is fired when the chart is initialized - Data is passed in as a parameter\n\t\t//Config is automatically merged by the core of Chart.js, and is available at this.options\n\t\tinitialize:  function(data){\n\n\t\t\t//Declare segments as a static property to prevent inheriting across the Chart type prototype\n\t\t\tthis.segments = [];\n\t\t\tthis.outerRadius = (helpers.min([this.chart.width,this.chart.height]) -\tthis.options.segmentStrokeWidth/2)/2;\n\n\t\t\tthis.SegmentArc = Chart.Arc.extend({\n\t\t\t\tctx : this.chart.ctx,\n\t\t\t\tx : this.chart.width/2,\n\t\t\t\ty : this.chart.height/2\n\t\t\t});\n\n\t\t\t//Set up tooltip events on the chart\n\t\t\tif (this.options.showTooltips){\n\t\t\t\thelpers.bindEvents(this, this.options.tooltipEvents, function(evt){\n\t\t\t\t\tvar activeSegments = (evt.type !== 'mouseout') ? this.getSegmentsAtEvent(evt) : [];\n\n\t\t\t\t\thelpers.each(this.segments,function(segment){\n\t\t\t\t\t\tsegment.restore([\"fillColor\"]);\n\t\t\t\t\t});\n\t\t\t\t\thelpers.each(activeSegments,function(activeSegment){\n\t\t\t\t\t\tactiveSegment.fillColor = activeSegment.highlightColor;\n\t\t\t\t\t});\n\t\t\t\t\tthis.showTooltip(activeSegments);\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.calculateTotal(data);\n\n\t\t\thelpers.each(data,function(datapoint, index){\n\t\t\t\tthis.addData(datapoint, index, true);\n\t\t\t},this);\n\n\t\t\tthis.render();\n\t\t},\n\t\tgetSegmentsAtEvent : function(e){\n\t\t\tvar segmentsArray = [];\n\n\t\t\tvar location = helpers.getRelativePosition(e);\n\n\t\t\thelpers.each(this.segments,function(segment){\n\t\t\t\tif (segment.inRange(location.x,location.y)) segmentsArray.push(segment);\n\t\t\t},this);\n\t\t\treturn segmentsArray;\n\t\t},\n\t\taddData : function(segment, atIndex, silent){\n\t\t\tvar index = atIndex || this.segments.length;\n\t\t\tthis.segments.splice(index, 0, new this.SegmentArc({\n\t\t\t\tvalue : segment.value,\n\t\t\t\touterRadius : (this.options.animateScale) ? 0 : this.outerRadius,\n\t\t\t\tinnerRadius : (this.options.animateScale) ? 0 : (this.outerRadius/100) * this.options.percentageInnerCutout,\n\t\t\t\tfillColor : segment.color,\n\t\t\t\thighlightColor : segment.highlight || segment.color,\n\t\t\t\tshowStroke : this.options.segmentShowStroke,\n\t\t\t\tstrokeWidth : this.options.segmentStrokeWidth,\n\t\t\t\tstrokeColor : this.options.segmentStrokeColor,\n\t\t\t\tstartAngle : Math.PI * 1.5,\n\t\t\t\tcircumference : (this.options.animateRotate) ? 0 : this.calculateCircumference(segment.value),\n\t\t\t\tlabel : segment.label\n\t\t\t}));\n\t\t\tif (!silent){\n\t\t\t\tthis.reflow();\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t},\n\t\tcalculateCircumference : function(value){\n\t\t\treturn (Math.PI*2)*(Math.abs(value) / this.total);\n\t\t},\n\t\tcalculateTotal : function(data){\n\t\t\tthis.total = 0;\n\t\t\thelpers.each(data,function(segment){\n\t\t\t\tthis.total += Math.abs(segment.value);\n\t\t\t},this);\n\t\t},\n\t\tupdate : function(){\n\t\t\tthis.calculateTotal(this.segments);\n\n\t\t\t// Reset any highlight colours before updating.\n\t\t\thelpers.each(this.activeElements, function(activeElement){\n\t\t\t\tactiveElement.restore(['fillColor']);\n\t\t\t});\n\n\t\t\thelpers.each(this.segments,function(segment){\n\t\t\t\tsegment.save();\n\t\t\t});\n\t\t\tthis.render();\n\t\t},\n\n\t\tremoveData: function(atIndex){\n\t\t\tvar indexToDelete = (helpers.isNumber(atIndex)) ? atIndex : this.segments.length-1;\n\t\t\tthis.segments.splice(indexToDelete, 1);\n\t\t\tthis.reflow();\n\t\t\tthis.update();\n\t\t},\n\n\t\treflow : function(){\n\t\t\thelpers.extend(this.SegmentArc.prototype,{\n\t\t\t\tx : this.chart.width/2,\n\t\t\t\ty : this.chart.height/2\n\t\t\t});\n\t\t\tthis.outerRadius = (helpers.min([this.chart.width,this.chart.height]) -\tthis.options.segmentStrokeWidth/2)/2;\n\t\t\thelpers.each(this.segments, function(segment){\n\t\t\t\tsegment.update({\n\t\t\t\t\touterRadius : this.outerRadius,\n\t\t\t\t\tinnerRadius : (this.outerRadius/100) * this.options.percentageInnerCutout\n\t\t\t\t});\n\t\t\t}, this);\n\t\t},\n\t\tdraw : function(easeDecimal){\n\t\t\tvar animDecimal = (easeDecimal) ? easeDecimal : 1;\n\t\t\tthis.clear();\n\t\t\thelpers.each(this.segments,function(segment,index){\n\t\t\t\tsegment.transition({\n\t\t\t\t\tcircumference : this.calculateCircumference(segment.value),\n\t\t\t\t\touterRadius : this.outerRadius,\n\t\t\t\t\tinnerRadius : (this.outerRadius/100) * this.options.percentageInnerCutout\n\t\t\t\t},animDecimal);\n\n\t\t\t\tsegment.endAngle = segment.startAngle + segment.circumference;\n\n\t\t\t\tsegment.draw();\n\t\t\t\tif (index === 0){\n\t\t\t\t\tsegment.startAngle = Math.PI * 1.5;\n\t\t\t\t}\n\t\t\t\t//Check to see if it's the last segment, if not get the next and update the start angle\n\t\t\t\tif (index < this.segments.length-1){\n\t\t\t\t\tthis.segments[index+1].startAngle = segment.endAngle;\n\t\t\t\t}\n\t\t\t},this);\n\n\t\t}\n\t});\n\n\tChart.types.Doughnut.extend({\n\t\tname : \"Pie\",\n\t\tdefaults : helpers.merge(defaultConfig,{percentageInnerCutout : 0})\n\t});\n\n}).call(this);\n(function(){\n\t\"use strict\";\n\n\tvar root = this,\n\t\tChart = root.Chart,\n\t\thelpers = Chart.helpers;\n\n\tvar defaultConfig = {\n\n\t\t///Boolean - Whether grid lines are shown across the chart\n\t\tscaleShowGridLines : true,\n\n\t\t//String - Colour of the grid lines\n\t\tscaleGridLineColor : \"rgba(0,0,0,.05)\",\n\n\t\t//Number - Width of the grid lines\n\t\tscaleGridLineWidth : 1,\n\n\t\t//Boolean - Whether to show horizontal lines (except X axis)\n\t\tscaleShowHorizontalLines: true,\n\n\t\t//Boolean - Whether to show vertical lines (except Y axis)\n\t\tscaleShowVerticalLines: true,\n\n\t\t//Boolean - Whether the line is curved between points\n\t\tbezierCurve : true,\n\n\t\t//Number - Tension of the bezier curve between points\n\t\tbezierCurveTension : 0.4,\n\n\t\t//Boolean - Whether to show a dot for each point\n\t\tpointDot : true,\n\n\t\t//Number - Radius of each point dot in pixels\n\t\tpointDotRadius : 4,\n\n\t\t//Number - Pixel width of point dot stroke\n\t\tpointDotStrokeWidth : 1,\n\n\t\t//Number - amount extra to add to the radius to cater for hit detection outside the drawn point\n\t\tpointHitDetectionRadius : 20,\n\n\t\t//Boolean - Whether to show a stroke for datasets\n\t\tdatasetStroke : true,\n\n\t\t//Number - Pixel width of dataset stroke\n\t\tdatasetStrokeWidth : 2,\n\n\t\t//Boolean - Whether to fill the dataset with a colour\n\t\tdatasetFill : true,\n\n\t\t//String - A legend template\n\t\tlegendTemplate : \"<ul class=\\\"<%=name.toLowerCase()%>-legend\\\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\\\"background-color:<%=datasets[i].strokeColor%>\\\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>\"\n\n\t};\n\n\n\tChart.Type.extend({\n\t\tname: \"Line\",\n\t\tdefaults : defaultConfig,\n\t\tinitialize:  function(data){\n\t\t\t//Declare the extension of the default point, to cater for the options passed in to the constructor\n\t\t\tthis.PointClass = Chart.Point.extend({\n\t\t\t\tstrokeWidth : this.options.pointDotStrokeWidth,\n\t\t\t\tradius : this.options.pointDotRadius,\n\t\t\t\tdisplay: this.options.pointDot,\n\t\t\t\thitDetectionRadius : this.options.pointHitDetectionRadius,\n\t\t\t\tctx : this.chart.ctx,\n\t\t\t\tinRange : function(mouseX){\n\t\t\t\t\treturn (Math.pow(mouseX-this.x, 2) < Math.pow(this.radius + this.hitDetectionRadius,2));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.datasets = [];\n\n\t\t\t//Set up tooltip events on the chart\n\t\t\tif (this.options.showTooltips){\n\t\t\t\thelpers.bindEvents(this, this.options.tooltipEvents, function(evt){\n\t\t\t\t\tvar activePoints = (evt.type !== 'mouseout') ? this.getPointsAtEvent(evt) : [];\n\t\t\t\t\tthis.eachPoints(function(point){\n\t\t\t\t\t\tpoint.restore(['fillColor', 'strokeColor']);\n\t\t\t\t\t});\n\t\t\t\t\thelpers.each(activePoints, function(activePoint){\n\t\t\t\t\t\tactivePoint.fillColor = activePoint.highlightFill;\n\t\t\t\t\t\tactivePoint.strokeColor = activePoint.highlightStroke;\n\t\t\t\t\t});\n\t\t\t\t\tthis.showTooltip(activePoints);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t//Iterate through each of the datasets, and build this into a property of the chart\n\t\t\thelpers.each(data.datasets,function(dataset){\n\n\t\t\t\tvar datasetObject = {\n\t\t\t\t\tlabel : dataset.label || null,\n\t\t\t\t\tfillColor : dataset.fillColor,\n\t\t\t\t\tstrokeColor : dataset.strokeColor,\n\t\t\t\t\tpointColor : dataset.pointColor,\n\t\t\t\t\tpointStrokeColor : dataset.pointStrokeColor,\n\t\t\t\t\tpoints : []\n\t\t\t\t};\n\n\t\t\t\tthis.datasets.push(datasetObject);\n\n\n\t\t\t\thelpers.each(dataset.data,function(dataPoint,index){\n\t\t\t\t\t//Add a new point for each piece of data, passing any required data to draw.\n\t\t\t\t\tdatasetObject.points.push(new this.PointClass({\n\t\t\t\t\t\tvalue : dataPoint,\n\t\t\t\t\t\tlabel : data.labels[index],\n\t\t\t\t\t\tdatasetLabel: dataset.label,\n\t\t\t\t\t\tstrokeColor : dataset.pointStrokeColor,\n\t\t\t\t\t\tfillColor : dataset.pointColor,\n\t\t\t\t\t\thighlightFill : dataset.pointHighlightFill || dataset.pointColor,\n\t\t\t\t\t\thighlightStroke : dataset.pointHighlightStroke || dataset.pointStrokeColor\n\t\t\t\t\t}));\n\t\t\t\t},this);\n\n\t\t\t\tthis.buildScale(data.labels);\n\n\n\t\t\t\tthis.eachPoints(function(point, index){\n\t\t\t\t\thelpers.extend(point, {\n\t\t\t\t\t\tx: this.scale.calculateX(index),\n\t\t\t\t\t\ty: this.scale.endPoint\n\t\t\t\t\t});\n\t\t\t\t\tpoint.save();\n\t\t\t\t}, this);\n\n\t\t\t},this);\n\n\n\t\t\tthis.render();\n\t\t},\n\t\tupdate : function(){\n\t\t\tthis.scale.update();\n\t\t\t// Reset any highlight colours before updating.\n\t\t\thelpers.each(this.activeElements, function(activeElement){\n\t\t\t\tactiveElement.restore(['fillColor', 'strokeColor']);\n\t\t\t});\n\t\t\tthis.eachPoints(function(point){\n\t\t\t\tpoint.save();\n\t\t\t});\n\t\t\tthis.render();\n\t\t},\n\t\teachPoints : function(callback){\n\t\t\thelpers.each(this.datasets,function(dataset){\n\t\t\t\thelpers.each(dataset.points,callback,this);\n\t\t\t},this);\n\t\t},\n\t\tgetPointsAtEvent : function(e){\n\t\t\tvar pointsArray = [],\n\t\t\t\teventPosition = helpers.getRelativePosition(e);\n\t\t\thelpers.each(this.datasets,function(dataset){\n\t\t\t\thelpers.each(dataset.points,function(point){\n\t\t\t\t\tif (point.inRange(eventPosition.x,eventPosition.y)) pointsArray.push(point);\n\t\t\t\t});\n\t\t\t},this);\n\t\t\treturn pointsArray;\n\t\t},\n\t\tbuildScale : function(labels){\n\t\t\tvar self = this;\n\n\t\t\tvar dataTotal = function(){\n\t\t\t\tvar values = [];\n\t\t\t\tself.eachPoints(function(point){\n\t\t\t\t\tvalues.push(point.value);\n\t\t\t\t});\n\n\t\t\t\treturn values;\n\t\t\t};\n\n\t\t\tvar scaleOptions = {\n\t\t\t\ttemplateString : this.options.scaleLabel,\n\t\t\t\theight : this.chart.height,\n\t\t\t\twidth : this.chart.width,\n\t\t\t\tctx : this.chart.ctx,\n\t\t\t\ttextColor : this.options.scaleFontColor,\n\t\t\t\tfontSize : this.options.scaleFontSize,\n\t\t\t\tfontStyle : this.options.scaleFontStyle,\n\t\t\t\tfontFamily : this.options.scaleFontFamily,\n\t\t\t\tvaluesCount : labels.length,\n\t\t\t\tbeginAtZero : this.options.scaleBeginAtZero,\n\t\t\t\tintegersOnly : this.options.scaleIntegersOnly,\n\t\t\t\tcalculateYRange : function(currentHeight){\n\t\t\t\t\tvar updatedRanges = helpers.calculateScaleRange(\n\t\t\t\t\t\tdataTotal(),\n\t\t\t\t\t\tcurrentHeight,\n\t\t\t\t\t\tthis.fontSize,\n\t\t\t\t\t\tthis.beginAtZero,\n\t\t\t\t\t\tthis.integersOnly\n\t\t\t\t\t);\n\t\t\t\t\thelpers.extend(this, updatedRanges);\n\t\t\t\t},\n\t\t\t\txLabels : labels,\n\t\t\t\tfont : helpers.fontString(this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily),\n\t\t\t\tlineWidth : this.options.scaleLineWidth,\n\t\t\t\tlineColor : this.options.scaleLineColor,\n\t\t\t\tshowHorizontalLines : this.options.scaleShowHorizontalLines,\n\t\t\t\tshowVerticalLines : this.options.scaleShowVerticalLines,\n\t\t\t\tgridLineWidth : (this.options.scaleShowGridLines) ? this.options.scaleGridLineWidth : 0,\n\t\t\t\tgridLineColor : (this.options.scaleShowGridLines) ? this.options.scaleGridLineColor : \"rgba(0,0,0,0)\",\n\t\t\t\tpadding: (this.options.showScale) ? 0 : this.options.pointDotRadius + this.options.pointDotStrokeWidth,\n\t\t\t\tshowLabels : this.options.scaleShowLabels,\n\t\t\t\tdisplay : this.options.showScale\n\t\t\t};\n\n\t\t\tif (this.options.scaleOverride){\n\t\t\t\thelpers.extend(scaleOptions, {\n\t\t\t\t\tcalculateYRange: helpers.noop,\n\t\t\t\t\tsteps: this.options.scaleSteps,\n\t\t\t\t\tstepValue: this.options.scaleStepWidth,\n\t\t\t\t\tmin: this.options.scaleStartValue,\n\t\t\t\t\tmax: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth)\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\tthis.scale = new Chart.Scale(scaleOptions);\n\t\t},\n\t\taddData : function(valuesArray,label){\n\t\t\t//Map the values array for each of the datasets\n\n\t\t\thelpers.each(valuesArray,function(value,datasetIndex){\n\t\t\t\t//Add a new point for each piece of data, passing any required data to draw.\n\t\t\t\tthis.datasets[datasetIndex].points.push(new this.PointClass({\n\t\t\t\t\tvalue : value,\n\t\t\t\t\tlabel : label,\n\t\t\t\t\tx: this.scale.calculateX(this.scale.valuesCount+1),\n\t\t\t\t\ty: this.scale.endPoint,\n\t\t\t\t\tstrokeColor : this.datasets[datasetIndex].pointStrokeColor,\n\t\t\t\t\tfillColor : this.datasets[datasetIndex].pointColor\n\t\t\t\t}));\n\t\t\t},this);\n\n\t\t\tthis.scale.addXLabel(label);\n\t\t\t//Then re-render the chart.\n\t\t\tthis.update();\n\t\t},\n\t\tremoveData : function(){\n\t\t\tthis.scale.removeXLabel();\n\t\t\t//Then re-render the chart.\n\t\t\thelpers.each(this.datasets,function(dataset){\n\t\t\t\tdataset.points.shift();\n\t\t\t},this);\n\t\t\tthis.update();\n\t\t},\n\t\treflow : function(){\n\t\t\tvar newScaleProps = helpers.extend({\n\t\t\t\theight : this.chart.height,\n\t\t\t\twidth : this.chart.width\n\t\t\t});\n\t\t\tthis.scale.update(newScaleProps);\n\t\t},\n\t\tdraw : function(ease){\n\t\t\tvar easingDecimal = ease || 1;\n\t\t\tthis.clear();\n\n\t\t\tvar ctx = this.chart.ctx;\n\n\t\t\t// Some helper methods for getting the next/prev points\n\t\t\tvar hasValue = function(item){\n\t\t\t\treturn item.value !== null;\n\t\t\t},\n\t\t\tnextPoint = function(point, collection, index){\n\t\t\t\treturn helpers.findNextWhere(collection, hasValue, index) || point;\n\t\t\t},\n\t\t\tpreviousPoint = function(point, collection, index){\n\t\t\t\treturn helpers.findPreviousWhere(collection, hasValue, index) || point;\n\t\t\t};\n\n\t\t\tthis.scale.draw(easingDecimal);\n\n\n\t\t\thelpers.each(this.datasets,function(dataset){\n\t\t\t\tvar pointsWithValues = helpers.where(dataset.points, hasValue);\n\n\t\t\t\t//Transition each point first so that the line and point drawing isn't out of sync\n\t\t\t\t//We can use this extra loop to calculate the control points of this dataset also in this loop\n\n\t\t\t\thelpers.each(dataset.points, function(point, index){\n\t\t\t\t\tif (point.hasValue()){\n\t\t\t\t\t\tpoint.transition({\n\t\t\t\t\t\t\ty : this.scale.calculateY(point.value),\n\t\t\t\t\t\t\tx : this.scale.calculateX(index)\n\t\t\t\t\t\t}, easingDecimal);\n\t\t\t\t\t}\n\t\t\t\t},this);\n\n\n\t\t\t\t// Control points need to be calculated in a seperate loop, because we need to know the current x/y of the point\n\t\t\t\t// This would cause issues when there is no animation, because the y of the next point would be 0, so beziers would be skewed\n\t\t\t\tif (this.options.bezierCurve){\n\t\t\t\t\thelpers.each(pointsWithValues, function(point, index){\n\t\t\t\t\t\tvar tension = (index > 0 && index < pointsWithValues.length - 1) ? this.options.bezierCurveTension : 0;\n\t\t\t\t\t\tpoint.controlPoints = helpers.splineCurve(\n\t\t\t\t\t\t\tpreviousPoint(point, pointsWithValues, index),\n\t\t\t\t\t\t\tpoint,\n\t\t\t\t\t\t\tnextPoint(point, pointsWithValues, index),\n\t\t\t\t\t\t\ttension\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\n\t\t\t\t\t\t// Cap puter bezier handles to the upper/lower scale bounds\n\t\t\t\t\t\tif (point.controlPoints.outer.y > this.scale.endPoint){\n\t\t\t\t\t\t\tpoint.controlPoints.outer.y = this.scale.endPoint;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (point.controlPoints.outer.y < this.scale.startPoint){\n\t\t\t\t\t\t\tpoint.controlPoints.outer.y = this.scale.startPoint;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Cap inner bezier handles to the upper/lower scale bounds\n\t\t\t\t\t\tif (point.controlPoints.inner.y > this.scale.endPoint){\n\t\t\t\t\t\t\tpoint.controlPoints.inner.y = this.scale.endPoint;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (point.controlPoints.inner.y < this.scale.startPoint){\n\t\t\t\t\t\t\tpoint.controlPoints.inner.y = this.scale.startPoint;\n\t\t\t\t\t\t}\n\t\t\t\t\t},this);\n\t\t\t\t}\n\n\n\t\t\t\t//Draw the line between all the points\n\t\t\t\tctx.lineWidth = this.options.datasetStrokeWidth;\n\t\t\t\tctx.strokeStyle = dataset.strokeColor;\n\t\t\t\tctx.beginPath();\n\n\t\t\t\thelpers.each(pointsWithValues, function(point, index){\n\t\t\t\t\tif (index === 0){\n\t\t\t\t\t\tctx.moveTo(point.x, point.y);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tif(this.options.bezierCurve){\n\t\t\t\t\t\t\tvar previous = previousPoint(point, pointsWithValues, index);\n\n\t\t\t\t\t\t\tctx.bezierCurveTo(\n\t\t\t\t\t\t\t\tprevious.controlPoints.outer.x,\n\t\t\t\t\t\t\t\tprevious.controlPoints.outer.y,\n\t\t\t\t\t\t\t\tpoint.controlPoints.inner.x,\n\t\t\t\t\t\t\t\tpoint.controlPoints.inner.y,\n\t\t\t\t\t\t\t\tpoint.x,\n\t\t\t\t\t\t\t\tpoint.y\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tctx.lineTo(point.x,point.y);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t\tctx.stroke();\n\n\t\t\t\tif (this.options.datasetFill && pointsWithValues.length > 0){\n\t\t\t\t\t//Round off the line by going to the base of the chart, back to the start, then fill.\n\t\t\t\t\tctx.lineTo(pointsWithValues[pointsWithValues.length - 1].x, this.scale.endPoint);\n\t\t\t\t\tctx.lineTo(pointsWithValues[0].x, this.scale.endPoint);\n\t\t\t\t\tctx.fillStyle = dataset.fillColor;\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\tctx.fill();\n\t\t\t\t}\n\n\t\t\t\t//Now draw the points over the line\n\t\t\t\t//A little inefficient double looping, but better than the line\n\t\t\t\t//lagging behind the point positions\n\t\t\t\thelpers.each(pointsWithValues,function(point){\n\t\t\t\t\tpoint.draw();\n\t\t\t\t});\n\t\t\t},this);\n\t\t}\n\t});\n\n\n}).call(this);\n\n(function(){\n\t\"use strict\";\n\n\tvar root = this,\n\t\tChart = root.Chart,\n\t\t//Cache a local reference to Chart.helpers\n\t\thelpers = Chart.helpers;\n\n\tvar defaultConfig = {\n\t\t//Boolean - Show a backdrop to the scale label\n\t\tscaleShowLabelBackdrop : true,\n\n\t\t//String - The colour of the label backdrop\n\t\tscaleBackdropColor : \"rgba(255,255,255,0.75)\",\n\n\t\t// Boolean - Whether the scale should begin at zero\n\t\tscaleBeginAtZero : true,\n\n\t\t//Number - The backdrop padding above & below the label in pixels\n\t\tscaleBackdropPaddingY : 2,\n\n\t\t//Number - The backdrop padding to the side of the label in pixels\n\t\tscaleBackdropPaddingX : 2,\n\n\t\t//Boolean - Show line for each value in the scale\n\t\tscaleShowLine : true,\n\n\t\t//Boolean - Stroke a line around each segment in the chart\n\t\tsegmentShowStroke : true,\n\n\t\t//String - The colour of the stroke on each segement.\n\t\tsegmentStrokeColor : \"#fff\",\n\n\t\t//Number - The width of the stroke value in pixels\n\t\tsegmentStrokeWidth : 2,\n\n\t\t//Number - Amount of animation steps\n\t\tanimationSteps : 100,\n\n\t\t//String - Animation easing effect.\n\t\tanimationEasing : \"easeOutBounce\",\n\n\t\t//Boolean - Whether to animate the rotation of the chart\n\t\tanimateRotate : true,\n\n\t\t//Boolean - Whether to animate scaling the chart from the centre\n\t\tanimateScale : false,\n\n\t\t//String - A legend template\n\t\tlegendTemplate : \"<ul class=\\\"<%=name.toLowerCase()%>-legend\\\"><% for (var i=0; i<segments.length; i++){%><li><span style=\\\"background-color:<%=segments[i].fillColor%>\\\"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>\"\n\t};\n\n\n\tChart.Type.extend({\n\t\t//Passing in a name registers this chart in the Chart namespace\n\t\tname: \"PolarArea\",\n\t\t//Providing a defaults will also register the deafults in the chart namespace\n\t\tdefaults : defaultConfig,\n\t\t//Initialize is fired when the chart is initialized - Data is passed in as a parameter\n\t\t//Config is automatically merged by the core of Chart.js, and is available at this.options\n\t\tinitialize:  function(data){\n\t\t\tthis.segments = [];\n\t\t\t//Declare segment class as a chart instance specific class, so it can share props for this instance\n\t\t\tthis.SegmentArc = Chart.Arc.extend({\n\t\t\t\tshowStroke : this.options.segmentShowStroke,\n\t\t\t\tstrokeWidth : this.options.segmentStrokeWidth,\n\t\t\t\tstrokeColor : this.options.segmentStrokeColor,\n\t\t\t\tctx : this.chart.ctx,\n\t\t\t\tinnerRadius : 0,\n\t\t\t\tx : this.chart.width/2,\n\t\t\t\ty : this.chart.height/2\n\t\t\t});\n\t\t\tthis.scale = new Chart.RadialScale({\n\t\t\t\tdisplay: this.options.showScale,\n\t\t\t\tfontStyle: this.options.scaleFontStyle,\n\t\t\t\tfontSize: this.options.scaleFontSize,\n\t\t\t\tfontFamily: this.options.scaleFontFamily,\n\t\t\t\tfontColor: this.options.scaleFontColor,\n\t\t\t\tshowLabels: this.options.scaleShowLabels,\n\t\t\t\tshowLabelBackdrop: this.options.scaleShowLabelBackdrop,\n\t\t\t\tbackdropColor: this.options.scaleBackdropColor,\n\t\t\t\tbackdropPaddingY : this.options.scaleBackdropPaddingY,\n\t\t\t\tbackdropPaddingX: this.options.scaleBackdropPaddingX,\n\t\t\t\tlineWidth: (this.options.scaleShowLine) ? this.options.scaleLineWidth : 0,\n\t\t\t\tlineColor: this.options.scaleLineColor,\n\t\t\t\tlineArc: true,\n\t\t\t\twidth: this.chart.width,\n\t\t\t\theight: this.chart.height,\n\t\t\t\txCenter: this.chart.width/2,\n\t\t\t\tyCenter: this.chart.height/2,\n\t\t\t\tctx : this.chart.ctx,\n\t\t\t\ttemplateString: this.options.scaleLabel,\n\t\t\t\tvaluesCount: data.length\n\t\t\t});\n\n\t\t\tthis.updateScaleRange(data);\n\n\t\t\tthis.scale.update();\n\n\t\t\thelpers.each(data,function(segment,index){\n\t\t\t\tthis.addData(segment,index,true);\n\t\t\t},this);\n\n\t\t\t//Set up tooltip events on the chart\n\t\t\tif (this.options.showTooltips){\n\t\t\t\thelpers.bindEvents(this, this.options.tooltipEvents, function(evt){\n\t\t\t\t\tvar activeSegments = (evt.type !== 'mouseout') ? this.getSegmentsAtEvent(evt) : [];\n\t\t\t\t\thelpers.each(this.segments,function(segment){\n\t\t\t\t\t\tsegment.restore([\"fillColor\"]);\n\t\t\t\t\t});\n\t\t\t\t\thelpers.each(activeSegments,function(activeSegment){\n\t\t\t\t\t\tactiveSegment.fillColor = activeSegment.highlightColor;\n\t\t\t\t\t});\n\t\t\t\t\tthis.showTooltip(activeSegments);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.render();\n\t\t},\n\t\tgetSegmentsAtEvent : function(e){\n\t\t\tvar segmentsArray = [];\n\n\t\t\tvar location = helpers.getRelativePosition(e);\n\n\t\t\thelpers.each(this.segments,function(segment){\n\t\t\t\tif (segment.inRange(location.x,location.y)) segmentsArray.push(segment);\n\t\t\t},this);\n\t\t\treturn segmentsArray;\n\t\t},\n\t\taddData : function(segment, atIndex, silent){\n\t\t\tvar index = atIndex || this.segments.length;\n\n\t\t\tthis.segments.splice(index, 0, new this.SegmentArc({\n\t\t\t\tfillColor: segment.color,\n\t\t\t\thighlightColor: segment.highlight || segment.color,\n\t\t\t\tlabel: segment.label,\n\t\t\t\tvalue: segment.value,\n\t\t\t\touterRadius: (this.options.animateScale) ? 0 : this.scale.calculateCenterOffset(segment.value),\n\t\t\t\tcircumference: (this.options.animateRotate) ? 0 : this.scale.getCircumference(),\n\t\t\t\tstartAngle: Math.PI * 1.5\n\t\t\t}));\n\t\t\tif (!silent){\n\t\t\t\tthis.reflow();\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t},\n\t\tremoveData: function(atIndex){\n\t\t\tvar indexToDelete = (helpers.isNumber(atIndex)) ? atIndex : this.segments.length-1;\n\t\t\tthis.segments.splice(indexToDelete, 1);\n\t\t\tthis.reflow();\n\t\t\tthis.update();\n\t\t},\n\t\tcalculateTotal: function(data){\n\t\t\tthis.total = 0;\n\t\t\thelpers.each(data,function(segment){\n\t\t\t\tthis.total += segment.value;\n\t\t\t},this);\n\t\t\tthis.scale.valuesCount = this.segments.length;\n\t\t},\n\t\tupdateScaleRange: function(datapoints){\n\t\t\tvar valuesArray = [];\n\t\t\thelpers.each(datapoints,function(segment){\n\t\t\t\tvaluesArray.push(segment.value);\n\t\t\t});\n\n\t\t\tvar scaleSizes = (this.options.scaleOverride) ?\n\t\t\t\t{\n\t\t\t\t\tsteps: this.options.scaleSteps,\n\t\t\t\t\tstepValue: this.options.scaleStepWidth,\n\t\t\t\t\tmin: this.options.scaleStartValue,\n\t\t\t\t\tmax: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth)\n\t\t\t\t} :\n\t\t\t\thelpers.calculateScaleRange(\n\t\t\t\t\tvaluesArray,\n\t\t\t\t\thelpers.min([this.chart.width, this.chart.height])/2,\n\t\t\t\t\tthis.options.scaleFontSize,\n\t\t\t\t\tthis.options.scaleBeginAtZero,\n\t\t\t\t\tthis.options.scaleIntegersOnly\n\t\t\t\t);\n\n\t\t\thelpers.extend(\n\t\t\t\tthis.scale,\n\t\t\t\tscaleSizes,\n\t\t\t\t{\n\t\t\t\t\tsize: helpers.min([this.chart.width, this.chart.height]),\n\t\t\t\t\txCenter: this.chart.width/2,\n\t\t\t\t\tyCenter: this.chart.height/2\n\t\t\t\t}\n\t\t\t);\n\n\t\t},\n\t\tupdate : function(){\n\t\t\tthis.calculateTotal(this.segments);\n\n\t\t\thelpers.each(this.segments,function(segment){\n\t\t\t\tsegment.save();\n\t\t\t});\n\t\t\t\n\t\t\tthis.reflow();\n\t\t\tthis.render();\n\t\t},\n\t\treflow : function(){\n\t\t\thelpers.extend(this.SegmentArc.prototype,{\n\t\t\t\tx : this.chart.width/2,\n\t\t\t\ty : this.chart.height/2\n\t\t\t});\n\t\t\tthis.updateScaleRange(this.segments);\n\t\t\tthis.scale.update();\n\n\t\t\thelpers.extend(this.scale,{\n\t\t\t\txCenter: this.chart.width/2,\n\t\t\t\tyCenter: this.chart.height/2\n\t\t\t});\n\n\t\t\thelpers.each(this.segments, function(segment){\n\t\t\t\tsegment.update({\n\t\t\t\t\touterRadius : this.scale.calculateCenterOffset(segment.value)\n\t\t\t\t});\n\t\t\t}, this);\n\n\t\t},\n\t\tdraw : function(ease){\n\t\t\tvar easingDecimal = ease || 1;\n\t\t\t//Clear & draw the canvas\n\t\t\tthis.clear();\n\t\t\thelpers.each(this.segments,function(segment, index){\n\t\t\t\tsegment.transition({\n\t\t\t\t\tcircumference : this.scale.getCircumference(),\n\t\t\t\t\touterRadius : this.scale.calculateCenterOffset(segment.value)\n\t\t\t\t},easingDecimal);\n\n\t\t\t\tsegment.endAngle = segment.startAngle + segment.circumference;\n\n\t\t\t\t// If we've removed the first segment we need to set the first one to\n\t\t\t\t// start at the top.\n\t\t\t\tif (index === 0){\n\t\t\t\t\tsegment.startAngle = Math.PI * 1.5;\n\t\t\t\t}\n\n\t\t\t\t//Check to see if it's the last segment, if not get the next and update the start angle\n\t\t\t\tif (index < this.segments.length - 1){\n\t\t\t\t\tthis.segments[index+1].startAngle = segment.endAngle;\n\t\t\t\t}\n\t\t\t\tsegment.draw();\n\t\t\t}, this);\n\t\t\tthis.scale.draw();\n\t\t}\n\t});\n\n}).call(this);\n(function(){\n\t\"use strict\";\n\n\tvar root = this,\n\t\tChart = root.Chart,\n\t\thelpers = Chart.helpers;\n\n\n\n\tChart.Type.extend({\n\t\tname: \"Radar\",\n\t\tdefaults:{\n\t\t\t//Boolean - Whether to show lines for each scale point\n\t\t\tscaleShowLine : true,\n\n\t\t\t//Boolean - Whether we show the angle lines out of the radar\n\t\t\tangleShowLineOut : true,\n\n\t\t\t//Boolean - Whether to show labels on the scale\n\t\t\tscaleShowLabels : false,\n\n\t\t\t// Boolean - Whether the scale should begin at zero\n\t\t\tscaleBeginAtZero : true,\n\n\t\t\t//String - Colour of the angle line\n\t\t\tangleLineColor : \"rgba(0,0,0,.1)\",\n\n\t\t\t//Number - Pixel width of the angle line\n\t\t\tangleLineWidth : 1,\n\n\t\t\t//String - Point label font declaration\n\t\t\tpointLabelFontFamily : \"'Arial'\",\n\n\t\t\t//String - Point label font weight\n\t\t\tpointLabelFontStyle : \"normal\",\n\n\t\t\t//Number - Point label font size in pixels\n\t\t\tpointLabelFontSize : 10,\n\n\t\t\t//String - Point label font colour\n\t\t\tpointLabelFontColor : \"#666\",\n\n\t\t\t//Boolean - Whether to show a dot for each point\n\t\t\tpointDot : true,\n\n\t\t\t//Number - Radius of each point dot in pixels\n\t\t\tpointDotRadius : 3,\n\n\t\t\t//Number - Pixel width of point dot stroke\n\t\t\tpointDotStrokeWidth : 1,\n\n\t\t\t//Number - amount extra to add to the radius to cater for hit detection outside the drawn point\n\t\t\tpointHitDetectionRadius : 20,\n\n\t\t\t//Boolean - Whether to show a stroke for datasets\n\t\t\tdatasetStroke : true,\n\n\t\t\t//Number - Pixel width of dataset stroke\n\t\t\tdatasetStrokeWidth : 2,\n\n\t\t\t//Boolean - Whether to fill the dataset with a colour\n\t\t\tdatasetFill : true,\n\n\t\t\t//String - A legend template\n\t\t\tlegendTemplate : \"<ul class=\\\"<%=name.toLowerCase()%>-legend\\\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\\\"background-color:<%=datasets[i].strokeColor%>\\\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>\"\n\n\t\t},\n\n\t\tinitialize: function(data){\n\t\t\tthis.PointClass = Chart.Point.extend({\n\t\t\t\tstrokeWidth : this.options.pointDotStrokeWidth,\n\t\t\t\tradius : this.options.pointDotRadius,\n\t\t\t\tdisplay: this.options.pointDot,\n\t\t\t\thitDetectionRadius : this.options.pointHitDetectionRadius,\n\t\t\t\tctx : this.chart.ctx\n\t\t\t});\n\n\t\t\tthis.datasets = [];\n\n\t\t\tthis.buildScale(data);\n\n\t\t\t//Set up tooltip events on the chart\n\t\t\tif (this.options.showTooltips){\n\t\t\t\thelpers.bindEvents(this, this.options.tooltipEvents, function(evt){\n\t\t\t\t\tvar activePointsCollection = (evt.type !== 'mouseout') ? this.getPointsAtEvent(evt) : [];\n\n\t\t\t\t\tthis.eachPoints(function(point){\n\t\t\t\t\t\tpoint.restore(['fillColor', 'strokeColor']);\n\t\t\t\t\t});\n\t\t\t\t\thelpers.each(activePointsCollection, function(activePoint){\n\t\t\t\t\t\tactivePoint.fillColor = activePoint.highlightFill;\n\t\t\t\t\t\tactivePoint.strokeColor = activePoint.highlightStroke;\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.showTooltip(activePointsCollection);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t//Iterate through each of the datasets, and build this into a property of the chart\n\t\t\thelpers.each(data.datasets,function(dataset){\n\n\t\t\t\tvar datasetObject = {\n\t\t\t\t\tlabel: dataset.label || null,\n\t\t\t\t\tfillColor : dataset.fillColor,\n\t\t\t\t\tstrokeColor : dataset.strokeColor,\n\t\t\t\t\tpointColor : dataset.pointColor,\n\t\t\t\t\tpointStrokeColor : dataset.pointStrokeColor,\n\t\t\t\t\tpoints : []\n\t\t\t\t};\n\n\t\t\t\tthis.datasets.push(datasetObject);\n\n\t\t\t\thelpers.each(dataset.data,function(dataPoint,index){\n\t\t\t\t\t//Add a new point for each piece of data, passing any required data to draw.\n\t\t\t\t\tvar pointPosition;\n\t\t\t\t\tif (!this.scale.animation){\n\t\t\t\t\t\tpointPosition = this.scale.getPointPosition(index, this.scale.calculateCenterOffset(dataPoint));\n\t\t\t\t\t}\n\t\t\t\t\tdatasetObject.points.push(new this.PointClass({\n\t\t\t\t\t\tvalue : dataPoint,\n\t\t\t\t\t\tlabel : data.labels[index],\n\t\t\t\t\t\tdatasetLabel: dataset.label,\n\t\t\t\t\t\tx: (this.options.animation) ? this.scale.xCenter : pointPosition.x,\n\t\t\t\t\t\ty: (this.options.animation) ? this.scale.yCenter : pointPosition.y,\n\t\t\t\t\t\tstrokeColor : dataset.pointStrokeColor,\n\t\t\t\t\t\tfillColor : dataset.pointColor,\n\t\t\t\t\t\thighlightFill : dataset.pointHighlightFill || dataset.pointColor,\n\t\t\t\t\t\thighlightStroke : dataset.pointHighlightStroke || dataset.pointStrokeColor\n\t\t\t\t\t}));\n\t\t\t\t},this);\n\n\t\t\t},this);\n\n\t\t\tthis.render();\n\t\t},\n\t\teachPoints : function(callback){\n\t\t\thelpers.each(this.datasets,function(dataset){\n\t\t\t\thelpers.each(dataset.points,callback,this);\n\t\t\t},this);\n\t\t},\n\n\t\tgetPointsAtEvent : function(evt){\n\t\t\tvar mousePosition = helpers.getRelativePosition(evt),\n\t\t\t\tfromCenter = helpers.getAngleFromPoint({\n\t\t\t\t\tx: this.scale.xCenter,\n\t\t\t\t\ty: this.scale.yCenter\n\t\t\t\t}, mousePosition);\n\n\t\t\tvar anglePerIndex = (Math.PI * 2) /this.scale.valuesCount,\n\t\t\t\tpointIndex = Math.round((fromCenter.angle - Math.PI * 1.5) / anglePerIndex),\n\t\t\t\tactivePointsCollection = [];\n\n\t\t\t// If we're at the top, make the pointIndex 0 to get the first of the array.\n\t\t\tif (pointIndex >= this.scale.valuesCount || pointIndex < 0){\n\t\t\t\tpointIndex = 0;\n\t\t\t}\n\n\t\t\tif (fromCenter.distance <= this.scale.drawingArea){\n\t\t\t\thelpers.each(this.datasets, function(dataset){\n\t\t\t\t\tactivePointsCollection.push(dataset.points[pointIndex]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn activePointsCollection;\n\t\t},\n\n\t\tbuildScale : function(data){\n\t\t\tthis.scale = new Chart.RadialScale({\n\t\t\t\tdisplay: this.options.showScale,\n\t\t\t\tfontStyle: this.options.scaleFontStyle,\n\t\t\t\tfontSize: this.options.scaleFontSize,\n\t\t\t\tfontFamily: this.options.scaleFontFamily,\n\t\t\t\tfontColor: this.options.scaleFontColor,\n\t\t\t\tshowLabels: this.options.scaleShowLabels,\n\t\t\t\tshowLabelBackdrop: this.options.scaleShowLabelBackdrop,\n\t\t\t\tbackdropColor: this.options.scaleBackdropColor,\n\t\t\t\tbackdropPaddingY : this.options.scaleBackdropPaddingY,\n\t\t\t\tbackdropPaddingX: this.options.scaleBackdropPaddingX,\n\t\t\t\tlineWidth: (this.options.scaleShowLine) ? this.options.scaleLineWidth : 0,\n\t\t\t\tlineColor: this.options.scaleLineColor,\n\t\t\t\tangleLineColor : this.options.angleLineColor,\n\t\t\t\tangleLineWidth : (this.options.angleShowLineOut) ? this.options.angleLineWidth : 0,\n\t\t\t\t// Point labels at the edge of each line\n\t\t\t\tpointLabelFontColor : this.options.pointLabelFontColor,\n\t\t\t\tpointLabelFontSize : this.options.pointLabelFontSize,\n\t\t\t\tpointLabelFontFamily : this.options.pointLabelFontFamily,\n\t\t\t\tpointLabelFontStyle : this.options.pointLabelFontStyle,\n\t\t\t\theight : this.chart.height,\n\t\t\t\twidth: this.chart.width,\n\t\t\t\txCenter: this.chart.width/2,\n\t\t\t\tyCenter: this.chart.height/2,\n\t\t\t\tctx : this.chart.ctx,\n\t\t\t\ttemplateString: this.options.scaleLabel,\n\t\t\t\tlabels: data.labels,\n\t\t\t\tvaluesCount: data.datasets[0].data.length\n\t\t\t});\n\n\t\t\tthis.scale.setScaleSize();\n\t\t\tthis.updateScaleRange(data.datasets);\n\t\t\tthis.scale.buildYLabels();\n\t\t},\n\t\tupdateScaleRange: function(datasets){\n\t\t\tvar valuesArray = (function(){\n\t\t\t\tvar totalDataArray = [];\n\t\t\t\thelpers.each(datasets,function(dataset){\n\t\t\t\t\tif (dataset.data){\n\t\t\t\t\t\ttotalDataArray = totalDataArray.concat(dataset.data);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\thelpers.each(dataset.points, function(point){\n\t\t\t\t\t\t\ttotalDataArray.push(point.value);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn totalDataArray;\n\t\t\t})();\n\n\n\t\t\tvar scaleSizes = (this.options.scaleOverride) ?\n\t\t\t\t{\n\t\t\t\t\tsteps: this.options.scaleSteps,\n\t\t\t\t\tstepValue: this.options.scaleStepWidth,\n\t\t\t\t\tmin: this.options.scaleStartValue,\n\t\t\t\t\tmax: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth)\n\t\t\t\t} :\n\t\t\t\thelpers.calculateScaleRange(\n\t\t\t\t\tvaluesArray,\n\t\t\t\t\thelpers.min([this.chart.width, this.chart.height])/2,\n\t\t\t\t\tthis.options.scaleFontSize,\n\t\t\t\t\tthis.options.scaleBeginAtZero,\n\t\t\t\t\tthis.options.scaleIntegersOnly\n\t\t\t\t);\n\n\t\t\thelpers.extend(\n\t\t\t\tthis.scale,\n\t\t\t\tscaleSizes\n\t\t\t);\n\n\t\t},\n\t\taddData : function(valuesArray,label){\n\t\t\t//Map the values array for each of the datasets\n\t\t\tthis.scale.valuesCount++;\n\t\t\thelpers.each(valuesArray,function(value,datasetIndex){\n\t\t\t\tvar pointPosition = this.scale.getPointPosition(this.scale.valuesCount, this.scale.calculateCenterOffset(value));\n\t\t\t\tthis.datasets[datasetIndex].points.push(new this.PointClass({\n\t\t\t\t\tvalue : value,\n\t\t\t\t\tlabel : label,\n\t\t\t\t\tx: pointPosition.x,\n\t\t\t\t\ty: pointPosition.y,\n\t\t\t\t\tstrokeColor : this.datasets[datasetIndex].pointStrokeColor,\n\t\t\t\t\tfillColor : this.datasets[datasetIndex].pointColor\n\t\t\t\t}));\n\t\t\t},this);\n\n\t\t\tthis.scale.labels.push(label);\n\n\t\t\tthis.reflow();\n\n\t\t\tthis.update();\n\t\t},\n\t\tremoveData : function(){\n\t\t\tthis.scale.valuesCount--;\n\t\t\tthis.scale.labels.shift();\n\t\t\thelpers.each(this.datasets,function(dataset){\n\t\t\t\tdataset.points.shift();\n\t\t\t},this);\n\t\t\tthis.reflow();\n\t\t\tthis.update();\n\t\t},\n\t\tupdate : function(){\n\t\t\tthis.eachPoints(function(point){\n\t\t\t\tpoint.save();\n\t\t\t});\n\t\t\tthis.reflow();\n\t\t\tthis.render();\n\t\t},\n\t\treflow: function(){\n\t\t\thelpers.extend(this.scale, {\n\t\t\t\twidth : this.chart.width,\n\t\t\t\theight: this.chart.height,\n\t\t\t\tsize : helpers.min([this.chart.width, this.chart.height]),\n\t\t\t\txCenter: this.chart.width/2,\n\t\t\t\tyCenter: this.chart.height/2\n\t\t\t});\n\t\t\tthis.updateScaleRange(this.datasets);\n\t\t\tthis.scale.setScaleSize();\n\t\t\tthis.scale.buildYLabels();\n\t\t},\n\t\tdraw : function(ease){\n\t\t\tvar easeDecimal = ease || 1,\n\t\t\t\tctx = this.chart.ctx;\n\t\t\tthis.clear();\n\t\t\tthis.scale.draw();\n\n\t\t\thelpers.each(this.datasets,function(dataset){\n\n\t\t\t\t//Transition each point first so that the line and point drawing isn't out of sync\n\t\t\t\thelpers.each(dataset.points,function(point,index){\n\t\t\t\t\tif (point.hasValue()){\n\t\t\t\t\t\tpoint.transition(this.scale.getPointPosition(index, this.scale.calculateCenterOffset(point.value)), easeDecimal);\n\t\t\t\t\t}\n\t\t\t\t},this);\n\n\n\n\t\t\t\t//Draw the line between all the points\n\t\t\t\tctx.lineWidth = this.options.datasetStrokeWidth;\n\t\t\t\tctx.strokeStyle = dataset.strokeColor;\n\t\t\t\tctx.beginPath();\n\t\t\t\thelpers.each(dataset.points,function(point,index){\n\t\t\t\t\tif (index === 0){\n\t\t\t\t\t\tctx.moveTo(point.x,point.y);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tctx.lineTo(point.x,point.y);\n\t\t\t\t\t}\n\t\t\t\t},this);\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.stroke();\n\n\t\t\t\tctx.fillStyle = dataset.fillColor;\n\t\t\t\tctx.fill();\n\n\t\t\t\t//Now draw the points over the line\n\t\t\t\t//A little inefficient double looping, but better than the line\n\t\t\t\t//lagging behind the point positions\n\t\t\t\thelpers.each(dataset.points,function(point){\n\t\t\t\t\tif (point.hasValue()){\n\t\t\t\t\t\tpoint.draw();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t},this);\n\n\t\t}\n\n\t});\n\n\n\n\n\n}).call(this);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2NoYXJ0LmpzL0NoYXJ0LmpzP2IyZTciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxrQ0FBa0MsaUJBQWlCOztBQUVuRDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLG1CQUFtQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBCQUEwQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDBCQUEwQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsUUFBUTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLHFIQUFxSCxzQ0FBc0M7O0FBRTNKLDhCQUE4QjtBQUM5QjtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsR0FBRztBQUNILG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsNEJBQTRCOztBQUU1RDtBQUNBLGdCQUFnQjs7QUFFaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQSxVQUFVLGtCQUFrQjtBQUM1Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELDBDQUEwQztBQUM3RixLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMEJBQTBCLGFBQWE7QUFDdkM7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDJDQUEyQyxRQUFRO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVULFFBQVE7O0FBRVI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxzRkFBc0Y7QUFDdEY7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7O0FBSUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTs7QUFFQSxnQkFBZ0IsZUFBZTtBQUMvQixvREFBb0QsbUVBQW1FO0FBQ3ZIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwRkFBMEY7O0FBRTFGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUEsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBOztBQUVBLGdCQUFnQixlQUFlO0FBQy9CLG9EQUFvRCxtRUFBbUU7QUFDdkg7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG1CQUFtQjtBQUMvQjtBQUNBO0FBQ0Esb0VBQW9FLHdCQUF3QjtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLEdBQUc7QUFDSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLHFCQUFxQixtQkFBbUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxRQUFRO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7QUFDSjtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFBQTtBQUNILEVBQUU7QUFDRjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLENBQUM7O0FBRUQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlGQUFpRixtQkFBbUIsTUFBTSxpR0FBaUcsMkJBQTJCLFVBQVU7O0FBRWhQOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOztBQUVKOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEtBQUs7O0FBRUwsSUFBSTs7QUFFSjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsSUFBSTs7QUFFSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSw2QkFBNkIscUNBQXFDO0FBQ2xFLHNCQUFzQixvREFBb0Q7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7O0FBRUwsSUFBSTtBQUNKO0FBQ0EsRUFBRTs7O0FBR0YsQ0FBQzs7QUFFRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsaUZBQWlGLG1CQUFtQixNQUFNLGlHQUFpRywyQkFBMkIsVUFBVTs7QUFFaFA7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0osR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0EsMENBQTBDLDBCQUEwQjtBQUNwRSxFQUFFOztBQUVGLENBQUM7QUFDRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxpRkFBaUYsbUJBQW1CLE1BQU0sbUdBQW1HLDJCQUEyQixVQUFVOztBQUVsUDs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLEtBQUs7O0FBRUw7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsS0FBSzs7QUFFTCxJQUFJOzs7QUFHSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7O0FBR0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7OztBQUdMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKO0FBQ0EsRUFBRTs7O0FBR0YsQ0FBQzs7QUFFRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlGQUFpRixtQkFBbUIsTUFBTSxpR0FBaUcsMkJBQTJCLFVBQVU7QUFDaFA7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTs7QUFFSixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxFQUFFOztBQUVGLENBQUM7QUFDRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGtGQUFrRixtQkFBbUIsTUFBTSxtR0FBbUcsMkJBQTJCLFVBQVU7O0FBRW5QLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sS0FBSzs7QUFFTCxJQUFJOztBQUVKO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7QUFDTDtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLElBQUk7O0FBRUo7O0FBRUE7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOzs7O0FBSUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMLElBQUk7O0FBRUo7O0FBRUEsRUFBRTs7Ozs7O0FBTUYsQ0FBQyIsImZpbGUiOiI1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ2hhcnQuanNcbiAqIGh0dHA6Ly9jaGFydGpzLm9yZy9cbiAqIFZlcnNpb246IDEuMC4yXG4gKlxuICogQ29weXJpZ2h0IDIwMTUgTmljayBEb3duaWVcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cHM6Ly9naXRodWIuY29tL25ubmljay9DaGFydC5qcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kXG4gKi9cblxuXG4oZnVuY3Rpb24oKXtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHQvL0RlY2xhcmUgcm9vdCB2YXJpYWJsZSAtIHdpbmRvdyBpbiB0aGUgYnJvd3NlciwgZ2xvYmFsIG9uIHRoZSBzZXJ2ZXJcblx0dmFyIHJvb3QgPSB0aGlzLFxuXHRcdHByZXZpb3VzID0gcm9vdC5DaGFydDtcblxuXHQvL09jY3VweSB0aGUgZ2xvYmFsIHZhcmlhYmxlIG9mIENoYXJ0LCBhbmQgY3JlYXRlIGEgc2ltcGxlIGJhc2UgY2xhc3Ncblx0dmFyIENoYXJ0ID0gZnVuY3Rpb24oY29udGV4dCl7XG5cdFx0dmFyIGNoYXJ0ID0gdGhpcztcblx0XHR0aGlzLmNhbnZhcyA9IGNvbnRleHQuY2FudmFzO1xuXG5cdFx0dGhpcy5jdHggPSBjb250ZXh0O1xuXG5cdFx0Ly9WYXJpYWJsZXMgZ2xvYmFsIHRvIHRoZSBjaGFydFxuXHRcdHZhciBjb21wdXRlRGltZW5zaW9uID0gZnVuY3Rpb24oZWxlbWVudCxkaW1lbnNpb24pXG5cdFx0e1xuXHRcdFx0aWYgKGVsZW1lbnRbJ29mZnNldCcrZGltZW5zaW9uXSlcblx0XHRcdHtcblx0XHRcdFx0cmV0dXJuIGVsZW1lbnRbJ29mZnNldCcrZGltZW5zaW9uXTtcblx0XHRcdH1cblx0XHRcdGVsc2Vcblx0XHRcdHtcblx0XHRcdFx0cmV0dXJuIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShkaW1lbnNpb24pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHZhciB3aWR0aCA9IHRoaXMud2lkdGggPSBjb21wdXRlRGltZW5zaW9uKGNvbnRleHQuY2FudmFzLCdXaWR0aCcpO1xuXHRcdHZhciBoZWlnaHQgPSB0aGlzLmhlaWdodCA9IGNvbXB1dGVEaW1lbnNpb24oY29udGV4dC5jYW52YXMsJ0hlaWdodCcpO1xuXG5cdFx0Ly8gRmlyZWZveCByZXF1aXJlcyB0aGlzIHRvIHdvcmsgY29ycmVjdGx5XG5cdFx0Y29udGV4dC5jYW52YXMud2lkdGggID0gd2lkdGg7XG5cdFx0Y29udGV4dC5jYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXG5cdFx0dmFyIHdpZHRoID0gdGhpcy53aWR0aCA9IGNvbnRleHQuY2FudmFzLndpZHRoO1xuXHRcdHZhciBoZWlnaHQgPSB0aGlzLmhlaWdodCA9IGNvbnRleHQuY2FudmFzLmhlaWdodDtcblx0XHR0aGlzLmFzcGVjdFJhdGlvID0gdGhpcy53aWR0aCAvIHRoaXMuaGVpZ2h0O1xuXHRcdC8vSGlnaCBwaXhlbCBkZW5zaXR5IGRpc3BsYXlzIC0gbXVsdGlwbHkgdGhlIHNpemUgb2YgdGhlIGNhbnZhcyBoZWlnaHQvd2lkdGggYnkgdGhlIGRldmljZSBwaXhlbCByYXRpbywgdGhlbiBzY2FsZS5cblx0XHRoZWxwZXJzLnJldGluYVNjYWxlKHRoaXMpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH07XG5cdC8vR2xvYmFsbHkgZXhwb3NlIHRoZSBkZWZhdWx0cyB0byBhbGxvdyBmb3IgdXNlciB1cGRhdGluZy9jaGFuZ2luZ1xuXHRDaGFydC5kZWZhdWx0cyA9IHtcblx0XHRnbG9iYWw6IHtcblx0XHRcdC8vIEJvb2xlYW4gLSBXaGV0aGVyIHRvIGFuaW1hdGUgdGhlIGNoYXJ0XG5cdFx0XHRhbmltYXRpb246IHRydWUsXG5cblx0XHRcdC8vIE51bWJlciAtIE51bWJlciBvZiBhbmltYXRpb24gc3RlcHNcblx0XHRcdGFuaW1hdGlvblN0ZXBzOiA2MCxcblxuXHRcdFx0Ly8gU3RyaW5nIC0gQW5pbWF0aW9uIGVhc2luZyBlZmZlY3Rcblx0XHRcdGFuaW1hdGlvbkVhc2luZzogXCJlYXNlT3V0UXVhcnRcIixcblxuXHRcdFx0Ly8gQm9vbGVhbiAtIElmIHdlIHNob3VsZCBzaG93IHRoZSBzY2FsZSBhdCBhbGxcblx0XHRcdHNob3dTY2FsZTogdHJ1ZSxcblxuXHRcdFx0Ly8gQm9vbGVhbiAtIElmIHdlIHdhbnQgdG8gb3ZlcnJpZGUgd2l0aCBhIGhhcmQgY29kZWQgc2NhbGVcblx0XHRcdHNjYWxlT3ZlcnJpZGU6IGZhbHNlLFxuXG5cdFx0XHQvLyAqKiBSZXF1aXJlZCBpZiBzY2FsZU92ZXJyaWRlIGlzIHRydWUgKipcblx0XHRcdC8vIE51bWJlciAtIFRoZSBudW1iZXIgb2Ygc3RlcHMgaW4gYSBoYXJkIGNvZGVkIHNjYWxlXG5cdFx0XHRzY2FsZVN0ZXBzOiBudWxsLFxuXHRcdFx0Ly8gTnVtYmVyIC0gVGhlIHZhbHVlIGp1bXAgaW4gdGhlIGhhcmQgY29kZWQgc2NhbGVcblx0XHRcdHNjYWxlU3RlcFdpZHRoOiBudWxsLFxuXHRcdFx0Ly8gTnVtYmVyIC0gVGhlIHNjYWxlIHN0YXJ0aW5nIHZhbHVlXG5cdFx0XHRzY2FsZVN0YXJ0VmFsdWU6IG51bGwsXG5cblx0XHRcdC8vIFN0cmluZyAtIENvbG91ciBvZiB0aGUgc2NhbGUgbGluZVxuXHRcdFx0c2NhbGVMaW5lQ29sb3I6IFwicmdiYSgwLDAsMCwuMSlcIixcblxuXHRcdFx0Ly8gTnVtYmVyIC0gUGl4ZWwgd2lkdGggb2YgdGhlIHNjYWxlIGxpbmVcblx0XHRcdHNjYWxlTGluZVdpZHRoOiAxLFxuXG5cdFx0XHQvLyBCb29sZWFuIC0gV2hldGhlciB0byBzaG93IGxhYmVscyBvbiB0aGUgc2NhbGVcblx0XHRcdHNjYWxlU2hvd0xhYmVsczogdHJ1ZSxcblxuXHRcdFx0Ly8gSW50ZXJwb2xhdGVkIEpTIHN0cmluZyAtIGNhbiBhY2Nlc3MgdmFsdWVcblx0XHRcdHNjYWxlTGFiZWw6IFwiPCU9dmFsdWUlPlwiLFxuXG5cdFx0XHQvLyBCb29sZWFuIC0gV2hldGhlciB0aGUgc2NhbGUgc2hvdWxkIHN0aWNrIHRvIGludGVnZXJzLCBhbmQgbm90IHNob3cgYW55IGZsb2F0cyBldmVuIGlmIGRyYXdpbmcgc3BhY2UgaXMgdGhlcmVcblx0XHRcdHNjYWxlSW50ZWdlcnNPbmx5OiB0cnVlLFxuXG5cdFx0XHQvLyBCb29sZWFuIC0gV2hldGhlciB0aGUgc2NhbGUgc2hvdWxkIHN0YXJ0IGF0IHplcm8sIG9yIGFuIG9yZGVyIG9mIG1hZ25pdHVkZSBkb3duIGZyb20gdGhlIGxvd2VzdCB2YWx1ZVxuXHRcdFx0c2NhbGVCZWdpbkF0WmVybzogZmFsc2UsXG5cblx0XHRcdC8vIFN0cmluZyAtIFNjYWxlIGxhYmVsIGZvbnQgZGVjbGFyYXRpb24gZm9yIHRoZSBzY2FsZSBsYWJlbFxuXHRcdFx0c2NhbGVGb250RmFtaWx5OiBcIidIZWx2ZXRpY2EgTmV1ZScsICdIZWx2ZXRpY2EnLCAnQXJpYWwnLCBzYW5zLXNlcmlmXCIsXG5cblx0XHRcdC8vIE51bWJlciAtIFNjYWxlIGxhYmVsIGZvbnQgc2l6ZSBpbiBwaXhlbHNcblx0XHRcdHNjYWxlRm9udFNpemU6IDEyLFxuXG5cdFx0XHQvLyBTdHJpbmcgLSBTY2FsZSBsYWJlbCBmb250IHdlaWdodCBzdHlsZVxuXHRcdFx0c2NhbGVGb250U3R5bGU6IFwibm9ybWFsXCIsXG5cblx0XHRcdC8vIFN0cmluZyAtIFNjYWxlIGxhYmVsIGZvbnQgY29sb3VyXG5cdFx0XHRzY2FsZUZvbnRDb2xvcjogXCIjNjY2XCIsXG5cblx0XHRcdC8vIEJvb2xlYW4gLSB3aGV0aGVyIG9yIG5vdCB0aGUgY2hhcnQgc2hvdWxkIGJlIHJlc3BvbnNpdmUgYW5kIHJlc2l6ZSB3aGVuIHRoZSBicm93c2VyIGRvZXMuXG5cdFx0XHRyZXNwb25zaXZlOiBmYWxzZSxcblxuXHRcdFx0Ly8gQm9vbGVhbiAtIHdoZXRoZXIgdG8gbWFpbnRhaW4gdGhlIHN0YXJ0aW5nIGFzcGVjdCByYXRpbyBvciBub3Qgd2hlbiByZXNwb25zaXZlLCBpZiBzZXQgdG8gZmFsc2UsIHdpbGwgdGFrZSB1cCBlbnRpcmUgY29udGFpbmVyXG5cdFx0XHRtYWludGFpbkFzcGVjdFJhdGlvOiB0cnVlLFxuXG5cdFx0XHQvLyBCb29sZWFuIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGRyYXcgdG9vbHRpcHMgb24gdGhlIGNhbnZhcyBvciBub3QgLSBhdHRhY2hlcyBldmVudHMgdG8gdG91Y2htb3ZlICYgbW91c2Vtb3ZlXG5cdFx0XHRzaG93VG9vbHRpcHM6IHRydWUsXG5cblx0XHRcdC8vIEJvb2xlYW4gLSBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZHJhdyBidWlsdC1pbiB0b29sdGlwIG9yIGNhbGwgY3VzdG9tIHRvb2x0aXAgZnVuY3Rpb25cblx0XHRcdGN1c3RvbVRvb2x0aXBzOiBmYWxzZSxcblxuXHRcdFx0Ly8gQXJyYXkgLSBBcnJheSBvZiBzdHJpbmcgbmFtZXMgdG8gYXR0YWNoIHRvb2x0aXAgZXZlbnRzXG5cdFx0XHR0b29sdGlwRXZlbnRzOiBbXCJtb3VzZW1vdmVcIiwgXCJ0b3VjaHN0YXJ0XCIsIFwidG91Y2htb3ZlXCIsIFwibW91c2VvdXRcIl0sXG5cblx0XHRcdC8vIFN0cmluZyAtIFRvb2x0aXAgYmFja2dyb3VuZCBjb2xvdXJcblx0XHRcdHRvb2x0aXBGaWxsQ29sb3I6IFwicmdiYSgwLDAsMCwwLjgpXCIsXG5cblx0XHRcdC8vIFN0cmluZyAtIFRvb2x0aXAgbGFiZWwgZm9udCBkZWNsYXJhdGlvbiBmb3IgdGhlIHNjYWxlIGxhYmVsXG5cdFx0XHR0b29sdGlwRm9udEZhbWlseTogXCInSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhJywgJ0FyaWFsJywgc2Fucy1zZXJpZlwiLFxuXG5cdFx0XHQvLyBOdW1iZXIgLSBUb29sdGlwIGxhYmVsIGZvbnQgc2l6ZSBpbiBwaXhlbHNcblx0XHRcdHRvb2x0aXBGb250U2l6ZTogMTQsXG5cblx0XHRcdC8vIFN0cmluZyAtIFRvb2x0aXAgZm9udCB3ZWlnaHQgc3R5bGVcblx0XHRcdHRvb2x0aXBGb250U3R5bGU6IFwibm9ybWFsXCIsXG5cblx0XHRcdC8vIFN0cmluZyAtIFRvb2x0aXAgbGFiZWwgZm9udCBjb2xvdXJcblx0XHRcdHRvb2x0aXBGb250Q29sb3I6IFwiI2ZmZlwiLFxuXG5cdFx0XHQvLyBTdHJpbmcgLSBUb29sdGlwIHRpdGxlIGZvbnQgZGVjbGFyYXRpb24gZm9yIHRoZSBzY2FsZSBsYWJlbFxuXHRcdFx0dG9vbHRpcFRpdGxlRm9udEZhbWlseTogXCInSGVsdmV0aWNhIE5ldWUnLCAnSGVsdmV0aWNhJywgJ0FyaWFsJywgc2Fucy1zZXJpZlwiLFxuXG5cdFx0XHQvLyBOdW1iZXIgLSBUb29sdGlwIHRpdGxlIGZvbnQgc2l6ZSBpbiBwaXhlbHNcblx0XHRcdHRvb2x0aXBUaXRsZUZvbnRTaXplOiAxNCxcblxuXHRcdFx0Ly8gU3RyaW5nIC0gVG9vbHRpcCB0aXRsZSBmb250IHdlaWdodCBzdHlsZVxuXHRcdFx0dG9vbHRpcFRpdGxlRm9udFN0eWxlOiBcImJvbGRcIixcblxuXHRcdFx0Ly8gU3RyaW5nIC0gVG9vbHRpcCB0aXRsZSBmb250IGNvbG91clxuXHRcdFx0dG9vbHRpcFRpdGxlRm9udENvbG9yOiBcIiNmZmZcIixcblxuXHRcdFx0Ly8gTnVtYmVyIC0gcGl4ZWwgd2lkdGggb2YgcGFkZGluZyBhcm91bmQgdG9vbHRpcCB0ZXh0XG5cdFx0XHR0b29sdGlwWVBhZGRpbmc6IDYsXG5cblx0XHRcdC8vIE51bWJlciAtIHBpeGVsIHdpZHRoIG9mIHBhZGRpbmcgYXJvdW5kIHRvb2x0aXAgdGV4dFxuXHRcdFx0dG9vbHRpcFhQYWRkaW5nOiA2LFxuXG5cdFx0XHQvLyBOdW1iZXIgLSBTaXplIG9mIHRoZSBjYXJldCBvbiB0aGUgdG9vbHRpcFxuXHRcdFx0dG9vbHRpcENhcmV0U2l6ZTogOCxcblxuXHRcdFx0Ly8gTnVtYmVyIC0gUGl4ZWwgcmFkaXVzIG9mIHRoZSB0b29sdGlwIGJvcmRlclxuXHRcdFx0dG9vbHRpcENvcm5lclJhZGl1czogNixcblxuXHRcdFx0Ly8gTnVtYmVyIC0gUGl4ZWwgb2Zmc2V0IGZyb20gcG9pbnQgeCB0byB0b29sdGlwIGVkZ2Vcblx0XHRcdHRvb2x0aXBYT2Zmc2V0OiAxMCxcblxuXHRcdFx0Ly8gU3RyaW5nIC0gVGVtcGxhdGUgc3RyaW5nIGZvciBzaW5nbGUgdG9vbHRpcHNcblx0XHRcdHRvb2x0aXBUZW1wbGF0ZTogXCI8JWlmIChsYWJlbCl7JT48JT1sYWJlbCU+OiA8JX0lPjwlPSB2YWx1ZSAlPlwiLFxuXG5cdFx0XHQvLyBTdHJpbmcgLSBUZW1wbGF0ZSBzdHJpbmcgZm9yIHNpbmdsZSB0b29sdGlwc1xuXHRcdFx0bXVsdGlUb29sdGlwVGVtcGxhdGU6IFwiPCU9IHZhbHVlICU+XCIsXG5cblx0XHRcdC8vIFN0cmluZyAtIENvbG91ciBiZWhpbmQgdGhlIGxlZ2VuZCBjb2xvdXIgYmxvY2tcblx0XHRcdG11bHRpVG9vbHRpcEtleUJhY2tncm91bmQ6ICcjZmZmJyxcblxuXHRcdFx0Ly8gRnVuY3Rpb24gLSBXaWxsIGZpcmUgb24gYW5pbWF0aW9uIHByb2dyZXNzaW9uLlxuXHRcdFx0b25BbmltYXRpb25Qcm9ncmVzczogZnVuY3Rpb24oKXt9LFxuXG5cdFx0XHQvLyBGdW5jdGlvbiAtIFdpbGwgZmlyZSBvbiBhbmltYXRpb24gY29tcGxldGlvbi5cblx0XHRcdG9uQW5pbWF0aW9uQ29tcGxldGU6IGZ1bmN0aW9uKCl7fVxuXG5cdFx0fVxuXHR9O1xuXG5cdC8vQ3JlYXRlIGEgZGljdGlvbmFyeSBvZiBjaGFydCB0eXBlcywgdG8gYWxsb3cgZm9yIGV4dGVuc2lvbiBvZiBleGlzdGluZyB0eXBlc1xuXHRDaGFydC50eXBlcyA9IHt9O1xuXG5cdC8vR2xvYmFsIENoYXJ0IGhlbHBlcnMgb2JqZWN0IGZvciB1dGlsaXR5IG1ldGhvZHMgYW5kIGNsYXNzZXNcblx0dmFyIGhlbHBlcnMgPSBDaGFydC5oZWxwZXJzID0ge307XG5cblx0XHQvLy0tIEJhc2ljIGpzIHV0aWxpdHkgbWV0aG9kc1xuXHR2YXIgZWFjaCA9IGhlbHBlcnMuZWFjaCA9IGZ1bmN0aW9uKGxvb3BhYmxlLGNhbGxiYWNrLHNlbGYpe1xuXHRcdFx0dmFyIGFkZGl0aW9uYWxBcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAzKTtcblx0XHRcdC8vIENoZWNrIHRvIHNlZSBpZiBudWxsIG9yIHVuZGVmaW5lZCBmaXJzdGx5LlxuXHRcdFx0aWYgKGxvb3BhYmxlKXtcblx0XHRcdFx0aWYgKGxvb3BhYmxlLmxlbmd0aCA9PT0gK2xvb3BhYmxlLmxlbmd0aCl7XG5cdFx0XHRcdFx0dmFyIGk7XG5cdFx0XHRcdFx0Zm9yIChpPTA7IGk8bG9vcGFibGUubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdFx0Y2FsbGJhY2suYXBwbHkoc2VsZixbbG9vcGFibGVbaV0sIGldLmNvbmNhdChhZGRpdGlvbmFsQXJncykpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNle1xuXHRcdFx0XHRcdGZvciAodmFyIGl0ZW0gaW4gbG9vcGFibGUpe1xuXHRcdFx0XHRcdFx0Y2FsbGJhY2suYXBwbHkoc2VsZixbbG9vcGFibGVbaXRlbV0saXRlbV0uY29uY2F0KGFkZGl0aW9uYWxBcmdzKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRjbG9uZSA9IGhlbHBlcnMuY2xvbmUgPSBmdW5jdGlvbihvYmope1xuXHRcdFx0dmFyIG9iakNsb25lID0ge307XG5cdFx0XHRlYWNoKG9iaixmdW5jdGlvbih2YWx1ZSxrZXkpe1xuXHRcdFx0XHRpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIG9iakNsb25lW2tleV0gPSB2YWx1ZTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIG9iakNsb25lO1xuXHRcdH0sXG5cdFx0ZXh0ZW5kID0gaGVscGVycy5leHRlbmQgPSBmdW5jdGlvbihiYXNlKXtcblx0XHRcdGVhY2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLCBmdW5jdGlvbihleHRlbnNpb25PYmplY3QpIHtcblx0XHRcdFx0ZWFjaChleHRlbnNpb25PYmplY3QsZnVuY3Rpb24odmFsdWUsa2V5KXtcblx0XHRcdFx0XHRpZiAoZXh0ZW5zaW9uT2JqZWN0Lmhhc093blByb3BlcnR5KGtleSkpIGJhc2Vba2V5XSA9IHZhbHVlO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGJhc2U7XG5cdFx0fSxcblx0XHRtZXJnZSA9IGhlbHBlcnMubWVyZ2UgPSBmdW5jdGlvbihiYXNlLG1hc3Rlcil7XG5cdFx0XHQvL01lcmdlIHByb3BlcnRpZXMgaW4gbGVmdCBvYmplY3Qgb3ZlciB0byBhIHNoYWxsb3cgY2xvbmUgb2Ygb2JqZWN0IHJpZ2h0LlxuXHRcdFx0dmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7XG5cdFx0XHRhcmdzLnVuc2hpZnQoe30pO1xuXHRcdFx0cmV0dXJuIGV4dGVuZC5hcHBseShudWxsLCBhcmdzKTtcblx0XHR9LFxuXHRcdGluZGV4T2YgPSBoZWxwZXJzLmluZGV4T2YgPSBmdW5jdGlvbihhcnJheVRvU2VhcmNoLCBpdGVtKXtcblx0XHRcdGlmIChBcnJheS5wcm90b3R5cGUuaW5kZXhPZikge1xuXHRcdFx0XHRyZXR1cm4gYXJyYXlUb1NlYXJjaC5pbmRleE9mKGl0ZW0pO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZXtcblx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheVRvU2VhcmNoLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0aWYgKGFycmF5VG9TZWFyY2hbaV0gPT09IGl0ZW0pIHJldHVybiBpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHdoZXJlID0gaGVscGVycy53aGVyZSA9IGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGZpbHRlckNhbGxiYWNrKXtcblx0XHRcdHZhciBmaWx0ZXJlZCA9IFtdO1xuXG5cdFx0XHRoZWxwZXJzLmVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24oaXRlbSl7XG5cdFx0XHRcdGlmIChmaWx0ZXJDYWxsYmFjayhpdGVtKSl7XG5cdFx0XHRcdFx0ZmlsdGVyZWQucHVzaChpdGVtKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdHJldHVybiBmaWx0ZXJlZDtcblx0XHR9LFxuXHRcdGZpbmROZXh0V2hlcmUgPSBoZWxwZXJzLmZpbmROZXh0V2hlcmUgPSBmdW5jdGlvbihhcnJheVRvU2VhcmNoLCBmaWx0ZXJDYWxsYmFjaywgc3RhcnRJbmRleCl7XG5cdFx0XHQvLyBEZWZhdWx0IHRvIHN0YXJ0IG9mIHRoZSBhcnJheVxuXHRcdFx0aWYgKCFzdGFydEluZGV4KXtcblx0XHRcdFx0c3RhcnRJbmRleCA9IC0xO1xuXHRcdFx0fVxuXHRcdFx0Zm9yICh2YXIgaSA9IHN0YXJ0SW5kZXggKyAxOyBpIDwgYXJyYXlUb1NlYXJjaC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHR2YXIgY3VycmVudEl0ZW0gPSBhcnJheVRvU2VhcmNoW2ldO1xuXHRcdFx0XHRpZiAoZmlsdGVyQ2FsbGJhY2soY3VycmVudEl0ZW0pKXtcblx0XHRcdFx0XHRyZXR1cm4gY3VycmVudEl0ZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LFxuXHRcdGZpbmRQcmV2aW91c1doZXJlID0gaGVscGVycy5maW5kUHJldmlvdXNXaGVyZSA9IGZ1bmN0aW9uKGFycmF5VG9TZWFyY2gsIGZpbHRlckNhbGxiYWNrLCBzdGFydEluZGV4KXtcblx0XHRcdC8vIERlZmF1bHQgdG8gZW5kIG9mIHRoZSBhcnJheVxuXHRcdFx0aWYgKCFzdGFydEluZGV4KXtcblx0XHRcdFx0c3RhcnRJbmRleCA9IGFycmF5VG9TZWFyY2gubGVuZ3RoO1xuXHRcdFx0fVxuXHRcdFx0Zm9yICh2YXIgaSA9IHN0YXJ0SW5kZXggLSAxOyBpID49IDA7IGktLSkge1xuXHRcdFx0XHR2YXIgY3VycmVudEl0ZW0gPSBhcnJheVRvU2VhcmNoW2ldO1xuXHRcdFx0XHRpZiAoZmlsdGVyQ2FsbGJhY2soY3VycmVudEl0ZW0pKXtcblx0XHRcdFx0XHRyZXR1cm4gY3VycmVudEl0ZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LFxuXHRcdGluaGVyaXRzID0gaGVscGVycy5pbmhlcml0cyA9IGZ1bmN0aW9uKGV4dGVuc2lvbnMpe1xuXHRcdFx0Ly9CYXNpYyBqYXZhc2NyaXB0IGluaGVyaXRhbmNlIGJhc2VkIG9uIHRoZSBtb2RlbCBjcmVhdGVkIGluIEJhY2tib25lLmpzXG5cdFx0XHR2YXIgcGFyZW50ID0gdGhpcztcblx0XHRcdHZhciBDaGFydEVsZW1lbnQgPSAoZXh0ZW5zaW9ucyAmJiBleHRlbnNpb25zLmhhc093blByb3BlcnR5KFwiY29uc3RydWN0b3JcIikpID8gZXh0ZW5zaW9ucy5jb25zdHJ1Y3RvciA6IGZ1bmN0aW9uKCl7IHJldHVybiBwYXJlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfTtcblxuXHRcdFx0dmFyIFN1cnJvZ2F0ZSA9IGZ1bmN0aW9uKCl7IHRoaXMuY29uc3RydWN0b3IgPSBDaGFydEVsZW1lbnQ7fTtcblx0XHRcdFN1cnJvZ2F0ZS5wcm90b3R5cGUgPSBwYXJlbnQucHJvdG90eXBlO1xuXHRcdFx0Q2hhcnRFbGVtZW50LnByb3RvdHlwZSA9IG5ldyBTdXJyb2dhdGUoKTtcblxuXHRcdFx0Q2hhcnRFbGVtZW50LmV4dGVuZCA9IGluaGVyaXRzO1xuXG5cdFx0XHRpZiAoZXh0ZW5zaW9ucykgZXh0ZW5kKENoYXJ0RWxlbWVudC5wcm90b3R5cGUsIGV4dGVuc2lvbnMpO1xuXG5cdFx0XHRDaGFydEVsZW1lbnQuX19zdXBlcl9fID0gcGFyZW50LnByb3RvdHlwZTtcblxuXHRcdFx0cmV0dXJuIENoYXJ0RWxlbWVudDtcblx0XHR9LFxuXHRcdG5vb3AgPSBoZWxwZXJzLm5vb3AgPSBmdW5jdGlvbigpe30sXG5cdFx0dWlkID0gaGVscGVycy51aWQgPSAoZnVuY3Rpb24oKXtcblx0XHRcdHZhciBpZD0wO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCl7XG5cdFx0XHRcdHJldHVybiBcImNoYXJ0LVwiICsgaWQrKztcblx0XHRcdH07XG5cdFx0fSkoKSxcblx0XHR3YXJuID0gaGVscGVycy53YXJuID0gZnVuY3Rpb24oc3RyKXtcblx0XHRcdC8vTWV0aG9kIGZvciB3YXJuaW5nIG9mIGVycm9yc1xuXHRcdFx0aWYgKHdpbmRvdy5jb25zb2xlICYmIHR5cGVvZiB3aW5kb3cuY29uc29sZS53YXJuID09IFwiZnVuY3Rpb25cIikgY29uc29sZS53YXJuKHN0cik7XG5cdFx0fSxcblx0XHRhbWQgPSBoZWxwZXJzLmFtZCA9ICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCksXG5cdFx0Ly8tLSBNYXRoIG1ldGhvZHNcblx0XHRpc051bWJlciA9IGhlbHBlcnMuaXNOdW1iZXIgPSBmdW5jdGlvbihuKXtcblx0XHRcdHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XG5cdFx0fSxcblx0XHRtYXggPSBoZWxwZXJzLm1heCA9IGZ1bmN0aW9uKGFycmF5KXtcblx0XHRcdHJldHVybiBNYXRoLm1heC5hcHBseSggTWF0aCwgYXJyYXkgKTtcblx0XHR9LFxuXHRcdG1pbiA9IGhlbHBlcnMubWluID0gZnVuY3Rpb24oYXJyYXkpe1xuXHRcdFx0cmV0dXJuIE1hdGgubWluLmFwcGx5KCBNYXRoLCBhcnJheSApO1xuXHRcdH0sXG5cdFx0Y2FwID0gaGVscGVycy5jYXAgPSBmdW5jdGlvbih2YWx1ZVRvQ2FwLG1heFZhbHVlLG1pblZhbHVlKXtcblx0XHRcdGlmKGlzTnVtYmVyKG1heFZhbHVlKSkge1xuXHRcdFx0XHRpZiggdmFsdWVUb0NhcCA+IG1heFZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiBtYXhWYWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZihpc051bWJlcihtaW5WYWx1ZSkpe1xuXHRcdFx0XHRpZiAoIHZhbHVlVG9DYXAgPCBtaW5WYWx1ZSApe1xuXHRcdFx0XHRcdHJldHVybiBtaW5WYWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHZhbHVlVG9DYXA7XG5cdFx0fSxcblx0XHRnZXREZWNpbWFsUGxhY2VzID0gaGVscGVycy5nZXREZWNpbWFsUGxhY2VzID0gZnVuY3Rpb24obnVtKXtcblx0XHRcdGlmIChudW0lMSE9PTAgJiYgaXNOdW1iZXIobnVtKSl7XG5cdFx0XHRcdHJldHVybiBudW0udG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV0ubGVuZ3RoO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHJldHVybiAwO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0dG9SYWRpYW5zID0gaGVscGVycy5yYWRpYW5zID0gZnVuY3Rpb24oZGVncmVlcyl7XG5cdFx0XHRyZXR1cm4gZGVncmVlcyAqIChNYXRoLlBJLzE4MCk7XG5cdFx0fSxcblx0XHQvLyBHZXRzIHRoZSBhbmdsZSBmcm9tIHZlcnRpY2FsIHVwcmlnaHQgdG8gdGhlIHBvaW50IGFib3V0IGEgY2VudHJlLlxuXHRcdGdldEFuZ2xlRnJvbVBvaW50ID0gaGVscGVycy5nZXRBbmdsZUZyb21Qb2ludCA9IGZ1bmN0aW9uKGNlbnRyZVBvaW50LCBhbmdsZVBvaW50KXtcblx0XHRcdHZhciBkaXN0YW5jZUZyb21YQ2VudGVyID0gYW5nbGVQb2ludC54IC0gY2VudHJlUG9pbnQueCxcblx0XHRcdFx0ZGlzdGFuY2VGcm9tWUNlbnRlciA9IGFuZ2xlUG9pbnQueSAtIGNlbnRyZVBvaW50LnksXG5cdFx0XHRcdHJhZGlhbERpc3RhbmNlRnJvbUNlbnRlciA9IE1hdGguc3FydCggZGlzdGFuY2VGcm9tWENlbnRlciAqIGRpc3RhbmNlRnJvbVhDZW50ZXIgKyBkaXN0YW5jZUZyb21ZQ2VudGVyICogZGlzdGFuY2VGcm9tWUNlbnRlcik7XG5cblxuXHRcdFx0dmFyIGFuZ2xlID0gTWF0aC5QSSAqIDIgKyBNYXRoLmF0YW4yKGRpc3RhbmNlRnJvbVlDZW50ZXIsIGRpc3RhbmNlRnJvbVhDZW50ZXIpO1xuXG5cdFx0XHQvL0lmIHRoZSBzZWdtZW50IGlzIGluIHRoZSB0b3AgbGVmdCBxdWFkcmFudCwgd2UgbmVlZCB0byBhZGQgYW5vdGhlciByb3RhdGlvbiB0byB0aGUgYW5nbGVcblx0XHRcdGlmIChkaXN0YW5jZUZyb21YQ2VudGVyIDwgMCAmJiBkaXN0YW5jZUZyb21ZQ2VudGVyIDwgMCl7XG5cdFx0XHRcdGFuZ2xlICs9IE1hdGguUEkqMjtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0YW5nbGU6IGFuZ2xlLFxuXHRcdFx0XHRkaXN0YW5jZTogcmFkaWFsRGlzdGFuY2VGcm9tQ2VudGVyXG5cdFx0XHR9O1xuXHRcdH0sXG5cdFx0YWxpYXNQaXhlbCA9IGhlbHBlcnMuYWxpYXNQaXhlbCA9IGZ1bmN0aW9uKHBpeGVsV2lkdGgpe1xuXHRcdFx0cmV0dXJuIChwaXhlbFdpZHRoICUgMiA9PT0gMCkgPyAwIDogMC41O1xuXHRcdH0sXG5cdFx0c3BsaW5lQ3VydmUgPSBoZWxwZXJzLnNwbGluZUN1cnZlID0gZnVuY3Rpb24oRmlyc3RQb2ludCxNaWRkbGVQb2ludCxBZnRlclBvaW50LHQpe1xuXHRcdFx0Ly9Qcm9wcyB0byBSb2IgU3BlbmNlciBhdCBzY2FsZWQgaW5ub3ZhdGlvbiBmb3IgaGlzIHBvc3Qgb24gc3BsaW5pbmcgYmV0d2VlbiBwb2ludHNcblx0XHRcdC8vaHR0cDovL3NjYWxlZGlubm92YXRpb24uY29tL2FuYWx5dGljcy9zcGxpbmVzL2Fib3V0U3BsaW5lcy5odG1sXG5cdFx0XHR2YXIgZDAxPU1hdGguc3FydChNYXRoLnBvdyhNaWRkbGVQb2ludC54LUZpcnN0UG9pbnQueCwyKStNYXRoLnBvdyhNaWRkbGVQb2ludC55LUZpcnN0UG9pbnQueSwyKSksXG5cdFx0XHRcdGQxMj1NYXRoLnNxcnQoTWF0aC5wb3coQWZ0ZXJQb2ludC54LU1pZGRsZVBvaW50LngsMikrTWF0aC5wb3coQWZ0ZXJQb2ludC55LU1pZGRsZVBvaW50LnksMikpLFxuXHRcdFx0XHRmYT10KmQwMS8oZDAxK2QxMiksLy8gc2NhbGluZyBmYWN0b3IgZm9yIHRyaWFuZ2xlIFRhXG5cdFx0XHRcdGZiPXQqZDEyLyhkMDErZDEyKTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlubmVyIDoge1xuXHRcdFx0XHRcdHggOiBNaWRkbGVQb2ludC54LWZhKihBZnRlclBvaW50LngtRmlyc3RQb2ludC54KSxcblx0XHRcdFx0XHR5IDogTWlkZGxlUG9pbnQueS1mYSooQWZ0ZXJQb2ludC55LUZpcnN0UG9pbnQueSlcblx0XHRcdFx0fSxcblx0XHRcdFx0b3V0ZXIgOiB7XG5cdFx0XHRcdFx0eDogTWlkZGxlUG9pbnQueCtmYiooQWZ0ZXJQb2ludC54LUZpcnN0UG9pbnQueCksXG5cdFx0XHRcdFx0eSA6IE1pZGRsZVBvaW50LnkrZmIqKEFmdGVyUG9pbnQueS1GaXJzdFBvaW50LnkpXG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fSxcblx0XHRjYWxjdWxhdGVPcmRlck9mTWFnbml0dWRlID0gaGVscGVycy5jYWxjdWxhdGVPcmRlck9mTWFnbml0dWRlID0gZnVuY3Rpb24odmFsKXtcblx0XHRcdHJldHVybiBNYXRoLmZsb29yKE1hdGgubG9nKHZhbCkgLyBNYXRoLkxOMTApO1xuXHRcdH0sXG5cdFx0Y2FsY3VsYXRlU2NhbGVSYW5nZSA9IGhlbHBlcnMuY2FsY3VsYXRlU2NhbGVSYW5nZSA9IGZ1bmN0aW9uKHZhbHVlc0FycmF5LCBkcmF3aW5nU2l6ZSwgdGV4dFNpemUsIHN0YXJ0RnJvbVplcm8sIGludGVnZXJzT25seSl7XG5cblx0XHRcdC8vU2V0IGEgbWluaW11bSBzdGVwIG9mIHR3byAtIGEgcG9pbnQgYXQgdGhlIHRvcCBvZiB0aGUgZ3JhcGgsIGFuZCBhIHBvaW50IGF0IHRoZSBiYXNlXG5cdFx0XHR2YXIgbWluU3RlcHMgPSAyLFxuXHRcdFx0XHRtYXhTdGVwcyA9IE1hdGguZmxvb3IoZHJhd2luZ1NpemUvKHRleHRTaXplICogMS41KSksXG5cdFx0XHRcdHNraXBGaXR0aW5nID0gKG1pblN0ZXBzID49IG1heFN0ZXBzKTtcblxuXHRcdFx0dmFyIG1heFZhbHVlID0gbWF4KHZhbHVlc0FycmF5KSxcblx0XHRcdFx0bWluVmFsdWUgPSBtaW4odmFsdWVzQXJyYXkpO1xuXG5cdFx0XHQvLyBXZSBuZWVkIHNvbWUgZGVncmVlIG9mIHNlcGVyYXRpb24gaGVyZSB0byBjYWxjdWxhdGUgdGhlIHNjYWxlcyBpZiBhbGwgdGhlIHZhbHVlcyBhcmUgdGhlIHNhbWVcblx0XHRcdC8vIEFkZGluZy9taW51c2luZyAwLjUgd2lsbCBnaXZlIHVzIGEgcmFuZ2Ugb2YgMS5cblx0XHRcdGlmIChtYXhWYWx1ZSA9PT0gbWluVmFsdWUpe1xuXHRcdFx0XHRtYXhWYWx1ZSArPSAwLjU7XG5cdFx0XHRcdC8vIFNvIHdlIGRvbid0IGVuZCB1cCB3aXRoIGEgZ3JhcGggd2l0aCBhIG5lZ2F0aXZlIHN0YXJ0IHZhbHVlIGlmIHdlJ3ZlIHNhaWQgYWx3YXlzIHN0YXJ0IGZyb20gemVyb1xuXHRcdFx0XHRpZiAobWluVmFsdWUgPj0gMC41ICYmICFzdGFydEZyb21aZXJvKXtcblx0XHRcdFx0XHRtaW5WYWx1ZSAtPSAwLjU7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZXtcblx0XHRcdFx0XHQvLyBNYWtlIHVwIGEgd2hvbGUgbnVtYmVyIGFib3ZlIHRoZSB2YWx1ZXNcblx0XHRcdFx0XHRtYXhWYWx1ZSArPSAwLjU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dmFyXHR2YWx1ZVJhbmdlID0gTWF0aC5hYnMobWF4VmFsdWUgLSBtaW5WYWx1ZSksXG5cdFx0XHRcdHJhbmdlT3JkZXJPZk1hZ25pdHVkZSA9IGNhbGN1bGF0ZU9yZGVyT2ZNYWduaXR1ZGUodmFsdWVSYW5nZSksXG5cdFx0XHRcdGdyYXBoTWF4ID0gTWF0aC5jZWlsKG1heFZhbHVlIC8gKDEgKiBNYXRoLnBvdygxMCwgcmFuZ2VPcmRlck9mTWFnbml0dWRlKSkpICogTWF0aC5wb3coMTAsIHJhbmdlT3JkZXJPZk1hZ25pdHVkZSksXG5cdFx0XHRcdGdyYXBoTWluID0gKHN0YXJ0RnJvbVplcm8pID8gMCA6IE1hdGguZmxvb3IobWluVmFsdWUgLyAoMSAqIE1hdGgucG93KDEwLCByYW5nZU9yZGVyT2ZNYWduaXR1ZGUpKSkgKiBNYXRoLnBvdygxMCwgcmFuZ2VPcmRlck9mTWFnbml0dWRlKSxcblx0XHRcdFx0Z3JhcGhSYW5nZSA9IGdyYXBoTWF4IC0gZ3JhcGhNaW4sXG5cdFx0XHRcdHN0ZXBWYWx1ZSA9IE1hdGgucG93KDEwLCByYW5nZU9yZGVyT2ZNYWduaXR1ZGUpLFxuXHRcdFx0XHRudW1iZXJPZlN0ZXBzID0gTWF0aC5yb3VuZChncmFwaFJhbmdlIC8gc3RlcFZhbHVlKTtcblxuXHRcdFx0Ly9JZiB3ZSBoYXZlIG1vcmUgc3BhY2Ugb24gdGhlIGdyYXBoIHdlJ2xsIHVzZSBpdCB0byBnaXZlIG1vcmUgZGVmaW5pdGlvbiB0byB0aGUgZGF0YVxuXHRcdFx0d2hpbGUoKG51bWJlck9mU3RlcHMgPiBtYXhTdGVwcyB8fCAobnVtYmVyT2ZTdGVwcyAqIDIpIDwgbWF4U3RlcHMpICYmICFza2lwRml0dGluZykge1xuXHRcdFx0XHRpZihudW1iZXJPZlN0ZXBzID4gbWF4U3RlcHMpe1xuXHRcdFx0XHRcdHN0ZXBWYWx1ZSAqPTI7XG5cdFx0XHRcdFx0bnVtYmVyT2ZTdGVwcyA9IE1hdGgucm91bmQoZ3JhcGhSYW5nZS9zdGVwVmFsdWUpO1xuXHRcdFx0XHRcdC8vIERvbid0IGV2ZXIgZGVhbCB3aXRoIGEgZGVjaW1hbCBudW1iZXIgb2Ygc3RlcHMgLSBjYW5jZWwgZml0dGluZyBhbmQganVzdCB1c2UgdGhlIG1pbmltdW0gbnVtYmVyIG9mIHN0ZXBzLlxuXHRcdFx0XHRcdGlmIChudW1iZXJPZlN0ZXBzICUgMSAhPT0gMCl7XG5cdFx0XHRcdFx0XHRza2lwRml0dGluZyA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vV2UgY2FuIGZpdCBpbiBkb3VibGUgdGhlIGFtb3VudCBvZiBzY2FsZSBwb2ludHMgb24gdGhlIHNjYWxlXG5cdFx0XHRcdGVsc2V7XG5cdFx0XHRcdFx0Ly9JZiB1c2VyIGhhcyBkZWNsYXJlZCBpbnRzIG9ubHksIGFuZCB0aGUgc3RlcCB2YWx1ZSBpc24ndCBhIGRlY2ltYWxcblx0XHRcdFx0XHRpZiAoaW50ZWdlcnNPbmx5ICYmIHJhbmdlT3JkZXJPZk1hZ25pdHVkZSA+PSAwKXtcblx0XHRcdFx0XHRcdC8vSWYgdGhlIHVzZXIgaGFzIHNhaWQgaW50ZWdlcnMgb25seSwgd2UgbmVlZCB0byBjaGVjayB0aGF0IG1ha2luZyB0aGUgc2NhbGUgbW9yZSBncmFudWxhciB3b3VsZG4ndCBtYWtlIGl0IGEgZmxvYXRcblx0XHRcdFx0XHRcdGlmKHN0ZXBWYWx1ZS8yICUgMSA9PT0gMCl7XG5cdFx0XHRcdFx0XHRcdHN0ZXBWYWx1ZSAvPTI7XG5cdFx0XHRcdFx0XHRcdG51bWJlck9mU3RlcHMgPSBNYXRoLnJvdW5kKGdyYXBoUmFuZ2Uvc3RlcFZhbHVlKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vSWYgaXQgd291bGQgbWFrZSBpdCBhIGZsb2F0IGJyZWFrIG91dCBvZiB0aGUgbG9vcFxuXHRcdFx0XHRcdFx0ZWxzZXtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC8vSWYgdGhlIHNjYWxlIGRvZXNuJ3QgaGF2ZSB0byBiZSBhbiBpbnQsIG1ha2UgdGhlIHNjYWxlIG1vcmUgZ3JhbnVsYXIgYW55d2F5LlxuXHRcdFx0XHRcdGVsc2V7XG5cdFx0XHRcdFx0XHRzdGVwVmFsdWUgLz0yO1xuXHRcdFx0XHRcdFx0bnVtYmVyT2ZTdGVwcyA9IE1hdGgucm91bmQoZ3JhcGhSYW5nZS9zdGVwVmFsdWUpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmIChza2lwRml0dGluZyl7XG5cdFx0XHRcdG51bWJlck9mU3RlcHMgPSBtaW5TdGVwcztcblx0XHRcdFx0c3RlcFZhbHVlID0gZ3JhcGhSYW5nZSAvIG51bWJlck9mU3RlcHM7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHN0ZXBzIDogbnVtYmVyT2ZTdGVwcyxcblx0XHRcdFx0c3RlcFZhbHVlIDogc3RlcFZhbHVlLFxuXHRcdFx0XHRtaW4gOiBncmFwaE1pbixcblx0XHRcdFx0bWF4XHQ6IGdyYXBoTWluICsgKG51bWJlck9mU3RlcHMgKiBzdGVwVmFsdWUpXG5cdFx0XHR9O1xuXG5cdFx0fSxcblx0XHQvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG5cdFx0Ly8gQmxvd3MgdXAganNoaW50IGVycm9ycyBiYXNlZCBvbiB0aGUgbmV3IEZ1bmN0aW9uIGNvbnN0cnVjdG9yXG5cdFx0Ly9UZW1wbGF0aW5nIG1ldGhvZHNcblx0XHQvL0phdmFzY3JpcHQgbWljcm8gdGVtcGxhdGluZyBieSBKb2huIFJlc2lnIC0gc291cmNlIGF0IGh0dHA6Ly9lam9obi5vcmcvYmxvZy9qYXZhc2NyaXB0LW1pY3JvLXRlbXBsYXRpbmcvXG5cdFx0dGVtcGxhdGUgPSBoZWxwZXJzLnRlbXBsYXRlID0gZnVuY3Rpb24odGVtcGxhdGVTdHJpbmcsIHZhbHVlc09iamVjdCl7XG5cblx0XHRcdC8vIElmIHRlbXBsYXRlU3RyaW5nIGlzIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHN0cmluZy10ZW1wbGF0ZSAtIGNhbGwgdGhlIGZ1bmN0aW9uIGZvciB2YWx1ZXNPYmplY3RcblxuXHRcdFx0aWYodGVtcGxhdGVTdHJpbmcgaW5zdGFuY2VvZiBGdW5jdGlvbil7XG5cdFx0XHQgXHRyZXR1cm4gdGVtcGxhdGVTdHJpbmcodmFsdWVzT2JqZWN0KTtcblx0XHQgXHR9XG5cblx0XHRcdHZhciBjYWNoZSA9IHt9O1xuXHRcdFx0ZnVuY3Rpb24gdG1wbChzdHIsIGRhdGEpe1xuXHRcdFx0XHQvLyBGaWd1cmUgb3V0IGlmIHdlJ3JlIGdldHRpbmcgYSB0ZW1wbGF0ZSwgb3IgaWYgd2UgbmVlZCB0b1xuXHRcdFx0XHQvLyBsb2FkIHRoZSB0ZW1wbGF0ZSAtIGFuZCBiZSBzdXJlIHRvIGNhY2hlIHRoZSByZXN1bHQuXG5cdFx0XHRcdHZhciBmbiA9ICEvXFxXLy50ZXN0KHN0cikgP1xuXHRcdFx0XHRjYWNoZVtzdHJdID0gY2FjaGVbc3RyXSA6XG5cblx0XHRcdFx0Ly8gR2VuZXJhdGUgYSByZXVzYWJsZSBmdW5jdGlvbiB0aGF0IHdpbGwgc2VydmUgYXMgYSB0ZW1wbGF0ZVxuXHRcdFx0XHQvLyBnZW5lcmF0b3IgKGFuZCB3aGljaCB3aWxsIGJlIGNhY2hlZCkuXG5cdFx0XHRcdG5ldyBGdW5jdGlvbihcIm9ialwiLFxuXHRcdFx0XHRcdFwidmFyIHA9W10scHJpbnQ9ZnVuY3Rpb24oKXtwLnB1c2guYXBwbHkocCxhcmd1bWVudHMpO307XCIgK1xuXG5cdFx0XHRcdFx0Ly8gSW50cm9kdWNlIHRoZSBkYXRhIGFzIGxvY2FsIHZhcmlhYmxlcyB1c2luZyB3aXRoKCl7fVxuXHRcdFx0XHRcdFwid2l0aChvYmope3AucHVzaCgnXCIgK1xuXG5cdFx0XHRcdFx0Ly8gQ29udmVydCB0aGUgdGVtcGxhdGUgaW50byBwdXJlIEphdmFTY3JpcHRcblx0XHRcdFx0XHRzdHJcblx0XHRcdFx0XHRcdC5yZXBsYWNlKC9bXFxyXFx0XFxuXS9nLCBcIiBcIilcblx0XHRcdFx0XHRcdC5zcGxpdChcIjwlXCIpLmpvaW4oXCJcXHRcIilcblx0XHRcdFx0XHRcdC5yZXBsYWNlKC8oKF58JT4pW15cXHRdKiknL2csIFwiJDFcXHJcIilcblx0XHRcdFx0XHRcdC5yZXBsYWNlKC9cXHQ9KC4qPyklPi9nLCBcIicsJDEsJ1wiKVxuXHRcdFx0XHRcdFx0LnNwbGl0KFwiXFx0XCIpLmpvaW4oXCInKTtcIilcblx0XHRcdFx0XHRcdC5zcGxpdChcIiU+XCIpLmpvaW4oXCJwLnB1c2goJ1wiKVxuXHRcdFx0XHRcdFx0LnNwbGl0KFwiXFxyXCIpLmpvaW4oXCJcXFxcJ1wiKSArXG5cdFx0XHRcdFx0XCInKTt9cmV0dXJuIHAuam9pbignJyk7XCJcblx0XHRcdFx0KTtcblxuXHRcdFx0XHQvLyBQcm92aWRlIHNvbWUgYmFzaWMgY3VycnlpbmcgdG8gdGhlIHVzZXJcblx0XHRcdFx0cmV0dXJuIGRhdGEgPyBmbiggZGF0YSApIDogZm47XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdG1wbCh0ZW1wbGF0ZVN0cmluZyx2YWx1ZXNPYmplY3QpO1xuXHRcdH0sXG5cdFx0LyoganNoaW50IGlnbm9yZTplbmQgKi9cblx0XHRnZW5lcmF0ZUxhYmVscyA9IGhlbHBlcnMuZ2VuZXJhdGVMYWJlbHMgPSBmdW5jdGlvbih0ZW1wbGF0ZVN0cmluZyxudW1iZXJPZlN0ZXBzLGdyYXBoTWluLHN0ZXBWYWx1ZSl7XG5cdFx0XHR2YXIgbGFiZWxzQXJyYXkgPSBuZXcgQXJyYXkobnVtYmVyT2ZTdGVwcyk7XG5cdFx0XHRpZiAobGFiZWxUZW1wbGF0ZVN0cmluZyl7XG5cdFx0XHRcdGVhY2gobGFiZWxzQXJyYXksZnVuY3Rpb24odmFsLGluZGV4KXtcblx0XHRcdFx0XHRsYWJlbHNBcnJheVtpbmRleF0gPSB0ZW1wbGF0ZSh0ZW1wbGF0ZVN0cmluZyx7dmFsdWU6IChncmFwaE1pbiArIChzdGVwVmFsdWUqKGluZGV4KzEpKSl9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbGFiZWxzQXJyYXk7XG5cdFx0fSxcblx0XHQvLy0tQW5pbWF0aW9uIG1ldGhvZHNcblx0XHQvL0Vhc2luZyBmdW5jdGlvbnMgYWRhcHRlZCBmcm9tIFJvYmVydCBQZW5uZXIncyBlYXNpbmcgZXF1YXRpb25zXG5cdFx0Ly9odHRwOi8vd3d3LnJvYmVydHBlbm5lci5jb20vZWFzaW5nL1xuXHRcdGVhc2luZ0VmZmVjdHMgPSBoZWxwZXJzLmVhc2luZ0VmZmVjdHMgPSB7XG5cdFx0XHRsaW5lYXI6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdHJldHVybiB0O1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJblF1YWQ6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdHJldHVybiB0ICogdDtcblx0XHRcdH0sXG5cdFx0XHRlYXNlT3V0UXVhZDogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0cmV0dXJuIC0xICogdCAqICh0IC0gMik7XG5cdFx0XHR9LFxuXHRcdFx0ZWFzZUluT3V0UXVhZDogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0aWYgKCh0IC89IDEgLyAyKSA8IDEpIHJldHVybiAxIC8gMiAqIHQgKiB0O1xuXHRcdFx0XHRyZXR1cm4gLTEgLyAyICogKCgtLXQpICogKHQgLSAyKSAtIDEpO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbkN1YmljOiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHRyZXR1cm4gdCAqIHQgKiB0O1xuXHRcdFx0fSxcblx0XHRcdGVhc2VPdXRDdWJpYzogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0cmV0dXJuIDEgKiAoKHQgPSB0IC8gMSAtIDEpICogdCAqIHQgKyAxKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlSW5PdXRDdWJpYzogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0aWYgKCh0IC89IDEgLyAyKSA8IDEpIHJldHVybiAxIC8gMiAqIHQgKiB0ICogdDtcblx0XHRcdFx0cmV0dXJuIDEgLyAyICogKCh0IC09IDIpICogdCAqIHQgKyAyKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlSW5RdWFydDogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0cmV0dXJuIHQgKiB0ICogdCAqIHQ7XG5cdFx0XHR9LFxuXHRcdFx0ZWFzZU91dFF1YXJ0OiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHRyZXR1cm4gLTEgKiAoKHQgPSB0IC8gMSAtIDEpICogdCAqIHQgKiB0IC0gMSk7XG5cdFx0XHR9LFxuXHRcdFx0ZWFzZUluT3V0UXVhcnQ6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdGlmICgodCAvPSAxIC8gMikgPCAxKSByZXR1cm4gMSAvIDIgKiB0ICogdCAqIHQgKiB0O1xuXHRcdFx0XHRyZXR1cm4gLTEgLyAyICogKCh0IC09IDIpICogdCAqIHQgKiB0IC0gMik7XG5cdFx0XHR9LFxuXHRcdFx0ZWFzZUluUXVpbnQ6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdHJldHVybiAxICogKHQgLz0gMSkgKiB0ICogdCAqIHQgKiB0O1xuXHRcdFx0fSxcblx0XHRcdGVhc2VPdXRRdWludDogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0cmV0dXJuIDEgKiAoKHQgPSB0IC8gMSAtIDEpICogdCAqIHQgKiB0ICogdCArIDEpO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbk91dFF1aW50OiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHRpZiAoKHQgLz0gMSAvIDIpIDwgMSkgcmV0dXJuIDEgLyAyICogdCAqIHQgKiB0ICogdCAqIHQ7XG5cdFx0XHRcdHJldHVybiAxIC8gMiAqICgodCAtPSAyKSAqIHQgKiB0ICogdCAqIHQgKyAyKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlSW5TaW5lOiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHRyZXR1cm4gLTEgKiBNYXRoLmNvcyh0IC8gMSAqIChNYXRoLlBJIC8gMikpICsgMTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlT3V0U2luZTogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0cmV0dXJuIDEgKiBNYXRoLnNpbih0IC8gMSAqIChNYXRoLlBJIC8gMikpO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbk91dFNpbmU6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdHJldHVybiAtMSAvIDIgKiAoTWF0aC5jb3MoTWF0aC5QSSAqIHQgLyAxKSAtIDEpO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbkV4cG86IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdHJldHVybiAodCA9PT0gMCkgPyAxIDogMSAqIE1hdGgucG93KDIsIDEwICogKHQgLyAxIC0gMSkpO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VPdXRFeHBvOiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHRyZXR1cm4gKHQgPT09IDEpID8gMSA6IDEgKiAoLU1hdGgucG93KDIsIC0xMCAqIHQgLyAxKSArIDEpO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbk91dEV4cG86IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdGlmICh0ID09PSAwKSByZXR1cm4gMDtcblx0XHRcdFx0aWYgKHQgPT09IDEpIHJldHVybiAxO1xuXHRcdFx0XHRpZiAoKHQgLz0gMSAvIDIpIDwgMSkgcmV0dXJuIDEgLyAyICogTWF0aC5wb3coMiwgMTAgKiAodCAtIDEpKTtcblx0XHRcdFx0cmV0dXJuIDEgLyAyICogKC1NYXRoLnBvdygyLCAtMTAgKiAtLXQpICsgMik7XG5cdFx0XHR9LFxuXHRcdFx0ZWFzZUluQ2lyYzogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0aWYgKHQgPj0gMSkgcmV0dXJuIHQ7XG5cdFx0XHRcdHJldHVybiAtMSAqIChNYXRoLnNxcnQoMSAtICh0IC89IDEpICogdCkgLSAxKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlT3V0Q2lyYzogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0cmV0dXJuIDEgKiBNYXRoLnNxcnQoMSAtICh0ID0gdCAvIDEgLSAxKSAqIHQpO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbk91dENpcmM6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdGlmICgodCAvPSAxIC8gMikgPCAxKSByZXR1cm4gLTEgLyAyICogKE1hdGguc3FydCgxIC0gdCAqIHQpIC0gMSk7XG5cdFx0XHRcdHJldHVybiAxIC8gMiAqIChNYXRoLnNxcnQoMSAtICh0IC09IDIpICogdCkgKyAxKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlSW5FbGFzdGljOiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHR2YXIgcyA9IDEuNzAxNTg7XG5cdFx0XHRcdHZhciBwID0gMDtcblx0XHRcdFx0dmFyIGEgPSAxO1xuXHRcdFx0XHRpZiAodCA9PT0gMCkgcmV0dXJuIDA7XG5cdFx0XHRcdGlmICgodCAvPSAxKSA9PSAxKSByZXR1cm4gMTtcblx0XHRcdFx0aWYgKCFwKSBwID0gMSAqIDAuMztcblx0XHRcdFx0aWYgKGEgPCBNYXRoLmFicygxKSkge1xuXHRcdFx0XHRcdGEgPSAxO1xuXHRcdFx0XHRcdHMgPSBwIC8gNDtcblx0XHRcdFx0fSBlbHNlIHMgPSBwIC8gKDIgKiBNYXRoLlBJKSAqIE1hdGguYXNpbigxIC8gYSk7XG5cdFx0XHRcdHJldHVybiAtKGEgKiBNYXRoLnBvdygyLCAxMCAqICh0IC09IDEpKSAqIE1hdGguc2luKCh0ICogMSAtIHMpICogKDIgKiBNYXRoLlBJKSAvIHApKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlT3V0RWxhc3RpYzogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0dmFyIHMgPSAxLjcwMTU4O1xuXHRcdFx0XHR2YXIgcCA9IDA7XG5cdFx0XHRcdHZhciBhID0gMTtcblx0XHRcdFx0aWYgKHQgPT09IDApIHJldHVybiAwO1xuXHRcdFx0XHRpZiAoKHQgLz0gMSkgPT0gMSkgcmV0dXJuIDE7XG5cdFx0XHRcdGlmICghcCkgcCA9IDEgKiAwLjM7XG5cdFx0XHRcdGlmIChhIDwgTWF0aC5hYnMoMSkpIHtcblx0XHRcdFx0XHRhID0gMTtcblx0XHRcdFx0XHRzID0gcCAvIDQ7XG5cdFx0XHRcdH0gZWxzZSBzID0gcCAvICgyICogTWF0aC5QSSkgKiBNYXRoLmFzaW4oMSAvIGEpO1xuXHRcdFx0XHRyZXR1cm4gYSAqIE1hdGgucG93KDIsIC0xMCAqIHQpICogTWF0aC5zaW4oKHQgKiAxIC0gcykgKiAoMiAqIE1hdGguUEkpIC8gcCkgKyAxO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbk91dEVsYXN0aWM6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdHZhciBzID0gMS43MDE1ODtcblx0XHRcdFx0dmFyIHAgPSAwO1xuXHRcdFx0XHR2YXIgYSA9IDE7XG5cdFx0XHRcdGlmICh0ID09PSAwKSByZXR1cm4gMDtcblx0XHRcdFx0aWYgKCh0IC89IDEgLyAyKSA9PSAyKSByZXR1cm4gMTtcblx0XHRcdFx0aWYgKCFwKSBwID0gMSAqICgwLjMgKiAxLjUpO1xuXHRcdFx0XHRpZiAoYSA8IE1hdGguYWJzKDEpKSB7XG5cdFx0XHRcdFx0YSA9IDE7XG5cdFx0XHRcdFx0cyA9IHAgLyA0O1xuXHRcdFx0XHR9IGVsc2UgcyA9IHAgLyAoMiAqIE1hdGguUEkpICogTWF0aC5hc2luKDEgLyBhKTtcblx0XHRcdFx0aWYgKHQgPCAxKSByZXR1cm4gLTAuNSAqIChhICogTWF0aC5wb3coMiwgMTAgKiAodCAtPSAxKSkgKiBNYXRoLnNpbigodCAqIDEgLSBzKSAqICgyICogTWF0aC5QSSkgLyBwKSk7XG5cdFx0XHRcdHJldHVybiBhICogTWF0aC5wb3coMiwgLTEwICogKHQgLT0gMSkpICogTWF0aC5zaW4oKHQgKiAxIC0gcykgKiAoMiAqIE1hdGguUEkpIC8gcCkgKiAwLjUgKyAxO1xuXHRcdFx0fSxcblx0XHRcdGVhc2VJbkJhY2s6IGZ1bmN0aW9uICh0KSB7XG5cdFx0XHRcdHZhciBzID0gMS43MDE1ODtcblx0XHRcdFx0cmV0dXJuIDEgKiAodCAvPSAxKSAqIHQgKiAoKHMgKyAxKSAqIHQgLSBzKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlT3V0QmFjazogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0dmFyIHMgPSAxLjcwMTU4O1xuXHRcdFx0XHRyZXR1cm4gMSAqICgodCA9IHQgLyAxIC0gMSkgKiB0ICogKChzICsgMSkgKiB0ICsgcykgKyAxKTtcblx0XHRcdH0sXG5cdFx0XHRlYXNlSW5PdXRCYWNrOiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHR2YXIgcyA9IDEuNzAxNTg7XG5cdFx0XHRcdGlmICgodCAvPSAxIC8gMikgPCAxKSByZXR1cm4gMSAvIDIgKiAodCAqIHQgKiAoKChzICo9ICgxLjUyNSkpICsgMSkgKiB0IC0gcykpO1xuXHRcdFx0XHRyZXR1cm4gMSAvIDIgKiAoKHQgLT0gMikgKiB0ICogKCgocyAqPSAoMS41MjUpKSArIDEpICogdCArIHMpICsgMik7XG5cdFx0XHR9LFxuXHRcdFx0ZWFzZUluQm91bmNlOiBmdW5jdGlvbiAodCkge1xuXHRcdFx0XHRyZXR1cm4gMSAtIGVhc2luZ0VmZmVjdHMuZWFzZU91dEJvdW5jZSgxIC0gdCk7XG5cdFx0XHR9LFxuXHRcdFx0ZWFzZU91dEJvdW5jZTogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0aWYgKCh0IC89IDEpIDwgKDEgLyAyLjc1KSkge1xuXHRcdFx0XHRcdHJldHVybiAxICogKDcuNTYyNSAqIHQgKiB0KTtcblx0XHRcdFx0fSBlbHNlIGlmICh0IDwgKDIgLyAyLjc1KSkge1xuXHRcdFx0XHRcdHJldHVybiAxICogKDcuNTYyNSAqICh0IC09ICgxLjUgLyAyLjc1KSkgKiB0ICsgMC43NSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodCA8ICgyLjUgLyAyLjc1KSkge1xuXHRcdFx0XHRcdHJldHVybiAxICogKDcuNTYyNSAqICh0IC09ICgyLjI1IC8gMi43NSkpICogdCArIDAuOTM3NSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIDEgKiAoNy41NjI1ICogKHQgLT0gKDIuNjI1IC8gMi43NSkpICogdCArIDAuOTg0Mzc1KTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGVhc2VJbk91dEJvdW5jZTogZnVuY3Rpb24gKHQpIHtcblx0XHRcdFx0aWYgKHQgPCAxIC8gMikgcmV0dXJuIGVhc2luZ0VmZmVjdHMuZWFzZUluQm91bmNlKHQgKiAyKSAqIDAuNTtcblx0XHRcdFx0cmV0dXJuIGVhc2luZ0VmZmVjdHMuZWFzZU91dEJvdW5jZSh0ICogMiAtIDEpICogMC41ICsgMSAqIDAuNTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdC8vUmVxdWVzdCBhbmltYXRpb24gcG9seWZpbGwgLSBodHRwOi8vd3d3LnBhdWxpcmlzaC5jb20vMjAxMS9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWFuaW1hdGluZy9cblx0XHRyZXF1ZXN0QW5pbUZyYW1lID0gaGVscGVycy5yZXF1ZXN0QW5pbUZyYW1lID0gKGZ1bmN0aW9uKCl7XG5cdFx0XHRyZXR1cm4gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fFxuXHRcdFx0XHR3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHRcdHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcblx0XHRcdFx0d2luZG93Lm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcblx0XHRcdFx0d2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHRcdGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCAxMDAwIC8gNjApO1xuXHRcdFx0XHR9O1xuXHRcdH0pKCksXG5cdFx0Y2FuY2VsQW5pbUZyYW1lID0gaGVscGVycy5jYW5jZWxBbmltRnJhbWUgPSAoZnVuY3Rpb24oKXtcblx0XHRcdHJldHVybiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgfHxcblx0XHRcdFx0d2luZG93LndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHRcdHdpbmRvdy5tb3pDYW5jZWxBbmltYXRpb25GcmFtZSB8fFxuXHRcdFx0XHR3aW5kb3cub0NhbmNlbEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHRcdHdpbmRvdy5tc0NhbmNlbEFuaW1hdGlvbkZyYW1lIHx8XG5cdFx0XHRcdGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHdpbmRvdy5jbGVhclRpbWVvdXQoY2FsbGJhY2ssIDEwMDAgLyA2MCk7XG5cdFx0XHRcdH07XG5cdFx0fSkoKSxcblx0XHRhbmltYXRpb25Mb29wID0gaGVscGVycy5hbmltYXRpb25Mb29wID0gZnVuY3Rpb24oY2FsbGJhY2ssdG90YWxTdGVwcyxlYXNpbmdTdHJpbmcsb25Qcm9ncmVzcyxvbkNvbXBsZXRlLGNoYXJ0SW5zdGFuY2Upe1xuXG5cdFx0XHR2YXIgY3VycmVudFN0ZXAgPSAwLFxuXHRcdFx0XHRlYXNpbmdGdW5jdGlvbiA9IGVhc2luZ0VmZmVjdHNbZWFzaW5nU3RyaW5nXSB8fCBlYXNpbmdFZmZlY3RzLmxpbmVhcjtcblxuXHRcdFx0dmFyIGFuaW1hdGlvbkZyYW1lID0gZnVuY3Rpb24oKXtcblx0XHRcdFx0Y3VycmVudFN0ZXArKztcblx0XHRcdFx0dmFyIHN0ZXBEZWNpbWFsID0gY3VycmVudFN0ZXAvdG90YWxTdGVwcztcblx0XHRcdFx0dmFyIGVhc2VEZWNpbWFsID0gZWFzaW5nRnVuY3Rpb24oc3RlcERlY2ltYWwpO1xuXG5cdFx0XHRcdGNhbGxiYWNrLmNhbGwoY2hhcnRJbnN0YW5jZSxlYXNlRGVjaW1hbCxzdGVwRGVjaW1hbCwgY3VycmVudFN0ZXApO1xuXHRcdFx0XHRvblByb2dyZXNzLmNhbGwoY2hhcnRJbnN0YW5jZSxlYXNlRGVjaW1hbCxzdGVwRGVjaW1hbCk7XG5cdFx0XHRcdGlmIChjdXJyZW50U3RlcCA8IHRvdGFsU3RlcHMpe1xuXHRcdFx0XHRcdGNoYXJ0SW5zdGFuY2UuYW5pbWF0aW9uRnJhbWUgPSByZXF1ZXN0QW5pbUZyYW1lKGFuaW1hdGlvbkZyYW1lKTtcblx0XHRcdFx0fSBlbHNle1xuXHRcdFx0XHRcdG9uQ29tcGxldGUuYXBwbHkoY2hhcnRJbnN0YW5jZSk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRyZXF1ZXN0QW5pbUZyYW1lKGFuaW1hdGlvbkZyYW1lKTtcblx0XHR9LFxuXHRcdC8vLS0gRE9NIG1ldGhvZHNcblx0XHRnZXRSZWxhdGl2ZVBvc2l0aW9uID0gaGVscGVycy5nZXRSZWxhdGl2ZVBvc2l0aW9uID0gZnVuY3Rpb24oZXZ0KXtcblx0XHRcdHZhciBtb3VzZVgsIG1vdXNlWTtcblx0XHRcdHZhciBlID0gZXZ0Lm9yaWdpbmFsRXZlbnQgfHwgZXZ0LFxuXHRcdFx0XHRjYW52YXMgPSBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudCxcblx0XHRcdFx0Ym91bmRpbmdSZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG5cdFx0XHRpZiAoZS50b3VjaGVzKXtcblx0XHRcdFx0bW91c2VYID0gZS50b3VjaGVzWzBdLmNsaWVudFggLSBib3VuZGluZ1JlY3QubGVmdDtcblx0XHRcdFx0bW91c2VZID0gZS50b3VjaGVzWzBdLmNsaWVudFkgLSBib3VuZGluZ1JlY3QudG9wO1xuXG5cdFx0XHR9XG5cdFx0XHRlbHNle1xuXHRcdFx0XHRtb3VzZVggPSBlLmNsaWVudFggLSBib3VuZGluZ1JlY3QubGVmdDtcblx0XHRcdFx0bW91c2VZID0gZS5jbGllbnRZIC0gYm91bmRpbmdSZWN0LnRvcDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0eCA6IG1vdXNlWCxcblx0XHRcdFx0eSA6IG1vdXNlWVxuXHRcdFx0fTtcblxuXHRcdH0sXG5cdFx0YWRkRXZlbnQgPSBoZWxwZXJzLmFkZEV2ZW50ID0gZnVuY3Rpb24obm9kZSxldmVudFR5cGUsbWV0aG9kKXtcblx0XHRcdGlmIChub2RlLmFkZEV2ZW50TGlzdGVuZXIpe1xuXHRcdFx0XHRub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLG1ldGhvZCk7XG5cdFx0XHR9IGVsc2UgaWYgKG5vZGUuYXR0YWNoRXZlbnQpe1xuXHRcdFx0XHRub2RlLmF0dGFjaEV2ZW50KFwib25cIitldmVudFR5cGUsIG1ldGhvZCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRub2RlW1wib25cIitldmVudFR5cGVdID0gbWV0aG9kO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0cmVtb3ZlRXZlbnQgPSBoZWxwZXJzLnJlbW92ZUV2ZW50ID0gZnVuY3Rpb24obm9kZSwgZXZlbnRUeXBlLCBoYW5kbGVyKXtcblx0XHRcdGlmIChub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIpe1xuXHRcdFx0XHRub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBmYWxzZSk7XG5cdFx0XHR9IGVsc2UgaWYgKG5vZGUuZGV0YWNoRXZlbnQpe1xuXHRcdFx0XHRub2RlLmRldGFjaEV2ZW50KFwib25cIitldmVudFR5cGUsaGFuZGxlcik7XG5cdFx0XHR9IGVsc2V7XG5cdFx0XHRcdG5vZGVbXCJvblwiICsgZXZlbnRUeXBlXSA9IG5vb3A7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRiaW5kRXZlbnRzID0gaGVscGVycy5iaW5kRXZlbnRzID0gZnVuY3Rpb24oY2hhcnRJbnN0YW5jZSwgYXJyYXlPZkV2ZW50cywgaGFuZGxlcil7XG5cdFx0XHQvLyBDcmVhdGUgdGhlIGV2ZW50cyBvYmplY3QgaWYgaXQncyBub3QgYWxyZWFkeSBwcmVzZW50XG5cdFx0XHRpZiAoIWNoYXJ0SW5zdGFuY2UuZXZlbnRzKSBjaGFydEluc3RhbmNlLmV2ZW50cyA9IHt9O1xuXG5cdFx0XHRlYWNoKGFycmF5T2ZFdmVudHMsZnVuY3Rpb24oZXZlbnROYW1lKXtcblx0XHRcdFx0Y2hhcnRJbnN0YW5jZS5ldmVudHNbZXZlbnROYW1lXSA9IGZ1bmN0aW9uKCl7XG5cdFx0XHRcdFx0aGFuZGxlci5hcHBseShjaGFydEluc3RhbmNlLCBhcmd1bWVudHMpO1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRhZGRFdmVudChjaGFydEluc3RhbmNlLmNoYXJ0LmNhbnZhcyxldmVudE5hbWUsY2hhcnRJbnN0YW5jZS5ldmVudHNbZXZlbnROYW1lXSk7XG5cdFx0XHR9KTtcblx0XHR9LFxuXHRcdHVuYmluZEV2ZW50cyA9IGhlbHBlcnMudW5iaW5kRXZlbnRzID0gZnVuY3Rpb24gKGNoYXJ0SW5zdGFuY2UsIGFycmF5T2ZFdmVudHMpIHtcblx0XHRcdGVhY2goYXJyYXlPZkV2ZW50cywgZnVuY3Rpb24oaGFuZGxlcixldmVudE5hbWUpe1xuXHRcdFx0XHRyZW1vdmVFdmVudChjaGFydEluc3RhbmNlLmNoYXJ0LmNhbnZhcywgZXZlbnROYW1lLCBoYW5kbGVyKTtcblx0XHRcdH0pO1xuXHRcdH0sXG5cdFx0Z2V0TWF4aW11bVdpZHRoID0gaGVscGVycy5nZXRNYXhpbXVtV2lkdGggPSBmdW5jdGlvbihkb21Ob2RlKXtcblx0XHRcdHZhciBjb250YWluZXIgPSBkb21Ob2RlLnBhcmVudE5vZGU7XG5cdFx0XHQvLyBUT0RPID0gY2hlY2sgY3Jvc3MgYnJvd3NlciBzdHVmZiB3aXRoIHRoaXMuXG5cdFx0XHRyZXR1cm4gY29udGFpbmVyLmNsaWVudFdpZHRoO1xuXHRcdH0sXG5cdFx0Z2V0TWF4aW11bUhlaWdodCA9IGhlbHBlcnMuZ2V0TWF4aW11bUhlaWdodCA9IGZ1bmN0aW9uKGRvbU5vZGUpe1xuXHRcdFx0dmFyIGNvbnRhaW5lciA9IGRvbU5vZGUucGFyZW50Tm9kZTtcblx0XHRcdC8vIFRPRE8gPSBjaGVjayBjcm9zcyBicm93c2VyIHN0dWZmIHdpdGggdGhpcy5cblx0XHRcdHJldHVybiBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xuXHRcdH0sXG5cdFx0Z2V0TWF4aW11bVNpemUgPSBoZWxwZXJzLmdldE1heGltdW1TaXplID0gaGVscGVycy5nZXRNYXhpbXVtV2lkdGgsIC8vIGxlZ2FjeSBzdXBwb3J0XG5cdFx0cmV0aW5hU2NhbGUgPSBoZWxwZXJzLnJldGluYVNjYWxlID0gZnVuY3Rpb24oY2hhcnQpe1xuXHRcdFx0dmFyIGN0eCA9IGNoYXJ0LmN0eCxcblx0XHRcdFx0d2lkdGggPSBjaGFydC5jYW52YXMud2lkdGgsXG5cdFx0XHRcdGhlaWdodCA9IGNoYXJ0LmNhbnZhcy5oZWlnaHQ7XG5cblx0XHRcdGlmICh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbykge1xuXHRcdFx0XHRjdHguY2FudmFzLnN0eWxlLndpZHRoID0gd2lkdGggKyBcInB4XCI7XG5cdFx0XHRcdGN0eC5jYW52YXMuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgXCJweFwiO1xuXHRcdFx0XHRjdHguY2FudmFzLmhlaWdodCA9IGhlaWdodCAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuXHRcdFx0XHRjdHguY2FudmFzLndpZHRoID0gd2lkdGggKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcblx0XHRcdFx0Y3R4LnNjYWxlKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLCB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHQvLy0tIENhbnZhcyBtZXRob2RzXG5cdFx0Y2xlYXIgPSBoZWxwZXJzLmNsZWFyID0gZnVuY3Rpb24oY2hhcnQpe1xuXHRcdFx0Y2hhcnQuY3R4LmNsZWFyUmVjdCgwLDAsY2hhcnQud2lkdGgsY2hhcnQuaGVpZ2h0KTtcblx0XHR9LFxuXHRcdGZvbnRTdHJpbmcgPSBoZWxwZXJzLmZvbnRTdHJpbmcgPSBmdW5jdGlvbihwaXhlbFNpemUsZm9udFN0eWxlLGZvbnRGYW1pbHkpe1xuXHRcdFx0cmV0dXJuIGZvbnRTdHlsZSArIFwiIFwiICsgcGl4ZWxTaXplK1wicHggXCIgKyBmb250RmFtaWx5O1xuXHRcdH0sXG5cdFx0bG9uZ2VzdFRleHQgPSBoZWxwZXJzLmxvbmdlc3RUZXh0ID0gZnVuY3Rpb24oY3R4LGZvbnQsYXJyYXlPZlN0cmluZ3Mpe1xuXHRcdFx0Y3R4LmZvbnQgPSBmb250O1xuXHRcdFx0dmFyIGxvbmdlc3QgPSAwO1xuXHRcdFx0ZWFjaChhcnJheU9mU3RyaW5ncyxmdW5jdGlvbihzdHJpbmcpe1xuXHRcdFx0XHR2YXIgdGV4dFdpZHRoID0gY3R4Lm1lYXN1cmVUZXh0KHN0cmluZykud2lkdGg7XG5cdFx0XHRcdGxvbmdlc3QgPSAodGV4dFdpZHRoID4gbG9uZ2VzdCkgPyB0ZXh0V2lkdGggOiBsb25nZXN0O1xuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gbG9uZ2VzdDtcblx0XHR9LFxuXHRcdGRyYXdSb3VuZGVkUmVjdGFuZ2xlID0gaGVscGVycy5kcmF3Um91bmRlZFJlY3RhbmdsZSA9IGZ1bmN0aW9uKGN0eCx4LHksd2lkdGgsaGVpZ2h0LHJhZGl1cyl7XG5cdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0XHRjdHgubW92ZVRvKHggKyByYWRpdXMsIHkpO1xuXHRcdFx0Y3R4LmxpbmVUbyh4ICsgd2lkdGggLSByYWRpdXMsIHkpO1xuXHRcdFx0Y3R4LnF1YWRyYXRpY0N1cnZlVG8oeCArIHdpZHRoLCB5LCB4ICsgd2lkdGgsIHkgKyByYWRpdXMpO1xuXHRcdFx0Y3R4LmxpbmVUbyh4ICsgd2lkdGgsIHkgKyBoZWlnaHQgLSByYWRpdXMpO1xuXHRcdFx0Y3R4LnF1YWRyYXRpY0N1cnZlVG8oeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCB4ICsgd2lkdGggLSByYWRpdXMsIHkgKyBoZWlnaHQpO1xuXHRcdFx0Y3R4LmxpbmVUbyh4ICsgcmFkaXVzLCB5ICsgaGVpZ2h0KTtcblx0XHRcdGN0eC5xdWFkcmF0aWNDdXJ2ZVRvKHgsIHkgKyBoZWlnaHQsIHgsIHkgKyBoZWlnaHQgLSByYWRpdXMpO1xuXHRcdFx0Y3R4LmxpbmVUbyh4LCB5ICsgcmFkaXVzKTtcblx0XHRcdGN0eC5xdWFkcmF0aWNDdXJ2ZVRvKHgsIHksIHggKyByYWRpdXMsIHkpO1xuXHRcdFx0Y3R4LmNsb3NlUGF0aCgpO1xuXHRcdH07XG5cblxuXHQvL1N0b3JlIGEgcmVmZXJlbmNlIHRvIGVhY2ggaW5zdGFuY2UgLSBhbGxvd2luZyB1cyB0byBnbG9iYWxseSByZXNpemUgY2hhcnQgaW5zdGFuY2VzIG9uIHdpbmRvdyByZXNpemUuXG5cdC8vRGVzdHJveSBtZXRob2Qgb24gdGhlIGNoYXJ0IHdpbGwgcmVtb3ZlIHRoZSBpbnN0YW5jZSBvZiB0aGUgY2hhcnQgZnJvbSB0aGlzIHJlZmVyZW5jZS5cblx0Q2hhcnQuaW5zdGFuY2VzID0ge307XG5cblx0Q2hhcnQuVHlwZSA9IGZ1bmN0aW9uKGRhdGEsb3B0aW9ucyxjaGFydCl7XG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9ucztcblx0XHR0aGlzLmNoYXJ0ID0gY2hhcnQ7XG5cdFx0dGhpcy5pZCA9IHVpZCgpO1xuXHRcdC8vQWRkIHRoZSBjaGFydCBpbnN0YW5jZSB0byB0aGUgZ2xvYmFsIG5hbWVzcGFjZVxuXHRcdENoYXJ0Lmluc3RhbmNlc1t0aGlzLmlkXSA9IHRoaXM7XG5cblx0XHQvLyBJbml0aWFsaXplIGlzIGFsd2F5cyBjYWxsZWQgd2hlbiBhIGNoYXJ0IHR5cGUgaXMgY3JlYXRlZFxuXHRcdC8vIEJ5IGRlZmF1bHQgaXQgaXMgYSBubyBvcCwgYnV0IGl0IHNob3VsZCBiZSBleHRlbmRlZFxuXHRcdGlmIChvcHRpb25zLnJlc3BvbnNpdmUpe1xuXHRcdFx0dGhpcy5yZXNpemUoKTtcblx0XHR9XG5cdFx0dGhpcy5pbml0aWFsaXplLmNhbGwodGhpcyxkYXRhKTtcblx0fTtcblxuXHQvL0NvcmUgbWV0aG9kcyB0aGF0J2xsIGJlIGEgcGFydCBvZiBldmVyeSBjaGFydCB0eXBlXG5cdGV4dGVuZChDaGFydC5UeXBlLnByb3RvdHlwZSx7XG5cdFx0aW5pdGlhbGl6ZSA6IGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM7fSxcblx0XHRjbGVhciA6IGZ1bmN0aW9uKCl7XG5cdFx0XHRjbGVhcih0aGlzLmNoYXJ0KTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0sXG5cdFx0c3RvcCA6IGZ1bmN0aW9uKCl7XG5cdFx0XHQvLyBTdG9wcyBhbnkgY3VycmVudCBhbmltYXRpb24gbG9vcCBvY2N1cmluZ1xuXHRcdFx0Y2FuY2VsQW5pbUZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWUpO1xuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fSxcblx0XHRyZXNpemUgOiBmdW5jdGlvbihjYWxsYmFjayl7XG5cdFx0XHR0aGlzLnN0b3AoKTtcblx0XHRcdHZhciBjYW52YXMgPSB0aGlzLmNoYXJ0LmNhbnZhcyxcblx0XHRcdFx0bmV3V2lkdGggPSBnZXRNYXhpbXVtV2lkdGgodGhpcy5jaGFydC5jYW52YXMpLFxuXHRcdFx0XHRuZXdIZWlnaHQgPSB0aGlzLm9wdGlvbnMubWFpbnRhaW5Bc3BlY3RSYXRpbyA/IG5ld1dpZHRoIC8gdGhpcy5jaGFydC5hc3BlY3RSYXRpbyA6IGdldE1heGltdW1IZWlnaHQodGhpcy5jaGFydC5jYW52YXMpO1xuXG5cdFx0XHRjYW52YXMud2lkdGggPSB0aGlzLmNoYXJ0LndpZHRoID0gbmV3V2lkdGg7XG5cdFx0XHRjYW52YXMuaGVpZ2h0ID0gdGhpcy5jaGFydC5oZWlnaHQgPSBuZXdIZWlnaHQ7XG5cblx0XHRcdHJldGluYVNjYWxlKHRoaXMuY2hhcnQpO1xuXG5cdFx0XHRpZiAodHlwZW9mIGNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpe1xuXHRcdFx0XHRjYWxsYmFjay5hcHBseSh0aGlzLCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0sXG5cdFx0cmVmbG93IDogbm9vcCxcblx0XHRyZW5kZXIgOiBmdW5jdGlvbihyZWZsb3cpe1xuXHRcdFx0aWYgKHJlZmxvdyl7XG5cdFx0XHRcdHRoaXMucmVmbG93KCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5vcHRpb25zLmFuaW1hdGlvbiAmJiAhcmVmbG93KXtcblx0XHRcdFx0aGVscGVycy5hbmltYXRpb25Mb29wKFxuXHRcdFx0XHRcdHRoaXMuZHJhdyxcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMuYW5pbWF0aW9uU3RlcHMsXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLmFuaW1hdGlvbkVhc2luZyxcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMub25BbmltYXRpb25Qcm9ncmVzcyxcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMub25BbmltYXRpb25Db21wbGV0ZSxcblx0XHRcdFx0XHR0aGlzXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRlbHNle1xuXHRcdFx0XHR0aGlzLmRyYXcoKTtcblx0XHRcdFx0dGhpcy5vcHRpb25zLm9uQW5pbWF0aW9uQ29tcGxldGUuY2FsbCh0aGlzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0sXG5cdFx0Z2VuZXJhdGVMZWdlbmQgOiBmdW5jdGlvbigpe1xuXHRcdFx0cmV0dXJuIHRlbXBsYXRlKHRoaXMub3B0aW9ucy5sZWdlbmRUZW1wbGF0ZSx0aGlzKTtcblx0XHR9LFxuXHRcdGRlc3Ryb3kgOiBmdW5jdGlvbigpe1xuXHRcdFx0dGhpcy5jbGVhcigpO1xuXHRcdFx0dW5iaW5kRXZlbnRzKHRoaXMsIHRoaXMuZXZlbnRzKTtcblx0XHRcdHZhciBjYW52YXMgPSB0aGlzLmNoYXJ0LmNhbnZhcztcblxuXHRcdFx0Ly8gUmVzZXQgY2FudmFzIGhlaWdodC93aWR0aCBhdHRyaWJ1dGVzIHN0YXJ0cyBhIGZyZXNoIHdpdGggdGhlIGNhbnZhcyBjb250ZXh0XG5cdFx0XHRjYW52YXMud2lkdGggPSB0aGlzLmNoYXJ0LndpZHRoO1xuXHRcdFx0Y2FudmFzLmhlaWdodCA9IHRoaXMuY2hhcnQuaGVpZ2h0O1xuXG5cdFx0XHQvLyA8IElFOSBkb2Vzbid0IHN1cHBvcnQgcmVtb3ZlUHJvcGVydHlcblx0XHRcdGlmIChjYW52YXMuc3R5bGUucmVtb3ZlUHJvcGVydHkpIHtcblx0XHRcdFx0Y2FudmFzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCd3aWR0aCcpO1xuXHRcdFx0XHRjYW52YXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2hlaWdodCcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2FudmFzLnN0eWxlLnJlbW92ZUF0dHJpYnV0ZSgnd2lkdGgnKTtcblx0XHRcdFx0Y2FudmFzLnN0eWxlLnJlbW92ZUF0dHJpYnV0ZSgnaGVpZ2h0Jyk7XG5cdFx0XHR9XG5cblx0XHRcdGRlbGV0ZSBDaGFydC5pbnN0YW5jZXNbdGhpcy5pZF07XG5cdFx0fSxcblx0XHRzaG93VG9vbHRpcCA6IGZ1bmN0aW9uKENoYXJ0RWxlbWVudHMsIGZvcmNlUmVkcmF3KXtcblx0XHRcdC8vIE9ubHkgcmVkcmF3IHRoZSBjaGFydCBpZiB3ZSd2ZSBhY3R1YWxseSBjaGFuZ2VkIHdoYXQgd2UncmUgaG92ZXJpbmcgb24uXG5cdFx0XHRpZiAodHlwZW9mIHRoaXMuYWN0aXZlRWxlbWVudHMgPT09ICd1bmRlZmluZWQnKSB0aGlzLmFjdGl2ZUVsZW1lbnRzID0gW107XG5cblx0XHRcdHZhciBpc0NoYW5nZWQgPSAoZnVuY3Rpb24oRWxlbWVudHMpe1xuXHRcdFx0XHR2YXIgY2hhbmdlZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChFbGVtZW50cy5sZW5ndGggIT09IHRoaXMuYWN0aXZlRWxlbWVudHMubGVuZ3RoKXtcblx0XHRcdFx0XHRjaGFuZ2VkID0gdHJ1ZTtcblx0XHRcdFx0XHRyZXR1cm4gY2hhbmdlZDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGVhY2goRWxlbWVudHMsIGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KXtcblx0XHRcdFx0XHRpZiAoZWxlbWVudCAhPT0gdGhpcy5hY3RpdmVFbGVtZW50c1tpbmRleF0pe1xuXHRcdFx0XHRcdFx0Y2hhbmdlZCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCB0aGlzKTtcblx0XHRcdFx0cmV0dXJuIGNoYW5nZWQ7XG5cdFx0XHR9KS5jYWxsKHRoaXMsIENoYXJ0RWxlbWVudHMpO1xuXG5cdFx0XHRpZiAoIWlzQ2hhbmdlZCAmJiAhZm9yY2VSZWRyYXcpe1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRlbHNle1xuXHRcdFx0XHR0aGlzLmFjdGl2ZUVsZW1lbnRzID0gQ2hhcnRFbGVtZW50cztcblx0XHRcdH1cblx0XHRcdHRoaXMuZHJhdygpO1xuXHRcdFx0aWYodGhpcy5vcHRpb25zLmN1c3RvbVRvb2x0aXBzKXtcblx0XHRcdFx0dGhpcy5vcHRpb25zLmN1c3RvbVRvb2x0aXBzKGZhbHNlKTtcblx0XHRcdH1cblx0XHRcdGlmIChDaGFydEVsZW1lbnRzLmxlbmd0aCA+IDApe1xuXHRcdFx0XHQvLyBJZiB3ZSBoYXZlIG11bHRpcGxlIGRhdGFzZXRzLCBzaG93IGEgTXVsdGlUb29sdGlwIGZvciBhbGwgb2YgdGhlIGRhdGEgcG9pbnRzIGF0IHRoYXQgaW5kZXhcblx0XHRcdFx0aWYgKHRoaXMuZGF0YXNldHMgJiYgdGhpcy5kYXRhc2V0cy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0dmFyIGRhdGFBcnJheSxcblx0XHRcdFx0XHRcdGRhdGFJbmRleDtcblxuXHRcdFx0XHRcdGZvciAodmFyIGkgPSB0aGlzLmRhdGFzZXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRcdFx0XHRkYXRhQXJyYXkgPSB0aGlzLmRhdGFzZXRzW2ldLnBvaW50cyB8fCB0aGlzLmRhdGFzZXRzW2ldLmJhcnMgfHwgdGhpcy5kYXRhc2V0c1tpXS5zZWdtZW50cztcblx0XHRcdFx0XHRcdGRhdGFJbmRleCA9IGluZGV4T2YoZGF0YUFycmF5LCBDaGFydEVsZW1lbnRzWzBdKTtcblx0XHRcdFx0XHRcdGlmIChkYXRhSW5kZXggIT09IC0xKXtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHZhciB0b29sdGlwTGFiZWxzID0gW10sXG5cdFx0XHRcdFx0XHR0b29sdGlwQ29sb3JzID0gW10sXG5cdFx0XHRcdFx0XHRtZWRpYW5Qb3NpdGlvbiA9IChmdW5jdGlvbihpbmRleCkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIEdldCBhbGwgdGhlIHBvaW50cyBhdCB0aGF0IHBhcnRpY3VsYXIgaW5kZXhcblx0XHRcdFx0XHRcdFx0dmFyIEVsZW1lbnRzID0gW10sXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUNvbGxlY3Rpb24sXG5cdFx0XHRcdFx0XHRcdFx0eFBvc2l0aW9ucyA9IFtdLFxuXHRcdFx0XHRcdFx0XHRcdHlQb3NpdGlvbnMgPSBbXSxcblx0XHRcdFx0XHRcdFx0XHR4TWF4LFxuXHRcdFx0XHRcdFx0XHRcdHlNYXgsXG5cdFx0XHRcdFx0XHRcdFx0eE1pbixcblx0XHRcdFx0XHRcdFx0XHR5TWluO1xuXHRcdFx0XHRcdFx0XHRoZWxwZXJzLmVhY2godGhpcy5kYXRhc2V0cywgZnVuY3Rpb24oZGF0YXNldCl7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUNvbGxlY3Rpb24gPSBkYXRhc2V0LnBvaW50cyB8fCBkYXRhc2V0LmJhcnMgfHwgZGF0YXNldC5zZWdtZW50cztcblx0XHRcdFx0XHRcdFx0XHRpZiAoZGF0YUNvbGxlY3Rpb25bZGF0YUluZGV4XSAmJiBkYXRhQ29sbGVjdGlvbltkYXRhSW5kZXhdLmhhc1ZhbHVlKCkpe1xuXHRcdFx0XHRcdFx0XHRcdFx0RWxlbWVudHMucHVzaChkYXRhQ29sbGVjdGlvbltkYXRhSW5kZXhdKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHRcdGhlbHBlcnMuZWFjaChFbGVtZW50cywgZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdFx0XHRcdFx0XHRcdHhQb3NpdGlvbnMucHVzaChlbGVtZW50LngpO1xuXHRcdFx0XHRcdFx0XHRcdHlQb3NpdGlvbnMucHVzaChlbGVtZW50LnkpO1xuXG5cblx0XHRcdFx0XHRcdFx0XHQvL0luY2x1ZGUgYW55IGNvbG91ciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZWxlbWVudFxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBMYWJlbHMucHVzaChoZWxwZXJzLnRlbXBsYXRlKHRoaXMub3B0aW9ucy5tdWx0aVRvb2x0aXBUZW1wbGF0ZSwgZWxlbWVudCkpO1xuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBDb2xvcnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRmaWxsOiBlbGVtZW50Ll9zYXZlZC5maWxsQ29sb3IgfHwgZWxlbWVudC5maWxsQ29sb3IsXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHJva2U6IGVsZW1lbnQuX3NhdmVkLnN0cm9rZUNvbG9yIHx8IGVsZW1lbnQuc3Ryb2tlQ29sb3Jcblx0XHRcdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0XHR9LCB0aGlzKTtcblxuXHRcdFx0XHRcdFx0XHR5TWluID0gbWluKHlQb3NpdGlvbnMpO1xuXHRcdFx0XHRcdFx0XHR5TWF4ID0gbWF4KHlQb3NpdGlvbnMpO1xuXG5cdFx0XHRcdFx0XHRcdHhNaW4gPSBtaW4oeFBvc2l0aW9ucyk7XG5cdFx0XHRcdFx0XHRcdHhNYXggPSBtYXgoeFBvc2l0aW9ucyk7XG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHR4OiAoeE1pbiA+IHRoaXMuY2hhcnQud2lkdGgvMikgPyB4TWluIDogeE1heCxcblx0XHRcdFx0XHRcdFx0XHR5OiAoeU1pbiArIHlNYXgpLzJcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH0pLmNhbGwodGhpcywgZGF0YUluZGV4KTtcblxuXHRcdFx0XHRcdG5ldyBDaGFydC5NdWx0aVRvb2x0aXAoe1xuXHRcdFx0XHRcdFx0eDogbWVkaWFuUG9zaXRpb24ueCxcblx0XHRcdFx0XHRcdHk6IG1lZGlhblBvc2l0aW9uLnksXG5cdFx0XHRcdFx0XHR4UGFkZGluZzogdGhpcy5vcHRpb25zLnRvb2x0aXBYUGFkZGluZyxcblx0XHRcdFx0XHRcdHlQYWRkaW5nOiB0aGlzLm9wdGlvbnMudG9vbHRpcFlQYWRkaW5nLFxuXHRcdFx0XHRcdFx0eE9mZnNldDogdGhpcy5vcHRpb25zLnRvb2x0aXBYT2Zmc2V0LFxuXHRcdFx0XHRcdFx0ZmlsbENvbG9yOiB0aGlzLm9wdGlvbnMudG9vbHRpcEZpbGxDb2xvcixcblx0XHRcdFx0XHRcdHRleHRDb2xvcjogdGhpcy5vcHRpb25zLnRvb2x0aXBGb250Q29sb3IsXG5cdFx0XHRcdFx0XHRmb250RmFtaWx5OiB0aGlzLm9wdGlvbnMudG9vbHRpcEZvbnRGYW1pbHksXG5cdFx0XHRcdFx0XHRmb250U3R5bGU6IHRoaXMub3B0aW9ucy50b29sdGlwRm9udFN0eWxlLFxuXHRcdFx0XHRcdFx0Zm9udFNpemU6IHRoaXMub3B0aW9ucy50b29sdGlwRm9udFNpemUsXG5cdFx0XHRcdFx0XHR0aXRsZVRleHRDb2xvcjogdGhpcy5vcHRpb25zLnRvb2x0aXBUaXRsZUZvbnRDb2xvcixcblx0XHRcdFx0XHRcdHRpdGxlRm9udEZhbWlseTogdGhpcy5vcHRpb25zLnRvb2x0aXBUaXRsZUZvbnRGYW1pbHksXG5cdFx0XHRcdFx0XHR0aXRsZUZvbnRTdHlsZTogdGhpcy5vcHRpb25zLnRvb2x0aXBUaXRsZUZvbnRTdHlsZSxcblx0XHRcdFx0XHRcdHRpdGxlRm9udFNpemU6IHRoaXMub3B0aW9ucy50b29sdGlwVGl0bGVGb250U2l6ZSxcblx0XHRcdFx0XHRcdGNvcm5lclJhZGl1czogdGhpcy5vcHRpb25zLnRvb2x0aXBDb3JuZXJSYWRpdXMsXG5cdFx0XHRcdFx0XHRsYWJlbHM6IHRvb2x0aXBMYWJlbHMsXG5cdFx0XHRcdFx0XHRsZWdlbmRDb2xvcnM6IHRvb2x0aXBDb2xvcnMsXG5cdFx0XHRcdFx0XHRsZWdlbmRDb2xvckJhY2tncm91bmQgOiB0aGlzLm9wdGlvbnMubXVsdGlUb29sdGlwS2V5QmFja2dyb3VuZCxcblx0XHRcdFx0XHRcdHRpdGxlOiBDaGFydEVsZW1lbnRzWzBdLmxhYmVsLFxuXHRcdFx0XHRcdFx0Y2hhcnQ6IHRoaXMuY2hhcnQsXG5cdFx0XHRcdFx0XHRjdHg6IHRoaXMuY2hhcnQuY3R4LFxuXHRcdFx0XHRcdFx0Y3VzdG9tOiB0aGlzLm9wdGlvbnMuY3VzdG9tVG9vbHRpcHNcblx0XHRcdFx0XHR9KS5kcmF3KCk7XG5cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRlYWNoKENoYXJ0RWxlbWVudHMsIGZ1bmN0aW9uKEVsZW1lbnQpIHtcblx0XHRcdFx0XHRcdHZhciB0b29sdGlwUG9zaXRpb24gPSBFbGVtZW50LnRvb2x0aXBQb3NpdGlvbigpO1xuXHRcdFx0XHRcdFx0bmV3IENoYXJ0LlRvb2x0aXAoe1xuXHRcdFx0XHRcdFx0XHR4OiBNYXRoLnJvdW5kKHRvb2x0aXBQb3NpdGlvbi54KSxcblx0XHRcdFx0XHRcdFx0eTogTWF0aC5yb3VuZCh0b29sdGlwUG9zaXRpb24ueSksXG5cdFx0XHRcdFx0XHRcdHhQYWRkaW5nOiB0aGlzLm9wdGlvbnMudG9vbHRpcFhQYWRkaW5nLFxuXHRcdFx0XHRcdFx0XHR5UGFkZGluZzogdGhpcy5vcHRpb25zLnRvb2x0aXBZUGFkZGluZyxcblx0XHRcdFx0XHRcdFx0ZmlsbENvbG9yOiB0aGlzLm9wdGlvbnMudG9vbHRpcEZpbGxDb2xvcixcblx0XHRcdFx0XHRcdFx0dGV4dENvbG9yOiB0aGlzLm9wdGlvbnMudG9vbHRpcEZvbnRDb2xvcixcblx0XHRcdFx0XHRcdFx0Zm9udEZhbWlseTogdGhpcy5vcHRpb25zLnRvb2x0aXBGb250RmFtaWx5LFxuXHRcdFx0XHRcdFx0XHRmb250U3R5bGU6IHRoaXMub3B0aW9ucy50b29sdGlwRm9udFN0eWxlLFxuXHRcdFx0XHRcdFx0XHRmb250U2l6ZTogdGhpcy5vcHRpb25zLnRvb2x0aXBGb250U2l6ZSxcblx0XHRcdFx0XHRcdFx0Y2FyZXRIZWlnaHQ6IHRoaXMub3B0aW9ucy50b29sdGlwQ2FyZXRTaXplLFxuXHRcdFx0XHRcdFx0XHRjb3JuZXJSYWRpdXM6IHRoaXMub3B0aW9ucy50b29sdGlwQ29ybmVyUmFkaXVzLFxuXHRcdFx0XHRcdFx0XHR0ZXh0OiB0ZW1wbGF0ZSh0aGlzLm9wdGlvbnMudG9vbHRpcFRlbXBsYXRlLCBFbGVtZW50KSxcblx0XHRcdFx0XHRcdFx0Y2hhcnQ6IHRoaXMuY2hhcnQsXG5cdFx0XHRcdFx0XHRcdGN1c3RvbTogdGhpcy5vcHRpb25zLmN1c3RvbVRvb2x0aXBzXG5cdFx0XHRcdFx0XHR9KS5kcmF3KCk7XG5cdFx0XHRcdFx0fSwgdGhpcyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0sXG5cdFx0dG9CYXNlNjRJbWFnZSA6IGZ1bmN0aW9uKCl7XG5cdFx0XHRyZXR1cm4gdGhpcy5jaGFydC5jYW52YXMudG9EYXRhVVJMLmFwcGx5KHRoaXMuY2hhcnQuY2FudmFzLCBhcmd1bWVudHMpO1xuXHRcdH1cblx0fSk7XG5cblx0Q2hhcnQuVHlwZS5leHRlbmQgPSBmdW5jdGlvbihleHRlbnNpb25zKXtcblxuXHRcdHZhciBwYXJlbnQgPSB0aGlzO1xuXG5cdFx0dmFyIENoYXJ0VHlwZSA9IGZ1bmN0aW9uKCl7XG5cdFx0XHRyZXR1cm4gcGFyZW50LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtcblx0XHR9O1xuXG5cdFx0Ly9Db3B5IHRoZSBwcm90b3R5cGUgb2JqZWN0IG9mIHRoZSB0aGlzIGNsYXNzXG5cdFx0Q2hhcnRUeXBlLnByb3RvdHlwZSA9IGNsb25lKHBhcmVudC5wcm90b3R5cGUpO1xuXHRcdC8vTm93IG92ZXJ3cml0ZSBzb21lIG9mIHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBiYXNlIGNsYXNzIHdpdGggdGhlIG5ldyBleHRlbnNpb25zXG5cdFx0ZXh0ZW5kKENoYXJ0VHlwZS5wcm90b3R5cGUsIGV4dGVuc2lvbnMpO1xuXG5cdFx0Q2hhcnRUeXBlLmV4dGVuZCA9IENoYXJ0LlR5cGUuZXh0ZW5kO1xuXG5cdFx0aWYgKGV4dGVuc2lvbnMubmFtZSB8fCBwYXJlbnQucHJvdG90eXBlLm5hbWUpe1xuXG5cdFx0XHR2YXIgY2hhcnROYW1lID0gZXh0ZW5zaW9ucy5uYW1lIHx8IHBhcmVudC5wcm90b3R5cGUubmFtZTtcblx0XHRcdC8vQXNzaWduIGFueSBwb3RlbnRpYWwgZGVmYXVsdCB2YWx1ZXMgb2YgdGhlIG5ldyBjaGFydCB0eXBlXG5cblx0XHRcdC8vSWYgbm9uZSBhcmUgZGVmaW5lZCwgd2UnbGwgdXNlIGEgY2xvbmUgb2YgdGhlIGNoYXJ0IHR5cGUgdGhpcyBpcyBiZWluZyBleHRlbmRlZCBmcm9tLlxuXHRcdFx0Ly9JLmUuIGlmIHdlIGV4dGVuZCBhIGxpbmUgY2hhcnQsIHdlJ2xsIHVzZSB0aGUgZGVmYXVsdHMgZnJvbSB0aGUgbGluZSBjaGFydCBpZiBvdXIgbmV3IGNoYXJ0XG5cdFx0XHQvL2RvZXNuJ3QgZGVmaW5lIHNvbWUgZGVmYXVsdHMgb2YgdGhlaXIgb3duLlxuXG5cdFx0XHR2YXIgYmFzZURlZmF1bHRzID0gKENoYXJ0LmRlZmF1bHRzW3BhcmVudC5wcm90b3R5cGUubmFtZV0pID8gY2xvbmUoQ2hhcnQuZGVmYXVsdHNbcGFyZW50LnByb3RvdHlwZS5uYW1lXSkgOiB7fTtcblxuXHRcdFx0Q2hhcnQuZGVmYXVsdHNbY2hhcnROYW1lXSA9IGV4dGVuZChiYXNlRGVmYXVsdHMsZXh0ZW5zaW9ucy5kZWZhdWx0cyk7XG5cblx0XHRcdENoYXJ0LnR5cGVzW2NoYXJ0TmFtZV0gPSBDaGFydFR5cGU7XG5cblx0XHRcdC8vUmVnaXN0ZXIgdGhpcyBuZXcgY2hhcnQgdHlwZSBpbiB0aGUgQ2hhcnQgcHJvdG90eXBlXG5cdFx0XHRDaGFydC5wcm90b3R5cGVbY2hhcnROYW1lXSA9IGZ1bmN0aW9uKGRhdGEsb3B0aW9ucyl7XG5cdFx0XHRcdHZhciBjb25maWcgPSBtZXJnZShDaGFydC5kZWZhdWx0cy5nbG9iYWwsIENoYXJ0LmRlZmF1bHRzW2NoYXJ0TmFtZV0sIG9wdGlvbnMgfHwge30pO1xuXHRcdFx0XHRyZXR1cm4gbmV3IENoYXJ0VHlwZShkYXRhLGNvbmZpZyx0aGlzKTtcblx0XHRcdH07XG5cdFx0fSBlbHNle1xuXHRcdFx0d2FybihcIk5hbWUgbm90IHByb3ZpZGVkIGZvciB0aGlzIGNoYXJ0LCBzbyBpdCBoYXNuJ3QgYmVlbiByZWdpc3RlcmVkXCIpO1xuXHRcdH1cblx0XHRyZXR1cm4gcGFyZW50O1xuXHR9O1xuXG5cdENoYXJ0LkVsZW1lbnQgPSBmdW5jdGlvbihjb25maWd1cmF0aW9uKXtcblx0XHRleHRlbmQodGhpcyxjb25maWd1cmF0aW9uKTtcblx0XHR0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcyxhcmd1bWVudHMpO1xuXHRcdHRoaXMuc2F2ZSgpO1xuXHR9O1xuXHRleHRlbmQoQ2hhcnQuRWxlbWVudC5wcm90b3R5cGUse1xuXHRcdGluaXRpYWxpemUgOiBmdW5jdGlvbigpe30sXG5cdFx0cmVzdG9yZSA6IGZ1bmN0aW9uKHByb3BzKXtcblx0XHRcdGlmICghcHJvcHMpe1xuXHRcdFx0XHRleHRlbmQodGhpcyx0aGlzLl9zYXZlZCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlYWNoKHByb3BzLGZ1bmN0aW9uKGtleSl7XG5cdFx0XHRcdFx0dGhpc1trZXldID0gdGhpcy5fc2F2ZWRba2V5XTtcblx0XHRcdFx0fSx0aGlzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0sXG5cdFx0c2F2ZSA6IGZ1bmN0aW9uKCl7XG5cdFx0XHR0aGlzLl9zYXZlZCA9IGNsb25lKHRoaXMpO1xuXHRcdFx0ZGVsZXRlIHRoaXMuX3NhdmVkLl9zYXZlZDtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0sXG5cdFx0dXBkYXRlIDogZnVuY3Rpb24obmV3UHJvcHMpe1xuXHRcdFx0ZWFjaChuZXdQcm9wcyxmdW5jdGlvbih2YWx1ZSxrZXkpe1xuXHRcdFx0XHR0aGlzLl9zYXZlZFtrZXldID0gdGhpc1trZXldO1xuXHRcdFx0XHR0aGlzW2tleV0gPSB2YWx1ZTtcblx0XHRcdH0sdGhpcyk7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9LFxuXHRcdHRyYW5zaXRpb24gOiBmdW5jdGlvbihwcm9wcyxlYXNlKXtcblx0XHRcdGVhY2gocHJvcHMsZnVuY3Rpb24odmFsdWUsa2V5KXtcblx0XHRcdFx0dGhpc1trZXldID0gKCh2YWx1ZSAtIHRoaXMuX3NhdmVkW2tleV0pICogZWFzZSkgKyB0aGlzLl9zYXZlZFtrZXldO1xuXHRcdFx0fSx0aGlzKTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0sXG5cdFx0dG9vbHRpcFBvc2l0aW9uIDogZnVuY3Rpb24oKXtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHggOiB0aGlzLngsXG5cdFx0XHRcdHkgOiB0aGlzLnlcblx0XHRcdH07XG5cdFx0fSxcblx0XHRoYXNWYWx1ZTogZnVuY3Rpb24oKXtcblx0XHRcdHJldHVybiBpc051bWJlcih0aGlzLnZhbHVlKTtcblx0XHR9XG5cdH0pO1xuXG5cdENoYXJ0LkVsZW1lbnQuZXh0ZW5kID0gaW5oZXJpdHM7XG5cblxuXHRDaGFydC5Qb2ludCA9IENoYXJ0LkVsZW1lbnQuZXh0ZW5kKHtcblx0XHRkaXNwbGF5OiB0cnVlLFxuXHRcdGluUmFuZ2U6IGZ1bmN0aW9uKGNoYXJ0WCxjaGFydFkpe1xuXHRcdFx0dmFyIGhpdERldGVjdGlvblJhbmdlID0gdGhpcy5oaXREZXRlY3Rpb25SYWRpdXMgKyB0aGlzLnJhZGl1cztcblx0XHRcdHJldHVybiAoKE1hdGgucG93KGNoYXJ0WC10aGlzLngsIDIpK01hdGgucG93KGNoYXJ0WS10aGlzLnksIDIpKSA8IE1hdGgucG93KGhpdERldGVjdGlvblJhbmdlLDIpKTtcblx0XHR9LFxuXHRcdGRyYXcgOiBmdW5jdGlvbigpe1xuXHRcdFx0aWYgKHRoaXMuZGlzcGxheSl7XG5cdFx0XHRcdHZhciBjdHggPSB0aGlzLmN0eDtcblx0XHRcdFx0Y3R4LmJlZ2luUGF0aCgpO1xuXG5cdFx0XHRcdGN0eC5hcmModGhpcy54LCB0aGlzLnksIHRoaXMucmFkaXVzLCAwLCBNYXRoLlBJKjIpO1xuXHRcdFx0XHRjdHguY2xvc2VQYXRoKCk7XG5cblx0XHRcdFx0Y3R4LnN0cm9rZVN0eWxlID0gdGhpcy5zdHJva2VDb2xvcjtcblx0XHRcdFx0Y3R4LmxpbmVXaWR0aCA9IHRoaXMuc3Ryb2tlV2lkdGg7XG5cblx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRoaXMuZmlsbENvbG9yO1xuXG5cdFx0XHRcdGN0eC5maWxsKCk7XG5cdFx0XHRcdGN0eC5zdHJva2UoKTtcblx0XHRcdH1cblxuXG5cdFx0XHQvL1F1aWNrIGRlYnVnIGZvciBiZXppZXIgY3VydmUgc3BsaW5pbmdcblx0XHRcdC8vSGlnaGxpZ2h0cyBjb250cm9sIHBvaW50cyBhbmQgdGhlIGxpbmUgYmV0d2VlbiB0aGVtLlxuXHRcdFx0Ly9IYW5keSBmb3IgZGV2IC0gc3RyaXBwZWQgaW4gdGhlIG1pbiB2ZXJzaW9uLlxuXG5cdFx0XHQvLyBjdHguc2F2ZSgpO1xuXHRcdFx0Ly8gY3R4LmZpbGxTdHlsZSA9IFwiYmxhY2tcIjtcblx0XHRcdC8vIGN0eC5zdHJva2VTdHlsZSA9IFwiYmxhY2tcIlxuXHRcdFx0Ly8gY3R4LmJlZ2luUGF0aCgpO1xuXHRcdFx0Ly8gY3R4LmFyYyh0aGlzLmNvbnRyb2xQb2ludHMuaW5uZXIueCx0aGlzLmNvbnRyb2xQb2ludHMuaW5uZXIueSwgMiwgMCwgTWF0aC5QSSoyKTtcblx0XHRcdC8vIGN0eC5maWxsKCk7XG5cblx0XHRcdC8vIGN0eC5iZWdpblBhdGgoKTtcblx0XHRcdC8vIGN0eC5hcmModGhpcy5jb250cm9sUG9pbnRzLm91dGVyLngsdGhpcy5jb250cm9sUG9pbnRzLm91dGVyLnksIDIsIDAsIE1hdGguUEkqMik7XG5cdFx0XHQvLyBjdHguZmlsbCgpO1xuXG5cdFx0XHQvLyBjdHgubW92ZVRvKHRoaXMuY29udHJvbFBvaW50cy5pbm5lci54LHRoaXMuY29udHJvbFBvaW50cy5pbm5lci55KTtcblx0XHRcdC8vIGN0eC5saW5lVG8odGhpcy54LCB0aGlzLnkpO1xuXHRcdFx0Ly8gY3R4LmxpbmVUbyh0aGlzLmNvbnRyb2xQb2ludHMub3V0ZXIueCx0aGlzLmNvbnRyb2xQb2ludHMub3V0ZXIueSk7XG5cdFx0XHQvLyBjdHguc3Ryb2tlKCk7XG5cblx0XHRcdC8vIGN0eC5yZXN0b3JlKCk7XG5cblxuXG5cdFx0fVxuXHR9KTtcblxuXHRDaGFydC5BcmMgPSBDaGFydC5FbGVtZW50LmV4dGVuZCh7XG5cdFx0aW5SYW5nZSA6IGZ1bmN0aW9uKGNoYXJ0WCxjaGFydFkpe1xuXG5cdFx0XHR2YXIgcG9pbnRSZWxhdGl2ZVBvc2l0aW9uID0gaGVscGVycy5nZXRBbmdsZUZyb21Qb2ludCh0aGlzLCB7XG5cdFx0XHRcdHg6IGNoYXJ0WCxcblx0XHRcdFx0eTogY2hhcnRZXG5cdFx0XHR9KTtcblxuXHRcdFx0Ly9DaGVjayBpZiB3aXRoaW4gdGhlIHJhbmdlIG9mIHRoZSBvcGVuL2Nsb3NlIGFuZ2xlXG5cdFx0XHR2YXIgYmV0d2VlbkFuZ2xlcyA9IChwb2ludFJlbGF0aXZlUG9zaXRpb24uYW5nbGUgPj0gdGhpcy5zdGFydEFuZ2xlICYmIHBvaW50UmVsYXRpdmVQb3NpdGlvbi5hbmdsZSA8PSB0aGlzLmVuZEFuZ2xlKSxcblx0XHRcdFx0d2l0aGluUmFkaXVzID0gKHBvaW50UmVsYXRpdmVQb3NpdGlvbi5kaXN0YW5jZSA+PSB0aGlzLmlubmVyUmFkaXVzICYmIHBvaW50UmVsYXRpdmVQb3NpdGlvbi5kaXN0YW5jZSA8PSB0aGlzLm91dGVyUmFkaXVzKTtcblxuXHRcdFx0cmV0dXJuIChiZXR3ZWVuQW5nbGVzICYmIHdpdGhpblJhZGl1cyk7XG5cdFx0XHQvL0Vuc3VyZSB3aXRoaW4gdGhlIG91dHNpZGUgb2YgdGhlIGFyYyBjZW50cmUsIGJ1dCBpbnNpZGUgYXJjIG91dGVyXG5cdFx0fSxcblx0XHR0b29sdGlwUG9zaXRpb24gOiBmdW5jdGlvbigpe1xuXHRcdFx0dmFyIGNlbnRyZUFuZ2xlID0gdGhpcy5zdGFydEFuZ2xlICsgKCh0aGlzLmVuZEFuZ2xlIC0gdGhpcy5zdGFydEFuZ2xlKSAvIDIpLFxuXHRcdFx0XHRyYW5nZUZyb21DZW50cmUgPSAodGhpcy5vdXRlclJhZGl1cyAtIHRoaXMuaW5uZXJSYWRpdXMpIC8gMiArIHRoaXMuaW5uZXJSYWRpdXM7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR4IDogdGhpcy54ICsgKE1hdGguY29zKGNlbnRyZUFuZ2xlKSAqIHJhbmdlRnJvbUNlbnRyZSksXG5cdFx0XHRcdHkgOiB0aGlzLnkgKyAoTWF0aC5zaW4oY2VudHJlQW5nbGUpICogcmFuZ2VGcm9tQ2VudHJlKVxuXHRcdFx0fTtcblx0XHR9LFxuXHRcdGRyYXcgOiBmdW5jdGlvbihhbmltYXRpb25QZXJjZW50KXtcblxuXHRcdFx0dmFyIGVhc2luZ0RlY2ltYWwgPSBhbmltYXRpb25QZXJjZW50IHx8IDE7XG5cblx0XHRcdHZhciBjdHggPSB0aGlzLmN0eDtcblxuXHRcdFx0Y3R4LmJlZ2luUGF0aCgpO1xuXG5cdFx0XHRjdHguYXJjKHRoaXMueCwgdGhpcy55LCB0aGlzLm91dGVyUmFkaXVzLCB0aGlzLnN0YXJ0QW5nbGUsIHRoaXMuZW5kQW5nbGUpO1xuXG5cdFx0XHRjdHguYXJjKHRoaXMueCwgdGhpcy55LCB0aGlzLmlubmVyUmFkaXVzLCB0aGlzLmVuZEFuZ2xlLCB0aGlzLnN0YXJ0QW5nbGUsIHRydWUpO1xuXG5cdFx0XHRjdHguY2xvc2VQYXRoKCk7XG5cdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSB0aGlzLnN0cm9rZUNvbG9yO1xuXHRcdFx0Y3R4LmxpbmVXaWR0aCA9IHRoaXMuc3Ryb2tlV2lkdGg7XG5cblx0XHRcdGN0eC5maWxsU3R5bGUgPSB0aGlzLmZpbGxDb2xvcjtcblxuXHRcdFx0Y3R4LmZpbGwoKTtcblx0XHRcdGN0eC5saW5lSm9pbiA9ICdiZXZlbCc7XG5cblx0XHRcdGlmICh0aGlzLnNob3dTdHJva2Upe1xuXHRcdFx0XHRjdHguc3Ryb2tlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblxuXHRDaGFydC5SZWN0YW5nbGUgPSBDaGFydC5FbGVtZW50LmV4dGVuZCh7XG5cdFx0ZHJhdyA6IGZ1bmN0aW9uKCl7XG5cdFx0XHR2YXIgY3R4ID0gdGhpcy5jdHgsXG5cdFx0XHRcdGhhbGZXaWR0aCA9IHRoaXMud2lkdGgvMixcblx0XHRcdFx0bGVmdFggPSB0aGlzLnggLSBoYWxmV2lkdGgsXG5cdFx0XHRcdHJpZ2h0WCA9IHRoaXMueCArIGhhbGZXaWR0aCxcblx0XHRcdFx0dG9wID0gdGhpcy5iYXNlIC0gKHRoaXMuYmFzZSAtIHRoaXMueSksXG5cdFx0XHRcdGhhbGZTdHJva2UgPSB0aGlzLnN0cm9rZVdpZHRoIC8gMjtcblxuXHRcdFx0Ly8gQ2FudmFzIGRvZXNuJ3QgYWxsb3cgdXMgdG8gc3Ryb2tlIGluc2lkZSB0aGUgd2lkdGggc28gd2UgY2FuXG5cdFx0XHQvLyBhZGp1c3QgdGhlIHNpemVzIHRvIGZpdCBpZiB3ZSdyZSBzZXR0aW5nIGEgc3Ryb2tlIG9uIHRoZSBsaW5lXG5cdFx0XHRpZiAodGhpcy5zaG93U3Ryb2tlKXtcblx0XHRcdFx0bGVmdFggKz0gaGFsZlN0cm9rZTtcblx0XHRcdFx0cmlnaHRYIC09IGhhbGZTdHJva2U7XG5cdFx0XHRcdHRvcCArPSBoYWxmU3Ryb2tlO1xuXHRcdFx0fVxuXG5cdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cblx0XHRcdGN0eC5maWxsU3R5bGUgPSB0aGlzLmZpbGxDb2xvcjtcblx0XHRcdGN0eC5zdHJva2VTdHlsZSA9IHRoaXMuc3Ryb2tlQ29sb3I7XG5cdFx0XHRjdHgubGluZVdpZHRoID0gdGhpcy5zdHJva2VXaWR0aDtcblxuXHRcdFx0Ly8gSXQnZCBiZSBuaWNlIHRvIGtlZXAgdGhpcyBjbGFzcyB0b3RhbGx5IGdlbmVyaWMgdG8gYW55IHJlY3RhbmdsZVxuXHRcdFx0Ly8gYW5kIHNpbXBseSBzcGVjaWZ5IHdoaWNoIGJvcmRlciB0byBtaXNzIG91dC5cblx0XHRcdGN0eC5tb3ZlVG8obGVmdFgsIHRoaXMuYmFzZSk7XG5cdFx0XHRjdHgubGluZVRvKGxlZnRYLCB0b3ApO1xuXHRcdFx0Y3R4LmxpbmVUbyhyaWdodFgsIHRvcCk7XG5cdFx0XHRjdHgubGluZVRvKHJpZ2h0WCwgdGhpcy5iYXNlKTtcblx0XHRcdGN0eC5maWxsKCk7XG5cdFx0XHRpZiAodGhpcy5zaG93U3Ryb2tlKXtcblx0XHRcdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0aGVpZ2h0IDogZnVuY3Rpb24oKXtcblx0XHRcdHJldHVybiB0aGlzLmJhc2UgLSB0aGlzLnk7XG5cdFx0fSxcblx0XHRpblJhbmdlIDogZnVuY3Rpb24oY2hhcnRYLGNoYXJ0WSl7XG5cdFx0XHRyZXR1cm4gKGNoYXJ0WCA+PSB0aGlzLnggLSB0aGlzLndpZHRoLzIgJiYgY2hhcnRYIDw9IHRoaXMueCArIHRoaXMud2lkdGgvMikgJiYgKGNoYXJ0WSA+PSB0aGlzLnkgJiYgY2hhcnRZIDw9IHRoaXMuYmFzZSk7XG5cdFx0fVxuXHR9KTtcblxuXHRDaGFydC5Ub29sdGlwID0gQ2hhcnQuRWxlbWVudC5leHRlbmQoe1xuXHRcdGRyYXcgOiBmdW5jdGlvbigpe1xuXG5cdFx0XHR2YXIgY3R4ID0gdGhpcy5jaGFydC5jdHg7XG5cblx0XHRcdGN0eC5mb250ID0gZm9udFN0cmluZyh0aGlzLmZvbnRTaXplLHRoaXMuZm9udFN0eWxlLHRoaXMuZm9udEZhbWlseSk7XG5cblx0XHRcdHRoaXMueEFsaWduID0gXCJjZW50ZXJcIjtcblx0XHRcdHRoaXMueUFsaWduID0gXCJhYm92ZVwiO1xuXG5cdFx0XHQvL0Rpc3RhbmNlIGJldHdlZW4gdGhlIGFjdHVhbCBlbGVtZW50LnkgcG9zaXRpb24gYW5kIHRoZSBzdGFydCBvZiB0aGUgdG9vbHRpcCBjYXJldFxuXHRcdFx0dmFyIGNhcmV0UGFkZGluZyA9IHRoaXMuY2FyZXRQYWRkaW5nID0gMjtcblxuXHRcdFx0dmFyIHRvb2x0aXBXaWR0aCA9IGN0eC5tZWFzdXJlVGV4dCh0aGlzLnRleHQpLndpZHRoICsgMip0aGlzLnhQYWRkaW5nLFxuXHRcdFx0XHR0b29sdGlwUmVjdEhlaWdodCA9IHRoaXMuZm9udFNpemUgKyAyKnRoaXMueVBhZGRpbmcsXG5cdFx0XHRcdHRvb2x0aXBIZWlnaHQgPSB0b29sdGlwUmVjdEhlaWdodCArIHRoaXMuY2FyZXRIZWlnaHQgKyBjYXJldFBhZGRpbmc7XG5cblx0XHRcdGlmICh0aGlzLnggKyB0b29sdGlwV2lkdGgvMiA+dGhpcy5jaGFydC53aWR0aCl7XG5cdFx0XHRcdHRoaXMueEFsaWduID0gXCJsZWZ0XCI7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMueCAtIHRvb2x0aXBXaWR0aC8yIDwgMCl7XG5cdFx0XHRcdHRoaXMueEFsaWduID0gXCJyaWdodFwiO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy55IC0gdG9vbHRpcEhlaWdodCA8IDApe1xuXHRcdFx0XHR0aGlzLnlBbGlnbiA9IFwiYmVsb3dcIjtcblx0XHRcdH1cblxuXG5cdFx0XHR2YXIgdG9vbHRpcFggPSB0aGlzLnggLSB0b29sdGlwV2lkdGgvMixcblx0XHRcdFx0dG9vbHRpcFkgPSB0aGlzLnkgLSB0b29sdGlwSGVpZ2h0O1xuXG5cdFx0XHRjdHguZmlsbFN0eWxlID0gdGhpcy5maWxsQ29sb3I7XG5cblx0XHRcdC8vIEN1c3RvbSBUb29sdGlwc1xuXHRcdFx0aWYodGhpcy5jdXN0b20pe1xuXHRcdFx0XHR0aGlzLmN1c3RvbSh0aGlzKTtcblx0XHRcdH1cblx0XHRcdGVsc2V7XG5cdFx0XHRcdHN3aXRjaCh0aGlzLnlBbGlnbilcblx0XHRcdFx0e1xuXHRcdFx0XHRjYXNlIFwiYWJvdmVcIjpcblx0XHRcdFx0XHQvL0RyYXcgYSBjYXJldCBhYm92ZSB0aGUgeC95XG5cdFx0XHRcdFx0Y3R4LmJlZ2luUGF0aCgpO1xuXHRcdFx0XHRcdGN0eC5tb3ZlVG8odGhpcy54LHRoaXMueSAtIGNhcmV0UGFkZGluZyk7XG5cdFx0XHRcdFx0Y3R4LmxpbmVUbyh0aGlzLnggKyB0aGlzLmNhcmV0SGVpZ2h0LCB0aGlzLnkgLSAoY2FyZXRQYWRkaW5nICsgdGhpcy5jYXJldEhlaWdodCkpO1xuXHRcdFx0XHRcdGN0eC5saW5lVG8odGhpcy54IC0gdGhpcy5jYXJldEhlaWdodCwgdGhpcy55IC0gKGNhcmV0UGFkZGluZyArIHRoaXMuY2FyZXRIZWlnaHQpKTtcblx0XHRcdFx0XHRjdHguY2xvc2VQYXRoKCk7XG5cdFx0XHRcdFx0Y3R4LmZpbGwoKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcImJlbG93XCI6XG5cdFx0XHRcdFx0dG9vbHRpcFkgPSB0aGlzLnkgKyBjYXJldFBhZGRpbmcgKyB0aGlzLmNhcmV0SGVpZ2h0O1xuXHRcdFx0XHRcdC8vRHJhdyBhIGNhcmV0IGJlbG93IHRoZSB4L3lcblx0XHRcdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0XHRcdFx0Y3R4Lm1vdmVUbyh0aGlzLngsIHRoaXMueSArIGNhcmV0UGFkZGluZyk7XG5cdFx0XHRcdFx0Y3R4LmxpbmVUbyh0aGlzLnggKyB0aGlzLmNhcmV0SGVpZ2h0LCB0aGlzLnkgKyBjYXJldFBhZGRpbmcgKyB0aGlzLmNhcmV0SGVpZ2h0KTtcblx0XHRcdFx0XHRjdHgubGluZVRvKHRoaXMueCAtIHRoaXMuY2FyZXRIZWlnaHQsIHRoaXMueSArIGNhcmV0UGFkZGluZyArIHRoaXMuY2FyZXRIZWlnaHQpO1xuXHRcdFx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblx0XHRcdFx0XHRjdHguZmlsbCgpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c3dpdGNoKHRoaXMueEFsaWduKVxuXHRcdFx0XHR7XG5cdFx0XHRcdGNhc2UgXCJsZWZ0XCI6XG5cdFx0XHRcdFx0dG9vbHRpcFggPSB0aGlzLnggLSB0b29sdGlwV2lkdGggKyAodGhpcy5jb3JuZXJSYWRpdXMgKyB0aGlzLmNhcmV0SGVpZ2h0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcInJpZ2h0XCI6XG5cdFx0XHRcdFx0dG9vbHRpcFggPSB0aGlzLnggLSAodGhpcy5jb3JuZXJSYWRpdXMgKyB0aGlzLmNhcmV0SGVpZ2h0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRyYXdSb3VuZGVkUmVjdGFuZ2xlKGN0eCx0b29sdGlwWCx0b29sdGlwWSx0b29sdGlwV2lkdGgsdG9vbHRpcFJlY3RIZWlnaHQsdGhpcy5jb3JuZXJSYWRpdXMpO1xuXG5cdFx0XHRcdGN0eC5maWxsKCk7XG5cblx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRoaXMudGV4dENvbG9yO1xuXHRcdFx0XHRjdHgudGV4dEFsaWduID0gXCJjZW50ZXJcIjtcblx0XHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9IFwibWlkZGxlXCI7XG5cdFx0XHRcdGN0eC5maWxsVGV4dCh0aGlzLnRleHQsIHRvb2x0aXBYICsgdG9vbHRpcFdpZHRoLzIsIHRvb2x0aXBZICsgdG9vbHRpcFJlY3RIZWlnaHQvMik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblxuXHRDaGFydC5NdWx0aVRvb2x0aXAgPSBDaGFydC5FbGVtZW50LmV4dGVuZCh7XG5cdFx0aW5pdGlhbGl6ZSA6IGZ1bmN0aW9uKCl7XG5cdFx0XHR0aGlzLmZvbnQgPSBmb250U3RyaW5nKHRoaXMuZm9udFNpemUsdGhpcy5mb250U3R5bGUsdGhpcy5mb250RmFtaWx5KTtcblxuXHRcdFx0dGhpcy50aXRsZUZvbnQgPSBmb250U3RyaW5nKHRoaXMudGl0bGVGb250U2l6ZSx0aGlzLnRpdGxlRm9udFN0eWxlLHRoaXMudGl0bGVGb250RmFtaWx5KTtcblxuXHRcdFx0dGhpcy5oZWlnaHQgPSAodGhpcy5sYWJlbHMubGVuZ3RoICogdGhpcy5mb250U2l6ZSkgKyAoKHRoaXMubGFiZWxzLmxlbmd0aC0xKSAqICh0aGlzLmZvbnRTaXplLzIpKSArICh0aGlzLnlQYWRkaW5nKjIpICsgdGhpcy50aXRsZUZvbnRTaXplICoxLjU7XG5cblx0XHRcdHRoaXMuY3R4LmZvbnQgPSB0aGlzLnRpdGxlRm9udDtcblxuXHRcdFx0dmFyIHRpdGxlV2lkdGggPSB0aGlzLmN0eC5tZWFzdXJlVGV4dCh0aGlzLnRpdGxlKS53aWR0aCxcblx0XHRcdFx0Ly9MYWJlbCBoYXMgYSBsZWdlbmQgc3F1YXJlIGFzIHdlbGwgc28gYWNjb3VudCBmb3IgdGhpcy5cblx0XHRcdFx0bGFiZWxXaWR0aCA9IGxvbmdlc3RUZXh0KHRoaXMuY3R4LHRoaXMuZm9udCx0aGlzLmxhYmVscykgKyB0aGlzLmZvbnRTaXplICsgMyxcblx0XHRcdFx0bG9uZ2VzdFRleHRXaWR0aCA9IG1heChbbGFiZWxXaWR0aCx0aXRsZVdpZHRoXSk7XG5cblx0XHRcdHRoaXMud2lkdGggPSBsb25nZXN0VGV4dFdpZHRoICsgKHRoaXMueFBhZGRpbmcqMik7XG5cblxuXHRcdFx0dmFyIGhhbGZIZWlnaHQgPSB0aGlzLmhlaWdodC8yO1xuXG5cdFx0XHQvL0NoZWNrIHRvIGVuc3VyZSB0aGUgaGVpZ2h0IHdpbGwgZml0IG9uIHRoZSBjYW52YXNcblx0XHRcdGlmICh0aGlzLnkgLSBoYWxmSGVpZ2h0IDwgMCApe1xuXHRcdFx0XHR0aGlzLnkgPSBoYWxmSGVpZ2h0O1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnkgKyBoYWxmSGVpZ2h0ID4gdGhpcy5jaGFydC5oZWlnaHQpe1xuXHRcdFx0XHR0aGlzLnkgPSB0aGlzLmNoYXJ0LmhlaWdodCAtIGhhbGZIZWlnaHQ7XG5cdFx0XHR9XG5cblx0XHRcdC8vRGVjaWRlIHdoZXRoZXIgdG8gYWxpZ24gbGVmdCBvciByaWdodCBiYXNlZCBvbiBwb3NpdGlvbiBvbiBjYW52YXNcblx0XHRcdGlmICh0aGlzLnggPiB0aGlzLmNoYXJ0LndpZHRoLzIpe1xuXHRcdFx0XHR0aGlzLnggLT0gdGhpcy54T2Zmc2V0ICsgdGhpcy53aWR0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMueCArPSB0aGlzLnhPZmZzZXQ7XG5cdFx0XHR9XG5cblxuXHRcdH0sXG5cdFx0Z2V0TGluZUhlaWdodCA6IGZ1bmN0aW9uKGluZGV4KXtcblx0XHRcdHZhciBiYXNlTGluZUhlaWdodCA9IHRoaXMueSAtICh0aGlzLmhlaWdodC8yKSArIHRoaXMueVBhZGRpbmcsXG5cdFx0XHRcdGFmdGVyVGl0bGVJbmRleCA9IGluZGV4LTE7XG5cblx0XHRcdC8vSWYgdGhlIGluZGV4IGlzIHplcm8sIHdlJ3JlIGdldHRpbmcgdGhlIHRpdGxlXG5cdFx0XHRpZiAoaW5kZXggPT09IDApe1xuXHRcdFx0XHRyZXR1cm4gYmFzZUxpbmVIZWlnaHQgKyB0aGlzLnRpdGxlRm9udFNpemUvMjtcblx0XHRcdH0gZWxzZXtcblx0XHRcdFx0cmV0dXJuIGJhc2VMaW5lSGVpZ2h0ICsgKCh0aGlzLmZvbnRTaXplKjEuNSphZnRlclRpdGxlSW5kZXgpICsgdGhpcy5mb250U2l6ZS8yKSArIHRoaXMudGl0bGVGb250U2l6ZSAqIDEuNTtcblx0XHRcdH1cblxuXHRcdH0sXG5cdFx0ZHJhdyA6IGZ1bmN0aW9uKCl7XG5cdFx0XHQvLyBDdXN0b20gVG9vbHRpcHNcblx0XHRcdGlmKHRoaXMuY3VzdG9tKXtcblx0XHRcdFx0dGhpcy5jdXN0b20odGhpcyk7XG5cdFx0XHR9XG5cdFx0XHRlbHNle1xuXHRcdFx0XHRkcmF3Um91bmRlZFJlY3RhbmdsZSh0aGlzLmN0eCx0aGlzLngsdGhpcy55IC0gdGhpcy5oZWlnaHQvMix0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LHRoaXMuY29ybmVyUmFkaXVzKTtcblx0XHRcdFx0dmFyIGN0eCA9IHRoaXMuY3R4O1xuXHRcdFx0XHRjdHguZmlsbFN0eWxlID0gdGhpcy5maWxsQ29sb3I7XG5cdFx0XHRcdGN0eC5maWxsKCk7XG5cdFx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblxuXHRcdFx0XHRjdHgudGV4dEFsaWduID0gXCJsZWZ0XCI7XG5cdFx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSBcIm1pZGRsZVwiO1xuXHRcdFx0XHRjdHguZmlsbFN0eWxlID0gdGhpcy50aXRsZVRleHRDb2xvcjtcblx0XHRcdFx0Y3R4LmZvbnQgPSB0aGlzLnRpdGxlRm9udDtcblxuXHRcdFx0XHRjdHguZmlsbFRleHQodGhpcy50aXRsZSx0aGlzLnggKyB0aGlzLnhQYWRkaW5nLCB0aGlzLmdldExpbmVIZWlnaHQoMCkpO1xuXG5cdFx0XHRcdGN0eC5mb250ID0gdGhpcy5mb250O1xuXHRcdFx0XHRoZWxwZXJzLmVhY2godGhpcy5sYWJlbHMsZnVuY3Rpb24obGFiZWwsaW5kZXgpe1xuXHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSB0aGlzLnRleHRDb2xvcjtcblx0XHRcdFx0XHRjdHguZmlsbFRleHQobGFiZWwsdGhpcy54ICsgdGhpcy54UGFkZGluZyArIHRoaXMuZm9udFNpemUgKyAzLCB0aGlzLmdldExpbmVIZWlnaHQoaW5kZXggKyAxKSk7XG5cblx0XHRcdFx0XHQvL0EgYml0IGduYXJseSwgYnV0IGNsZWFyaW5nIHRoaXMgcmVjdGFuZ2xlIGJyZWFrcyB3aGVuIHVzaW5nIGV4cGxvcmVyY2FudmFzIChjbGVhcnMgd2hvbGUgY2FudmFzKVxuXHRcdFx0XHRcdC8vY3R4LmNsZWFyUmVjdCh0aGlzLnggKyB0aGlzLnhQYWRkaW5nLCB0aGlzLmdldExpbmVIZWlnaHQoaW5kZXggKyAxKSAtIHRoaXMuZm9udFNpemUvMiwgdGhpcy5mb250U2l6ZSwgdGhpcy5mb250U2l6ZSk7XG5cdFx0XHRcdFx0Ly9JbnN0ZWFkIHdlJ2xsIG1ha2UgYSB3aGl0ZSBmaWxsZWQgYmxvY2sgdG8gcHV0IHRoZSBsZWdlbmRDb2xvdXIgcGFsZXR0ZSBvdmVyLlxuXG5cdFx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRoaXMubGVnZW5kQ29sb3JCYWNrZ3JvdW5kO1xuXHRcdFx0XHRcdGN0eC5maWxsUmVjdCh0aGlzLnggKyB0aGlzLnhQYWRkaW5nLCB0aGlzLmdldExpbmVIZWlnaHQoaW5kZXggKyAxKSAtIHRoaXMuZm9udFNpemUvMiwgdGhpcy5mb250U2l6ZSwgdGhpcy5mb250U2l6ZSk7XG5cblx0XHRcdFx0XHRjdHguZmlsbFN0eWxlID0gdGhpcy5sZWdlbmRDb2xvcnNbaW5kZXhdLmZpbGw7XG5cdFx0XHRcdFx0Y3R4LmZpbGxSZWN0KHRoaXMueCArIHRoaXMueFBhZGRpbmcsIHRoaXMuZ2V0TGluZUhlaWdodChpbmRleCArIDEpIC0gdGhpcy5mb250U2l6ZS8yLCB0aGlzLmZvbnRTaXplLCB0aGlzLmZvbnRTaXplKTtcblxuXG5cdFx0XHRcdH0sdGhpcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblxuXHRDaGFydC5TY2FsZSA9IENoYXJ0LkVsZW1lbnQuZXh0ZW5kKHtcblx0XHRpbml0aWFsaXplIDogZnVuY3Rpb24oKXtcblx0XHRcdHRoaXMuZml0KCk7XG5cdFx0fSxcblx0XHRidWlsZFlMYWJlbHMgOiBmdW5jdGlvbigpe1xuXHRcdFx0dGhpcy55TGFiZWxzID0gW107XG5cblx0XHRcdHZhciBzdGVwRGVjaW1hbFBsYWNlcyA9IGdldERlY2ltYWxQbGFjZXModGhpcy5zdGVwVmFsdWUpO1xuXG5cdFx0XHRmb3IgKHZhciBpPTA7IGk8PXRoaXMuc3RlcHM7IGkrKyl7XG5cdFx0XHRcdHRoaXMueUxhYmVscy5wdXNoKHRlbXBsYXRlKHRoaXMudGVtcGxhdGVTdHJpbmcse3ZhbHVlOih0aGlzLm1pbiArIChpICogdGhpcy5zdGVwVmFsdWUpKS50b0ZpeGVkKHN0ZXBEZWNpbWFsUGxhY2VzKX0pKTtcblx0XHRcdH1cblx0XHRcdHRoaXMueUxhYmVsV2lkdGggPSAodGhpcy5kaXNwbGF5ICYmIHRoaXMuc2hvd0xhYmVscykgPyBsb25nZXN0VGV4dCh0aGlzLmN0eCx0aGlzLmZvbnQsdGhpcy55TGFiZWxzKSA6IDA7XG5cdFx0fSxcblx0XHRhZGRYTGFiZWwgOiBmdW5jdGlvbihsYWJlbCl7XG5cdFx0XHR0aGlzLnhMYWJlbHMucHVzaChsYWJlbCk7XG5cdFx0XHR0aGlzLnZhbHVlc0NvdW50Kys7XG5cdFx0XHR0aGlzLmZpdCgpO1xuXHRcdH0sXG5cdFx0cmVtb3ZlWExhYmVsIDogZnVuY3Rpb24oKXtcblx0XHRcdHRoaXMueExhYmVscy5zaGlmdCgpO1xuXHRcdFx0dGhpcy52YWx1ZXNDb3VudC0tO1xuXHRcdFx0dGhpcy5maXQoKTtcblx0XHR9LFxuXHRcdC8vIEZpdHRpbmcgbG9vcCB0byByb3RhdGUgeCBMYWJlbHMgYW5kIGZpZ3VyZSBvdXQgd2hhdCBmaXRzIHRoZXJlLCBhbmQgYWxzbyBjYWxjdWxhdGUgaG93IG1hbnkgWSBzdGVwcyB0byB1c2Vcblx0XHRmaXQ6IGZ1bmN0aW9uKCl7XG5cdFx0XHQvLyBGaXJzdCB3ZSBuZWVkIHRoZSB3aWR0aCBvZiB0aGUgeUxhYmVscywgYXNzdW1pbmcgdGhlIHhMYWJlbHMgYXJlbid0IHJvdGF0ZWRcblxuXHRcdFx0Ly8gVG8gZG8gdGhhdCB3ZSBuZWVkIHRoZSBiYXNlIGxpbmUgYXQgdGhlIHRvcCBhbmQgYmFzZSBvZiB0aGUgY2hhcnQsIGFzc3VtaW5nIHRoZXJlIGlzIG5vIHggbGFiZWwgcm90YXRpb25cblx0XHRcdHRoaXMuc3RhcnRQb2ludCA9ICh0aGlzLmRpc3BsYXkpID8gdGhpcy5mb250U2l6ZSA6IDA7XG5cdFx0XHR0aGlzLmVuZFBvaW50ID0gKHRoaXMuZGlzcGxheSkgPyB0aGlzLmhlaWdodCAtICh0aGlzLmZvbnRTaXplICogMS41KSAtIDUgOiB0aGlzLmhlaWdodDsgLy8gLTUgdG8gcGFkIGxhYmVsc1xuXG5cdFx0XHQvLyBBcHBseSBwYWRkaW5nIHNldHRpbmdzIHRvIHRoZSBzdGFydCBhbmQgZW5kIHBvaW50LlxuXHRcdFx0dGhpcy5zdGFydFBvaW50ICs9IHRoaXMucGFkZGluZztcblx0XHRcdHRoaXMuZW5kUG9pbnQgLT0gdGhpcy5wYWRkaW5nO1xuXG5cdFx0XHQvLyBDYWNoZSB0aGUgc3RhcnRpbmcgaGVpZ2h0LCBzbyBjYW4gZGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gcmVjYWxjdWxhdGUgdGhlIHNjYWxlIHlBeGlzXG5cdFx0XHR2YXIgY2FjaGVkSGVpZ2h0ID0gdGhpcy5lbmRQb2ludCAtIHRoaXMuc3RhcnRQb2ludCxcblx0XHRcdFx0Y2FjaGVkWUxhYmVsV2lkdGg7XG5cblx0XHRcdC8vIEJ1aWxkIHRoZSBjdXJyZW50IHlMYWJlbHMgc28gd2UgaGF2ZSBhbiBpZGVhIG9mIHdoYXQgc2l6ZSB0aGV5J2xsIGJlIHRvIHN0YXJ0XG5cdFx0XHQvKlxuXHRcdFx0ICpcdFRoaXMgc2V0cyB3aGF0IGlzIHJldHVybmVkIGZyb20gY2FsY3VsYXRlU2NhbGVSYW5nZSBhcyBzdGF0aWMgcHJvcGVydGllcyBvZiB0aGlzIGNsYXNzOlxuXHRcdFx0ICpcblx0XHRcdFx0dGhpcy5zdGVwcztcblx0XHRcdFx0dGhpcy5zdGVwVmFsdWU7XG5cdFx0XHRcdHRoaXMubWluO1xuXHRcdFx0XHR0aGlzLm1heDtcblx0XHRcdCAqXG5cdFx0XHQgKi9cblx0XHRcdHRoaXMuY2FsY3VsYXRlWVJhbmdlKGNhY2hlZEhlaWdodCk7XG5cblx0XHRcdC8vIFdpdGggdGhlc2UgcHJvcGVydGllcyBzZXQgd2UgY2FuIG5vdyBidWlsZCB0aGUgYXJyYXkgb2YgeUxhYmVsc1xuXHRcdFx0Ly8gYW5kIGFsc28gdGhlIHdpZHRoIG9mIHRoZSBsYXJnZXN0IHlMYWJlbFxuXHRcdFx0dGhpcy5idWlsZFlMYWJlbHMoKTtcblxuXHRcdFx0dGhpcy5jYWxjdWxhdGVYTGFiZWxSb3RhdGlvbigpO1xuXG5cdFx0XHR3aGlsZSgoY2FjaGVkSGVpZ2h0ID4gdGhpcy5lbmRQb2ludCAtIHRoaXMuc3RhcnRQb2ludCkpe1xuXHRcdFx0XHRjYWNoZWRIZWlnaHQgPSB0aGlzLmVuZFBvaW50IC0gdGhpcy5zdGFydFBvaW50O1xuXHRcdFx0XHRjYWNoZWRZTGFiZWxXaWR0aCA9IHRoaXMueUxhYmVsV2lkdGg7XG5cblx0XHRcdFx0dGhpcy5jYWxjdWxhdGVZUmFuZ2UoY2FjaGVkSGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5idWlsZFlMYWJlbHMoKTtcblxuXHRcdFx0XHQvLyBPbmx5IGdvIHRocm91Z2ggdGhlIHhMYWJlbCBsb29wIGFnYWluIGlmIHRoZSB5TGFiZWwgd2lkdGggaGFzIGNoYW5nZWRcblx0XHRcdFx0aWYgKGNhY2hlZFlMYWJlbFdpZHRoIDwgdGhpcy55TGFiZWxXaWR0aCl7XG5cdFx0XHRcdFx0dGhpcy5jYWxjdWxhdGVYTGFiZWxSb3RhdGlvbigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9LFxuXHRcdGNhbGN1bGF0ZVhMYWJlbFJvdGF0aW9uIDogZnVuY3Rpb24oKXtcblx0XHRcdC8vR2V0IHRoZSB3aWR0aCBvZiBlYWNoIGdyaWQgYnkgY2FsY3VsYXRpbmcgdGhlIGRpZmZlcmVuY2Vcblx0XHRcdC8vYmV0d2VlbiB4IG9mZnNldHMgYmV0d2VlbiAwIGFuZCAxLlxuXG5cdFx0XHR0aGlzLmN0eC5mb250ID0gdGhpcy5mb250O1xuXG5cdFx0XHR2YXIgZmlyc3RXaWR0aCA9IHRoaXMuY3R4Lm1lYXN1cmVUZXh0KHRoaXMueExhYmVsc1swXSkud2lkdGgsXG5cdFx0XHRcdGxhc3RXaWR0aCA9IHRoaXMuY3R4Lm1lYXN1cmVUZXh0KHRoaXMueExhYmVsc1t0aGlzLnhMYWJlbHMubGVuZ3RoIC0gMV0pLndpZHRoLFxuXHRcdFx0XHRmaXJzdFJvdGF0ZWQsXG5cdFx0XHRcdGxhc3RSb3RhdGVkO1xuXG5cblx0XHRcdHRoaXMueFNjYWxlUGFkZGluZ1JpZ2h0ID0gbGFzdFdpZHRoLzIgKyAzO1xuXHRcdFx0dGhpcy54U2NhbGVQYWRkaW5nTGVmdCA9IChmaXJzdFdpZHRoLzIgPiB0aGlzLnlMYWJlbFdpZHRoICsgMTApID8gZmlyc3RXaWR0aC8yIDogdGhpcy55TGFiZWxXaWR0aCArIDEwO1xuXG5cdFx0XHR0aGlzLnhMYWJlbFJvdGF0aW9uID0gMDtcblx0XHRcdGlmICh0aGlzLmRpc3BsYXkpe1xuXHRcdFx0XHR2YXIgb3JpZ2luYWxMYWJlbFdpZHRoID0gbG9uZ2VzdFRleHQodGhpcy5jdHgsdGhpcy5mb250LHRoaXMueExhYmVscyksXG5cdFx0XHRcdFx0Y29zUm90YXRpb24sXG5cdFx0XHRcdFx0Zmlyc3RSb3RhdGVkV2lkdGg7XG5cdFx0XHRcdHRoaXMueExhYmVsV2lkdGggPSBvcmlnaW5hbExhYmVsV2lkdGg7XG5cdFx0XHRcdC8vQWxsb3cgMyBwaXhlbHMgeDIgcGFkZGluZyBlaXRoZXIgc2lkZSBmb3IgbGFiZWwgcmVhZGFiaWxpdHlcblx0XHRcdFx0dmFyIHhHcmlkV2lkdGggPSBNYXRoLmZsb29yKHRoaXMuY2FsY3VsYXRlWCgxKSAtIHRoaXMuY2FsY3VsYXRlWCgwKSkgLSA2O1xuXG5cdFx0XHRcdC8vTWF4IGxhYmVsIHJvdGF0ZSBzaG91bGQgYmUgOTAgLSBhbHNvIGFjdCBhcyBhIGxvb3AgY291bnRlclxuXHRcdFx0XHR3aGlsZSAoKHRoaXMueExhYmVsV2lkdGggPiB4R3JpZFdpZHRoICYmIHRoaXMueExhYmVsUm90YXRpb24gPT09IDApIHx8ICh0aGlzLnhMYWJlbFdpZHRoID4geEdyaWRXaWR0aCAmJiB0aGlzLnhMYWJlbFJvdGF0aW9uIDw9IDkwICYmIHRoaXMueExhYmVsUm90YXRpb24gPiAwKSl7XG5cdFx0XHRcdFx0Y29zUm90YXRpb24gPSBNYXRoLmNvcyh0b1JhZGlhbnModGhpcy54TGFiZWxSb3RhdGlvbikpO1xuXG5cdFx0XHRcdFx0Zmlyc3RSb3RhdGVkID0gY29zUm90YXRpb24gKiBmaXJzdFdpZHRoO1xuXHRcdFx0XHRcdGxhc3RSb3RhdGVkID0gY29zUm90YXRpb24gKiBsYXN0V2lkdGg7XG5cblx0XHRcdFx0XHQvLyBXZSdyZSByaWdodCBhbGlnbmluZyB0aGUgdGV4dCBub3cuXG5cdFx0XHRcdFx0aWYgKGZpcnN0Um90YXRlZCArIHRoaXMuZm9udFNpemUgLyAyID4gdGhpcy55TGFiZWxXaWR0aCArIDgpe1xuXHRcdFx0XHRcdFx0dGhpcy54U2NhbGVQYWRkaW5nTGVmdCA9IGZpcnN0Um90YXRlZCArIHRoaXMuZm9udFNpemUgLyAyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnhTY2FsZVBhZGRpbmdSaWdodCA9IHRoaXMuZm9udFNpemUvMjtcblxuXG5cdFx0XHRcdFx0dGhpcy54TGFiZWxSb3RhdGlvbisrO1xuXHRcdFx0XHRcdHRoaXMueExhYmVsV2lkdGggPSBjb3NSb3RhdGlvbiAqIG9yaWdpbmFsTGFiZWxXaWR0aDtcblxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLnhMYWJlbFJvdGF0aW9uID4gMCl7XG5cdFx0XHRcdFx0dGhpcy5lbmRQb2ludCAtPSBNYXRoLnNpbih0b1JhZGlhbnModGhpcy54TGFiZWxSb3RhdGlvbikpKm9yaWdpbmFsTGFiZWxXaWR0aCArIDM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGVsc2V7XG5cdFx0XHRcdHRoaXMueExhYmVsV2lkdGggPSAwO1xuXHRcdFx0XHR0aGlzLnhTY2FsZVBhZGRpbmdSaWdodCA9IHRoaXMucGFkZGluZztcblx0XHRcdFx0dGhpcy54U2NhbGVQYWRkaW5nTGVmdCA9IHRoaXMucGFkZGluZztcblx0XHRcdH1cblxuXHRcdH0sXG5cdFx0Ly8gTmVlZHMgdG8gYmUgb3ZlcmlkZGVuIGluIGVhY2ggQ2hhcnQgdHlwZVxuXHRcdC8vIE90aGVyd2lzZSB3ZSBuZWVkIHRvIHBhc3MgYWxsIHRoZSBkYXRhIGludG8gdGhlIHNjYWxlIGNsYXNzXG5cdFx0Y2FsY3VsYXRlWVJhbmdlOiBub29wLFxuXHRcdGRyYXdpbmdBcmVhOiBmdW5jdGlvbigpe1xuXHRcdFx0cmV0dXJuIHRoaXMuc3RhcnRQb2ludCAtIHRoaXMuZW5kUG9pbnQ7XG5cdFx0fSxcblx0XHRjYWxjdWxhdGVZIDogZnVuY3Rpb24odmFsdWUpe1xuXHRcdFx0dmFyIHNjYWxpbmdGYWN0b3IgPSB0aGlzLmRyYXdpbmdBcmVhKCkgLyAodGhpcy5taW4gLSB0aGlzLm1heCk7XG5cdFx0XHRyZXR1cm4gdGhpcy5lbmRQb2ludCAtIChzY2FsaW5nRmFjdG9yICogKHZhbHVlIC0gdGhpcy5taW4pKTtcblx0XHR9LFxuXHRcdGNhbGN1bGF0ZVggOiBmdW5jdGlvbihpbmRleCl7XG5cdFx0XHR2YXIgaXNSb3RhdGVkID0gKHRoaXMueExhYmVsUm90YXRpb24gPiAwKSxcblx0XHRcdFx0Ly8gaW5uZXJXaWR0aCA9ICh0aGlzLm9mZnNldEdyaWRMaW5lcykgPyB0aGlzLndpZHRoIC0gb2Zmc2V0TGVmdCAtIHRoaXMucGFkZGluZyA6IHRoaXMud2lkdGggLSAob2Zmc2V0TGVmdCArIGhhbGZMYWJlbFdpZHRoICogMikgLSB0aGlzLnBhZGRpbmcsXG5cdFx0XHRcdGlubmVyV2lkdGggPSB0aGlzLndpZHRoIC0gKHRoaXMueFNjYWxlUGFkZGluZ0xlZnQgKyB0aGlzLnhTY2FsZVBhZGRpbmdSaWdodCksXG5cdFx0XHRcdHZhbHVlV2lkdGggPSBpbm5lcldpZHRoL01hdGgubWF4KCh0aGlzLnZhbHVlc0NvdW50IC0gKCh0aGlzLm9mZnNldEdyaWRMaW5lcykgPyAwIDogMSkpLCAxKSxcblx0XHRcdFx0dmFsdWVPZmZzZXQgPSAodmFsdWVXaWR0aCAqIGluZGV4KSArIHRoaXMueFNjYWxlUGFkZGluZ0xlZnQ7XG5cblx0XHRcdGlmICh0aGlzLm9mZnNldEdyaWRMaW5lcyl7XG5cdFx0XHRcdHZhbHVlT2Zmc2V0ICs9ICh2YWx1ZVdpZHRoLzIpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZU9mZnNldCk7XG5cdFx0fSxcblx0XHR1cGRhdGUgOiBmdW5jdGlvbihuZXdQcm9wcyl7XG5cdFx0XHRoZWxwZXJzLmV4dGVuZCh0aGlzLCBuZXdQcm9wcyk7XG5cdFx0XHR0aGlzLmZpdCgpO1xuXHRcdH0sXG5cdFx0ZHJhdyA6IGZ1bmN0aW9uKCl7XG5cdFx0XHR2YXIgY3R4ID0gdGhpcy5jdHgsXG5cdFx0XHRcdHlMYWJlbEdhcCA9ICh0aGlzLmVuZFBvaW50IC0gdGhpcy5zdGFydFBvaW50KSAvIHRoaXMuc3RlcHMsXG5cdFx0XHRcdHhTdGFydCA9IE1hdGgucm91bmQodGhpcy54U2NhbGVQYWRkaW5nTGVmdCk7XG5cdFx0XHRpZiAodGhpcy5kaXNwbGF5KXtcblx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRoaXMudGV4dENvbG9yO1xuXHRcdFx0XHRjdHguZm9udCA9IHRoaXMuZm9udDtcblx0XHRcdFx0ZWFjaCh0aGlzLnlMYWJlbHMsZnVuY3Rpb24obGFiZWxTdHJpbmcsaW5kZXgpe1xuXHRcdFx0XHRcdHZhciB5TGFiZWxDZW50ZXIgPSB0aGlzLmVuZFBvaW50IC0gKHlMYWJlbEdhcCAqIGluZGV4KSxcblx0XHRcdFx0XHRcdGxpbmVQb3NpdGlvblkgPSBNYXRoLnJvdW5kKHlMYWJlbENlbnRlciksXG5cdFx0XHRcdFx0XHRkcmF3SG9yaXpvbnRhbExpbmUgPSB0aGlzLnNob3dIb3Jpem9udGFsTGluZXM7XG5cblx0XHRcdFx0XHRjdHgudGV4dEFsaWduID0gXCJyaWdodFwiO1xuXHRcdFx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSBcIm1pZGRsZVwiO1xuXHRcdFx0XHRcdGlmICh0aGlzLnNob3dMYWJlbHMpe1xuXHRcdFx0XHRcdFx0Y3R4LmZpbGxUZXh0KGxhYmVsU3RyaW5nLHhTdGFydCAtIDEwLHlMYWJlbENlbnRlcik7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gVGhpcyBpcyBYIGF4aXMsIHNvIGRyYXcgaXRcblx0XHRcdFx0XHRpZiAoaW5kZXggPT09IDAgJiYgIWRyYXdIb3Jpem9udGFsTGluZSl7XG5cdFx0XHRcdFx0XHRkcmF3SG9yaXpvbnRhbExpbmUgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChkcmF3SG9yaXpvbnRhbExpbmUpe1xuXHRcdFx0XHRcdFx0Y3R4LmJlZ2luUGF0aCgpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChpbmRleCA+IDApe1xuXHRcdFx0XHRcdFx0Ly8gVGhpcyBpcyBhIGdyaWQgbGluZSBpbiB0aGUgY2VudHJlLCBzbyBkcm9wIHRoYXRcblx0XHRcdFx0XHRcdGN0eC5saW5lV2lkdGggPSB0aGlzLmdyaWRMaW5lV2lkdGg7XG5cdFx0XHRcdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSB0aGlzLmdyaWRMaW5lQ29sb3I7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIFRoaXMgaXMgdGhlIGZpcnN0IGxpbmUgb24gdGhlIHNjYWxlXG5cdFx0XHRcdFx0XHRjdHgubGluZVdpZHRoID0gdGhpcy5saW5lV2lkdGg7XG5cdFx0XHRcdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSB0aGlzLmxpbmVDb2xvcjtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRsaW5lUG9zaXRpb25ZICs9IGhlbHBlcnMuYWxpYXNQaXhlbChjdHgubGluZVdpZHRoKTtcblxuXHRcdFx0XHRcdGlmKGRyYXdIb3Jpem9udGFsTGluZSl7XG5cdFx0XHRcdFx0XHRjdHgubW92ZVRvKHhTdGFydCwgbGluZVBvc2l0aW9uWSk7XG5cdFx0XHRcdFx0XHRjdHgubGluZVRvKHRoaXMud2lkdGgsIGxpbmVQb3NpdGlvblkpO1xuXHRcdFx0XHRcdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdFx0XHRcdFx0Y3R4LmNsb3NlUGF0aCgpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGN0eC5saW5lV2lkdGggPSB0aGlzLmxpbmVXaWR0aDtcblx0XHRcdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSB0aGlzLmxpbmVDb2xvcjtcblx0XHRcdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0XHRcdFx0Y3R4Lm1vdmVUbyh4U3RhcnQgLSA1LCBsaW5lUG9zaXRpb25ZKTtcblx0XHRcdFx0XHRjdHgubGluZVRvKHhTdGFydCwgbGluZVBvc2l0aW9uWSk7XG5cdFx0XHRcdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdFx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblxuXHRcdFx0XHR9LHRoaXMpO1xuXG5cdFx0XHRcdGVhY2godGhpcy54TGFiZWxzLGZ1bmN0aW9uKGxhYmVsLGluZGV4KXtcblx0XHRcdFx0XHR2YXIgeFBvcyA9IHRoaXMuY2FsY3VsYXRlWChpbmRleCkgKyBhbGlhc1BpeGVsKHRoaXMubGluZVdpZHRoKSxcblx0XHRcdFx0XHRcdC8vIENoZWNrIHRvIHNlZSBpZiBsaW5lL2JhciBoZXJlIGFuZCBkZWNpZGUgd2hlcmUgdG8gcGxhY2UgdGhlIGxpbmVcblx0XHRcdFx0XHRcdGxpbmVQb3MgPSB0aGlzLmNhbGN1bGF0ZVgoaW5kZXggLSAodGhpcy5vZmZzZXRHcmlkTGluZXMgPyAwLjUgOiAwKSkgKyBhbGlhc1BpeGVsKHRoaXMubGluZVdpZHRoKSxcblx0XHRcdFx0XHRcdGlzUm90YXRlZCA9ICh0aGlzLnhMYWJlbFJvdGF0aW9uID4gMCksXG5cdFx0XHRcdFx0XHRkcmF3VmVydGljYWxMaW5lID0gdGhpcy5zaG93VmVydGljYWxMaW5lcztcblxuXHRcdFx0XHRcdC8vIFRoaXMgaXMgWSBheGlzLCBzbyBkcmF3IGl0XG5cdFx0XHRcdFx0aWYgKGluZGV4ID09PSAwICYmICFkcmF3VmVydGljYWxMaW5lKXtcblx0XHRcdFx0XHRcdGRyYXdWZXJ0aWNhbExpbmUgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChkcmF3VmVydGljYWxMaW5lKXtcblx0XHRcdFx0XHRcdGN0eC5iZWdpblBhdGgoKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoaW5kZXggPiAwKXtcblx0XHRcdFx0XHRcdC8vIFRoaXMgaXMgYSBncmlkIGxpbmUgaW4gdGhlIGNlbnRyZSwgc28gZHJvcCB0aGF0XG5cdFx0XHRcdFx0XHRjdHgubGluZVdpZHRoID0gdGhpcy5ncmlkTGluZVdpZHRoO1xuXHRcdFx0XHRcdFx0Y3R4LnN0cm9rZVN0eWxlID0gdGhpcy5ncmlkTGluZUNvbG9yO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQvLyBUaGlzIGlzIHRoZSBmaXJzdCBsaW5lIG9uIHRoZSBzY2FsZVxuXHRcdFx0XHRcdFx0Y3R4LmxpbmVXaWR0aCA9IHRoaXMubGluZVdpZHRoO1xuXHRcdFx0XHRcdFx0Y3R4LnN0cm9rZVN0eWxlID0gdGhpcy5saW5lQ29sb3I7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKGRyYXdWZXJ0aWNhbExpbmUpe1xuXHRcdFx0XHRcdFx0Y3R4Lm1vdmVUbyhsaW5lUG9zLHRoaXMuZW5kUG9pbnQpO1xuXHRcdFx0XHRcdFx0Y3R4LmxpbmVUbyhsaW5lUG9zLHRoaXMuc3RhcnRQb2ludCAtIDMpO1xuXHRcdFx0XHRcdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdFx0XHRcdFx0Y3R4LmNsb3NlUGF0aCgpO1xuXHRcdFx0XHRcdH1cblxuXG5cdFx0XHRcdFx0Y3R4LmxpbmVXaWR0aCA9IHRoaXMubGluZVdpZHRoO1xuXHRcdFx0XHRcdGN0eC5zdHJva2VTdHlsZSA9IHRoaXMubGluZUNvbG9yO1xuXG5cblx0XHRcdFx0XHQvLyBTbWFsbCBsaW5lcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBiYXNlIGdyaWQgbGluZVxuXHRcdFx0XHRcdGN0eC5iZWdpblBhdGgoKTtcblx0XHRcdFx0XHRjdHgubW92ZVRvKGxpbmVQb3MsdGhpcy5lbmRQb2ludCk7XG5cdFx0XHRcdFx0Y3R4LmxpbmVUbyhsaW5lUG9zLHRoaXMuZW5kUG9pbnQgKyA1KTtcblx0XHRcdFx0XHRjdHguc3Ryb2tlKCk7XG5cdFx0XHRcdFx0Y3R4LmNsb3NlUGF0aCgpO1xuXG5cdFx0XHRcdFx0Y3R4LnNhdmUoKTtcblx0XHRcdFx0XHRjdHgudHJhbnNsYXRlKHhQb3MsKGlzUm90YXRlZCkgPyB0aGlzLmVuZFBvaW50ICsgMTIgOiB0aGlzLmVuZFBvaW50ICsgOCk7XG5cdFx0XHRcdFx0Y3R4LnJvdGF0ZSh0b1JhZGlhbnModGhpcy54TGFiZWxSb3RhdGlvbikqLTEpO1xuXHRcdFx0XHRcdGN0eC5mb250ID0gdGhpcy5mb250O1xuXHRcdFx0XHRcdGN0eC50ZXh0QWxpZ24gPSAoaXNSb3RhdGVkKSA/IFwicmlnaHRcIiA6IFwiY2VudGVyXCI7XG5cdFx0XHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9IChpc1JvdGF0ZWQpID8gXCJtaWRkbGVcIiA6IFwidG9wXCI7XG5cdFx0XHRcdFx0Y3R4LmZpbGxUZXh0KGxhYmVsLCAwLCAwKTtcblx0XHRcdFx0XHRjdHgucmVzdG9yZSgpO1xuXHRcdFx0XHR9LHRoaXMpO1xuXG5cdFx0XHR9XG5cdFx0fVxuXG5cdH0pO1xuXG5cdENoYXJ0LlJhZGlhbFNjYWxlID0gQ2hhcnQuRWxlbWVudC5leHRlbmQoe1xuXHRcdGluaXRpYWxpemU6IGZ1bmN0aW9uKCl7XG5cdFx0XHR0aGlzLnNpemUgPSBtaW4oW3RoaXMuaGVpZ2h0LCB0aGlzLndpZHRoXSk7XG5cdFx0XHR0aGlzLmRyYXdpbmdBcmVhID0gKHRoaXMuZGlzcGxheSkgPyAodGhpcy5zaXplLzIpIC0gKHRoaXMuZm9udFNpemUvMiArIHRoaXMuYmFja2Ryb3BQYWRkaW5nWSkgOiAodGhpcy5zaXplLzIpO1xuXHRcdH0sXG5cdFx0Y2FsY3VsYXRlQ2VudGVyT2Zmc2V0OiBmdW5jdGlvbih2YWx1ZSl7XG5cdFx0XHQvLyBUYWtlIGludG8gYWNjb3VudCBoYWxmIGZvbnQgc2l6ZSArIHRoZSB5UGFkZGluZyBvZiB0aGUgdG9wIHZhbHVlXG5cdFx0XHR2YXIgc2NhbGluZ0ZhY3RvciA9IHRoaXMuZHJhd2luZ0FyZWEgLyAodGhpcy5tYXggLSB0aGlzLm1pbik7XG5cblx0XHRcdHJldHVybiAodmFsdWUgLSB0aGlzLm1pbikgKiBzY2FsaW5nRmFjdG9yO1xuXHRcdH0sXG5cdFx0dXBkYXRlIDogZnVuY3Rpb24oKXtcblx0XHRcdGlmICghdGhpcy5saW5lQXJjKXtcblx0XHRcdFx0dGhpcy5zZXRTY2FsZVNpemUoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuZHJhd2luZ0FyZWEgPSAodGhpcy5kaXNwbGF5KSA/ICh0aGlzLnNpemUvMikgLSAodGhpcy5mb250U2l6ZS8yICsgdGhpcy5iYWNrZHJvcFBhZGRpbmdZKSA6ICh0aGlzLnNpemUvMik7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmJ1aWxkWUxhYmVscygpO1xuXHRcdH0sXG5cdFx0YnVpbGRZTGFiZWxzOiBmdW5jdGlvbigpe1xuXHRcdFx0dGhpcy55TGFiZWxzID0gW107XG5cblx0XHRcdHZhciBzdGVwRGVjaW1hbFBsYWNlcyA9IGdldERlY2ltYWxQbGFjZXModGhpcy5zdGVwVmFsdWUpO1xuXG5cdFx0XHRmb3IgKHZhciBpPTA7IGk8PXRoaXMuc3RlcHM7IGkrKyl7XG5cdFx0XHRcdHRoaXMueUxhYmVscy5wdXNoKHRlbXBsYXRlKHRoaXMudGVtcGxhdGVTdHJpbmcse3ZhbHVlOih0aGlzLm1pbiArIChpICogdGhpcy5zdGVwVmFsdWUpKS50b0ZpeGVkKHN0ZXBEZWNpbWFsUGxhY2VzKX0pKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGdldENpcmN1bWZlcmVuY2UgOiBmdW5jdGlvbigpe1xuXHRcdFx0cmV0dXJuICgoTWF0aC5QSSoyKSAvIHRoaXMudmFsdWVzQ291bnQpO1xuXHRcdH0sXG5cdFx0c2V0U2NhbGVTaXplOiBmdW5jdGlvbigpe1xuXHRcdFx0Lypcblx0XHRcdCAqIFJpZ2h0LCB0aGlzIGlzIHJlYWxseSBjb25mdXNpbmcgYW5kIHRoZXJlIGlzIGEgbG90IG9mIG1hdGhzIGdvaW5nIG9uIGhlcmVcblx0XHRcdCAqIFRoZSBnaXN0IG9mIHRoZSBwcm9ibGVtIGlzIGhlcmU6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL25ubmljay82OTZjYzljNTVmNGIwYmViOGZlOVxuXHRcdFx0ICpcblx0XHRcdCAqIFJlYWN0aW9uOiBodHRwczovL2RsLmRyb3Bib3h1c2VyY29udGVudC5jb20vdS8zNDYwMTM2My90b29tdWNoc2NpZW5jZS5naWZcblx0XHRcdCAqXG5cdFx0XHQgKiBTb2x1dGlvbjpcblx0XHRcdCAqXG5cdFx0XHQgKiBXZSBhc3N1bWUgdGhlIHJhZGl1cyBvZiB0aGUgcG9seWdvbiBpcyBoYWxmIHRoZSBzaXplIG9mIHRoZSBjYW52YXMgYXQgZmlyc3Rcblx0XHRcdCAqIGF0IGVhY2ggaW5kZXggd2UgY2hlY2sgaWYgdGhlIHRleHQgb3ZlcmxhcHMuXG5cdFx0XHQgKlxuXHRcdFx0ICogV2hlcmUgaXQgZG9lcywgd2Ugc3RvcmUgdGhhdCBhbmdsZSBhbmQgdGhhdCBpbmRleC5cblx0XHRcdCAqXG5cdFx0XHQgKiBBZnRlciBmaW5kaW5nIHRoZSBsYXJnZXN0IGluZGV4IGFuZCBhbmdsZSB3ZSBjYWxjdWxhdGUgaG93IG11Y2ggd2UgbmVlZCB0byByZW1vdmVcblx0XHRcdCAqIGZyb20gdGhlIHNoYXBlIHJhZGl1cyB0byBtb3ZlIHRoZSBwb2ludCBpbndhcmRzIGJ5IHRoYXQgeC5cblx0XHRcdCAqXG5cdFx0XHQgKiBXZSBhdmVyYWdlIHRoZSBsZWZ0IGFuZCByaWdodCBkaXN0YW5jZXMgdG8gZ2V0IHRoZSBtYXhpbXVtIHNoYXBlIHJhZGl1cyB0aGF0IGNhbiBmaXQgaW4gdGhlIGJveFxuXHRcdFx0ICogYWxvbmcgd2l0aCBsYWJlbHMuXG5cdFx0XHQgKlxuXHRcdFx0ICogT25jZSB3ZSBoYXZlIHRoYXQsIHdlIGNhbiBmaW5kIHRoZSBjZW50cmUgcG9pbnQgZm9yIHRoZSBjaGFydCwgYnkgdGFraW5nIHRoZSB4IHRleHQgcHJvdHJ1c2lvblxuXHRcdFx0ICogb24gZWFjaCBzaWRlLCByZW1vdmluZyB0aGF0IGZyb20gdGhlIHNpemUsIGhhbHZpbmcgaXQgYW5kIGFkZGluZyB0aGUgbGVmdCB4IHByb3RydXNpb24gd2lkdGguXG5cdFx0XHQgKlxuXHRcdFx0ICogVGhpcyB3aWxsIG1lYW4gd2UgaGF2ZSBhIHNoYXBlIGZpdHRlZCB0byB0aGUgY2FudmFzLCBhcyBsYXJnZSBhcyBpdCBjYW4gYmUgd2l0aCB0aGUgbGFiZWxzXG5cdFx0XHQgKiBhbmQgcG9zaXRpb24gaXQgaW4gdGhlIG1vc3Qgc3BhY2UgZWZmaWNpZW50IG1hbm5lclxuXHRcdFx0ICpcblx0XHRcdCAqIGh0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS91LzM0NjAxMzYzL3llYWhzY2llbmNlLmdpZlxuXHRcdFx0ICovXG5cblxuXHRcdFx0Ly8gR2V0IG1heGltdW0gcmFkaXVzIG9mIHRoZSBwb2x5Z29uLiBFaXRoZXIgaGFsZiB0aGUgaGVpZ2h0IChtaW51cyB0aGUgdGV4dCB3aWR0aCkgb3IgaGFsZiB0aGUgd2lkdGguXG5cdFx0XHQvLyBVc2UgdGhpcyB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCArIGNoYW5nZS4gLSBNYWtlIHN1cmUgTC9SIHByb3RydXNpb24gaXMgYXQgbGVhc3QgMCB0byBzdG9wIGlzc3VlcyB3aXRoIGNlbnRyZSBwb2ludHNcblx0XHRcdHZhciBsYXJnZXN0UG9zc2libGVSYWRpdXMgPSBtaW4oWyh0aGlzLmhlaWdodC8yIC0gdGhpcy5wb2ludExhYmVsRm9udFNpemUgLSA1KSwgdGhpcy53aWR0aC8yXSksXG5cdFx0XHRcdHBvaW50UG9zaXRpb24sXG5cdFx0XHRcdGksXG5cdFx0XHRcdHRleHRXaWR0aCxcblx0XHRcdFx0aGFsZlRleHRXaWR0aCxcblx0XHRcdFx0ZnVydGhlc3RSaWdodCA9IHRoaXMud2lkdGgsXG5cdFx0XHRcdGZ1cnRoZXN0UmlnaHRJbmRleCxcblx0XHRcdFx0ZnVydGhlc3RSaWdodEFuZ2xlLFxuXHRcdFx0XHRmdXJ0aGVzdExlZnQgPSAwLFxuXHRcdFx0XHRmdXJ0aGVzdExlZnRJbmRleCxcblx0XHRcdFx0ZnVydGhlc3RMZWZ0QW5nbGUsXG5cdFx0XHRcdHhQcm90cnVzaW9uTGVmdCxcblx0XHRcdFx0eFByb3RydXNpb25SaWdodCxcblx0XHRcdFx0cmFkaXVzUmVkdWN0aW9uUmlnaHQsXG5cdFx0XHRcdHJhZGl1c1JlZHVjdGlvbkxlZnQsXG5cdFx0XHRcdG1heFdpZHRoUmFkaXVzO1xuXHRcdFx0dGhpcy5jdHguZm9udCA9IGZvbnRTdHJpbmcodGhpcy5wb2ludExhYmVsRm9udFNpemUsdGhpcy5wb2ludExhYmVsRm9udFN0eWxlLHRoaXMucG9pbnRMYWJlbEZvbnRGYW1pbHkpO1xuXHRcdFx0Zm9yIChpPTA7aTx0aGlzLnZhbHVlc0NvdW50O2krKyl7XG5cdFx0XHRcdC8vIDVweCB0byBzcGFjZSB0aGUgdGV4dCBzbGlnaHRseSBvdXQgLSBzaW1pbGFyIHRvIHdoYXQgd2UgZG8gaW4gdGhlIGRyYXcgZnVuY3Rpb24uXG5cdFx0XHRcdHBvaW50UG9zaXRpb24gPSB0aGlzLmdldFBvaW50UG9zaXRpb24oaSwgbGFyZ2VzdFBvc3NpYmxlUmFkaXVzKTtcblx0XHRcdFx0dGV4dFdpZHRoID0gdGhpcy5jdHgubWVhc3VyZVRleHQodGVtcGxhdGUodGhpcy50ZW1wbGF0ZVN0cmluZywgeyB2YWx1ZTogdGhpcy5sYWJlbHNbaV0gfSkpLndpZHRoICsgNTtcblx0XHRcdFx0aWYgKGkgPT09IDAgfHwgaSA9PT0gdGhpcy52YWx1ZXNDb3VudC8yKXtcblx0XHRcdFx0XHQvLyBJZiB3ZSdyZSBhdCBpbmRleCB6ZXJvLCBvciBleGFjdGx5IHRoZSBtaWRkbGUsIHdlJ3JlIGF0IGV4YWN0bHkgdGhlIHRvcC9ib3R0b21cblx0XHRcdFx0XHQvLyBvZiB0aGUgcmFkYXIgY2hhcnQsIHNvIHRleHQgd2lsbCBiZSBhbGlnbmVkIGNlbnRyYWxseSwgc28gd2UnbGwgaGFsZiBpdCBhbmQgY29tcGFyZVxuXHRcdFx0XHRcdC8vIHcvbGVmdCBhbmQgcmlnaHQgdGV4dCBzaXplc1xuXHRcdFx0XHRcdGhhbGZUZXh0V2lkdGggPSB0ZXh0V2lkdGgvMjtcblx0XHRcdFx0XHRpZiAocG9pbnRQb3NpdGlvbi54ICsgaGFsZlRleHRXaWR0aCA+IGZ1cnRoZXN0UmlnaHQpIHtcblx0XHRcdFx0XHRcdGZ1cnRoZXN0UmlnaHQgPSBwb2ludFBvc2l0aW9uLnggKyBoYWxmVGV4dFdpZHRoO1xuXHRcdFx0XHRcdFx0ZnVydGhlc3RSaWdodEluZGV4ID0gaTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHBvaW50UG9zaXRpb24ueCAtIGhhbGZUZXh0V2lkdGggPCBmdXJ0aGVzdExlZnQpIHtcblx0XHRcdFx0XHRcdGZ1cnRoZXN0TGVmdCA9IHBvaW50UG9zaXRpb24ueCAtIGhhbGZUZXh0V2lkdGg7XG5cdFx0XHRcdFx0XHRmdXJ0aGVzdExlZnRJbmRleCA9IGk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGkgPCB0aGlzLnZhbHVlc0NvdW50LzIpIHtcblx0XHRcdFx0XHQvLyBMZXNzIHRoYW4gaGFsZiB0aGUgdmFsdWVzIG1lYW5zIHdlJ2xsIGxlZnQgYWxpZ24gdGhlIHRleHRcblx0XHRcdFx0XHRpZiAocG9pbnRQb3NpdGlvbi54ICsgdGV4dFdpZHRoID4gZnVydGhlc3RSaWdodCkge1xuXHRcdFx0XHRcdFx0ZnVydGhlc3RSaWdodCA9IHBvaW50UG9zaXRpb24ueCArIHRleHRXaWR0aDtcblx0XHRcdFx0XHRcdGZ1cnRoZXN0UmlnaHRJbmRleCA9IGk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2UgaWYgKGkgPiB0aGlzLnZhbHVlc0NvdW50LzIpe1xuXHRcdFx0XHRcdC8vIE1vcmUgdGhhbiBoYWxmIHRoZSB2YWx1ZXMgbWVhbnMgd2UnbGwgcmlnaHQgYWxpZ24gdGhlIHRleHRcblx0XHRcdFx0XHRpZiAocG9pbnRQb3NpdGlvbi54IC0gdGV4dFdpZHRoIDwgZnVydGhlc3RMZWZ0KSB7XG5cdFx0XHRcdFx0XHRmdXJ0aGVzdExlZnQgPSBwb2ludFBvc2l0aW9uLnggLSB0ZXh0V2lkdGg7XG5cdFx0XHRcdFx0XHRmdXJ0aGVzdExlZnRJbmRleCA9IGk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHhQcm90cnVzaW9uTGVmdCA9IGZ1cnRoZXN0TGVmdDtcblxuXHRcdFx0eFByb3RydXNpb25SaWdodCA9IE1hdGguY2VpbChmdXJ0aGVzdFJpZ2h0IC0gdGhpcy53aWR0aCk7XG5cblx0XHRcdGZ1cnRoZXN0UmlnaHRBbmdsZSA9IHRoaXMuZ2V0SW5kZXhBbmdsZShmdXJ0aGVzdFJpZ2h0SW5kZXgpO1xuXG5cdFx0XHRmdXJ0aGVzdExlZnRBbmdsZSA9IHRoaXMuZ2V0SW5kZXhBbmdsZShmdXJ0aGVzdExlZnRJbmRleCk7XG5cblx0XHRcdHJhZGl1c1JlZHVjdGlvblJpZ2h0ID0geFByb3RydXNpb25SaWdodCAvIE1hdGguc2luKGZ1cnRoZXN0UmlnaHRBbmdsZSArIE1hdGguUEkvMik7XG5cblx0XHRcdHJhZGl1c1JlZHVjdGlvbkxlZnQgPSB4UHJvdHJ1c2lvbkxlZnQgLyBNYXRoLnNpbihmdXJ0aGVzdExlZnRBbmdsZSArIE1hdGguUEkvMik7XG5cblx0XHRcdC8vIEVuc3VyZSB3ZSBhY3R1YWxseSBuZWVkIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgY2hhcnRcblx0XHRcdHJhZGl1c1JlZHVjdGlvblJpZ2h0ID0gKGlzTnVtYmVyKHJhZGl1c1JlZHVjdGlvblJpZ2h0KSkgPyByYWRpdXNSZWR1Y3Rpb25SaWdodCA6IDA7XG5cdFx0XHRyYWRpdXNSZWR1Y3Rpb25MZWZ0ID0gKGlzTnVtYmVyKHJhZGl1c1JlZHVjdGlvbkxlZnQpKSA/IHJhZGl1c1JlZHVjdGlvbkxlZnQgOiAwO1xuXG5cdFx0XHR0aGlzLmRyYXdpbmdBcmVhID0gbGFyZ2VzdFBvc3NpYmxlUmFkaXVzIC0gKHJhZGl1c1JlZHVjdGlvbkxlZnQgKyByYWRpdXNSZWR1Y3Rpb25SaWdodCkvMjtcblxuXHRcdFx0Ly90aGlzLmRyYXdpbmdBcmVhID0gbWluKFttYXhXaWR0aFJhZGl1cywgKHRoaXMuaGVpZ2h0IC0gKDIgKiAodGhpcy5wb2ludExhYmVsRm9udFNpemUgKyA1KSkpLzJdKVxuXHRcdFx0dGhpcy5zZXRDZW50ZXJQb2ludChyYWRpdXNSZWR1Y3Rpb25MZWZ0LCByYWRpdXNSZWR1Y3Rpb25SaWdodCk7XG5cblx0XHR9LFxuXHRcdHNldENlbnRlclBvaW50OiBmdW5jdGlvbihsZWZ0TW92ZW1lbnQsIHJpZ2h0TW92ZW1lbnQpe1xuXG5cdFx0XHR2YXIgbWF4UmlnaHQgPSB0aGlzLndpZHRoIC0gcmlnaHRNb3ZlbWVudCAtIHRoaXMuZHJhd2luZ0FyZWEsXG5cdFx0XHRcdG1heExlZnQgPSBsZWZ0TW92ZW1lbnQgKyB0aGlzLmRyYXdpbmdBcmVhO1xuXG5cdFx0XHR0aGlzLnhDZW50ZXIgPSAobWF4TGVmdCArIG1heFJpZ2h0KS8yO1xuXHRcdFx0Ly8gQWx3YXlzIHZlcnRpY2FsbHkgaW4gdGhlIGNlbnRyZSBhcyB0aGUgdGV4dCBoZWlnaHQgZG9lc24ndCBjaGFuZ2Vcblx0XHRcdHRoaXMueUNlbnRlciA9ICh0aGlzLmhlaWdodC8yKTtcblx0XHR9LFxuXG5cdFx0Z2V0SW5kZXhBbmdsZSA6IGZ1bmN0aW9uKGluZGV4KXtcblx0XHRcdHZhciBhbmdsZU11bHRpcGxpZXIgPSAoTWF0aC5QSSAqIDIpIC8gdGhpcy52YWx1ZXNDb3VudDtcblx0XHRcdC8vIFN0YXJ0IGZyb20gdGhlIHRvcCBpbnN0ZWFkIG9mIHJpZ2h0LCBzbyByZW1vdmUgYSBxdWFydGVyIG9mIHRoZSBjaXJjbGVcblxuXHRcdFx0cmV0dXJuIGluZGV4ICogYW5nbGVNdWx0aXBsaWVyIC0gKE1hdGguUEkvMik7XG5cdFx0fSxcblx0XHRnZXRQb2ludFBvc2l0aW9uIDogZnVuY3Rpb24oaW5kZXgsIGRpc3RhbmNlRnJvbUNlbnRlcil7XG5cdFx0XHR2YXIgdGhpc0FuZ2xlID0gdGhpcy5nZXRJbmRleEFuZ2xlKGluZGV4KTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHggOiAoTWF0aC5jb3ModGhpc0FuZ2xlKSAqIGRpc3RhbmNlRnJvbUNlbnRlcikgKyB0aGlzLnhDZW50ZXIsXG5cdFx0XHRcdHkgOiAoTWF0aC5zaW4odGhpc0FuZ2xlKSAqIGRpc3RhbmNlRnJvbUNlbnRlcikgKyB0aGlzLnlDZW50ZXJcblx0XHRcdH07XG5cdFx0fSxcblx0XHRkcmF3OiBmdW5jdGlvbigpe1xuXHRcdFx0aWYgKHRoaXMuZGlzcGxheSl7XG5cdFx0XHRcdHZhciBjdHggPSB0aGlzLmN0eDtcblx0XHRcdFx0ZWFjaCh0aGlzLnlMYWJlbHMsIGZ1bmN0aW9uKGxhYmVsLCBpbmRleCl7XG5cdFx0XHRcdFx0Ly8gRG9uJ3QgZHJhdyBhIGNlbnRyZSB2YWx1ZVxuXHRcdFx0XHRcdGlmIChpbmRleCA+IDApe1xuXHRcdFx0XHRcdFx0dmFyIHlDZW50ZXJPZmZzZXQgPSBpbmRleCAqICh0aGlzLmRyYXdpbmdBcmVhL3RoaXMuc3RlcHMpLFxuXHRcdFx0XHRcdFx0XHR5SGVpZ2h0ID0gdGhpcy55Q2VudGVyIC0geUNlbnRlck9mZnNldCxcblx0XHRcdFx0XHRcdFx0cG9pbnRQb3NpdGlvbjtcblxuXHRcdFx0XHRcdFx0Ly8gRHJhdyBjaXJjdWxhciBsaW5lcyBhcm91bmQgdGhlIHNjYWxlXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5saW5lV2lkdGggPiAwKXtcblx0XHRcdFx0XHRcdFx0Y3R4LnN0cm9rZVN0eWxlID0gdGhpcy5saW5lQ29sb3I7XG5cdFx0XHRcdFx0XHRcdGN0eC5saW5lV2lkdGggPSB0aGlzLmxpbmVXaWR0aDtcblxuXHRcdFx0XHRcdFx0XHRpZih0aGlzLmxpbmVBcmMpe1xuXHRcdFx0XHRcdFx0XHRcdGN0eC5iZWdpblBhdGgoKTtcblx0XHRcdFx0XHRcdFx0XHRjdHguYXJjKHRoaXMueENlbnRlciwgdGhpcy55Q2VudGVyLCB5Q2VudGVyT2Zmc2V0LCAwLCBNYXRoLlBJKjIpO1xuXHRcdFx0XHRcdFx0XHRcdGN0eC5jbG9zZVBhdGgoKTtcblx0XHRcdFx0XHRcdFx0XHRjdHguc3Ryb2tlKCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaT0wO2k8dGhpcy52YWx1ZXNDb3VudDtpKyspXG5cdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0cG9pbnRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9pbnRQb3NpdGlvbihpLCB0aGlzLmNhbGN1bGF0ZUNlbnRlck9mZnNldCh0aGlzLm1pbiArIChpbmRleCAqIHRoaXMuc3RlcFZhbHVlKSkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGkgPT09IDApe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjdHgubW92ZVRvKHBvaW50UG9zaXRpb24ueCwgcG9pbnRQb3NpdGlvbi55KTtcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGN0eC5saW5lVG8ocG9pbnRQb3NpdGlvbi54LCBwb2ludFBvc2l0aW9uLnkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRjdHguY2xvc2VQYXRoKCk7XG5cdFx0XHRcdFx0XHRcdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZih0aGlzLnNob3dMYWJlbHMpe1xuXHRcdFx0XHRcdFx0XHRjdHguZm9udCA9IGZvbnRTdHJpbmcodGhpcy5mb250U2l6ZSx0aGlzLmZvbnRTdHlsZSx0aGlzLmZvbnRGYW1pbHkpO1xuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5zaG93TGFiZWxCYWNrZHJvcCl7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGxhYmVsV2lkdGggPSBjdHgubWVhc3VyZVRleHQobGFiZWwpLndpZHRoO1xuXHRcdFx0XHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSB0aGlzLmJhY2tkcm9wQ29sb3I7XG5cdFx0XHRcdFx0XHRcdFx0Y3R4LmZpbGxSZWN0KFxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy54Q2VudGVyIC0gbGFiZWxXaWR0aC8yIC0gdGhpcy5iYWNrZHJvcFBhZGRpbmdYLFxuXHRcdFx0XHRcdFx0XHRcdFx0eUhlaWdodCAtIHRoaXMuZm9udFNpemUvMiAtIHRoaXMuYmFja2Ryb3BQYWRkaW5nWSxcblx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsV2lkdGggKyB0aGlzLmJhY2tkcm9wUGFkZGluZ1gqMixcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZm9udFNpemUgKyB0aGlzLmJhY2tkcm9wUGFkZGluZ1kqMlxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Y3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdFx0XHRcdFx0XHRjdHgudGV4dEJhc2VsaW5lID0gXCJtaWRkbGVcIjtcblx0XHRcdFx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRoaXMuZm9udENvbG9yO1xuXHRcdFx0XHRcdFx0XHRjdHguZmlsbFRleHQobGFiZWwsIHRoaXMueENlbnRlciwgeUhlaWdodCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCB0aGlzKTtcblxuXHRcdFx0XHRpZiAoIXRoaXMubGluZUFyYyl7XG5cdFx0XHRcdFx0Y3R4LmxpbmVXaWR0aCA9IHRoaXMuYW5nbGVMaW5lV2lkdGg7XG5cdFx0XHRcdFx0Y3R4LnN0cm9rZVN0eWxlID0gdGhpcy5hbmdsZUxpbmVDb2xvcjtcblx0XHRcdFx0XHRmb3IgKHZhciBpID0gdGhpcy52YWx1ZXNDb3VudCAtIDE7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRcdFx0XHRpZiAodGhpcy5hbmdsZUxpbmVXaWR0aCA+IDApe1xuXHRcdFx0XHRcdFx0XHR2YXIgb3V0ZXJQb3NpdGlvbiA9IHRoaXMuZ2V0UG9pbnRQb3NpdGlvbihpLCB0aGlzLmNhbGN1bGF0ZUNlbnRlck9mZnNldCh0aGlzLm1heCkpO1xuXHRcdFx0XHRcdFx0XHRjdHguYmVnaW5QYXRoKCk7XG5cdFx0XHRcdFx0XHRcdGN0eC5tb3ZlVG8odGhpcy54Q2VudGVyLCB0aGlzLnlDZW50ZXIpO1xuXHRcdFx0XHRcdFx0XHRjdHgubGluZVRvKG91dGVyUG9zaXRpb24ueCwgb3V0ZXJQb3NpdGlvbi55KTtcblx0XHRcdFx0XHRcdFx0Y3R4LnN0cm9rZSgpO1xuXHRcdFx0XHRcdFx0XHRjdHguY2xvc2VQYXRoKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBFeHRyYSAzcHggb3V0IGZvciBzb21lIGxhYmVsIHNwYWNpbmdcblx0XHRcdFx0XHRcdHZhciBwb2ludExhYmVsUG9zaXRpb24gPSB0aGlzLmdldFBvaW50UG9zaXRpb24oaSwgdGhpcy5jYWxjdWxhdGVDZW50ZXJPZmZzZXQodGhpcy5tYXgpICsgNSk7XG5cdFx0XHRcdFx0XHRjdHguZm9udCA9IGZvbnRTdHJpbmcodGhpcy5wb2ludExhYmVsRm9udFNpemUsdGhpcy5wb2ludExhYmVsRm9udFN0eWxlLHRoaXMucG9pbnRMYWJlbEZvbnRGYW1pbHkpO1xuXHRcdFx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IHRoaXMucG9pbnRMYWJlbEZvbnRDb2xvcjtcblxuXHRcdFx0XHRcdFx0dmFyIGxhYmVsc0NvdW50ID0gdGhpcy5sYWJlbHMubGVuZ3RoLFxuXHRcdFx0XHRcdFx0XHRoYWxmTGFiZWxzQ291bnQgPSB0aGlzLmxhYmVscy5sZW5ndGgvMixcblx0XHRcdFx0XHRcdFx0cXVhcnRlckxhYmVsc0NvdW50ID0gaGFsZkxhYmVsc0NvdW50LzIsXG5cdFx0XHRcdFx0XHRcdHVwcGVySGFsZiA9IChpIDwgcXVhcnRlckxhYmVsc0NvdW50IHx8IGkgPiBsYWJlbHNDb3VudCAtIHF1YXJ0ZXJMYWJlbHNDb3VudCksXG5cdFx0XHRcdFx0XHRcdGV4YWN0UXVhcnRlciA9IChpID09PSBxdWFydGVyTGFiZWxzQ291bnQgfHwgaSA9PT0gbGFiZWxzQ291bnQgLSBxdWFydGVyTGFiZWxzQ291bnQpO1xuXHRcdFx0XHRcdFx0aWYgKGkgPT09IDApe1xuXHRcdFx0XHRcdFx0XHRjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYoaSA9PT0gaGFsZkxhYmVsc0NvdW50KXtcblx0XHRcdFx0XHRcdFx0Y3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChpIDwgaGFsZkxhYmVsc0NvdW50KXtcblx0XHRcdFx0XHRcdFx0Y3R4LnRleHRBbGlnbiA9ICdsZWZ0Jztcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGN0eC50ZXh0QWxpZ24gPSAncmlnaHQnO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBTZXQgdGhlIGNvcnJlY3QgdGV4dCBiYXNlbGluZSBiYXNlZCBvbiBvdXRlciBwb3NpdGlvbmluZ1xuXHRcdFx0XHRcdFx0aWYgKGV4YWN0UXVhcnRlcil7XG5cdFx0XHRcdFx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodXBwZXJIYWxmKXtcblx0XHRcdFx0XHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9ICdib3R0b20nO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRjdHguZmlsbFRleHQodGhpcy5sYWJlbHNbaV0sIHBvaW50TGFiZWxQb3NpdGlvbi54LCBwb2ludExhYmVsUG9zaXRpb24ueSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblxuXHQvLyBBdHRhY2ggZ2xvYmFsIGV2ZW50IHRvIHJlc2l6ZSBlYWNoIGNoYXJ0IGluc3RhbmNlIHdoZW4gdGhlIGJyb3dzZXIgcmVzaXplc1xuXHRoZWxwZXJzLmFkZEV2ZW50KHdpbmRvdywgXCJyZXNpemVcIiwgKGZ1bmN0aW9uKCl7XG5cdFx0Ly8gQmFzaWMgZGVib3VuY2Ugb2YgcmVzaXplIGZ1bmN0aW9uIHNvIGl0IGRvZXNuJ3QgaHVydCBwZXJmb3JtYW5jZSB3aGVuIHJlc2l6aW5nIGJyb3dzZXIuXG5cdFx0dmFyIHRpbWVvdXQ7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uKCl7XG5cdFx0XHRjbGVhclRpbWVvdXQodGltZW91dCk7XG5cdFx0XHR0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRlYWNoKENoYXJ0Lmluc3RhbmNlcyxmdW5jdGlvbihpbnN0YW5jZSl7XG5cdFx0XHRcdFx0Ly8gSWYgdGhlIHJlc3BvbnNpdmUgZmxhZyBpcyBzZXQgaW4gdGhlIGNoYXJ0IGluc3RhbmNlIGNvbmZpZ1xuXHRcdFx0XHRcdC8vIENhc2NhZGUgdGhlIHJlc2l6ZSBldmVudCBkb3duIHRvIHRoZSBjaGFydC5cblx0XHRcdFx0XHRpZiAoaW5zdGFuY2Uub3B0aW9ucy5yZXNwb25zaXZlKXtcblx0XHRcdFx0XHRcdGluc3RhbmNlLnJlc2l6ZShpbnN0YW5jZS5yZW5kZXIsIHRydWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LCA1MCk7XG5cdFx0fTtcblx0fSkoKSk7XG5cblxuXHRpZiAoYW1kKSB7XG5cdFx0ZGVmaW5lKGZ1bmN0aW9uKCl7XG5cdFx0XHRyZXR1cm4gQ2hhcnQ7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRtb2R1bGUuZXhwb3J0cyA9IENoYXJ0O1xuXHR9XG5cblx0cm9vdC5DaGFydCA9IENoYXJ0O1xuXG5cdENoYXJ0Lm5vQ29uZmxpY3QgPSBmdW5jdGlvbigpe1xuXHRcdHJvb3QuQ2hhcnQgPSBwcmV2aW91cztcblx0XHRyZXR1cm4gQ2hhcnQ7XG5cdH07XG5cbn0pLmNhbGwodGhpcyk7XG5cbihmdW5jdGlvbigpe1xuXHRcInVzZSBzdHJpY3RcIjtcblxuXHR2YXIgcm9vdCA9IHRoaXMsXG5cdFx0Q2hhcnQgPSByb290LkNoYXJ0LFxuXHRcdGhlbHBlcnMgPSBDaGFydC5oZWxwZXJzO1xuXG5cblx0dmFyIGRlZmF1bHRDb25maWcgPSB7XG5cdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0aGUgc2NhbGUgc2hvdWxkIHN0YXJ0IGF0IHplcm8sIG9yIGFuIG9yZGVyIG9mIG1hZ25pdHVkZSBkb3duIGZyb20gdGhlIGxvd2VzdCB2YWx1ZVxuXHRcdHNjYWxlQmVnaW5BdFplcm8gOiB0cnVlLFxuXG5cdFx0Ly9Cb29sZWFuIC0gV2hldGhlciBncmlkIGxpbmVzIGFyZSBzaG93biBhY3Jvc3MgdGhlIGNoYXJ0XG5cdFx0c2NhbGVTaG93R3JpZExpbmVzIDogdHJ1ZSxcblxuXHRcdC8vU3RyaW5nIC0gQ29sb3VyIG9mIHRoZSBncmlkIGxpbmVzXG5cdFx0c2NhbGVHcmlkTGluZUNvbG9yIDogXCJyZ2JhKDAsMCwwLC4wNSlcIixcblxuXHRcdC8vTnVtYmVyIC0gV2lkdGggb2YgdGhlIGdyaWQgbGluZXNcblx0XHRzY2FsZUdyaWRMaW5lV2lkdGggOiAxLFxuXG5cdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0byBzaG93IGhvcml6b250YWwgbGluZXMgKGV4Y2VwdCBYIGF4aXMpXG5cdFx0c2NhbGVTaG93SG9yaXpvbnRhbExpbmVzOiB0cnVlLFxuXG5cdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0byBzaG93IHZlcnRpY2FsIGxpbmVzIChleGNlcHQgWSBheGlzKVxuXHRcdHNjYWxlU2hvd1ZlcnRpY2FsTGluZXM6IHRydWUsXG5cblx0XHQvL0Jvb2xlYW4gLSBJZiB0aGVyZSBpcyBhIHN0cm9rZSBvbiBlYWNoIGJhclxuXHRcdGJhclNob3dTdHJva2UgOiB0cnVlLFxuXG5cdFx0Ly9OdW1iZXIgLSBQaXhlbCB3aWR0aCBvZiB0aGUgYmFyIHN0cm9rZVxuXHRcdGJhclN0cm9rZVdpZHRoIDogMixcblxuXHRcdC8vTnVtYmVyIC0gU3BhY2luZyBiZXR3ZWVuIGVhY2ggb2YgdGhlIFggdmFsdWUgc2V0c1xuXHRcdGJhclZhbHVlU3BhY2luZyA6IDUsXG5cblx0XHQvL051bWJlciAtIFNwYWNpbmcgYmV0d2VlbiBkYXRhIHNldHMgd2l0aGluIFggdmFsdWVzXG5cdFx0YmFyRGF0YXNldFNwYWNpbmcgOiAxLFxuXG5cdFx0Ly9TdHJpbmcgLSBBIGxlZ2VuZCB0ZW1wbGF0ZVxuXHRcdGxlZ2VuZFRlbXBsYXRlIDogXCI8dWwgY2xhc3M9XFxcIjwlPW5hbWUudG9Mb3dlckNhc2UoKSU+LWxlZ2VuZFxcXCI+PCUgZm9yICh2YXIgaT0wOyBpPGRhdGFzZXRzLmxlbmd0aDsgaSsrKXslPjxsaT48c3BhbiBzdHlsZT1cXFwiYmFja2dyb3VuZC1jb2xvcjo8JT1kYXRhc2V0c1tpXS5maWxsQ29sb3IlPlxcXCI+PC9zcGFuPjwlaWYoZGF0YXNldHNbaV0ubGFiZWwpeyU+PCU9ZGF0YXNldHNbaV0ubGFiZWwlPjwlfSU+PC9saT48JX0lPjwvdWw+XCJcblxuXHR9O1xuXG5cblx0Q2hhcnQuVHlwZS5leHRlbmQoe1xuXHRcdG5hbWU6IFwiQmFyXCIsXG5cdFx0ZGVmYXVsdHMgOiBkZWZhdWx0Q29uZmlnLFxuXHRcdGluaXRpYWxpemU6ICBmdW5jdGlvbihkYXRhKXtcblxuXHRcdFx0Ly9FeHBvc2Ugb3B0aW9ucyBhcyBhIHNjb3BlIHZhcmlhYmxlIGhlcmUgc28gd2UgY2FuIGFjY2VzcyBpdCBpbiB0aGUgU2NhbGVDbGFzc1xuXHRcdFx0dmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cblx0XHRcdHRoaXMuU2NhbGVDbGFzcyA9IENoYXJ0LlNjYWxlLmV4dGVuZCh7XG5cdFx0XHRcdG9mZnNldEdyaWRMaW5lcyA6IHRydWUsXG5cdFx0XHRcdGNhbGN1bGF0ZUJhclggOiBmdW5jdGlvbihkYXRhc2V0Q291bnQsIGRhdGFzZXRJbmRleCwgYmFySW5kZXgpe1xuXHRcdFx0XHRcdC8vUmV1c2FibGUgbWV0aG9kIGZvciBjYWxjdWxhdGluZyB0aGUgeFBvc2l0aW9uIG9mIGEgZ2l2ZW4gYmFyIGJhc2VkIG9uIGRhdGFzZXRJbmRleCAmIHdpZHRoIG9mIHRoZSBiYXJcblx0XHRcdFx0XHR2YXIgeFdpZHRoID0gdGhpcy5jYWxjdWxhdGVCYXNlV2lkdGgoKSxcblx0XHRcdFx0XHRcdHhBYnNvbHV0ZSA9IHRoaXMuY2FsY3VsYXRlWChiYXJJbmRleCkgLSAoeFdpZHRoLzIpLFxuXHRcdFx0XHRcdFx0YmFyV2lkdGggPSB0aGlzLmNhbGN1bGF0ZUJhcldpZHRoKGRhdGFzZXRDb3VudCk7XG5cblx0XHRcdFx0XHRyZXR1cm4geEFic29sdXRlICsgKGJhcldpZHRoICogZGF0YXNldEluZGV4KSArIChkYXRhc2V0SW5kZXggKiBvcHRpb25zLmJhckRhdGFzZXRTcGFjaW5nKSArIGJhcldpZHRoLzI7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGNhbGN1bGF0ZUJhc2VXaWR0aCA6IGZ1bmN0aW9uKCl7XG5cdFx0XHRcdFx0cmV0dXJuICh0aGlzLmNhbGN1bGF0ZVgoMSkgLSB0aGlzLmNhbGN1bGF0ZVgoMCkpIC0gKDIqb3B0aW9ucy5iYXJWYWx1ZVNwYWNpbmcpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRjYWxjdWxhdGVCYXJXaWR0aCA6IGZ1bmN0aW9uKGRhdGFzZXRDb3VudCl7XG5cdFx0XHRcdFx0Ly9UaGUgcGFkZGluZyBiZXR3ZWVuIGRhdGFzZXRzIGlzIHRvIHRoZSByaWdodCBvZiBlYWNoIGJhciwgcHJvdmlkaW5nIHRoYXQgdGhlcmUgYXJlIG1vcmUgdGhhbiAxIGRhdGFzZXRcblx0XHRcdFx0XHR2YXIgYmFzZVdpZHRoID0gdGhpcy5jYWxjdWxhdGVCYXNlV2lkdGgoKSAtICgoZGF0YXNldENvdW50IC0gMSkgKiBvcHRpb25zLmJhckRhdGFzZXRTcGFjaW5nKTtcblxuXHRcdFx0XHRcdHJldHVybiAoYmFzZVdpZHRoIC8gZGF0YXNldENvdW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuZGF0YXNldHMgPSBbXTtcblxuXHRcdFx0Ly9TZXQgdXAgdG9vbHRpcCBldmVudHMgb24gdGhlIGNoYXJ0XG5cdFx0XHRpZiAodGhpcy5vcHRpb25zLnNob3dUb29sdGlwcyl7XG5cdFx0XHRcdGhlbHBlcnMuYmluZEV2ZW50cyh0aGlzLCB0aGlzLm9wdGlvbnMudG9vbHRpcEV2ZW50cywgZnVuY3Rpb24oZXZ0KXtcblx0XHRcdFx0XHR2YXIgYWN0aXZlQmFycyA9IChldnQudHlwZSAhPT0gJ21vdXNlb3V0JykgPyB0aGlzLmdldEJhcnNBdEV2ZW50KGV2dCkgOiBbXTtcblxuXHRcdFx0XHRcdHRoaXMuZWFjaEJhcnMoZnVuY3Rpb24oYmFyKXtcblx0XHRcdFx0XHRcdGJhci5yZXN0b3JlKFsnZmlsbENvbG9yJywgJ3N0cm9rZUNvbG9yJ10pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGhlbHBlcnMuZWFjaChhY3RpdmVCYXJzLCBmdW5jdGlvbihhY3RpdmVCYXIpe1xuXHRcdFx0XHRcdFx0YWN0aXZlQmFyLmZpbGxDb2xvciA9IGFjdGl2ZUJhci5oaWdobGlnaHRGaWxsO1xuXHRcdFx0XHRcdFx0YWN0aXZlQmFyLnN0cm9rZUNvbG9yID0gYWN0aXZlQmFyLmhpZ2hsaWdodFN0cm9rZTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnNob3dUb29sdGlwKGFjdGl2ZUJhcnMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0Ly9EZWNsYXJlIHRoZSBleHRlbnNpb24gb2YgdGhlIGRlZmF1bHQgcG9pbnQsIHRvIGNhdGVyIGZvciB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gdG8gdGhlIGNvbnN0cnVjdG9yXG5cdFx0XHR0aGlzLkJhckNsYXNzID0gQ2hhcnQuUmVjdGFuZ2xlLmV4dGVuZCh7XG5cdFx0XHRcdHN0cm9rZVdpZHRoIDogdGhpcy5vcHRpb25zLmJhclN0cm9rZVdpZHRoLFxuXHRcdFx0XHRzaG93U3Ryb2tlIDogdGhpcy5vcHRpb25zLmJhclNob3dTdHJva2UsXG5cdFx0XHRcdGN0eCA6IHRoaXMuY2hhcnQuY3R4XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly9JdGVyYXRlIHRocm91Z2ggZWFjaCBvZiB0aGUgZGF0YXNldHMsIGFuZCBidWlsZCB0aGlzIGludG8gYSBwcm9wZXJ0eSBvZiB0aGUgY2hhcnRcblx0XHRcdGhlbHBlcnMuZWFjaChkYXRhLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQsZGF0YXNldEluZGV4KXtcblxuXHRcdFx0XHR2YXIgZGF0YXNldE9iamVjdCA9IHtcblx0XHRcdFx0XHRsYWJlbCA6IGRhdGFzZXQubGFiZWwgfHwgbnVsbCxcblx0XHRcdFx0XHRmaWxsQ29sb3IgOiBkYXRhc2V0LmZpbGxDb2xvcixcblx0XHRcdFx0XHRzdHJva2VDb2xvciA6IGRhdGFzZXQuc3Ryb2tlQ29sb3IsXG5cdFx0XHRcdFx0YmFycyA6IFtdXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0dGhpcy5kYXRhc2V0cy5wdXNoKGRhdGFzZXRPYmplY3QpO1xuXG5cdFx0XHRcdGhlbHBlcnMuZWFjaChkYXRhc2V0LmRhdGEsZnVuY3Rpb24oZGF0YVBvaW50LGluZGV4KXtcblx0XHRcdFx0XHQvL0FkZCBhIG5ldyBwb2ludCBmb3IgZWFjaCBwaWVjZSBvZiBkYXRhLCBwYXNzaW5nIGFueSByZXF1aXJlZCBkYXRhIHRvIGRyYXcuXG5cdFx0XHRcdFx0ZGF0YXNldE9iamVjdC5iYXJzLnB1c2gobmV3IHRoaXMuQmFyQ2xhc3Moe1xuXHRcdFx0XHRcdFx0dmFsdWUgOiBkYXRhUG9pbnQsXG5cdFx0XHRcdFx0XHRsYWJlbCA6IGRhdGEubGFiZWxzW2luZGV4XSxcblx0XHRcdFx0XHRcdGRhdGFzZXRMYWJlbDogZGF0YXNldC5sYWJlbCxcblx0XHRcdFx0XHRcdHN0cm9rZUNvbG9yIDogZGF0YXNldC5zdHJva2VDb2xvcixcblx0XHRcdFx0XHRcdGZpbGxDb2xvciA6IGRhdGFzZXQuZmlsbENvbG9yLFxuXHRcdFx0XHRcdFx0aGlnaGxpZ2h0RmlsbCA6IGRhdGFzZXQuaGlnaGxpZ2h0RmlsbCB8fCBkYXRhc2V0LmZpbGxDb2xvcixcblx0XHRcdFx0XHRcdGhpZ2hsaWdodFN0cm9rZSA6IGRhdGFzZXQuaGlnaGxpZ2h0U3Ryb2tlIHx8IGRhdGFzZXQuc3Ryb2tlQ29sb3Jcblx0XHRcdFx0XHR9KSk7XG5cdFx0XHRcdH0sdGhpcyk7XG5cblx0XHRcdH0sdGhpcyk7XG5cblx0XHRcdHRoaXMuYnVpbGRTY2FsZShkYXRhLmxhYmVscyk7XG5cblx0XHRcdHRoaXMuQmFyQ2xhc3MucHJvdG90eXBlLmJhc2UgPSB0aGlzLnNjYWxlLmVuZFBvaW50O1xuXG5cdFx0XHR0aGlzLmVhY2hCYXJzKGZ1bmN0aW9uKGJhciwgaW5kZXgsIGRhdGFzZXRJbmRleCl7XG5cdFx0XHRcdGhlbHBlcnMuZXh0ZW5kKGJhciwge1xuXHRcdFx0XHRcdHdpZHRoIDogdGhpcy5zY2FsZS5jYWxjdWxhdGVCYXJXaWR0aCh0aGlzLmRhdGFzZXRzLmxlbmd0aCksXG5cdFx0XHRcdFx0eDogdGhpcy5zY2FsZS5jYWxjdWxhdGVCYXJYKHRoaXMuZGF0YXNldHMubGVuZ3RoLCBkYXRhc2V0SW5kZXgsIGluZGV4KSxcblx0XHRcdFx0XHR5OiB0aGlzLnNjYWxlLmVuZFBvaW50XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRiYXIuc2F2ZSgpO1xuXHRcdFx0fSwgdGhpcyk7XG5cblx0XHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0fSxcblx0XHR1cGRhdGUgOiBmdW5jdGlvbigpe1xuXHRcdFx0dGhpcy5zY2FsZS51cGRhdGUoKTtcblx0XHRcdC8vIFJlc2V0IGFueSBoaWdobGlnaHQgY29sb3VycyBiZWZvcmUgdXBkYXRpbmcuXG5cdFx0XHRoZWxwZXJzLmVhY2godGhpcy5hY3RpdmVFbGVtZW50cywgZnVuY3Rpb24oYWN0aXZlRWxlbWVudCl7XG5cdFx0XHRcdGFjdGl2ZUVsZW1lbnQucmVzdG9yZShbJ2ZpbGxDb2xvcicsICdzdHJva2VDb2xvciddKTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmVhY2hCYXJzKGZ1bmN0aW9uKGJhcil7XG5cdFx0XHRcdGJhci5zYXZlKCk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0fSxcblx0XHRlYWNoQmFycyA6IGZ1bmN0aW9uKGNhbGxiYWNrKXtcblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQsIGRhdGFzZXRJbmRleCl7XG5cdFx0XHRcdGhlbHBlcnMuZWFjaChkYXRhc2V0LmJhcnMsIGNhbGxiYWNrLCB0aGlzLCBkYXRhc2V0SW5kZXgpO1xuXHRcdFx0fSx0aGlzKTtcblx0XHR9LFxuXHRcdGdldEJhcnNBdEV2ZW50IDogZnVuY3Rpb24oZSl7XG5cdFx0XHR2YXIgYmFyc0FycmF5ID0gW10sXG5cdFx0XHRcdGV2ZW50UG9zaXRpb24gPSBoZWxwZXJzLmdldFJlbGF0aXZlUG9zaXRpb24oZSksXG5cdFx0XHRcdGRhdGFzZXRJdGVyYXRvciA9IGZ1bmN0aW9uKGRhdGFzZXQpe1xuXHRcdFx0XHRcdGJhcnNBcnJheS5wdXNoKGRhdGFzZXQuYmFyc1tiYXJJbmRleF0pO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRiYXJJbmRleDtcblxuXHRcdFx0Zm9yICh2YXIgZGF0YXNldEluZGV4ID0gMDsgZGF0YXNldEluZGV4IDwgdGhpcy5kYXRhc2V0cy5sZW5ndGg7IGRhdGFzZXRJbmRleCsrKSB7XG5cdFx0XHRcdGZvciAoYmFySW5kZXggPSAwOyBiYXJJbmRleCA8IHRoaXMuZGF0YXNldHNbZGF0YXNldEluZGV4XS5iYXJzLmxlbmd0aDsgYmFySW5kZXgrKykge1xuXHRcdFx0XHRcdGlmICh0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0uYmFyc1tiYXJJbmRleF0uaW5SYW5nZShldmVudFBvc2l0aW9uLngsZXZlbnRQb3NpdGlvbi55KSl7XG5cdFx0XHRcdFx0XHRoZWxwZXJzLmVhY2godGhpcy5kYXRhc2V0cywgZGF0YXNldEl0ZXJhdG9yKTtcblx0XHRcdFx0XHRcdHJldHVybiBiYXJzQXJyYXk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBiYXJzQXJyYXk7XG5cdFx0fSxcblx0XHRidWlsZFNjYWxlIDogZnVuY3Rpb24obGFiZWxzKXtcblx0XHRcdHZhciBzZWxmID0gdGhpcztcblxuXHRcdFx0dmFyIGRhdGFUb3RhbCA9IGZ1bmN0aW9uKCl7XG5cdFx0XHRcdHZhciB2YWx1ZXMgPSBbXTtcblx0XHRcdFx0c2VsZi5lYWNoQmFycyhmdW5jdGlvbihiYXIpe1xuXHRcdFx0XHRcdHZhbHVlcy5wdXNoKGJhci52YWx1ZSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fTtcblxuXHRcdFx0dmFyIHNjYWxlT3B0aW9ucyA9IHtcblx0XHRcdFx0dGVtcGxhdGVTdHJpbmcgOiB0aGlzLm9wdGlvbnMuc2NhbGVMYWJlbCxcblx0XHRcdFx0aGVpZ2h0IDogdGhpcy5jaGFydC5oZWlnaHQsXG5cdFx0XHRcdHdpZHRoIDogdGhpcy5jaGFydC53aWR0aCxcblx0XHRcdFx0Y3R4IDogdGhpcy5jaGFydC5jdHgsXG5cdFx0XHRcdHRleHRDb2xvciA6IHRoaXMub3B0aW9ucy5zY2FsZUZvbnRDb2xvcixcblx0XHRcdFx0Zm9udFNpemUgOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250U2l6ZSxcblx0XHRcdFx0Zm9udFN0eWxlIDogdGhpcy5vcHRpb25zLnNjYWxlRm9udFN0eWxlLFxuXHRcdFx0XHRmb250RmFtaWx5IDogdGhpcy5vcHRpb25zLnNjYWxlRm9udEZhbWlseSxcblx0XHRcdFx0dmFsdWVzQ291bnQgOiBsYWJlbHMubGVuZ3RoLFxuXHRcdFx0XHRiZWdpbkF0WmVybyA6IHRoaXMub3B0aW9ucy5zY2FsZUJlZ2luQXRaZXJvLFxuXHRcdFx0XHRpbnRlZ2Vyc09ubHkgOiB0aGlzLm9wdGlvbnMuc2NhbGVJbnRlZ2Vyc09ubHksXG5cdFx0XHRcdGNhbGN1bGF0ZVlSYW5nZTogZnVuY3Rpb24oY3VycmVudEhlaWdodCl7XG5cdFx0XHRcdFx0dmFyIHVwZGF0ZWRSYW5nZXMgPSBoZWxwZXJzLmNhbGN1bGF0ZVNjYWxlUmFuZ2UoXG5cdFx0XHRcdFx0XHRkYXRhVG90YWwoKSxcblx0XHRcdFx0XHRcdGN1cnJlbnRIZWlnaHQsXG5cdFx0XHRcdFx0XHR0aGlzLmZvbnRTaXplLFxuXHRcdFx0XHRcdFx0dGhpcy5iZWdpbkF0WmVybyxcblx0XHRcdFx0XHRcdHRoaXMuaW50ZWdlcnNPbmx5XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRoZWxwZXJzLmV4dGVuZCh0aGlzLCB1cGRhdGVkUmFuZ2VzKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0eExhYmVscyA6IGxhYmVscyxcblx0XHRcdFx0Zm9udCA6IGhlbHBlcnMuZm9udFN0cmluZyh0aGlzLm9wdGlvbnMuc2NhbGVGb250U2l6ZSwgdGhpcy5vcHRpb25zLnNjYWxlRm9udFN0eWxlLCB0aGlzLm9wdGlvbnMuc2NhbGVGb250RmFtaWx5KSxcblx0XHRcdFx0bGluZVdpZHRoIDogdGhpcy5vcHRpb25zLnNjYWxlTGluZVdpZHRoLFxuXHRcdFx0XHRsaW5lQ29sb3IgOiB0aGlzLm9wdGlvbnMuc2NhbGVMaW5lQ29sb3IsXG5cdFx0XHRcdHNob3dIb3Jpem9udGFsTGluZXMgOiB0aGlzLm9wdGlvbnMuc2NhbGVTaG93SG9yaXpvbnRhbExpbmVzLFxuXHRcdFx0XHRzaG93VmVydGljYWxMaW5lcyA6IHRoaXMub3B0aW9ucy5zY2FsZVNob3dWZXJ0aWNhbExpbmVzLFxuXHRcdFx0XHRncmlkTGluZVdpZHRoIDogKHRoaXMub3B0aW9ucy5zY2FsZVNob3dHcmlkTGluZXMpID8gdGhpcy5vcHRpb25zLnNjYWxlR3JpZExpbmVXaWR0aCA6IDAsXG5cdFx0XHRcdGdyaWRMaW5lQ29sb3IgOiAodGhpcy5vcHRpb25zLnNjYWxlU2hvd0dyaWRMaW5lcykgPyB0aGlzLm9wdGlvbnMuc2NhbGVHcmlkTGluZUNvbG9yIDogXCJyZ2JhKDAsMCwwLDApXCIsXG5cdFx0XHRcdHBhZGRpbmcgOiAodGhpcy5vcHRpb25zLnNob3dTY2FsZSkgPyAwIDogKHRoaXMub3B0aW9ucy5iYXJTaG93U3Ryb2tlKSA/IHRoaXMub3B0aW9ucy5iYXJTdHJva2VXaWR0aCA6IDAsXG5cdFx0XHRcdHNob3dMYWJlbHMgOiB0aGlzLm9wdGlvbnMuc2NhbGVTaG93TGFiZWxzLFxuXHRcdFx0XHRkaXNwbGF5IDogdGhpcy5vcHRpb25zLnNob3dTY2FsZVxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5zY2FsZU92ZXJyaWRlKXtcblx0XHRcdFx0aGVscGVycy5leHRlbmQoc2NhbGVPcHRpb25zLCB7XG5cdFx0XHRcdFx0Y2FsY3VsYXRlWVJhbmdlOiBoZWxwZXJzLm5vb3AsXG5cdFx0XHRcdFx0c3RlcHM6IHRoaXMub3B0aW9ucy5zY2FsZVN0ZXBzLFxuXHRcdFx0XHRcdHN0ZXBWYWx1ZTogdGhpcy5vcHRpb25zLnNjYWxlU3RlcFdpZHRoLFxuXHRcdFx0XHRcdG1pbjogdGhpcy5vcHRpb25zLnNjYWxlU3RhcnRWYWx1ZSxcblx0XHRcdFx0XHRtYXg6IHRoaXMub3B0aW9ucy5zY2FsZVN0YXJ0VmFsdWUgKyAodGhpcy5vcHRpb25zLnNjYWxlU3RlcHMgKiB0aGlzLm9wdGlvbnMuc2NhbGVTdGVwV2lkdGgpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnNjYWxlID0gbmV3IHRoaXMuU2NhbGVDbGFzcyhzY2FsZU9wdGlvbnMpO1xuXHRcdH0sXG5cdFx0YWRkRGF0YSA6IGZ1bmN0aW9uKHZhbHVlc0FycmF5LGxhYmVsKXtcblx0XHRcdC8vTWFwIHRoZSB2YWx1ZXMgYXJyYXkgZm9yIGVhY2ggb2YgdGhlIGRhdGFzZXRzXG5cdFx0XHRoZWxwZXJzLmVhY2godmFsdWVzQXJyYXksZnVuY3Rpb24odmFsdWUsZGF0YXNldEluZGV4KXtcblx0XHRcdFx0Ly9BZGQgYSBuZXcgcG9pbnQgZm9yIGVhY2ggcGllY2Ugb2YgZGF0YSwgcGFzc2luZyBhbnkgcmVxdWlyZWQgZGF0YSB0byBkcmF3LlxuXHRcdFx0XHR0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0uYmFycy5wdXNoKG5ldyB0aGlzLkJhckNsYXNzKHtcblx0XHRcdFx0XHR2YWx1ZSA6IHZhbHVlLFxuXHRcdFx0XHRcdGxhYmVsIDogbGFiZWwsXG5cdFx0XHRcdFx0eDogdGhpcy5zY2FsZS5jYWxjdWxhdGVCYXJYKHRoaXMuZGF0YXNldHMubGVuZ3RoLCBkYXRhc2V0SW5kZXgsIHRoaXMuc2NhbGUudmFsdWVzQ291bnQrMSksXG5cdFx0XHRcdFx0eTogdGhpcy5zY2FsZS5lbmRQb2ludCxcblx0XHRcdFx0XHR3aWR0aCA6IHRoaXMuc2NhbGUuY2FsY3VsYXRlQmFyV2lkdGgodGhpcy5kYXRhc2V0cy5sZW5ndGgpLFxuXHRcdFx0XHRcdGJhc2UgOiB0aGlzLnNjYWxlLmVuZFBvaW50LFxuXHRcdFx0XHRcdHN0cm9rZUNvbG9yIDogdGhpcy5kYXRhc2V0c1tkYXRhc2V0SW5kZXhdLnN0cm9rZUNvbG9yLFxuXHRcdFx0XHRcdGZpbGxDb2xvciA6IHRoaXMuZGF0YXNldHNbZGF0YXNldEluZGV4XS5maWxsQ29sb3Jcblx0XHRcdFx0fSkpO1xuXHRcdFx0fSx0aGlzKTtcblxuXHRcdFx0dGhpcy5zY2FsZS5hZGRYTGFiZWwobGFiZWwpO1xuXHRcdFx0Ly9UaGVuIHJlLXJlbmRlciB0aGUgY2hhcnQuXG5cdFx0XHR0aGlzLnVwZGF0ZSgpO1xuXHRcdH0sXG5cdFx0cmVtb3ZlRGF0YSA6IGZ1bmN0aW9uKCl7XG5cdFx0XHR0aGlzLnNjYWxlLnJlbW92ZVhMYWJlbCgpO1xuXHRcdFx0Ly9UaGVuIHJlLXJlbmRlciB0aGUgY2hhcnQuXG5cdFx0XHRoZWxwZXJzLmVhY2godGhpcy5kYXRhc2V0cyxmdW5jdGlvbihkYXRhc2V0KXtcblx0XHRcdFx0ZGF0YXNldC5iYXJzLnNoaWZ0KCk7XG5cdFx0XHR9LHRoaXMpO1xuXHRcdFx0dGhpcy51cGRhdGUoKTtcblx0XHR9LFxuXHRcdHJlZmxvdyA6IGZ1bmN0aW9uKCl7XG5cdFx0XHRoZWxwZXJzLmV4dGVuZCh0aGlzLkJhckNsYXNzLnByb3RvdHlwZSx7XG5cdFx0XHRcdHk6IHRoaXMuc2NhbGUuZW5kUG9pbnQsXG5cdFx0XHRcdGJhc2UgOiB0aGlzLnNjYWxlLmVuZFBvaW50XG5cdFx0XHR9KTtcblx0XHRcdHZhciBuZXdTY2FsZVByb3BzID0gaGVscGVycy5leHRlbmQoe1xuXHRcdFx0XHRoZWlnaHQgOiB0aGlzLmNoYXJ0LmhlaWdodCxcblx0XHRcdFx0d2lkdGggOiB0aGlzLmNoYXJ0LndpZHRoXG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuc2NhbGUudXBkYXRlKG5ld1NjYWxlUHJvcHMpO1xuXHRcdH0sXG5cdFx0ZHJhdyA6IGZ1bmN0aW9uKGVhc2Upe1xuXHRcdFx0dmFyIGVhc2luZ0RlY2ltYWwgPSBlYXNlIHx8IDE7XG5cdFx0XHR0aGlzLmNsZWFyKCk7XG5cblx0XHRcdHZhciBjdHggPSB0aGlzLmNoYXJ0LmN0eDtcblxuXHRcdFx0dGhpcy5zY2FsZS5kcmF3KGVhc2luZ0RlY2ltYWwpO1xuXG5cdFx0XHQvL0RyYXcgYWxsIHRoZSBiYXJzIGZvciBlYWNoIGRhdGFzZXRcblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQsZGF0YXNldEluZGV4KXtcblx0XHRcdFx0aGVscGVycy5lYWNoKGRhdGFzZXQuYmFycyxmdW5jdGlvbihiYXIsaW5kZXgpe1xuXHRcdFx0XHRcdGlmIChiYXIuaGFzVmFsdWUoKSl7XG5cdFx0XHRcdFx0XHRiYXIuYmFzZSA9IHRoaXMuc2NhbGUuZW5kUG9pbnQ7XG5cdFx0XHRcdFx0XHQvL1RyYW5zaXRpb24gdGhlbiBkcmF3XG5cdFx0XHRcdFx0XHRiYXIudHJhbnNpdGlvbih7XG5cdFx0XHRcdFx0XHRcdHggOiB0aGlzLnNjYWxlLmNhbGN1bGF0ZUJhclgodGhpcy5kYXRhc2V0cy5sZW5ndGgsIGRhdGFzZXRJbmRleCwgaW5kZXgpLFxuXHRcdFx0XHRcdFx0XHR5IDogdGhpcy5zY2FsZS5jYWxjdWxhdGVZKGJhci52YWx1ZSksXG5cdFx0XHRcdFx0XHRcdHdpZHRoIDogdGhpcy5zY2FsZS5jYWxjdWxhdGVCYXJXaWR0aCh0aGlzLmRhdGFzZXRzLmxlbmd0aClcblx0XHRcdFx0XHRcdH0sIGVhc2luZ0RlY2ltYWwpLmRyYXcoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sdGhpcyk7XG5cblx0XHRcdH0sdGhpcyk7XG5cdFx0fVxuXHR9KTtcblxuXG59KS5jYWxsKHRoaXMpO1xuXG4oZnVuY3Rpb24oKXtcblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIHJvb3QgPSB0aGlzLFxuXHRcdENoYXJ0ID0gcm9vdC5DaGFydCxcblx0XHQvL0NhY2hlIGEgbG9jYWwgcmVmZXJlbmNlIHRvIENoYXJ0LmhlbHBlcnNcblx0XHRoZWxwZXJzID0gQ2hhcnQuaGVscGVycztcblxuXHR2YXIgZGVmYXVsdENvbmZpZyA9IHtcblx0XHQvL0Jvb2xlYW4gLSBXaGV0aGVyIHdlIHNob3VsZCBzaG93IGEgc3Ryb2tlIG9uIGVhY2ggc2VnbWVudFxuXHRcdHNlZ21lbnRTaG93U3Ryb2tlIDogdHJ1ZSxcblxuXHRcdC8vU3RyaW5nIC0gVGhlIGNvbG91ciBvZiBlYWNoIHNlZ21lbnQgc3Ryb2tlXG5cdFx0c2VnbWVudFN0cm9rZUNvbG9yIDogXCIjZmZmXCIsXG5cblx0XHQvL051bWJlciAtIFRoZSB3aWR0aCBvZiBlYWNoIHNlZ21lbnQgc3Ryb2tlXG5cdFx0c2VnbWVudFN0cm9rZVdpZHRoIDogMixcblxuXHRcdC8vVGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGNoYXJ0IHRoYXQgd2UgY3V0IG91dCBvZiB0aGUgbWlkZGxlLlxuXHRcdHBlcmNlbnRhZ2VJbm5lckN1dG91dCA6IDUwLFxuXG5cdFx0Ly9OdW1iZXIgLSBBbW91bnQgb2YgYW5pbWF0aW9uIHN0ZXBzXG5cdFx0YW5pbWF0aW9uU3RlcHMgOiAxMDAsXG5cblx0XHQvL1N0cmluZyAtIEFuaW1hdGlvbiBlYXNpbmcgZWZmZWN0XG5cdFx0YW5pbWF0aW9uRWFzaW5nIDogXCJlYXNlT3V0Qm91bmNlXCIsXG5cblx0XHQvL0Jvb2xlYW4gLSBXaGV0aGVyIHdlIGFuaW1hdGUgdGhlIHJvdGF0aW9uIG9mIHRoZSBEb3VnaG51dFxuXHRcdGFuaW1hdGVSb3RhdGUgOiB0cnVlLFxuXG5cdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB3ZSBhbmltYXRlIHNjYWxpbmcgdGhlIERvdWdobnV0IGZyb20gdGhlIGNlbnRyZVxuXHRcdGFuaW1hdGVTY2FsZSA6IGZhbHNlLFxuXG5cdFx0Ly9TdHJpbmcgLSBBIGxlZ2VuZCB0ZW1wbGF0ZVxuXHRcdGxlZ2VuZFRlbXBsYXRlIDogXCI8dWwgY2xhc3M9XFxcIjwlPW5hbWUudG9Mb3dlckNhc2UoKSU+LWxlZ2VuZFxcXCI+PCUgZm9yICh2YXIgaT0wOyBpPHNlZ21lbnRzLmxlbmd0aDsgaSsrKXslPjxsaT48c3BhbiBzdHlsZT1cXFwiYmFja2dyb3VuZC1jb2xvcjo8JT1zZWdtZW50c1tpXS5maWxsQ29sb3IlPlxcXCI+PC9zcGFuPjwlaWYoc2VnbWVudHNbaV0ubGFiZWwpeyU+PCU9c2VnbWVudHNbaV0ubGFiZWwlPjwlfSU+PC9saT48JX0lPjwvdWw+XCJcblxuXHR9O1xuXG5cblx0Q2hhcnQuVHlwZS5leHRlbmQoe1xuXHRcdC8vUGFzc2luZyBpbiBhIG5hbWUgcmVnaXN0ZXJzIHRoaXMgY2hhcnQgaW4gdGhlIENoYXJ0IG5hbWVzcGFjZVxuXHRcdG5hbWU6IFwiRG91Z2hudXRcIixcblx0XHQvL1Byb3ZpZGluZyBhIGRlZmF1bHRzIHdpbGwgYWxzbyByZWdpc3RlciB0aGUgZGVhZnVsdHMgaW4gdGhlIGNoYXJ0IG5hbWVzcGFjZVxuXHRcdGRlZmF1bHRzIDogZGVmYXVsdENvbmZpZyxcblx0XHQvL0luaXRpYWxpemUgaXMgZmlyZWQgd2hlbiB0aGUgY2hhcnQgaXMgaW5pdGlhbGl6ZWQgLSBEYXRhIGlzIHBhc3NlZCBpbiBhcyBhIHBhcmFtZXRlclxuXHRcdC8vQ29uZmlnIGlzIGF1dG9tYXRpY2FsbHkgbWVyZ2VkIGJ5IHRoZSBjb3JlIG9mIENoYXJ0LmpzLCBhbmQgaXMgYXZhaWxhYmxlIGF0IHRoaXMub3B0aW9uc1xuXHRcdGluaXRpYWxpemU6ICBmdW5jdGlvbihkYXRhKXtcblxuXHRcdFx0Ly9EZWNsYXJlIHNlZ21lbnRzIGFzIGEgc3RhdGljIHByb3BlcnR5IHRvIHByZXZlbnQgaW5oZXJpdGluZyBhY3Jvc3MgdGhlIENoYXJ0IHR5cGUgcHJvdG90eXBlXG5cdFx0XHR0aGlzLnNlZ21lbnRzID0gW107XG5cdFx0XHR0aGlzLm91dGVyUmFkaXVzID0gKGhlbHBlcnMubWluKFt0aGlzLmNoYXJ0LndpZHRoLHRoaXMuY2hhcnQuaGVpZ2h0XSkgLVx0dGhpcy5vcHRpb25zLnNlZ21lbnRTdHJva2VXaWR0aC8yKS8yO1xuXG5cdFx0XHR0aGlzLlNlZ21lbnRBcmMgPSBDaGFydC5BcmMuZXh0ZW5kKHtcblx0XHRcdFx0Y3R4IDogdGhpcy5jaGFydC5jdHgsXG5cdFx0XHRcdHggOiB0aGlzLmNoYXJ0LndpZHRoLzIsXG5cdFx0XHRcdHkgOiB0aGlzLmNoYXJ0LmhlaWdodC8yXG5cdFx0XHR9KTtcblxuXHRcdFx0Ly9TZXQgdXAgdG9vbHRpcCBldmVudHMgb24gdGhlIGNoYXJ0XG5cdFx0XHRpZiAodGhpcy5vcHRpb25zLnNob3dUb29sdGlwcyl7XG5cdFx0XHRcdGhlbHBlcnMuYmluZEV2ZW50cyh0aGlzLCB0aGlzLm9wdGlvbnMudG9vbHRpcEV2ZW50cywgZnVuY3Rpb24oZXZ0KXtcblx0XHRcdFx0XHR2YXIgYWN0aXZlU2VnbWVudHMgPSAoZXZ0LnR5cGUgIT09ICdtb3VzZW91dCcpID8gdGhpcy5nZXRTZWdtZW50c0F0RXZlbnQoZXZ0KSA6IFtdO1xuXG5cdFx0XHRcdFx0aGVscGVycy5lYWNoKHRoaXMuc2VnbWVudHMsZnVuY3Rpb24oc2VnbWVudCl7XG5cdFx0XHRcdFx0XHRzZWdtZW50LnJlc3RvcmUoW1wiZmlsbENvbG9yXCJdKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRoZWxwZXJzLmVhY2goYWN0aXZlU2VnbWVudHMsZnVuY3Rpb24oYWN0aXZlU2VnbWVudCl7XG5cdFx0XHRcdFx0XHRhY3RpdmVTZWdtZW50LmZpbGxDb2xvciA9IGFjdGl2ZVNlZ21lbnQuaGlnaGxpZ2h0Q29sb3I7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcChhY3RpdmVTZWdtZW50cyk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jYWxjdWxhdGVUb3RhbChkYXRhKTtcblxuXHRcdFx0aGVscGVycy5lYWNoKGRhdGEsZnVuY3Rpb24oZGF0YXBvaW50LCBpbmRleCl7XG5cdFx0XHRcdHRoaXMuYWRkRGF0YShkYXRhcG9pbnQsIGluZGV4LCB0cnVlKTtcblx0XHRcdH0sdGhpcyk7XG5cblx0XHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0fSxcblx0XHRnZXRTZWdtZW50c0F0RXZlbnQgOiBmdW5jdGlvbihlKXtcblx0XHRcdHZhciBzZWdtZW50c0FycmF5ID0gW107XG5cblx0XHRcdHZhciBsb2NhdGlvbiA9IGhlbHBlcnMuZ2V0UmVsYXRpdmVQb3NpdGlvbihlKTtcblxuXHRcdFx0aGVscGVycy5lYWNoKHRoaXMuc2VnbWVudHMsZnVuY3Rpb24oc2VnbWVudCl7XG5cdFx0XHRcdGlmIChzZWdtZW50LmluUmFuZ2UobG9jYXRpb24ueCxsb2NhdGlvbi55KSkgc2VnbWVudHNBcnJheS5wdXNoKHNlZ21lbnQpO1xuXHRcdFx0fSx0aGlzKTtcblx0XHRcdHJldHVybiBzZWdtZW50c0FycmF5O1xuXHRcdH0sXG5cdFx0YWRkRGF0YSA6IGZ1bmN0aW9uKHNlZ21lbnQsIGF0SW5kZXgsIHNpbGVudCl7XG5cdFx0XHR2YXIgaW5kZXggPSBhdEluZGV4IHx8IHRoaXMuc2VnbWVudHMubGVuZ3RoO1xuXHRcdFx0dGhpcy5zZWdtZW50cy5zcGxpY2UoaW5kZXgsIDAsIG5ldyB0aGlzLlNlZ21lbnRBcmMoe1xuXHRcdFx0XHR2YWx1ZSA6IHNlZ21lbnQudmFsdWUsXG5cdFx0XHRcdG91dGVyUmFkaXVzIDogKHRoaXMub3B0aW9ucy5hbmltYXRlU2NhbGUpID8gMCA6IHRoaXMub3V0ZXJSYWRpdXMsXG5cdFx0XHRcdGlubmVyUmFkaXVzIDogKHRoaXMub3B0aW9ucy5hbmltYXRlU2NhbGUpID8gMCA6ICh0aGlzLm91dGVyUmFkaXVzLzEwMCkgKiB0aGlzLm9wdGlvbnMucGVyY2VudGFnZUlubmVyQ3V0b3V0LFxuXHRcdFx0XHRmaWxsQ29sb3IgOiBzZWdtZW50LmNvbG9yLFxuXHRcdFx0XHRoaWdobGlnaHRDb2xvciA6IHNlZ21lbnQuaGlnaGxpZ2h0IHx8IHNlZ21lbnQuY29sb3IsXG5cdFx0XHRcdHNob3dTdHJva2UgOiB0aGlzLm9wdGlvbnMuc2VnbWVudFNob3dTdHJva2UsXG5cdFx0XHRcdHN0cm9rZVdpZHRoIDogdGhpcy5vcHRpb25zLnNlZ21lbnRTdHJva2VXaWR0aCxcblx0XHRcdFx0c3Ryb2tlQ29sb3IgOiB0aGlzLm9wdGlvbnMuc2VnbWVudFN0cm9rZUNvbG9yLFxuXHRcdFx0XHRzdGFydEFuZ2xlIDogTWF0aC5QSSAqIDEuNSxcblx0XHRcdFx0Y2lyY3VtZmVyZW5jZSA6ICh0aGlzLm9wdGlvbnMuYW5pbWF0ZVJvdGF0ZSkgPyAwIDogdGhpcy5jYWxjdWxhdGVDaXJjdW1mZXJlbmNlKHNlZ21lbnQudmFsdWUpLFxuXHRcdFx0XHRsYWJlbCA6IHNlZ21lbnQubGFiZWxcblx0XHRcdH0pKTtcblx0XHRcdGlmICghc2lsZW50KXtcblx0XHRcdFx0dGhpcy5yZWZsb3coKTtcblx0XHRcdFx0dGhpcy51cGRhdGUoKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNhbGN1bGF0ZUNpcmN1bWZlcmVuY2UgOiBmdW5jdGlvbih2YWx1ZSl7XG5cdFx0XHRyZXR1cm4gKE1hdGguUEkqMikqKE1hdGguYWJzKHZhbHVlKSAvIHRoaXMudG90YWwpO1xuXHRcdH0sXG5cdFx0Y2FsY3VsYXRlVG90YWwgOiBmdW5jdGlvbihkYXRhKXtcblx0XHRcdHRoaXMudG90YWwgPSAwO1xuXHRcdFx0aGVscGVycy5lYWNoKGRhdGEsZnVuY3Rpb24oc2VnbWVudCl7XG5cdFx0XHRcdHRoaXMudG90YWwgKz0gTWF0aC5hYnMoc2VnbWVudC52YWx1ZSk7XG5cdFx0XHR9LHRoaXMpO1xuXHRcdH0sXG5cdFx0dXBkYXRlIDogZnVuY3Rpb24oKXtcblx0XHRcdHRoaXMuY2FsY3VsYXRlVG90YWwodGhpcy5zZWdtZW50cyk7XG5cblx0XHRcdC8vIFJlc2V0IGFueSBoaWdobGlnaHQgY29sb3VycyBiZWZvcmUgdXBkYXRpbmcuXG5cdFx0XHRoZWxwZXJzLmVhY2godGhpcy5hY3RpdmVFbGVtZW50cywgZnVuY3Rpb24oYWN0aXZlRWxlbWVudCl7XG5cdFx0XHRcdGFjdGl2ZUVsZW1lbnQucmVzdG9yZShbJ2ZpbGxDb2xvciddKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRoZWxwZXJzLmVhY2godGhpcy5zZWdtZW50cyxmdW5jdGlvbihzZWdtZW50KXtcblx0XHRcdFx0c2VnbWVudC5zYXZlKCk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0fSxcblxuXHRcdHJlbW92ZURhdGE6IGZ1bmN0aW9uKGF0SW5kZXgpe1xuXHRcdFx0dmFyIGluZGV4VG9EZWxldGUgPSAoaGVscGVycy5pc051bWJlcihhdEluZGV4KSkgPyBhdEluZGV4IDogdGhpcy5zZWdtZW50cy5sZW5ndGgtMTtcblx0XHRcdHRoaXMuc2VnbWVudHMuc3BsaWNlKGluZGV4VG9EZWxldGUsIDEpO1xuXHRcdFx0dGhpcy5yZWZsb3coKTtcblx0XHRcdHRoaXMudXBkYXRlKCk7XG5cdFx0fSxcblxuXHRcdHJlZmxvdyA6IGZ1bmN0aW9uKCl7XG5cdFx0XHRoZWxwZXJzLmV4dGVuZCh0aGlzLlNlZ21lbnRBcmMucHJvdG90eXBlLHtcblx0XHRcdFx0eCA6IHRoaXMuY2hhcnQud2lkdGgvMixcblx0XHRcdFx0eSA6IHRoaXMuY2hhcnQuaGVpZ2h0LzJcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5vdXRlclJhZGl1cyA9IChoZWxwZXJzLm1pbihbdGhpcy5jaGFydC53aWR0aCx0aGlzLmNoYXJ0LmhlaWdodF0pIC1cdHRoaXMub3B0aW9ucy5zZWdtZW50U3Ryb2tlV2lkdGgvMikvMjtcblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLnNlZ21lbnRzLCBmdW5jdGlvbihzZWdtZW50KXtcblx0XHRcdFx0c2VnbWVudC51cGRhdGUoe1xuXHRcdFx0XHRcdG91dGVyUmFkaXVzIDogdGhpcy5vdXRlclJhZGl1cyxcblx0XHRcdFx0XHRpbm5lclJhZGl1cyA6ICh0aGlzLm91dGVyUmFkaXVzLzEwMCkgKiB0aGlzLm9wdGlvbnMucGVyY2VudGFnZUlubmVyQ3V0b3V0XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSwgdGhpcyk7XG5cdFx0fSxcblx0XHRkcmF3IDogZnVuY3Rpb24oZWFzZURlY2ltYWwpe1xuXHRcdFx0dmFyIGFuaW1EZWNpbWFsID0gKGVhc2VEZWNpbWFsKSA/IGVhc2VEZWNpbWFsIDogMTtcblx0XHRcdHRoaXMuY2xlYXIoKTtcblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLnNlZ21lbnRzLGZ1bmN0aW9uKHNlZ21lbnQsaW5kZXgpe1xuXHRcdFx0XHRzZWdtZW50LnRyYW5zaXRpb24oe1xuXHRcdFx0XHRcdGNpcmN1bWZlcmVuY2UgOiB0aGlzLmNhbGN1bGF0ZUNpcmN1bWZlcmVuY2Uoc2VnbWVudC52YWx1ZSksXG5cdFx0XHRcdFx0b3V0ZXJSYWRpdXMgOiB0aGlzLm91dGVyUmFkaXVzLFxuXHRcdFx0XHRcdGlubmVyUmFkaXVzIDogKHRoaXMub3V0ZXJSYWRpdXMvMTAwKSAqIHRoaXMub3B0aW9ucy5wZXJjZW50YWdlSW5uZXJDdXRvdXRcblx0XHRcdFx0fSxhbmltRGVjaW1hbCk7XG5cblx0XHRcdFx0c2VnbWVudC5lbmRBbmdsZSA9IHNlZ21lbnQuc3RhcnRBbmdsZSArIHNlZ21lbnQuY2lyY3VtZmVyZW5jZTtcblxuXHRcdFx0XHRzZWdtZW50LmRyYXcoKTtcblx0XHRcdFx0aWYgKGluZGV4ID09PSAwKXtcblx0XHRcdFx0XHRzZWdtZW50LnN0YXJ0QW5nbGUgPSBNYXRoLlBJICogMS41O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vQ2hlY2sgdG8gc2VlIGlmIGl0J3MgdGhlIGxhc3Qgc2VnbWVudCwgaWYgbm90IGdldCB0aGUgbmV4dCBhbmQgdXBkYXRlIHRoZSBzdGFydCBhbmdsZVxuXHRcdFx0XHRpZiAoaW5kZXggPCB0aGlzLnNlZ21lbnRzLmxlbmd0aC0xKXtcblx0XHRcdFx0XHR0aGlzLnNlZ21lbnRzW2luZGV4KzFdLnN0YXJ0QW5nbGUgPSBzZWdtZW50LmVuZEFuZ2xlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LHRoaXMpO1xuXG5cdFx0fVxuXHR9KTtcblxuXHRDaGFydC50eXBlcy5Eb3VnaG51dC5leHRlbmQoe1xuXHRcdG5hbWUgOiBcIlBpZVwiLFxuXHRcdGRlZmF1bHRzIDogaGVscGVycy5tZXJnZShkZWZhdWx0Q29uZmlnLHtwZXJjZW50YWdlSW5uZXJDdXRvdXQgOiAwfSlcblx0fSk7XG5cbn0pLmNhbGwodGhpcyk7XG4oZnVuY3Rpb24oKXtcblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIHJvb3QgPSB0aGlzLFxuXHRcdENoYXJ0ID0gcm9vdC5DaGFydCxcblx0XHRoZWxwZXJzID0gQ2hhcnQuaGVscGVycztcblxuXHR2YXIgZGVmYXVsdENvbmZpZyA9IHtcblxuXHRcdC8vL0Jvb2xlYW4gLSBXaGV0aGVyIGdyaWQgbGluZXMgYXJlIHNob3duIGFjcm9zcyB0aGUgY2hhcnRcblx0XHRzY2FsZVNob3dHcmlkTGluZXMgOiB0cnVlLFxuXG5cdFx0Ly9TdHJpbmcgLSBDb2xvdXIgb2YgdGhlIGdyaWQgbGluZXNcblx0XHRzY2FsZUdyaWRMaW5lQ29sb3IgOiBcInJnYmEoMCwwLDAsLjA1KVwiLFxuXG5cdFx0Ly9OdW1iZXIgLSBXaWR0aCBvZiB0aGUgZ3JpZCBsaW5lc1xuXHRcdHNjYWxlR3JpZExpbmVXaWR0aCA6IDEsXG5cblx0XHQvL0Jvb2xlYW4gLSBXaGV0aGVyIHRvIHNob3cgaG9yaXpvbnRhbCBsaW5lcyAoZXhjZXB0IFggYXhpcylcblx0XHRzY2FsZVNob3dIb3Jpem9udGFsTGluZXM6IHRydWUsXG5cblx0XHQvL0Jvb2xlYW4gLSBXaGV0aGVyIHRvIHNob3cgdmVydGljYWwgbGluZXMgKGV4Y2VwdCBZIGF4aXMpXG5cdFx0c2NhbGVTaG93VmVydGljYWxMaW5lczogdHJ1ZSxcblxuXHRcdC8vQm9vbGVhbiAtIFdoZXRoZXIgdGhlIGxpbmUgaXMgY3VydmVkIGJldHdlZW4gcG9pbnRzXG5cdFx0YmV6aWVyQ3VydmUgOiB0cnVlLFxuXG5cdFx0Ly9OdW1iZXIgLSBUZW5zaW9uIG9mIHRoZSBiZXppZXIgY3VydmUgYmV0d2VlbiBwb2ludHNcblx0XHRiZXppZXJDdXJ2ZVRlbnNpb24gOiAwLjQsXG5cblx0XHQvL0Jvb2xlYW4gLSBXaGV0aGVyIHRvIHNob3cgYSBkb3QgZm9yIGVhY2ggcG9pbnRcblx0XHRwb2ludERvdCA6IHRydWUsXG5cblx0XHQvL051bWJlciAtIFJhZGl1cyBvZiBlYWNoIHBvaW50IGRvdCBpbiBwaXhlbHNcblx0XHRwb2ludERvdFJhZGl1cyA6IDQsXG5cblx0XHQvL051bWJlciAtIFBpeGVsIHdpZHRoIG9mIHBvaW50IGRvdCBzdHJva2Vcblx0XHRwb2ludERvdFN0cm9rZVdpZHRoIDogMSxcblxuXHRcdC8vTnVtYmVyIC0gYW1vdW50IGV4dHJhIHRvIGFkZCB0byB0aGUgcmFkaXVzIHRvIGNhdGVyIGZvciBoaXQgZGV0ZWN0aW9uIG91dHNpZGUgdGhlIGRyYXduIHBvaW50XG5cdFx0cG9pbnRIaXREZXRlY3Rpb25SYWRpdXMgOiAyMCxcblxuXHRcdC8vQm9vbGVhbiAtIFdoZXRoZXIgdG8gc2hvdyBhIHN0cm9rZSBmb3IgZGF0YXNldHNcblx0XHRkYXRhc2V0U3Ryb2tlIDogdHJ1ZSxcblxuXHRcdC8vTnVtYmVyIC0gUGl4ZWwgd2lkdGggb2YgZGF0YXNldCBzdHJva2Vcblx0XHRkYXRhc2V0U3Ryb2tlV2lkdGggOiAyLFxuXG5cdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0byBmaWxsIHRoZSBkYXRhc2V0IHdpdGggYSBjb2xvdXJcblx0XHRkYXRhc2V0RmlsbCA6IHRydWUsXG5cblx0XHQvL1N0cmluZyAtIEEgbGVnZW5kIHRlbXBsYXRlXG5cdFx0bGVnZW5kVGVtcGxhdGUgOiBcIjx1bCBjbGFzcz1cXFwiPCU9bmFtZS50b0xvd2VyQ2FzZSgpJT4tbGVnZW5kXFxcIj48JSBmb3IgKHZhciBpPTA7IGk8ZGF0YXNldHMubGVuZ3RoOyBpKyspeyU+PGxpPjxzcGFuIHN0eWxlPVxcXCJiYWNrZ3JvdW5kLWNvbG9yOjwlPWRhdGFzZXRzW2ldLnN0cm9rZUNvbG9yJT5cXFwiPjwvc3Bhbj48JWlmKGRhdGFzZXRzW2ldLmxhYmVsKXslPjwlPWRhdGFzZXRzW2ldLmxhYmVsJT48JX0lPjwvbGk+PCV9JT48L3VsPlwiXG5cblx0fTtcblxuXG5cdENoYXJ0LlR5cGUuZXh0ZW5kKHtcblx0XHRuYW1lOiBcIkxpbmVcIixcblx0XHRkZWZhdWx0cyA6IGRlZmF1bHRDb25maWcsXG5cdFx0aW5pdGlhbGl6ZTogIGZ1bmN0aW9uKGRhdGEpe1xuXHRcdFx0Ly9EZWNsYXJlIHRoZSBleHRlbnNpb24gb2YgdGhlIGRlZmF1bHQgcG9pbnQsIHRvIGNhdGVyIGZvciB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gdG8gdGhlIGNvbnN0cnVjdG9yXG5cdFx0XHR0aGlzLlBvaW50Q2xhc3MgPSBDaGFydC5Qb2ludC5leHRlbmQoe1xuXHRcdFx0XHRzdHJva2VXaWR0aCA6IHRoaXMub3B0aW9ucy5wb2ludERvdFN0cm9rZVdpZHRoLFxuXHRcdFx0XHRyYWRpdXMgOiB0aGlzLm9wdGlvbnMucG9pbnREb3RSYWRpdXMsXG5cdFx0XHRcdGRpc3BsYXk6IHRoaXMub3B0aW9ucy5wb2ludERvdCxcblx0XHRcdFx0aGl0RGV0ZWN0aW9uUmFkaXVzIDogdGhpcy5vcHRpb25zLnBvaW50SGl0RGV0ZWN0aW9uUmFkaXVzLFxuXHRcdFx0XHRjdHggOiB0aGlzLmNoYXJ0LmN0eCxcblx0XHRcdFx0aW5SYW5nZSA6IGZ1bmN0aW9uKG1vdXNlWCl7XG5cdFx0XHRcdFx0cmV0dXJuIChNYXRoLnBvdyhtb3VzZVgtdGhpcy54LCAyKSA8IE1hdGgucG93KHRoaXMucmFkaXVzICsgdGhpcy5oaXREZXRlY3Rpb25SYWRpdXMsMikpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5kYXRhc2V0cyA9IFtdO1xuXG5cdFx0XHQvL1NldCB1cCB0b29sdGlwIGV2ZW50cyBvbiB0aGUgY2hhcnRcblx0XHRcdGlmICh0aGlzLm9wdGlvbnMuc2hvd1Rvb2x0aXBzKXtcblx0XHRcdFx0aGVscGVycy5iaW5kRXZlbnRzKHRoaXMsIHRoaXMub3B0aW9ucy50b29sdGlwRXZlbnRzLCBmdW5jdGlvbihldnQpe1xuXHRcdFx0XHRcdHZhciBhY3RpdmVQb2ludHMgPSAoZXZ0LnR5cGUgIT09ICdtb3VzZW91dCcpID8gdGhpcy5nZXRQb2ludHNBdEV2ZW50KGV2dCkgOiBbXTtcblx0XHRcdFx0XHR0aGlzLmVhY2hQb2ludHMoZnVuY3Rpb24ocG9pbnQpe1xuXHRcdFx0XHRcdFx0cG9pbnQucmVzdG9yZShbJ2ZpbGxDb2xvcicsICdzdHJva2VDb2xvciddKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRoZWxwZXJzLmVhY2goYWN0aXZlUG9pbnRzLCBmdW5jdGlvbihhY3RpdmVQb2ludCl7XG5cdFx0XHRcdFx0XHRhY3RpdmVQb2ludC5maWxsQ29sb3IgPSBhY3RpdmVQb2ludC5oaWdobGlnaHRGaWxsO1xuXHRcdFx0XHRcdFx0YWN0aXZlUG9pbnQuc3Ryb2tlQ29sb3IgPSBhY3RpdmVQb2ludC5oaWdobGlnaHRTdHJva2U7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcChhY3RpdmVQb2ludHMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0Ly9JdGVyYXRlIHRocm91Z2ggZWFjaCBvZiB0aGUgZGF0YXNldHMsIGFuZCBidWlsZCB0aGlzIGludG8gYSBwcm9wZXJ0eSBvZiB0aGUgY2hhcnRcblx0XHRcdGhlbHBlcnMuZWFjaChkYXRhLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQpe1xuXG5cdFx0XHRcdHZhciBkYXRhc2V0T2JqZWN0ID0ge1xuXHRcdFx0XHRcdGxhYmVsIDogZGF0YXNldC5sYWJlbCB8fCBudWxsLFxuXHRcdFx0XHRcdGZpbGxDb2xvciA6IGRhdGFzZXQuZmlsbENvbG9yLFxuXHRcdFx0XHRcdHN0cm9rZUNvbG9yIDogZGF0YXNldC5zdHJva2VDb2xvcixcblx0XHRcdFx0XHRwb2ludENvbG9yIDogZGF0YXNldC5wb2ludENvbG9yLFxuXHRcdFx0XHRcdHBvaW50U3Ryb2tlQ29sb3IgOiBkYXRhc2V0LnBvaW50U3Ryb2tlQ29sb3IsXG5cdFx0XHRcdFx0cG9pbnRzIDogW11cblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0aGlzLmRhdGFzZXRzLnB1c2goZGF0YXNldE9iamVjdCk7XG5cblxuXHRcdFx0XHRoZWxwZXJzLmVhY2goZGF0YXNldC5kYXRhLGZ1bmN0aW9uKGRhdGFQb2ludCxpbmRleCl7XG5cdFx0XHRcdFx0Ly9BZGQgYSBuZXcgcG9pbnQgZm9yIGVhY2ggcGllY2Ugb2YgZGF0YSwgcGFzc2luZyBhbnkgcmVxdWlyZWQgZGF0YSB0byBkcmF3LlxuXHRcdFx0XHRcdGRhdGFzZXRPYmplY3QucG9pbnRzLnB1c2gobmV3IHRoaXMuUG9pbnRDbGFzcyh7XG5cdFx0XHRcdFx0XHR2YWx1ZSA6IGRhdGFQb2ludCxcblx0XHRcdFx0XHRcdGxhYmVsIDogZGF0YS5sYWJlbHNbaW5kZXhdLFxuXHRcdFx0XHRcdFx0ZGF0YXNldExhYmVsOiBkYXRhc2V0LmxhYmVsLFxuXHRcdFx0XHRcdFx0c3Ryb2tlQ29sb3IgOiBkYXRhc2V0LnBvaW50U3Ryb2tlQ29sb3IsXG5cdFx0XHRcdFx0XHRmaWxsQ29sb3IgOiBkYXRhc2V0LnBvaW50Q29sb3IsXG5cdFx0XHRcdFx0XHRoaWdobGlnaHRGaWxsIDogZGF0YXNldC5wb2ludEhpZ2hsaWdodEZpbGwgfHwgZGF0YXNldC5wb2ludENvbG9yLFxuXHRcdFx0XHRcdFx0aGlnaGxpZ2h0U3Ryb2tlIDogZGF0YXNldC5wb2ludEhpZ2hsaWdodFN0cm9rZSB8fCBkYXRhc2V0LnBvaW50U3Ryb2tlQ29sb3Jcblx0XHRcdFx0XHR9KSk7XG5cdFx0XHRcdH0sdGhpcyk7XG5cblx0XHRcdFx0dGhpcy5idWlsZFNjYWxlKGRhdGEubGFiZWxzKTtcblxuXG5cdFx0XHRcdHRoaXMuZWFjaFBvaW50cyhmdW5jdGlvbihwb2ludCwgaW5kZXgpe1xuXHRcdFx0XHRcdGhlbHBlcnMuZXh0ZW5kKHBvaW50LCB7XG5cdFx0XHRcdFx0XHR4OiB0aGlzLnNjYWxlLmNhbGN1bGF0ZVgoaW5kZXgpLFxuXHRcdFx0XHRcdFx0eTogdGhpcy5zY2FsZS5lbmRQb2ludFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHBvaW50LnNhdmUoKTtcblx0XHRcdFx0fSwgdGhpcyk7XG5cblx0XHRcdH0sdGhpcyk7XG5cblxuXHRcdFx0dGhpcy5yZW5kZXIoKTtcblx0XHR9LFxuXHRcdHVwZGF0ZSA6IGZ1bmN0aW9uKCl7XG5cdFx0XHR0aGlzLnNjYWxlLnVwZGF0ZSgpO1xuXHRcdFx0Ly8gUmVzZXQgYW55IGhpZ2hsaWdodCBjb2xvdXJzIGJlZm9yZSB1cGRhdGluZy5cblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmFjdGl2ZUVsZW1lbnRzLCBmdW5jdGlvbihhY3RpdmVFbGVtZW50KXtcblx0XHRcdFx0YWN0aXZlRWxlbWVudC5yZXN0b3JlKFsnZmlsbENvbG9yJywgJ3N0cm9rZUNvbG9yJ10pO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmVhY2hQb2ludHMoZnVuY3Rpb24ocG9pbnQpe1xuXHRcdFx0XHRwb2ludC5zYXZlKCk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0fSxcblx0XHRlYWNoUG9pbnRzIDogZnVuY3Rpb24oY2FsbGJhY2spe1xuXHRcdFx0aGVscGVycy5lYWNoKHRoaXMuZGF0YXNldHMsZnVuY3Rpb24oZGF0YXNldCl7XG5cdFx0XHRcdGhlbHBlcnMuZWFjaChkYXRhc2V0LnBvaW50cyxjYWxsYmFjayx0aGlzKTtcblx0XHRcdH0sdGhpcyk7XG5cdFx0fSxcblx0XHRnZXRQb2ludHNBdEV2ZW50IDogZnVuY3Rpb24oZSl7XG5cdFx0XHR2YXIgcG9pbnRzQXJyYXkgPSBbXSxcblx0XHRcdFx0ZXZlbnRQb3NpdGlvbiA9IGhlbHBlcnMuZ2V0UmVsYXRpdmVQb3NpdGlvbihlKTtcblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQpe1xuXHRcdFx0XHRoZWxwZXJzLmVhY2goZGF0YXNldC5wb2ludHMsZnVuY3Rpb24ocG9pbnQpe1xuXHRcdFx0XHRcdGlmIChwb2ludC5pblJhbmdlKGV2ZW50UG9zaXRpb24ueCxldmVudFBvc2l0aW9uLnkpKSBwb2ludHNBcnJheS5wdXNoKHBvaW50KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9LHRoaXMpO1xuXHRcdFx0cmV0dXJuIHBvaW50c0FycmF5O1xuXHRcdH0sXG5cdFx0YnVpbGRTY2FsZSA6IGZ1bmN0aW9uKGxhYmVscyl7XG5cdFx0XHR2YXIgc2VsZiA9IHRoaXM7XG5cblx0XHRcdHZhciBkYXRhVG90YWwgPSBmdW5jdGlvbigpe1xuXHRcdFx0XHR2YXIgdmFsdWVzID0gW107XG5cdFx0XHRcdHNlbGYuZWFjaFBvaW50cyhmdW5jdGlvbihwb2ludCl7XG5cdFx0XHRcdFx0dmFsdWVzLnB1c2gocG9pbnQudmFsdWUpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fTtcblxuXHRcdFx0dmFyIHNjYWxlT3B0aW9ucyA9IHtcblx0XHRcdFx0dGVtcGxhdGVTdHJpbmcgOiB0aGlzLm9wdGlvbnMuc2NhbGVMYWJlbCxcblx0XHRcdFx0aGVpZ2h0IDogdGhpcy5jaGFydC5oZWlnaHQsXG5cdFx0XHRcdHdpZHRoIDogdGhpcy5jaGFydC53aWR0aCxcblx0XHRcdFx0Y3R4IDogdGhpcy5jaGFydC5jdHgsXG5cdFx0XHRcdHRleHRDb2xvciA6IHRoaXMub3B0aW9ucy5zY2FsZUZvbnRDb2xvcixcblx0XHRcdFx0Zm9udFNpemUgOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250U2l6ZSxcblx0XHRcdFx0Zm9udFN0eWxlIDogdGhpcy5vcHRpb25zLnNjYWxlRm9udFN0eWxlLFxuXHRcdFx0XHRmb250RmFtaWx5IDogdGhpcy5vcHRpb25zLnNjYWxlRm9udEZhbWlseSxcblx0XHRcdFx0dmFsdWVzQ291bnQgOiBsYWJlbHMubGVuZ3RoLFxuXHRcdFx0XHRiZWdpbkF0WmVybyA6IHRoaXMub3B0aW9ucy5zY2FsZUJlZ2luQXRaZXJvLFxuXHRcdFx0XHRpbnRlZ2Vyc09ubHkgOiB0aGlzLm9wdGlvbnMuc2NhbGVJbnRlZ2Vyc09ubHksXG5cdFx0XHRcdGNhbGN1bGF0ZVlSYW5nZSA6IGZ1bmN0aW9uKGN1cnJlbnRIZWlnaHQpe1xuXHRcdFx0XHRcdHZhciB1cGRhdGVkUmFuZ2VzID0gaGVscGVycy5jYWxjdWxhdGVTY2FsZVJhbmdlKFxuXHRcdFx0XHRcdFx0ZGF0YVRvdGFsKCksXG5cdFx0XHRcdFx0XHRjdXJyZW50SGVpZ2h0LFxuXHRcdFx0XHRcdFx0dGhpcy5mb250U2l6ZSxcblx0XHRcdFx0XHRcdHRoaXMuYmVnaW5BdFplcm8sXG5cdFx0XHRcdFx0XHR0aGlzLmludGVnZXJzT25seVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aGVscGVycy5leHRlbmQodGhpcywgdXBkYXRlZFJhbmdlcyk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHhMYWJlbHMgOiBsYWJlbHMsXG5cdFx0XHRcdGZvbnQgOiBoZWxwZXJzLmZvbnRTdHJpbmcodGhpcy5vcHRpb25zLnNjYWxlRm9udFNpemUsIHRoaXMub3B0aW9ucy5zY2FsZUZvbnRTdHlsZSwgdGhpcy5vcHRpb25zLnNjYWxlRm9udEZhbWlseSksXG5cdFx0XHRcdGxpbmVXaWR0aCA6IHRoaXMub3B0aW9ucy5zY2FsZUxpbmVXaWR0aCxcblx0XHRcdFx0bGluZUNvbG9yIDogdGhpcy5vcHRpb25zLnNjYWxlTGluZUNvbG9yLFxuXHRcdFx0XHRzaG93SG9yaXpvbnRhbExpbmVzIDogdGhpcy5vcHRpb25zLnNjYWxlU2hvd0hvcml6b250YWxMaW5lcyxcblx0XHRcdFx0c2hvd1ZlcnRpY2FsTGluZXMgOiB0aGlzLm9wdGlvbnMuc2NhbGVTaG93VmVydGljYWxMaW5lcyxcblx0XHRcdFx0Z3JpZExpbmVXaWR0aCA6ICh0aGlzLm9wdGlvbnMuc2NhbGVTaG93R3JpZExpbmVzKSA/IHRoaXMub3B0aW9ucy5zY2FsZUdyaWRMaW5lV2lkdGggOiAwLFxuXHRcdFx0XHRncmlkTGluZUNvbG9yIDogKHRoaXMub3B0aW9ucy5zY2FsZVNob3dHcmlkTGluZXMpID8gdGhpcy5vcHRpb25zLnNjYWxlR3JpZExpbmVDb2xvciA6IFwicmdiYSgwLDAsMCwwKVwiLFxuXHRcdFx0XHRwYWRkaW5nOiAodGhpcy5vcHRpb25zLnNob3dTY2FsZSkgPyAwIDogdGhpcy5vcHRpb25zLnBvaW50RG90UmFkaXVzICsgdGhpcy5vcHRpb25zLnBvaW50RG90U3Ryb2tlV2lkdGgsXG5cdFx0XHRcdHNob3dMYWJlbHMgOiB0aGlzLm9wdGlvbnMuc2NhbGVTaG93TGFiZWxzLFxuXHRcdFx0XHRkaXNwbGF5IDogdGhpcy5vcHRpb25zLnNob3dTY2FsZVxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5zY2FsZU92ZXJyaWRlKXtcblx0XHRcdFx0aGVscGVycy5leHRlbmQoc2NhbGVPcHRpb25zLCB7XG5cdFx0XHRcdFx0Y2FsY3VsYXRlWVJhbmdlOiBoZWxwZXJzLm5vb3AsXG5cdFx0XHRcdFx0c3RlcHM6IHRoaXMub3B0aW9ucy5zY2FsZVN0ZXBzLFxuXHRcdFx0XHRcdHN0ZXBWYWx1ZTogdGhpcy5vcHRpb25zLnNjYWxlU3RlcFdpZHRoLFxuXHRcdFx0XHRcdG1pbjogdGhpcy5vcHRpb25zLnNjYWxlU3RhcnRWYWx1ZSxcblx0XHRcdFx0XHRtYXg6IHRoaXMub3B0aW9ucy5zY2FsZVN0YXJ0VmFsdWUgKyAodGhpcy5vcHRpb25zLnNjYWxlU3RlcHMgKiB0aGlzLm9wdGlvbnMuc2NhbGVTdGVwV2lkdGgpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cblx0XHRcdHRoaXMuc2NhbGUgPSBuZXcgQ2hhcnQuU2NhbGUoc2NhbGVPcHRpb25zKTtcblx0XHR9LFxuXHRcdGFkZERhdGEgOiBmdW5jdGlvbih2YWx1ZXNBcnJheSxsYWJlbCl7XG5cdFx0XHQvL01hcCB0aGUgdmFsdWVzIGFycmF5IGZvciBlYWNoIG9mIHRoZSBkYXRhc2V0c1xuXG5cdFx0XHRoZWxwZXJzLmVhY2godmFsdWVzQXJyYXksZnVuY3Rpb24odmFsdWUsZGF0YXNldEluZGV4KXtcblx0XHRcdFx0Ly9BZGQgYSBuZXcgcG9pbnQgZm9yIGVhY2ggcGllY2Ugb2YgZGF0YSwgcGFzc2luZyBhbnkgcmVxdWlyZWQgZGF0YSB0byBkcmF3LlxuXHRcdFx0XHR0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0ucG9pbnRzLnB1c2gobmV3IHRoaXMuUG9pbnRDbGFzcyh7XG5cdFx0XHRcdFx0dmFsdWUgOiB2YWx1ZSxcblx0XHRcdFx0XHRsYWJlbCA6IGxhYmVsLFxuXHRcdFx0XHRcdHg6IHRoaXMuc2NhbGUuY2FsY3VsYXRlWCh0aGlzLnNjYWxlLnZhbHVlc0NvdW50KzEpLFxuXHRcdFx0XHRcdHk6IHRoaXMuc2NhbGUuZW5kUG9pbnQsXG5cdFx0XHRcdFx0c3Ryb2tlQ29sb3IgOiB0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0ucG9pbnRTdHJva2VDb2xvcixcblx0XHRcdFx0XHRmaWxsQ29sb3IgOiB0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0ucG9pbnRDb2xvclxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9LHRoaXMpO1xuXG5cdFx0XHR0aGlzLnNjYWxlLmFkZFhMYWJlbChsYWJlbCk7XG5cdFx0XHQvL1RoZW4gcmUtcmVuZGVyIHRoZSBjaGFydC5cblx0XHRcdHRoaXMudXBkYXRlKCk7XG5cdFx0fSxcblx0XHRyZW1vdmVEYXRhIDogZnVuY3Rpb24oKXtcblx0XHRcdHRoaXMuc2NhbGUucmVtb3ZlWExhYmVsKCk7XG5cdFx0XHQvL1RoZW4gcmUtcmVuZGVyIHRoZSBjaGFydC5cblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQpe1xuXHRcdFx0XHRkYXRhc2V0LnBvaW50cy5zaGlmdCgpO1xuXHRcdFx0fSx0aGlzKTtcblx0XHRcdHRoaXMudXBkYXRlKCk7XG5cdFx0fSxcblx0XHRyZWZsb3cgOiBmdW5jdGlvbigpe1xuXHRcdFx0dmFyIG5ld1NjYWxlUHJvcHMgPSBoZWxwZXJzLmV4dGVuZCh7XG5cdFx0XHRcdGhlaWdodCA6IHRoaXMuY2hhcnQuaGVpZ2h0LFxuXHRcdFx0XHR3aWR0aCA6IHRoaXMuY2hhcnQud2lkdGhcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5zY2FsZS51cGRhdGUobmV3U2NhbGVQcm9wcyk7XG5cdFx0fSxcblx0XHRkcmF3IDogZnVuY3Rpb24oZWFzZSl7XG5cdFx0XHR2YXIgZWFzaW5nRGVjaW1hbCA9IGVhc2UgfHwgMTtcblx0XHRcdHRoaXMuY2xlYXIoKTtcblxuXHRcdFx0dmFyIGN0eCA9IHRoaXMuY2hhcnQuY3R4O1xuXG5cdFx0XHQvLyBTb21lIGhlbHBlciBtZXRob2RzIGZvciBnZXR0aW5nIHRoZSBuZXh0L3ByZXYgcG9pbnRzXG5cdFx0XHR2YXIgaGFzVmFsdWUgPSBmdW5jdGlvbihpdGVtKXtcblx0XHRcdFx0cmV0dXJuIGl0ZW0udmFsdWUgIT09IG51bGw7XG5cdFx0XHR9LFxuXHRcdFx0bmV4dFBvaW50ID0gZnVuY3Rpb24ocG9pbnQsIGNvbGxlY3Rpb24sIGluZGV4KXtcblx0XHRcdFx0cmV0dXJuIGhlbHBlcnMuZmluZE5leHRXaGVyZShjb2xsZWN0aW9uLCBoYXNWYWx1ZSwgaW5kZXgpIHx8IHBvaW50O1xuXHRcdFx0fSxcblx0XHRcdHByZXZpb3VzUG9pbnQgPSBmdW5jdGlvbihwb2ludCwgY29sbGVjdGlvbiwgaW5kZXgpe1xuXHRcdFx0XHRyZXR1cm4gaGVscGVycy5maW5kUHJldmlvdXNXaGVyZShjb2xsZWN0aW9uLCBoYXNWYWx1ZSwgaW5kZXgpIHx8IHBvaW50O1xuXHRcdFx0fTtcblxuXHRcdFx0dGhpcy5zY2FsZS5kcmF3KGVhc2luZ0RlY2ltYWwpO1xuXG5cblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQpe1xuXHRcdFx0XHR2YXIgcG9pbnRzV2l0aFZhbHVlcyA9IGhlbHBlcnMud2hlcmUoZGF0YXNldC5wb2ludHMsIGhhc1ZhbHVlKTtcblxuXHRcdFx0XHQvL1RyYW5zaXRpb24gZWFjaCBwb2ludCBmaXJzdCBzbyB0aGF0IHRoZSBsaW5lIGFuZCBwb2ludCBkcmF3aW5nIGlzbid0IG91dCBvZiBzeW5jXG5cdFx0XHRcdC8vV2UgY2FuIHVzZSB0aGlzIGV4dHJhIGxvb3AgdG8gY2FsY3VsYXRlIHRoZSBjb250cm9sIHBvaW50cyBvZiB0aGlzIGRhdGFzZXQgYWxzbyBpbiB0aGlzIGxvb3BcblxuXHRcdFx0XHRoZWxwZXJzLmVhY2goZGF0YXNldC5wb2ludHMsIGZ1bmN0aW9uKHBvaW50LCBpbmRleCl7XG5cdFx0XHRcdFx0aWYgKHBvaW50Lmhhc1ZhbHVlKCkpe1xuXHRcdFx0XHRcdFx0cG9pbnQudHJhbnNpdGlvbih7XG5cdFx0XHRcdFx0XHRcdHkgOiB0aGlzLnNjYWxlLmNhbGN1bGF0ZVkocG9pbnQudmFsdWUpLFxuXHRcdFx0XHRcdFx0XHR4IDogdGhpcy5zY2FsZS5jYWxjdWxhdGVYKGluZGV4KVxuXHRcdFx0XHRcdFx0fSwgZWFzaW5nRGVjaW1hbCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LHRoaXMpO1xuXG5cblx0XHRcdFx0Ly8gQ29udHJvbCBwb2ludHMgbmVlZCB0byBiZSBjYWxjdWxhdGVkIGluIGEgc2VwZXJhdGUgbG9vcCwgYmVjYXVzZSB3ZSBuZWVkIHRvIGtub3cgdGhlIGN1cnJlbnQgeC95IG9mIHRoZSBwb2ludFxuXHRcdFx0XHQvLyBUaGlzIHdvdWxkIGNhdXNlIGlzc3VlcyB3aGVuIHRoZXJlIGlzIG5vIGFuaW1hdGlvbiwgYmVjYXVzZSB0aGUgeSBvZiB0aGUgbmV4dCBwb2ludCB3b3VsZCBiZSAwLCBzbyBiZXppZXJzIHdvdWxkIGJlIHNrZXdlZFxuXHRcdFx0XHRpZiAodGhpcy5vcHRpb25zLmJlemllckN1cnZlKXtcblx0XHRcdFx0XHRoZWxwZXJzLmVhY2gocG9pbnRzV2l0aFZhbHVlcywgZnVuY3Rpb24ocG9pbnQsIGluZGV4KXtcblx0XHRcdFx0XHRcdHZhciB0ZW5zaW9uID0gKGluZGV4ID4gMCAmJiBpbmRleCA8IHBvaW50c1dpdGhWYWx1ZXMubGVuZ3RoIC0gMSkgPyB0aGlzLm9wdGlvbnMuYmV6aWVyQ3VydmVUZW5zaW9uIDogMDtcblx0XHRcdFx0XHRcdHBvaW50LmNvbnRyb2xQb2ludHMgPSBoZWxwZXJzLnNwbGluZUN1cnZlKFxuXHRcdFx0XHRcdFx0XHRwcmV2aW91c1BvaW50KHBvaW50LCBwb2ludHNXaXRoVmFsdWVzLCBpbmRleCksXG5cdFx0XHRcdFx0XHRcdHBvaW50LFxuXHRcdFx0XHRcdFx0XHRuZXh0UG9pbnQocG9pbnQsIHBvaW50c1dpdGhWYWx1ZXMsIGluZGV4KSxcblx0XHRcdFx0XHRcdFx0dGVuc2lvblxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0Ly8gUHJldmVudCB0aGUgYmV6aWVyIGdvaW5nIG91dHNpZGUgb2YgdGhlIGJvdW5kcyBvZiB0aGUgZ3JhcGhcblxuXHRcdFx0XHRcdFx0Ly8gQ2FwIHB1dGVyIGJlemllciBoYW5kbGVzIHRvIHRoZSB1cHBlci9sb3dlciBzY2FsZSBib3VuZHNcblx0XHRcdFx0XHRcdGlmIChwb2ludC5jb250cm9sUG9pbnRzLm91dGVyLnkgPiB0aGlzLnNjYWxlLmVuZFBvaW50KXtcblx0XHRcdFx0XHRcdFx0cG9pbnQuY29udHJvbFBvaW50cy5vdXRlci55ID0gdGhpcy5zY2FsZS5lbmRQb2ludDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2UgaWYgKHBvaW50LmNvbnRyb2xQb2ludHMub3V0ZXIueSA8IHRoaXMuc2NhbGUuc3RhcnRQb2ludCl7XG5cdFx0XHRcdFx0XHRcdHBvaW50LmNvbnRyb2xQb2ludHMub3V0ZXIueSA9IHRoaXMuc2NhbGUuc3RhcnRQb2ludDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gQ2FwIGlubmVyIGJlemllciBoYW5kbGVzIHRvIHRoZSB1cHBlci9sb3dlciBzY2FsZSBib3VuZHNcblx0XHRcdFx0XHRcdGlmIChwb2ludC5jb250cm9sUG9pbnRzLmlubmVyLnkgPiB0aGlzLnNjYWxlLmVuZFBvaW50KXtcblx0XHRcdFx0XHRcdFx0cG9pbnQuY29udHJvbFBvaW50cy5pbm5lci55ID0gdGhpcy5zY2FsZS5lbmRQb2ludDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2UgaWYgKHBvaW50LmNvbnRyb2xQb2ludHMuaW5uZXIueSA8IHRoaXMuc2NhbGUuc3RhcnRQb2ludCl7XG5cdFx0XHRcdFx0XHRcdHBvaW50LmNvbnRyb2xQb2ludHMuaW5uZXIueSA9IHRoaXMuc2NhbGUuc3RhcnRQb2ludDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9LHRoaXMpO1xuXHRcdFx0XHR9XG5cblxuXHRcdFx0XHQvL0RyYXcgdGhlIGxpbmUgYmV0d2VlbiBhbGwgdGhlIHBvaW50c1xuXHRcdFx0XHRjdHgubGluZVdpZHRoID0gdGhpcy5vcHRpb25zLmRhdGFzZXRTdHJva2VXaWR0aDtcblx0XHRcdFx0Y3R4LnN0cm9rZVN0eWxlID0gZGF0YXNldC5zdHJva2VDb2xvcjtcblx0XHRcdFx0Y3R4LmJlZ2luUGF0aCgpO1xuXG5cdFx0XHRcdGhlbHBlcnMuZWFjaChwb2ludHNXaXRoVmFsdWVzLCBmdW5jdGlvbihwb2ludCwgaW5kZXgpe1xuXHRcdFx0XHRcdGlmIChpbmRleCA9PT0gMCl7XG5cdFx0XHRcdFx0XHRjdHgubW92ZVRvKHBvaW50LngsIHBvaW50LnkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNle1xuXHRcdFx0XHRcdFx0aWYodGhpcy5vcHRpb25zLmJlemllckN1cnZlKXtcblx0XHRcdFx0XHRcdFx0dmFyIHByZXZpb3VzID0gcHJldmlvdXNQb2ludChwb2ludCwgcG9pbnRzV2l0aFZhbHVlcywgaW5kZXgpO1xuXG5cdFx0XHRcdFx0XHRcdGN0eC5iZXppZXJDdXJ2ZVRvKFxuXHRcdFx0XHRcdFx0XHRcdHByZXZpb3VzLmNvbnRyb2xQb2ludHMub3V0ZXIueCxcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91cy5jb250cm9sUG9pbnRzLm91dGVyLnksXG5cdFx0XHRcdFx0XHRcdFx0cG9pbnQuY29udHJvbFBvaW50cy5pbm5lci54LFxuXHRcdFx0XHRcdFx0XHRcdHBvaW50LmNvbnRyb2xQb2ludHMuaW5uZXIueSxcblx0XHRcdFx0XHRcdFx0XHRwb2ludC54LFxuXHRcdFx0XHRcdFx0XHRcdHBvaW50Lnlcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2V7XG5cdFx0XHRcdFx0XHRcdGN0eC5saW5lVG8ocG9pbnQueCxwb2ludC55KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sIHRoaXMpO1xuXG5cdFx0XHRcdGN0eC5zdHJva2UoKTtcblxuXHRcdFx0XHRpZiAodGhpcy5vcHRpb25zLmRhdGFzZXRGaWxsICYmIHBvaW50c1dpdGhWYWx1ZXMubGVuZ3RoID4gMCl7XG5cdFx0XHRcdFx0Ly9Sb3VuZCBvZmYgdGhlIGxpbmUgYnkgZ29pbmcgdG8gdGhlIGJhc2Ugb2YgdGhlIGNoYXJ0LCBiYWNrIHRvIHRoZSBzdGFydCwgdGhlbiBmaWxsLlxuXHRcdFx0XHRcdGN0eC5saW5lVG8ocG9pbnRzV2l0aFZhbHVlc1twb2ludHNXaXRoVmFsdWVzLmxlbmd0aCAtIDFdLngsIHRoaXMuc2NhbGUuZW5kUG9pbnQpO1xuXHRcdFx0XHRcdGN0eC5saW5lVG8ocG9pbnRzV2l0aFZhbHVlc1swXS54LCB0aGlzLnNjYWxlLmVuZFBvaW50KTtcblx0XHRcdFx0XHRjdHguZmlsbFN0eWxlID0gZGF0YXNldC5maWxsQ29sb3I7XG5cdFx0XHRcdFx0Y3R4LmNsb3NlUGF0aCgpO1xuXHRcdFx0XHRcdGN0eC5maWxsKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvL05vdyBkcmF3IHRoZSBwb2ludHMgb3ZlciB0aGUgbGluZVxuXHRcdFx0XHQvL0EgbGl0dGxlIGluZWZmaWNpZW50IGRvdWJsZSBsb29waW5nLCBidXQgYmV0dGVyIHRoYW4gdGhlIGxpbmVcblx0XHRcdFx0Ly9sYWdnaW5nIGJlaGluZCB0aGUgcG9pbnQgcG9zaXRpb25zXG5cdFx0XHRcdGhlbHBlcnMuZWFjaChwb2ludHNXaXRoVmFsdWVzLGZ1bmN0aW9uKHBvaW50KXtcblx0XHRcdFx0XHRwb2ludC5kcmF3KCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSx0aGlzKTtcblx0XHR9XG5cdH0pO1xuXG5cbn0pLmNhbGwodGhpcyk7XG5cbihmdW5jdGlvbigpe1xuXHRcInVzZSBzdHJpY3RcIjtcblxuXHR2YXIgcm9vdCA9IHRoaXMsXG5cdFx0Q2hhcnQgPSByb290LkNoYXJ0LFxuXHRcdC8vQ2FjaGUgYSBsb2NhbCByZWZlcmVuY2UgdG8gQ2hhcnQuaGVscGVyc1xuXHRcdGhlbHBlcnMgPSBDaGFydC5oZWxwZXJzO1xuXG5cdHZhciBkZWZhdWx0Q29uZmlnID0ge1xuXHRcdC8vQm9vbGVhbiAtIFNob3cgYSBiYWNrZHJvcCB0byB0aGUgc2NhbGUgbGFiZWxcblx0XHRzY2FsZVNob3dMYWJlbEJhY2tkcm9wIDogdHJ1ZSxcblxuXHRcdC8vU3RyaW5nIC0gVGhlIGNvbG91ciBvZiB0aGUgbGFiZWwgYmFja2Ryb3Bcblx0XHRzY2FsZUJhY2tkcm9wQ29sb3IgOiBcInJnYmEoMjU1LDI1NSwyNTUsMC43NSlcIixcblxuXHRcdC8vIEJvb2xlYW4gLSBXaGV0aGVyIHRoZSBzY2FsZSBzaG91bGQgYmVnaW4gYXQgemVyb1xuXHRcdHNjYWxlQmVnaW5BdFplcm8gOiB0cnVlLFxuXG5cdFx0Ly9OdW1iZXIgLSBUaGUgYmFja2Ryb3AgcGFkZGluZyBhYm92ZSAmIGJlbG93IHRoZSBsYWJlbCBpbiBwaXhlbHNcblx0XHRzY2FsZUJhY2tkcm9wUGFkZGluZ1kgOiAyLFxuXG5cdFx0Ly9OdW1iZXIgLSBUaGUgYmFja2Ryb3AgcGFkZGluZyB0byB0aGUgc2lkZSBvZiB0aGUgbGFiZWwgaW4gcGl4ZWxzXG5cdFx0c2NhbGVCYWNrZHJvcFBhZGRpbmdYIDogMixcblxuXHRcdC8vQm9vbGVhbiAtIFNob3cgbGluZSBmb3IgZWFjaCB2YWx1ZSBpbiB0aGUgc2NhbGVcblx0XHRzY2FsZVNob3dMaW5lIDogdHJ1ZSxcblxuXHRcdC8vQm9vbGVhbiAtIFN0cm9rZSBhIGxpbmUgYXJvdW5kIGVhY2ggc2VnbWVudCBpbiB0aGUgY2hhcnRcblx0XHRzZWdtZW50U2hvd1N0cm9rZSA6IHRydWUsXG5cblx0XHQvL1N0cmluZyAtIFRoZSBjb2xvdXIgb2YgdGhlIHN0cm9rZSBvbiBlYWNoIHNlZ2VtZW50LlxuXHRcdHNlZ21lbnRTdHJva2VDb2xvciA6IFwiI2ZmZlwiLFxuXG5cdFx0Ly9OdW1iZXIgLSBUaGUgd2lkdGggb2YgdGhlIHN0cm9rZSB2YWx1ZSBpbiBwaXhlbHNcblx0XHRzZWdtZW50U3Ryb2tlV2lkdGggOiAyLFxuXG5cdFx0Ly9OdW1iZXIgLSBBbW91bnQgb2YgYW5pbWF0aW9uIHN0ZXBzXG5cdFx0YW5pbWF0aW9uU3RlcHMgOiAxMDAsXG5cblx0XHQvL1N0cmluZyAtIEFuaW1hdGlvbiBlYXNpbmcgZWZmZWN0LlxuXHRcdGFuaW1hdGlvbkVhc2luZyA6IFwiZWFzZU91dEJvdW5jZVwiLFxuXG5cdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0byBhbmltYXRlIHRoZSByb3RhdGlvbiBvZiB0aGUgY2hhcnRcblx0XHRhbmltYXRlUm90YXRlIDogdHJ1ZSxcblxuXHRcdC8vQm9vbGVhbiAtIFdoZXRoZXIgdG8gYW5pbWF0ZSBzY2FsaW5nIHRoZSBjaGFydCBmcm9tIHRoZSBjZW50cmVcblx0XHRhbmltYXRlU2NhbGUgOiBmYWxzZSxcblxuXHRcdC8vU3RyaW5nIC0gQSBsZWdlbmQgdGVtcGxhdGVcblx0XHRsZWdlbmRUZW1wbGF0ZSA6IFwiPHVsIGNsYXNzPVxcXCI8JT1uYW1lLnRvTG93ZXJDYXNlKCklPi1sZWdlbmRcXFwiPjwlIGZvciAodmFyIGk9MDsgaTxzZWdtZW50cy5sZW5ndGg7IGkrKyl7JT48bGk+PHNwYW4gc3R5bGU9XFxcImJhY2tncm91bmQtY29sb3I6PCU9c2VnbWVudHNbaV0uZmlsbENvbG9yJT5cXFwiPjwvc3Bhbj48JWlmKHNlZ21lbnRzW2ldLmxhYmVsKXslPjwlPXNlZ21lbnRzW2ldLmxhYmVsJT48JX0lPjwvbGk+PCV9JT48L3VsPlwiXG5cdH07XG5cblxuXHRDaGFydC5UeXBlLmV4dGVuZCh7XG5cdFx0Ly9QYXNzaW5nIGluIGEgbmFtZSByZWdpc3RlcnMgdGhpcyBjaGFydCBpbiB0aGUgQ2hhcnQgbmFtZXNwYWNlXG5cdFx0bmFtZTogXCJQb2xhckFyZWFcIixcblx0XHQvL1Byb3ZpZGluZyBhIGRlZmF1bHRzIHdpbGwgYWxzbyByZWdpc3RlciB0aGUgZGVhZnVsdHMgaW4gdGhlIGNoYXJ0IG5hbWVzcGFjZVxuXHRcdGRlZmF1bHRzIDogZGVmYXVsdENvbmZpZyxcblx0XHQvL0luaXRpYWxpemUgaXMgZmlyZWQgd2hlbiB0aGUgY2hhcnQgaXMgaW5pdGlhbGl6ZWQgLSBEYXRhIGlzIHBhc3NlZCBpbiBhcyBhIHBhcmFtZXRlclxuXHRcdC8vQ29uZmlnIGlzIGF1dG9tYXRpY2FsbHkgbWVyZ2VkIGJ5IHRoZSBjb3JlIG9mIENoYXJ0LmpzLCBhbmQgaXMgYXZhaWxhYmxlIGF0IHRoaXMub3B0aW9uc1xuXHRcdGluaXRpYWxpemU6ICBmdW5jdGlvbihkYXRhKXtcblx0XHRcdHRoaXMuc2VnbWVudHMgPSBbXTtcblx0XHRcdC8vRGVjbGFyZSBzZWdtZW50IGNsYXNzIGFzIGEgY2hhcnQgaW5zdGFuY2Ugc3BlY2lmaWMgY2xhc3MsIHNvIGl0IGNhbiBzaGFyZSBwcm9wcyBmb3IgdGhpcyBpbnN0YW5jZVxuXHRcdFx0dGhpcy5TZWdtZW50QXJjID0gQ2hhcnQuQXJjLmV4dGVuZCh7XG5cdFx0XHRcdHNob3dTdHJva2UgOiB0aGlzLm9wdGlvbnMuc2VnbWVudFNob3dTdHJva2UsXG5cdFx0XHRcdHN0cm9rZVdpZHRoIDogdGhpcy5vcHRpb25zLnNlZ21lbnRTdHJva2VXaWR0aCxcblx0XHRcdFx0c3Ryb2tlQ29sb3IgOiB0aGlzLm9wdGlvbnMuc2VnbWVudFN0cm9rZUNvbG9yLFxuXHRcdFx0XHRjdHggOiB0aGlzLmNoYXJ0LmN0eCxcblx0XHRcdFx0aW5uZXJSYWRpdXMgOiAwLFxuXHRcdFx0XHR4IDogdGhpcy5jaGFydC53aWR0aC8yLFxuXHRcdFx0XHR5IDogdGhpcy5jaGFydC5oZWlnaHQvMlxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnNjYWxlID0gbmV3IENoYXJ0LlJhZGlhbFNjYWxlKHtcblx0XHRcdFx0ZGlzcGxheTogdGhpcy5vcHRpb25zLnNob3dTY2FsZSxcblx0XHRcdFx0Zm9udFN0eWxlOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250U3R5bGUsXG5cdFx0XHRcdGZvbnRTaXplOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250U2l6ZSxcblx0XHRcdFx0Zm9udEZhbWlseTogdGhpcy5vcHRpb25zLnNjYWxlRm9udEZhbWlseSxcblx0XHRcdFx0Zm9udENvbG9yOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250Q29sb3IsXG5cdFx0XHRcdHNob3dMYWJlbHM6IHRoaXMub3B0aW9ucy5zY2FsZVNob3dMYWJlbHMsXG5cdFx0XHRcdHNob3dMYWJlbEJhY2tkcm9wOiB0aGlzLm9wdGlvbnMuc2NhbGVTaG93TGFiZWxCYWNrZHJvcCxcblx0XHRcdFx0YmFja2Ryb3BDb2xvcjogdGhpcy5vcHRpb25zLnNjYWxlQmFja2Ryb3BDb2xvcixcblx0XHRcdFx0YmFja2Ryb3BQYWRkaW5nWSA6IHRoaXMub3B0aW9ucy5zY2FsZUJhY2tkcm9wUGFkZGluZ1ksXG5cdFx0XHRcdGJhY2tkcm9wUGFkZGluZ1g6IHRoaXMub3B0aW9ucy5zY2FsZUJhY2tkcm9wUGFkZGluZ1gsXG5cdFx0XHRcdGxpbmVXaWR0aDogKHRoaXMub3B0aW9ucy5zY2FsZVNob3dMaW5lKSA/IHRoaXMub3B0aW9ucy5zY2FsZUxpbmVXaWR0aCA6IDAsXG5cdFx0XHRcdGxpbmVDb2xvcjogdGhpcy5vcHRpb25zLnNjYWxlTGluZUNvbG9yLFxuXHRcdFx0XHRsaW5lQXJjOiB0cnVlLFxuXHRcdFx0XHR3aWR0aDogdGhpcy5jaGFydC53aWR0aCxcblx0XHRcdFx0aGVpZ2h0OiB0aGlzLmNoYXJ0LmhlaWdodCxcblx0XHRcdFx0eENlbnRlcjogdGhpcy5jaGFydC53aWR0aC8yLFxuXHRcdFx0XHR5Q2VudGVyOiB0aGlzLmNoYXJ0LmhlaWdodC8yLFxuXHRcdFx0XHRjdHggOiB0aGlzLmNoYXJ0LmN0eCxcblx0XHRcdFx0dGVtcGxhdGVTdHJpbmc6IHRoaXMub3B0aW9ucy5zY2FsZUxhYmVsLFxuXHRcdFx0XHR2YWx1ZXNDb3VudDogZGF0YS5sZW5ndGhcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLnVwZGF0ZVNjYWxlUmFuZ2UoZGF0YSk7XG5cblx0XHRcdHRoaXMuc2NhbGUudXBkYXRlKCk7XG5cblx0XHRcdGhlbHBlcnMuZWFjaChkYXRhLGZ1bmN0aW9uKHNlZ21lbnQsaW5kZXgpe1xuXHRcdFx0XHR0aGlzLmFkZERhdGEoc2VnbWVudCxpbmRleCx0cnVlKTtcblx0XHRcdH0sdGhpcyk7XG5cblx0XHRcdC8vU2V0IHVwIHRvb2x0aXAgZXZlbnRzIG9uIHRoZSBjaGFydFxuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5zaG93VG9vbHRpcHMpe1xuXHRcdFx0XHRoZWxwZXJzLmJpbmRFdmVudHModGhpcywgdGhpcy5vcHRpb25zLnRvb2x0aXBFdmVudHMsIGZ1bmN0aW9uKGV2dCl7XG5cdFx0XHRcdFx0dmFyIGFjdGl2ZVNlZ21lbnRzID0gKGV2dC50eXBlICE9PSAnbW91c2VvdXQnKSA/IHRoaXMuZ2V0U2VnbWVudHNBdEV2ZW50KGV2dCkgOiBbXTtcblx0XHRcdFx0XHRoZWxwZXJzLmVhY2godGhpcy5zZWdtZW50cyxmdW5jdGlvbihzZWdtZW50KXtcblx0XHRcdFx0XHRcdHNlZ21lbnQucmVzdG9yZShbXCJmaWxsQ29sb3JcIl0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGhlbHBlcnMuZWFjaChhY3RpdmVTZWdtZW50cyxmdW5jdGlvbihhY3RpdmVTZWdtZW50KXtcblx0XHRcdFx0XHRcdGFjdGl2ZVNlZ21lbnQuZmlsbENvbG9yID0gYWN0aXZlU2VnbWVudC5oaWdobGlnaHRDb2xvcjtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnNob3dUb29sdGlwKGFjdGl2ZVNlZ21lbnRzKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0fSxcblx0XHRnZXRTZWdtZW50c0F0RXZlbnQgOiBmdW5jdGlvbihlKXtcblx0XHRcdHZhciBzZWdtZW50c0FycmF5ID0gW107XG5cblx0XHRcdHZhciBsb2NhdGlvbiA9IGhlbHBlcnMuZ2V0UmVsYXRpdmVQb3NpdGlvbihlKTtcblxuXHRcdFx0aGVscGVycy5lYWNoKHRoaXMuc2VnbWVudHMsZnVuY3Rpb24oc2VnbWVudCl7XG5cdFx0XHRcdGlmIChzZWdtZW50LmluUmFuZ2UobG9jYXRpb24ueCxsb2NhdGlvbi55KSkgc2VnbWVudHNBcnJheS5wdXNoKHNlZ21lbnQpO1xuXHRcdFx0fSx0aGlzKTtcblx0XHRcdHJldHVybiBzZWdtZW50c0FycmF5O1xuXHRcdH0sXG5cdFx0YWRkRGF0YSA6IGZ1bmN0aW9uKHNlZ21lbnQsIGF0SW5kZXgsIHNpbGVudCl7XG5cdFx0XHR2YXIgaW5kZXggPSBhdEluZGV4IHx8IHRoaXMuc2VnbWVudHMubGVuZ3RoO1xuXG5cdFx0XHR0aGlzLnNlZ21lbnRzLnNwbGljZShpbmRleCwgMCwgbmV3IHRoaXMuU2VnbWVudEFyYyh7XG5cdFx0XHRcdGZpbGxDb2xvcjogc2VnbWVudC5jb2xvcixcblx0XHRcdFx0aGlnaGxpZ2h0Q29sb3I6IHNlZ21lbnQuaGlnaGxpZ2h0IHx8IHNlZ21lbnQuY29sb3IsXG5cdFx0XHRcdGxhYmVsOiBzZWdtZW50LmxhYmVsLFxuXHRcdFx0XHR2YWx1ZTogc2VnbWVudC52YWx1ZSxcblx0XHRcdFx0b3V0ZXJSYWRpdXM6ICh0aGlzLm9wdGlvbnMuYW5pbWF0ZVNjYWxlKSA/IDAgOiB0aGlzLnNjYWxlLmNhbGN1bGF0ZUNlbnRlck9mZnNldChzZWdtZW50LnZhbHVlKSxcblx0XHRcdFx0Y2lyY3VtZmVyZW5jZTogKHRoaXMub3B0aW9ucy5hbmltYXRlUm90YXRlKSA/IDAgOiB0aGlzLnNjYWxlLmdldENpcmN1bWZlcmVuY2UoKSxcblx0XHRcdFx0c3RhcnRBbmdsZTogTWF0aC5QSSAqIDEuNVxuXHRcdFx0fSkpO1xuXHRcdFx0aWYgKCFzaWxlbnQpe1xuXHRcdFx0XHR0aGlzLnJlZmxvdygpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZSgpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0cmVtb3ZlRGF0YTogZnVuY3Rpb24oYXRJbmRleCl7XG5cdFx0XHR2YXIgaW5kZXhUb0RlbGV0ZSA9IChoZWxwZXJzLmlzTnVtYmVyKGF0SW5kZXgpKSA/IGF0SW5kZXggOiB0aGlzLnNlZ21lbnRzLmxlbmd0aC0xO1xuXHRcdFx0dGhpcy5zZWdtZW50cy5zcGxpY2UoaW5kZXhUb0RlbGV0ZSwgMSk7XG5cdFx0XHR0aGlzLnJlZmxvdygpO1xuXHRcdFx0dGhpcy51cGRhdGUoKTtcblx0XHR9LFxuXHRcdGNhbGN1bGF0ZVRvdGFsOiBmdW5jdGlvbihkYXRhKXtcblx0XHRcdHRoaXMudG90YWwgPSAwO1xuXHRcdFx0aGVscGVycy5lYWNoKGRhdGEsZnVuY3Rpb24oc2VnbWVudCl7XG5cdFx0XHRcdHRoaXMudG90YWwgKz0gc2VnbWVudC52YWx1ZTtcblx0XHRcdH0sdGhpcyk7XG5cdFx0XHR0aGlzLnNjYWxlLnZhbHVlc0NvdW50ID0gdGhpcy5zZWdtZW50cy5sZW5ndGg7XG5cdFx0fSxcblx0XHR1cGRhdGVTY2FsZVJhbmdlOiBmdW5jdGlvbihkYXRhcG9pbnRzKXtcblx0XHRcdHZhciB2YWx1ZXNBcnJheSA9IFtdO1xuXHRcdFx0aGVscGVycy5lYWNoKGRhdGFwb2ludHMsZnVuY3Rpb24oc2VnbWVudCl7XG5cdFx0XHRcdHZhbHVlc0FycmF5LnB1c2goc2VnbWVudC52YWx1ZSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dmFyIHNjYWxlU2l6ZXMgPSAodGhpcy5vcHRpb25zLnNjYWxlT3ZlcnJpZGUpID9cblx0XHRcdFx0e1xuXHRcdFx0XHRcdHN0ZXBzOiB0aGlzLm9wdGlvbnMuc2NhbGVTdGVwcyxcblx0XHRcdFx0XHRzdGVwVmFsdWU6IHRoaXMub3B0aW9ucy5zY2FsZVN0ZXBXaWR0aCxcblx0XHRcdFx0XHRtaW46IHRoaXMub3B0aW9ucy5zY2FsZVN0YXJ0VmFsdWUsXG5cdFx0XHRcdFx0bWF4OiB0aGlzLm9wdGlvbnMuc2NhbGVTdGFydFZhbHVlICsgKHRoaXMub3B0aW9ucy5zY2FsZVN0ZXBzICogdGhpcy5vcHRpb25zLnNjYWxlU3RlcFdpZHRoKVxuXHRcdFx0XHR9IDpcblx0XHRcdFx0aGVscGVycy5jYWxjdWxhdGVTY2FsZVJhbmdlKFxuXHRcdFx0XHRcdHZhbHVlc0FycmF5LFxuXHRcdFx0XHRcdGhlbHBlcnMubWluKFt0aGlzLmNoYXJ0LndpZHRoLCB0aGlzLmNoYXJ0LmhlaWdodF0pLzIsXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnNjYWxlRm9udFNpemUsXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnNjYWxlQmVnaW5BdFplcm8sXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnNjYWxlSW50ZWdlcnNPbmx5XG5cdFx0XHRcdCk7XG5cblx0XHRcdGhlbHBlcnMuZXh0ZW5kKFxuXHRcdFx0XHR0aGlzLnNjYWxlLFxuXHRcdFx0XHRzY2FsZVNpemVzLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0c2l6ZTogaGVscGVycy5taW4oW3RoaXMuY2hhcnQud2lkdGgsIHRoaXMuY2hhcnQuaGVpZ2h0XSksXG5cdFx0XHRcdFx0eENlbnRlcjogdGhpcy5jaGFydC53aWR0aC8yLFxuXHRcdFx0XHRcdHlDZW50ZXI6IHRoaXMuY2hhcnQuaGVpZ2h0LzJcblx0XHRcdFx0fVxuXHRcdFx0KTtcblxuXHRcdH0sXG5cdFx0dXBkYXRlIDogZnVuY3Rpb24oKXtcblx0XHRcdHRoaXMuY2FsY3VsYXRlVG90YWwodGhpcy5zZWdtZW50cyk7XG5cblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLnNlZ21lbnRzLGZ1bmN0aW9uKHNlZ21lbnQpe1xuXHRcdFx0XHRzZWdtZW50LnNhdmUoKTtcblx0XHRcdH0pO1xuXHRcdFx0XG5cdFx0XHR0aGlzLnJlZmxvdygpO1xuXHRcdFx0dGhpcy5yZW5kZXIoKTtcblx0XHR9LFxuXHRcdHJlZmxvdyA6IGZ1bmN0aW9uKCl7XG5cdFx0XHRoZWxwZXJzLmV4dGVuZCh0aGlzLlNlZ21lbnRBcmMucHJvdG90eXBlLHtcblx0XHRcdFx0eCA6IHRoaXMuY2hhcnQud2lkdGgvMixcblx0XHRcdFx0eSA6IHRoaXMuY2hhcnQuaGVpZ2h0LzJcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy51cGRhdGVTY2FsZVJhbmdlKHRoaXMuc2VnbWVudHMpO1xuXHRcdFx0dGhpcy5zY2FsZS51cGRhdGUoKTtcblxuXHRcdFx0aGVscGVycy5leHRlbmQodGhpcy5zY2FsZSx7XG5cdFx0XHRcdHhDZW50ZXI6IHRoaXMuY2hhcnQud2lkdGgvMixcblx0XHRcdFx0eUNlbnRlcjogdGhpcy5jaGFydC5oZWlnaHQvMlxuXHRcdFx0fSk7XG5cblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLnNlZ21lbnRzLCBmdW5jdGlvbihzZWdtZW50KXtcblx0XHRcdFx0c2VnbWVudC51cGRhdGUoe1xuXHRcdFx0XHRcdG91dGVyUmFkaXVzIDogdGhpcy5zY2FsZS5jYWxjdWxhdGVDZW50ZXJPZmZzZXQoc2VnbWVudC52YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9LCB0aGlzKTtcblxuXHRcdH0sXG5cdFx0ZHJhdyA6IGZ1bmN0aW9uKGVhc2Upe1xuXHRcdFx0dmFyIGVhc2luZ0RlY2ltYWwgPSBlYXNlIHx8IDE7XG5cdFx0XHQvL0NsZWFyICYgZHJhdyB0aGUgY2FudmFzXG5cdFx0XHR0aGlzLmNsZWFyKCk7XG5cdFx0XHRoZWxwZXJzLmVhY2godGhpcy5zZWdtZW50cyxmdW5jdGlvbihzZWdtZW50LCBpbmRleCl7XG5cdFx0XHRcdHNlZ21lbnQudHJhbnNpdGlvbih7XG5cdFx0XHRcdFx0Y2lyY3VtZmVyZW5jZSA6IHRoaXMuc2NhbGUuZ2V0Q2lyY3VtZmVyZW5jZSgpLFxuXHRcdFx0XHRcdG91dGVyUmFkaXVzIDogdGhpcy5zY2FsZS5jYWxjdWxhdGVDZW50ZXJPZmZzZXQoc2VnbWVudC52YWx1ZSlcblx0XHRcdFx0fSxlYXNpbmdEZWNpbWFsKTtcblxuXHRcdFx0XHRzZWdtZW50LmVuZEFuZ2xlID0gc2VnbWVudC5zdGFydEFuZ2xlICsgc2VnbWVudC5jaXJjdW1mZXJlbmNlO1xuXG5cdFx0XHRcdC8vIElmIHdlJ3ZlIHJlbW92ZWQgdGhlIGZpcnN0IHNlZ21lbnQgd2UgbmVlZCB0byBzZXQgdGhlIGZpcnN0IG9uZSB0b1xuXHRcdFx0XHQvLyBzdGFydCBhdCB0aGUgdG9wLlxuXHRcdFx0XHRpZiAoaW5kZXggPT09IDApe1xuXHRcdFx0XHRcdHNlZ21lbnQuc3RhcnRBbmdsZSA9IE1hdGguUEkgKiAxLjU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvL0NoZWNrIHRvIHNlZSBpZiBpdCdzIHRoZSBsYXN0IHNlZ21lbnQsIGlmIG5vdCBnZXQgdGhlIG5leHQgYW5kIHVwZGF0ZSB0aGUgc3RhcnQgYW5nbGVcblx0XHRcdFx0aWYgKGluZGV4IDwgdGhpcy5zZWdtZW50cy5sZW5ndGggLSAxKXtcblx0XHRcdFx0XHR0aGlzLnNlZ21lbnRzW2luZGV4KzFdLnN0YXJ0QW5nbGUgPSBzZWdtZW50LmVuZEFuZ2xlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNlZ21lbnQuZHJhdygpO1xuXHRcdFx0fSwgdGhpcyk7XG5cdFx0XHR0aGlzLnNjYWxlLmRyYXcoKTtcblx0XHR9XG5cdH0pO1xuXG59KS5jYWxsKHRoaXMpO1xuKGZ1bmN0aW9uKCl7XG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdHZhciByb290ID0gdGhpcyxcblx0XHRDaGFydCA9IHJvb3QuQ2hhcnQsXG5cdFx0aGVscGVycyA9IENoYXJ0LmhlbHBlcnM7XG5cblxuXG5cdENoYXJ0LlR5cGUuZXh0ZW5kKHtcblx0XHRuYW1lOiBcIlJhZGFyXCIsXG5cdFx0ZGVmYXVsdHM6e1xuXHRcdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0byBzaG93IGxpbmVzIGZvciBlYWNoIHNjYWxlIHBvaW50XG5cdFx0XHRzY2FsZVNob3dMaW5lIDogdHJ1ZSxcblxuXHRcdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB3ZSBzaG93IHRoZSBhbmdsZSBsaW5lcyBvdXQgb2YgdGhlIHJhZGFyXG5cdFx0XHRhbmdsZVNob3dMaW5lT3V0IDogdHJ1ZSxcblxuXHRcdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0byBzaG93IGxhYmVscyBvbiB0aGUgc2NhbGVcblx0XHRcdHNjYWxlU2hvd0xhYmVscyA6IGZhbHNlLFxuXG5cdFx0XHQvLyBCb29sZWFuIC0gV2hldGhlciB0aGUgc2NhbGUgc2hvdWxkIGJlZ2luIGF0IHplcm9cblx0XHRcdHNjYWxlQmVnaW5BdFplcm8gOiB0cnVlLFxuXG5cdFx0XHQvL1N0cmluZyAtIENvbG91ciBvZiB0aGUgYW5nbGUgbGluZVxuXHRcdFx0YW5nbGVMaW5lQ29sb3IgOiBcInJnYmEoMCwwLDAsLjEpXCIsXG5cblx0XHRcdC8vTnVtYmVyIC0gUGl4ZWwgd2lkdGggb2YgdGhlIGFuZ2xlIGxpbmVcblx0XHRcdGFuZ2xlTGluZVdpZHRoIDogMSxcblxuXHRcdFx0Ly9TdHJpbmcgLSBQb2ludCBsYWJlbCBmb250IGRlY2xhcmF0aW9uXG5cdFx0XHRwb2ludExhYmVsRm9udEZhbWlseSA6IFwiJ0FyaWFsJ1wiLFxuXG5cdFx0XHQvL1N0cmluZyAtIFBvaW50IGxhYmVsIGZvbnQgd2VpZ2h0XG5cdFx0XHRwb2ludExhYmVsRm9udFN0eWxlIDogXCJub3JtYWxcIixcblxuXHRcdFx0Ly9OdW1iZXIgLSBQb2ludCBsYWJlbCBmb250IHNpemUgaW4gcGl4ZWxzXG5cdFx0XHRwb2ludExhYmVsRm9udFNpemUgOiAxMCxcblxuXHRcdFx0Ly9TdHJpbmcgLSBQb2ludCBsYWJlbCBmb250IGNvbG91clxuXHRcdFx0cG9pbnRMYWJlbEZvbnRDb2xvciA6IFwiIzY2NlwiLFxuXG5cdFx0XHQvL0Jvb2xlYW4gLSBXaGV0aGVyIHRvIHNob3cgYSBkb3QgZm9yIGVhY2ggcG9pbnRcblx0XHRcdHBvaW50RG90IDogdHJ1ZSxcblxuXHRcdFx0Ly9OdW1iZXIgLSBSYWRpdXMgb2YgZWFjaCBwb2ludCBkb3QgaW4gcGl4ZWxzXG5cdFx0XHRwb2ludERvdFJhZGl1cyA6IDMsXG5cblx0XHRcdC8vTnVtYmVyIC0gUGl4ZWwgd2lkdGggb2YgcG9pbnQgZG90IHN0cm9rZVxuXHRcdFx0cG9pbnREb3RTdHJva2VXaWR0aCA6IDEsXG5cblx0XHRcdC8vTnVtYmVyIC0gYW1vdW50IGV4dHJhIHRvIGFkZCB0byB0aGUgcmFkaXVzIHRvIGNhdGVyIGZvciBoaXQgZGV0ZWN0aW9uIG91dHNpZGUgdGhlIGRyYXduIHBvaW50XG5cdFx0XHRwb2ludEhpdERldGVjdGlvblJhZGl1cyA6IDIwLFxuXG5cdFx0XHQvL0Jvb2xlYW4gLSBXaGV0aGVyIHRvIHNob3cgYSBzdHJva2UgZm9yIGRhdGFzZXRzXG5cdFx0XHRkYXRhc2V0U3Ryb2tlIDogdHJ1ZSxcblxuXHRcdFx0Ly9OdW1iZXIgLSBQaXhlbCB3aWR0aCBvZiBkYXRhc2V0IHN0cm9rZVxuXHRcdFx0ZGF0YXNldFN0cm9rZVdpZHRoIDogMixcblxuXHRcdFx0Ly9Cb29sZWFuIC0gV2hldGhlciB0byBmaWxsIHRoZSBkYXRhc2V0IHdpdGggYSBjb2xvdXJcblx0XHRcdGRhdGFzZXRGaWxsIDogdHJ1ZSxcblxuXHRcdFx0Ly9TdHJpbmcgLSBBIGxlZ2VuZCB0ZW1wbGF0ZVxuXHRcdFx0bGVnZW5kVGVtcGxhdGUgOiBcIjx1bCBjbGFzcz1cXFwiPCU9bmFtZS50b0xvd2VyQ2FzZSgpJT4tbGVnZW5kXFxcIj48JSBmb3IgKHZhciBpPTA7IGk8ZGF0YXNldHMubGVuZ3RoOyBpKyspeyU+PGxpPjxzcGFuIHN0eWxlPVxcXCJiYWNrZ3JvdW5kLWNvbG9yOjwlPWRhdGFzZXRzW2ldLnN0cm9rZUNvbG9yJT5cXFwiPjwvc3Bhbj48JWlmKGRhdGFzZXRzW2ldLmxhYmVsKXslPjwlPWRhdGFzZXRzW2ldLmxhYmVsJT48JX0lPjwvbGk+PCV9JT48L3VsPlwiXG5cblx0XHR9LFxuXG5cdFx0aW5pdGlhbGl6ZTogZnVuY3Rpb24oZGF0YSl7XG5cdFx0XHR0aGlzLlBvaW50Q2xhc3MgPSBDaGFydC5Qb2ludC5leHRlbmQoe1xuXHRcdFx0XHRzdHJva2VXaWR0aCA6IHRoaXMub3B0aW9ucy5wb2ludERvdFN0cm9rZVdpZHRoLFxuXHRcdFx0XHRyYWRpdXMgOiB0aGlzLm9wdGlvbnMucG9pbnREb3RSYWRpdXMsXG5cdFx0XHRcdGRpc3BsYXk6IHRoaXMub3B0aW9ucy5wb2ludERvdCxcblx0XHRcdFx0aGl0RGV0ZWN0aW9uUmFkaXVzIDogdGhpcy5vcHRpb25zLnBvaW50SGl0RGV0ZWN0aW9uUmFkaXVzLFxuXHRcdFx0XHRjdHggOiB0aGlzLmNoYXJ0LmN0eFxuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuZGF0YXNldHMgPSBbXTtcblxuXHRcdFx0dGhpcy5idWlsZFNjYWxlKGRhdGEpO1xuXG5cdFx0XHQvL1NldCB1cCB0b29sdGlwIGV2ZW50cyBvbiB0aGUgY2hhcnRcblx0XHRcdGlmICh0aGlzLm9wdGlvbnMuc2hvd1Rvb2x0aXBzKXtcblx0XHRcdFx0aGVscGVycy5iaW5kRXZlbnRzKHRoaXMsIHRoaXMub3B0aW9ucy50b29sdGlwRXZlbnRzLCBmdW5jdGlvbihldnQpe1xuXHRcdFx0XHRcdHZhciBhY3RpdmVQb2ludHNDb2xsZWN0aW9uID0gKGV2dC50eXBlICE9PSAnbW91c2VvdXQnKSA/IHRoaXMuZ2V0UG9pbnRzQXRFdmVudChldnQpIDogW107XG5cblx0XHRcdFx0XHR0aGlzLmVhY2hQb2ludHMoZnVuY3Rpb24ocG9pbnQpe1xuXHRcdFx0XHRcdFx0cG9pbnQucmVzdG9yZShbJ2ZpbGxDb2xvcicsICdzdHJva2VDb2xvciddKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRoZWxwZXJzLmVhY2goYWN0aXZlUG9pbnRzQ29sbGVjdGlvbiwgZnVuY3Rpb24oYWN0aXZlUG9pbnQpe1xuXHRcdFx0XHRcdFx0YWN0aXZlUG9pbnQuZmlsbENvbG9yID0gYWN0aXZlUG9pbnQuaGlnaGxpZ2h0RmlsbDtcblx0XHRcdFx0XHRcdGFjdGl2ZVBvaW50LnN0cm9rZUNvbG9yID0gYWN0aXZlUG9pbnQuaGlnaGxpZ2h0U3Ryb2tlO1xuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcChhY3RpdmVQb2ludHNDb2xsZWN0aW9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdC8vSXRlcmF0ZSB0aHJvdWdoIGVhY2ggb2YgdGhlIGRhdGFzZXRzLCBhbmQgYnVpbGQgdGhpcyBpbnRvIGEgcHJvcGVydHkgb2YgdGhlIGNoYXJ0XG5cdFx0XHRoZWxwZXJzLmVhY2goZGF0YS5kYXRhc2V0cyxmdW5jdGlvbihkYXRhc2V0KXtcblxuXHRcdFx0XHR2YXIgZGF0YXNldE9iamVjdCA9IHtcblx0XHRcdFx0XHRsYWJlbDogZGF0YXNldC5sYWJlbCB8fCBudWxsLFxuXHRcdFx0XHRcdGZpbGxDb2xvciA6IGRhdGFzZXQuZmlsbENvbG9yLFxuXHRcdFx0XHRcdHN0cm9rZUNvbG9yIDogZGF0YXNldC5zdHJva2VDb2xvcixcblx0XHRcdFx0XHRwb2ludENvbG9yIDogZGF0YXNldC5wb2ludENvbG9yLFxuXHRcdFx0XHRcdHBvaW50U3Ryb2tlQ29sb3IgOiBkYXRhc2V0LnBvaW50U3Ryb2tlQ29sb3IsXG5cdFx0XHRcdFx0cG9pbnRzIDogW11cblx0XHRcdFx0fTtcblxuXHRcdFx0XHR0aGlzLmRhdGFzZXRzLnB1c2goZGF0YXNldE9iamVjdCk7XG5cblx0XHRcdFx0aGVscGVycy5lYWNoKGRhdGFzZXQuZGF0YSxmdW5jdGlvbihkYXRhUG9pbnQsaW5kZXgpe1xuXHRcdFx0XHRcdC8vQWRkIGEgbmV3IHBvaW50IGZvciBlYWNoIHBpZWNlIG9mIGRhdGEsIHBhc3NpbmcgYW55IHJlcXVpcmVkIGRhdGEgdG8gZHJhdy5cblx0XHRcdFx0XHR2YXIgcG9pbnRQb3NpdGlvbjtcblx0XHRcdFx0XHRpZiAoIXRoaXMuc2NhbGUuYW5pbWF0aW9uKXtcblx0XHRcdFx0XHRcdHBvaW50UG9zaXRpb24gPSB0aGlzLnNjYWxlLmdldFBvaW50UG9zaXRpb24oaW5kZXgsIHRoaXMuc2NhbGUuY2FsY3VsYXRlQ2VudGVyT2Zmc2V0KGRhdGFQb2ludCkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkYXRhc2V0T2JqZWN0LnBvaW50cy5wdXNoKG5ldyB0aGlzLlBvaW50Q2xhc3Moe1xuXHRcdFx0XHRcdFx0dmFsdWUgOiBkYXRhUG9pbnQsXG5cdFx0XHRcdFx0XHRsYWJlbCA6IGRhdGEubGFiZWxzW2luZGV4XSxcblx0XHRcdFx0XHRcdGRhdGFzZXRMYWJlbDogZGF0YXNldC5sYWJlbCxcblx0XHRcdFx0XHRcdHg6ICh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKSA/IHRoaXMuc2NhbGUueENlbnRlciA6IHBvaW50UG9zaXRpb24ueCxcblx0XHRcdFx0XHRcdHk6ICh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKSA/IHRoaXMuc2NhbGUueUNlbnRlciA6IHBvaW50UG9zaXRpb24ueSxcblx0XHRcdFx0XHRcdHN0cm9rZUNvbG9yIDogZGF0YXNldC5wb2ludFN0cm9rZUNvbG9yLFxuXHRcdFx0XHRcdFx0ZmlsbENvbG9yIDogZGF0YXNldC5wb2ludENvbG9yLFxuXHRcdFx0XHRcdFx0aGlnaGxpZ2h0RmlsbCA6IGRhdGFzZXQucG9pbnRIaWdobGlnaHRGaWxsIHx8IGRhdGFzZXQucG9pbnRDb2xvcixcblx0XHRcdFx0XHRcdGhpZ2hsaWdodFN0cm9rZSA6IGRhdGFzZXQucG9pbnRIaWdobGlnaHRTdHJva2UgfHwgZGF0YXNldC5wb2ludFN0cm9rZUNvbG9yXG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0XHR9LHRoaXMpO1xuXG5cdFx0XHR9LHRoaXMpO1xuXG5cdFx0XHR0aGlzLnJlbmRlcigpO1xuXHRcdH0sXG5cdFx0ZWFjaFBvaW50cyA6IGZ1bmN0aW9uKGNhbGxiYWNrKXtcblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQpe1xuXHRcdFx0XHRoZWxwZXJzLmVhY2goZGF0YXNldC5wb2ludHMsY2FsbGJhY2ssdGhpcyk7XG5cdFx0XHR9LHRoaXMpO1xuXHRcdH0sXG5cblx0XHRnZXRQb2ludHNBdEV2ZW50IDogZnVuY3Rpb24oZXZ0KXtcblx0XHRcdHZhciBtb3VzZVBvc2l0aW9uID0gaGVscGVycy5nZXRSZWxhdGl2ZVBvc2l0aW9uKGV2dCksXG5cdFx0XHRcdGZyb21DZW50ZXIgPSBoZWxwZXJzLmdldEFuZ2xlRnJvbVBvaW50KHtcblx0XHRcdFx0XHR4OiB0aGlzLnNjYWxlLnhDZW50ZXIsXG5cdFx0XHRcdFx0eTogdGhpcy5zY2FsZS55Q2VudGVyXG5cdFx0XHRcdH0sIG1vdXNlUG9zaXRpb24pO1xuXG5cdFx0XHR2YXIgYW5nbGVQZXJJbmRleCA9IChNYXRoLlBJICogMikgL3RoaXMuc2NhbGUudmFsdWVzQ291bnQsXG5cdFx0XHRcdHBvaW50SW5kZXggPSBNYXRoLnJvdW5kKChmcm9tQ2VudGVyLmFuZ2xlIC0gTWF0aC5QSSAqIDEuNSkgLyBhbmdsZVBlckluZGV4KSxcblx0XHRcdFx0YWN0aXZlUG9pbnRzQ29sbGVjdGlvbiA9IFtdO1xuXG5cdFx0XHQvLyBJZiB3ZSdyZSBhdCB0aGUgdG9wLCBtYWtlIHRoZSBwb2ludEluZGV4IDAgdG8gZ2V0IHRoZSBmaXJzdCBvZiB0aGUgYXJyYXkuXG5cdFx0XHRpZiAocG9pbnRJbmRleCA+PSB0aGlzLnNjYWxlLnZhbHVlc0NvdW50IHx8IHBvaW50SW5kZXggPCAwKXtcblx0XHRcdFx0cG9pbnRJbmRleCA9IDA7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChmcm9tQ2VudGVyLmRpc3RhbmNlIDw9IHRoaXMuc2NhbGUuZHJhd2luZ0FyZWEpe1xuXHRcdFx0XHRoZWxwZXJzLmVhY2godGhpcy5kYXRhc2V0cywgZnVuY3Rpb24oZGF0YXNldCl7XG5cdFx0XHRcdFx0YWN0aXZlUG9pbnRzQ29sbGVjdGlvbi5wdXNoKGRhdGFzZXQucG9pbnRzW3BvaW50SW5kZXhdKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBhY3RpdmVQb2ludHNDb2xsZWN0aW9uO1xuXHRcdH0sXG5cblx0XHRidWlsZFNjYWxlIDogZnVuY3Rpb24oZGF0YSl7XG5cdFx0XHR0aGlzLnNjYWxlID0gbmV3IENoYXJ0LlJhZGlhbFNjYWxlKHtcblx0XHRcdFx0ZGlzcGxheTogdGhpcy5vcHRpb25zLnNob3dTY2FsZSxcblx0XHRcdFx0Zm9udFN0eWxlOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250U3R5bGUsXG5cdFx0XHRcdGZvbnRTaXplOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250U2l6ZSxcblx0XHRcdFx0Zm9udEZhbWlseTogdGhpcy5vcHRpb25zLnNjYWxlRm9udEZhbWlseSxcblx0XHRcdFx0Zm9udENvbG9yOiB0aGlzLm9wdGlvbnMuc2NhbGVGb250Q29sb3IsXG5cdFx0XHRcdHNob3dMYWJlbHM6IHRoaXMub3B0aW9ucy5zY2FsZVNob3dMYWJlbHMsXG5cdFx0XHRcdHNob3dMYWJlbEJhY2tkcm9wOiB0aGlzLm9wdGlvbnMuc2NhbGVTaG93TGFiZWxCYWNrZHJvcCxcblx0XHRcdFx0YmFja2Ryb3BDb2xvcjogdGhpcy5vcHRpb25zLnNjYWxlQmFja2Ryb3BDb2xvcixcblx0XHRcdFx0YmFja2Ryb3BQYWRkaW5nWSA6IHRoaXMub3B0aW9ucy5zY2FsZUJhY2tkcm9wUGFkZGluZ1ksXG5cdFx0XHRcdGJhY2tkcm9wUGFkZGluZ1g6IHRoaXMub3B0aW9ucy5zY2FsZUJhY2tkcm9wUGFkZGluZ1gsXG5cdFx0XHRcdGxpbmVXaWR0aDogKHRoaXMub3B0aW9ucy5zY2FsZVNob3dMaW5lKSA/IHRoaXMub3B0aW9ucy5zY2FsZUxpbmVXaWR0aCA6IDAsXG5cdFx0XHRcdGxpbmVDb2xvcjogdGhpcy5vcHRpb25zLnNjYWxlTGluZUNvbG9yLFxuXHRcdFx0XHRhbmdsZUxpbmVDb2xvciA6IHRoaXMub3B0aW9ucy5hbmdsZUxpbmVDb2xvcixcblx0XHRcdFx0YW5nbGVMaW5lV2lkdGggOiAodGhpcy5vcHRpb25zLmFuZ2xlU2hvd0xpbmVPdXQpID8gdGhpcy5vcHRpb25zLmFuZ2xlTGluZVdpZHRoIDogMCxcblx0XHRcdFx0Ly8gUG9pbnQgbGFiZWxzIGF0IHRoZSBlZGdlIG9mIGVhY2ggbGluZVxuXHRcdFx0XHRwb2ludExhYmVsRm9udENvbG9yIDogdGhpcy5vcHRpb25zLnBvaW50TGFiZWxGb250Q29sb3IsXG5cdFx0XHRcdHBvaW50TGFiZWxGb250U2l6ZSA6IHRoaXMub3B0aW9ucy5wb2ludExhYmVsRm9udFNpemUsXG5cdFx0XHRcdHBvaW50TGFiZWxGb250RmFtaWx5IDogdGhpcy5vcHRpb25zLnBvaW50TGFiZWxGb250RmFtaWx5LFxuXHRcdFx0XHRwb2ludExhYmVsRm9udFN0eWxlIDogdGhpcy5vcHRpb25zLnBvaW50TGFiZWxGb250U3R5bGUsXG5cdFx0XHRcdGhlaWdodCA6IHRoaXMuY2hhcnQuaGVpZ2h0LFxuXHRcdFx0XHR3aWR0aDogdGhpcy5jaGFydC53aWR0aCxcblx0XHRcdFx0eENlbnRlcjogdGhpcy5jaGFydC53aWR0aC8yLFxuXHRcdFx0XHR5Q2VudGVyOiB0aGlzLmNoYXJ0LmhlaWdodC8yLFxuXHRcdFx0XHRjdHggOiB0aGlzLmNoYXJ0LmN0eCxcblx0XHRcdFx0dGVtcGxhdGVTdHJpbmc6IHRoaXMub3B0aW9ucy5zY2FsZUxhYmVsLFxuXHRcdFx0XHRsYWJlbHM6IGRhdGEubGFiZWxzLFxuXHRcdFx0XHR2YWx1ZXNDb3VudDogZGF0YS5kYXRhc2V0c1swXS5kYXRhLmxlbmd0aFxuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuc2NhbGUuc2V0U2NhbGVTaXplKCk7XG5cdFx0XHR0aGlzLnVwZGF0ZVNjYWxlUmFuZ2UoZGF0YS5kYXRhc2V0cyk7XG5cdFx0XHR0aGlzLnNjYWxlLmJ1aWxkWUxhYmVscygpO1xuXHRcdH0sXG5cdFx0dXBkYXRlU2NhbGVSYW5nZTogZnVuY3Rpb24oZGF0YXNldHMpe1xuXHRcdFx0dmFyIHZhbHVlc0FycmF5ID0gKGZ1bmN0aW9uKCl7XG5cdFx0XHRcdHZhciB0b3RhbERhdGFBcnJheSA9IFtdO1xuXHRcdFx0XHRoZWxwZXJzLmVhY2goZGF0YXNldHMsZnVuY3Rpb24oZGF0YXNldCl7XG5cdFx0XHRcdFx0aWYgKGRhdGFzZXQuZGF0YSl7XG5cdFx0XHRcdFx0XHR0b3RhbERhdGFBcnJheSA9IHRvdGFsRGF0YUFycmF5LmNvbmNhdChkYXRhc2V0LmRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGhlbHBlcnMuZWFjaChkYXRhc2V0LnBvaW50cywgZnVuY3Rpb24ocG9pbnQpe1xuXHRcdFx0XHRcdFx0XHR0b3RhbERhdGFBcnJheS5wdXNoKHBvaW50LnZhbHVlKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiB0b3RhbERhdGFBcnJheTtcblx0XHRcdH0pKCk7XG5cblxuXHRcdFx0dmFyIHNjYWxlU2l6ZXMgPSAodGhpcy5vcHRpb25zLnNjYWxlT3ZlcnJpZGUpID9cblx0XHRcdFx0e1xuXHRcdFx0XHRcdHN0ZXBzOiB0aGlzLm9wdGlvbnMuc2NhbGVTdGVwcyxcblx0XHRcdFx0XHRzdGVwVmFsdWU6IHRoaXMub3B0aW9ucy5zY2FsZVN0ZXBXaWR0aCxcblx0XHRcdFx0XHRtaW46IHRoaXMub3B0aW9ucy5zY2FsZVN0YXJ0VmFsdWUsXG5cdFx0XHRcdFx0bWF4OiB0aGlzLm9wdGlvbnMuc2NhbGVTdGFydFZhbHVlICsgKHRoaXMub3B0aW9ucy5zY2FsZVN0ZXBzICogdGhpcy5vcHRpb25zLnNjYWxlU3RlcFdpZHRoKVxuXHRcdFx0XHR9IDpcblx0XHRcdFx0aGVscGVycy5jYWxjdWxhdGVTY2FsZVJhbmdlKFxuXHRcdFx0XHRcdHZhbHVlc0FycmF5LFxuXHRcdFx0XHRcdGhlbHBlcnMubWluKFt0aGlzLmNoYXJ0LndpZHRoLCB0aGlzLmNoYXJ0LmhlaWdodF0pLzIsXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnNjYWxlRm9udFNpemUsXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnNjYWxlQmVnaW5BdFplcm8sXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnNjYWxlSW50ZWdlcnNPbmx5XG5cdFx0XHRcdCk7XG5cblx0XHRcdGhlbHBlcnMuZXh0ZW5kKFxuXHRcdFx0XHR0aGlzLnNjYWxlLFxuXHRcdFx0XHRzY2FsZVNpemVzXG5cdFx0XHQpO1xuXG5cdFx0fSxcblx0XHRhZGREYXRhIDogZnVuY3Rpb24odmFsdWVzQXJyYXksbGFiZWwpe1xuXHRcdFx0Ly9NYXAgdGhlIHZhbHVlcyBhcnJheSBmb3IgZWFjaCBvZiB0aGUgZGF0YXNldHNcblx0XHRcdHRoaXMuc2NhbGUudmFsdWVzQ291bnQrKztcblx0XHRcdGhlbHBlcnMuZWFjaCh2YWx1ZXNBcnJheSxmdW5jdGlvbih2YWx1ZSxkYXRhc2V0SW5kZXgpe1xuXHRcdFx0XHR2YXIgcG9pbnRQb3NpdGlvbiA9IHRoaXMuc2NhbGUuZ2V0UG9pbnRQb3NpdGlvbih0aGlzLnNjYWxlLnZhbHVlc0NvdW50LCB0aGlzLnNjYWxlLmNhbGN1bGF0ZUNlbnRlck9mZnNldCh2YWx1ZSkpO1xuXHRcdFx0XHR0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0ucG9pbnRzLnB1c2gobmV3IHRoaXMuUG9pbnRDbGFzcyh7XG5cdFx0XHRcdFx0dmFsdWUgOiB2YWx1ZSxcblx0XHRcdFx0XHRsYWJlbCA6IGxhYmVsLFxuXHRcdFx0XHRcdHg6IHBvaW50UG9zaXRpb24ueCxcblx0XHRcdFx0XHR5OiBwb2ludFBvc2l0aW9uLnksXG5cdFx0XHRcdFx0c3Ryb2tlQ29sb3IgOiB0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0ucG9pbnRTdHJva2VDb2xvcixcblx0XHRcdFx0XHRmaWxsQ29sb3IgOiB0aGlzLmRhdGFzZXRzW2RhdGFzZXRJbmRleF0ucG9pbnRDb2xvclxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9LHRoaXMpO1xuXG5cdFx0XHR0aGlzLnNjYWxlLmxhYmVscy5wdXNoKGxhYmVsKTtcblxuXHRcdFx0dGhpcy5yZWZsb3coKTtcblxuXHRcdFx0dGhpcy51cGRhdGUoKTtcblx0XHR9LFxuXHRcdHJlbW92ZURhdGEgOiBmdW5jdGlvbigpe1xuXHRcdFx0dGhpcy5zY2FsZS52YWx1ZXNDb3VudC0tO1xuXHRcdFx0dGhpcy5zY2FsZS5sYWJlbHMuc2hpZnQoKTtcblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQpe1xuXHRcdFx0XHRkYXRhc2V0LnBvaW50cy5zaGlmdCgpO1xuXHRcdFx0fSx0aGlzKTtcblx0XHRcdHRoaXMucmVmbG93KCk7XG5cdFx0XHR0aGlzLnVwZGF0ZSgpO1xuXHRcdH0sXG5cdFx0dXBkYXRlIDogZnVuY3Rpb24oKXtcblx0XHRcdHRoaXMuZWFjaFBvaW50cyhmdW5jdGlvbihwb2ludCl7XG5cdFx0XHRcdHBvaW50LnNhdmUoKTtcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5yZWZsb3coKTtcblx0XHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0fSxcblx0XHRyZWZsb3c6IGZ1bmN0aW9uKCl7XG5cdFx0XHRoZWxwZXJzLmV4dGVuZCh0aGlzLnNjYWxlLCB7XG5cdFx0XHRcdHdpZHRoIDogdGhpcy5jaGFydC53aWR0aCxcblx0XHRcdFx0aGVpZ2h0OiB0aGlzLmNoYXJ0LmhlaWdodCxcblx0XHRcdFx0c2l6ZSA6IGhlbHBlcnMubWluKFt0aGlzLmNoYXJ0LndpZHRoLCB0aGlzLmNoYXJ0LmhlaWdodF0pLFxuXHRcdFx0XHR4Q2VudGVyOiB0aGlzLmNoYXJ0LndpZHRoLzIsXG5cdFx0XHRcdHlDZW50ZXI6IHRoaXMuY2hhcnQuaGVpZ2h0LzJcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy51cGRhdGVTY2FsZVJhbmdlKHRoaXMuZGF0YXNldHMpO1xuXHRcdFx0dGhpcy5zY2FsZS5zZXRTY2FsZVNpemUoKTtcblx0XHRcdHRoaXMuc2NhbGUuYnVpbGRZTGFiZWxzKCk7XG5cdFx0fSxcblx0XHRkcmF3IDogZnVuY3Rpb24oZWFzZSl7XG5cdFx0XHR2YXIgZWFzZURlY2ltYWwgPSBlYXNlIHx8IDEsXG5cdFx0XHRcdGN0eCA9IHRoaXMuY2hhcnQuY3R4O1xuXHRcdFx0dGhpcy5jbGVhcigpO1xuXHRcdFx0dGhpcy5zY2FsZS5kcmF3KCk7XG5cblx0XHRcdGhlbHBlcnMuZWFjaCh0aGlzLmRhdGFzZXRzLGZ1bmN0aW9uKGRhdGFzZXQpe1xuXG5cdFx0XHRcdC8vVHJhbnNpdGlvbiBlYWNoIHBvaW50IGZpcnN0IHNvIHRoYXQgdGhlIGxpbmUgYW5kIHBvaW50IGRyYXdpbmcgaXNuJ3Qgb3V0IG9mIHN5bmNcblx0XHRcdFx0aGVscGVycy5lYWNoKGRhdGFzZXQucG9pbnRzLGZ1bmN0aW9uKHBvaW50LGluZGV4KXtcblx0XHRcdFx0XHRpZiAocG9pbnQuaGFzVmFsdWUoKSl7XG5cdFx0XHRcdFx0XHRwb2ludC50cmFuc2l0aW9uKHRoaXMuc2NhbGUuZ2V0UG9pbnRQb3NpdGlvbihpbmRleCwgdGhpcy5zY2FsZS5jYWxjdWxhdGVDZW50ZXJPZmZzZXQocG9pbnQudmFsdWUpKSwgZWFzZURlY2ltYWwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSx0aGlzKTtcblxuXG5cblx0XHRcdFx0Ly9EcmF3IHRoZSBsaW5lIGJldHdlZW4gYWxsIHRoZSBwb2ludHNcblx0XHRcdFx0Y3R4LmxpbmVXaWR0aCA9IHRoaXMub3B0aW9ucy5kYXRhc2V0U3Ryb2tlV2lkdGg7XG5cdFx0XHRcdGN0eC5zdHJva2VTdHlsZSA9IGRhdGFzZXQuc3Ryb2tlQ29sb3I7XG5cdFx0XHRcdGN0eC5iZWdpblBhdGgoKTtcblx0XHRcdFx0aGVscGVycy5lYWNoKGRhdGFzZXQucG9pbnRzLGZ1bmN0aW9uKHBvaW50LGluZGV4KXtcblx0XHRcdFx0XHRpZiAoaW5kZXggPT09IDApe1xuXHRcdFx0XHRcdFx0Y3R4Lm1vdmVUbyhwb2ludC54LHBvaW50LnkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNle1xuXHRcdFx0XHRcdFx0Y3R4LmxpbmVUbyhwb2ludC54LHBvaW50LnkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSx0aGlzKTtcblx0XHRcdFx0Y3R4LmNsb3NlUGF0aCgpO1xuXHRcdFx0XHRjdHguc3Ryb2tlKCk7XG5cblx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IGRhdGFzZXQuZmlsbENvbG9yO1xuXHRcdFx0XHRjdHguZmlsbCgpO1xuXG5cdFx0XHRcdC8vTm93IGRyYXcgdGhlIHBvaW50cyBvdmVyIHRoZSBsaW5lXG5cdFx0XHRcdC8vQSBsaXR0bGUgaW5lZmZpY2llbnQgZG91YmxlIGxvb3BpbmcsIGJ1dCBiZXR0ZXIgdGhhbiB0aGUgbGluZVxuXHRcdFx0XHQvL2xhZ2dpbmcgYmVoaW5kIHRoZSBwb2ludCBwb3NpdGlvbnNcblx0XHRcdFx0aGVscGVycy5lYWNoKGRhdGFzZXQucG9pbnRzLGZ1bmN0aW9uKHBvaW50KXtcblx0XHRcdFx0XHRpZiAocG9pbnQuaGFzVmFsdWUoKSl7XG5cdFx0XHRcdFx0XHRwb2ludC5kcmF3KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0fSx0aGlzKTtcblxuXHRcdH1cblxuXHR9KTtcblxuXG5cblxuXG59KS5jYWxsKHRoaXMpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvYm93ZXJfY29tcG9uZW50cy9jaGFydC5qcy9DaGFydC5qc1xuLy8gbW9kdWxlIGlkID0gNTVcbi8vIG1vZHVsZSBjaHVua3MgPSAxIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///55\n");

/***/ })

/******/ });