clientnode 4.0.1428 → 4.0.1429

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/Lock.js +100 -1
  2. package/dist/Logger.js +185 -1
  3. package/dist/Semaphore.js +65 -1
  4. package/dist/array.js +452 -1
  5. package/dist/cli.js +51 -1
  6. package/dist/constants.js +126 -1
  7. package/dist/context.js +40 -1
  8. package/dist/cookie.js +84 -1
  9. package/dist/data-transfer.js +216 -1
  10. package/dist/datetime.js +282 -1
  11. package/dist/domNode.js +331 -1
  12. package/dist/expression/evaluators.js +273 -1
  13. package/dist/expression/helper.js +97 -1
  14. package/dist/expression/index.js +26 -1
  15. package/dist/expression/indicator-functions.js +37 -1
  16. package/dist/expression/type.js +20 -0
  17. package/dist/filesystem.js +410 -1
  18. package/dist/function.js +75 -1
  19. package/dist/index.js +43 -1
  20. package/dist/indicators.js +121 -1
  21. package/dist/number.js +61 -1
  22. package/dist/object.js +934 -1
  23. package/dist/process.js +69 -1
  24. package/dist/property-types.js +115 -1
  25. package/dist/require.js +82 -1
  26. package/dist/scope.js +85 -1
  27. package/dist/string.js +806 -1
  28. package/dist/test-helper.js +341 -1
  29. package/dist/type.js +21 -1
  30. package/dist/utility.js +139 -1
  31. package/package.json +23 -22
  32. package/dist/Lock.d.ts +0 -39
  33. package/dist/Logger.d.ts +0 -102
  34. package/dist/Semaphore.d.ts +0 -29
  35. package/dist/array.d.ts +0 -150
  36. package/dist/bundle/Lock.js +0 -1
  37. package/dist/bundle/Logger.js +0 -1
  38. package/dist/bundle/Semaphore.js +0 -1
  39. package/dist/bundle/array.js +0 -1
  40. package/dist/bundle/cli.js +0 -1
  41. package/dist/bundle/constants.js +0 -1
  42. package/dist/bundle/context.js +0 -1
  43. package/dist/bundle/cookie.js +0 -1
  44. package/dist/bundle/data-transfer.js +0 -1
  45. package/dist/bundle/datetime.js +0 -1
  46. package/dist/bundle/domNode.js +0 -1
  47. package/dist/bundle/expression/evaluators.js +0 -1
  48. package/dist/bundle/expression/helper.js +0 -1
  49. package/dist/bundle/expression/index.js +0 -1
  50. package/dist/bundle/expression/indicator-functions.js +0 -1
  51. package/dist/bundle/expression/types.js +0 -1
  52. package/dist/bundle/filesystem.js +0 -1
  53. package/dist/bundle/function.js +0 -1
  54. package/dist/bundle/index.js +0 -1
  55. package/dist/bundle/indicators.js +0 -1
  56. package/dist/bundle/number.js +0 -1
  57. package/dist/bundle/object.js +0 -1
  58. package/dist/bundle/process.js +0 -1
  59. package/dist/bundle/property-types.js +0 -1
  60. package/dist/bundle/require.js +0 -1
  61. package/dist/bundle/scope.js +0 -1
  62. package/dist/bundle/string.js +0 -1
  63. package/dist/bundle/test-helper.js +0 -1
  64. package/dist/bundle/type.js +0 -1
  65. package/dist/bundle/utility.js +0 -1
  66. package/dist/cli.d.ts +0 -31
  67. package/dist/compatible/Lock.js +0 -1
  68. package/dist/compatible/Logger.js +0 -1
  69. package/dist/compatible/Semaphore.js +0 -1
  70. package/dist/compatible/array.js +0 -1
  71. package/dist/compatible/cli.js +0 -1
  72. package/dist/compatible/constants.js +0 -1
  73. package/dist/compatible/context.js +0 -1
  74. package/dist/compatible/cookie.js +0 -1
  75. package/dist/compatible/data-transfer.js +0 -1
  76. package/dist/compatible/datetime.js +0 -1
  77. package/dist/compatible/domNode.js +0 -1
  78. package/dist/compatible/expression/evaluators.js +0 -1
  79. package/dist/compatible/expression/helper.js +0 -1
  80. package/dist/compatible/expression/index.js +0 -1
  81. package/dist/compatible/expression/indicator-functions.js +0 -1
  82. package/dist/compatible/expression/types.js +0 -1
  83. package/dist/compatible/filesystem.js +0 -1
  84. package/dist/compatible/function.js +0 -1
  85. package/dist/compatible/index.js +0 -1
  86. package/dist/compatible/indicators.js +0 -1
  87. package/dist/compatible/number.js +0 -1
  88. package/dist/compatible/object.js +0 -1
  89. package/dist/compatible/process.js +0 -1
  90. package/dist/compatible/property-types.js +0 -1
  91. package/dist/compatible/require.js +0 -1
  92. package/dist/compatible/scope.js +0 -1
  93. package/dist/compatible/string.js +0 -1
  94. package/dist/compatible/test-helper.js +0 -1
  95. package/dist/compatible/type.js +0 -1
  96. package/dist/compatible/utility.js +0 -1
  97. package/dist/constants.d.ts +0 -99
  98. package/dist/context.d.ts +0 -9
  99. package/dist/cookie.d.ts +0 -31
  100. package/dist/data-transfer.d.ts +0 -45
  101. package/dist/datetime.d.ts +0 -37
  102. package/dist/domNode.d.ts +0 -82
  103. package/dist/expression/evaluators.d.ts +0 -55
  104. package/dist/expression/helper.d.ts +0 -4
  105. package/dist/expression/index.d.ts +0 -7
  106. package/dist/expression/indicator-functions.d.ts +0 -14
  107. package/dist/expression/types.d.ts +0 -70
  108. package/dist/expression/types.js +0 -1
  109. package/dist/filesystem.d.ts +0 -138
  110. package/dist/function.d.ts +0 -20
  111. package/dist/index.d.ts +0 -23
  112. package/dist/indicators.d.ts +0 -68
  113. package/dist/number.d.ts +0 -35
  114. package/dist/object.d.ts +0 -213
  115. package/dist/process.d.ts +0 -22
  116. package/dist/property-types.d.ts +0 -460
  117. package/dist/require.d.ts +0 -6
  118. package/dist/scope.d.ts +0 -44
  119. package/dist/string.d.ts +0 -299
  120. package/dist/test/Lock.d.ts +0 -1
  121. package/dist/test/Logger.d.ts +0 -1
  122. package/dist/test/Semaphore.d.ts +0 -1
  123. package/dist/test/array.d.ts +0 -1
  124. package/dist/test/cookie.d.ts +0 -1
  125. package/dist/test/data-transfer.d.ts +0 -1
  126. package/dist/test/datetime.d.ts +0 -1
  127. package/dist/test/domNode.d.ts +0 -1
  128. package/dist/test/expression/evaluators.d.ts +0 -1
  129. package/dist/test/expression/helper.d.ts +0 -1
  130. package/dist/test/expression/indicator-functions.d.ts +0 -1
  131. package/dist/test/filesystem.d.ts +0 -1
  132. package/dist/test/function.d.ts +0 -1
  133. package/dist/test/indicators.d.ts +0 -1
  134. package/dist/test/number.d.ts +0 -1
  135. package/dist/test/object.d.ts +0 -1
  136. package/dist/test/process.d.ts +0 -1
  137. package/dist/test/property-types.d.ts +0 -1
  138. package/dist/test/scope.d.ts +0 -1
  139. package/dist/test/string.d.ts +0 -1
  140. package/dist/test/utility.d.ts +0 -1
  141. package/dist/test-helper.d.ts +0 -143
  142. package/dist/type.d.ts +0 -211
  143. package/dist/utility.d.ts +0 -44
