|
- (self["webpackChunk"] = self["webpackChunk"] || []).push([["app-frontend"],{
-
- /***/ "./assets/app/frontend/app/app.common.js":
- /*!***********************************************!*\
- !*** ./assets/app/frontend/app/app.common.js ***!
- \***********************************************/
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _app_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app.scss */ "./assets/app/frontend/app/app.scss");
- /* harmony import */ var _app_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.js */ "./assets/app/frontend/app/app.js");
- /*
- * Welcome to your app's main JavaScript file!
- *
- * We recommend including the built version of this JavaScript file
- * (and its CSS file) in your base layout (base.html.twig).
- */
- // any CSS you import will output into a single css file (app.css in this case)
-
- // start the Stimulus application
- //import './bootstrap';
-
- /***/ }),
-
- /***/ "./assets/app/frontend/app/app.js":
- /*!****************************************!*\
- !*** ./assets/app/frontend/app/app.js ***!
- \****************************************/
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bootstrap */ "./node_modules/bootstrap/dist/js/bootstrap.js");
- /* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bootstrap__WEBPACK_IMPORTED_MODULE_0__);
- /* harmony import */ var _js_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../js/script */ "./assets/app/frontend/js/script.js");
- /* harmony import */ var _js_script__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_js_script__WEBPACK_IMPORTED_MODULE_1__);
- /* harmony import */ var _js_bulle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../js/bulle */ "./assets/app/frontend/js/bulle.js");
-
-
-
-
- /***/ }),
-
- /***/ "./assets/app/frontend/js/bulle.js":
- /*!*****************************************!*\
- !*** ./assets/app/frontend/js/bulle.js ***!
- \*****************************************/
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ "./node_modules/core-js/modules/es.function.name.js");
- /* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__);
- /* harmony import */ var _amcharts_amcharts4_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @amcharts/amcharts4/core */ "./node_modules/@amcharts/amcharts4/core.js");
- /* harmony import */ var _amcharts_amcharts4_charts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @amcharts/amcharts4/charts */ "./node_modules/@amcharts/amcharts4/charts.js");
- /* harmony import */ var _amcharts_amcharts4_plugins_forceDirected__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @amcharts/amcharts4/plugins/forceDirected */ "./node_modules/@amcharts/amcharts4/plugins/forceDirected.js");
-
-
-
- // Create chart
-
- var chart = _amcharts_amcharts4_core__WEBPACK_IMPORTED_MODULE_1__.create("carto-bulles", _amcharts_amcharts4_plugins_forceDirected__WEBPACK_IMPORTED_MODULE_3__.ForceDirectedTree); // Create series
-
- var series = chart.series.push(new _amcharts_amcharts4_plugins_forceDirected__WEBPACK_IMPORTED_MODULE_3__.ForceDirectedSeries());
- series.dataSource.url = routes.app_carto_json; // Set data
- // series.data = [{
- // "name": "Nos révoltes",
- // "link": ["Nos rêves"],
- // "children": [{
- // "name": "A1", "value": 100
- // }, {
- // "name": "A2", "value": 60
- // }, {
- // "name": "A3", "value": 30
- // }]
- // }, {
- // "name": "Nos rêves",
- // "link": ["Les actions \n inspirantes"],
- // "children": [{
- // "name": "B1", "value": 135
- // }, {
- // "name": "B2", "value": 98
- // }, {
- // "name": "B3", "value": 56
- // }]
- // }, {
- // "name": "Les actions \n inspirantes",
- // "link": ["Les actions \n à booster"],
- // "children": [{
- // "name": "C1", "value": 335
- // }, {
- // "name": "C2", "value": 148
- // }, {
- // "name": "C3", "value": 126
- // }, {
- // "name": "C4", "value": 26
- // }]
- // }, {
- // "name": "Les actions \n à booster",
- // "link": ["Nos révoltes"],
- // "children": [{
- // "name": "D1", "value": 415
- // }, {
- // "name": "D2", "value": 148
- // }, {
- // "name": "D3", "value": 89
- // }, {
- // "name": "D4", "value": 64
- // }, {
- // "name": "D5", "value": 16
- // }]
- // }];
-
- series.nodes.template.events.on("hit", function (event) {
- console.log(event.target.dataItem.nb);
- });
- series.manyBodyStrength = -25;
- series.links.template.strength = 2;
- series.centerStrength = 1.2; //active le zoom
-
- chart.zoomable = true; //Nombre de level affiché par défaut
-
- series.maxLevels = 1; //link entre "frere"
- // series.dataFields.id = "name";
- // series.dataFields.linkWith = "link";
- //distance entre les bulles
-
- series.links.template.distance = 1.7; // Set up data fields
-
- series.dataFields.name = "name";
- series.dataFields.children = "children";
- series.dataFields.nb = "nb"; // Add labels
-
- series.nodes.template.label.text = "{name}";
- series.fontSize = 20;
- series.minRadius = 70;
- series.maxRadius = 100; //Couleur des bulles
-
- series.colors.list = [_amcharts_amcharts4_core__WEBPACK_IMPORTED_MODULE_1__.color("#dc5b2f"), _amcharts_amcharts4_core__WEBPACK_IMPORTED_MODULE_1__.color("#fce767"), _amcharts_amcharts4_core__WEBPACK_IMPORTED_MODULE_1__.color("#97533a"), _amcharts_amcharts4_core__WEBPACK_IMPORTED_MODULE_1__.color("#568b6f")]; //Apparence des liens entre les bulles
-
- series.links.template.strokeWidth = 5;
- series.links.template.strokeOpacity = 1; //tooltip
-
- series.nodes.template.tooltipText = "{nb}";
-
- /***/ }),
-
- /***/ "./assets/app/frontend/js/script.js":
- /*!******************************************!*\
- !*** ./assets/app/frontend/js/script.js ***!
- \******************************************/
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
- __webpack_require__(/*! core-js/modules/es.array.for-each.js */ "./node_modules/core-js/modules/es.array.for-each.js");
-
- __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js");
-
- __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
-
- __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
-
- __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js");
-
- $(document).ready(function () {
- menuToggle();
- manageFormContact();
- manageFormSearch();
- manageFormIndiv();
- initialisePopovers();
- });
-
- function initialisePopovers() {
- $('[data-toggle="popover"]').popover({
- html: true,
- container: '.map',
- placement: 'top'
- });
- }
-
- function manageFormIndiv() {
- document.querySelectorAll('.add_item_link').forEach(function (btn) {
- return btn.addEventListener("click", addFormToCollection);
- });
- }
-
- var addFormToCollection = function addFormToCollection(e) {
- var collectionHolder = document.querySelector('.' + e.currentTarget.dataset.collectionHolderClass);
- var item = document.createElement('li');
- item.innerHTML = collectionHolder.dataset.prototype.replace(/__name__/g, collectionHolder.dataset.index);
- collectionHolder.appendChild(item);
- collectionHolder.dataset.index++;
-
- if (collectionHolder.dataset.index >= 6) {
- e.currentTarget.style.visibility = 'hidden';
- } // add a delete link to the new form
-
-
- addFormDeleteLink(item, e.currentTarget);
- };
-
- var addFormDeleteLink = function addFormDeleteLink(formLi, currentTarget) {
- var collectionHolder = document.querySelector('.' + currentTarget.dataset.collectionHolderClass);
- var removeFormButton = document.createElement('button');
- removeFormButton.classList.add('button-green', 'button-remove');
- removeFormButton.innerText = 'Supprimer';
- formLi.append(removeFormButton);
- removeFormButton.addEventListener('click', function (e) {
- collectionHolder.dataset.index--;
-
- if (collectionHolder.dataset.index <= 6) {
- currentTarget.style.visibility = 'visible';
- }
-
- e.preventDefault();
- formLi.remove();
- });
- };
-
- function menuToggle() {
- var box = $('.menu-content');
- var button = $('.toggle');
- button.on('click', function () {
- box.toggle('slow');
- });
- }
-
- function manageFormSearch() {
- $(".dropdown-search").on("change", "input[type='checkbox']", function () {
- $(this).closest("li").toggleClass("active", this.checked);
- });
- $(document).on('click', '.allow-focus', function (e) {
- e.stopPropagation();
- });
- $('.pagination a').click(function (e) {
- console.log(this.href.split('page=')[1]);
- $('.hidden-page').val(this.href.split('page=')[1]);
- $('.search-button').click();
- return false;
- });
- }
-
- function manageFormContact() {
- $('#contact_lccap').val('blop');
- $('#contact-form-btn').on('click', function () {
- if (checkFormValidity('#contact-form')) {
- $('#contact-form').fadeOut(200);
- $form = $('#contact-form');
- $.ajax({
- url: $form.prop('action'),
- method: $form.prop('method'),
- data: $form.serialize(),
- dataType: "json",
- success: function success(response) {
- $('#contact-form').html('<p class="success-post">Merci pour votre message, nous vous répondrons dans les plus brefs délais.</p>');
- $('#contact-form').fadeIn(500);
- }
- });
- }
- });
- }
-
- function checkFormValidity(formId) {
- if (!document.getElementById(formId.substr(1)).checkValidity()) {
- document.getElementById(formId.substr(1)).reportValidity();
- return false;
- } else {
- return true;
- }
- }
-
- /***/ }),
-
- /***/ "./assets/app/frontend/app/app.scss":
- /*!******************************************!*\
- !*** ./assets/app/frontend/app/app.scss ***!
- \******************************************/
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- // extracted by mini-css-extract-plugin
-
-
- /***/ })
-
- },
- /******/ __webpack_require__ => { // webpackRuntimeModules
- /******/ "use strict";
- /******/
- /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
- /******/ __webpack_require__.O(0, ["vendors-node_modules_core-js_internals_export_js","vendors-node_modules_core-js_modules_es_string_replace_js","vendors-node_modules_core-js_internals_array-iteration_js-node_modules_jquery_src_jquery_js","vendors-node_modules_core-js_modules_es_string_split_js-node_modules_popper_js_dist_esm_popper_js","vendors-node_modules_amcharts_amcharts4_charts_js-node_modules_amcharts_amcharts4_core_js-nod-329af8"], () => (__webpack_exec__("./assets/app/frontend/app/app.common.js")));
- /******/ var __webpack_exports__ = __webpack_require__.O();
- /******/ }
- ]);
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvYXBwL2Zyb250ZW5kL2FwcC9hcHAuY29tbW9uLmpzIiwid2VicGFjazovLy8uL2Fzc2V0cy9hcHAvZnJvbnRlbmQvYXBwL2FwcC5qcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvYXBwL2Zyb250ZW5kL2pzL2J1bGxlLmpzIiwid2VicGFjazovLy8uL2Fzc2V0cy9hcHAvZnJvbnRlbmQvanMvc2NyaXB0LmpzIiwid2VicGFjazovLy8uL2Fzc2V0cy9hcHAvZnJvbnRlbmQvYXBwL2FwcC5zY3NzIl0sIm5hbWVzIjpbImNoYXJ0IiwiYW00Y29yZSIsImFtNHBsdWdpbnNfZm9yY2VEaXJlY3RlZCIsInNlcmllcyIsInB1c2giLCJkYXRhU291cmNlIiwidXJsIiwicm91dGVzIiwiYXBwX2NhcnRvX2pzb24iLCJub2RlcyIsInRlbXBsYXRlIiwiZXZlbnRzIiwib24iLCJldmVudCIsImNvbnNvbGUiLCJsb2ciLCJ0YXJnZXQiLCJkYXRhSXRlbSIsIm5iIiwibWFueUJvZHlTdHJlbmd0aCIsImxpbmtzIiwic3RyZW5ndGgiLCJjZW50ZXJTdHJlbmd0aCIsInpvb21hYmxlIiwibWF4TGV2ZWxzIiwiZGlzdGFuY2UiLCJkYXRhRmllbGRzIiwibmFtZSIsImNoaWxkcmVuIiwibGFiZWwiLCJ0ZXh0IiwiZm9udFNpemUiLCJtaW5SYWRpdXMiLCJtYXhSYWRpdXMiLCJjb2xvcnMiLCJsaXN0Iiwic3Ryb2tlV2lkdGgiLCJzdHJva2VPcGFjaXR5IiwidG9vbHRpcFRleHQiLCIkIiwiZG9jdW1lbnQiLCJyZWFkeSIsIm1lbnVUb2dnbGUiLCJtYW5hZ2VGb3JtQ29udGFjdCIsIm1hbmFnZUZvcm1TZWFyY2giLCJtYW5hZ2VGb3JtSW5kaXYiLCJpbml0aWFsaXNlUG9wb3ZlcnMiLCJwb3BvdmVyIiwiaHRtbCIsImNvbnRhaW5lciIsInBsYWNlbWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwiYnRuIiwiYWRkRXZlbnRMaXN0ZW5lciIsImFkZEZvcm1Ub0NvbGxlY3Rpb24iLCJlIiwiY29sbGVjdGlvbkhvbGRlciIsInF1ZXJ5U2VsZWN0b3IiLCJjdXJyZW50VGFyZ2V0IiwiZGF0YXNldCIsImNvbGxlY3Rpb25Ib2xkZXJDbGFzcyIsIml0ZW0iLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwicHJvdG90eXBlIiwicmVwbGFjZSIsImluZGV4IiwiYXBwZW5kQ2hpbGQiLCJzdHlsZSIsInZpc2liaWxpdHkiLCJhZGRGb3JtRGVsZXRlTGluayIsImZvcm1MaSIsInJlbW92ZUZvcm1CdXR0b24iLCJjbGFzc0xpc3QiLCJhZGQiLCJpbm5lclRleHQiLCJhcHBlbmQiLCJwcmV2ZW50RGVmYXVsdCIsInJlbW92ZSIsImJveCIsImJ1dHRvbiIsInRvZ2dsZSIsImNsb3Nlc3QiLCJ0b2dnbGVDbGFzcyIsImNoZWNrZWQiLCJzdG9wUHJvcGFnYXRpb24iLCJjbGljayIsImhyZWYiLCJzcGxpdCIsInZhbCIsImNoZWNrRm9ybVZhbGlkaXR5IiwiZmFkZU91dCIsIiRmb3JtIiwiYWpheCIsInByb3AiLCJtZXRob2QiLCJkYXRhIiwic2VyaWFsaXplIiwiZGF0YVR5cGUiLCJzdWNjZXNzIiwicmVzcG9uc2UiLCJmYWRlSW4iLCJmb3JtSWQiLCJnZXRFbGVtZW50QnlJZCIsInN1YnN0ciIsImNoZWNrVmFsaWRpdHkiLCJyZXBvcnRWYWxpZGl0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtDQUdBO0FBQ0EsdUI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDWkE7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0ZBO0FBQ0E7Q0FHQTs7QUFDQSxJQUFJQSxLQUFLLEdBQUdDLDREQUFBLENBQWUsY0FBZixFQUErQkMsd0ZBQS9CLENBQVosQyxDQUVBOztBQUNBLElBQUlDLE1BQU0sR0FBR0gsS0FBSyxDQUFDRyxNQUFOLENBQWFDLElBQWIsQ0FBa0IsSUFBSUYsMEZBQUosRUFBbEIsQ0FB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LEVBSEg7QUFJSEMsZ0JBQVEsRUFBRSxNQUpQO0FBS0hDLGVBQU8sRUFBRSxpQkFBVUMsUUFBVixFQUFvQjtBQUN6QjlELFdBQUMsQ0FBQyxlQUFELENBQUQsQ0FBbUJTLElBQW5CLENBQXdCLHNIQUF4QjtBQUNBVCxXQUFDLENBQUMsZUFBRCxDQUFELENBQW1CK0QsTUFBbkIsQ0FBMEIsR0FBMUI7QUFDSDtBQVJFLE9BQVA7QUFVSDtBQUNKLEdBZkQ7QUFnQkg7O0FBRUQsU0FBU1gsaUJBQVQsQ0FBMkJZLE1BQTNCLEVBQW1DO0FBQy9CLE1BQUksQ0FBQy9ELFFBQVEsQ0FBQ2dFLGNBQVQsQ0FBd0JELE1BQU0sQ0FBQ0UsTUFBUCxDQUFjLENBQWQsQ0FBeEIsRUFBMENDLGFBQTFDLEVBQUwsRUFBZ0U7QUFDNURsRSxZQUFRLENBQUNnRSxjQUFULENBQXdCRCxNQUFNLENBQUNFLE1BQVAsQ0FBYyxDQUFkLENBQXhCLEVBQTBDRSxjQUExQztBQUNBLFdBQU8sS0FBUDtBQUNILEdBSEQsTUFHTztBQUNILFdBQU8sSUFBUDtBQUNIO0FBQ0osQzs7Ozs7Ozs7Ozs7O0FDbEhEIiwiZmlsZSI6ImFwcC1mcm9udGVuZC42YTFlOTA0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBXZWxjb21lIHRvIHlvdXIgYXBwJ3MgbWFpbiBKYXZhU2NyaXB0IGZpbGUhXG4gKlxuICogV2UgcmVjb21tZW5kIGluY2x1ZGluZyB0aGUgYnVpbHQgdmVyc2lvbiBvZiB0aGlzIEphdmFTY3JpcHQgZmlsZVxuICogKGFuZCBpdHMgQ1NTIGZpbGUpIGluIHlvdXIgYmFzZSBsYXlvdXQgKGJhc2UuaHRtbC50d2lnKS5cbiAqL1xuXG4vLyBhbnkgQ1NTIHlvdSBpbXBvcnQgd2lsbCBvdXRwdXQgaW50byBhIHNpbmdsZSBjc3MgZmlsZSAoYXBwLmNzcyBpbiB0aGlzIGNhc2UpXG5pbXBvcnQgJy4vYXBwLnNjc3MnO1xuaW1wb3J0ICcuL2FwcC5qcyc7XG5cbi8vIHN0YXJ0IHRoZSBTdGltdWx1cyBhcHBsaWNhdGlvblxuLy9pbXBvcnQgJy4vYm9vdHN0cmFwJzsiLCJpbXBvcnQgJ2Jvb3RzdHJhcCc7XG5cbmltcG9ydCBcIi4uL2pzL3NjcmlwdFwiO1xuaW1wb3J0IFwiLi4vanMvYnVsbGVcIjtcbiIsImltcG9ydCAqIGFzIGFtNGNvcmUgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvY29yZVwiO1xuaW1wb3J0ICogYXMgYW00Y2hhcnRzIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM0L2NoYXJ0c1wiO1xuaW1wb3J0ICogYXMgYW00cGx1Z2luc19mb3JjZURpcmVjdGVkIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM0L3BsdWdpbnMvZm9yY2VEaXJlY3RlZFwiO1xuXG4vLyBDcmVhdGUgY2hhcnRcbmxldCBjaGFydCA9IGFtNGNvcmUuY3JlYXRlKFwiY2FydG8tYnVsbGVzXCIsIGFtNHBsdWdpbnNfZm9yY2VEaXJlY3RlZC5Gb3JjZURpcmVjdGVkVHJlZSk7XG5cbi8vIENyZWF0ZSBzZXJpZXNcbmxldCBzZXJpZXMgPSBjaGFydC5zZXJpZXMucHVzaChuZXcgYW00cGx1Z2luc19mb3JjZURpcmVjdGVkLkZvcmNlRGlyZWN0ZWRTZXJpZXMoKSlcblxuc2VyaWVzLmRhdGFTb3VyY2UudXJsID0gcm91dGVzLmFwcF9jYXJ0b19qc29uO1xuLy8gU2V0IGRhdGFcbi8vIHNlcmllcy5kYXRhID0gW3tcbi8vICAgICBcIm5hbWVcIjogXCJOb3MgcsOpdm9sdGVzXCIsXG4vLyAgICAgXCJsaW5rXCI6IFtcIk5vcyByw6p2ZXNcIl0sXG4vLyAgICAgXCJjaGlsZHJlblwiOiBbe1xuLy8gICAgICAgICBcIm5hbWVcIjogXCJBMVwiLCBcInZhbHVlXCI6IDEwMFxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiQTJcIiwgXCJ2YWx1ZVwiOiA2MFxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiQTNcIiwgXCJ2YWx1ZVwiOiAzMFxuLy8gICAgIH1dXG4vLyB9LCB7XG4vLyAgICAgXCJuYW1lXCI6IFwiTm9zIHLDqnZlc1wiLFxuLy8gICAgIFwibGlua1wiOiBbXCJMZXMgYWN0aW9ucyBcXG4gaW5zcGlyYW50ZXNcIl0sXG4vLyAgICAgXCJjaGlsZHJlblwiOiBbe1xuLy8gICAgICAgICBcIm5hbWVcIjogXCJCMVwiLCBcInZhbHVlXCI6IDEzNVxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiQjJcIiwgXCJ2YWx1ZVwiOiA5OFxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiQjNcIiwgXCJ2YWx1ZVwiOiA1NlxuLy8gICAgIH1dXG4vLyB9LCB7XG4vLyAgICAgXCJuYW1lXCI6IFwiTGVzIGFjdGlvbnMgXFxuIGluc3BpcmFudGVzXCIsXG4vLyAgICAgXCJsaW5rXCI6IFtcIkxlcyBhY3Rpb25zIFxcbiDDoCBib29zdGVyXCJdLFxuLy8gICAgIFwiY2hpbGRyZW5cIjogW3tcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiQzFcIiwgXCJ2YWx1ZVwiOiAzMzVcbi8vICAgICB9LCB7XG4vLyAgICAgICAgIFwibmFtZVwiOiBcIkMyXCIsIFwidmFsdWVcIjogMTQ4XG4vLyAgICAgfSwge1xuLy8gICAgICAgICBcIm5hbWVcIjogXCJDM1wiLCBcInZhbHVlXCI6IDEyNlxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiQzRcIiwgXCJ2YWx1ZVwiOiAyNlxuLy8gICAgIH1dXG4vLyB9LCB7XG4vLyAgICAgXCJuYW1lXCI6IFwiTGVzIGFjdGlvbnMgXFxuIMOgIGJvb3N0ZXJcIixcbi8vICAgICBcImxpbmtcIjogW1wiTm9zIHLDqXZvbHRlc1wiXSxcbi8vICAgICBcImNoaWxkcmVuXCI6IFt7XG4vLyAgICAgICAgIFwibmFtZVwiOiBcIkQxXCIsIFwidmFsdWVcIjogNDE1XG4vLyAgICAgfSwge1xuLy8gICAgICAgICBcIm5hbWVcIjogXCJEMlwiLCBcInZhbHVlXCI6IDE0OFxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiRDNcIiwgXCJ2YWx1ZVwiOiA4OVxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiRDRcIiwgXCJ2YWx1ZVwiOiA2NFxuLy8gICAgIH0sIHtcbi8vICAgICAgICAgXCJuYW1lXCI6IFwiRDVcIiwgXCJ2YWx1ZVwiOiAxNlxuLy8gICAgIH1dXG4vLyB9XTtcblxuc2VyaWVzLm5vZGVzLnRlbXBsYXRlLmV2ZW50cy5vbihcImhpdFwiLCBmdW5jdGlvbihldmVudCkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50LnRhcmdldC5kYXRhSXRlbS5uYik7XG59KTtcblxuc2VyaWVzLm1hbnlCb2R5U3RyZW5ndGggPSAtMjU7XG5zZXJpZXMubGlua3MudGVtcGxhdGUuc3RyZW5ndGggPSAyO1xuc2VyaWVzLmNlbnRlclN0cmVuZ3RoID0gMS4yO1xuXG4vL2FjdGl2ZSBsZSB6b29tXG5jaGFydC56b29tYWJsZSA9IHRydWU7XG4vL05vbWJyZSBkZSBsZXZlbCBhZmZpY2jDqSBwYXIgZMOpZmF1dFxuc2VyaWVzLm1heExldmVscyA9IDFcblxuLy9saW5rIGVudHJlIFwiZnJlcmVcIlxuLy8gc2VyaWVzLmRhdGFGaWVsZHMuaWQgPSBcIm5hbWVcIjtcbi8vIHNlcmllcy5kYXRhRmllbGRzLmxpbmtXaXRoID0gXCJsaW5rXCI7XG5cbi8vZGlzdGFuY2UgZW50cmUgbGVzIGJ1bGxlc1xuc2VyaWVzLmxpbmtzLnRlbXBsYXRlLmRpc3RhbmNlID0gMS43O1xuXG4vLyBTZXQgdXAgZGF0YSBmaWVsZHNcbnNlcmllcy5kYXRhRmllbGRzLm5hbWUgPSBcIm5hbWVcIjtcbnNlcmllcy5kYXRhRmllbGRzLmNoaWxkcmVuID0gXCJjaGlsZHJlblwiO1xuc2VyaWVzLmRhdGFGaWVsZHMubmIgPSBcIm5iXCI7XG5cbi8vIEFkZCBsYWJlbHNcbnNlcmllcy5ub2Rlcy50ZW1wbGF0ZS5sYWJlbC50ZXh0ID0gXCJ7bmFtZX1cIjtcbnNlcmllcy5mb250U2l6ZSA9IDIwO1xuc2VyaWVzLm1pblJhZGl1cyA9IDcwO1xuc2VyaWVzLm1heFJhZGl1cyA9IDEwMDtcblxuLy9Db3VsZXVyIGRlcyBidWxsZXNcbnNlcmllcy5jb2xvcnMubGlzdCA9IFtcbiAgICBhbTRjb3JlLmNvbG9yKFwiI2RjNWIyZlwiKSxcbiAgICBhbTRjb3JlLmNvbG9yKFwiI2ZjZTc2N1wiKSxcbiAgICBhbTRjb3JlLmNvbG9yKFwiIzk3NTMzYVwiKSxcbiAgICBhbTRjb3JlLmNvbG9yKFwiIzU2OGI2ZlwiKVxuXTtcblxuLy9BcHBhcmVuY2UgZGVzIGxpZW5zIGVudHJlIGxlcyBidWxsZXNcbnNlcmllcy5saW5rcy50ZW1wbGF0ZS5zdHJva2VXaWR0aCA9IDU7XG5zZXJpZXMubGlua3MudGVtcGxhdGUuc3Ryb2tlT3BhY2l0eSA9IDE7XG5cbi8vdG9vbHRpcFxuc2VyaWVzLm5vZGVzLnRlbXBsYXRlLnRvb2x0aXBUZXh0ID0gXCJ7bmJ9XCI7IiwiJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICAgIG1lbnVUb2dnbGUoKTtcbiAgICBtYW5hZ2VGb3JtQ29udGFjdCgpO1xuICAgIG1hbmFnZUZvcm1TZWFyY2goKTtcbiAgICBtYW5hZ2VGb3JtSW5kaXYoKTtcbiAgICBpbml0aWFsaXNlUG9wb3ZlcnMoKTtcbn0pO1xuXG5mdW5jdGlvbiBpbml0aWFsaXNlUG9wb3ZlcnMoKSB7XG4gICAgJCgnW2RhdGEtdG9nZ2xlPVwicG9wb3ZlclwiXScpLnBvcG92ZXIoe1xuICAgICAgICBodG1sOiB0cnVlLFxuICAgICAgICBjb250YWluZXI6ICcubWFwJyxcbiAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gbWFuYWdlRm9ybUluZGl2KCkge1xuICAgIGRvY3VtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuYWRkX2l0ZW1fbGluaycpXG4gICAgICAgIC5mb3JFYWNoKGJ0biA9PiBidG4uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGFkZEZvcm1Ub0NvbGxlY3Rpb24pKTtcbn1cblxuY29uc3QgYWRkRm9ybVRvQ29sbGVjdGlvbiA9IChlKSA9PiB7XG4gICAgY29uc3QgY29sbGVjdGlvbkhvbGRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy4nICsgZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuY29sbGVjdGlvbkhvbGRlckNsYXNzKTtcbiAgICBjb25zdCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTtcbiAgICBpdGVtLmlubmVySFRNTCA9IGNvbGxlY3Rpb25Ib2xkZXJcbiAgICAgICAgLmRhdGFzZXRcbiAgICAgICAgLnByb3RvdHlwZVxuICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICAgIC9fX25hbWVfXy9nLFxuICAgICAgICAgICAgY29sbGVjdGlvbkhvbGRlci5kYXRhc2V0LmluZGV4XG4gICAgICAgICk7XG5cbiAgICBjb2xsZWN0aW9uSG9sZGVyLmFwcGVuZENoaWxkKGl0ZW0pO1xuXG4gICAgY29sbGVjdGlvbkhvbGRlci5kYXRhc2V0LmluZGV4Kys7XG5cbiAgICBpZiAoY29sbGVjdGlvbkhvbGRlci5kYXRhc2V0LmluZGV4ID49IDYpIHtcbiAgICAgICAgZS5jdXJyZW50VGFyZ2V0LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICB9XG4gICAgLy8gYWRkIGEgZGVsZXRlIGxpbmsgdG8gdGhlIG5ldyBmb3JtXG4gICAgYWRkRm9ybURlbGV0ZUxpbmsoaXRlbSwgZS5jdXJyZW50VGFyZ2V0KTtcbn07XG5cbmNvbnN0IGFkZEZvcm1EZWxldGVMaW5rID0gKGZvcm1MaSwgY3VycmVudFRhcmdldCkgPT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25Ib2xkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuJyArIGN1cnJlbnRUYXJnZXQuZGF0YXNldC5jb2xsZWN0aW9uSG9sZGVyQ2xhc3MpO1xuICAgIGNvbnN0IHJlbW92ZUZvcm1CdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKVxuICAgIHJlbW92ZUZvcm1CdXR0b24uY2xhc3NMaXN0LmFkZCgnYnV0dG9uLWdyZWVuJywgJ2J1dHRvbi1yZW1vdmUnKVxuICAgIHJlbW92ZUZvcm1CdXR0b24uaW5uZXJUZXh0ID0gJ1N1cHByaW1lcidcblxuICAgIGZvcm1MaS5hcHBlbmQocmVtb3ZlRm9ybUJ1dHRvbik7XG5cbiAgICByZW1vdmVGb3JtQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgY29sbGVjdGlvbkhvbGRlci5kYXRhc2V0LmluZGV4LS07XG4gICAgICAgIGlmIChjb2xsZWN0aW9uSG9sZGVyLmRhdGFzZXQuaW5kZXggPD0gNikge1xuICAgICAgICAgICAgY3VycmVudFRhcmdldC5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICB9XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBmb3JtTGkucmVtb3ZlKCk7XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIG1lbnVUb2dnbGUoKSB7XG4gICAgdmFyIGJveCA9ICQoJy5tZW51LWNvbnRlbnQnKTtcbiAgICB2YXIgYnV0dG9uID0gJCgnLnRvZ2dsZScpO1xuICAgIGJ1dHRvbi5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGJveC50b2dnbGUoJ3Nsb3cnKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gbWFuYWdlRm9ybVNlYXJjaCgpIHtcbiAgICAkKFwiLmRyb3Bkb3duLXNlYXJjaFwiKS5vbihcImNoYW5nZVwiLCBcImlucHV0W3R5cGU9J2NoZWNrYm94J11cIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoXCJsaVwiKS50b2dnbGVDbGFzcyhcImFjdGl2ZVwiLCB0aGlzLmNoZWNrZWQpO1xuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJy5hbGxvdy1mb2N1cycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG5cbiAgICAkKCcucGFnaW5hdGlvbiBhJykuY2xpY2soZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5ocmVmLnNwbGl0KCdwYWdlPScpWzFdKTtcbiAgICAgICAgJCgnLmhpZGRlbi1wYWdlJykudmFsKHRoaXMuaHJlZi5zcGxpdCgncGFnZT0nKVsxXSk7XG4gICAgICAgICQoJy5zZWFyY2gtYnV0dG9uJykuY2xpY2soKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBtYW5hZ2VGb3JtQ29udGFjdCgpIHtcbiAgICAkKCcjY29udGFjdF9sY2NhcCcpLnZhbCgnYmxvcCcpO1xuICAgICQoJyNjb250YWN0LWZvcm0tYnRuJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoY2hlY2tGb3JtVmFsaWRpdHkoJyNjb250YWN0LWZvcm0nKSkge1xuICAgICAgICAgICAgJCgnI2NvbnRhY3QtZm9ybScpLmZhZGVPdXQoMjAwKTtcbiAgICAgICAgICAgICRmb3JtID0gJCgnI2NvbnRhY3QtZm9ybScpO1xuICAgICAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgICAgICB1cmw6ICRmb3JtLnByb3AoJ2FjdGlvbicpLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJGZvcm0ucHJvcCgnbWV0aG9kJyksXG4gICAgICAgICAgICAgICAgZGF0YTogJGZvcm0uc2VyaWFsaXplKCksXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAkKCcjY29udGFjdC1mb3JtJykuaHRtbCgnPHAgY2xhc3M9XCJzdWNjZXNzLXBvc3RcIj5NZXJjaSBwb3VyIHZvdHJlIG1lc3NhZ2UsIG5vdXMgdm91cyByJmVhY3V0ZTtwb25kcm9ucyBkYW5zIGxlcyBwbHVzIGJyZWZzIGQmZWFjdXRlO2xhaXMuPC9wPicpO1xuICAgICAgICAgICAgICAgICAgICAkKCcjY29udGFjdC1mb3JtJykuZmFkZUluKDUwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gY2hlY2tGb3JtVmFsaWRpdHkoZm9ybUlkKSB7XG4gICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmb3JtSWQuc3Vic3RyKDEpKS5jaGVja1ZhbGlkaXR5KCkpIHtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZm9ybUlkLnN1YnN0cigxKSkucmVwb3J0VmFsaWRpdHkoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufSIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IHt9OyJdLCJzb3VyY2VSb290IjoiIn0=
|