Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

332 lines
29KB

  1. (self["webpackChunk"] = self["webpackChunk"] || []).push([["adminlte-sort"],{
  2. /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/app.sort.js":
  3. /*!********************************************************************************!*\
  4. !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/app.sort.js ***!
  5. \********************************************************************************/
  6. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  7. "use strict";
  8. __webpack_require__.r(__webpack_exports__);
  9. /* harmony import */ var jquery_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery-ui */ "./node_modules/jquery-ui-dist/jquery-ui.js");
  10. /* harmony import */ var jquery_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery_ui__WEBPACK_IMPORTED_MODULE_0__);
  11. /* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sort.js */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/sort.js");
  12. /* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_sort_js__WEBPACK_IMPORTED_MODULE_1__);
  13. /* harmony import */ var _sort_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sort.scss */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/sort.scss");
  14. /***/ }),
  15. /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/sort.js":
  16. /*!****************************************************************************!*\
  17. !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/sort.js ***!
  18. \****************************************************************************/
  19. /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  20. __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  21. __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
  22. __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
  23. __webpack_require__(/*! core-js/modules/es.string.pad-start.js */ "./node_modules/core-js/modules/es.string.pad-start.js");
  24. __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js");
  25. __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
  26. __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js");
  27. jQuery(document).ready(function () {
  28. initSovSortableList();
  29. });
  30. function initSovSortableList() {
  31. if ($('.sov-sortable').length > 0) {
  32. $('.sov-sortable tbody').sortable({
  33. placeholder: "ui-state-highlight"
  34. });
  35. $('.sov-sortable tbody').on("sortupdate", function (event, ui) {
  36. prototype = $('#form_entities').data('prototype');
  37. $('.sov-sortable tr.sov-draggable').each(function (index, li) {
  38. // instead be a number based on how many items we have
  39. var newForm = prototype.replace(/__name__/g, index); // Replace '__name__' in the prototype's HTML to
  40. $(li).find('div:last-child').remove();
  41. $(li).append(newForm);
  42. $(li).find('#form_entities_' + index + '_id').val($(li).data('id'));
  43. if ($('.sov-sortable').data('parent-position') !== '') {
  44. //Ajout d'un 0 initial pour les nuémros <10
  45. indexAsString = index.toString().padStart(2, '0');
  46. val = $('.sov-sortable').data('parent-position') + '.' + indexAsString;
  47. } else {
  48. val = index;
  49. }
  50. $(li).find('#form_entities_' + index + '_position').val(val);
  51. });
  52. });
  53. }
  54. }
  55. /***/ }),
  56. /***/ "./node_modules/core-js/internals/classof.js":
  57. /*!***************************************************!*\
  58. !*** ./node_modules/core-js/internals/classof.js ***!
  59. \***************************************************/
  60. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  61. var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
  62. var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
  63. var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  64. var TO_STRING_TAG = wellKnownSymbol('toStringTag');
  65. // ES3 wrong here
  66. var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
  67. // fallback for IE11 Script Access Denied error
  68. var tryGet = function (it, key) {
  69. try {
  70. return it[key];
  71. } catch (error) { /* empty */ }
  72. };
  73. // getting tag from ES6+ `Object.prototype.toString`
  74. module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
  75. var O, tag, result;
  76. return it === undefined ? 'Undefined' : it === null ? 'Null'
  77. // @@toStringTag case
  78. : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
  79. // builtinTag case
  80. : CORRECT_ARGUMENTS ? classofRaw(O)
  81. // ES3 arguments fallback
  82. : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
  83. };
  84. /***/ }),
  85. /***/ "./node_modules/core-js/internals/object-to-string.js":
  86. /*!************************************************************!*\
  87. !*** ./node_modules/core-js/internals/object-to-string.js ***!
  88. \************************************************************/
  89. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  90. "use strict";
  91. var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
  92. var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js");
  93. // `Object.prototype.toString` method implementation
  94. // https://tc39.es/ecma262/#sec-object.prototype.tostring
  95. module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
  96. return '[object ' + classof(this) + ']';
  97. };
  98. /***/ }),
  99. /***/ "./node_modules/core-js/internals/string-pad-webkit-bug.js":
  100. /*!*****************************************************************!*\
  101. !*** ./node_modules/core-js/internals/string-pad-webkit-bug.js ***!
  102. \*****************************************************************/
  103. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  104. // https://github.com/zloirock/core-js/issues/280
  105. var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
  106. // eslint-disable-next-line unicorn/no-unsafe-regex -- safe
  107. module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent);
  108. /***/ }),
  109. /***/ "./node_modules/core-js/internals/string-pad.js":
  110. /*!******************************************************!*\
  111. !*** ./node_modules/core-js/internals/string-pad.js ***!
  112. \******************************************************/
  113. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  114. // https://github.com/tc39/proposal-string-pad-start-end
  115. var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  116. var repeat = __webpack_require__(/*! ../internals/string-repeat */ "./node_modules/core-js/internals/string-repeat.js");
  117. var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  118. var ceil = Math.ceil;
  119. // `String.prototype.{ padStart, padEnd }` methods implementation
  120. var createMethod = function (IS_END) {
  121. return function ($this, maxLength, fillString) {
  122. var S = String(requireObjectCoercible($this));
  123. var stringLength = S.length;
  124. var fillStr = fillString === undefined ? ' ' : String(fillString);
  125. var intMaxLength = toLength(maxLength);
  126. var fillLen, stringFiller;
  127. if (intMaxLength <= stringLength || fillStr == '') return S;
  128. fillLen = intMaxLength - stringLength;
  129. stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));
  130. if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
  131. return IS_END ? S + stringFiller : stringFiller + S;
  132. };
  133. };
  134. module.exports = {
  135. // `String.prototype.padStart` method
  136. // https://tc39.es/ecma262/#sec-string.prototype.padstart
  137. start: createMethod(false),
  138. // `String.prototype.padEnd` method
  139. // https://tc39.es/ecma262/#sec-string.prototype.padend
  140. end: createMethod(true)
  141. };
  142. /***/ }),
  143. /***/ "./node_modules/core-js/internals/string-repeat.js":
  144. /*!*********************************************************!*\
  145. !*** ./node_modules/core-js/internals/string-repeat.js ***!
  146. \*********************************************************/
  147. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  148. "use strict";
  149. var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js");
  150. var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
  151. // `String.prototype.repeat` method implementation
  152. // https://tc39.es/ecma262/#sec-string.prototype.repeat
  153. module.exports = function repeat(count) {
  154. var str = String(requireObjectCoercible(this));
  155. var result = '';
  156. var n = toInteger(count);
  157. if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
  158. for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
  159. return result;
  160. };
  161. /***/ }),
  162. /***/ "./node_modules/core-js/internals/to-string-tag-support.js":
  163. /*!*****************************************************************!*\
  164. !*** ./node_modules/core-js/internals/to-string-tag-support.js ***!
  165. \*****************************************************************/
  166. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  167. var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  168. var TO_STRING_TAG = wellKnownSymbol('toStringTag');
  169. var test = {};
  170. test[TO_STRING_TAG] = 'z';
  171. module.exports = String(test) === '[object z]';
  172. /***/ }),
  173. /***/ "./node_modules/core-js/modules/es.object.to-string.js":
  174. /*!*************************************************************!*\
  175. !*** ./node_modules/core-js/modules/es.object.to-string.js ***!
  176. \*************************************************************/
  177. /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  178. var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
  179. var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  180. var toString = __webpack_require__(/*! ../internals/object-to-string */ "./node_modules/core-js/internals/object-to-string.js");
  181. // `Object.prototype.toString` method
  182. // https://tc39.es/ecma262/#sec-object.prototype.tostring
  183. if (!TO_STRING_TAG_SUPPORT) {
  184. redefine(Object.prototype, 'toString', toString, { unsafe: true });
  185. }
  186. /***/ }),
  187. /***/ "./node_modules/core-js/modules/es.regexp.to-string.js":
  188. /*!*************************************************************!*\
  189. !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***!
  190. \*************************************************************/
  191. /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  192. "use strict";
  193. var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
  194. var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  195. var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
  196. var flags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
  197. var TO_STRING = 'toString';
  198. var RegExpPrototype = RegExp.prototype;
  199. var nativeToString = RegExpPrototype[TO_STRING];
  200. var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
  201. // FF44- RegExp#toString has a wrong name
  202. var INCORRECT_NAME = nativeToString.name != TO_STRING;
  203. // `RegExp.prototype.toString` method
  204. // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
  205. if (NOT_GENERIC || INCORRECT_NAME) {
  206. redefine(RegExp.prototype, TO_STRING, function toString() {
  207. var R = anObject(this);
  208. var p = String(R.source);
  209. var rf = R.flags;
  210. var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
  211. return '/' + p + '/' + f;
  212. }, { unsafe: true });
  213. }
  214. /***/ }),
  215. /***/ "./node_modules/core-js/modules/es.string.pad-start.js":
  216. /*!*************************************************************!*\
  217. !*** ./node_modules/core-js/modules/es.string.pad-start.js ***!
  218. \*************************************************************/
  219. /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  220. "use strict";
  221. var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  222. var $padStart = __webpack_require__(/*! ../internals/string-pad */ "./node_modules/core-js/internals/string-pad.js").start;
  223. var WEBKIT_BUG = __webpack_require__(/*! ../internals/string-pad-webkit-bug */ "./node_modules/core-js/internals/string-pad-webkit-bug.js");
  224. // `String.prototype.padStart` method
  225. // https://tc39.es/ecma262/#sec-string.prototype.padstart
  226. $({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
  227. padStart: function padStart(maxLength /* , fillString = ' ' */) {
  228. return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
  229. }
  230. });
  231. /***/ }),
  232. /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/sort.scss":
  233. /*!******************************************************************************!*\
  234. !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/sort.scss ***!
  235. \******************************************************************************/
  236. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  237. "use strict";
  238. __webpack_require__.r(__webpack_exports__);
  239. // extracted by mini-css-extract-plugin
  240. /***/ })
  241. },
  242. /******/ __webpack_require__ => { // webpackRuntimeModules
  243. /******/ "use strict";
  244. /******/
  245. /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
  246. /******/ __webpack_require__.O(0, ["vendors-node_modules_core-js_internals_export_js","vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0","vendors-node_modules_core-js_internals_a-function_js-node_modules_jquery_src_jquery_js","vendors-node_modules_core-js_modules_es_array_find_js-node_modules_core-js_modules_es_date_to-c46b07","vendors-node_modules_jquery-ui-dist_jquery-ui_js"], () => (__webpack_exec__("../LaClicBundle/SovBundle/Resources/assets/app/adminlte/sort/app.sort.js")));
  247. /******/ var __webpack_exports__ = __webpack_require__.O();
  248. /******/ }
  249. ]);
  250. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9zb3J0L2FwcC5zb3J0LmpzIiwid2VicGFjazovLy8uLi9MYUNsaWNCdW5kbGUvU292QnVuZGxlL1Jlc291cmNlcy9hc3NldHMvYXBwL2FkbWlubHRlL3NvcnQvc29ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3RyaW5nLXBhZC13ZWJraXQtYnVnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctcGFkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctcmVwZWF0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5wYWQtc3RhcnQuanMiLCJ3ZWJwYWNrOi8vLy4uL0xhQ2xpY0J1bmRsZS9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy9hcHAvYWRtaW5sdGUvc29ydC9zb3J0LnNjc3MiXSwibmFtZXMiOlsialF1ZXJ5IiwiZG9jdW1lbnQiLCJyZWFkeSIsImluaXRTb3ZTb3J0YWJsZUxpc3QiLCIkIiwibGVuZ3RoIiwic29ydGFibGUiLCJwbGFjZWhvbGRlciIsIm9uIiwiZXZlbnQiLCJ1aSIsInByb3RvdHlwZSIsImRhdGEiLCJlYWNoIiwiaW5kZXgiLCJsaSIsIm5ld0Zvcm0iLCJyZXBsYWNlIiwiZmluZCIsInJlbW92ZSIsImFwcGVuZCIsInZhbCIsImluZGV4QXNTdHJpbmciLCJ0b1N0cmluZyIsInBhZFN0YXJ0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRkFBLE1BQU0sQ0FBQ0MsUUFBRCxDQUFOLENBQWlCQyxLQUFqQixDQUF1QixZQUFZO0FBQy9CQyxxQkFBbUI7QUFDdEIsQ0FGRDs7QUFJQSxTQUFTQSxtQkFBVCxHQUErQjtBQUUzQixNQUFJQyxDQUFDLENBQUMsZUFBRCxDQUFELENBQW1CQyxNQUFuQixHQUE0QixDQUFoQyxFQUFtQztBQUMvQkQsS0FBQyxDQUFDLHFCQUFELENBQUQsQ0FBeUJFLFFBQXpCLENBQWtDO0FBQzlCQyxpQkFBVyxFQUFFO0FBRGlCLEtBQWxDO0FBSUFILEtBQUMsQ0FBQyxxQkFBRCxDQUFELENBQXlCSSxFQUF6QixDQUE0QixZQUE1QixFQUEwQyxVQUFVQyxLQUFWLEVBQWlCQyxFQUFqQixFQUFxQjtBQUUzREMsZUFBUyxHQUFHUCxDQUFDLENBQUMsZ0JBQUQsQ0FBRCxDQUFvQlEsSUFBcEIsQ0FBeUIsV0FBekIsQ0FBWjtBQUVBUixPQUFDLENBQUMsZ0NBQUQsQ0FBRCxDQUFvQ1MsSUFBcEMsQ0FBeUMsVUFBVUMsS0FBVixFQUFpQkMsRUFBakIsRUFBcUI7QUFFMUQ7QUFDQSxZQUFJQyxPQUFPLEdBQUdMLFNBQVMsQ0FBQ00sT0FBVixDQUFrQixXQUFsQixFQUErQkgsS0FBL0IsQ0FBZCxDQUgwRCxDQUsxRDs7QUFDQVYsU0FBQyxDQUFDVyxFQUFELENBQUQsQ0FBTUcsSUFBTixDQUFXLGdCQUFYLEVBQTZCQyxNQUE3QjtBQUVBZixT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QTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEdBQUcsZUFBZTtBQUNyQjs7Ozs7Ozs7Ozs7O0FDeEJhO0FBQ2IsUUFBUSxtQkFBTyxDQUFDLHVFQUFxQjtBQUNyQyxnQkFBZ0IsMEdBQXdDO0FBQ3hELGlCQUFpQixtQkFBTyxDQUFDLHFHQUFvQzs7QUFFN0Q7QUFDQTtBQUNBLEdBQUcsb0RBQW9EO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBLENBQUM7Ozs7Ozs7Ozs7Ozs7QUNYRCIsImZpbGUiOiJhZG1pbmx0ZS1zb3J0LmE4YTNkZGZmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgJ2pxdWVyeS11aSdcbmltcG9ydCAnLi9zb3J0LmpzJ1xuaW1wb3J0ICcuL3NvcnQuc2NzcyciLCJqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcbiAgICBpbml0U292U29ydGFibGVMaXN0KCk7XG59KTtcblxuZnVuY3Rpb24gaW5pdFNvdlNvcnRhYmxlTGlzdCgpIHtcblxuICAgIGlmICgkKCcuc292LXNvcnRhYmxlJykubGVuZ3RoID4gMCkge1xuICAgICAgICAkKCcuc292LXNvcnRhYmxlIHRib2R5Jykuc29ydGFibGUoe1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IFwidWktc3RhdGUtaGlnaGxpZ2h0XCJcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJCgnLnNvdi1zb3J0YWJsZSB0Ym9keScpLm9uKFwic29ydHVwZGF0ZVwiLCBmdW5jdGlvbiAoZXZlbnQsIHVpKSB7XG5cbiAgICAgICAgICAgIHByb3RvdHlwZSA9ICQoJyNmb3JtX2VudGl0aWVzJykuZGF0YSgncHJvdG90eXBlJyk7XG5cbiAgICAgICAgICAgICQoJy5zb3Ytc29ydGFibGUgdHIuc292LWRyYWdnYWJsZScpLmVhY2goZnVuY3Rpb24gKGluZGV4LCBsaSkge1xuXG4gICAgICAgICAgICAgICAgLy8gaW5zdGVhZCBiZSBhIG51bWJlciBiYXNlZCBvbiBob3cgbWFueSBpdGVtcyB3ZSBoYXZlXG4gICAgICAgICAgICAgICAgdmFyIG5ld0Zvcm0gPSBwcm90b3R5cGUucmVwbGFjZSgvX19uYW1lX18vZywgaW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVwbGFjZSAnX19uYW1lX18nIGluIHRoZSBwcm90b3R5cGUncyBIVE1MIHRvXG4gICAgICAgICAgICAgICAgJChsaSkuZmluZCgnZGl2Omxhc3QtY2hpbGQnKS5yZW1vdmUoKTtcblxuICAgICAgICAgICAgICAgICQobGkpLmFwcGVuZChuZXdGb3JtKTtcbiAgICAgICAgICAgICAgICAkKGxpKS5maW5kKCcjZm9ybV9lbnRpdGllc18nICsgaW5kZXggKyAnX2lkJykudmFsKCQobGkpLmRhdGEoJ2lkJykpO1xuICAgICAgICAgICAgICAgIGlmICgkKCcuc292LXNvcnRhYmxlJykuZGF0YSgncGFyZW50LXBvc2l0aW9uJykgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vQWpvdXQgZCd1biAwIGluaXRpYWwgcG91ciBsZXMgbnXDqW1yb3MgPDEwXG4gICAgICAgICAgICAgICAgICAgIGluZGV4QXNTdHJpbmcgPSBpbmRleC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgICAgICAgICAgICAgICAgIHZhbCA9ICQoJy5zb3Ytc29ydGFibGUnKS5kYXRhKCdwYXJlbnQtcG9zaXRpb24nKSArICcuJyArIGluZGV4QXNTdHJpbmdcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWwgPSBpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChsaSkuZmluZCgnI2Zvcm1fZW50aXRpZXNfJyArIGluZGV4ICsgJ19wb3NpdGlvbicpLnZhbCh2YWwpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4iLCJ2YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIENPUlJFQ1RfQVJHVU1FTlRTID0gY2xhc3NvZlJhdyhmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxufTtcblxuLy8gZ2V0dGluZyB0YWcgZnJvbSBFUzYrIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYFxubW9kdWxlLmV4cG9ydHMgPSBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPyBjbGFzc29mUmF3IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCB0YWcsIHJlc3VsdDtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKHRhZyA9IHRyeUdldChPID0gT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT0gJ09iamVjdCcgJiYgdHlwZW9mIE8uY2FsbGVlID09ICdmdW5jdGlvbicgPyAnQXJndW1lbnRzJyA6IHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8ge30udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xufTtcbiIsIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8yODBcbnZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbm8tdW5zYWZlLXJlZ2V4IC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gL1ZlcnNpb25cXC8xMCg/OlxcLlxcZCspezEsMn0oPzogW1xcdy4vXSspPyg/OiBNb2JpbGVcXC9cXHcrKT8gU2FmYXJpXFwvLy50ZXN0KHVzZXJBZ2VudCk7XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1zdHJpbmctcGFkLXN0YXJ0LWVuZFxudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHJlcGVhdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctcmVwZWF0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxudmFyIGNlaWwgPSBNYXRoLmNlaWw7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnsgcGFkU3RhcnQsIHBhZEVuZCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX0VORCkge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBtYXhMZW5ndGgsIGZpbGxTdHJpbmcpIHtcbiAgICB2YXIgUyA9IFN0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCR0aGlzKSk7XG4gICAgdmFyIHN0cmluZ0xlbmd0aCA9IFMubGVuZ3RoO1xuICAgIHZhciBmaWxsU3RyID0gZmlsbFN0cmluZyA9PT0gdW5kZWZpbmVkID8gJyAnIDogU3RyaW5nKGZpbGxTdHJpbmcpO1xuICAgIHZhciBpbnRNYXhMZW5ndGggPSB0b0xlbmd0aChtYXhMZW5ndGgpO1xuICAgIHZhciBmaWxsTGVuLCBzdHJpbmdGaWxsZXI7XG4gICAgaWYgKGludE1heExlbmd0aCA8PSBzdHJpbmdMZW5ndGggfHwgZmlsbFN0ciA9PSAnJykgcmV0dXJuIFM7XG4gICAgZmlsbExlbiA9IGludE1heExlbmd0aCAtIHN0cmluZ0xlbmd0aDtcbiAgICBzdHJpbmdGaWxsZXIgPSByZXBlYXQuY2FsbChmaWxsU3RyLCBjZWlsKGZpbGxMZW4gLyBmaWxsU3RyLmxlbmd0aCkpO1xuICAgIGlmIChzdHJpbmdGaWxsZXIubGVuZ3RoID4gZmlsbExlbikgc3RyaW5nRmlsbGVyID0gc3RyaW5nRmlsbGVyLnNsaWNlKDAsIGZpbGxMZW4pO1xuICAgIHJldHVybiBJU19FTkQgPyBTICsgc3RyaW5nRmlsbGVyIDogc3RyaW5nRmlsbGVyICsgUztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5wYWRzdGFydFxuICBzdGFydDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUucGFkRW5kYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnBhZGVuZFxuICBlbmQ6IGNyZWF0ZU1ldGhvZCh0cnVlKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlcicpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnJlcGVhdGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUucmVwZWF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHJlcGVhdChjb3VudCkge1xuICB2YXIgc3RyID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIHZhciBuID0gdG9JbnRlZ2VyKGNvdW50KTtcbiAgaWYgKG4gPCAwIHx8IG4gPT0gSW5maW5pdHkpIHRocm93IFJhbmdlRXJyb3IoJ1dyb25nIG51bWJlciBvZiByZXBldGl0aW9ucycpO1xuICBmb3IgKDtuID4gMDsgKG4gPj4+PSAxKSAmJiAoc3RyICs9IHN0cikpIGlmIChuICYgMSkgcmVzdWx0ICs9IHN0cjtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xudmFyIHRlc3QgPSB7fTtcblxudGVzdFtUT19TVFJJTkdfVEFHXSA9ICd6JztcblxubW9kdWxlLmV4cG9ydHMgPSBTdHJpbmcodGVzdCkgPT09ICdbb2JqZWN0IHpdJztcbiIsInZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nJyk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZ1xuaWYgKCFUT19TVFJJTkdfVEFHX1NVUFBPUlQpIHtcbiAgcmVkZWZpbmUoT2JqZWN0LnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgdG9TdHJpbmcsIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBmbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcblxudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcbnZhciBuYXRpdmVUb1N0cmluZyA9IFJlZ0V4cFByb3RvdHlwZVtUT19TVFJJTkddO1xuXG52YXIgTk9UX0dFTkVSSUMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IHJldHVybiBuYXRpdmVUb1N0cmluZy5jYWxsKHsgc291cmNlOiAnYScsIGZsYWdzOiAnYicgfSkgIT0gJy9hL2InOyB9KTtcbi8vIEZGNDQtIFJlZ0V4cCN0b1N0cmluZyBoYXMgYSB3cm9uZyBuYW1lXG52YXIgSU5DT1JSRUNUX05BTUUgPSBuYXRpdmVUb1N0cmluZy5uYW1lICE9IFRPX1NUUklORztcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAoTk9UX0dFTkVSSUMgfHwgSU5DT1JSRUNUX05BTUUpIHtcbiAgcmVkZWZpbmUoUmVnRXhwLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICB2YXIgUiA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBwID0gU3RyaW5nKFIuc291cmNlKTtcbiAgICB2YXIgcmYgPSBSLmZsYWdzO1xuICAgIHZhciBmID0gU3RyaW5nKHJmID09PSB1bmRlZmluZWQgJiYgUiBpbnN0YW5jZW9mIFJlZ0V4cCAmJiAhKCdmbGFncycgaW4gUmVnRXhwUHJvdG90eXBlKSA/IGZsYWdzLmNhbGwoUikgOiByZik7XG4gICAgcmV0dXJuICcvJyArIHAgKyAnLycgKyBmO1xuICB9LCB7IHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRwYWRTdGFydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctcGFkJykuc3RhcnQ7XG52YXIgV0VCS0lUX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctcGFkLXdlYmtpdC1idWcnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnBhZHN0YXJ0XG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUsIGZvcmNlZDogV0VCS0lUX0JVRyB9LCB7XG4gIHBhZFN0YXJ0OiBmdW5jdGlvbiBwYWRTdGFydChtYXhMZW5ndGggLyogLCBmaWxsU3RyaW5nID0gJyAnICovKSB7XG4gICAgcmV0dXJuICRwYWRTdGFydCh0aGlzLCBtYXhMZW5ndGgsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwic291cmNlUm9vdCI6IiJ9