@@ -1 +1,273 @@
1
- "use strict";if("undefined"!=typeof module&&null!==module&&"undefined"!==eval("typeof require")&&null!==eval("require")&&"main"in eval("require")&&"undefined"!==eval("typeof require.main")&&null!==eval("require.main")){var ORIGINAL_MAIN_MODULE=module;module!==eval("require.main")&&"paths"in module&&"paths"in eval("require.main")&&"undefined"!=typeof __dirname&&null!==__dirname&&(module.paths=eval("require.main.paths").concat(module.paths.filter(function(path){return eval("require.main.paths").includes(path)})))}if(null==window)var window="undefined"==typeof global||null===global?{}:global;!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("@babel/runtime/helpers/extends"),require("@babel/runtime/helpers/construct"));else if("function"==typeof define&&define.amd)define(["@babel/runtime/helpers/extends","@babel/runtime/helpers/construct"],r);else{var t="object"==typeof exports?r(require("@babel/runtime/helpers/extends"),require("@babel/runtime/helpers/construct")):r(e["@babel/runtime/helpers/extends"],e["@babel/runtime/helpers/construct"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,function(__WEBPACK_EXTERNAL_MODULE__3__,__WEBPACK_EXTERNAL_MODULE__13__){return function(){var __webpack_modules__=[function(e,r,t){t.d(r,{CLASS_TO_TYPE_MAPPING:function(){return a},IGNORE_NULL_AND_UNDEFINED_SYMBOL:function(){return o},PLAIN_OBJECT_PROTOTYPES:function(){return i},SPECIAL_REGEX_SEQUENCES:function(){return _},VALUE_COPY_SYMBOL:function(){return n}});var n=Symbol.for("clientnodeValue"),o=Symbol.for("clientnodeIgnoreNullAndUndefined"),a={"[object Array]":"array","[object Boolean]":"boolean","[object Date]":"date","[object Error]":"error","[object Function]":"function","[object Map]":"map","[object Number]":"number","[object Object]":"object","[object RegExp]":"regexp","[object Set]":"set","[object String]":"string"},i=[Object.prototype],_=["-","[","]","(",")","^","$","*","+",".","{","}"]},function(e,r,t){t.d(r,{globalContext:function(){return i}});var n,o,a=t(5);e=t.hmd(e);var i="undefined"==typeof globalThis?void 0===window?void 0===t.g?e:Object.prototype.hasOwnProperty.call(t.g,"window")?t.g.window:t.g:window:globalThis;i.fetch=i.fetch?i.fetch.bind(i):null!==(n=null==(o=(0,a.optionalRequire)("node-fetch"))?void 0:o.default)&&void 0!==n?n:function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return a.currentImport?(0,a.currentImport)("node-fetch").then(function(e){var t;return(t=e).default.apply(t,r)}):null}},function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{determineType:function(){return determineType},equals:function(){return _equals},represent:function(){return _represent}});var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(3),_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__),_constants__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(0),_indicators__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(4),_number__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(8),_string__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(7);function _createForOfIteratorHelperLoose(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=_unsupportedIterableToArray(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){if(e){if("string"==typeof e)return _arrayLikeToArray(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var _addDynamicGetterAndSetter=function(e,r,t,n,o,a){if(void 0===r&&(r=null),void 0===t&&(t=null),void 0===n&&(n={}),void 0===o&&(o=!0),void 0===a&&(a=[Object]),o&&"object"==typeof e)if(Array.isArray(e))for(var i,_=0,s=_createForOfIteratorHelperLoose(e);!(i=s()).done;){var u=i.value;e[_]=_addDynamicGetterAndSetter(u,r,t,n,o),_+=1}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e))for(var l,c=_createForOfIteratorHelperLoose(e);!(l=c()).done;){var f=l.value,p=f[0],d=f[1];e.set(p,_addDynamicGetterAndSetter(d,r,t,n,o))}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(e)){for(var v,O=[],E=_createForOfIteratorHelperLoose(e);!(v=E()).done;){var b=v.value;e.delete(b),O.push(_addDynamicGetterAndSetter(b,r,t,n,o))}for(var g=0,y=O;g<y.length;g++){var h=y[g];e.add(h)}}else if(null!==e)for(var P=0,m=Object.entries(e);P<m.length;P++){var A=m[P],M=A[0],I=A[1];e[M]=_addDynamicGetterAndSetter(I,r,t,n,o)}if(r||t)for(var D,L,R=function(){var o=L.value;if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e)&&e instanceof o){var a=getProxyHandler(e,n),i=getProxyHandler(e,n);r&&(i.get=function(t,n){return"__target__"===n?e:"__revoke__"===n?function(){return u(),e}:"function"==typeof e[n]?e[n]:r(a.get(s,n),n,e)}),t&&(i.set=function(r,n,o){return a.set(s,n,t(n,o,e))});var _=Proxy.revocable({},i),s=_.proxy,u=_.revoke;return{v:s}}},T=_createForOfIteratorHelperLoose(a);!(L=T()).done;)if(D=R())return D.v;return e},convertCircularObjectToJSON=function(e,r,t){void 0===r&&(r=function(e){return null!=e?e:"__circularReference__"}),void 0===t&&(t=0);var n=new Map;return function(e){var o=function(e,t){if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(t)){var a,i;if(n.has(t))return r(null!==(a=n.get(t))&&void 0!==a?a:null,e,t,n);if(n.set(t,null),Array.isArray(t)){i=[];for(var _,s=_createForOfIteratorHelperLoose(t);!(_=s()).done;){var u=_.value;i.push(o(null,u))}}else{i={};for(var l=0,c=Object.entries(t);l<c.length;l++){var f=c[l],p=f[0],d=f[1];i[p]=o(p,d)}}return n.set(t,i),i}return t};return JSON.stringify(e,o,t)}(e)},_convertMapToPlainObject=function(e,r){if(void 0===r&&(r=!0),"object"==typeof e){if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e)){for(var t,n={},o=_createForOfIteratorHelperLoose(e);!(t=o()).done;){var a=t.value,i=a[0],_=a[1];r&&(_=_convertMapToPlainObject(_,r)),["number","string"].includes(typeof i)&&(n[String(i)]=_)}return n}if(r)if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(e))for(var s=0,u=Object.entries(e);s<u.length;s++){var l=u[s],c=l[0],f=l[1];e[c]=_convertMapToPlainObject(f,r)}else if(Array.isArray(e))for(var p=0,d=0,v=e;d<v.length;d++){var O=v[d];e[p]=_convertMapToPlainObject(O,r),p+=1}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(e)){for(var E,b=[],g=_createForOfIteratorHelperLoose(e);!(E=g()).done;){var y=E.value;e.delete(y),b.push(_convertMapToPlainObject(y,r))}for(var h=0,P=b;h<P.length;h++){var m=P[h];e.add(m)}}}return e},_convertPlainObjectToMap=function(e,r){if(void 0===r&&(r=!0),"object"==typeof e){if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(e)){for(var t=new Map,n=0,o=Object.entries(e);n<o.length;n++){var a=o[n],i=a[0],_=a[1];r&&(e[i]=_convertPlainObjectToMap(_,r)),t.set(i,e[i])}return t}if(r)if(Array.isArray(e))for(var s=0,u=0,l=e;u<l.length;u++){var c=l[u];e[s]=_convertPlainObjectToMap(c,r),s+=1}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e))for(var f,p=_createForOfIteratorHelperLoose(e);!(f=p()).done;){var d=f.value,v=d[0],O=d[1];e.set(v,_convertPlainObjectToMap(O,r))}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(e)){for(var E,b=[],g=_createForOfIteratorHelperLoose(e);!(E=g()).done;){var y=E.value;e.delete(y),b.push(_convertPlainObjectToMap(y,r))}for(var h=0,P=b;h<P.length;h++){var m=P[h];e.add(m)}}}return e},_convertSubstringInPlainObject=function(e,r,t){for(var n=0,o=Object.entries(e);n<o.length;n++){var a=o[n],i=a[0],_=a[1];(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(_)?e[i]=_convertSubstringInPlainObject(_,r,t):"string"==typeof _&&(e[i]=_.replace(r,t))}return e},_copy=function(e,r,t,n,o,a,i,_){if(void 0===r&&(r=!1),void 0===t&&(t=-1),void 0===n&&(n=_constants__WEBPACK_IMPORTED_MODULE_1__.VALUE_COPY_SYMBOL),void 0===o&&(o=null),void 0===a&&(a=!1),void 0===i&&(i=[]),void 0===_&&(_=0),(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e)){if(!o){if(Array.isArray(e))return _copy(e,r,t,n,[],a,i,_);if(e instanceof Map)return _copy(e,r,t,n,new Map,a,i,_);if(e instanceof Set)return _copy(e,r,t,n,new Set,a,i,_);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){var s=/[^/]*$/.exec(e.toString());return(o=new RegExp(e.source,s?s[0]:void 0)).lastIndex=e.lastIndex,o}return"undefined"!=typeof Blob&&e instanceof Blob?r?e.slice(0,e.size,e.type):e:_copy(e,r,t,n,{},a,i,_)}if(e===o)throw new Error("Can't copy because source and destination are identical.");if(!a&&![void 0,null].includes(e)){var u=i.indexOf(e);if(-1!==u)return i[u];i.push(e)}var l=function(e){if(-1!==t&&t<_+1)return n===_constants__WEBPACK_IMPORTED_MODULE_1__.VALUE_COPY_SYMBOL?e:n;var o=_copy(e,r,t,n,null,a,i,_+1);return a||[void 0,null].includes(e)||"object"!=typeof e||i.push(e),o};if(Array.isArray(e))for(var c,f=_createForOfIteratorHelperLoose(e);!(c=f()).done;){var p=c.value;o.push(l(p))}else if(e instanceof Map)for(var d,v=_createForOfIteratorHelperLoose(e);!(d=v()).done;){var O=d.value,E=O[0],b=O[1];o.set(E,l(b))}else if(e instanceof Set)for(var g,y=_createForOfIteratorHelperLoose(e);!(g=y()).done;){var h=g.value;o.add(l(h))}else for(var P=0,m=Object.entries(e);P<m.length;P++){var A=m[P],M=A[0],I=A[1];try{o[M]=l(I)}catch(e){throw new Error('Failed to copy property value object "'+M+'": '+_represent(e),{cause:e})}}}return o||e},determineType=function(e){if([null,void 0].includes(e))return String(e);var r=typeof e;if(["function","object"].includes(r)&&"toString"in e){var t=Object.prototype.toString.call(e);if(Object.prototype.hasOwnProperty.call(_constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_TO_TYPE_MAPPING,t))return _constants__WEBPACK_IMPORTED_MODULE_1__.CLASS_TO_TYPE_MAPPING[t]}return r},_equals=function equals(firstValue,secondValue,givenOptions){void 0===givenOptions&&(givenOptions={});var options=_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({compareBlobs:!1,deep:-1,exceptionPrefixes:[],ignoreFunctions:!0,properties:null,returnReasonIfNotEqual:!1},givenOptions);if(options.ignoreFunctions&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isFunction)(firstValue)&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isFunction)(secondValue)||firstValue===secondValue||(0,_number__WEBPACK_IMPORTED_MODULE_3__.isNotANumber)(firstValue)&&(0,_number__WEBPACK_IMPORTED_MODULE_3__.isNotANumber)(secondValue)||firstValue instanceof RegExp&&secondValue instanceof RegExp&&firstValue.toString()===secondValue.toString()&&firstValue.flags.split("").sort().join("")===secondValue.flags.split("").sort().join("")||firstValue instanceof Date&&secondValue instanceof Date&&(isNaN(firstValue.getTime())&&isNaN(secondValue.getTime())||!isNaN(firstValue.getTime())&&!isNaN(secondValue.getTime())&&firstValue.getTime()===secondValue.getTime())||options.compareBlobs&&"undefined"!==eval("typeof Buffer")&&Object.prototype.hasOwnProperty.call(eval("Buffer"),"isBuffer")&&firstValue instanceof eval("Buffer")&&secondValue instanceof eval("Buffer")&&firstValue.toString("base64")===secondValue.toString("base64"))return!0;if(options.compareBlobs&&"undefined"!=typeof Blob&&firstValue instanceof Blob&&secondValue instanceof Blob)return new Promise(function(e){for(var r=[],t=0,n=[firstValue,secondValue];t<n.length;t++){var o=n[t],a=new FileReader;a.onload=function(t){null===t.target?r.push(null):r.push(t.target.result),2===r.length&&(r[0]===r[1]?e(!0):e(!!options.returnReasonIfNotEqual&&">>> Blob("+_represent(r[0])+") !== Blob("+_represent(r[1])+")"))},a.readAsDataURL(o)}});if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(firstValue)&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(secondValue)&&!(firstValue instanceof RegExp||secondValue instanceof RegExp)||Array.isArray(firstValue)&&Array.isArray(secondValue)&&firstValue.length===secondValue.length||determineType(firstValue)===determineType(secondValue)&&["map","set"].includes(determineType(firstValue))&&firstValue.size===secondValue.size){for(var promises=[],_i11=0,_arr4=[[firstValue,secondValue],[secondValue,firstValue]];_i11<_arr4.length;_i11++){var _arr4$_i=_arr4[_i11],first=_arr4$_i[0],second=_arr4$_i[1],firstIsArray=Array.isArray(first);if(firstIsArray&&(!Array.isArray(second)||first.length!==second.length))return!!options.returnReasonIfNotEqual&&".length";var firstIsMap=(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(first);if(firstIsMap&&(!(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(second)||first.size!==second.size))return!!options.returnReasonIfNotEqual&&".size";var firstIsSet=(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(first);if(firstIsSet&&(!(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(second)||first.size!==second.size))return!!options.returnReasonIfNotEqual&&".size";if(firstIsArray){for(var index=0,_loop2=function(){var e=_arr5[_i12];if(0!==options.deep){var r=_equals(e,second[index],_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},options,{deep:options.deep-1}));if(!r)return{v:!1};var t=index,n=function(e){var r;return"string"==typeof e?"["+String(t)+"]"+(null!==(r={"[":"",">":" "}[e[0]])&&void 0!==r?r:".")+e:e};if(Object.prototype.hasOwnProperty.call(r,"then")&&promises.push(r.then(n)),"string"==typeof r)return{v:n(r)}}index+=1},_ret2,_i12=0,_arr5=first;_i12<_arr5.length;_i12++)if(_ret2=_loop2(),_ret2)return _ret2.v}else if(firstIsMap){for(var _loop3=function(){var e=_step11.value,r=e[0],t=e[1];if(0!==options.deep){var n=_equals(t,second.get(r),_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},options,{deep:options.deep-1}));if(!n)return{v:!1};var o=function(e){var t;return"string"==typeof e?"get("+_represent(r)+")"+(null!==(t={"[":"",">":" "}[e[0]])&&void 0!==t?t:".")+e:e};if(Object.prototype.hasOwnProperty.call(n,"then")&&promises.push(n.then(o)),"string"==typeof n)return{v:o(n)}}},_ret3,_iterator11=_createForOfIteratorHelperLoose(first),_step11;!(_step11=_iterator11()).done;)if(_ret3=_loop3(),_ret3)return _ret3.v}else if(firstIsSet){for(var _loop4=function(){var e=_step12.value;if(0!==options.deep){for(var r,t=!1,n=[],o=_createForOfIteratorHelperLoose(second);!(r=o()).done;){var a=r.value,i=_equals(e,a,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},options,{deep:options.deep-1}));if("boolean"==typeof i){if(i){t=!0;break}}else n.push(i)}var _=function(r){return!!r||!!options.returnReasonIfNotEqual&&">>> {-> "+_represent(e)+" not found}"};return t?0:(n.length&&promises.push(new Promise(function(e){Promise.all(n).then(function(r){e(_(r.some(function(e){return e})))},function(){})})),{v:_(!1)})}},_ret4,_iterator12=_createForOfIteratorHelperLoose(first),_step12;!(_step12=_iterator12()).done;)if(_ret4=_loop4(),0!==_ret4&&_ret4)return _ret4.v}else for(var _loop5=function(){var e=_Object$entries7[_i13],r=e[0],t=e[1];if(options.properties&&!options.properties.includes(r))return 0;for(var n,o=!1,a=_createForOfIteratorHelperLoose(options.exceptionPrefixes);!(n=a()).done;){var i=n.value;if(r.startsWith(i)){o=!0;break}}if(o)return 0;if(0!==options.deep){var _=_equals(t,second[r],_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},options,{deep:options.deep-1}));if(!_)return{v:!1};var s=function(e){var t;return"string"==typeof e?r+(null!==(t={"[":"",">":" "}[e[0]])&&void 0!==t?t:".")+e:e};if(Object.prototype.hasOwnProperty.call(_,"then")&&promises.push(_.then(s)),"string"==typeof _)return{v:s(_)}}},_ret5,_i13=0,_Object$entries7=Object.entries(first);_i13<_Object$entries7.length&&(_ret5=_loop5(),0!==_ret5);_i13++)if(_ret5)return _ret5.v}return!promises.length||new Promise(function(e){Promise.all(promises).then(function(r){for(var t,n=_createForOfIteratorHelperLoose(r);!(t=n()).done;){var o=t.value;if(!o||"string"==typeof o){e(o);break}}e(!0)},function(){})})}return!!options.returnReasonIfNotEqual&&">>> "+_represent(firstValue)+" !== "+_represent(secondValue)},evaluateDynamicData=function(e,r,t,n,o){if(void 0===r&&(r={}),void 0===t&&(t="self"),void 0===n&&(n="__evaluate__"),void 0===o&&(o="__execute__"),"object"!=typeof e||null===e)return e;t in r||(r[t]=e);var a=function(e,t){void 0===t&&(t=n);var a=(0,_string__WEBPACK_IMPORTED_MODULE_4__.evaluate)(e,r,t===o);if(a.error)throw new Error(a.error);return a.result},i=function(e){if("object"!=typeof e||null===e||"undefined"==typeof Proxy)return e;for(var r=0,t=Object.entries(e);r<t.length;r++){var s=t[r],u=s[0],l=s[1];if("__target__"!==u&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(l)){var c=l;if(i(c),Object.prototype.hasOwnProperty.call(c,n)||Object.prototype.hasOwnProperty.call(c,o)){var f=c;e[u]=new Proxy(c,{get:function(e,r){if("__target__"===r)return e;if("hasOwnProperty"===r)return e[r];for(var t=0,i=[n,o];t<i.length;t++){var s=i[t];if(r===s&&"string"==typeof e[r])return _(a(e[r],s))}var u=_(e);if("toString"===r){var l=a(u);return l[r].bind(l)}if("string"!=typeof r){var c,f=a(u);return null!=(c=f[r])&&c.bind?f[r].bind(f):f[r]}for(var p=0,d=[n,o];p<d.length;p++){var v=d[p];if(Object.prototype.hasOwnProperty.call(e,v))return a(u,v)[r]}return u[r]},ownKeys:function(e){for(var r=0,t=[n,o];r<t.length;r++){var i=t[r];if(Object.prototype.hasOwnProperty.call(e,i))return Object.getOwnPropertyNames(_(a(e[i],i)))}return Object.getOwnPropertyNames(e)}}),e[u].__target__||(e[u].__target__=f)}}}return e},_=function(e){if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e)){if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isProxy)(e)){for(var r=0,t=[n,o];r<t.length;r++){var i=t[r];if(Object.prototype.hasOwnProperty.call(e,i))return e[i]}e=e.__target__}for(var s=0,u=Object.entries(e);s<u.length;s++){var l=u[s],c=l[0],f=l[1];if([n,o].includes(c))return"undefined"==typeof Proxy?_(a(f)):f;e[c]=_(f)}}return e};r.resolve=_;var s=function(e){if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e))for(var r=0,t=Object.entries(e);r<t.length;r++){var n=t[r],o=n[0],a=n[1];if("__target__"!==o&&null!==a&&["function","undefined"].includes(typeof a)){var i=a.__target__;void 0!==i&&(e[o]=i),s(a)}}return e};return Object.prototype.hasOwnProperty.call(e,n)?a(e[n]):Object.prototype.hasOwnProperty.call(e,o)?a(e[o],o):s(_(i(e)))},_removeKeysInEvaluation=function(e,r){void 0===r&&(r=["__evaluate__","__execute__"]);for(var t=0,n=Object.entries(e);t<n.length;t++){var o=n[t],a=o[0],i=o[1];!r.includes(a)&&r.some(function(r){return Object.prototype.hasOwnProperty.call(e,r)})?delete e[a]:(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(i)&&_removeKeysInEvaluation(i,r)}return e},_extend=function(e,r){for(var t=!1,n=arguments.length,o=new Array(n>2?n-2:0),a=2;a<n;a++)o[a-2]=arguments[a];var i,_=o;e===_constants__WEBPACK_IMPORTED_MODULE_1__.IGNORE_NULL_AND_UNDEFINED_SYMBOL||"boolean"==typeof e?(t=e,i=r):(i=e,(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(r)?_=[r].concat(_):void 0!==r&&(i=r));for(var s,u=function(e,r){return r===e?e:t&&r&&((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(r)||(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(r))?(n=(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(r)?e&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e)?e:new Map:e&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(e)?e:{},_extend(t,n,r)):r;var n},l=_createForOfIteratorHelperLoose(_);!(s=l()).done;){var c=s.value,f=typeof i,p=typeof c;if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(i)&&(f+=" Map"),(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(c)&&(p+=" Map"),f===p&&i!==c)if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(i)&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(c))for(var d,v=_createForOfIteratorHelperLoose(c);!(d=v()).done;){var O=d.value,E=O[0],b=O[1];i.set(E,u(i.get(E),b))}else if(!(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(i)||Array.isArray(i)||"undefined"!=typeof Blob&&i instanceof Blob||!(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(c)||Array.isArray(c)||"undefined"!=typeof Blob&&c instanceof Blob)i=c;else for(var g=0,y=Object.entries(c);g<y.length;g++){var h=y[g],P=h[0],m=h[1];t===_constants__WEBPACK_IMPORTED_MODULE_1__.IGNORE_NULL_AND_UNDEFINED_SYMBOL&&[null,void 0].includes(m)||(i[P]=u(i[P],m))}else i=c}return i},getProxyHandler=function(e,r){return void 0===r&&(r={}),r=_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({delete:"[]",get:"[]",has:"[]",set:"[]"},r),{deleteProperty:function(t,n){return"[]"!==r.delete||"string"!=typeof n?e[r.delete](n):(delete e[n],!0)},get:function(t,n){return"[]"===r.get&&"string"==typeof n?e[n]:e[r.get](n)},has:function(t,n){return"[]"===r.has?n in e:e[r.has](n)},set:function(t,n,o){return"[]"!==r.set||"string"!=typeof n?e[r.set](n,o):(e[n]=o,!0)}}},_mask=function(e,r){if(!0===(r=_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({exclude:!1,include:!0},r)).exclude||Array.isArray(r.exclude)&&0===r.exclude.length||!1===r.include||"object"!=typeof e)return{};var t=Array.isArray(r.exclude)?r.exclude.reduce(function(e,r){var t;return _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},e,((t={})[r]=!0,t))},{}):r.exclude,n=Array.isArray(r.include)?r.include.reduce(function(e,r){var t;return _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},e,((t={})[r]=!0,t))},{}):r.include,o={};if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(n))for(var a=0,i=Object.entries(n);a<i.length;a++){var _=i[a],s=_[0],u=_[1];Object.prototype.hasOwnProperty.call(e,s)&&(!0===u?o[s]=e[s]:((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(u)||Array.isArray(u)&&u.length)&&"object"==typeof e[s]&&(o[s]=_mask(e[s],{include:u})))}else o=e;if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(t)){for(var l=!1,c=_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},o),f=0,p=Object.entries(t);f<p.length;f++){var d=p[f],v=d[0],O=d[1];if(Object.prototype.hasOwnProperty.call(c,v))if(!0===O)l=!0,delete c[v];else if(((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(O)||Array.isArray(O)&&O.length)&&"object"==typeof c[v]){var E=c[v];c[v]=_mask(c[v],{exclude:O}),c[v]!==E&&(l=!0)}}l&&(o=c)}return o},_modifyObject=function(e,r,t,n,o,a,i,_,s){if(void 0===t&&(t="__remove__"),void 0===n&&(n="__prepend__"),void 0===o&&(o="__append__"),void 0===a&&(a="__"),void 0===i&&(i="__"),void 0===_&&(_=null),void 0===s&&(s=null),(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(r)&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e))for(var u,l=_createForOfIteratorHelperLoose(r);!(u=l()).done;){var c=u.value,f=c[0],p=c[1];e.has(f)&&_modifyObject(e.get(f),p,t,n,o,a,i,r,f)}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(r)&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e))for(var d=0,v=Object.entries(r);d<v.length;d++){var O=v[d],E=O[0],b=O[1],g=NaN;if(Array.isArray(e)&&E.startsWith(a)&&E.endsWith(i)&&((g=parseInt(E.substring(a.length,E.length-i.length),10))<0||g>=e.length)&&(g=NaN),[t,n,o].includes(E)||!isNaN(g)){if(Array.isArray(e))if(E===t)for(var y,h=_createForOfIteratorHelperLoose([].concat(b));!(y=h()).done;){var P=y.value;"string"==typeof P&&P.startsWith(a)&&P.endsWith(i)?e.splice(parseInt(P.substring(a.length,P.length-i.length),10),1):e.includes(P)?e.splice(e.indexOf(P),1):"number"==typeof P&&P<e.length&&e.splice(P,1)}else E===o?e=e.concat(b):E===n?e=[].concat(b).concat(e):(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e[g])&&(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(b)?_extend(!0,_modifyObject(e[g],b,t,n,o,a,i),e[g],b):e[g]=b;else if(E===t)for(var m,A=_createForOfIteratorHelperLoose([].concat(b));!(m=A()).done;){var M=m.value;"string"==typeof M&&Object.prototype.hasOwnProperty.call(e,M)&&delete e[M]}delete r[E],_&&"string"==typeof s&&delete _[s]}else null!==e&&Object.prototype.hasOwnProperty.call(e,E)&&(e[E]=_modifyObject(e[E],b,t,n,o,a,i,r,E))}return e},_removeKeyPrefixes=function(e,r){void 0===r&&(r="#");var t=[].concat(r);if(Array.isArray(e))for(var n,o=0,a=_createForOfIteratorHelperLoose(e.slice());!(n=a()).done;){var i=n.value,_=!1;if("string"==typeof i){for(var s,u=_createForOfIteratorHelperLoose(t);!(s=u()).done;){var l=s.value;if(i.startsWith(l+":")){e.splice(o,1),_=!0;break}}if(_)continue}e[o]=_removeKeyPrefixes(i,t),o+=1}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(e))for(var c,f=_createForOfIteratorHelperLoose(new Set(e));!(c=f()).done;){var p=c.value,d=!1;if("string"==typeof p){for(var v,O=_createForOfIteratorHelperLoose(t);!(v=O()).done;){var E=v.value;if(p.startsWith(E+":")){e.delete(p),d=!0;break}}if(d)continue}_removeKeyPrefixes(p,t)}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e))for(var b,g=_createForOfIteratorHelperLoose(new Map(e));!(b=g()).done;){var y=b.value,h=y[0],P=y[1],m=!1;if("string"==typeof h){for(var A,M=_createForOfIteratorHelperLoose(t);!(A=M()).done;){var I=A.value,D=(0,_string__WEBPACK_IMPORTED_MODULE_4__.escapeRegularExpressions)(I);if(new RegExp("^"+D+"[0-9]*$").test(h)){e.delete(h),m=!0;break}}if(m)continue}e.set(h,_removeKeyPrefixes(P,t))}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e))for(var L=0,R=Object.entries(Object.assign({},e));L<R.length;L++){for(var T,C=R[L],x=C[0],j=C[1],w=!1,B=_createForOfIteratorHelperLoose(t);!(T=B()).done;){var S=T.value,U=(0,_string__WEBPACK_IMPORTED_MODULE_4__.escapeRegularExpressions)(S);if(new RegExp("^"+U+"[0-9]*$").test(x)){delete e[x],w=!0;break}}w||(e[x]=_removeKeyPrefixes(j,t))}return e},_represent=function(e,r,t,n,o,a){if(void 0===r&&(r=30),void 0===t&&(t=" "),void 0===n&&(n=""),void 0===o&&(o="__maximum_number_of_levels_reached__"),void 0===a&&(a=8),0===a)return String(o);if(null===e)return"null";if(void 0===e)return"undefined";if("string"==typeof e)return'"'+e.replace(/\n/g,"\n"+n)+'"';if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isNumeric)(e)||"boolean"==typeof e)return String(e);if(e instanceof Date)return e.toISOString();if(Array.isArray(e)){for(var i,_="[",s=!1,u=1,l=_createForOfIteratorHelperLoose(e);!(i=l()).done;){var c=i.value;if(u>r){_+="\n"+n+"...";break}s&&(_+=","),_+="\n"+n+t+_represent(c,r,t,""+n+t,o,a-1),s=!0,u+=1}return s&&(_+="\n"+n),_+="]"}if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e)){for(var f,p="",d=!1,v=1,O=_createForOfIteratorHelperLoose(e);!(f=O()).done;){var E=f.value,b=E[0],g=E[1];if(v>r){p+=",\n"+n+"...";break}d&&(p+=",\n"+n+t),p+=_represent(b,r,t,""+n+t,o,a-1)+" -> "+_represent(g,r,t,""+n+t,o,a-1),d=!0,v+=1}return d||(p="EmptyMap"),p}if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(e)){for(var y,h="{",P=!1,m=1,A=_createForOfIteratorHelperLoose(e);!(y=A()).done;){var M=y.value;if(m>r){h+=",\n"+n+"...";break}P&&(h+=","),h+="\n"+n+t+_represent(M,r,t,""+n+t,o,a-1),P=!0,m+=1}return P?h+="\n"+n+"}":h="EmptySet",h}if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isFunction)(e))return"__function__";for(var I,D="{",L=!1,R=1,T=_createForOfIteratorHelperLoose(Object.getOwnPropertyNames(e).sort());!(I=T()).done;){var C=I.value;if(R>r){D+=",\n"+n+"...";break}L&&(D+=","),D+="\n"+n+t+C+": "+_represent(e[C],r,t,""+n+t,o,a-1),L=!0,R+=1}return L&&(D+="\n"+n),D+="}"},sort=function(e){var r=[];if(Array.isArray(e))for(var t=0;t<e.length;t++)r.push(t);else if("object"==typeof e)if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e))for(var n,o=_createForOfIteratorHelperLoose(e);!(n=o()).done;){var a=n.value;r.push(a[0])}else if(null!==e)for(var i=0,_=Object.keys(e);i<_.length;i++){var s=_[i];r.push(s)}return r.sort()},_unwrapProxy=function(e,r){if(void 0===r&&(r=new Set),(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isObject)(e)){if(r.has(e))return e;try{(0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isFunction)(e.__revoke__)&&((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isProxy)(e)&&(e=e.__target__),e.__revoke__())}catch(r){return e}finally{r.add(e)}if(Array.isArray(e))for(var t,n=0,o=_createForOfIteratorHelperLoose(e);!(t=o()).done;){var a=t.value;e[n]=_unwrapProxy(a,r),n+=1}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isMap)(e))for(var i,_=_createForOfIteratorHelperLoose(e);!(i=_()).done;){var s=i.value,u=s[0],l=s[1];e.set(u,_unwrapProxy(l,r))}else if((0,_indicators__WEBPACK_IMPORTED_MODULE_2__.isSet)(e)){for(var c,f=[],p=_createForOfIteratorHelperLoose(e);!(c=p()).done;){var d=c.value;e.delete(d),f.push(_unwrapProxy(d,r))}for(var v=0,O=f;v<O.length;v++){var E=O[v];e.add(E)}}else for(var b=0,g=Object.entries(e);b<g.length;b++){var y=g[b],h=y[0],P=y[1];e[h]=_unwrapProxy(P,r)}}return e}},function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__3__},function(e,r,t){t.d(r,{isFunction:function(){return c},isMap:function(){return u},isNumeric:function(){return a},isObject:function(){return i},isPlainObject:function(){return _},isProxy:function(){return l},isSet:function(){return s}});var n=t(0),o=t(2);var a=function(e){var r=(0,o.determineType)(e);return["number","string"].includes(r)&&!isNaN(e-parseFloat(e))},i=function(e){return null!==e&&"object"==typeof e},_=function(e){return i(e)&&n.PLAIN_OBJECT_PROTOTYPES.includes(Object.getPrototypeOf(e))},s=function(e){return"set"===(0,o.determineType)(e)},u=function(e){return"map"===(0,o.determineType)(e)},l=function(e){return Boolean(e.__target__)},c=function(e){return Boolean(e)&&["[object AsyncFunction]","[object Function]"].includes({}.toString.call(e))}},function(module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{currentImport:function(){return currentImport},optionalRequire:function(){return optionalRequire}});var currentRequire=eval("typeof require === 'undefined' ? null : require"),currentOptionalImport=null;try{currentOptionalImport=eval("typeof import === 'undefined' ? null : import")}catch(e){}var currentImport=currentOptionalImport,optionalRequire=function(e){try{return currentRequire?currentRequire(e):null}catch(e){return null}},clearRequireCache=function(e){void 0===e&&(e=(null==currentRequire?void 0:currentRequire.cache)||__webpack_require__.c);for(var r={},t=0,n=Object.entries(e);t<n.length;t++){var o=n[t],a=o[0],i=o[1];r[a]=i,delete e[a]}return r},restoreRequireCache=function(e,r){void 0===e&&(e=(null==currentRequire?void 0:currentRequire.cache)||__webpack_require__.c),clearRequireCache();for(var t=0,n=Object.entries(r);t<n.length;t++){var o=n[t],a=o[0],i=o[1];e[a]=i}},isolatedRequire=function(e,r){void 0===r&&(r=currentRequire||__webpack_require__(6));var t=clearRequireCache(r.cache);try{return r(e)}catch(e){throw e}finally{restoreRequireCache(r.cache,t)}}},function(e){function r(e){var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}r.keys=function(){return[]},r.resolve=r,r.id=6,e.exports=r},function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _extends,ABBREVIATIONS,DEFAULT_ENCODING,globalContext,MAXIMAL_NUMBER_OF_ITERATIONS,readFileSync,isFileSync,determineType;__webpack_require__.d(__webpack_exports__,{escapeRegularExpressions:function(){return escapeRegularExpressions},evaluate:function(){return evaluate}});var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(3),_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_construct__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(13),_babel_runtime_helpers_construct__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_construct__WEBPACK_IMPORTED_MODULE_1__),_constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(0),_context__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(1),_object__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(2);function _createForOfIteratorHelperLoose(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=_unsupportedIterableToArray(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){if(e){if("string"==typeof e)return _arrayLikeToArray(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var POLYFILL_TEMPLATE_STRINGS={value:!1},ALLOWED_VARIABLE_SYMBOLS="0-9a-zA-Z_$",ALLOWED_STARTING_VARIABLE_SYMBOLS="a-zA-Z_$",FIX_ENCODING_ERROR_MAPPING=null,escapeRegularExpressions=function(e,r){if(void 0===r&&(r=[]),1===e.length&&!_constants__WEBPACK_IMPORTED_MODULE_2__.SPECIAL_REGEX_SEQUENCES.includes(e))return e;r.includes("\\")||e.replace(/\\/g,"\\\\");for(var t,n=_createForOfIteratorHelperLoose(_constants__WEBPACK_IMPORTED_MODULE_2__.SPECIAL_REGEX_SEQUENCES);!(t=n()).done;){var o=t.value;r.includes(o)||(e=e.replace(new RegExp("\\"+o,"g"),"\\"+o))}return e},convertToValidVariableName=function(e){return["class","default"].includes(e)?"_"+e:e.replace(new RegExp("^[^"+ALLOWED_STARTING_VARIABLE_SYMBOLS+"]+"),"").replace(new RegExp("[^"+ALLOWED_VARIABLE_SYMBOLS+"]+([a-zA-Z])","g"),function(e,r){return r.toUpperCase()})},encodeURIComponentExtended=function(e,r){return void 0===r&&(r=!1),encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,r?"%20":"+")},addSeparatorToPath=function(e,r){return void 0===r&&(r="/"),(e=e.trim()).substring(e.length-1)!==r&&e.length?e+r:e},hasPathPrefix=function(e,r,t){var n;(void 0===e&&(e="/admin"),void 0===r)&&(r=(null==(n=globalContext.location)?void 0:n.pathname)||"");return void 0===t&&(t="/"),"string"==typeof e&&(e.endsWith(t)||(e+=t),r===e.substring(0,e.length-t.length)||r.startsWith(e))},getDomainName=function(e,r){var t,n;void 0===e&&(e=(null==(t=globalContext.location)?void 0:t.href)||"");void 0===r&&(r=(null==(n=globalContext.location)?void 0:n.hostname)||"");var o=/^([a-z]*:?\/\/)?([^/]+?)(?::[0-9]+)?(?:\/.*|$)/i.exec(e);return o&&o.length>2&&o[1]&&o[2]?o[2]:r},getPortNumber=function(e,r){var t,n,o;void 0===e&&(e=(null==(n=globalContext.location)?void 0:n.href)||"");void 0===r&&(r=null!=(o=globalContext.location)&&o.port?parseInt(globalContext.location.port):null);var a=/^(?:[a-z]*:?\/\/[^/]+?)?[^/]+?:([0-9]+)/i.exec(e);return a&&a.length>1?parseInt(a[1],10):null!==r?r:null!=(t=globalContext.location)&&t.port&&parseInt(globalContext.location.port,10)?parseInt(globalContext.location.port,10):"https"===getProtocolName(e)?443:80},getProtocolName=function(e,r){var t,n;void 0===e&&(e=(null==(t=globalContext.location)?void 0:t.href)||"");void 0===r&&(r=(null==(n=globalContext.location)?void 0:n.protocol)&&globalContext.location.protocol.substring(0,globalContext.location.protocol.length-1)||"");var o=/^([a-z]+):\/\//i.exec(e);return o&&o.length>1&&o[1]?o[1]:r},getURLParameter=function(e,r,t,n,o,a,i){var _,s,u;(void 0===e&&(e=null),void 0===r&&(r=!1),void 0===t&&(t=null),void 0===n&&(n="$"),void 0===o&&(o="!"),void 0===a&&(a=null),void 0===i)&&(i=null!==(s=null==(u=globalContext.location)?void 0:u.hash)&&void 0!==s?s:"");var l=null!==(_=i)&&void 0!==_?_:"#",c="";if(a)c=a;else if(o&&l.startsWith(o)){var f,p=l.indexOf("#");-1===p?(f=l.substring(o.length),l=""):(f=l.substring(o.length,p),l=l.substring(p));var d=f.indexOf("?");-1!==d&&(c=f.substring(d))}else globalContext.location&&(c=globalContext.location.search||"");var v=t||c,O="&"===v;if(O||"#"===v){var E="";try{E=decodeURIComponent(l)}catch(e){}var b=E.indexOf(n);-1===b?v="":(v=E.substring(b)).startsWith(n)&&(v=v.substring(n.length))}else v.startsWith("?")&&(v=v.substring(1));var g=v?v.split("&"):[];c=c.substring(1),O&&c&&(g=g.concat(c.split("&")));for(var y,h=[],P=_createForOfIteratorHelperLoose(g);!(y=P()).done;){var m=y.value,A=m.split("="),M=void 0;try{M=decodeURIComponent(A[0])}catch(e){M=""}try{m=decodeURIComponent(A[1])}catch(e){m=""}h.push(M),r?Object.prototype.hasOwnProperty.call(h,M)&&Array.isArray(h[M])?h[M].push(m):h[M]=[m]:h[M]=m}return e?Object.prototype.hasOwnProperty.call(h,e)?h[e]:null:h},serviceURLEquals=function(e,r){var t;void 0===r&&(r=(null==(t=globalContext.location)?void 0:t.href)||"");var n=getDomainName(e,""),o=getProtocolName(e,""),a=getPortNumber(e);return!(""!==n&&n!==getDomainName(r)||""!==o&&o!==getProtocolName(r)||null!==a&&a!==getPortNumber(r))},normalizeURL=function(e){if("string"==typeof e){var r=e.replace(/^:?\/+/,"").replace(/\/+$/,"").trim();return r.startsWith("http")?r:"http://"+r}return""},representURL=function(e){return"string"==typeof e?e.replace(/^(https?)?:?\/+/,"").replace(/\/+$/,"").trim():""},camelCaseToDelimited=function(e,r,t){void 0===r&&(r="-"),void 0===t&&(t=null),t||(t=ABBREVIATIONS);var n=maskForRegularExpression(r);if(t.length){for(var o,a="",i=_createForOfIteratorHelperLoose(t);!(o=i()).done;){a&&(a+="|"),a+=o.value.toUpperCase()}e=e.replace(new RegExp("("+a+")("+a+")","g"),"$1"+r+"$2")}return(e=e.replace(new RegExp("([^"+n+"])([A-Z][a-z]+)","g"),"$1"+r+"$2")).replace(/([a-z0-9])([A-Z])/g,"$1"+r+"$2").toLowerCase()},capitalize=function(e){return e.charAt(0).toUpperCase()+e.substring(1)},compressStyleValue=function(e){return e.replace(/ *([:;]) */g,"$1").replace(/ +/g," ").replace(/^;+/,"").replace(/;+$/,"").trim()},decodeHTMLEntities=function(e){if(globalContext.document){var r=globalContext.document.createElement("textarea");return r.innerHTML=e,r.value}return null},delimitedToCamelCase=function(e,r,t,n,o){void 0===r&&(r="-"),void 0===t&&(t=null),void 0===n&&(n=!1),void 0===o&&(o=!1);var a,i=maskForRegularExpression(r);if(t||(t=ABBREVIATIONS),n)a=ABBREVIATIONS.join("|");else{a="";for(var _,s=_createForOfIteratorHelperLoose(t);!(_=s()).done;){var u=_.value;a&&(a+="|"),a+=capitalize(u)+"|"+u}}var l=e.startsWith(r);return l&&(e=e.substring(r.length)),e=e.replace(new RegExp("("+i+")("+a+")("+i+"|$)","g"),function(e,r,t,n){return r+t.toUpperCase()+n}),o&&(i="(?:"+i+")+"),e=e.replace(new RegExp(i+"([a-zA-Z0-9])","g"),function(e,r){return r.toUpperCase()}),l&&(e=r+e),e},compile=function(e,r,t,n,o){var a;void 0===r&&(r=[]),void 0===t&&(t=!1),void 0===n&&(n=!0),void 0===o&&(o={});for(var i,_,s=Object.keys(globalThis).concat("globalThis").filter(function(e){return new RegExp("^["+ALLOWED_STARTING_VARIABLE_SYMBOLS+"]["+ALLOWED_VARIABLE_SYMBOLS+"]*$").test(e)}),u={error:null,globalNames:s,globalNamesUndefinedList:s.map(function(){}),originalScopeNames:Array.isArray(r)?r:"string"==typeof r?[r]:Object.keys(r),scopeNameMapping:{},scopeNames:[],templateFunction:function(){}},l=_createForOfIteratorHelperLoose(u.originalScopeNames);!(i=l()).done;){var c=i.value,f=convertToValidVariableName(c);u.scopeNameMapping[c]=f,u.scopeNames.push(f)}if(POLYFILL_TEMPLATE_STRINGS.value)if(null!=(a=_context__WEBPACK_IMPORTED_MODULE_3__.globalContext.Babel)&&a.transform)e=_context__WEBPACK_IMPORTED_MODULE_3__.globalContext.Babel.transform("("+e+")",{plugins:["transform-template-literals"]}).code;else if(e.startsWith("`")&&e.endsWith("`")){var p="####",d="`"===(e=e.replace(/\\\$/g,p).replace(/^`\$\{([\s\S]+)}`$/,"String($1)").replace(/^`([^']+)`$/,"'$1'").replace(/^`([^"]+)`$/,'"$1"')).charAt(0)?"'":e.charAt(0);e=e.replace(/\$\{((([^{]*{[^}]*}[^}]*})|[^{}]+)+)}/g,d+"+($1)+"+d).replace(/^`([\s\S]+)`$/,d+"$1"+d).replace(/\n+/g,"").replace(new RegExp(p,"g"),"\\$")}try{_=_babel_runtime_helpers_construct__WEBPACK_IMPORTED_MODULE_1___default()(Function,(n?u.globalNames:[]).concat(u.scopeNames,[(t?"":"return ")+e]))}catch(r){u.error='Given expression "'+e+'" could not be compiled width given scope names "'+u.scopeNames.join('", "')+'": '+(0,_object__WEBPACK_IMPORTED_MODULE_4__.represent)(r)}if(_){var v=_.bind(o);u.templateFunction=n?function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return v.apply(void 0,u.globalNamesUndefinedList.concat(r))}:v}return u},evaluate=function(e,r,t,n,o){void 0===r&&(r={}),void 0===t&&(t=!1),void 0===n&&(n=!0),void 0===o&&(o={});var a=compile(e,r,t,n,o),i=a.error,_=a.originalScopeNames,s=a.scopeNames,u=a.templateFunction,l={compileError:null,runtimeError:null,error:"Not yet evaluated.",result:void 0};if(i)return l.compileError=l.error=i,l;try{l={compileError:null,runtimeError:null,error:null,result:u.apply(void 0,_.map(function(e){return r[e]}))}}catch(i){l.error=l.runtimeError='Given expression "'+e+'" could not be evaluated with given scope names "'+s.join('", "')+'": '+(0,_object__WEBPACK_IMPORTED_MODULE_4__.represent)(i)}return l},findNormalizedMatchRange=function(e,r,t,n){void 0===t&&(t=function(e){return String(e).toLowerCase()}),void 0===n&&(n=["<",">"]);var o=t(r),a=t(e),i="string"==typeof e?e:a;if(a&&o)for(var _=!1,s=0;s<i.length;s+=1)if(_)Array.isArray(n)&&i.charAt(s)===n[1]&&(_=!1);else if(Array.isArray(n)&&i.charAt(s)===n[0])_=!0;else if(t(i.substring(s)).startsWith(o)){if(1===o.length)return[s,s+1];for(var u=i.length;u>s;u-=1)if(!t(i.substring(s,u)).startsWith(o))return[s,u+1]}return null},fixKnownEncodingErrors=function(e){for(var r=0,t=FIX_ENCODING_ERROR_MAPPING;r<t.length;r++){var n=t[r],o=n[0],a=n[1];e=e.replace(new RegExp(o,"g"),a)}return e},format=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];t.unshift(e);for(var o=0,a=0,i=t;a<i.length;a++){var _=i[a];e=e.replace(new RegExp("\\{"+String(o)+"\\}","gm"),String(_)),o+=1}return e},getEditDistance=function(e,r){for(var t=Array(r.length+1).fill(null).map(function(){return Array(e.length+1).fill(null)}),n=0;n<=e.length;n++)t[0][n]=n;for(var o=0;o<=r.length;o++)t[o][0]=o;for(var a=1;a<=r.length;a++)for(var i=1;i<=e.length;i++){var _=e[i-1]===r[a-1]?0:1;t[a][i]=Math.min(t[a][i-1]+1,t[a-1][i]+1,t[a-1][i-1]+_)}return t[r.length][e.length]},maskForRegularExpression=function(e){return e.replace(/([\\|.*$^+[\]()?\-{}])/g,"\\$1")},lowerCase=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},mark=function(e,r,t){if(void 0===t&&(t={}),"string"==typeof e&&null!=r&&r.length){var n=_extends({marker:'<span class="tools-mark">{1}</span>',normalizer:function(e){return String(e).toLowerCase()},skipTagDelimitedParts:["<",">"]},t);e=e.trim();for(var o,a=[],i=[].concat(r),_=0,s=_createForOfIteratorHelperLoose(i);!(o=s()).done;){var u=o.value;i[_]=n.normalizer(u).trim(),_+=1}for(var l=e,c=0,f=0;f<MAXIMAL_NUMBER_OF_ITERATIONS.value;f++){for(var p,d=null,v=void 0,O=_createForOfIteratorHelperLoose(i);!(p=O()).done;){var E=p.value;(v=findNormalizedMatchRange(l,E,n.normalizer,n.skipTagDelimitedParts))&&(!d||v[0]<d[0])&&(d=v)}if(!d){l.length&&a.push(l);break}d[0]>0&&a.push(e.substring(c,c+d[0])),a.push("string"==typeof n.marker?format(n.marker,e.substring(c+d[0],c+d[1])):n.marker(e.substring(c+d[0],c+d[1]),a)),c+=d[1],l=e.substring(c)}return"string"==typeof n.marker?a.join(""):a}return e},normalizePhoneNumber=function(e,r){if(void 0===r&&(r=!0),"string"==typeof e||"number"==typeof e){var t=String(e).trim();if(t=(t=t.replace(/^[^0-9]*\+/,"00")).replace(/([0-9].*?) *(,|o[rd]?)\.? ?-?[0-9]+$/,"$1"),r)return t.replace(/[^0-9]+/g,"");var n="(?:[ /\\-]+)";t=(t=t.replace(new RegExp("^(.+?)"+n+"?\\(0\\)"+n+"?(.+)$"),"$1-$2")).replace(new RegExp("^(.+?)"+n+"?\\((.+)\\)"+n+"?(.+)$"),"$1-$2-$3");var o=new RegExp("^(00[0-9]+)"+n+"([0-9]+)"+n+"(.+)$");if(o.test(t))t=t.replace(o,function(e,r,t,n){return r+"-"+t+"-"+sliceAllExceptNumberAndLastSeparator(n)});else{var a=function(e,r,t){return r.replace(/ +/,"")+"-"+sliceAllExceptNumberAndLastSeparator(t)};t=(o=/^([0-9 ]+)[/-](.+)$/).test(t)?t.replace(o,a):t.replace(new RegExp("^([0-9]+)"+n+"(.+)$"),a)}return t.replace(/[^0-9-]+/g,"").replace(/^-+$/,"")}return""},normalizeZipCode=function(e){return"string"==typeof e||"number"==typeof e?String(e).trim().replace(/^([^0-9]*[a-zA-Z]-)?(.+)$/,function(e,r,t){var n;return r&&(r=r.substring(r.length-2).charAt(0).toUpperCase()+"-"),(null!==(n=r)&&void 0!==n?n:"")+(null!=t?t:"").trim().replace(/[^0-9]+/g,"")}):""},parseEncodedObject=function parseEncodedObject(serializedObject,scope,name){var _evaluate;if(void 0===scope&&(scope={}),void 0===name&&(name="scope"),!readFileSync)throw new Error("File system api could not be loaded.");serializedObject.endsWith(".json")&&isFileSync(serializedObject)&&(serializedObject=readFileSync(serializedObject,{encoding:DEFAULT_ENCODING})),serializedObject=serializedObject.trim(),serializedObject.startsWith("{")||(serializedObject=eval("Buffer").from(serializedObject,"base64").toString(DEFAULT_ENCODING));var result=evaluate(serializedObject,(_evaluate={},_evaluate[name]=scope,_evaluate));return"object"==typeof result.result?result.result:null},representPhoneNumber=function(e){if(["number","string"].includes(determineType(e))&&e){var r=String(e).replace(/^(00|\+)([0-9]+)-([0-9-]+)$/,"+$2 (0) $3");return(r=(r=r.replace(/^0([1-9][0-9-]+)$/,"+49 (0) $1")).replace(/^([^-]+)-([0-9-]+)$/,"$1 / $2")).replace(/^(.*?)([0-9]+)(-?[0-9]*)$/,function(e,r,t,n){return r+(t.length%2==0?t.replace(/([0-9]{2})/g,"$1 "):t.replace(/^([0-9]{3})([0-9]+)$/,function(e,r,t){return r+" "+t.replace(/([0-9]{2})/g,"$1 ").trim()})+n).trim()}).trim()}return""},sliceAllExceptNumberAndLastSeparator=function(e){var r=/^(.*[0-9].*)-([0-9]+)$/;return r.test(e)?e.replace(r,function(e,r,t){return r.replace(/[^0-9]+/g,"")+"-"+t}):e.replace(/[^0-9]+/g,"")},normalizeDomNodeSelector=function(e,r){void 0===r&&(r="");var t="";return r&&(t=r+" "),e.startsWith(t)||e.trim().startsWith("<")||(e=t+e),e.trim()},limit=function(e,r){if(void 0===r&&(r=100),e.length<=r)return e;return e.substring(0,r-3)+"..."}},function(e,r,t){t.d(r,{isNotANumber:function(){return o}});var n=t(2),o=function(e){return"number"===(0,n.determineType)(e)&&isNaN(e)}},,,,,function(e){e.exports=__WEBPACK_EXTERNAL_MODULE__13__},,,function(e,r,t){t.d(r,{isAndExpression:function(){return s},isArrayContainsExpression:function(){return E},isConcatExpression:function(){return l},isCondition:function(){return _},isIfExpression:function(){return d},isMappingExpression:function(){return c},isOperation:function(){return f},isOrExpression:function(){return u},isSelector:function(){return O},isSwitchExpression:function(){return v},isUnaryOperation:function(){return p}});var n=t(4);function o(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return a(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?a(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var i=function(e,r,t){if(void 0===t&&(t=[]),!(0,n.isPlainObject)(e)||!Object.prototype.hasOwnProperty.call(e,r))return!1;for(var a,i=o(t);!(a=i()).done;){var _=a.value;if(!Object.prototype.hasOwnProperty.call(e,_))return!1}return!0},_=function(e){return i(e,"$comparator",["value1","value2"])},s=function(e){return i(e,"$and")},u=function(e){return i(e,"$or")},l=function(e){return i(e,"$concat")},c=function(e){return i(e,"$mapping",["data"])},f=function(e){return i(e,"$operator",["operand1","operand2"])},p=function(e){return i(e,"$operator",["operand"])},d=function(e){return i(e,"$if")},v=function(e){return i(e,"$switch")},O=function(e){return i(e,"$select")},E=function(e){return i(e,"$arrayContains")}},,,,,,function(e,r,t){t.r(r),t.d(r,{DEFAULT_OPTIONS:function(){return f},NO_ITEM_FOUND_SYMBOL:function(){return c},SELECTOR_KEY_NAMES:function(){return l},evaluateAnd:function(){return A},evaluateArrayContains:function(){return L},evaluateConcat:function(){return I},evaluateCondition:function(){return b},evaluateExpression:function(){return R},evaluateIf:function(){return P},evaluateMapping:function(){return D},evaluateOperation:function(){return y},evaluateOptionalThen:function(){return h},evaluateOr:function(){return M},evaluateSelector:function(){return E},evaluateSelectorUntilLastObject:function(){return O},evaluateSwitch:function(){return m},evaluateUnaryOperation:function(){return g},normalizeSelector:function(){return d},selectArrayItem:function(){return v}});var n=t(3),o=t.n(n),a=t(4),i=t(2),_=t(16);function s(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return u(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}var l=new Set(["name"]),c=Symbol.for("EXPRESSION_EVALUATOR_NO_ITEM_FOUND"),f={skipMissingLevel:!1,contextReplacements:{},delimiter:"."},p=function(e){for(var r,t=[],n=s(e);!(r=n()).done;){var o=r.value,a=o.indexOf("[");a>0&&t.push(o.substring(0,a)),t.push(o.substring(a+1,o.length-1))}return t},d=function(e,r){void 0===r&&(r={});for(var t,n=o()({},f,{scope:{}},r),i=[],_=s([].concat(e));!(t=_()).done;){var u=t.value;if("string"==typeof u)for(var l,c=s(u.split(n.delimiter));!(l=c()).done;){var v=l.value;if(v)if((0,a.isFunction)(v))i.push(v);else{var O=v.indexOf("["),E=v;if(-1!==O&&(E=v.substring(O),v=v.substring(0,O)),Object.prototype.hasOwnProperty.call(n.contextReplacements,v)?i.push.apply(i,d(n.contextReplacements[v],n)):i.push(v),E!==v){var b=E.match(/[^[]*\[\d+]/g);i.push.apply(i,p(b))}}}else i.push(R(u,n.scope,n))}return i},v=function(e,r){for(var t,n=s(e);!(t=n()).done;)for(var o,a=t.value,i=s(l);!(o=i()).done;){var _=o.value;if(Object.prototype.hasOwnProperty.call(a,_)&&a[_]===r)return a}return c},O=function(e,r,t){void 0===r&&(r={}),void 0===t&&(t={});for(var n,i=o()({},f,t),_=d(e,o()({},i,{scope:r})),u=r,l=0,p=s(_);!(n=p()).done;){var O=n.value,E=l===_.length-1;if((0,a.isObject)(u))if(Array.isArray(u)&&"string"==typeof O&&isNaN(parseInt(O))){var b=v(u,O);if(b!==c){if(E)return"number"==typeof O?[u,O]:[u,u.indexOf(b)];u=b}}else{if(E)return[u,O];if((0,a.isFunction)(O))u=O(u);else if(Object.prototype.hasOwnProperty.call(u,O))u=u[O];else if(!i.skipMissingLevel)return[u,O]}else{if(E)return[u,O];if(!i.skipMissingLevel)return[u,O]}l+=1}return[{},""]},E=function(e,r,t){void 0===r&&(r={}),void 0===t&&(t={});var n=O(e,r,t),o=n[0],i=n[1];return""===i?r:(0,a.isFunction)(i)?i(o):Object.prototype.hasOwnProperty.call(o,i)?o[i]:t.skipMissingLevel?o:void 0},b=function(e,r,t){var n=R(e.value1,r,t),o=R(e.value2,r,t);switch(e.$comparator){case"==":return(0,i.equals)(n,o);case"!=":return!(0,i.equals)(n,o);case"<":return n<o;case"<=":return n<=o;case">":return n>o;case">=":return n>=o}},g=function(e,r,t){var n=R(e.operand,r,t);switch(e.$operator){case"!":return!n;case"!!":return Boolean(n)}},y=function(e,r,t){var n=R(e.operand1,r,t),o=R(e.operand2,r,t);switch(e.$operator){case"+":return n+o;case"-":return n-o;case"*":return n*o;case"**":return Math.pow(n,o);case"/":return n/o}},h=function(e,r,t){if(void 0!==e.then)return R(e.then,r,t)},P=function(e,r,t){return R(e.$if,r,t)?h(e,r,t):void 0===e.else?void 0:R(e.else,r)},m=function(e,r,t){for(var n,o=R(e.$switch,r),a=s(e.caseExpressions);!(n=a()).done;){var i=n.value;if(o===R(i.$case,r,t))return h(i,r,t)}if(void 0!==e.default)return R(e.default,r,t)},A=function(e,r,t){for(var n,o=s(e.$and);!(n=o()).done;){if(!R(n.value,r,t))return!1}return!0},M=function(e,r,t){for(var n,o=s(e.$or);!(n=o()).done;){if(R(n.value,r,t))return!0}return!1},I=function(e,r,t){for(var n,o=[],a=!1,i=s(e.$concat);!(n=i()).done;){var _=R(n.value,r,t);Array.isArray(_)&&(a=!0),o=o.concat(_)}return a?o:o.join("")},D=function(e,r,t){var n=R(e.data,r,t),a=[];if(Array.isArray(n))a=n;else for(var i=0,_=Object.entries(n);i<_.length;i++){var u=_[i],l=u[0],c=u[1];a.push(o()({},c,{$key:l}))}for(var f,p=[],d=s(a);!(f=d()).done;){for(var v=f.value,O={},E=0,b=Object.entries(e.$mapping);E<b.length;E++){var g=b[E],y=g[0],h=g[1];Object.prototype.hasOwnProperty.call(v,y)&&(O[h]=v[y])}p.push(O)}return p},L=function(e,r,t){var n=r;null!=e.$arrayContains.target&&(n=R(e.$arrayContains.target,r,t));var o=R(e.$arrayContains.value,r,t),i=R(e.$arrayContains.key,r,t);return!!Array.isArray(n)&&n.some(function(e){return"string"==typeof i&&(0,a.isPlainObject)(e)&&Object.prototype.hasOwnProperty.call(e,i)?e[i]===o:e===o})};function R(e,r,t){return void 0===r&&(r={}),void 0===t&&(t={}),(0,_.isSelector)(e)?E(e.$select,r,t):(0,_.isCondition)(e)?b(e,r,t):(0,_.isUnaryOperation)(e)?g(e,r,t):(0,_.isOperation)(e)?y(e,r,t):(0,_.isOrExpression)(e)?M(e,r,t):(0,_.isAndExpression)(e)?A(e,r,t):(0,_.isConcatExpression)(e)?I(e,r,t):(0,_.isMappingExpression)(e)?D(e,r,t):(0,_.isIfExpression)(e)?P(e,r,t):(0,_.isSwitchExpression)(e)?m(e,r,t):(0,_.isArrayContainsExpression)(e)?L(e,r,t):e}r.default=R}],__webpack_module_cache__={};function __webpack_require__(e){var r=__webpack_module_cache__[e];if(void 0!==r)return r.exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e](t,t.exports,__webpack_require__),t.loaded=!0,t.exports}__webpack_require__.c=__webpack_module_cache__,__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,{a:r}),r},__webpack_require__.d=function(e,r){for(var t in r)__webpack_require__.o(r,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(22);return __webpack_exports__}()});
1
+ // #!/usr/bin/env babel-node
2
+ // -*- coding: utf-8 -*-
3
+ 'use strict';
4
+
5
+ /* !
6
+ region header
7
+ [Project page](https://torben.website/clientnode)
8
+
9
+ Copyright Torben Sickert (info["~at~"]torben.website) 16.12.2012
10
+
11
+ License
12
+ -------
13
+
14
+ This library written by Torben Sickert stands under a creative commons
15
+ naming 3.0 unported license.
16
+ See https://creativecommons.org/licenses/by/3.0/deed.de
17
+ endregion
18
+ */
19
+ import "core-js/modules/es.array.push.js";
20
+ import "core-js/modules/es.iterator.constructor.js";
21
+ import "core-js/modules/es.iterator.some.js";
22
+ import "core-js/modules/es.set.difference.v2.js";
23
+ import "core-js/modules/es.set.intersection.v2.js";
24
+ import "core-js/modules/es.set.is-disjoint-from.v2.js";
25
+ import "core-js/modules/es.set.is-subset-of.v2.js";
26
+ import "core-js/modules/es.set.is-superset-of.v2.js";
27
+ import "core-js/modules/es.set.symmetric-difference.v2.js";
28
+ import "core-js/modules/es.set.union.v2.js";
29
+ import { equals, isFunction, isObject, isPlainObject } from "../index.js";
30
+ import { isAndExpression, isOrExpression, isConcatExpression, isMappingExpression, isIfExpression, isSwitchExpression, isSelector, isCondition, isOperation, isUnaryOperation, isArrayContainsExpression } from "./indicator-functions.js";
31
+ export const SELECTOR_KEY_NAMES = new Set(['name']);
32
+ export const NO_ITEM_FOUND_SYMBOL = Symbol.for('EXPRESSION_EVALUATOR_NO_ITEM_FOUND');
33
+ export const DEFAULT_OPTIONS = {
34
+ skipMissingLevel: false,
35
+ contextReplacements: {},
36
+ delimiter: '.'
37
+ };
38
+ const addBracketBasedPathElements = subParts => {
39
+ const path = [];
40
+ // NOTE: We add index assignments into path array.
41
+ for (const subPart of subParts) {
42
+ const openingBracketPosition = subPart.indexOf('[');
43
+ if (openingBracketPosition > 0) path.push(subPart.substring(0, openingBracketPosition));
44
+
45
+ // Trim bracket padding "[index]" => "index".
46
+ path.push(subPart.substring(openingBracketPosition + 1, subPart.length - 1));
47
+ }
48
+ return path;
49
+ };
50
+ export const normalizeSelector = (selector, givenOptions = {}) => {
51
+ const options = {
52
+ ...DEFAULT_OPTIONS,
53
+ scope: {},
54
+ ...givenOptions
55
+ };
56
+ const path = [];
57
+ for (const component of [].concat(selector)) if (typeof component === 'string') {
58
+ const parts = component.split(options.delimiter);
59
+ for (let part of parts) {
60
+ if (!part) continue;
61
+ if (isFunction(part)) {
62
+ path.push(part);
63
+ continue;
64
+ }
65
+
66
+ // Identify bracket based selectors like "[index]".
67
+ const openingBracketPosition = part.indexOf('[');
68
+ let restPart = part;
69
+ if (openingBracketPosition !== -1) {
70
+ restPart = part.substring(openingBracketPosition);
71
+ part = part.substring(0, openingBracketPosition);
72
+ }
73
+ if (Object.prototype.hasOwnProperty.call(options.contextReplacements, part)) path.push(...normalizeSelector(options.contextReplacements[part], options));else path.push(part);
74
+ if (restPart !== part) {
75
+ // Trim bracket padding "[index]" => "index".
76
+ const subParts = restPart.match(/[^[]*\[\d+]/g);
77
+ path.push(...addBracketBasedPathElements(subParts));
78
+ }
79
+ }
80
+ } else path.push(evaluateExpression(component, options.scope, options));
81
+ return path;
82
+ };
83
+ export const selectArrayItem = (data, keyOrIndex) => {
84
+ // Assume that an array item should be found by its property name.
85
+ for (const item of data) for (const selectorKeyName of SELECTOR_KEY_NAMES) if (Object.prototype.hasOwnProperty.call(item, selectorKeyName) && item[selectorKeyName] === keyOrIndex) return item;
86
+ return NO_ITEM_FOUND_SYMBOL;
87
+ };
88
+ /**
89
+ * Retrieves substructure in given object referenced by given selector
90
+ * path.
91
+ * @param selector - Selector path.
92
+ * @param scope - Object to search in.
93
+ * @param givenOptions - Object to configure evaluation.
94
+ * @param givenOptions.contextReplacements - Configuration how to replace
95
+ * "this" and "thisParent" keywords in selectors.
96
+ * @param givenOptions.delimiter - Delimiter to delimit given selector
97
+ * components.
98
+ * @param givenOptions.skipMissingLevel - Indicates to skip missing level in
99
+ * given path.
100
+ * @returns Determined sub structure of given data or "undefined".
101
+ */
102
+ export const evaluateSelectorUntilLastObject = (selector, scope = {}, givenOptions = {}) => {
103
+ const options = {
104
+ ...DEFAULT_OPTIONS,
105
+ ...givenOptions
106
+ };
107
+
108
+ /*
109
+ Create a list of keys or indexes to retrieve specified value from given
110
+ object.
111
+ */
112
+ const path = normalizeSelector(selector, {
113
+ ...options,
114
+ scope
115
+ });
116
+ // Dig into given scope for each previously found key or index.
117
+ let result = scope;
118
+ let index = 0;
119
+ for (const keyOrIndex of path) {
120
+ const isLastPart = index === path.length - 1;
121
+ if (isObject(result)) {
122
+ if (Array.isArray(result) && typeof keyOrIndex === 'string' && isNaN(parseInt(keyOrIndex))) {
123
+ const item = selectArrayItem(result, keyOrIndex);
124
+ if (item !== NO_ITEM_FOUND_SYMBOL) {
125
+ if (isLastPart) return typeof keyOrIndex === 'number' ? [result, keyOrIndex] : [result, result.indexOf(item)];
126
+ result = item;
127
+ }
128
+ } else if (isLastPart) return [result, keyOrIndex];else if (isFunction(keyOrIndex)) result = keyOrIndex(result);else if (Object.prototype.hasOwnProperty.call(result, keyOrIndex)) result = result[keyOrIndex];else if (!options.skipMissingLevel) return [result, keyOrIndex];
129
+ } else if (isLastPart) return [result, keyOrIndex];else if (!options.skipMissingLevel) return [result, keyOrIndex];
130
+ index += 1;
131
+ }
132
+ return [{}, ''];
133
+ };
134
+ /**
135
+ * Retrieves substructure in given object referenced by given selector
136
+ * path.
137
+ * @param selector - Selector path.
138
+ * @param scope - Object to search in.
139
+ * @param options - Options object to configure evaluation.
140
+ * @param options.contextReplacements - Configuration how to replace "this"
141
+ * and "thisParent" keywords in selectors.
142
+ * @param options.delimiter - Delimiter to delimit given selector components.
143
+ * @param options.skipMissingLevel - Indicates to skip missing level in given
144
+ * path.
145
+ * @returns Determined sub structure of given data or "undefined".
146
+ */
147
+ export const evaluateSelector = (selector, scope = {}, options = {}) => {
148
+ const [lastObject, lastKey] = evaluateSelectorUntilLastObject(selector, scope, options);
149
+ if (lastKey === '') return scope;
150
+ if (isFunction(lastKey)) return lastKey(lastObject);
151
+ if (Object.prototype.hasOwnProperty.call(lastObject, lastKey)) return lastObject[lastKey];
152
+ return options.skipMissingLevel ? lastObject : undefined;
153
+ };
154
+ export const evaluateCondition = (condition, scope, options) => {
155
+ const value1 = evaluateExpression(condition.value1, scope, options);
156
+ const value2 = evaluateExpression(condition.value2, scope, options);
157
+ switch (condition.$comparator) {
158
+ case '==':
159
+ return equals(value1, value2);
160
+ case '!=':
161
+ return !equals(value1, value2);
162
+ case '<':
163
+ return value1 < value2;
164
+ case '<=':
165
+ return value1 <= value2;
166
+ case '>':
167
+ return value1 > value2;
168
+ case '>=':
169
+ return value1 >= value2;
170
+ }
171
+ };
172
+ export const evaluateUnaryOperation = (operation, scope, options) => {
173
+ const operand = evaluateExpression(operation.operand, scope, options);
174
+ switch (operation.$operator) {
175
+ case '!':
176
+ return !operand;
177
+ case '!!':
178
+ return Boolean(operand);
179
+ }
180
+ };
181
+ export const evaluateOperation = (operation, scope, options) => {
182
+ const operand1 = evaluateExpression(operation.operand1, scope, options);
183
+ const operand2 = evaluateExpression(operation.operand2, scope, options);
184
+ switch (operation.$operator) {
185
+ case '+':
186
+ return operand1 + operand2;
187
+ case '-':
188
+ return operand1 - operand2;
189
+ case '*':
190
+ return operand1 * operand2;
191
+ case '**':
192
+ return operand1 ** operand2;
193
+ case '/':
194
+ return operand1 / operand2;
195
+ }
196
+ };
197
+ export const evaluateOptionalThen = (expression, scope, options) => {
198
+ if (typeof expression.then === 'undefined') return undefined;
199
+ return evaluateExpression(expression.then, scope, options);
200
+ };
201
+ export const evaluateIf = (expression, scope, options) => {
202
+ if (evaluateExpression(expression.$if, scope, options)) return evaluateOptionalThen(expression, scope, options);
203
+ return typeof expression.else === 'undefined' ? undefined : evaluateExpression(expression.else, scope);
204
+ };
205
+ export const evaluateSwitch = (expression, scope, options) => {
206
+ const value = evaluateExpression(expression.$switch, scope);
207
+ for (const caseExpression of expression.caseExpressions) if (value === evaluateExpression(caseExpression.$case, scope, options)) return evaluateOptionalThen(caseExpression, scope, options);
208
+ if (typeof expression.default !== 'undefined') return evaluateExpression(expression.default, scope, options);
209
+ return undefined;
210
+ };
211
+ export const evaluateAnd = (expression, scope, options) => {
212
+ for (const condition of expression.$and) if (!evaluateExpression(condition, scope, options)) return false;
213
+ return true;
214
+ };
215
+ export const evaluateOr = (expression, scope, options) => {
216
+ for (const condition of expression.$or) if (evaluateExpression(condition, scope, options)) return true;
217
+ return false;
218
+ };
219
+ export const evaluateConcat = (expression, scope, options) => {
220
+ let result = [];
221
+ let isArray = false;
222
+ for (const item of expression.$concat) {
223
+ const value = evaluateExpression(item, scope, options);
224
+ if (Array.isArray(value)) isArray = true;
225
+ result = result.concat(value);
226
+ }
227
+ return isArray ? result : result.join('');
228
+ };
229
+ export const evaluateMapping = (expression, scope, options) => {
230
+ const givenData = evaluateExpression(expression.data, scope, options);
231
+ let normalizedGivenData = [];
232
+ if (Array.isArray(givenData)) normalizedGivenData = givenData;else for (const [key, value] of Object.entries(givenData)) normalizedGivenData.push({
233
+ ...value,
234
+ $key: key
235
+ });
236
+ const result = [];
237
+ for (const item of normalizedGivenData) {
238
+ const value = {};
239
+ for (const [sourceName, targetName] of Object.entries(expression.$mapping)) if (Object.prototype.hasOwnProperty.call(item, sourceName)) value[targetName] = item[sourceName];
240
+ result.push(value);
241
+ }
242
+ return result;
243
+ };
244
+ export const evaluateArrayContains = (expression, scope, options) => {
245
+ let array = scope;
246
+ if (expression.$arrayContains.target != null) array = evaluateExpression(expression.$arrayContains.target, scope, options);
247
+ const value = evaluateExpression(expression.$arrayContains.value, scope, options);
248
+ const key = evaluateExpression(expression.$arrayContains.key, scope, options);
249
+ if (!Array.isArray(array)) return false;
250
+ return array.some(item => {
251
+ if (typeof key === 'string' && isPlainObject(item) && Object.prototype.hasOwnProperty.call(item, key)) {
252
+ const record = item;
253
+ return record[key] === value;
254
+ }
255
+ return item === value;
256
+ });
257
+ };
258
+ export function evaluateExpression(expression, scope = {}, options = {}) {
259
+ if (isSelector(expression)) return evaluateSelector(expression.$select, scope, options);
260
+ if (isCondition(expression)) return evaluateCondition(expression, scope, options);
261
+ if (isUnaryOperation(expression)) return evaluateUnaryOperation(expression, scope, options);
262
+ if (isOperation(expression)) return evaluateOperation(expression, scope, options);
263
+ if (isOrExpression(expression)) return evaluateOr(expression, scope, options);
264
+ if (isAndExpression(expression)) return evaluateAnd(expression, scope, options);
265
+ if (isConcatExpression(expression)) return evaluateConcat(expression, scope, options);
266
+ if (isMappingExpression(expression)) return evaluateMapping(expression, scope, options);
267
+ if (isIfExpression(expression)) return evaluateIf(expression, scope, options);
268
+ if (isSwitchExpression(expression)) return evaluateSwitch(expression, scope, options);
269
+ if (isArrayContainsExpression(expression)) return evaluateArrayContains(expression, scope, options);
270
+ return expression;
271
+ }
272
+ export default evaluateExpression;
273
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cHJlc3Npb24vZXZhbHVhdG9ycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIS91c3IvYmluL2VudiBiYWJlbC1ub2RlXG4vLyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbid1c2Ugc3RyaWN0J1xuLyogIVxuICAgIHJlZ2lvbiBoZWFkZXJcbiAgICBbUHJvamVjdCBwYWdlXShodHRwczovL3RvcmJlbi53ZWJzaXRlL2NsaWVudG5vZGUpXG5cbiAgICBDb3B5cmlnaHQgVG9yYmVuIFNpY2tlcnQgKGluZm9bXCJ+YXR+XCJddG9yYmVuLndlYnNpdGUpIDE2LjEyLjIwMTJcblxuICAgIExpY2Vuc2VcbiAgICAtLS0tLS0tXG5cbiAgICBUaGlzIGxpYnJhcnkgd3JpdHRlbiBieSBUb3JiZW4gU2lja2VydCBzdGFuZHMgdW5kZXIgYSBjcmVhdGl2ZSBjb21tb25zXG4gICAgbmFtaW5nIDMuMCB1bnBvcnRlZCBsaWNlbnNlLlxuICAgIFNlZSBodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wL2RlZWQuZGVcbiAgICBlbmRyZWdpb25cbiovXG5pbXBvcnQgdHlwZSB7TWFwcGluZywgT3B0aW9uc30gZnJvbSAnLi4vJ1xuXG5pbXBvcnQgdHlwZSB7XG4gICAgTm9ybWFsaXplZFNlbGVjdG9yLFxuICAgIFNlbGVjdG9yLFxuICAgIFNlbGVjdG9ySXRlbSxcbiAgICBTaW1wbGVSZWN1cnNpdmVLZXlPZixcblxuICAgIEFycmF5Q29udGFpbnNFeHByZXNzaW9uLFxuICAgIEFuZEV4cHJlc3Npb24sXG4gICAgT3JFeHByZXNzaW9uLFxuICAgIENvbmNhdEV4cHJlc3Npb24sXG5cbiAgICBFeHByZXNzaW9uLFxuICAgIElmRXhwcmVzc2lvbixcbiAgICBTd2l0Y2hFeHByZXNzaW9uLFxuICAgIENhc2VFeHByZXNzaW9uLFxuXG4gICAgVW5hcnlPcGVyYXRpb24sXG4gICAgT3BlcmF0aW9uLFxuXG4gICAgQ29uZGl0aW9uLFxuXG4gICAgQmFzaWNTY29wZVR5cGUsXG4gICAgUmVjdXJzaXZlS2V5T2YsXG4gICAgTWFwcGluZ0V4cHJlc3Npb25cbn0gZnJvbSAnLi90eXBlJ1xuXG5pbXBvcnQge2VxdWFscywgaXNGdW5jdGlvbiwgaXNPYmplY3QsIGlzUGxhaW5PYmplY3R9IGZyb20gJy4uLydcblxuaW1wb3J0IHtcbiAgICBpc0FuZEV4cHJlc3Npb24sXG4gICAgaXNPckV4cHJlc3Npb24sXG4gICAgaXNDb25jYXRFeHByZXNzaW9uLFxuICAgIGlzTWFwcGluZ0V4cHJlc3Npb24sXG4gICAgaXNJZkV4cHJlc3Npb24sXG4gICAgaXNTd2l0Y2hFeHByZXNzaW9uLFxuICAgIGlzU2VsZWN0b3IsXG4gICAgaXNDb25kaXRpb24sXG4gICAgaXNPcGVyYXRpb24sXG4gICAgaXNVbmFyeU9wZXJhdGlvbixcbiAgICBpc0FycmF5Q29udGFpbnNFeHByZXNzaW9uXG59IGZyb20gJy4vaW5kaWNhdG9yLWZ1bmN0aW9ucydcblxuZXhwb3J0IGNvbnN0IFNFTEVDVE9SX0tFWV9OQU1FUyA9IG5ldyBTZXQ8c3RyaW5nPihbJ25hbWUnXSlcbmV4cG9ydCBjb25zdCBOT19JVEVNX0ZPVU5EX1NZTUJPTCA9XG4gICAgU3ltYm9sLmZvcignRVhQUkVTU0lPTl9FVkFMVUFUT1JfTk9fSVRFTV9GT1VORCcpXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09QVElPTlMgPSB7XG4gICAgc2tpcE1pc3NpbmdMZXZlbDogZmFsc2UsXG4gICAgY29udGV4dFJlcGxhY2VtZW50czoge30sXG4gICAgZGVsaW1pdGVyOiAnLidcbn1cblxuY29uc3QgYWRkQnJhY2tldEJhc2VkUGF0aEVsZW1lbnRzID0gKHN1YlBhcnRzOiBBcnJheTxzdHJpbmc+KSA9PiB7XG4gICAgY29uc3QgcGF0aDogQXJyYXk8U2ltcGxlUmVjdXJzaXZlS2V5T2Y+ID0gW11cbiAgICAvLyBOT1RFOiBXZSBhZGQgaW5kZXggYXNzaWdubWVudHMgaW50byBwYXRoIGFycmF5LlxuICAgIGZvciAoY29uc3Qgc3ViUGFydCBvZiBzdWJQYXJ0cykge1xuICAgICAgICBjb25zdCBvcGVuaW5nQnJhY2tldFBvc2l0aW9uID0gc3ViUGFydC5pbmRleE9mKCdbJylcbiAgICAgICAgaWYgKG9wZW5pbmdCcmFja2V0UG9zaXRpb24gPiAwKVxuICAgICAgICAgICAgcGF0aC5wdXNoKHN1YlBhcnQuc3Vic3RyaW5nKDAsIG9wZW5pbmdCcmFja2V0UG9zaXRpb24pKVxuXG4gICAgICAgIC8vIFRyaW0gYnJhY2tldCBwYWRkaW5nIFwiW2luZGV4XVwiID0+IFwiaW5kZXhcIi5cbiAgICAgICAgcGF0aC5wdXNoKHN1YlBhcnQuc3Vic3RyaW5nKFxuICAgICAgICAgICAgb3BlbmluZ0JyYWNrZXRQb3NpdGlvbiArIDEsIHN1YlBhcnQubGVuZ3RoIC0gMVxuICAgICAgICApKVxuICAgIH1cblxuICAgIHJldHVybiBwYXRoXG59XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVTZWxlY3RvciA9IDxTY29wZVR5cGUgZXh0ZW5kcyBCYXNpY1Njb3BlVHlwZT4oXG4gICAgc2VsZWN0b3I6IFNlbGVjdG9yPFNjb3BlVHlwZT4sXG4gICAgZ2l2ZW5PcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM8U2NvcGVUeXBlPiAmIHtzY29wZTogU2NvcGVUeXBlfT4gPSB7fVxuKTogTm9ybWFsaXplZFNlbGVjdG9yPFNjb3BlVHlwZT4gPT4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IE9wdGlvbnM8U2NvcGVUeXBlPiAmIHtzY29wZTogU2NvcGVUeXBlfSA9XG4gICAgICAgIHsuLi5ERUZBVUxUX09QVElPTlMsIHNjb3BlOiB7fSBhcyBTY29wZVR5cGUsIC4uLmdpdmVuT3B0aW9uc31cblxuICAgIGNvbnN0IHBhdGg6IE5vcm1hbGl6ZWRTZWxlY3RvcjxTY29wZVR5cGU+ID0gW11cbiAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiAoW10gYXMgTm9ybWFsaXplZFNlbGVjdG9yPFNjb3BlVHlwZT4pLmNvbmNhdChcbiAgICAgICAgc2VsZWN0b3JcbiAgICApKVxuICAgICAgICBpZiAodHlwZW9mIGNvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzOiBBcnJheTxzdHJpbmc+ID0gY29tcG9uZW50LnNwbGl0KG9wdGlvbnMuZGVsaW1pdGVyKVxuICAgICAgICAgICAgZm9yIChsZXQgcGFydCBvZiBwYXJ0cykge1xuICAgICAgICAgICAgICAgIGlmICghcGFydClcbiAgICAgICAgICAgICAgICAgICAgY29udGludWVcblxuICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHBhcnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgucHVzaChwYXJ0KVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSWRlbnRpZnkgYnJhY2tldCBiYXNlZCBzZWxlY3RvcnMgbGlrZSBcIltpbmRleF1cIi5cbiAgICAgICAgICAgICAgICBjb25zdCBvcGVuaW5nQnJhY2tldFBvc2l0aW9uID0gcGFydC5pbmRleE9mKCdbJylcbiAgICAgICAgICAgICAgICBsZXQgcmVzdFBhcnQgPSBwYXJ0XG4gICAgICAgICAgICAgICAgaWYgKG9wZW5pbmdCcmFja2V0UG9zaXRpb24gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3RQYXJ0ID0gcGFydC5zdWJzdHJpbmcob3BlbmluZ0JyYWNrZXRQb3NpdGlvbilcbiAgICAgICAgICAgICAgICAgICAgcGFydCA9IHBhcnQuc3Vic3RyaW5nKDAsIG9wZW5pbmdCcmFja2V0UG9zaXRpb24pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5jb250ZXh0UmVwbGFjZW1lbnRzLCBwYXJ0XG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5wdXNoKC4uLm5vcm1hbGl6ZVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5jb250ZXh0UmVwbGFjZW1lbnRzW3BhcnRdLCBvcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBwYXRoLnB1c2gocGFydClcblxuICAgICAgICAgICAgICAgIGlmIChyZXN0UGFydCAhPT0gcGFydCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUcmltIGJyYWNrZXQgcGFkZGluZyBcIltpbmRleF1cIiA9PiBcImluZGV4XCIuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1YlBhcnRzID0gcmVzdFBhcnQubWF0Y2goL1teW10qXFxbXFxkK10vZykgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5PHN0cmluZz5cbiAgICAgICAgICAgICAgICAgICAgcGF0aC5wdXNoKC4uLmFkZEJyYWNrZXRCYXNlZFBhdGhFbGVtZW50cyhzdWJQYXJ0cykgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHVua25vd24gYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5PFJlY3Vyc2l2ZUtleU9mPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIHBhdGgucHVzaChcbiAgICAgICAgICAgICAgICBldmFsdWF0ZUV4cHJlc3Npb24oY29tcG9uZW50LCBvcHRpb25zLnNjb3BlLCBvcHRpb25zKSBhc1xuICAgICAgICAgICAgICAgICAgICBTZWxlY3Rvckl0ZW08U2NvcGVUeXBlPlxuICAgICAgICAgICAgKVxuXG4gICAgcmV0dXJuIHBhdGhcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFycmF5SXRlbSA9IChcbiAgICBkYXRhOiBBcnJheTx1bmtub3duPiwga2V5T3JJbmRleDogbnVtYmVyIHwgc3RyaW5nXG4pID0+IHtcbiAgICAvLyBBc3N1bWUgdGhhdCBhbiBhcnJheSBpdGVtIHNob3VsZCBiZSBmb3VuZCBieSBpdHMgcHJvcGVydHkgbmFtZS5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZGF0YSlcbiAgICAgICAgZm9yIChjb25zdCBzZWxlY3RvcktleU5hbWUgb2YgU0VMRUNUT1JfS0VZX05BTUVTKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdGVtLCBzZWxlY3RvcktleU5hbWUpICYmXG4gICAgICAgICAgICAgICAgKGl0ZW0gYXMgTWFwcGluZylbc2VsZWN0b3JLZXlOYW1lXSA9PT0ga2V5T3JJbmRleFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtXG5cbiAgICByZXR1cm4gTk9fSVRFTV9GT1VORF9TWU1CT0xcbn1cbi8qKlxuICogUmV0cmlldmVzIHN1YnN0cnVjdHVyZSBpbiBnaXZlbiBvYmplY3QgcmVmZXJlbmNlZCBieSBnaXZlbiBzZWxlY3RvclxuICogcGF0aC5cbiAqIEBwYXJhbSBzZWxlY3RvciAtIFNlbGVjdG9yIHBhdGguXG4gKiBAcGFyYW0gc2NvcGUgLSBPYmplY3QgdG8gc2VhcmNoIGluLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucyAtIE9iamVjdCB0byBjb25maWd1cmUgZXZhbHVhdGlvbi5cbiAqIEBwYXJhbSBnaXZlbk9wdGlvbnMuY29udGV4dFJlcGxhY2VtZW50cyAtIENvbmZpZ3VyYXRpb24gaG93IHRvIHJlcGxhY2VcbiAqIFwidGhpc1wiIGFuZCBcInRoaXNQYXJlbnRcIiBrZXl3b3JkcyBpbiBzZWxlY3RvcnMuXG4gKiBAcGFyYW0gZ2l2ZW5PcHRpb25zLmRlbGltaXRlciAtIERlbGltaXRlciB0byBkZWxpbWl0IGdpdmVuIHNlbGVjdG9yXG4gKiBjb21wb25lbnRzLlxuICogQHBhcmFtIGdpdmVuT3B0aW9ucy5za2lwTWlzc2luZ0xldmVsIC0gSW5kaWNhdGVzIHRvIHNraXAgbWlzc2luZyBsZXZlbCBpblxuICogZ2l2ZW4gcGF0aC5cbiAqIEByZXR1cm5zIERldGVybWluZWQgc3ViIHN0cnVjdHVyZSBvZiBnaXZlbiBkYXRhIG9yIFwidW5kZWZpbmVkXCIuXG4gKi9cbmV4cG9ydCBjb25zdCBldmFsdWF0ZVNlbGVjdG9yVW50aWxMYXN0T2JqZWN0ID0gPFxuICAgIFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlXG4+KFxuICAgICAgICBzZWxlY3RvcjogU2VsZWN0b3I8U2NvcGVUeXBlPixcbiAgICAgICAgc2NvcGU6IFNjb3BlVHlwZSA9IHt9IGFzIFNjb3BlVHlwZSxcbiAgICAgICAgZ2l2ZW5PcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM8U2NvcGVUeXBlPj4gPSB7fVxuICAgICk6IFtTY29wZVR5cGUsIFJlY3Vyc2l2ZUtleU9mXSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uczogT3B0aW9uczxTY29wZVR5cGU+ID0gey4uLkRFRkFVTFRfT1BUSU9OUywgLi4uZ2l2ZW5PcHRpb25zfVxuXG4gICAgLypcbiAgICAgICAgQ3JlYXRlIGEgbGlzdCBvZiBrZXlzIG9yIGluZGV4ZXMgdG8gcmV0cmlldmUgc3BlY2lmaWVkIHZhbHVlIGZyb20gZ2l2ZW5cbiAgICAgICAgb2JqZWN0LlxuICAgICovXG4gICAgY29uc3QgcGF0aDogTm9ybWFsaXplZFNlbGVjdG9yPFNjb3BlVHlwZT4gPVxuICAgICAgICBub3JtYWxpemVTZWxlY3RvcihzZWxlY3Rvciwgey4uLm9wdGlvbnMsIHNjb3BlfSlcbiAgICAvLyBEaWcgaW50byBnaXZlbiBzY29wZSBmb3IgZWFjaCBwcmV2aW91c2x5IGZvdW5kIGtleSBvciBpbmRleC5cbiAgICBsZXQgcmVzdWx0ID0gc2NvcGVcbiAgICBsZXQgaW5kZXggPSAwXG4gICAgZm9yIChjb25zdCBrZXlPckluZGV4IG9mIHBhdGgpIHtcbiAgICAgICAgY29uc3QgaXNMYXN0UGFydCA9IGluZGV4ID09PSBwYXRoLmxlbmd0aCAtIDFcblxuICAgICAgICBpZiAoaXNPYmplY3QocmVzdWx0KSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzdWx0KSAmJlxuICAgICAgICAgICAgICAgICh0eXBlb2Yga2V5T3JJbmRleCA9PT0gJ3N0cmluZycgJiYgaXNOYU4ocGFyc2VJbnQoa2V5T3JJbmRleCkpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHNlbGVjdEFycmF5SXRlbShyZXN1bHQsIGtleU9ySW5kZXgpXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gIT09IE5PX0lURU1fRk9VTkRfU1lNQk9MKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0xhc3RQYXJ0KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBrZXlPckluZGV4ID09PSAnbnVtYmVyJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3VsdCwga2V5T3JJbmRleF0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5kZXhPZihpdGVtKSBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5rbm93biBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdXJzaXZlS2V5T2ZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG5cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gaXRlbSBhcyBTY29wZVR5cGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzTGFzdFBhcnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtyZXN1bHQsIGtleU9ySW5kZXggYXMgUmVjdXJzaXZlS2V5T2ZdXG4gICAgICAgICAgICBlbHNlIGlmIChpc0Z1bmN0aW9uKGtleU9ySW5kZXgpKVxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGtleU9ySW5kZXgocmVzdWx0KSBhcyBTY29wZVR5cGVcbiAgICAgICAgICAgIGVsc2UgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChcbiAgICAgICAgICAgICAgICByZXN1bHQsIGtleU9ySW5kZXggYXMgdW5rbm93biBhcyBzdHJpbmdcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0W2tleU9ySW5kZXggYXMga2V5b2YgU2NvcGVUeXBlXSBhcyBTY29wZVR5cGVcbiAgICAgICAgICAgIGVsc2UgaWYgKCFvcHRpb25zLnNraXBNaXNzaW5nTGV2ZWwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtyZXN1bHQsIGtleU9ySW5kZXggYXMgUmVjdXJzaXZlS2V5T2ZdXG4gICAgICAgIH0gZWxzZSBpZiAoaXNMYXN0UGFydClcbiAgICAgICAgICAgIHJldHVybiBbcmVzdWx0LCBrZXlPckluZGV4IGFzIFJlY3Vyc2l2ZUtleU9mXVxuICAgICAgICBlbHNlIGlmICghb3B0aW9ucy5za2lwTWlzc2luZ0xldmVsKVxuICAgICAgICAgICAgcmV0dXJuIFtyZXN1bHQsIGtleU9ySW5kZXggYXMgUmVjdXJzaXZlS2V5T2ZdXG5cbiAgICAgICAgaW5kZXggKz0gMVxuICAgIH1cblxuICAgIHJldHVybiBbe30gYXMgU2NvcGVUeXBlLCAnJyBhcyB1bmtub3duIGFzIFJlY3Vyc2l2ZUtleU9mXVxufVxuLyoqXG4gKiBSZXRyaWV2ZXMgc3Vic3RydWN0dXJlIGluIGdpdmVuIG9iamVjdCByZWZlcmVuY2VkIGJ5IGdpdmVuIHNlbGVjdG9yXG4gKiBwYXRoLlxuICogQHBhcmFtIHNlbGVjdG9yIC0gU2VsZWN0b3IgcGF0aC5cbiAqIEBwYXJhbSBzY29wZSAtIE9iamVjdCB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgb2JqZWN0IHRvIGNvbmZpZ3VyZSBldmFsdWF0aW9uLlxuICogQHBhcmFtIG9wdGlvbnMuY29udGV4dFJlcGxhY2VtZW50cyAtIENvbmZpZ3VyYXRpb24gaG93IHRvIHJlcGxhY2UgXCJ0aGlzXCJcbiAqIGFuZCBcInRoaXNQYXJlbnRcIiBrZXl3b3JkcyBpbiBzZWxlY3RvcnMuXG4gKiBAcGFyYW0gb3B0aW9ucy5kZWxpbWl0ZXIgLSBEZWxpbWl0ZXIgdG8gZGVsaW1pdCBnaXZlbiBzZWxlY3RvciBjb21wb25lbnRzLlxuICogQHBhcmFtIG9wdGlvbnMuc2tpcE1pc3NpbmdMZXZlbCAtIEluZGljYXRlcyB0byBza2lwIG1pc3NpbmcgbGV2ZWwgaW4gZ2l2ZW5cbiAqIHBhdGguXG4gKiBAcmV0dXJucyBEZXRlcm1pbmVkIHN1YiBzdHJ1Y3R1cmUgb2YgZ2l2ZW4gZGF0YSBvciBcInVuZGVmaW5lZFwiLlxuICovXG5leHBvcnQgY29uc3QgZXZhbHVhdGVTZWxlY3RvciA9IDxUeXBlLCBTY29wZVR5cGUgZXh0ZW5kcyBCYXNpY1Njb3BlVHlwZT4oXG4gICAgc2VsZWN0b3I6IFNlbGVjdG9yPFNjb3BlVHlwZT4sXG4gICAgc2NvcGU6IFNjb3BlVHlwZSA9IHt9IGFzIFNjb3BlVHlwZSxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM8U2NvcGVUeXBlPj4gPSB7fVxuKTogVHlwZSA9PiB7XG4gICAgY29uc3QgW2xhc3RPYmplY3QsIGxhc3RLZXldID1cbiAgICAgICAgZXZhbHVhdGVTZWxlY3RvclVudGlsTGFzdE9iamVjdChzZWxlY3Rvciwgc2NvcGUsIG9wdGlvbnMpXG5cbiAgICBpZiAoKGxhc3RLZXkgYXMgdW5rbm93biBhcyBzdHJpbmcpID09PSAnJylcbiAgICAgICAgcmV0dXJuIHNjb3BlIGFzIHVua25vd24gYXMgVHlwZVxuXG4gICAgaWYgKGlzRnVuY3Rpb24obGFzdEtleSkpXG4gICAgICAgIHJldHVybiBsYXN0S2V5KGxhc3RPYmplY3QpIGFzIFR5cGVcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobGFzdE9iamVjdCwgbGFzdEtleSkpXG4gICAgICAgIHJldHVybiAobGFzdE9iamVjdCBhcyBNYXBwaW5nPFR5cGU+KVtsYXN0S2V5XVxuXG4gICAgcmV0dXJuIG9wdGlvbnMuc2tpcE1pc3NpbmdMZXZlbCA/XG4gICAgICAgIGxhc3RPYmplY3QgYXMgdW5rbm93biBhcyBUeXBlIDpcbiAgICAgICAgdW5kZWZpbmVkIGFzIFR5cGVcbn1cblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlQ29uZGl0aW9uID0gPFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlPihcbiAgICBjb25kaXRpb246IENvbmRpdGlvbixcbiAgICBzY29wZTogU2NvcGVUeXBlLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8T3B0aW9uczxTY29wZVR5cGU+PlxuKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgdmFsdWUxID0gZXZhbHVhdGVFeHByZXNzaW9uKGNvbmRpdGlvbi52YWx1ZTEsIHNjb3BlLCBvcHRpb25zKVxuICAgIGNvbnN0IHZhbHVlMiA9IGV2YWx1YXRlRXhwcmVzc2lvbihjb25kaXRpb24udmFsdWUyLCBzY29wZSwgb3B0aW9ucylcblxuICAgIHN3aXRjaCAoY29uZGl0aW9uLiRjb21wYXJhdG9yKSB7XG4gICAgY2FzZSAnPT0nOlxuICAgICAgICByZXR1cm4gZXF1YWxzKHZhbHVlMSwgdmFsdWUyKSBhcyBib29sZWFuXG4gICAgY2FzZSAnIT0nOlxuICAgICAgICByZXR1cm4gIWVxdWFscyh2YWx1ZTEsIHZhbHVlMilcbiAgICBjYXNlICc8JzpcbiAgICAgICAgcmV0dXJuICh2YWx1ZTEgYXMgbnVtYmVyKSA8ICh2YWx1ZTIgYXMgbnVtYmVyKVxuICAgIGNhc2UgJzw9JzpcbiAgICAgICAgcmV0dXJuICh2YWx1ZTEgYXMgbnVtYmVyKSA8PSAodmFsdWUyIGFzIG51bWJlcilcbiAgICBjYXNlICc+JzpcbiAgICAgICAgcmV0dXJuICh2YWx1ZTEgYXMgbnVtYmVyKSA+ICh2YWx1ZTIgYXMgbnVtYmVyKVxuICAgIGNhc2UgJz49JzpcbiAgICAgICAgcmV0dXJuICh2YWx1ZTEgYXMgbnVtYmVyKSA+PSAodmFsdWUyIGFzIG51bWJlcilcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBldmFsdWF0ZVVuYXJ5T3BlcmF0aW9uID0gPFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlPihcbiAgICBvcGVyYXRpb246IFVuYXJ5T3BlcmF0aW9uLFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBvcGVyYW5kID0gZXZhbHVhdGVFeHByZXNzaW9uKG9wZXJhdGlvbi5vcGVyYW5kLCBzY29wZSwgb3B0aW9ucylcblxuICAgIHN3aXRjaCAob3BlcmF0aW9uLiRvcGVyYXRvcikge1xuICAgIGNhc2UgJyEnOlxuICAgICAgICByZXR1cm4gIW9wZXJhbmRcbiAgICBjYXNlICchISc6XG4gICAgICAgIHJldHVybiBCb29sZWFuKG9wZXJhbmQpXG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgZXZhbHVhdGVPcGVyYXRpb24gPSA8U2NvcGVUeXBlIGV4dGVuZHMgQmFzaWNTY29wZVR5cGU+KFxuICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uLFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBudW1iZXIgPT4ge1xuICAgIGNvbnN0IG9wZXJhbmQxID0gZXZhbHVhdGVFeHByZXNzaW9uKG9wZXJhdGlvbi5vcGVyYW5kMSwgc2NvcGUsIG9wdGlvbnMpXG4gICAgY29uc3Qgb3BlcmFuZDIgPSBldmFsdWF0ZUV4cHJlc3Npb24ob3BlcmF0aW9uLm9wZXJhbmQyLCBzY29wZSwgb3B0aW9ucylcblxuICAgIHN3aXRjaCAob3BlcmF0aW9uLiRvcGVyYXRvcikge1xuICAgIGNhc2UgJysnOlxuICAgICAgICByZXR1cm4gb3BlcmFuZDEgKyBvcGVyYW5kMlxuICAgIGNhc2UgJy0nOlxuICAgICAgICByZXR1cm4gb3BlcmFuZDEgLSBvcGVyYW5kMlxuICAgIGNhc2UgJyonOlxuICAgICAgICByZXR1cm4gb3BlcmFuZDEgKiBvcGVyYW5kMlxuICAgIGNhc2UgJyoqJzpcbiAgICAgICAgcmV0dXJuIG9wZXJhbmQxICoqIG9wZXJhbmQyXG4gICAgY2FzZSAnLyc6XG4gICAgICAgIHJldHVybiBvcGVyYW5kMSAvIG9wZXJhbmQyXG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgZXZhbHVhdGVPcHRpb25hbFRoZW4gPSA8VHlwZSwgU2NvcGVUeXBlIGV4dGVuZHMgQmFzaWNTY29wZVR5cGU+KFxuICAgIGV4cHJlc3Npb246IElmRXhwcmVzc2lvbjxUeXBlPiB8IENhc2VFeHByZXNzaW9uPFR5cGU+LFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBUeXBlID0+IHtcbiAgICBpZiAodHlwZW9mIGV4cHJlc3Npb24udGhlbiA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQgYXMgVHlwZVxuXG4gICAgcmV0dXJuIGV2YWx1YXRlRXhwcmVzc2lvbihleHByZXNzaW9uLnRoZW4sIHNjb3BlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgZXZhbHVhdGVJZiA9IDxUeXBlLCBTY29wZVR5cGUgZXh0ZW5kcyBCYXNpY1Njb3BlVHlwZT4oXG4gICAgZXhwcmVzc2lvbjogSWZFeHByZXNzaW9uPFR5cGU+LFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBUeXBlID0+IHtcbiAgICBpZiAoZXZhbHVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24uJGlmLCBzY29wZSwgb3B0aW9ucykpXG4gICAgICAgIHJldHVybiBldmFsdWF0ZU9wdGlvbmFsVGhlbihleHByZXNzaW9uLCBzY29wZSwgb3B0aW9ucylcblxuICAgIHJldHVybiB0eXBlb2YgZXhwcmVzc2lvbi5lbHNlID09PSAndW5kZWZpbmVkJyA/XG4gICAgICAgIHVuZGVmaW5lZCBhcyBUeXBlIDpcbiAgICAgICAgZXZhbHVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24uZWxzZSwgc2NvcGUpXG59XG5cbmV4cG9ydCBjb25zdCBldmFsdWF0ZVN3aXRjaCA9IDxUeXBlLCBTY29wZVR5cGUgZXh0ZW5kcyBCYXNpY1Njb3BlVHlwZT4oXG4gICAgZXhwcmVzc2lvbjogU3dpdGNoRXhwcmVzc2lvbjxUeXBlPixcbiAgICBzY29wZTogU2NvcGVUeXBlLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8T3B0aW9uczxTY29wZVR5cGU+PlxuKTogVHlwZSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmFsdWF0ZUV4cHJlc3Npb24oZXhwcmVzc2lvbi4kc3dpdGNoLCBzY29wZSlcblxuICAgIGZvciAoY29uc3QgY2FzZUV4cHJlc3Npb24gb2YgZXhwcmVzc2lvbi5jYXNlRXhwcmVzc2lvbnMpXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gZXZhbHVhdGVFeHByZXNzaW9uKGNhc2VFeHByZXNzaW9uLiRjYXNlLCBzY29wZSwgb3B0aW9ucykpXG4gICAgICAgICAgICByZXR1cm4gZXZhbHVhdGVPcHRpb25hbFRoZW4oY2FzZUV4cHJlc3Npb24sIHNjb3BlLCBvcHRpb25zKVxuXG4gICAgaWYgKHR5cGVvZiBleHByZXNzaW9uLmRlZmF1bHQgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24uZGVmYXVsdCwgc2NvcGUsIG9wdGlvbnMpXG5cbiAgICByZXR1cm4gdW5kZWZpbmVkIGFzIFR5cGVcbn1cblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlQW5kID0gPFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlPihcbiAgICBleHByZXNzaW9uOiBBbmRFeHByZXNzaW9uLFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBib29sZWFuID0+IHtcbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBleHByZXNzaW9uLiRhbmQpXG4gICAgICAgIGlmICghZXZhbHVhdGVFeHByZXNzaW9uKGNvbmRpdGlvbiwgc2NvcGUsIG9wdGlvbnMpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZXZhbHVhdGVPciA9IDxTY29wZVR5cGUgZXh0ZW5kcyBCYXNpY1Njb3BlVHlwZT4oXG4gICAgZXhwcmVzc2lvbjogT3JFeHByZXNzaW9uLFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBib29sZWFuID0+IHtcbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBleHByZXNzaW9uLiRvcilcbiAgICAgICAgaWYgKGV2YWx1YXRlRXhwcmVzc2lvbihjb25kaXRpb24sIHNjb3BlLCBvcHRpb25zKSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG5cbiAgICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlQ29uY2F0ID0gPFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlPihcbiAgICBleHByZXNzaW9uOiBDb25jYXRFeHByZXNzaW9uLFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBBcnJheTx1bmtub3duPiB8IHN0cmluZyA9PiB7XG4gICAgbGV0IHJlc3VsdDogQXJyYXk8dW5rbm93bj4gPSBbXVxuICAgIGxldCBpc0FycmF5ID0gZmFsc2VcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZXhwcmVzc2lvbi4kY29uY2F0KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZhbHVhdGVFeHByZXNzaW9uKGl0ZW0sIHNjb3BlLCBvcHRpb25zKVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAgICAgICBpc0FycmF5ID0gdHJ1ZVxuXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQodmFsdWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzQXJyYXkgPyByZXN1bHQgOiByZXN1bHQuam9pbignJylcbn1cblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlTWFwcGluZyA9IDxTY29wZVR5cGUgZXh0ZW5kcyBCYXNpY1Njb3BlVHlwZT4oXG4gICAgZXhwcmVzc2lvbjogTWFwcGluZ0V4cHJlc3Npb24sXG4gICAgc2NvcGU6IFNjb3BlVHlwZSxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM8U2NvcGVUeXBlPj5cbik6IEFycmF5PE1hcHBpbmc8dW5rbm93bj4+ID0+IHtcbiAgICBjb25zdCBnaXZlbkRhdGEgPSBldmFsdWF0ZUV4cHJlc3Npb24oZXhwcmVzc2lvbi5kYXRhLCBzY29wZSwgb3B0aW9ucylcblxuICAgIGxldCBub3JtYWxpemVkR2l2ZW5EYXRhOiBBcnJheTxNYXBwaW5nPHVua25vd24+PiA9IFtdXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZ2l2ZW5EYXRhKSlcbiAgICAgICAgbm9ybWFsaXplZEdpdmVuRGF0YSA9IGdpdmVuRGF0YVxuICAgIGVsc2VcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZ2l2ZW5EYXRhKSlcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRHaXZlbkRhdGEucHVzaCh7Li4udmFsdWUsICRrZXk6IGtleX0pXG5cbiAgICBjb25zdCByZXN1bHQ6IEFycmF5PE1hcHBpbmc8dW5rbm93bj4+ID0gW11cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygbm9ybWFsaXplZEdpdmVuRGF0YSkge1xuICAgICAgICBjb25zdCB2YWx1ZTogTWFwcGluZzx1bmtub3duPiA9IHt9XG4gICAgICAgIGZvciAoY29uc3QgW3NvdXJjZU5hbWUsIHRhcmdldE5hbWVdIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgICAgICAgICAgZXhwcmVzc2lvbi4kbWFwcGluZ1xuICAgICAgICApKVxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdGVtLCBzb3VyY2VOYW1lKSlcbiAgICAgICAgICAgICAgICAodmFsdWVbdGFyZ2V0TmFtZSBhcyBzdHJpbmddKSA9IGl0ZW1bc291cmNlTmFtZV1cblxuICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBjb25zdCBldmFsdWF0ZUFycmF5Q29udGFpbnMgPSA8U2NvcGVUeXBlIGV4dGVuZHMgQmFzaWNTY29wZVR5cGU+KFxuICAgIGV4cHJlc3Npb246IEFycmF5Q29udGFpbnNFeHByZXNzaW9uLFxuICAgIHNjb3BlOiBTY29wZVR5cGUsXG4gICAgb3B0aW9uczogUGFydGlhbDxPcHRpb25zPFNjb3BlVHlwZT4+XG4pOiBib29sZWFuID0+IHtcbiAgICBsZXQgYXJyYXk6IHVua25vd24gPSBzY29wZVxuXG4gICAgaWYgKGV4cHJlc3Npb24uJGFycmF5Q29udGFpbnMudGFyZ2V0ICE9IG51bGwpXG4gICAgICAgIGFycmF5ID0gZXZhbHVhdGVFeHByZXNzaW9uKFxuICAgICAgICAgICAgZXhwcmVzc2lvbi4kYXJyYXlDb250YWlucy50YXJnZXQsIHNjb3BlLCBvcHRpb25zXG4gICAgICAgIClcblxuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgZXZhbHVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24uJGFycmF5Q29udGFpbnMudmFsdWUsIHNjb3BlLCBvcHRpb25zKVxuICAgIGNvbnN0IGtleSA9XG4gICAgICAgIGV2YWx1YXRlRXhwcmVzc2lvbihleHByZXNzaW9uLiRhcnJheUNvbnRhaW5zLmtleSwgc2NvcGUsIG9wdGlvbnMpXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXkpKVxuICAgICAgICByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiBhcnJheS5zb21lKChpdGVtOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICBpc1BsYWluT2JqZWN0KGl0ZW0pICYmXG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwga2V5KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IGl0ZW0gYXMgTWFwcGluZzx1bmtub3duPlxuICAgICAgICAgICAgcmV0dXJuIHJlY29yZFtrZXldID09PSB2YWx1ZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtID09PSB2YWx1ZVxuICAgIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmFsdWF0ZUV4cHJlc3Npb248VHlwZSwgU2NvcGVUeXBlIGV4dGVuZHMgQmFzaWNTY29wZVR5cGU+KFxuICAgIGV4cHJlc3Npb246IEV4cHJlc3Npb248VHlwZSwgU2NvcGVUeXBlPixcbiAgICBzY29wZTogU2NvcGVUeXBlID0ge30gYXMgU2NvcGVUeXBlLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8T3B0aW9uczxTY29wZVR5cGU+PiA9IHt9XG4pOiBUeXBlIHtcbiAgICBpZiAoaXNTZWxlY3RvcihleHByZXNzaW9uKSlcbiAgICAgICAgcmV0dXJuIGV2YWx1YXRlU2VsZWN0b3IoZXhwcmVzc2lvbi4kc2VsZWN0LCBzY29wZSwgb3B0aW9ucylcblxuXG4gICAgaWYgKGlzQ29uZGl0aW9uKGV4cHJlc3Npb24pKVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVDb25kaXRpb24oZXhwcmVzc2lvbiwgc2NvcGUsIG9wdGlvbnMpIGFzIFR5cGVcblxuXG4gICAgaWYgKGlzVW5hcnlPcGVyYXRpb24oZXhwcmVzc2lvbikpXG4gICAgICAgIHJldHVybiBldmFsdWF0ZVVuYXJ5T3BlcmF0aW9uKGV4cHJlc3Npb24sIHNjb3BlLCBvcHRpb25zKSBhcyBUeXBlXG5cbiAgICBpZiAoaXNPcGVyYXRpb24oZXhwcmVzc2lvbikpXG4gICAgICAgIHJldHVybiBldmFsdWF0ZU9wZXJhdGlvbihleHByZXNzaW9uLCBzY29wZSwgb3B0aW9ucykgYXMgVHlwZVxuXG5cbiAgICBpZiAoaXNPckV4cHJlc3Npb24oZXhwcmVzc2lvbikpXG4gICAgICAgIHJldHVybiBldmFsdWF0ZU9yKGV4cHJlc3Npb24sIHNjb3BlLCBvcHRpb25zKSBhcyBUeXBlXG5cbiAgICBpZiAoaXNBbmRFeHByZXNzaW9uKGV4cHJlc3Npb24pKVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVBbmQoZXhwcmVzc2lvbiwgc2NvcGUsIG9wdGlvbnMpIGFzIFR5cGVcblxuICAgIGlmIChpc0NvbmNhdEV4cHJlc3Npb24oZXhwcmVzc2lvbikpXG4gICAgICAgIHJldHVybiBldmFsdWF0ZUNvbmNhdChleHByZXNzaW9uLCBzY29wZSwgb3B0aW9ucykgYXMgVHlwZVxuXG4gICAgaWYgKGlzTWFwcGluZ0V4cHJlc3Npb24oZXhwcmVzc2lvbikpXG4gICAgICAgIHJldHVybiBldmFsdWF0ZU1hcHBpbmcoZXhwcmVzc2lvbiwgc2NvcGUsIG9wdGlvbnMpIGFzIFR5cGVcblxuXG4gICAgaWYgKGlzSWZFeHByZXNzaW9uKGV4cHJlc3Npb24pKVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVJZihleHByZXNzaW9uLCBzY29wZSwgb3B0aW9ucylcblxuICAgIGlmIChpc1N3aXRjaEV4cHJlc3Npb24oZXhwcmVzc2lvbikpXG4gICAgICAgIHJldHVybiBldmFsdWF0ZVN3aXRjaChleHByZXNzaW9uLCBzY29wZSwgb3B0aW9ucylcblxuICAgIGlmIChpc0FycmF5Q29udGFpbnNFeHByZXNzaW9uKGV4cHJlc3Npb24pKVxuICAgICAgICByZXR1cm4gZXZhbHVhdGVBcnJheUNvbnRhaW5zKGV4cHJlc3Npb24sIHNjb3BlLCBvcHRpb25zKSBhcyBUeXBlXG5cblxuICAgIHJldHVybiBleHByZXNzaW9uXG59XG5cbmV4cG9ydCBkZWZhdWx0IGV2YWx1YXRlRXhwcmVzc2lvblxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQ0EsU0FBUSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhO0FBRW5ELFNBQ0ksZUFBZSxFQUNmLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLHlCQUF5QjtBQUc3QixPQUFPLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzRCxPQUFPLE1BQU0sb0JBQW9CLEdBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUM7QUFFcEQsT0FBTyxNQUFNLGVBQWUsR0FBRztFQUMzQixnQkFBZ0IsRUFBRSxLQUFLO0VBQ3ZCLG1CQUFtQixFQUFFLENBQUMsQ0FBQztFQUN2QixTQUFTLEVBQUU7QUFDZixDQUFDO0FBRUQsTUFBTSwyQkFBMkIsR0FBSSxRQUF1QixJQUFLO0VBQzdELE1BQU0sSUFBaUMsR0FBRyxFQUFFO0VBQzVDO0VBQ0EsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7SUFDNUIsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNuRCxJQUFJLHNCQUFzQixHQUFHLENBQUMsRUFDMUIsSUFBSSxDQUFDLElBQUksQ0FB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
@@ -1 +1,97 @@
1
- "use strict";if("undefined"!=typeof module&&null!==module&&"undefined"!==eval("typeof require")&&null!==eval("require")&&"main"in eval("require")&&"undefined"!==eval("typeof require.main")&&null!==eval("require.main")){var ORIGINAL_MAIN_MODULE=module;module!==eval("require.main")&&"paths"in module&&"paths"in eval("require.main")&&"undefined"!=typeof __dirname&&null!==__dirname&&(module.paths=eval("require.main.paths").concat(module.paths.filter(function(path){return eval("require.main.paths").includes(path)})))}if(null==window)var window="undefined"==typeof global||null===global?{}:global;!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var n=r();for(var t in n)("object"==typeof exports?exports:e)[t]=n[t]}}(this,function(){return function(){var e={d:function(r,n){for(var t in n)e.o(n,t)&&!e.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:n[t]})},o:function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};function n(e,r){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,r){if(e){if("string"==typeof e)return t(e,r);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function t(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=Array(r);n<r;n++)t[n]=e[n];return t}e.r(r),e.d(r,{viewArrayAsScope:function(){return o},viewObjectAsScope:function(){return i}});var o=function(e,r,t){return new Proxy(e,{ownKeys:function(e){return Reflect.ownKeys(e)},get:function(e,o){for(var u,a=n(e);!(u=a()).done;)for(var l,f=u.value,c=n(t);!(l=c()).done;){if(f[l.value]===o)return i(f,r,t)}},set:function(e,r,o){for(var i,u=0,a=n(e);!(i=a()).done;){for(var l,f=i.value,c=n(t);!(l=c()).done;){if(f[l.value]===r)return e[u]=o,!0}u+=1}return!1}})},i=function(e,r,n){return void 0===r&&(r=["children"]),void 0===n&&(n=["name"]),new Proxy(e,{ownKeys:function(e){return Reflect.ownKeys(e)},get:function(e,t){var u=e[t];if(Object.prototype.hasOwnProperty.call(e,t))return r.includes(t)&&Array.isArray(u)?o(u,r,n):null!==u&&"object"==typeof u?i(u,r,n):u},set:function(e,r,n){return!(!Object.prototype.hasOwnProperty.call(e,r)||!Object.prototype.hasOwnProperty.call(e,r))&&(e[r]=n,!0)}})};return r}()});
1
+ // #!/usr/bin/env babel-node
2
+ // -*- coding: utf-8 -*-
3
+ 'use strict';
4
+
5
+ /* !
6
+ region header
7
+ [Project page](https://torben.website/clientnode)
8
+
9
+ Copyright Torben Sickert (info["~at~"]torben.website) 16.12.2012
10
+
11
+ License
12
+ -------
13
+
14
+ This library written by Torben Sickert stands under a creative commons
15
+ naming 3.0 unported license.
16
+ See https://creativecommons.org/licenses/by/3.0/deed.de
17
+ endregion
18
+ */
19
+ import "core-js/modules/es.array.includes.js";
20
+ export const viewArrayAsScope = (data, childrenPropertyNames, propertyReferenceKeys) => new Proxy(data, {
21
+ ownKeys(target) {
22
+ return Reflect.ownKeys(target);
23
+ },
24
+ get(target, name) {
25
+ for (const element of target) for (const key of propertyReferenceKeys) if (element[key] === name) {
26
+ // NOTE: Type[keyof Type]
27
+
28
+ // NOTE: ScopeType[keyof ScopeType]
29
+ // type ScopeValueType = object
30
+
31
+ /*
32
+ eslint-disable
33
+ @typescript-eslint/no-unnecessary-type-arguments
34
+ */
35
+ return viewObjectAsScope(element, childrenPropertyNames, propertyReferenceKeys);
36
+ /*
37
+ eslint-enable
38
+ @typescript-eslint/no-unnecessary-type-arguments
39
+ */
40
+ }
41
+ return undefined;
42
+ },
43
+ set(target, name, value) {
44
+ let index = 0;
45
+ for (const item of target) {
46
+ for (const key of propertyReferenceKeys) if (item[key] === name) {
47
+ target[index] = value;
48
+ return true;
49
+ }
50
+ index += 1;
51
+ }
52
+ return false;
53
+ }
54
+ });
55
+ export const viewObjectAsScope = (data, childrenPropertyNames = ['children'], propertyReferenceKeys = ['name']) => new Proxy(data, {
56
+ ownKeys(target) {
57
+ return Reflect.ownKeys(target);
58
+ },
59
+ get(target, name) {
60
+ const value = target[name];
61
+ if (Object.prototype.hasOwnProperty.call(target, name)) {
62
+ if (childrenPropertyNames.includes(name) && Array.isArray(value)) {
63
+ // NOTE: Type[keyof Type]
64
+
65
+ // NOTE: ScopeType[keyof ScopeType]
66
+
67
+ return viewArrayAsScope(value, childrenPropertyNames, propertyReferenceKeys);
68
+ }
69
+ if (value !== null && typeof value === 'object') {
70
+ // NOTE: Type[keyof Type]
71
+
72
+ // NOTE: ScopeType[keyof ScopeType]
73
+ // type ScopeValueType = object
74
+
75
+ /*
76
+ eslint-disable
77
+ @typescript-eslint/no-unnecessary-type-arguments
78
+ */
79
+ return viewObjectAsScope(value, childrenPropertyNames, propertyReferenceKeys);
80
+ /*
81
+ eslint-enable
82
+ @typescript-eslint/no-unnecessary-type-arguments
83
+ */
84
+ }
85
+ return value;
86
+ }
87
+ return undefined;
88
+ },
89
+ set(target, name, value) {
90
+ if (Object.prototype.hasOwnProperty.call(target, name)) if (Object.prototype.hasOwnProperty.call(target, name)) {
91
+ target[name] = value;
92
+ return true;
93
+ }
94
+ return false;
95
+ }
96
+ });
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cHJlc3Npb24vaGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vICMhL3Vzci9iaW4vZW52IGJhYmVsLW5vZGVcbi8vIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLVxuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtNYXBwaW5nfSBmcm9tICcuLi8nXG5cbmltcG9ydCB0eXBlIHtCYXNpY1Njb3BlVHlwZX0gZnJvbSAnLi90eXBlJ1xuXG5leHBvcnQgY29uc3Qgdmlld0FycmF5QXNTY29wZSA9IDxcbiAgICBUeXBlIGV4dGVuZHMgQXJyYXk8TWFwcGluZzx1bmtub3duPj4sIFNjb3BlVHlwZSBleHRlbmRzIEJhc2ljU2NvcGVUeXBlXG4+KFxuICAgICAgICBkYXRhOiBUeXBlLFxuICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXM6IEFycmF5PHN0cmluZz4sXG4gICAgICAgIHByb3BlcnR5UmVmZXJlbmNlS2V5czogQXJyYXk8c3RyaW5nPlxuICAgICk6IFNjb3BlVHlwZSA9PlxuICAgIG5ldyBQcm94eShkYXRhLCB7XG4gICAgICAgIG93bktleXModGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldClcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KHRhcmdldDogVHlwZSwgbmFtZTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGFyZ2V0KVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHByb3BlcnR5UmVmZXJlbmNlS2V5cylcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRba2V5IGFzIHVua25vd24gYXMgc3RyaW5nXSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogVHlwZVtrZXlvZiBUeXBlXVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBWYWx1ZVR5cGUgPSBNYXBwaW5nPHVua25vd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBTY29wZVR5cGVba2V5b2YgU2NvcGVUeXBlXVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZSBTY29wZVZhbHVlVHlwZSA9IG9iamVjdFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzbGludC1kaXNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtYXJndW1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpZXdPYmplY3RBc1Njb3BlPFZhbHVlVHlwZT4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlSZWZlcmVuY2VLZXlzXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzbGludC1lbmFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBzZXQodGFyZ2V0OiBUeXBlLCBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsIHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgcHJvcGVydHlSZWZlcmVuY2VLZXlzKVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVtrZXkgYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgaXRlbV0gPT09IG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRbaW5kZXhdIGFzIHVua25vd24pID0gdmFsdWVcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDFcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9KSBhcyB1bmtub3duIGFzIFNjb3BlVHlwZVxuXG5leHBvcnQgY29uc3Qgdmlld09iamVjdEFzU2NvcGUgPSA8XG4gICAgVHlwZSBleHRlbmRzIE1hcHBpbmc8dW5rbm93bj4sXG4gICAgU2NvcGVUeXBlIGV4dGVuZHMgQmFzaWNTY29wZVR5cGUgPSBCYXNpY1Njb3BlVHlwZVxuPihcbiAgICAgICAgZGF0YTogVHlwZSxcbiAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eU5hbWVzID0gWydjaGlsZHJlbiddLFxuICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZUtleXMgPSBbJ25hbWUnXVxuICAgICk6IFNjb3BlVHlwZSA9PlxuICAgIG5ldyBQcm94eShkYXRhLCB7XG4gICAgICAgIG93bktleXModGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldClcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0KHRhcmdldDogVHlwZSwgbmFtZTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRhcmdldFtuYW1lIGFzIGtleW9mIFR5cGVdXG5cbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBuYW1lKSkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eU5hbWVzLmluY2x1ZGVzKG5hbWUgYXMgc3RyaW5nKSAmJlxuICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBUeXBlW2tleW9mIFR5cGVdXG4gICAgICAgICAgICAgICAgICAgIHR5cGUgVmFsdWVUeXBlID0gQXJyYXk8TWFwcGluZzx1bmtub3duPj5cbiAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogU2NvcGVUeXBlW2tleW9mIFNjb3BlVHlwZV1cbiAgICAgICAgICAgICAgICAgICAgdHlwZSBTY29wZVZhbHVlVHlwZSA9IEFycmF5PEJhc2ljU2NvcGVUeXBlPlxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2aWV3QXJyYXlBc1Njb3BlPFZhbHVlVHlwZSwgU2NvcGVWYWx1ZVR5cGU+KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblByb3BlcnR5TmFtZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVJlZmVyZW5jZUtleXNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFR5cGVba2V5b2YgVHlwZV1cbiAgICAgICAgICAgICAgICAgICAgdHlwZSBWYWx1ZVR5cGUgPSBNYXBwaW5nPHVua25vd24+XG4gICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFNjb3BlVHlwZVtrZXlvZiBTY29wZVR5cGVdXG4gICAgICAgICAgICAgICAgICAgIC8vIHR5cGUgU2NvcGVWYWx1ZVR5cGUgPSBvYmplY3RcblxuICAgICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgICAgICAgZXNsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLWFyZ3VtZW50c1xuICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlld09iamVjdEFzU2NvcGU8VmFsdWVUeXBlPihcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGFzIFZhbHVlVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuUHJvcGVydHlOYW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UmVmZXJlbmNlS2V5c1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICBlc2xpbnQtZW5hYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1hcmd1bWVudHNcbiAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBzZXQodGFyZ2V0OiBUeXBlLCBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsIHZhbHVlOiBUeXBlW2tleW9mIFR5cGVdKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgbmFtZSkpXG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0YXJnZXQsIG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtuYW1lIGFzIGtleW9mIFR5cGVdID0gdmFsdWVcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9KSBhcyB1bmtub3duIGFzIFNjb3BlVHlwZVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsWUFBWTs7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFrQkEsT0FBTyxNQUFNLGdCQUFnQixHQUFHLENBR3hCLElBQVUsRUFDVixxQkFBb0MsRUFDcEMscUJBQW9DLEtBRXhDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtFQUNaLE9BQU8sQ0FBQyxNQUFZLEVBQUU7SUFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztF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