if(typeof JSON.decycle!=="function"){JSON.decycle=function e(t,f){"use strict";var i=new WeakMap;return function n(t,r){var e;var a;if(f!==undefined){t=f(t)}if(typeof t==="object"&&t!==null&&!(t instanceof Boolean)&&!(t instanceof Date)&&!(t instanceof Number)&&!(t instanceof RegExp)&&!(t instanceof String)){e=i.get(t);if(e!==undefined){return{$ref:e}}i.set(t,r);if(Array.isArray(t)){a=[];t.forEach(function(e,t){a[t]=n(e,r+"["+t+"]")})}else{a={};Object.keys(t).forEach(function(e){a[e]=n(t[e],r+"["+JSON.stringify(e)+"]")})}return a}return t}(t,"$")}}if(typeof JSON.retrocycle!=="function"){JSON.retrocycle=function retrocycle($){"use strict";var px=/^\$(?:\[(?:\d+|"(?:[^\\"\u0000-\u001f]|\\(?:[\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*")\])*$/;(function rez(value){if(value&&typeof value==="object"){if(Array.isArray(value)){value.forEach(function(element,i){if(typeof element==="object"&&element!==null){var path=element.$ref;if(typeof path==="string"&&px.test(path)){value[i]=eval(path)}else{rez(element)}}})}else{Object.keys(value).forEach(function(name){var item=value[name];if(typeof item==="object"&&item!==null){var path=item.$ref;if(typeof path==="string"&&px.test(path)){value[name]=eval(path)}else{rez(item)}}})}}})($);return $}}