Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

524 lines
51KB

  1. (self["webpackChunk"] = self["webpackChunk"] || []).push([["adminlte-field-collection"],{
  2. /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/field/collection/app.collection.js":
  3. /*!**************************************************************************************************!*\
  4. !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/field/collection/app.collection.js ***!
  5. \**************************************************************************************************/
  6. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  7. "use strict";
  8. __webpack_require__.r(__webpack_exports__);
  9. /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js");
  10. /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_0__);
  11. /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
  12. /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__);
  13. /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
  14. /* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__);
  15. /* harmony import */ var jquery_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jquery-ui */ "./node_modules/jquery-ui-dist/jquery-ui.js");
  16. /* harmony import */ var jquery_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(jquery_ui__WEBPACK_IMPORTED_MODULE_3__);
  17. /* harmony import */ var _form_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form.scss */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/field/collection/form.scss");
  18. $(document).ready(function () {
  19. initCollectionWidget();
  20. });
  21. function initCollectionWidget() {
  22. $('.field-collection[data-prototype]').each(function (i, collectionWidget) {
  23. setCollectionWidgetSortable($(collectionWidget));
  24. reindexKeyCollectionWidget($(collectionWidget));
  25. setCollectionWidgetAdd($(collectionWidget));
  26. setCollectionWidgetDelete($(collectionWidget));
  27. });
  28. }
  29. function setCollectionWidgetAdd($collectionWidget) {
  30. if ($collectionWidget.data('allow-add')) {
  31. $collectionWidget.find('.field-collection-add').on('click', function (e) {
  32. // grab the prototype template
  33. var newWidget = $collectionWidget.attr('data-prototype'); // replace the "__name__" used in the id and name of the prototype
  34. // with a number that's unique to your emails
  35. // end name attribute looks like name="contact[emails][2]"
  36. newWidget = newWidget.replace(/__name__/g, getNumItems($collectionWidget)); // create a new list element and add it to the list
  37. $collectionWidget.find('.form-widget-compound .field-collection-group').append(newWidget);
  38. $collectionWidget.find('.field-collection-item:last').find('.field-position').val(getNumItems($collectionWidget));
  39. reindexKeyCollectionWidget($collectionWidget);
  40. setCollectionWidgetDelete($collectionWidget);
  41. $collectionWidget.trigger('collection-add-item');
  42. $collectionWidget.data('num-items', $collectionWidget.data('num-items') + 1);
  43. $collectionWidget.find('.collection-empty').hide();
  44. });
  45. }
  46. }
  47. function setCollectionWidgetDelete($collectionWidget) {
  48. if ($collectionWidget.data('allow-delete')) {
  49. $collectionWidget.find('.field-collection-delete').off('click');
  50. $collectionWidget.find('.field-collection-delete').on('click', function () {
  51. $(this).parents('.form-group:first').remove();
  52. reindexKeyCollectionWidget($collectionWidget);
  53. if (getNumItems($collectionWidget) == 0) $collectionWidget.find('.collection-empty').show();
  54. });
  55. }
  56. }
  57. function getNumItems($collectionWidget) {
  58. if ($collectionWidget.data('reindex-key')) {
  59. return $collectionWidget.find('.field-collection-item').length;
  60. } else {
  61. return $collectionWidget.data('num-items');
  62. }
  63. }
  64. function reindexKeyCollectionWidget($collectionWidget) {
  65. if ($collectionWidget.data('reindex-key')) {
  66. $collectionWidget.find('.field-collection-item').each(function (i, item) {
  67. $(item).find('input,textarea').each(function (y, field) {
  68. var $field = $(field); //Chanegment ID
  69. var posId = Tools.indexOfLastDigit($field.prop('id'));
  70. var idPrefix = $field.prop('id').substr(0, posId);
  71. var idSuffix = $field.prop('id').substr(posId + 1);
  72. $field.prop('id', idPrefix + i + idSuffix); //Chanegment Name
  73. var posName = Tools.indexOfLastDigit($field.prop('name'));
  74. var namePrefix = $field.prop('name').substr(0, posName);
  75. var nameSuffix = $field.prop('name').substr(posName + 1);
  76. $field.prop('name', namePrefix + i + nameSuffix);
  77. });
  78. });
  79. }
  80. }
  81. function setCollectionWidgetSortable($collectionWidget) {
  82. if ($collectionWidget.data('sortable')) {
  83. $collectionWidget.find('.field-collection-group').sortable({
  84. "handle": '.lc-btn-sortable',
  85. cancel: ''
  86. });
  87. $collectionWidget.find('.field-collection-group').on("sortupdate", function (event, ui) {
  88. $collectionWidget.find('.field-collection-group>div').each(function (index, item) {
  89. $(item).find('.field-position').val(index);
  90. });
  91. });
  92. }
  93. }
  94. /***/ }),
  95. /***/ "./node_modules/core-js/internals/a-function.js":
  96. /*!******************************************************!*\
  97. !*** ./node_modules/core-js/internals/a-function.js ***!
  98. \******************************************************/
  99. /***/ ((module) => {
  100. module.exports = function (it) {
  101. if (typeof it != 'function') {
  102. throw TypeError(String(it) + ' is not a function');
  103. } return it;
  104. };
  105. /***/ }),
  106. /***/ "./node_modules/core-js/internals/add-to-unscopables.js":
  107. /*!**************************************************************!*\
  108. !*** ./node_modules/core-js/internals/add-to-unscopables.js ***!
  109. \**************************************************************/
  110. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  111. var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  112. var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
  113. var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  114. var UNSCOPABLES = wellKnownSymbol('unscopables');
  115. var ArrayPrototype = Array.prototype;
  116. // Array.prototype[@@unscopables]
  117. // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
  118. if (ArrayPrototype[UNSCOPABLES] == undefined) {
  119. definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
  120. configurable: true,
  121. value: create(null)
  122. });
  123. }
  124. // add a key to Array.prototype[@@unscopables]
  125. module.exports = function (key) {
  126. ArrayPrototype[UNSCOPABLES][key] = true;
  127. };
  128. /***/ }),
  129. /***/ "./node_modules/core-js/internals/array-iteration.js":
  130. /*!***********************************************************!*\
  131. !*** ./node_modules/core-js/internals/array-iteration.js ***!
  132. \***********************************************************/
  133. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  134. var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
  135. var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
  136. var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
  137. var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
  138. var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js");
  139. var push = [].push;
  140. // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
  141. var createMethod = function (TYPE) {
  142. var IS_MAP = TYPE == 1;
  143. var IS_FILTER = TYPE == 2;
  144. var IS_SOME = TYPE == 3;
  145. var IS_EVERY = TYPE == 4;
  146. var IS_FIND_INDEX = TYPE == 6;
  147. var IS_FILTER_OUT = TYPE == 7;
  148. var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  149. return function ($this, callbackfn, that, specificCreate) {
  150. var O = toObject($this);
  151. var self = IndexedObject(O);
  152. var boundFunction = bind(callbackfn, that, 3);
  153. var length = toLength(self.length);
  154. var index = 0;
  155. var create = specificCreate || arraySpeciesCreate;
  156. var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
  157. var value, result;
  158. for (;length > index; index++) if (NO_HOLES || index in self) {
  159. value = self[index];
  160. result = boundFunction(value, index, O);
  161. if (TYPE) {
  162. if (IS_MAP) target[index] = result; // map
  163. else if (result) switch (TYPE) {
  164. case 3: return true; // some
  165. case 5: return value; // find
  166. case 6: return index; // findIndex
  167. case 2: push.call(target, value); // filter
  168. } else switch (TYPE) {
  169. case 4: return false; // every
  170. case 7: push.call(target, value); // filterOut
  171. }
  172. }
  173. }
  174. return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
  175. };
  176. };
  177. module.exports = {
  178. // `Array.prototype.forEach` method
  179. // https://tc39.es/ecma262/#sec-array.prototype.foreach
  180. forEach: createMethod(0),
  181. // `Array.prototype.map` method
  182. // https://tc39.es/ecma262/#sec-array.prototype.map
  183. map: createMethod(1),
  184. // `Array.prototype.filter` method
  185. // https://tc39.es/ecma262/#sec-array.prototype.filter
  186. filter: createMethod(2),
  187. // `Array.prototype.some` method
  188. // https://tc39.es/ecma262/#sec-array.prototype.some
  189. some: createMethod(3),
  190. // `Array.prototype.every` method
  191. // https://tc39.es/ecma262/#sec-array.prototype.every
  192. every: createMethod(4),
  193. // `Array.prototype.find` method
  194. // https://tc39.es/ecma262/#sec-array.prototype.find
  195. find: createMethod(5),
  196. // `Array.prototype.findIndex` method
  197. // https://tc39.es/ecma262/#sec-array.prototype.findIndex
  198. findIndex: createMethod(6),
  199. // `Array.prototype.filterOut` method
  200. // https://github.com/tc39/proposal-array-filtering
  201. filterOut: createMethod(7)
  202. };
  203. /***/ }),
  204. /***/ "./node_modules/core-js/internals/array-species-create.js":
  205. /*!****************************************************************!*\
  206. !*** ./node_modules/core-js/internals/array-species-create.js ***!
  207. \****************************************************************/
  208. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  209. var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
  210. var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
  211. var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
  212. var SPECIES = wellKnownSymbol('species');
  213. // `ArraySpeciesCreate` abstract operation
  214. // https://tc39.es/ecma262/#sec-arrayspeciescreate
  215. module.exports = function (originalArray, length) {
  216. var C;
  217. if (isArray(originalArray)) {
  218. C = originalArray.constructor;
  219. // cross-realm fallback
  220. if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
  221. else if (isObject(C)) {
  222. C = C[SPECIES];
  223. if (C === null) C = undefined;
  224. }
  225. } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
  226. };
  227. /***/ }),
  228. /***/ "./node_modules/core-js/internals/function-bind-context.js":
  229. /*!*****************************************************************!*\
  230. !*** ./node_modules/core-js/internals/function-bind-context.js ***!
  231. \*****************************************************************/
  232. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  233. var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
  234. // optional / simple context binding
  235. module.exports = function (fn, that, length) {
  236. aFunction(fn);
  237. if (that === undefined) return fn;
  238. switch (length) {
  239. case 0: return function () {
  240. return fn.call(that);
  241. };
  242. case 1: return function (a) {
  243. return fn.call(that, a);
  244. };
  245. case 2: return function (a, b) {
  246. return fn.call(that, a, b);
  247. };
  248. case 3: return function (a, b, c) {
  249. return fn.call(that, a, b, c);
  250. };
  251. }
  252. return function (/* ...args */) {
  253. return fn.apply(that, arguments);
  254. };
  255. };
  256. /***/ }),
  257. /***/ "./node_modules/core-js/internals/html.js":
  258. /*!************************************************!*\
  259. !*** ./node_modules/core-js/internals/html.js ***!
  260. \************************************************/
  261. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  262. var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
  263. module.exports = getBuiltIn('document', 'documentElement');
  264. /***/ }),
  265. /***/ "./node_modules/core-js/internals/is-array.js":
  266. /*!****************************************************!*\
  267. !*** ./node_modules/core-js/internals/is-array.js ***!
  268. \****************************************************/
  269. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  270. var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
  271. // `IsArray` abstract operation
  272. // https://tc39.es/ecma262/#sec-isarray
  273. // eslint-disable-next-line es/no-array-isarray -- safe
  274. module.exports = Array.isArray || function isArray(arg) {
  275. return classof(arg) == 'Array';
  276. };
  277. /***/ }),
  278. /***/ "./node_modules/core-js/internals/object-create.js":
  279. /*!*********************************************************!*\
  280. !*** ./node_modules/core-js/internals/object-create.js ***!
  281. \*********************************************************/
  282. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  283. var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  284. var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js");
  285. var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
  286. var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
  287. var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js");
  288. var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
  289. var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
  290. var GT = '>';
  291. var LT = '<';
  292. var PROTOTYPE = 'prototype';
  293. var SCRIPT = 'script';
  294. var IE_PROTO = sharedKey('IE_PROTO');
  295. var EmptyConstructor = function () { /* empty */ };
  296. var scriptTag = function (content) {
  297. return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
  298. };
  299. // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
  300. var NullProtoObjectViaActiveX = function (activeXDocument) {
  301. activeXDocument.write(scriptTag(''));
  302. activeXDocument.close();
  303. var temp = activeXDocument.parentWindow.Object;
  304. activeXDocument = null; // avoid memory leak
  305. return temp;
  306. };
  307. // Create object with fake `null` prototype: use iframe Object with cleared prototype
  308. var NullProtoObjectViaIFrame = function () {
  309. // Thrash, waste and sodomy: IE GC bug
  310. var iframe = documentCreateElement('iframe');
  311. var JS = 'java' + SCRIPT + ':';
  312. var iframeDocument;
  313. iframe.style.display = 'none';
  314. html.appendChild(iframe);
  315. // https://github.com/zloirock/core-js/issues/475
  316. iframe.src = String(JS);
  317. iframeDocument = iframe.contentWindow.document;
  318. iframeDocument.open();
  319. iframeDocument.write(scriptTag('document.F=Object'));
  320. iframeDocument.close();
  321. return iframeDocument.F;
  322. };
  323. // Check for document.domain and active x support
  324. // No need to use active x approach when document.domain is not set
  325. // see https://github.com/es-shims/es5-shim/issues/150
  326. // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
  327. // avoid IE GC bug
  328. var activeXDocument;
  329. var NullProtoObject = function () {
  330. try {
  331. /* global ActiveXObject -- old IE */
  332. activeXDocument = document.domain && new ActiveXObject('htmlfile');
  333. } catch (error) { /* ignore */ }
  334. NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
  335. var length = enumBugKeys.length;
  336. while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
  337. return NullProtoObject();
  338. };
  339. hiddenKeys[IE_PROTO] = true;
  340. // `Object.create` method
  341. // https://tc39.es/ecma262/#sec-object.create
  342. module.exports = Object.create || function create(O, Properties) {
  343. var result;
  344. if (O !== null) {
  345. EmptyConstructor[PROTOTYPE] = anObject(O);
  346. result = new EmptyConstructor();
  347. EmptyConstructor[PROTOTYPE] = null;
  348. // add "__proto__" for Object.getPrototypeOf polyfill
  349. result[IE_PROTO] = O;
  350. } else result = NullProtoObject();
  351. return Properties === undefined ? result : defineProperties(result, Properties);
  352. };
  353. /***/ }),
  354. /***/ "./node_modules/core-js/internals/object-define-properties.js":
  355. /*!********************************************************************!*\
  356. !*** ./node_modules/core-js/internals/object-define-properties.js ***!
  357. \********************************************************************/
  358. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  359. var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
  360. var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
  361. var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
  362. var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
  363. // `Object.defineProperties` method
  364. // https://tc39.es/ecma262/#sec-object.defineproperties
  365. // eslint-disable-next-line es/no-object-defineproperties -- safe
  366. module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
  367. anObject(O);
  368. var keys = objectKeys(Properties);
  369. var length = keys.length;
  370. var index = 0;
  371. var key;
  372. while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
  373. return O;
  374. };
  375. /***/ }),
  376. /***/ "./node_modules/core-js/internals/object-keys.js":
  377. /*!*******************************************************!*\
  378. !*** ./node_modules/core-js/internals/object-keys.js ***!
  379. \*******************************************************/
  380. /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  381. var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js");
  382. var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
  383. // `Object.keys` method
  384. // https://tc39.es/ecma262/#sec-object.keys
  385. // eslint-disable-next-line es/no-object-keys -- safe
  386. module.exports = Object.keys || function keys(O) {
  387. return internalObjectKeys(O, enumBugKeys);
  388. };
  389. /***/ }),
  390. /***/ "./node_modules/core-js/modules/es.array.find.js":
  391. /*!*******************************************************!*\
  392. !*** ./node_modules/core-js/modules/es.array.find.js ***!
  393. \*******************************************************/
  394. /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
  395. "use strict";
  396. var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
  397. var $find = __webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").find;
  398. var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js");
  399. var FIND = 'find';
  400. var SKIPS_HOLES = true;
  401. // Shouldn't skip holes
  402. if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
  403. // `Array.prototype.find` method
  404. // https://tc39.es/ecma262/#sec-array.prototype.find
  405. $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
  406. find: function find(callbackfn /* , that = undefined */) {
  407. return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  408. }
  409. });
  410. // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
  411. addToUnscopables(FIND);
  412. /***/ }),
  413. /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/field/collection/form.scss":
  414. /*!******************************************************************************************!*\
  415. !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/field/collection/form.scss ***!
  416. \******************************************************************************************/
  417. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  418. "use strict";
  419. __webpack_require__.r(__webpack_exports__);
  420. // extracted by mini-css-extract-plugin
  421. /***/ })
  422. },
  423. /******/ __webpack_require__ => { // webpackRuntimeModules
  424. /******/ "use strict";
  425. /******/
  426. /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
  427. /******/ __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_jquery_src_jquery_js","vendors-node_modules_jquery-ui-dist_jquery-ui_js"], () => (__webpack_exec__("../LaClicBundle/SovBundle/Resources/assets/app/adminlte/field/collection/app.collection.js")));
  428. /******/ var __webpack_exports__ = __webpack_require__.O();
  429. /******/ }
  430. ]);
  431. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9maWVsZC9jb2xsZWN0aW9uL2FwcC5jb2xsZWN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hLWZ1bmN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaHRtbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIiwid2VicGFjazovLy8uLi9MYUNsaWNCdW5kbGUvU292QnVuZGxlL1Jlc291cmNlcy9hc3NldHMvYXBwL2FkbWlubHRlL2ZpZWxkL2NvbGxlY3Rpb24vZm9ybS5zY3NzIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsInJlYWR5IiwiaW5pdENvbGxlY3Rpb25XaWRnZXQiLCJlYWNoIiwiaSIsImNvbGxlY3Rpb25XaWRnZXQiLCJzZXRDb2xsZWN0aW9uV2lkZ2V0U29ydGFibGUiLCJyZWluZGV4S2V5Q29sbGVjdGlvbldpZGdldCIsInNldENvbGxlY3Rpb25XaWRnZXRBZGQiLCJzZXRDb2xsZWN0aW9uV2lkZ2V0RGVsZXRlIiwiJGNvbGxlY3Rpb25XaWRnZXQiLCJkYXRhIiwiZmluZCIsIm9uIiwiZSIsIm5ld1dpZGdldCIsImF0dHIiLCJyZXBsYWNlIiwiZ2V0TnVtSXRlbXMiLCJhcHBlbmQiLCJ2YWwiLCJ0cmlnZ2VyIiwiaGlkZSIsIm9mZiIsInBhcmVudHMiLCJyZW1vdmUiLCJzaG93IiwibGVuZ3RoIiwiaXRlbSIsInkiLCJmaWVsZCIsIiRmaWVsZCIsInBvc0lkIiwiVG9vbHMiLCJpbmRleE9mTGFzdERpZ2l0IiwicHJvcCIsImlkUHJlZml4Iiwic3Vic3RyIiwiaWRTdWZmaXgiLCJwb3NOYW1lIiwibmFtZVByZWZpeCIsIm5hbWVTdWZmaXgiLCJzb3J0YWJsZSIsImNhbmNlbCIsImV2ZW50IiwidWkiLCJpbmRleCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFHQUEsQ0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsS0FBWixDQUFrQixZQUFZO0FBQzFCQyxzQkFBb0I7QUFDdkIsQ0FGRDs7QUFJQSxTQUFTQSxvQkFBVCxHQUFnQztBQUU1QkgsR0FBQyxDQUFDLG1DQUFELENBQUQsQ0FBdUNJLElBQXZDLENBQTRDLFVBQVVDLENBQVYsRUFBYUMsZ0JBQWIsRUFBK0I7QUFDdkVDLCtCQUEyQixDQUFDUCxDQUFDLENBQUNNLGdCQUFELENBQUYsQ0FBM0I7QUFDQUUsOEJBQTBCLENBQUNSLENBQUMsQ0FBQ00sZ0JBQUQsQ0FBRixDQUExQjtBQUVBRywwQkFBc0IsQ0FBQ1QsQ0FB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Q0EsQ0FBQzs7QUFFRDtBQUNBOzs7Ozs7Ozs7Ozs7O0FDcEJBIiwiZmlsZSI6ImFkbWlubHRlLWZpZWxkLWNvbGxlY3Rpb24uODVmN2EzMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCBcImpxdWVyeS11aVwiXG5pbXBvcnQgXCIuL2Zvcm0uc2Nzc1wiXG5cblxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICAgIGluaXRDb2xsZWN0aW9uV2lkZ2V0KCk7XG59KTtcblxuZnVuY3Rpb24gaW5pdENvbGxlY3Rpb25XaWRnZXQoKSB7XG5cbiAgICAkKCcuZmllbGQtY29sbGVjdGlvbltkYXRhLXByb3RvdHlwZV0nKS5lYWNoKGZ1bmN0aW9uIChpLCBjb2xsZWN0aW9uV2lkZ2V0KSB7XG4gICAgICAgIHNldENvbGxlY3Rpb25XaWRnZXRTb3J0YWJsZSgkKGNvbGxlY3Rpb25XaWRnZXQpKTtcbiAgICAgICAgcmVpbmRleEtleUNvbGxlY3Rpb25XaWRnZXQoJChjb2xsZWN0aW9uV2lkZ2V0KSk7XG5cbiAgICAgICAgc2V0Q29sbGVjdGlvbldpZGdldEFkZCgkKGNvbGxlY3Rpb25XaWRnZXQpKTtcbiAgICAgICAgc2V0Q29sbGVjdGlvbldpZGdldERlbGV0ZSgkKGNvbGxlY3Rpb25XaWRnZXQpKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0Q29sbGVjdGlvbldpZGdldEFkZCgkY29sbGVjdGlvbldpZGdldCkge1xuXG4gICAgaWYgKCRjb2xsZWN0aW9uV2lkZ2V0LmRhdGEoJ2FsbG93LWFkZCcpKSB7XG4gICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWFkZCcpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAvLyBncmFiIHRoZSBwcm90b3R5cGUgdGVtcGxhdGVcbiAgICAgICAgICAgIHZhciBuZXdXaWRnZXQgPSAkY29sbGVjdGlvbldpZGdldC5hdHRyKCdkYXRhLXByb3RvdHlwZScpO1xuICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgXCJfX25hbWVfX1wiIHVzZWQgaW4gdGhlIGlkIGFuZCBuYW1lIG9mIHRoZSBwcm90b3R5cGVcbiAgICAgICAgICAgIC8vIHdpdGggYSBudW1iZXIgdGhhdCdzIHVuaXF1ZSB0byB5b3VyIGVtYWlsc1xuICAgICAgICAgICAgLy8gZW5kIG5hbWUgYXR0cmlidXRlIGxvb2tzIGxpa2UgbmFtZT1cImNvbnRhY3RbZW1haWxzXVsyXVwiXG4gICAgICAgICAgICBuZXdXaWRnZXQgPSBuZXdXaWRnZXQucmVwbGFjZSgvX19uYW1lX18vZywgZ2V0TnVtSXRlbXMoJGNvbGxlY3Rpb25XaWRnZXQpKTtcblxuICAgICAgICAgICAgLy8gY3JlYXRlIGEgbmV3IGxpc3QgZWxlbWVudCBhbmQgYWRkIGl0IHRvIHRoZSBsaXN0XG4gICAgICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZm9ybS13aWRnZXQtY29tcG91bmQgLmZpZWxkLWNvbGxlY3Rpb24tZ3JvdXAnKS5hcHBlbmQobmV3V2lkZ2V0KTtcbiAgICAgICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWl0ZW06bGFzdCcpLmZpbmQoJy5maWVsZC1wb3NpdGlvbicpLnZhbChnZXROdW1JdGVtcygkY29sbGVjdGlvbldpZGdldCkpO1xuXG4gICAgICAgICAgICByZWluZGV4S2V5Q29sbGVjdGlvbldpZGdldCgkY29sbGVjdGlvbldpZGdldCk7XG4gICAgICAgICAgICBzZXRDb2xsZWN0aW9uV2lkZ2V0RGVsZXRlKCRjb2xsZWN0aW9uV2lkZ2V0KTtcbiAgICAgICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LnRyaWdnZXIoJ2NvbGxlY3Rpb24tYWRkLWl0ZW0nKTtcblxuICAgICAgICAgICAgJGNvbGxlY3Rpb25XaWRnZXQuZGF0YSgnbnVtLWl0ZW1zJywgJGNvbGxlY3Rpb25XaWRnZXQuZGF0YSgnbnVtLWl0ZW1zJykgKyAxKTtcbiAgICAgICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5jb2xsZWN0aW9uLWVtcHR5JykuaGlkZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNldENvbGxlY3Rpb25XaWRnZXREZWxldGUoJGNvbGxlY3Rpb25XaWRnZXQpIHtcbiAgICBpZiAoJGNvbGxlY3Rpb25XaWRnZXQuZGF0YSgnYWxsb3ctZGVsZXRlJykpIHtcbiAgICAgICAgJGNvbGxlY3Rpb25XaWRnZXQuZmluZCgnLmZpZWxkLWNvbGxlY3Rpb24tZGVsZXRlJykub2ZmKCdjbGljaycpO1xuICAgICAgICAkY29sbGVjdGlvbldpZGdldC5maW5kKCcuZmllbGQtY29sbGVjdGlvbi1kZWxldGUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLnBhcmVudHMoJy5mb3JtLWdyb3VwOmZpcnN0JykucmVtb3ZlKCk7XG4gICAgICAgICAgICByZWluZGV4S2V5Q29sbGVjdGlvbldpZGdldCgkY29sbGVjdGlvbldpZGdldCk7XG4gICAgICAgICAgICBpZihnZXROdW1JdGVtcygkY29sbGVjdGlvbldpZGdldCk9PTApJGNvbGxlY3Rpb25XaWRnZXQuZmluZCgnLmNvbGxlY3Rpb24tZW1wdHknKS5zaG93KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0TnVtSXRlbXMoJGNvbGxlY3Rpb25XaWRnZXQpIHtcbiAgICBpZiAoJGNvbGxlY3Rpb25XaWRnZXQuZGF0YSgncmVpbmRleC1rZXknKSkge1xuICAgICAgICByZXR1cm4gJGNvbGxlY3Rpb25XaWRnZXQuZmluZCgnLmZpZWxkLWNvbGxlY3Rpb24taXRlbScpLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJGNvbGxlY3Rpb25XaWRnZXQuZGF0YSgnbnVtLWl0ZW1zJyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiByZWluZGV4S2V5Q29sbGVjdGlvbldpZGdldCgkY29sbGVjdGlvbldpZGdldCkge1xuICAgIGlmICgkY29sbGVjdGlvbldpZGdldC5kYXRhKCdyZWluZGV4LWtleScpKSB7XG4gICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWl0ZW0nKS5lYWNoKGZ1bmN0aW9uIChpLCBpdGVtKSB7XG4gICAgICAgICAgICAkKGl0ZW0pLmZpbmQoJ2lucHV0LHRleHRhcmVhJykuZWFjaChmdW5jdGlvbiAoeSwgZmllbGQpIHtcbiAgICAgICAgICAgICAgICBsZXQgJGZpZWxkID0gJChmaWVsZCk7XG4gICAgICAgICAgICAgICAgLy9DaGFuZWdtZW50IElEXG4gICAgICAgICAgICAgICAgbGV0IHBvc0lkID0gVG9vbHMuaW5kZXhPZkxhc3REaWdpdCgkZmllbGQucHJvcCgnaWQnKSk7XG4gICAgICAgICAgICAgICAgbGV0IGlkUHJlZml4ID0gJGZpZWxkLnByb3AoJ2lkJykuc3Vic3RyKDAsIHBvc0lkKTtcbiAgICAgICAgICAgICAgICBsZXQgaWRTdWZmaXggPSAkZmllbGQucHJvcCgnaWQnKS5zdWJzdHIocG9zSWQgKyAxKTtcbiAgICAgICAgICAgICAgICAkZmllbGQucHJvcCgnaWQnLCBpZFByZWZpeCArIGkgKyBpZFN1ZmZpeCk7XG5cbiAgICAgICAgICAgICAgICAvL0NoYW5lZ21lbnQgTmFtZVxuICAgICAgICAgICAgICAgIGxldCBwb3NOYW1lID0gVG9vbHMuaW5kZXhPZkxhc3REaWdpdCgkZmllbGQucHJvcCgnbmFtZScpKTtcbiAgICAgICAgICAgICAgICBsZXQgbmFtZVByZWZpeCA9ICRmaWVsZC5wcm9wKCduYW1lJykuc3Vic3RyKDAsIHBvc05hbWUpO1xuICAgICAgICAgICAgICAgIGxldCBuYW1lU3VmZml4ID0gJGZpZWxkLnByb3AoJ25hbWUnKS5zdWJzdHIocG9zTmFtZSArIDEpO1xuICAgICAgICAgICAgICAgICRmaWVsZC5wcm9wKCduYW1lJywgbmFtZVByZWZpeCArIGkgKyBuYW1lU3VmZml4KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHNldENvbGxlY3Rpb25XaWRnZXRTb3J0YWJsZSgkY29sbGVjdGlvbldpZGdldCkge1xuICAgIGlmICgkY29sbGVjdGlvbldpZGdldC5kYXRhKCdzb3J0YWJsZScpKSB7XG4gICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWdyb3VwJykuc29ydGFibGUoe1xuICAgICAgICAgICAgXCJoYW5kbGVcIiA6ICcubGMtYnRuLXNvcnRhYmxlJyxcbiAgICAgICAgICAgIGNhbmNlbDogJydcbiAgICAgICAgfSk7XG4gICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWdyb3VwJykub24oXCJzb3J0dXBkYXRlXCIsIGZ1bmN0aW9uIChldmVudCwgdWkpIHtcbiAgICAgICAgICAgICRjb2xsZWN0aW9uV2lkZ2V0LmZpbmQoJy5maWVsZC1jb2xsZWN0aW9uLWdyb3VwPmRpdicpLmVhY2goZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgJChpdGVtKS5maW5kKCcuZmllbGQtcG9zaXRpb24nKS52YWwoaW5kZXgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IFR5cGVFcnJvcihTdHJpbmcoaXQpICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xuICB9IHJldHVybiBpdDtcbn07XG4iLCJ2YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG5cbnZhciBVTlNDT1BBQkxFUyA9IHdlbGxLbm93blN5bWJvbCgndW5zY29wYWJsZXMnKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxuLy8gQXJyYXkucHJvdG90eXBlW0BAdW5zY29wYWJsZXNdXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5pZiAoQXJyYXlQcm90b3R5cGVbVU5TQ09QQUJMRVNdID09IHVuZGVmaW5lZCkge1xuICBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKEFycmF5UHJvdG90eXBlLCBVTlNDT1BBQkxFUywge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB2YWx1ZTogY3JlYXRlKG51bGwpXG4gIH0pO1xufVxuXG4vLyBhZGQgYSBrZXkgdG8gQXJyYXkucHJvdG90eXBlW0BAdW5zY29wYWJsZXNdXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgQXJyYXlQcm90b3R5cGVbVU5TQ09QQUJMRVNdW2tleV0gPSB0cnVlO1xufTtcbiIsInZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciBhcnJheVNwZWNpZXNDcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcblxudmFyIHB1c2ggPSBbXS5wdXNoO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgZm9yRWFjaCwgbWFwLCBmaWx0ZXIsIHNvbWUsIGV2ZXJ5LCBmaW5kLCBmaW5kSW5kZXgsIGZpbHRlck91dCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgdmFyIElTX01BUCA9IFRZUEUgPT0gMTtcbiAgdmFyIElTX0ZJTFRFUiA9IFRZUEUgPT0gMjtcbiAgdmFyIElTX1NPTUUgPSBUWVBFID09IDM7XG4gIHZhciBJU19FVkVSWSA9IFRZUEUgPT0gNDtcbiAgdmFyIElTX0ZJTkRfSU5ERVggPSBUWVBFID09IDY7XG4gIHZhciBJU19GSUxURVJfT1VUID0gVFlQRSA9PSA3O1xuICB2YXIgTk9fSE9MRVMgPSBUWVBFID09IDUgfHwgSVNfRklORF9JTkRFWDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgY2FsbGJhY2tmbiwgdGhhdCwgc3BlY2lmaWNDcmVhdGUpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIHRoYXQsIDMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChzZWxmLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgY3JlYXRlID0gc3BlY2lmaWNDcmVhdGUgfHwgYXJyYXlTcGVjaWVzQ3JlYXRlO1xuICAgIHZhciB0YXJnZXQgPSBJU19NQVAgPyBjcmVhdGUoJHRoaXMsIGxlbmd0aCkgOiBJU19GSUxURVIgfHwgSVNfRklMVEVSX09VVCA/IGNyZWF0ZSgkdGhpcywgMCkgOiB1bmRlZmluZWQ7XG4gICAgdmFyIHZhbHVlLCByZXN1bHQ7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChOT19IT0xFUyB8fCBpbmRleCBpbiBzZWxmKSB7XG4gICAgICB2YWx1ZSA9IHNlbGZbaW5kZXhdO1xuICAgICAgcmVzdWx0ID0gYm91bmRGdW5jdGlvbih2YWx1ZSwgaW5kZXgsIE8pO1xuICAgICAgaWYgKFRZUEUpIHtcbiAgICAgICAgaWYgKElTX01BUCkgdGFyZ2V0W2luZGV4XSA9IHJlc3VsdDsgLy8gbWFwXG4gICAgICAgIGVsc2UgaWYgKHJlc3VsdCkgc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSAzOiByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgIC8vIHNvbWVcbiAgICAgICAgICBjYXNlIDU6IHJldHVybiB2YWx1ZTsgICAgICAgICAgICAgLy8gZmluZFxuICAgICAgICAgIGNhc2UgNjogcmV0dXJuIGluZGV4OyAgICAgICAgICAgICAvLyBmaW5kSW5kZXhcbiAgICAgICAgICBjYXNlIDI6IHB1c2guY2FsbCh0YXJnZXQsIHZhbHVlKTsgLy8gZmlsdGVyXG4gICAgICAgIH0gZWxzZSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDQ6IHJldHVybiBmYWxzZTsgICAgICAgICAgICAgLy8gZXZlcnlcbiAgICAgICAgICBjYXNlIDc6IHB1c2guY2FsbCh0YXJnZXQsIHZhbHVlKTsgLy8gZmlsdGVyT3V0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIElTX0ZJTkRfSU5ERVggPyAtMSA6IElTX1NPTUUgfHwgSVNfRVZFUlkgPyBJU19FVkVSWSA6IHRhcmdldDtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5mb3JlYWNoXG4gIGZvckVhY2g6IGNyZWF0ZU1ldGhvZCgwKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5tYXBgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5tYXBcbiAgbWFwOiBjcmVhdGVNZXRob2QoMSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsdGVyXG4gIGZpbHRlcjogY3JlYXRlTWV0aG9kKDIpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLnNvbWVgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zb21lXG4gIHNvbWU6IGNyZWF0ZU1ldGhvZCgzKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5ldmVyeWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmV2ZXJ5XG4gIGV2ZXJ5OiBjcmVhdGVNZXRob2QoNCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbiAgZmluZDogY3JlYXRlTWV0aG9kKDUpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRJbmRleFxuICBmaW5kSW5kZXg6IGNyZWF0ZU1ldGhvZCg2KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJPdXRgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1hcnJheS1maWx0ZXJpbmdcbiAgZmlsdGVyT3V0OiBjcmVhdGVNZXRob2QoNylcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG4vLyBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5LCBsZW5ndGgpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsQXJyYXkpKSB7XG4gICAgQyA9IG9yaWdpbmFsQXJyYXkuY29uc3RydWN0b3I7XG4gICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICBpZiAodHlwZW9mIEMgPT0gJ2Z1bmN0aW9uJyAmJiAoQyA9PT0gQXJyYXkgfHwgaXNBcnJheShDLnByb3RvdHlwZSkpKSBDID0gdW5kZWZpbmVkO1xuICAgIGVsc2UgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gbmV3IChDID09PSB1bmRlZmluZWQgPyBBcnJheSA6IEMpKGxlbmd0aCA9PT0gMCA/IDAgOiBsZW5ndGgpO1xufTtcbiIsInZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQpO1xuICAgIH07XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwidmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJbignZG9jdW1lbnQnLCAnZG9jdW1lbnRFbGVtZW50Jyk7XG4iLCJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG4vLyBgSXNBcnJheWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzYXJyYXlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1hcnJheS1pc2FycmF5IC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY2xhc3NvZihhcmcpID09ICdBcnJheSc7XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGRlZmluZVByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBkb2N1bWVudENyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xuXG52YXIgR1QgPSAnPic7XG52YXIgTFQgPSAnPCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgU0NSSVBUID0gJ3NjcmlwdCc7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBFbXB0eUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG52YXIgc2NyaXB0VGFnID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIExUICsgU0NSSVBUICsgR1QgKyBjb250ZW50ICsgTFQgKyAnLycgKyBTQ1JJUFQgKyBHVDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBBY3RpdmVYIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCA9IGZ1bmN0aW9uIChhY3RpdmVYRG9jdW1lbnQpIHtcbiAgYWN0aXZlWERvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnJykpO1xuICBhY3RpdmVYRG9jdW1lbnQuY2xvc2UoKTtcbiAgdmFyIHRlbXAgPSBhY3RpdmVYRG9jdW1lbnQucGFyZW50V2luZG93Lk9iamVjdDtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDsgLy8gYXZvaWQgbWVtb3J5IGxlYWtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIC8qIGdsb2JhbCBBY3RpdmVYT2JqZWN0IC0tIG9sZCBJRSAqL1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IGRvY3VtZW50LmRvbWFpbiAmJiBuZXcgQWN0aXZlWE9iamVjdCgnaHRtbGZpbGUnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogaWdub3JlICovIH1cbiAgTnVsbFByb3RvT2JqZWN0ID0gYWN0aXZlWERvY3VtZW50ID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIDogTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lKCk7XG4gIHZhciBsZW5ndGggPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkgZGVsZXRlIE51bGxQcm90b09iamVjdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2xlbmd0aF1dO1xuICByZXR1cm4gTnVsbFByb3RvT2JqZWN0KCk7XG59O1xuXG5oaWRkZW5LZXlzW0lFX1BST1RPXSA9IHRydWU7XG5cbi8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmNyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5Q29uc3RydWN0b3IoKTtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IE51bGxQcm90b09iamVjdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZGVmaW5lUHJvcGVydGllcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0aWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnRpZXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IG9iamVjdEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSA9IGtleXNbaW5kZXgrK10sIFByb3BlcnRpZXNba2V5XSk7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIGBPYmplY3Qua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5rZXlzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWtleXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJGZpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmluZDtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xuXG52YXIgRklORCA9ICdmaW5kJztcbnZhciBTS0lQU19IT0xFUyA9IHRydWU7XG5cbi8vIFNob3VsZG4ndCBza2lwIGhvbGVzXG5pZiAoRklORCBpbiBbXSkgQXJyYXkoMSlbRklORF0oZnVuY3Rpb24gKCkgeyBTS0lQU19IT0xFUyA9IGZhbHNlOyB9KTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFNLSVBTX0hPTEVTIH0sIHtcbiAgZmluZDogZnVuY3Rpb24gZmluZChjYWxsYmFja2ZuIC8qICwgdGhhdCA9IHVuZGVmaW5lZCAqLykge1xuICAgIHJldHVybiAkZmluZCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKEZJTkQpO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307Il0sInNvdXJjZVJvb3QiOiIifQ==