diff --git a/backend/.babelrc b/backend/.babelrc index 4146bb7..631b601 100644 --- a/backend/.babelrc +++ b/backend/.babelrc @@ -3,5 +3,12 @@ [ "@babel/preset-env" ] - ] + ], + "env": { + "test": { + "presets": [ + "@babel/preset-env" + ] + } + } } \ No newline at end of file diff --git a/backend/dist/sub-store-parser.loon.min.js b/backend/dist/sub-store-parser.loon.min.js index 975afa4..72fd1ad 100644 --- a/backend/dist/sub-store-parser.loon.min.js +++ b/backend/dist/sub-store-parser.loon.min.js @@ -6,11 +6,11 @@ * ███████║╚██████╔╝██████╔╝ ███████║ ██║ ╚██████╔╝██║ ██║███████╗ * ╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ * Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket! - * @updated: 2022/6/14 23:39:36 - * @version: 1.6 + * @updated: 2022/6/15 23:37:37 + * @version: 2.0 * @author: Peng-YM * @github: https://github.com/Peng-YM/Sub-Store * @documentation: https://www.notion.so/Sub-Store-6259586994d34c11a4ced5c406264b46 */ -!function(){var createModuleFactory=function(t){var e;return function(r){return e||t(e={exports:{},parent:r},e.exports),e.exports}},_$buffer_2=createModuleFactory((function(t,e){(function(t){(function(){"use strict";e.Buffer=r,e.SlowBuffer=function(t){return+t!=t&&(t=0),r.alloc(+t)},e.INSPECT_MAX_BYTES=50;function t(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=r.prototype,e}function r(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return i(t)}return n(t,e,r)}function n(e,n,o){if("string"==typeof e)return function(e,n){if("string"==typeof n&&""!==n||(n="utf8"),!r.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var o=0|c(e,n),i=t(o),a=i.write(e,n);return a!==o&&(i=i.slice(0,a)),i}(e,n);if(ArrayBuffer.isView(e))return a(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(P(e,ArrayBuffer)||e&&P(e.buffer,ArrayBuffer))return function(t,e,n){if(e<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function c(t,e){if(r.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||P(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var n=t.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return I(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return k(t).length;default:if(i)return o?-1:I(t).length;e=(""+e).toLowerCase(),i=!0}}function s(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function f(t,e,n,o,i){if(0===t.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),$(n=+n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=r.from(e,o)),r.isBuffer(e))return 0===e.length?-1:l(t,e,n,o,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):l(t,[e],n,o,i);throw new TypeError("val must be string, number or Buffer")}function l(t,e,r,n,o){var i,a=1,u=t.length,c=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,u/=2,c/=2,r/=2}function s(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(o){var f=-1;for(i=r;iu&&(r=u-c),i=r;i>=0;i--){for(var l=!0,p=0;po&&(n=o):n=o;var i=e.length;n>i/2&&(n=i/2);for(var a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(e,t.length-r),t,r,n)}function g(t,e,r){return 0===e&&r===t.length?_$base64Js_1.fromByteArray(t):_$base64Js_1.fromByteArray(t.slice(e,r))}function m(t,e,r){r=Math.min(t.length,r);for(var n=[],o=e;o239?4:s>223?3:s>191?2:1;if(o+l<=r)switch(l){case 1:s<128&&(f=s);break;case 2:128==(192&(i=t[o+1]))&&(c=(31&s)<<6|63&i)>127&&(f=c);break;case 3:i=t[o+1],a=t[o+2],128==(192&i)&&128==(192&a)&&(c=(15&s)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(f=c);break;case 4:i=t[o+1],a=t[o+2],u=t[o+3],128==(192&i)&&128==(192&a)&&128==(192&u)&&(c=(15&s)<<18|(63&i)<<12|(63&a)<<6|63&u)>65535&&c<1114112&&(f=c)}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),o+=l}return function(t){var e=t.length;if(e<=w)return String.fromCharCode.apply(String,t);for(var r="",n=0;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return E(this,e,r);case"utf8":case"utf-8":return m(this,e,r);case"ascii":return b(this,e,r);case"latin1":case"binary":return A(this,e,r);case"base64":return g(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},r.prototype.toLocaleString=r.prototype.toString,r.prototype.equals=function(t){if(!r.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===r.compare(this,t)},r.prototype.inspect=function(){var t="",r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),""},r.prototype.compare=function(t,e,n,o,i){if(P(t,Uint8Array)&&(t=r.from(t,t.offset,t.byteLength)),!r.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===o&&(o=0),void 0===i&&(i=this.length),e<0||n>t.length||o<0||i>this.length)throw new RangeError("out of range index");if(o>=i&&e>=n)return 0;if(o>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(o>>>=0),u=(n>>>=0)-(e>>>=0),c=Math.min(a,u),s=this.slice(o,i),f=t.slice(e,n),l=0;l>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-e;if((void 0===r||r>o)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return p(this,t,e,r);case"utf8":case"utf-8":return h(this,t,e,r);case"ascii":return _(this,t,e,r);case"latin1":case"binary":return d(this,t,e,r);case"base64":return v(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return y(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var w=4096;function b(t,e,r){var n="";r=Math.min(t.length,r);for(var o=e;oo)&&(r=o);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function x(t,e,n,o,i,a){if(!r.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n,o,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function R(t,e,r,n,o){return e=+e,r>>>=0,o||L(t,0,r,4),_$ieee754_3.write(t,e,r,n,23,4),r+4}function T(t,e,r,n,o){return e=+e,r>>>=0,o||L(t,0,r,8),_$ieee754_3.write(t,e,r,n,52,8),r+8}r.prototype.slice=function(t,e){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e>>=0,e>>>=0,r||O(t,e,this.length);for(var n=this[t],o=1,i=0;++i>>=0,e>>>=0,r||O(t,e,this.length);for(var n=this[t+--e],o=1;e>0&&(o*=256);)n+=this[t+--e]*o;return n},r.prototype.readUInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),this[t]},r.prototype.readUInt16LE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]|this[t+1]<<8},r.prototype.readUInt16BE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]<<8|this[t+1]},r.prototype.readUInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},r.prototype.readUInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},r.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||O(t,e,this.length);for(var n=this[t],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*e)),n},r.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||O(t,e,this.length);for(var n=e,o=1,i=this[t+--n];n>0&&(o*=256);)i+=this[t+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},r.prototype.readInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},r.prototype.readInt16LE=function(t,e){t>>>=0,e||O(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt16BE=function(t,e){t>>>=0,e||O(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},r.prototype.readInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},r.prototype.readFloatLE=function(t,e){return t>>>=0,e||O(t,4,this.length),_$ieee754_3.read(this,t,!0,23,4)},r.prototype.readFloatBE=function(t,e){return t>>>=0,e||O(t,4,this.length),_$ieee754_3.read(this,t,!1,23,4)},r.prototype.readDoubleLE=function(t,e){return t>>>=0,e||O(t,8,this.length),_$ieee754_3.read(this,t,!0,52,8)},r.prototype.readDoubleBE=function(t,e){return t>>>=0,e||O(t,8,this.length),_$ieee754_3.read(this,t,!1,52,8)},r.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||x(this,t,e,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[e]=255&t;++i>>=0,r>>>=0,n||x(this,t,e,r,Math.pow(2,8*r)-1,0);var o=r-1,i=1;for(this[e+o]=255&t;--o>=0&&(i*=256);)this[e+o]=t/i&255;return e+r},r.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,1,255,0),this[e]=255&t,e+1},r.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},r.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);x(this,t,e,r,o-1,-o)}var i=0,a=1,u=0;for(this[e]=255&t;++i>0)-u&255;return e+r},r.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);x(this,t,e,r,o-1,-o)}var i=r-1,a=1,u=0;for(this[e+i]=255&t;--i>=0&&(a*=256);)t<0&&0===u&&0!==this[e+i+1]&&(u=1),this[e+i]=(t/a>>0)-u&255;return e+r},r.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},r.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},r.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeFloatLE=function(t,e,r){return R(this,t,e,!0,r)},r.prototype.writeFloatBE=function(t,e,r){return R(this,t,e,!1,r)},r.prototype.writeDoubleLE=function(t,e,r){return T(this,t,e,!0,r)},r.prototype.writeDoubleBE=function(t,e,r){return T(this,t,e,!1,r)},r.prototype.copy=function(t,e,n,o){if(!r.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),o||0===o||(o=this.length),e>=t.length&&(e=t.length),e||(e=0),o>0&&o=this.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),t.length-e=0;--a)t[a+e]=this[a+n];else Uint8Array.prototype.set.call(t,this.subarray(n,o),e);return i},r.prototype.fill=function(t,e,n,o){if("string"==typeof t){if("string"==typeof e?(o=e,e=0,n=this.length):"string"==typeof n&&(o=n,n=this.length),void 0!==o&&"string"!=typeof o)throw new TypeError("encoding must be a string");if("string"==typeof o&&!r.isEncoding(o))throw new TypeError("Unknown encoding: "+o);if(1===t.length){var i=t.charCodeAt(0);("utf8"===o&&i<128||"latin1"===o)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function k(t){return _$base64Js_1.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(C,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function N(t,e,r,n){for(var o=0;o=e.length||o>=t.length);++o)e[o+r]=t[o];return o}function P(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function $(t){return t!=t}}).call(this)}).call(this,_$buffer_2({}).Buffer)})),_$openApi_52={};function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ownKeys(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread(t){for(var e=1;e=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:S(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function asyncGeneratorStep(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}function _asyncToGenerator(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){asyncGeneratorStep(i,n,o,a,u,"next",t)}function u(t){asyncGeneratorStep(i,n,o,a,u,"throw",t)}a(void 0)}))}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"untitled",debug=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_classCallCheck(this,OpenAPI),this.name=name,this.debug=debug,this.http=HTTP(),this.env=ENV(),this.node=function(){if(isNode){var fs=eval("require('fs')");return{fs:fs}}return null}(),this.initCache();var delay=function(t,e){return new Promise((function(r){setTimeout(r.bind(null,e),t)}))},_ref;Promise.prototype.delay=(_ref=_asyncToGenerator(_regeneratorRuntime().mark((function t(e){var r;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this;case 2:return r=t.sent,t.next=5,delay(e,r);case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t,this)}))),function(t){return _ref.apply(this,arguments)})}return _createClass(OpenAPI,[{key:"initCache",value:function(){if(isQX&&(this.cache=JSON.parse($prefs.valueForKey(this.name)||"{}")),(isLoon||isSurge)&&(this.cache=JSON.parse($persistentStore.read(this.name)||"{}")),isNode){var t="root.json";this.node.fs.existsSync(t)||this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.root={},t="".concat(this.name,".json"),this.node.fs.existsSync(t)?this.cache=JSON.parse(this.node.fs.readFileSync("".concat(this.name,".json"))):(this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.cache={})}}},{key:"persistCache",value:function(){var t=JSON.stringify(this.cache,null,2);isQX&&$prefs.setValueForKey(t,this.name),(isLoon||isSurge)&&$persistentStore.write(t,this.name),isNode&&(this.node.fs.writeFileSync("".concat(this.name,".json"),t,{flag:"w"},(function(t){return console.log(t)})),this.node.fs.writeFileSync("root.json",JSON.stringify(this.root,null,2),{flag:"w"},(function(t){return console.log(t)})))}},{key:"write",value:function(t,e){if(this.log("SET ".concat(e)),-1!==e.indexOf("#")){if(e=e.substr(1),isSurge||isLoon)return $persistentStore.write(t,e);if(isQX)return $prefs.setValueForKey(t,e);isNode&&(this.root[e]=t)}else this.cache[e]=t;this.persistCache()}},{key:"read",value:function(t){return this.log("READ ".concat(t)),-1===t.indexOf("#")?this.cache[t]:(t=t.substr(1),isSurge||isLoon?$persistentStore.read(t):isQX?$prefs.valueForKey(t):isNode?this.root[t]:void 0)}},{key:"delete",value:function(t){if(this.log("DELETE ".concat(t)),-1!==t.indexOf("#")){if(t=t.substr(1),isSurge||isLoon)return $persistentStore.write(null,t);if(isQX)return $prefs.removeValueForKey(t);isNode&&delete this.root[t]}else delete this.cache[t];this.persistCache()}},{key:"notify",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n["open-url"],i=n["media-url"];if(isQX&&$notify(t,e,r,n),isSurge&&$notification.post(t,e,r+"".concat(i?"\n\u591a\u5a92\u4f53:"+i:""),{url:o}),isLoon){var a={};o&&(a.openUrl=o),i&&(a.mediaUrl=i),"{}"===JSON.stringify(a)?$notification.post(t,e,r):$notification.post(t,e,r,a)}if(isNode){var u=r+(o?"\n\u70b9\u51fb\u8df3\u8f6c: ".concat(o):"")+(i?"\n\u591a\u5a92\u4f53: ".concat(i):"");console.log("".concat(t,"\n").concat(e,"\n").concat(u,"\n\n"))}}},{key:"log",value:function(t){this.debug&&console.log("[".concat(this.name,"] LOG: ").concat(t))}},{key:"info",value:function(t){console.log("[".concat(this.name,"] INFO: ").concat(t))}},{key:"error",value:function(t){console.log("[".concat(this.name,"] ERROR: ").concat(t))}},{key:"wait",value:function(t){return new Promise((function(e){return setTimeout(e,t)}))}},{key:"done",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};isQX||isLoon||isSurge?$done(t):isNode&&"undefined"!=typeof $context&&($context.headers=t.headers,$context.statusCode=t.statusCode,$context.body=t.body)}}]),OpenAPI}();function ENV(){return{isQX:isQX,isLoon:isLoon,isSurge:isSurge,isNode:isNode}}function HTTP(){var defaultOptions=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{baseURL:""},_ENV=ENV(),isQX=_ENV.isQX,isLoon=_ENV.isLoon,isSurge=_ENV.isSurge,isNode=_ENV.isNode,methods=["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],URL_REGEX=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;function send(method,options){options="string"==typeof options?{url:options}:options;var baseURL=defaultOptions.baseURL;baseURL&&!URL_REGEX.test(options.url||"")&&(options.url=baseURL?baseURL+options.url:options.url),options=_objectSpread(_objectSpread({},defaultOptions),options);var timeout=options.timeout,events=_objectSpread(_objectSpread({},{onRequest:function(){},onResponse:function(t){return t},onTimeout:function(){}}),options.events),worker,timeoutid;events.onRequest(method,options),isQX?worker=$task.fetch({method:method,url:options.url,headers:options.headers,body:options.body}):(isLoon||isSurge||isNode)&&(worker=new Promise((function(resolve,reject){var request=isNode?eval("require('request')"):$httpClient;request[method.toLowerCase()](options,(function(t,e,r){t?reject(t):resolve({statusCode:e.status||e.statusCode,headers:e.headers,body:r})}))})));var timer=timeout?new Promise((function(t,e){timeoutid=setTimeout((function(){return events.onTimeout(),e("".concat(method," URL: ").concat(options.url," exceeds the timeout ").concat(timeout," ms"))}),timeout)})):null;return(timer?Promise.race([timer,worker]).then((function(t){return clearTimeout(timeoutid),t})):worker).then((function(t){return events.onResponse(t)}))}var http={};return methods.forEach((function(t){return http[t.toLowerCase()]=function(e){return send(t,e)}})),http}_$openApi_52.OpenAPI=OpenAPI;var _$download_48={};function ___typeof_48(t){return(___typeof_48="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ___regeneratorRuntime_48(){___regeneratorRuntime_48=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(x){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof l?e:l,i=Object.create(o.prototype),a=new E(n||[]);return i._invoke=function(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,a),i}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(x){return{type:"throw",arg:x}}}t.wrap=c;var f={};function l(){}function p(){}function h(){}var _={};u(_,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(S([])));v&&v!==e&&r.call(v,o)&&(_=v);var y=h.prototype=l.prototype=Object.create(_);function g(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function m(t,e){var n;this._invoke=function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==___typeof_48(l)&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return f;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,f;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function S(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:S(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __asyncGeneratorStep_48(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}Object.defineProperty(_$download_48,"__esModule",{value:!0}),_$download_48.default=function(t,e){return _download.apply(this,arguments)};var cache=new Map;function _download(){var t;return t=___regeneratorRuntime_48().mark((function t(e,r){var n,o,i;return ___regeneratorRuntime_48().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=(r=r||"Quantumult%20X/1.0.29 (iPhone14,5; iOS 15.4.1)")+e,!cache.has(n)){t.next=4;break}return t.abrupt("return",cache.get(n));case 4:return o=(0,_$openApi_52.HTTP)({headers:{"User-Agent":r}}),i=new Promise((function(t,r){o.get(e).then((function(e){var n=e.body;0===n.replace(/\s/g,"").length?r(new Error("\u8ba2\u9605\u5185\u5bb9\u4e3a\u7a7a\uff01")):t(n)}))})),cache.set(n,i),t.abrupt("return",i);case 8:case"end":return t.stop()}}),t)})),(_download=function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_48(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_48(i,n,o,a,u,"throw",t)}a(void 0)}))}).apply(this,arguments)}var _$utils_50={};Object.defineProperty(_$utils_50,"__esModule",{value:!0}),_$utils_50.isIPv4=function(t){return IPV4_REGEX.test(t)},_$utils_50.isIPv6=function(t){return IPV6_REGEX.test(t)};var IPV4_REGEX=/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$/,IPV6_REGEX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,_$logical_51={};function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r"']/g,P=RegExp(k.source),$=RegExp(N.source),j=/<%-([\s\S]+?)%>/g,F=/<%([\s\S]+?)%>/g,U=/<%=([\s\S]+?)%>/g,M=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,D=/^\w*$/,B=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,H=/[\\^$.*+?()[\]{}|]/g,G=RegExp(H.source),Y=/^\s+/,W=/\s/,K=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,z=/\{\n\/\* \[wrapped with (.+)\] \*/,J=/,? & /,q=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,X=/[()=,{}\[\]\/\s]/,V=/\\(\\)?/g,Q=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Z=/\w*$/,tt=/^[-+]0x[0-9a-f]+$/i,et=/^0b[01]+$/i,rt=/^\[object .+?Constructor\]$/,nt=/^0o[0-7]+$/i,ot=/^(?:0|[1-9]\d*)$/,it=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,at=/($^)/,ut=/['\n\r\u2028\u2029\\]/g,ct="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",st="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ft="["+st+"]",lt="["+ct+"]",pt="\\d+",ht="[a-z\\xdf-\\xf6\\xf8-\\xff]",_t="[^\\ud800-\\udfff"+st+pt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",dt="\\ud83c[\\udffb-\\udfff]",vt="[^\\ud800-\\udfff]",yt="(?:\\ud83c[\\udde6-\\uddff]){2}",gt="[\\ud800-\\udbff][\\udc00-\\udfff]",mt="[A-Z\\xc0-\\xd6\\xd8-\\xde]",wt="(?:"+ht+"|"+_t+")",bt="(?:"+mt+"|"+_t+")",At="(?:"+lt+"|"+dt+")?",Et="[\\ufe0e\\ufe0f]?"+At+"(?:\\u200d(?:"+[vt,yt,gt].join("|")+")[\\ufe0e\\ufe0f]?"+At+")*",St="(?:"+["[\\u2700-\\u27bf]",yt,gt].join("|")+")"+Et,Ot="(?:"+[vt+lt+"?",lt,yt,gt,"[\\ud800-\\udfff]"].join("|")+")",xt=RegExp("['\u2019]","g"),Lt=RegExp(lt,"g"),Rt=RegExp(dt+"(?="+dt+")|"+Ot+Et,"g"),Tt=RegExp([mt+"?"+ht+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[ft,mt,"$"].join("|")+")",bt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[ft,mt+wt,"$"].join("|")+")",mt+"?"+wt+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",mt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",pt,St].join("|"),"g"),Ct=RegExp("[\\u200d\\ud800-\\udfff"+ct+"\\ufe0e\\ufe0f]"),It=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,kt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Nt=-1,Pt={};Pt[b]=Pt[A]=Pt[E]=Pt[S]=Pt[O]=Pt[x]=Pt["[object Uint8ClampedArray]"]=Pt[L]=Pt[R]=!0,Pt[o]=Pt[i]=Pt[m]=Pt[a]=Pt[w]=Pt[u]=Pt[c]=Pt[s]=Pt[l]=Pt[p]=Pt[h]=Pt[_]=Pt[d]=Pt[v]=Pt[g]=!1;var $t={};$t[o]=$t[i]=$t[m]=$t[w]=$t[a]=$t[u]=$t[b]=$t[A]=$t[E]=$t[S]=$t[O]=$t[l]=$t[p]=$t[h]=$t[_]=$t[d]=$t[v]=$t[y]=$t[x]=$t["[object Uint8ClampedArray]"]=$t[L]=$t[R]=!0,$t[c]=$t[s]=$t[g]=!1;var jt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ft=parseFloat,Ut=parseInt,Mt="object"==typeof t&&t&&t.Object===Object&&t,Dt="object"==typeof self&&self&&self.Object===Object&&self,Bt=Mt||Dt||Function("return this")(),Ht="object"==typeof _$lodash_35.exports&&_$lodash_35.exports&&!_$lodash_35.exports.nodeType&&_$lodash_35.exports,Gt=Ht&&_$lodash_35&&!_$lodash_35.nodeType&&_$lodash_35,Yt=Gt&&Gt.exports===Ht,Wt=Yt&&Mt.process,Kt=function(){try{return Gt&&Gt.require&&Gt.require("util").types||Wt&&Wt.binding&&Wt.binding("util")}catch(t){}}(),zt=Kt&&Kt.isArrayBuffer,Jt=Kt&&Kt.isDate,qt=Kt&&Kt.isMap,Xt=Kt&&Kt.isRegExp,Vt=Kt&&Kt.isSet,Qt=Kt&&Kt.isTypedArray;function Zt(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}function te(t,e,r,n){for(var o=-1,i=null==t?0:t.length;++o-1}function ae(t,e,r){for(var n=-1,o=null==t?0:t.length;++n-1;);return r}function Te(t,e){for(var r=t.length;r--&&de(e,t[r],0)>-1;);return r}var Ce=we({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Ie=we({"&":"&","<":"<",">":">",'"':""","'":"'"});function ke(t){return"\\"+jt[t]}function Ne(t){return Ct.test(t)}function Pe(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}function $e(t,e){return function(r){return t(e(r))}}function je(t,e){for(var n=-1,o=t.length,i=0,a=[];++n",""":'"',"'":"'"}),Ge=function t(W){var ct,st=(W=null==W?Bt:Ge.defaults(Bt.Object(),W,Ge.pick(Bt,kt))).Array,ft=W.Date,lt=W.Error,pt=W.Function,ht=W.Math,_t=W.Object,dt=W.RegExp,vt=W.String,yt=W.TypeError,gt=st.prototype,mt=pt.prototype,wt=_t.prototype,bt=W["__core-js_shared__"],At=mt.toString,Et=wt.hasOwnProperty,St=0,Ot=(ct=/[^.]+$/.exec(bt&&bt.keys&&bt.keys.IE_PROTO||""))?"Symbol(src)_1."+ct:"",Rt=wt.toString,Ct=At.call(_t),jt=Bt._,Mt=dt("^"+At.call(Et).replace(H,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Dt=Yt?W.Buffer:void 0,Ht=W.Symbol,Gt=W.Uint8Array,Wt=Dt?Dt.allocUnsafe:void 0,Kt=$e(_t.getPrototypeOf,_t),pe=_t.create,we=wt.propertyIsEnumerable,Ye=gt.splice,We=Ht?Ht.isConcatSpreadable:void 0,Ke=Ht?Ht.iterator:void 0,ze=Ht?Ht.toStringTag:void 0,Je=function(){try{var t=Zo(_t,"defineProperty");return t({},"",{}),t}catch(e){}}(),qe=W.clearTimeout!==Bt.clearTimeout&&W.clearTimeout,Xe=ft&&ft.now!==Bt.Date.now&&ft.now,Ve=W.setTimeout!==Bt.setTimeout&&W.setTimeout,Qe=ht.ceil,Ze=ht.floor,tr=_t.getOwnPropertySymbols,er=Dt?Dt.isBuffer:void 0,rr=W.isFinite,nr=gt.join,or=$e(_t.keys,_t),ir=ht.max,ar=ht.min,ur=ft.now,cr=W.parseInt,sr=ht.random,fr=gt.reverse,lr=Zo(W,"DataView"),pr=Zo(W,"Map"),hr=Zo(W,"Promise"),_r=Zo(W,"Set"),dr=Zo(W,"WeakMap"),vr=Zo(_t,"create"),yr=dr&&new dr,gr={},mr=Oi(lr),wr=Oi(pr),br=Oi(hr),Ar=Oi(_r),Er=Oi(dr),Sr=Ht?Ht.prototype:void 0,Or=Sr?Sr.valueOf:void 0,xr=Sr?Sr.toString:void 0;function Lr(t){if(Ha(t)&&!Ia(t)&&!(t instanceof Ir)){if(t instanceof Cr)return t;if(Et.call(t,"__wrapped__"))return xi(t)}return new Cr(t)}var Rr=function(){function t(){}return function(e){if(!Ba(e))return{};if(pe)return pe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();function Tr(){}function Cr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function Ir(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function kr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function qr(t,e,r,n,i,c){var g,T=1&e,C=2&e,I=4&e;if(r&&(g=i?r(t,n,i,c):r(t)),void 0!==g)return g;if(!Ba(t))return t;var k=Ia(t);if(k){if(g=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&Et.call(t,"index")&&(r.index=t.index,r.input=t.input),r}(t),!T)return yo(t,g)}else{var N=ri(t),P=N==s||N==f;if($a(t))return fo(t,T);if(N==h||N==o||P&&!i){if(g=C||P?{}:oi(t),!T)return C?function(t,e){return go(t,ei(t),e)}(t,function(t,e){return t&&go(e,mu(e),t)}(g,t)):function(t,e){return go(t,ti(t),e)}(t,Wr(g,t))}else{if(!$t[N])return i?t:{};g=function(t,e,r){var n,o,i,c=t.constructor;switch(e){case m:return lo(t);case a:case u:return new c(+t);case w:return function(t,e){var r=e?lo(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}(t,r);case b:case A:case E:case S:case O:case x:case"[object Uint8ClampedArray]":case L:case R:return po(t,r);case l:return new c;case p:case v:return new c(t);case _:return(i=new(o=t).constructor(o.source,Z.exec(o))).lastIndex=o.lastIndex,i;case d:return new c;case y:return n=t,Or?_t(Or.call(n)):{}}}(t,N,T)}}c||(c=new jr);var $=c.get(t);if($)return $;c.set(t,g),za(t)?t.forEach((function(n){g.add(qr(n,e,r,n,t,c))})):Ga(t)&&t.forEach((function(n,o){g.set(o,qr(n,e,r,o,t,c))}));var j=k?void 0:(I?C?Ko:Wo:C?mu:gu)(t);return ee(j||t,(function(n,o){j&&(n=t[o=n]),Hr(g,o,qr(n,e,r,o,t,c))})),g}function Xr(t,e,r){var n=r.length;if(null==t)return!n;for(t=_t(t);n--;){var o=r[n],i=e[o],a=t[o];if(void 0===a&&!(o in t)||!i(a))return!1}return!0}function Vr(t,r,n){if("function"!=typeof t)throw new yt(e);return gi((function(){t.apply(void 0,n)}),r)}function Qr(t,e,r,n){var o=-1,i=ie,a=!0,u=t.length,c=[],s=e.length;if(!u)return c;r&&(e=ue(e,Oe(r))),n?(i=ae,a=!1):e.length>=200&&(i=Le,a=!1,e=new $r(e));t:for(;++o-1},Nr.prototype.set=function(t,e){var r=this.__data__,n=Gr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this},Pr.prototype.clear=function(){this.size=0,this.__data__={hash:new kr,map:new(pr||Nr),string:new kr}},Pr.prototype.delete=function(t){var e=Vo(this,t).delete(t);return this.size-=e?1:0,e},Pr.prototype.get=function(t){return Vo(this,t).get(t)},Pr.prototype.has=function(t){return Vo(this,t).has(t)},Pr.prototype.set=function(t,e){var r=Vo(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this},$r.prototype.add=$r.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},$r.prototype.has=function(t){return this.__data__.has(t)},jr.prototype.clear=function(){this.__data__=new Nr,this.size=0},jr.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},jr.prototype.get=function(t){return this.__data__.get(t)},jr.prototype.has=function(t){return this.__data__.has(t)},jr.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Nr){var n=r.__data__;if(!pr||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Pr(n)}return r.set(t,e),this.size=r.size,this};var Zr=bo(cn),tn=bo(sn,!0);function en(t,e){var r=!0;return Zr(t,(function(t,n,o){return r=!!e(t,n,o)})),r}function rn(t,e,r){for(var n=-1,o=t.length;++n0&&r(u)?e>1?on(u,e-1,r,n,o):ce(o,u):n||(o[o.length]=u)}return o}var an=Ao(),un=Ao(!0);function cn(t,e){return t&&an(t,e,gu)}function sn(t,e){return t&&un(t,e,gu)}function fn(t,e){return oe(e,(function(e){return Ua(t[e])}))}function ln(t,e){for(var r=0,n=(e=ao(e,t)).length;null!=t&&re}function dn(t,e){return null!=t&&Et.call(t,e)}function vn(t,e){return null!=t&&e in _t(t)}function yn(t,e,r){for(var n=r?ae:ie,o=t[0].length,i=t.length,a=i,u=st(i),c=1/0,s=[];a--;){var f=t[a];a&&e&&(f=ue(f,Oe(e))),c=ar(f.length,c),u[a]=!r&&(e||o>=120&&f.length>=120)?new $r(a&&f):void 0}f=t[0];var l=-1,p=u[0];t:for(;++l=u?c:c*("desc"==r[n]?-1:1)}return t.index-e.index}(t,e,r)}));n--;)t[n]=t[n].value;return t}(xn(t,(function(t,r,o){return{criteria:ue(e,(function(e){return e(t)})),index:++n,value:t}})))}function kn(t,e,r){for(var n=-1,o=e.length,i={};++n-1;)u!==t&&Ye.call(u,c,1),Ye.call(t,c,1);return t}function Pn(t,e){for(var r=t?e.length:0,n=r-1;r--;){var o=e[r];if(r==n||o!==i){var i=o;ai(o)?Ye.call(t,o,1):Qn(t,o)}}return t}function $n(t,e){return t+Ze(sr()*(e-t+1))}function jn(t,e){var r="";if(!t||e<1||e>9007199254740991)return r;do{e%2&&(r+=t),(e=Ze(e/2))&&(t+=t)}while(e);return r}function Fn(t,e){return mi(_i(t,e,Yu),t+"")}function Un(t){return Ur(Lu(t))}function Mn(t,e){var r=Lu(t);return Ai(r,Jr(e,0,r.length))}function Dn(t,e,r,n){if(!Ba(t))return t;for(var o=-1,i=(e=ao(e,t)).length,a=i-1,u=t;null!=u&&++oo?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=st(o);++n>>1,a=t[i];null!==a&&!qa(a)&&(r?a<=e:a=200){var s=e?null:Fo(t);if(s)return Fe(s);a=!1,o=Le,c=new $r}else c=e?[]:u;t:for(;++n=n?t:Yn(t,e,r)}var so=qe||function(t){return Bt.clearTimeout(t)};function fo(t,e){if(e)return t.slice();var r=t.length,n=Wt?Wt(r):new t.constructor(r);return t.copy(n),n}function lo(t){var e=new t.constructor(t.byteLength);return new Gt(e).set(new Gt(t)),e}function po(t,e){var r=e?lo(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function ho(t,e){if(t!==e){var r=void 0!==t,n=null===t,o=t==t,i=qa(t),a=void 0!==e,u=null===e,c=e==e,s=qa(e);if(!u&&!s&&!i&&t>e||i&&a&&c&&!u&&!s||n&&a&&c||!r&&c||!o)return 1;if(!n&&!i&&!s&&t1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&ui(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=_t(e);++n-1?o[i?e[a]:a]:void 0}}function Lo(t){return Yo((function(r){var n=r.length,o=n,i=Cr.prototype.thru;for(t&&r.reverse();o--;){var a=r[o];if("function"!=typeof a)throw new yt(e);if(i&&!u&&"wrapper"==Jo(a))var u=new Cr([],!0)}for(o=u?o:n;++o1&&g.reverse(),f&&cu))return!1;var s=i.get(t),f=i.get(e);if(s&&f)return s==e&&f==t;var l=-1,p=!0,h=2&r?new $r:void 0;for(i.set(t,e),i.set(e,t);++l-1&&t%1==0&&t1?"& ":"")+e[n],e=e.join(r>2?", ":" "),t.replace(K,"{\n/* [wrapped with "+e+"] */\n")}(o,function(t,e){return ee(n,(function(r){var n="_."+r[0];e&r[1]&&!ie(t,n)&&t.push(n)})),t.sort()}(function(t){var e=t.match(z);return e?e[1].split(J):[]}(o),r)))}function bi(t){var e=0,r=0;return function(){var n=ur(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Ai(t,e){var r=-1,n=t.length,o=n-1;for(e=void 0===e?n:e;++r1?t[e-1]:void 0;return r="function"==typeof r?(t.pop(),r):void 0,Ki(t,r)}));function Zi(t){var e=Lr(t);return e.__chain__=!0,e}function ta(t,e){return e(t)}var ea=Yo((function(t){var e=t.length,r=e?t[0]:0,n=this.__wrapped__,o=function(e){return zr(e,t)};return!(e>1||this.__actions__.length)&&n instanceof Ir&&ai(r)?((n=n.slice(r,+r+(e?1:0))).__actions__.push({func:ta,args:[o],thisArg:void 0}),new Cr(n,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(o)})),ra=mo((function(t,e,r){Et.call(t,r)?++t[r]:Kr(t,r,1)})),na=xo(Ci),oa=xo(Ii);function ia(t,e){return(Ia(t)?ee:Zr)(t,Xo(e,3))}function aa(t,e){return(Ia(t)?re:tn)(t,Xo(e,3))}var ua=mo((function(t,e,r){Et.call(t,r)?t[r].push(e):Kr(t,r,[e])})),ca=Fn((function(t,e,r){var n=-1,o="function"==typeof e,i=Na(t)?st(t.length):[];return Zr(t,(function(t){i[++n]=o?Zt(e,t,r):gn(t,e,r)})),i})),sa=mo((function(t,e,r){Kr(t,r,e)}));function fa(t,e){return(Ia(t)?ue:xn)(t,Xo(e,3))}var la=mo((function(t,e,r){t[r?0:1].push(e)}),(function(){return[[],[]]})),pa=Fn((function(t,e){if(null==t)return[];var r=e.length;return r>1&&ui(t,e[0],e[1])?e=[]:r>2&&ui(e[0],e[1],e[2])&&(e=[e[0]]),In(t,on(e,1),[])})),ha=Xe||function(){return Bt.Date.now()};function _a(t,e,r){return e=r?void 0:e,Mo(t,128,void 0,void 0,void 0,void 0,e=t&&null==e?t.length:e)}function da(t,r){var n;if("function"!=typeof r)throw new yt(e);return t=eu(t),function(){return--t>0&&(n=r.apply(this,arguments)),t<=1&&(r=void 0),n}}var va=Fn((function(t,e,r){var n=1;if(r.length){var o=je(r,qo(va));n|=32}return Mo(t,n,e,r,o)})),ya=Fn((function(t,e,r){var n=3;if(r.length){var o=je(r,qo(ya));n|=32}return Mo(e,n,t,r,o)}));function ga(t,r,n){var o,i,a,u,c,s,f=0,l=!1,p=!1,h=!0;if("function"!=typeof t)throw new yt(e);function _(e){var r=o,n=i;return o=i=void 0,f=e,u=t.apply(n,r)}function d(t){var e=t-s;return void 0===s||e>=r||e<0||p&&t-f>=a}function v(){var t=ha();if(d(t))return y(t);c=gi(v,function(t){var e=r-(t-s);return p?ar(e,a-(t-f)):e}(t))}function y(t){return c=void 0,h&&o?_(t):(o=i=void 0,u)}function g(){var t=ha(),e=d(t);if(o=arguments,i=this,s=t,e){if(void 0===c)return function(t){return f=t,c=gi(v,r),l?_(t):u}(s);if(p)return so(c),c=gi(v,r),_(s)}return void 0===c&&(c=gi(v,r)),u}return r=nu(r)||0,Ba(n)&&(l=!!n.leading,a=(p="maxWait"in n)?ir(nu(n.maxWait)||0,r):a,h="trailing"in n?!!n.trailing:h),g.cancel=function(){void 0!==c&&so(c),f=0,o=s=i=c=void 0},g.flush=function(){return void 0===c?u:y(ha())},g}var ma=Fn((function(t,e){return Vr(t,1,e)})),wa=Fn((function(t,e,r){return Vr(t,nu(e)||0,r)}));function ba(t,r){if("function"!=typeof t||null!=r&&"function"!=typeof r)throw new yt(e);var n=function(){var e=arguments,o=r?r.apply(this,e):e[0],i=n.cache;if(i.has(o))return i.get(o);var a=t.apply(this,e);return n.cache=i.set(o,a)||i,a};return n.cache=new(ba.Cache||Pr),n}function Aa(t){if("function"!=typeof t)throw new yt(e);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}ba.Cache=Pr;var Ea=uo((function(t,e){var r=(e=1==e.length&&Ia(e[0])?ue(e[0],Oe(Xo())):ue(on(e,1),Oe(Xo()))).length;return Fn((function(n){for(var o=-1,i=ar(n.length,r);++o=e})),Ca=mn(function(){return arguments}())?mn:function(t){return Ha(t)&&Et.call(t,"callee")&&!we.call(t,"callee")},Ia=st.isArray,ka=zt?Oe(zt):function(t){return Ha(t)&&hn(t)==m};function Na(t){return null!=t&&Da(t.length)&&!Ua(t)}function Pa(t){return Ha(t)&&Na(t)}var $a=er||nc,ja=Jt?Oe(Jt):function(t){return Ha(t)&&hn(t)==u};function Fa(t){if(!Ha(t))return!1;var e=hn(t);return e==c||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!Wa(t)}function Ua(t){if(!Ba(t))return!1;var e=hn(t);return e==s||e==f||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Ma(t){return"number"==typeof t&&t==eu(t)}function Da(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function Ba(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Ha(t){return null!=t&&"object"==typeof t}var Ga=qt?Oe(qt):function(t){return Ha(t)&&ri(t)==l};function Ya(t){return"number"==typeof t||Ha(t)&&hn(t)==p}function Wa(t){if(!Ha(t)||hn(t)!=h)return!1;var e=Kt(t);if(null===e)return!0;var r=Et.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&At.call(r)==Ct}var Ka=Xt?Oe(Xt):function(t){return Ha(t)&&hn(t)==_},za=Vt?Oe(Vt):function(t){return Ha(t)&&ri(t)==d};function Ja(t){return"string"==typeof t||!Ia(t)&&Ha(t)&&hn(t)==v}function qa(t){return"symbol"==typeof t||Ha(t)&&hn(t)==y}var Xa=Qt?Oe(Qt):function(t){return Ha(t)&&Da(t.length)&&!!Pt[hn(t)]},Va=Po(On),Qa=Po((function(t,e){return t<=e}));function Za(t){if(!t)return[];if(Na(t))return Ja(t)?De(t):yo(t);if(Ke&&t[Ke])return function(t){for(var e,r=[];!(e=t.next()).done;)r.push(e.value);return r}(t[Ke]());var e=ri(t);return(e==l?Pe:e==d?Fe:Lu)(t)}function tu(t){return t?(t=nu(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function eu(t){var e=tu(t),r=e%1;return e==e?r?e-r:e:0}function ru(t){return t?Jr(eu(t),0,4294967295):0}function nu(t){if("number"==typeof t)return t;if(qa(t))return NaN;if(Ba(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Ba(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Se(t);var r=et.test(t);return r||nt.test(t)?Ut(t.slice(2),r?2:8):tt.test(t)?NaN:+t}function ou(t){return go(t,mu(t))}function iu(t){return null==t?"":Xn(t)}var au=wo((function(t,e){if(li(e)||Na(e))go(e,gu(e),t);else for(var r in e)Et.call(e,r)&&Hr(t,r,e[r])})),uu=wo((function(t,e){go(e,mu(e),t)})),cu=wo((function(t,e,r,n){go(e,mu(e),t,n)})),su=wo((function(t,e,r,n){go(e,gu(e),t,n)})),fu=Yo(zr),lu=Fn((function(t,e){t=_t(t);var r=-1,n=e.length,o=n>2?e[2]:void 0;for(o&&ui(e[0],e[1],o)&&(n=1);++r1),e})),go(t,Ko(t),r),n&&(r=qr(r,7,Ho));for(var o=e.length;o--;)Qn(r,e[o]);return r})),Eu=Yo((function(t,e){return null==t?{}:function(t,e){return kn(t,e,(function(e,r){return _u(t,r)}))}(t,e)}));function Su(t,e){if(null==t)return{};var r=ue(Ko(t),(function(t){return[t]}));return e=Xo(e),kn(t,r,(function(t,r){return e(t,r[0])}))}var Ou=Uo(gu),xu=Uo(mu);function Lu(t){return null==t?[]:xe(t,gu(t))}var Ru=So((function(t,e,r){return e=e.toLowerCase(),t+(r?Tu(e):e)}));function Tu(t){return Fu(iu(t).toLowerCase())}function Cu(t){return(t=iu(t))&&t.replace(it,Ce).replace(Lt,"")}var Iu=So((function(t,e,r){return t+(r?"-":"")+e.toLowerCase()})),ku=So((function(t,e,r){return t+(r?" ":"")+e.toLowerCase()})),Nu=Eo("toLowerCase"),Pu=So((function(t,e,r){return t+(r?"_":"")+e.toLowerCase()})),$u=So((function(t,e,r){return t+(r?" ":"")+Fu(e)})),ju=So((function(t,e,r){return t+(r?" ":"")+e.toUpperCase()})),Fu=Eo("toUpperCase");function Uu(t,e,r){return t=iu(t),void 0===(e=r?void 0:e)?function(t){return It.test(t)}(t)?function(t){return t.match(Tt)||[]}(t):function(t){return t.match(q)||[]}(t):t.match(e)||[]}var Mu=Fn((function(t,e){try{return Zt(t,void 0,e)}catch(r){return Fa(r)?r:new lt(r)}})),Du=Yo((function(t,e){return ee(e,(function(e){e=Si(e),Kr(t,e,va(t[e],t))})),t}));function Bu(t){return function(){return t}}var Hu=Lo(),Gu=Lo(!0);function Yu(t){return t}function Wu(t){return En("function"==typeof t?t:qr(t,1))}var Ku=Fn((function(t,e){return function(r){return gn(r,t,e)}})),zu=Fn((function(t,e){return function(r){return gn(t,r,e)}}));function Ju(t,e,r){var n=gu(e),o=fn(e,n);null!=r||Ba(e)&&(o.length||!n.length)||(r=e,e=t,t=this,o=fn(e,gu(e)));var i=!(Ba(r)&&"chain"in r&&!r.chain),a=Ua(t);return ee(o,(function(r){var n=e[r];t[r]=n,a&&(t.prototype[r]=function(){var e=this.__chain__;if(i||e){var r=t(this.__wrapped__);return(r.__actions__=yo(this.__actions__)).push({func:n,args:arguments,thisArg:t}),r.__chain__=e,r}return n.apply(t,ce([this.value()],arguments))})})),t}function qu(){}var Xu=Io(ue),Vu=Io(ne),Qu=Io(le);function Zu(t){return ci(t)?me(Si(t)):function(t){return function(e){return ln(e,t)}}(t)}var tc=No(),ec=No(!0);function rc(){return[]}function nc(){return!1}var oc,ic=Co((function(t,e){return t+e}),0),ac=jo("ceil"),uc=Co((function(t,e){return t/e}),1),cc=jo("floor"),sc=Co((function(t,e){return t*e}),1),fc=jo("round"),lc=Co((function(t,e){return t-e}),0);return Lr.after=function(t,r){if("function"!=typeof r)throw new yt(e);return t=eu(t),function(){if(--t<1)return r.apply(this,arguments)}},Lr.ary=_a,Lr.assign=au,Lr.assignIn=uu,Lr.assignInWith=cu,Lr.assignWith=su,Lr.at=fu,Lr.before=da,Lr.bind=va,Lr.bindAll=Du,Lr.bindKey=ya,Lr.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ia(t)?t:[t]},Lr.chain=Zi,Lr.chunk=function(t,e,r){e=(r?ui(t,e,r):void 0===e)?1:ir(eu(e),0);var n=null==t?0:t.length;if(!n||e<1)return[];for(var o=0,i=0,a=st(Qe(n/e));oo?0:o+r),(n=void 0===n||n>o?o:eu(n))<0&&(n+=o),n=r>n?0:ru(n);r>>0)?(t=iu(t))&&("string"==typeof e||null!=e&&!Ka(e))&&!(e=Xn(e))&&Ne(t)?co(De(t),0,r):t.split(e,r):[]},Lr.spread=function(t,r){if("function"!=typeof t)throw new yt(e);return r=null==r?0:ir(eu(r),0),Fn((function(e){var n=e[r],o=co(e,0,r);return n&&ce(o,n),Zt(t,this,o)}))},Lr.tail=function(t){var e=null==t?0:t.length;return e?Yn(t,1,e):[]},Lr.take=function(t,e,r){return t&&t.length?Yn(t,0,(e=r||void 0===e?1:eu(e))<0?0:e):[]},Lr.takeRight=function(t,e,r){var n=null==t?0:t.length;return n?Yn(t,(e=n-(e=r||void 0===e?1:eu(e)))<0?0:e,n):[]},Lr.takeRightWhile=function(t,e){return t&&t.length?to(t,Xo(e,3),!1,!0):[]},Lr.takeWhile=function(t,e){return t&&t.length?to(t,Xo(e,3)):[]},Lr.tap=function(t,e){return e(t),t},Lr.throttle=function(t,r,n){var o=!0,i=!0;if("function"!=typeof t)throw new yt(e);return Ba(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),ga(t,r,{leading:o,maxWait:r,trailing:i})},Lr.thru=ta,Lr.toArray=Za,Lr.toPairs=Ou,Lr.toPairsIn=xu,Lr.toPath=function(t){return Ia(t)?ue(t,Si):qa(t)?[t]:yo(Ei(iu(t)))},Lr.toPlainObject=ou,Lr.transform=function(t,e,r){var n=Ia(t),o=n||$a(t)||Xa(t);if(e=Xo(e,4),null==r){var i=t&&t.constructor;r=o?n?new i:[]:Ba(t)&&Ua(i)?Rr(Kt(t)):{}}return(o?ee:cn)(t,(function(t,n,o){return e(r,t,n,o)})),r},Lr.unary=function(t){return _a(t,1)},Lr.union=Hi,Lr.unionBy=Gi,Lr.unionWith=Yi,Lr.uniq=function(t){return t&&t.length?Vn(t):[]},Lr.uniqBy=function(t,e){return t&&t.length?Vn(t,Xo(e,2)):[]},Lr.uniqWith=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?Vn(t,void 0,e):[]},Lr.unset=function(t,e){return null==t||Qn(t,e)},Lr.unzip=Wi,Lr.unzipWith=Ki,Lr.update=function(t,e,r){return null==t?t:Zn(t,e,io(r))},Lr.updateWith=function(t,e,r,n){return n="function"==typeof n?n:void 0,null==t?t:Zn(t,e,io(r),n)},Lr.values=Lu,Lr.valuesIn=function(t){return null==t?[]:xe(t,mu(t))},Lr.without=zi,Lr.words=Uu,Lr.wrap=function(t,e){return Sa(io(e),t)},Lr.xor=Ji,Lr.xorBy=qi,Lr.xorWith=Xi,Lr.zip=Vi,Lr.zipObject=function(t,e){return no(t||[],e||[],Hr)},Lr.zipObjectDeep=function(t,e){return no(t||[],e||[],Dn)},Lr.zipWith=Qi,Lr.entries=Ou,Lr.entriesIn=xu,Lr.extend=uu,Lr.extendWith=cu,Ju(Lr,Lr),Lr.add=ic,Lr.attempt=Mu,Lr.camelCase=Ru,Lr.capitalize=Tu,Lr.ceil=ac,Lr.clamp=function(t,e,r){return void 0===r&&(r=e,e=void 0),void 0!==r&&(r=(r=nu(r))==r?r:0),void 0!==e&&(e=(e=nu(e))==e?e:0),Jr(nu(t),e,r)},Lr.clone=function(t){return qr(t,4)},Lr.cloneDeep=function(t){return qr(t,5)},Lr.cloneDeepWith=function(t,e){return qr(t,5,e="function"==typeof e?e:void 0)},Lr.cloneWith=function(t,e){return qr(t,4,e="function"==typeof e?e:void 0)},Lr.conformsTo=function(t,e){return null==e||Xr(t,e,gu(e))},Lr.deburr=Cu,Lr.defaultTo=function(t,e){return null==t||t!=t?e:t},Lr.divide=uc,Lr.endsWith=function(t,e,r){t=iu(t),e=Xn(e);var n=t.length,o=r=void 0===r?n:Jr(eu(r),0,n);return(r-=e.length)>=0&&t.slice(r,o)==e},Lr.eq=La,Lr.escape=function(t){return(t=iu(t))&&$.test(t)?t.replace(N,Ie):t},Lr.escapeRegExp=function(t){return(t=iu(t))&&G.test(t)?t.replace(H,"\\$&"):t},Lr.every=function(t,e,r){var n=Ia(t)?ne:en;return r&&ui(t,e,r)&&(e=void 0),n(t,Xo(e,3))},Lr.find=na,Lr.findIndex=Ci,Lr.findKey=function(t,e){return he(t,Xo(e,3),cn)},Lr.findLast=oa,Lr.findLastIndex=Ii,Lr.findLastKey=function(t,e){return he(t,Xo(e,3),sn)},Lr.floor=cc,Lr.forEach=ia,Lr.forEachRight=aa,Lr.forIn=function(t,e){return null==t?t:an(t,Xo(e,3),mu)},Lr.forInRight=function(t,e){return null==t?t:un(t,Xo(e,3),mu)},Lr.forOwn=function(t,e){return t&&cn(t,Xo(e,3))},Lr.forOwnRight=function(t,e){return t&&sn(t,Xo(e,3))},Lr.get=hu,Lr.gt=Ra,Lr.gte=Ta,Lr.has=function(t,e){return null!=t&&ni(t,e,dn)},Lr.hasIn=_u,Lr.head=Ni,Lr.identity=Yu,Lr.includes=function(t,e,r,n){t=Na(t)?t:Lu(t),r=r&&!n?eu(r):0;var o=t.length;return r<0&&(r=ir(o+r,0)),Ja(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&de(t,e,r)>-1},Lr.indexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:eu(r);return o<0&&(o=ir(n+o,0)),de(t,e,o)},Lr.inRange=function(t,e,r){return e=tu(e),void 0===r?(r=e,e=0):r=tu(r),function(t,e,r){return t>=ar(e,r)&&t=-9007199254740991&&t<=9007199254740991},Lr.isSet=za,Lr.isString=Ja,Lr.isSymbol=qa,Lr.isTypedArray=Xa,Lr.isUndefined=function(t){return void 0===t},Lr.isWeakMap=function(t){return Ha(t)&&ri(t)==g},Lr.isWeakSet=function(t){return Ha(t)&&"[object WeakSet]"==hn(t)},Lr.join=function(t,e){return null==t?"":nr.call(t,e)},Lr.kebabCase=Iu,Lr.last=Fi,Lr.lastIndexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=n;return void 0!==r&&(o=(o=eu(r))<0?ir(n+o,0):ar(o,n-1)),e==e?function(t,e,r){for(var n=r+1;n--;)if(t[n]===e)return n;return n}(t,e,o):_e(t,ye,o,!0)},Lr.lowerCase=ku,Lr.lowerFirst=Nu,Lr.lt=Va,Lr.lte=Qa,Lr.max=function(t){return t&&t.length?rn(t,Yu,_n):void 0},Lr.maxBy=function(t,e){return t&&t.length?rn(t,Xo(e,2),_n):void 0},Lr.mean=function(t){return ge(t,Yu)},Lr.meanBy=function(t,e){return ge(t,Xo(e,2))},Lr.min=function(t){return t&&t.length?rn(t,Yu,On):void 0},Lr.minBy=function(t,e){return t&&t.length?rn(t,Xo(e,2),On):void 0},Lr.stubArray=rc,Lr.stubFalse=nc,Lr.stubObject=function(){return{}},Lr.stubString=function(){return""},Lr.stubTrue=function(){return!0},Lr.multiply=sc,Lr.nth=function(t,e){return t&&t.length?Cn(t,eu(e)):void 0},Lr.noConflict=function(){return Bt._===this&&(Bt._=jt),this},Lr.noop=qu,Lr.now=ha,Lr.pad=function(t,e,r){t=iu(t);var n=(e=eu(e))?Me(t):0;if(!e||n>=e)return t;var o=(e-n)/2;return ko(Ze(o),r)+t+ko(Qe(o),r)},Lr.padEnd=function(t,e,r){t=iu(t);var n=(e=eu(e))?Me(t):0;return e&&ne){var n=t;t=e,e=n}if(r||t%1||e%1){var o=sr();return ar(t+o*(e-t+Ft("1e-"+((o+"").length-1))),e)}return $n(t,e)},Lr.reduce=function(t,e,r){var n=Ia(t)?se:be,o=arguments.length<3;return n(t,Xo(e,4),r,o,Zr)},Lr.reduceRight=function(t,e,r){var n=Ia(t)?fe:be,o=arguments.length<3;return n(t,Xo(e,4),r,o,tn)},Lr.repeat=function(t,e,r){return e=(r?ui(t,e,r):void 0===e)?1:eu(e),jn(iu(t),e)},Lr.replace=function(){var t=arguments,e=iu(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Lr.result=function(t,e,r){var n=-1,o=(e=ao(e,t)).length;for(o||(o=1,t=void 0);++n9007199254740991)return[];var r=4294967295,n=ar(t,4294967295);t-=4294967295;for(var o=Ee(n,e=Xo(e));++r=i)return t;var u=r-Me(n);if(u<1)return n;var c=a?co(a,0,u).join(""):t.slice(0,u);if(void 0===o)return c+n;if(a&&(u+=c.length-u),Ka(o)){if(t.slice(u).search(o)){var s,f=c;for(o.global||(o=dt(o.source,iu(Z.exec(o))+"g")),o.lastIndex=0;s=o.exec(f);)var l=s.index;c=c.slice(0,void 0===l?u:l)}}else if(t.indexOf(Xn(o),u)!=u){var p=c.lastIndexOf(o);p>-1&&(c=c.slice(0,p))}return c+n},Lr.unescape=function(t){return(t=iu(t))&&P.test(t)?t.replace(k,He):t},Lr.uniqueId=function(t){var e=++St;return iu(t)+e},Lr.upperCase=ju,Lr.upperFirst=Fu,Lr.each=ia,Lr.eachRight=aa,Lr.first=Ni,Ju(Lr,(oc={},cn(Lr,(function(t,e){Et.call(Lr.prototype,e)||(oc[e]=t)})),oc),{chain:!1}),Lr.VERSION="4.17.21",ee(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Lr[t].placeholder=Lr})),ee(["drop","take"],(function(t,e){Ir.prototype[t]=function(r){r=void 0===r?1:ir(eu(r),0);var n=this.__filtered__&&!e?new Ir(this):this.clone();return n.__filtered__?n.__takeCount__=ar(r,n.__takeCount__):n.__views__.push({size:ar(r,4294967295),type:t+(n.__dir__<0?"Right":"")}),n},Ir.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),ee(["filter","map","takeWhile"],(function(t,e){var r=e+1,n=1==r||3==r;Ir.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Xo(t,3),type:r}),e.__filtered__=e.__filtered__||n,e}})),ee(["head","last"],(function(t,e){var r="take"+(e?"Right":"");Ir.prototype[t]=function(){return this[r](1).value()[0]}})),ee(["initial","tail"],(function(t,e){var r="drop"+(e?"":"Right");Ir.prototype[t]=function(){return this.__filtered__?new Ir(this):this[r](1)}})),Ir.prototype.compact=function(){return this.filter(Yu)},Ir.prototype.find=function(t){return this.filter(t).head()},Ir.prototype.findLast=function(t){return this.reverse().find(t)},Ir.prototype.invokeMap=Fn((function(t,e){return"function"==typeof t?new Ir(this):this.map((function(r){return gn(r,t,e)}))})),Ir.prototype.reject=function(t){return this.filter(Aa(Xo(t)))},Ir.prototype.slice=function(t,e){t=eu(t);var r=this;return r.__filtered__&&(t>0||e<0)?new Ir(r):(t<0?r=r.takeRight(-t):t&&(r=r.drop(t)),void 0!==e&&(r=(e=eu(e))<0?r.dropRight(-e):r.take(e-t)),r)},Ir.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Ir.prototype.toArray=function(){return this.take(4294967295)},cn(Ir.prototype,(function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),n=/^(?:head|last)$/.test(e),o=Lr[n?"take"+("last"==e?"Right":""):e],i=n||/^find/.test(e);o&&(Lr.prototype[e]=function(){var e=this.__wrapped__,a=n?[1]:arguments,u=e instanceof Ir,c=a[0],s=u||Ia(e),f=function(t){var e=o.apply(Lr,ce([t],a));return n&&l?e[0]:e};s&&r&&"function"==typeof c&&1!=c.length&&(u=s=!1);var l=this.__chain__,p=!!this.__actions__.length,h=i&&!l,_=u&&!p;if(!i&&s){e=_?e:new Ir(this);var d=t.apply(e,a);return d.__actions__.push({func:ta,args:[f],thisArg:void 0}),new Cr(d,l)}return h&&_?t.apply(this,a):(d=this.thru(f),h?n?d.value()[0]:d.value():d)})})),ee(["pop","push","shift","sort","splice","unshift"],(function(t){var e=gt[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);Lr.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var o=this.value();return e.apply(Ia(o)?o:[],t)}return this[r]((function(r){return e.apply(Ia(r)?r:[],t)}))}})),cn(Ir.prototype,(function(t,e){var r=Lr[e];if(r){var n=r.name+"";Et.call(gr,n)||(gr[n]=[]),gr[n].push({name:e,func:r})}})),gr[Ro(void 0,2).name]=[{name:"wrapper",func:void 0}],Ir.prototype.clone=function(){var t=new Ir(this.__wrapped__);return t.__actions__=yo(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=yo(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=yo(this.__views__),t},Ir.prototype.reverse=function(){if(this.__filtered__){var t=new Ir(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Ir.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,r=Ia(t),n=e<0,o=r?t.length:0,i=function(t,e,r){for(var n=-1,o=r.length;++n=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},Lr.prototype.plant=function(t){for(var e,r=this;r instanceof Tr;){var n=xi(r);n.__index__=0,n.__values__=void 0,e?o.__wrapped__=n:e=n;var o=n;r=r.__wrapped__}return o.__wrapped__=t,e},Lr.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Ir){var e=t;return this.__actions__.length&&(e=new Ir(this)),(e=e.reverse()).__actions__.push({func:ta,args:[Bi],thisArg:void 0}),new Cr(e,this.__chain__)}return this.thru(Bi)},Lr.prototype.toJSON=Lr.prototype.valueOf=Lr.prototype.value=function(){return eo(this.__wrapped__,this.__actions__)},Lr.prototype.first=Lr.prototype.head,Ke&&(Lr.prototype[Ke]=function(){return this}),Lr}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Bt._=Ge,define((function(){return Ge}))):Gt?((Gt.exports=Ge)._=Ge,Ht._=Ge):Bt._=Ge}).call(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),_$lodash_35=_$lodash_35.exports;var _$app_37={};Object.defineProperty(_$app_37,"__esModule",{value:!0}),_$app_37.default=void 0;var _default=new _$openApi_52.OpenAPI("sub-store");_$app_37.default=_default;var _$processors_41={};function ___typeof_41(t){return(___typeof_41="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$processors_41,"__esModule",{value:!0}),_$processors_41.ApplyProcessor=function(t,e){return _ApplyProcessor.apply(this,arguments)},_$processors_41.default=void 0;var _lodash=_interopRequireDefault(_$lodash_35),_app=_interopRequireDefault(_$app_37);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return function(t){if(Array.isArray(t))return ___arrayLikeToArray_41(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ___regeneratorRuntime_41(){___regeneratorRuntime_41=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(x){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof l?e:l,i=Object.create(o.prototype),a=new E(n||[]);return i._invoke=function(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,a),i}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(x){return{type:"throw",arg:x}}}t.wrap=c;var f={};function l(){}function p(){}function h(){}var _={};u(_,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(S([])));v&&v!==e&&r.call(v,o)&&(_=v);var y=h.prototype=l.prototype=Object.create(_);function g(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function m(t,e){var n;this._invoke=function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==___typeof_41(l)&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return f;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,f;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function S(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:S(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __asyncGeneratorStep_41(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}function ___asyncToGenerator_41(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_41(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_41(i,n,o,a,u,"throw",t)}a(void 0)}))}}function _createForOfIteratorHelper(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=_unsupportedIterableToArray(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_41(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_41(t,e):void 0}}function ___arrayLikeToArray_41(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0])||arguments[0];return{name:"Flag Operator",func:function(e){return e.map((function(e){if(t){var r=(0,_$geo_49.getFlag)(e.name);e.name=removeFlag(e.name),e.name=r+" "+e.name,e.name=e.name.replace(/\ud83c\uddf9\ud83c\uddfc/g,"\ud83c\udde8\ud83c\uddf3")}else e.name=removeFlag(e.name);return e}))}}},"Sort Operator":function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"asc";return{name:"Sort Operator",func:function(e){switch(t){case"asc":case"desc":return e.sort((function(e,r){return(e.name>r.name?1:-1)*("desc"===t?-1:1)}));case"random":return function(t){for(var e,r,n=t.length;0!==n;)r=Math.floor(Math.random()*n),e=t[n-=1],t[n]=t[r],t[r]=e;return t}(e);default:throw new Error("Unknown sort option: "+t)}}}},"Regex Sort Operator":function(t){return{name:"Regex Sort Operator",func:function(e){return t=t.map((function(t){return buildRegex(t)})),e.sort((function(e,r){var n=getRegexOrder(t,e.name),o=getRegexOrder(t,r.name);return n&&!o?-1:o&&!n?1:n&&o?n1){void 0===s[t.name]&&(s[t.name]=1);for(var e="",r=s[t.name]++,n=0;r>0;)e=a[r%10]+e,r=parseInt(r/10),n++;for(;n++0&&-1==="\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>e/2-1){r=" ... ",n+=5;break}for(o="",i=this.position;ie/2-1){o=" ... ",i-=5;break}return a=this.buffer.slice(n,i),_$common_7.repeat(" ",t)+r+a+o+"\n"+_$common_7.repeat(" ",t+this.position-n+r.length)+"^"},Mark.prototype.toString=function(t){var e,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(e=this.getSnippet())&&(r+=":\n"+e),r},_$mark_11=Mark;var TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"],_$type_18=function(t,e){var r,n;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(e))throw new _$exception_9('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=(r=e.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(t){r[t].forEach((function(e){n[String(e)]=t}))})),n),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new _$exception_9('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')},_$schema_12={};function compileList(t,e,r){var n=[];return t.include.forEach((function(t){r=compileList(t,e,r)})),t[e].forEach((function(t){r.forEach((function(e,r){e.tag===t.tag&&e.kind===t.kind&&n.push(r)})),r.push(t)})),r.filter((function(t,e){return-1===n.indexOf(e)}))}function Schema(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach((function(t){if(t.loadKind&&"scalar"!==t.loadKind)throw new _$exception_9("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=function(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(t){r[t.kind][t.tag]=r.fallback[t.tag]=t}for(t=0,e=arguments.length;t=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/,_$float_21=new _$type_18("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!YAML_FLOAT_PATTERN.test(t)||"_"===t[t.length-1])},construct:function(t){var e,r,n,o;return r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:e.indexOf(":")>=0?(e.split(":").forEach((function(t){o.unshift(parseFloat(t,10))})),e=0,n=1,o.forEach((function(t){e+=t*n,n*=60})),r*e):r*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||_$common_7.isNegativeZero(t))},represent:function(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_$common_7.isNegativeZero(t))return"-0.0";return r=t.toString(10),SCIENTIFIC_WITHOUT_DOT.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"}),_$json_17=new _$schema_12({include:[_$failsafe_16],implicit:[_$null_28,_$bool_20,_$int_22,_$float_21]}),_$core_13=new _$schema_12({include:[_$json_17]}),YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),_$timestamp_34=new _$type_18("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==YAML_DATE_REGEXP.exec(t)||null!==YAML_TIMESTAMP_REGEXP.exec(t))},construct:function(t){var e,r,n,o,i,a,u,c,s=0,f=null;if(null===(e=YAML_DATE_REGEXP.exec(t))&&(e=YAML_TIMESTAMP_REGEXP.exec(t)),null===e)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,o=+e[3],!e[4])return new Date(Date.UTC(r,n,o));if(i=+e[4],a=+e[5],u=+e[6],e[7]){for(s=e[7].slice(0,3);s.length<3;)s+="0";s=+s}return e[9]&&(f=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(f=-f)),c=new Date(Date.UTC(r,n,o,i,a,u,s)),f&&c.setTime(c.getTime()-f),c},instanceOf:Date,represent:function(t){return t.toISOString()}}),_$merge_27=new _$type_18("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),NodeBuffer;try{var _require=require;NodeBuffer=_require("buffer").Buffer}catch(__){}var BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",_$binary_19=new _$type_18("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,r,n=0,o=t.length,i=BASE64_MAP;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8==0},construct:function(t){var e,r,n=t.replace(/[\r\n=]/g,""),o=n.length,i=BASE64_MAP,a=0,u=[];for(e=0;e>16&255),u.push(a>>8&255),u.push(255&a)),a=a<<6|i.indexOf(n.charAt(e));return 0==(r=o%4*6)?(u.push(a>>16&255),u.push(a>>8&255),u.push(255&a)):18===r?(u.push(a>>10&255),u.push(a>>2&255)):12===r&&u.push(a>>4&255),NodeBuffer?NodeBuffer.from?NodeBuffer.from(u):new NodeBuffer(u):u},predicate:function(t){return NodeBuffer&&NodeBuffer.isBuffer(t)},represent:function(t){var e,r,n="",o=0,i=t.length,a=BASE64_MAP;for(e=0;e>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[63&o]),o=(o<<8)+t[e];return 0==(r=i%3)?(n+=a[o>>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[63&o]):2===r?(n+=a[o>>10&63],n+=a[o>>4&63],n+=a[o<<2&63],n+=a[64]):1===r&&(n+=a[o>>2&63],n+=a[o<<4&63],n+=a[64],n+=a[64]),n}}),_hasOwnProperty=Object.prototype.hasOwnProperty,_toString=Object.prototype.toString,_$omap_29=new _$type_18("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,r,n,o,i,a=[],u=t;for(e=0,r=u.length;e3)return!1;if("/"!==e[e.length-n.length-1])return!1}return!0},construct:function(t){var e=t,r=/\/([gim]*)$/.exec(t),n="";return"/"===e[0]&&(r&&(n=r[1]),e=e.slice(1,e.length-n.length-1)),new RegExp(e,n)},predicate:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},represent:function(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}}),esprima;try{var ___require_23=require;esprima=___require_23("esprima")}catch(_){"undefined"!=typeof window&&(esprima=window.esprima)}var _$function_23=new _$type_18("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(t){if(null===t)return!1;try{var e="("+t+")",r=esprima.parse(e,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(n){return!1}},construct:function(t){var e,r="("+t+")",n=esprima.parse(r,{range:!0}),o=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(t){o.push(t.name)})),e=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(o,r.slice(e[0]+1,e[1]-1)):new Function(o,"return "+r.slice(e[0],e[1]))},predicate:function(t){return"[object Function]"===Object.prototype.toString.call(t)},represent:function(t){return t.toString()}}),_$default_full_14=_$schema_12.DEFAULT=new _$schema_12({include:[_$default_safe_15],explicit:[_$undefined_25,_$regexp_24,_$function_23]}),_$loader_10={},___hasOwnProperty_10=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(t){return Object.prototype.toString.call(t)}function is_EOL(t){return 10===t||13===t}function is_WHITE_SPACE(t){return 9===t||32===t}function is_WS_OR_EOL(t){return 9===t||32===t||10===t||13===t}function is_FLOW_INDICATOR(t){return 44===t||91===t||93===t||123===t||125===t}function fromHexCode(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function simpleEscapeSequence(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function charFromCodepoint(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);function State(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||_$default_full_14,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(t,e){return new _$exception_9(e,new _$mark_11(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function throwError(t,e){throw generateError(t,e)}function throwWarning(t,e){t.onWarning&&t.onWarning.call(null,generateError(t,e))}var directiveHandlers={YAML:function(t,e,r){var n,o,i;null!==t.version&&throwError(t,"duplication of %YAML directive"),1!==r.length&&throwError(t,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&throwError(t,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),i=parseInt(n[2],10),1!==o&&throwError(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=i<2,1!==i&&2!==i&&throwWarning(t,"unsupported YAML version of the document")},TAG:function(t,e,r){var n,o;2!==r.length&&throwError(t,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],PATTERN_TAG_HANDLE.test(n)||throwError(t,"ill-formed tag handle (first argument) of the TAG directive"),___hasOwnProperty_10.call(t.tagMap,n)&&throwError(t,'there is a previously declared suffix for "'+n+'" tag handle'),PATTERN_TAG_URI.test(o)||throwError(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[n]=o}};function captureSegment(t,e,r,n){var o,i,a,u;if(e1&&(t.result+=_$common_7.repeat("\n",e-1))}function readBlockSequence(t,e){var r,n,o=t.tag,i=t.anchor,a=[],u=!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),n=t.input.charCodeAt(t.position);0!==n&&45===n&&is_WS_OR_EOL(t.input.charCodeAt(t.position+1));)if(u=!0,t.position++,skipSeparationSpace(t,!0,-1)&&t.lineIndent<=e)a.push(null),n=t.input.charCodeAt(t.position);else if(r=t.line,composeNode(t,e,CONTEXT_BLOCK_IN,!1,!0),a.push(t.result),skipSeparationSpace(t,!0,-1),n=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&0!==n)throwError(t,"bad indentation of a sequence entry");else if(t.lineIndente?h=1:t.lineIndent===e?h=0:t.lineIndente?h=1:t.lineIndent===e?h=0:t.lineIndente)&&(composeNode(t,e,CONTEXT_BLOCK_OUT,!0,o)&&(d?h=t.result:_=t.result),d||(storeMappingPair(t,f,l,p,h,_,i,a),p=h=_=null),skipSeparationSpace(t,!0,-1),u=t.input.charCodeAt(t.position)),t.lineIndent>e&&0!==u)throwError(t,"bad indentation of a mapping entry");else if(t.lineIndent=0))break;0===o?throwError(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?throwError(t,"repeat of an indentation width identifier"):(f=e+o-1,s=!0)}if(is_WHITE_SPACE(i)){do{i=t.input.charCodeAt(++t.position)}while(is_WHITE_SPACE(i));if(35===i)do{i=t.input.charCodeAt(++t.position)}while(!is_EOL(i)&&0!==i)}for(;0!==i;){for(readLineBreak(t),t.lineIndent=0,i=t.input.charCodeAt(t.position);(!s||t.lineIndentf&&(f=t.lineIndent),is_EOL(i))l++;else{if(t.lineIndent0){for(o=a,i=0;o>0;o--)(a=fromHexCode(u=t.input.charCodeAt(++t.position)))>=0?i=(i<<4)+a:throwError(t,"expected hexadecimal character");t.result+=charFromCodepoint(i),t.position++}else throwError(t,"unknown escape sequence");r=n=t.position}else is_EOL(u)?(captureSegment(t,r,n,!0),writeFoldedLines(t,skipSeparationSpace(t,!1,e)),r=n=t.position):t.position===t.lineStart&&testDocumentSeparator(t)?throwError(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}throwError(t,"unexpected end of the stream within a double quoted scalar")}(t,l)?d=!0:function(t){var e,r,n;if(42!==(n=t.input.charCodeAt(t.position)))return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!is_WS_OR_EOL(n)&&!is_FLOW_INDICATOR(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&throwError(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),___hasOwnProperty_10.call(t.anchorMap,r)||throwError(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],skipSeparationSpace(t,!0,-1),!0}(t)?(d=!0,null===t.tag&&null===t.anchor||throwError(t,"alias node should not have any properties")):function(t,e,r){var n,o,i,a,u,c,s,f,l=t.kind,p=t.result;if(is_WS_OR_EOL(f=t.input.charCodeAt(t.position))||is_FLOW_INDICATOR(f)||35===f||38===f||42===f||33===f||124===f||62===f||39===f||34===f||37===f||64===f||96===f)return!1;if((63===f||45===f)&&(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n)))return!1;for(t.kind="scalar",t.result="",o=i=t.position,a=!1;0!==f;){if(58===f){if(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n))break}else if(35===f){if(is_WS_OR_EOL(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&testDocumentSeparator(t)||r&&is_FLOW_INDICATOR(f))break;if(is_EOL(f)){if(u=t.line,c=t.lineStart,s=t.lineIndent,skipSeparationSpace(t,!1,-1),t.lineIndent>=e){a=!0,f=t.input.charCodeAt(t.position);continue}t.position=i,t.line=u,t.lineStart=c,t.lineIndent=s;break}}a&&(captureSegment(t,o,i,!1),writeFoldedLines(t,t.line-u),o=i=t.position,a=!1),is_WHITE_SPACE(f)||(i=t.position+1),f=t.input.charCodeAt(++t.position)}return captureSegment(t,o,i,!1),!!t.result||(t.kind=l,t.result=p,!1)}(t,l,CONTEXT_FLOW_IN===r)&&(d=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===h&&(d=u&&readBlockSequence(t,p))),null!==t.tag&&"!"!==t.tag)if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&throwError(t,'unacceptable node kind for ! tag; it should be "scalar", not "'+t.kind+'"'),c=0,s=t.implicitTypes.length;c tag; it should be "'+f.kind+'", not "'+t.kind+'"'),f.resolve(t.result)?(t.result=f.construct(t.result),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):throwError(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):throwError(t,"unknown tag !<"+t.tag+">");return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||d}function readDocument(t){var e,r,n,o,i=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};0!==(o=t.input.charCodeAt(t.position))&&(skipSeparationSpace(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==o));){for(a=!0,o=t.input.charCodeAt(++t.position),e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);for(n=[],(r=t.input.slice(e,t.position)).length<1&&throwError(t,"directive name must not be less than one character in length");0!==o;){for(;is_WHITE_SPACE(o);)o=t.input.charCodeAt(++t.position);if(35===o){do{o=t.input.charCodeAt(++t.position)}while(0!==o&&!is_EOL(o));break}if(is_EOL(o))break;for(e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(e,t.position))}0!==o&&readLineBreak(t),___hasOwnProperty_10.call(directiveHandlers,r)?directiveHandlers[r](t,r,n):throwWarning(t,'unknown document directive "'+r+'"')}skipSeparationSpace(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,skipSeparationSpace(t,!0,-1)):a&&throwError(t,"directives end mark is expected"),composeNode(t,t.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(t,!0,-1),t.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(t.input.slice(i,t.position))&&throwWarning(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&testDocumentSeparator(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,skipSeparationSpace(t,!0,-1)):t.position0?t.charCodeAt(i-1):null,h=h&&isPlainSafe(a,u)}else{for(i=0;in&&" "!==t[p+1],p=i);else if(!isPrintable(a))return STYLE_DOUBLE;u=i>0?t.charCodeAt(i-1):null,h=h&&isPlainSafe(a,u)}f=f||l&&i-p-1>n&&" "!==t[p+1]}return s||f?r>9&&needIndentIndicator(t)?STYLE_DOUBLE:f?STYLE_FOLDED:STYLE_LITERAL:h&&!o(t)?STYLE_PLAIN:STYLE_SINGLE}function writeScalar(t,e,r,n){t.dump=function(){if(0===e.length)return"''";if(!t.noCompatMode&&-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(e))return"'"+e+"'";var o=t.indent*Math.max(1,r),i=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),a=n||t.flowLevel>-1&&r>=t.flowLevel;switch(chooseScalarStyle(e,a,t.indent,i,(function(e){return function(t,e){var r,n;for(r=0,n=t.implicitTypes.length;r"+blockHeader(e,t.indent)+dropEndingNewline(indentString(function(t,e){for(var r,n,o,i=/(\n+)([^\n]*)/g,a=(o=-1!==(o=t.indexOf("\n"))?o:t.length,i.lastIndex=o,foldLine(t.slice(0,o),e)),u="\n"===t[0]||" "===t[0];n=i.exec(t);){var c=n[1],s=n[2];r=" "===s[0],a+=c+(u||r||""===s?"":"\n")+foldLine(s,e),u=r}return a}(e,i),o));case STYLE_DOUBLE:return'"'+function(t){for(var e,r,n,o="",i=0;i=55296&&e<=56319&&(r=t.charCodeAt(i+1))>=56320&&r<=57343?(o+=encodeHex(1024*(e-55296)+r-56320+65536),i++):o+=!(n=ESCAPE_SEQUENCES[e])&&isPrintable(e)?t[i]:n||encodeHex(e);return o}(e)+'"';default:throw new _$exception_9("impossible error: invalid scalar style")}}()}function blockHeader(t,e){var r=needIndentIndicator(t)?String(e):"",n="\n"===t[t.length-1];return r+(!n||"\n"!==t[t.length-2]&&"\n"!==t?n?"":"-":"+")+"\n"}function dropEndingNewline(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function foldLine(t,e){if(""===t||" "===t[0])return t;for(var r,n,o=/ [^ ]/g,i=0,a=0,u=0,c="";r=o.exec(t);)(u=r.index)-i>e&&(n=a>i?a:u,c+="\n"+t.slice(i,n),i=n+1),a=u;return c+="\n",t.length-i>e&&a>i?c+=t.slice(i,a)+"\n"+t.slice(a+1):c+=t.slice(i),c.slice(1)}function detectType(t,e,r){var n,o,i,a,u,c;for(i=0,a=(o=r?t.explicitTypes:t.implicitTypes).length;i tag resolver accepts not "'+c+'" style');n=u.represent[c](e,c)}t.dump=n}return!0}return!1}function writeNode(t,e,r,n,o,i){t.tag=null,t.dump=r,detectType(t,r,!1)||detectType(t,r,!0);var a=___toString_8.call(t.dump);n&&(n=t.flowLevel<0||t.flowLevel>e);var u,c,s="[object Object]"===a||"[object Array]"===a;if(s&&(c=-1!==(u=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||c||2!==t.indent&&e>0)&&(o=!1),c&&t.usedDuplicates[u])t.dump="*ref_"+u;else{if(s&&c&&!t.usedDuplicates[u]&&(t.usedDuplicates[u]=!0),"[object Object]"===a)n&&0!==Object.keys(t.dump).length?(function(t,e,r,n){var o,i,a,u,c,s,f="",l=t.tag,p=Object.keys(r);if(!0===t.sortKeys)p.sort();else if("function"==typeof t.sortKeys)p.sort(t.sortKeys);else if(t.sortKeys)throw new _$exception_9("sortKeys must be a boolean or a function");for(o=0,i=p.length;o1024)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?s+="?":s+="? "),s+=t.dump,c&&(s+=generateNextLine(t,e)),writeNode(t,e+1,u,!0,c)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?s+=":":s+=": ",f+=s+=t.dump));t.tag=l,t.dump=f||"{}"}(t,e,t.dump,o),c&&(t.dump="&ref_"+u+t.dump)):(function(t,e,r){var n,o,i,a,u,c="",s=t.tag,f=Object.keys(r);for(n=0,o=f.length;n1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),writeNode(t,e,a,!1,!1)&&(c+=u+=t.dump));t.tag=s,t.dump="{"+c+"}"}(t,e,t.dump),c&&(t.dump="&ref_"+u+" "+t.dump));else if("[object Array]"===a){var f=t.noArrayIndent&&e>0?e-1:e;n&&0!==t.dump.length?(function(t,e,r,n){var o,i,a="",u=t.tag;for(o=0,i=r.length;o "+t.dump)}return!0}function getDuplicateReferences(t,e){var r,n,o=[],i=[];for(function t(e,r,n){var o,i,a;if(null!==e&&"object"==typeof e)if(-1!==(i=r.indexOf(e)))-1===n.indexOf(i)&&n.push(i);else if(r.push(e),Array.isArray(e))for(i=0,a=e.length;i0?o-4:o;for(r=0;r>16&255,a[u++]=e>>8&255,a[u++]=255&e;return 2===i&&(e=revLookup[t.charCodeAt(r)]<<2|revLookup[t.charCodeAt(r+1)]>>4,a[u++]=255&e),1===i&&(e=revLookup[t.charCodeAt(r)]<<10|revLookup[t.charCodeAt(r+1)]<<4|revLookup[t.charCodeAt(r+2)]>>2,a[u++]=e>>8&255,a[u++]=255&e),a},fromByteArray:function(t){for(var e,r=t.length,n=r%3,o=[],i=0,a=r-n;ia?a:i+16383));return 1===n?(e=t[r-1],o.push(lookup[e>>2]+lookup[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],o.push(lookup[e>>10]+lookup[e>>4&63]+lookup[e<<2&63]+"=")),o.join("")}},lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",__i_1=0,len=code.length;__i_10)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function encodeChunk(t,e,r){for(var n,o,i=[],a=e;a>18&63]+lookup[o>>12&63]+lookup[o>>6&63]+lookup[63&o]);return i.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var _$ieee754_3={read:function(t,e,r,n,o){var i,a,u=8*o-n-1,c=(1<>1,f=-7,l=r?o-1:0,p=r?-1:1,h=t[e+l];for(l+=p,i=h&(1<<-f)-1,h>>=-f,f+=u;f>0;i=256*i+t[e+l],l+=p,f-=8);for(a=i&(1<<-f)-1,i>>=-f,f+=n;f>0;a=256*a+t[e+l],l+=p,f-=8);if(0===i)i=1-s;else{if(i===c)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),i-=s}return(h?-1:1)*a*Math.pow(2,i-n)},write:function(t,e,r,n,o,i){var a,u,c,s=8*i-o-1,f=(1<>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,_=n?1:-1,d=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-a))<1&&(a--,c*=2),(e+=a+l>=1?p/c:p*Math.pow(2,1-l))*c>=2&&(a++,c/=2),a+l>=f?(u=0,a=f):a+l>=1?(u=(e*c-1)*Math.pow(2,o),a+=l):(u=e*Math.pow(2,l-1)*Math.pow(2,o),a=0));o>=8;t[r+h]=255&u,h+=_,u/=256,o-=8);for(a=a<0;t[r+h]=255&a,h+=_,a/=256,s-=8);t[r+h-_]|=128*d}},_$base64_4={exports:{}};(function(t,e){(function(){!function(t,e){var r,n;"object"==typeof _$base64_4.exports?_$base64_4.exports=e():"function"==typeof define&&define.amd?define(e):(r=t.Base64,(n=e()).noConflict=function(){return t.Base64=r,n},t.Meteor&&(Base64=n),t.Base64=n)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:this,(function(){"use strict";var t,r="function"==typeof atob,n="function"==typeof btoa,o="function"==typeof e,i="function"==typeof TextDecoder?new TextDecoder:void 0,a="function"==typeof TextEncoder?new TextEncoder:void 0,u=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),c=(t={},u.forEach((function(e,r){return t[e]=r})),t),s=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,f=String.fromCharCode.bind(String),l="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t,e){return void 0===e&&(e=function(t){return t}),new Uint8Array(Array.prototype.slice.call(t,0).map(e))},p=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},h=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},_=function(t){for(var e,r,n,o,i="",a=t.length%3,c=0;c255||(n=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");i+=u[(e=r<<16|n<<8|o)>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}return a?i.slice(0,a-3)+"===".substring(a):i},d=n?function(t){return btoa(t)}:o?function(t){return e.from(t,"binary").toString("base64")}:_,v=o?function(t){return e.from(t).toString("base64")}:function(t){for(var e=[],r=0,n=t.length;r>>6)+f(128|63&e):f(224|e>>>12&15)+f(128|e>>>6&63)+f(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return f(240|e>>>18&7)+f(128|e>>>12&63)+f(128|e>>>6&63)+f(128|63&e)},m=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,w=function(t){return t.replace(m,g)},b=o?function(t){return e.from(t,"utf8").toString("base64")}:a?function(t){return v(a.encode(t))}:function(t){return d(w(t))},A=function(t,e){return void 0===e&&(e=!1),e?p(b(t)):b(t)},E=function(t){return A(t,!0)},S=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,O=function(t){switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return f(55296+(e>>>10))+f(56320+(1023&e));case 3:return f((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return f((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},x=function(t){return t.replace(S,O)},L=function(t){if(t=t.replace(/\s+/g,""),!s.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var e,r,n,o="",i=0;i>16&255):64===n?f(e>>16&255,e>>8&255):f(e>>16&255,e>>8&255,255&e);return o},R=r?function(t){return atob(h(t))}:o?function(t){return e.from(t,"base64").toString("binary")}:L,T=o?function(t){return l(e.from(t,"base64"))}:function(t){return l(R(t),(function(t){return t.charCodeAt(0)}))},C=function(t){return T(k(t))},I=o?function(t){return e.from(t,"base64").toString("utf8")}:i?function(t){return i.decode(T(t))}:function(t){return x(R(t))},k=function(t){return h(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},N=function(t){return I(k(t))},P=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},$=function(){var t=function(t,e){return Object.defineProperty(String.prototype,t,P(e))};t("fromBase64",(function(){return N(this)})),t("toBase64",(function(t){return A(this,t)})),t("toBase64URI",(function(){return A(this,!0)})),t("toBase64URL",(function(){return A(this,!0)})),t("toUint8Array",(function(){return C(this)}))},j=function(){var t=function(t,e){return Object.defineProperty(Uint8Array.prototype,t,P(e))};t("toBase64",(function(t){return y(this,t)})),t("toBase64URI",(function(){return y(this,!0)})),t("toBase64URL",(function(){return y(this,!0)}))},F={version:"3.7.2",VERSION:"3.7.2",atob:R,atobPolyfill:L,btoa:d,btoaPolyfill:_,fromBase64:N,toBase64:A,encode:A,encodeURI:E,encodeURL:E,utob:w,btou:x,decode:N,isValid:function(t){if("string"!=typeof t)return!1;var e=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},fromUint8Array:y,toUint8Array:C,extendString:$,extendUint8Array:j,extendBuiltins:function(){$(),j()},Base64:{}};return Object.keys(F).forEach((function(t){return F.Base64[t]=F[t]})),F}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},_$buffer_2({}).Buffer),_$base64_4=_$base64_4.exports;var _$preprocessors_40={};Object.defineProperty(_$preprocessors_40,"__esModule",{value:!0}),_$preprocessors_40.default=void 0;var keys,___default_40=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},(keys=["dm1lc3M","c3NyOi8v","dHJvamFu","c3M6Ly","c3NkOi8v","c2hhZG93","aHR0c"],{name:"Base64 Pre-processor",test:function(t){return keys.some((function(e){return-1!==t.indexOf(e)}))},parse:function(t){return _$base64_4.Base64.decode(t)}}),{name:"Clash Pre-processor",test:function(t){return/proxies/.test(t)},parse:function(t){return(0,_$staticJsYaml_36.safeLoad)(t).proxies.map((function(t){return JSON.stringify(t)})).join("\n")}},{name:"SSD Pre-processor",test:function(t){return 0===t.indexOf("ssd://")},parse:function(t){for(var e=[],r=JSON.parse(_$base64_4.Base64.decode(t.split("ssd://")[1])),n=r.port,o=r.encryption,i=r.password,a=r.servers,u=0;ut.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___unsupportedIterableToArray_39(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_39(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_39(t,e):void 0}}function ___arrayLikeToArray_39(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1){var c,s=___createForOfIteratorHelper_39(t);try{for(s.s();!(c=s.n()).done;){var f=___slicedToArray_39(c.value.split("="),2),l=f[0],p=f[1];u[l]=p.trim()}}catch(h){s.e(h)}finally{s.f()}}return ___objectSpread_39(___objectSpread_39({},a),{},{name:u.remarks?_$base64_4.Base64.decode(u.remarks):a.server,"protocol-param":_$base64_4.Base64.decode(u.protoparam||"").replace(/\s/g,""),"obfs-param":_$base64_4.Base64.decode(u.obfsparam||"").replace(/\s/g,"")})}}),{name:"URI VMess Parser",test:function(t){return/^vmess:\/\//.test(t)},parse:function(t){t=t.split("vmess://")[1];var e=_$base64_4.Base64.decode(t);if(/=\s*vmess/.test(e)){var r,n=e.split(",").map((function(t){return t.trim()})),o={},i=___createForOfIteratorHelper_39(n);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(-1!==a.indexOf("=")){var u=___slicedToArray_39(a.split("="),2),c=u[0],s=u[1];o[c.trim()]=s.trim()}}}catch(_){i.e(_)}finally{i.f()}var f={name:n[0].split("=")[0].trim(),type:"vmess",server:n[1],port:n[2],cipher:n[3],uuid:n[4].match(/^"(.*)"$/)[1],tls:"over-tls"===o.obfs||"wss"===o.obfs};if(void 0!==o["udp-relay"]&&(f.udp=JSON.parse(o["udp-relay"])),void 0!==o["fast-open"]&&(f.udp=JSON.parse(o["fast-open"])),"ws"===o.obfs||"wss"===o.obfs){f.network="ws",f["ws-opts"].path=(o["obfs-path"]||'"/"').match(/^"(.*)"$/)[1];var l=o["obfs-header"];l&&-1!==l.indexOf("Host")&&(l=l.match(/Host:\s*([a-zA-Z0-9-.]*)/)[1]),f["ws-opts"].headers={Host:l||f.server}}return f.tls&&"false"===o['"tls-verification"']&&(f["skip-cert-verify"]=!0),f.tls&&o["obfs-host"]&&(f.sni=o["obfs-host"]),f}var p=JSON.parse(e),h={name:p.ps,type:"vmess",server:p.add,port:p.port,cipher:"auto",uuid:p.id,alterId:p.aid||0,tls:"tls"===p.tls||!0===p.tls,supported:{}};return"ws"===p.net&&(h.network="ws",h["ws-opts"]={path:p.path,headers:{Host:p.host||p.add}},h.tls&&p.host&&(h.sni=p.host)),!1===p.verify_cert&&(h["skip-cert-verify"]=!0),h}},{name:"URI Trojan Parser",test:function(t){return/^trojan:\/\//.test(t)},parse:function(t){var e=___slicedToArray_39((t=t.split("trojan://")[1]).split("@")[1].split("?")[0].split(":"),2),r=e[0],n=e[1],o=decodeURIComponent(t.split("#")[1].trim()),i=t.split("?"),a=null;return i.length>1&&(i=i[1].split("#")[0].split("&"),a=new Map(i.map((function(t){return t.split("=")}))).get("sni")),{name:o||"[Trojan] ".concat(r),type:"trojan",server:r,port:n,password:t.split("@")[0],sni:a,supported:{}}}},{name:"Clash Parser",test:function(t){try{JSON.parse(t)}catch(e){return!1}return!0},parse:function(t){return JSON.parse(t)}},{name:"Surge SS Parser",test:function(t){return/^.*=\s*ss/.test(t.split(",")[0])},parse:function(t){var e=getSurgeParams(t),r={name:e.name,type:"ss",server:e.server,port:e.port,cipher:e["encrypt-method"],password:e.password,tfo:JSON.parse(e.tfo||"false"),udp:JSON.parse(e["udp-relay"]||"false")};return e.obfs&&(r.plugin="obfs",r["plugin-opts"]={mode:e.obfs,host:e["obfs-host"]}),r}},{name:"Surge VMess Parser",test:function(t){return/^.*=\s*vmess/.test(t.split(",")[0])&&-1!==t.indexOf("username")},parse:function(t){var e=getSurgeParams(t),r={name:e.name,type:"vmess",server:e.server,port:e.port,uuid:e.username,alterId:0,cipher:"none",tls:JSON.parse(e.tls||"false"),tfo:JSON.parse(e.tfo||"false")};if(r.tls&&(void 0!==e["skip-cert-verify"]&&(r["skip-cert-verify"]=!0===e["skip-cert-verify"]||"1"===e["skip-cert-verify"]),r.sni=e.sni||e.server),JSON.parse(e.ws||"false")){r.network="ws",r["ws-opts"]={path:e["ws-path"]};var n=e["ws-headers"].match(/(,|^|\s)*HOST:\s*(.*?)(,|$)/),o=n?n[2]:r.server;r["ws-opts"].headers={Host:o||e.server}}return r}},{name:"Surge Trojan Parser",test:function(t){return/^.*=\s*trojan/.test(t.split(",")[0])&&-1!==t.indexOf("sni")},parse:function(t){var e=getSurgeParams(t),r={name:e.name,type:"trojan",server:e.server,port:e.port,password:e.password,sni:e.sni||e.server,tfo:JSON.parse(e.tfo||"false")};return void 0!==e["skip-cert-verify"]&&(r["skip-cert-verify"]=!0===e["skip-cert-verify"]||"1"===e["skip-cert-verify"]),r}},{name:"Surge HTTP Parser",test:function(t){return/^.*=\s*https?/.test(t.split(",")[0])&&!Loon_Http().test(t)},parse:function(t){var e=getSurgeParams(t),r=/^.*?=\s?https/.test(t),n={name:e.name,type:"http",server:e.server,port:e.port,tls:JSON.parse(r||"false"),tfo:JSON.parse(e.tfo||"false")};return n.tls&&(void 0!==e["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===e["skip-cert-verify"]||"1"===e["skip-cert-verify"]),n.sni=e.sni||e.server),e.username&&"none"!==e.username&&(n.username=e.username),e.password&&"none"!==e.password&&(n.password=e.password),n}},{name:"Loon SS Parser",test:function(t){return"shadowsocks"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){var e=t.split("=")[1].split(","),r={name:t.split("=")[0].trim(),type:"ss",server:e[1],port:e[2],cipher:e[3],password:e[4].replace(/"/g,"")};return e.length>5&&(r.plugin="obfs",r["plugin-opts"]={mode:e[5],host:e[6]}),r}},{name:"Loon SSR Parser",test:function(t){return"shadowsocksr"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){var e=t.split("=")[1].split(",");return{name:t.split("=")[0].trim(),type:"ssr",server:e[1],port:e[2],cipher:e[3],password:e[4].replace(/"/g,""),protocol:e[5],"protocol-param":e[6].match(/{(.*)}/)[1],supported:{Surge:!1},obfs:e[7],"obfs-param":e[8].match(/{(.*)}/)[1]}}},{name:"Loon VMess Parser",test:function(t){return/^.*=\s*vmess/i.test(t.split(",")[0])&&-1===t.indexOf("username")},parse:function(t){var e,r=t.split("=")[1].split(","),n={name:t.split("=")[0].trim(),type:"vmess",server:r[1],port:r[2],cipher:r[3]||"none",uuid:r[4].replace(/"/g,""),alterId:0},o=___createForOfIteratorHelper_39(r=r.splice(5));try{for(o.s();!(e=o.n()).done;){var i=___slicedToArray_39(e.value.split(":"),2),a=i[0],u=i[1];r[a]=u}}catch(c){o.e(c)}finally{o.f()}switch(n.tls=JSON.parse(r["over-tls"]||"false"),n.tls&&(n.sni=r["tls-name"]||n.server,n["skip-cert-verify"]=JSON.parse(r["skip-cert-verify"]||"false")),r.transport){case"tcp":break;case"ws":n.network=r.transport,n["ws-opts"]={path:r.path,headers:{Host:r.host}}}return n.tls&&(n["skip-cert-verify"]=JSON.parse(r["skip-cert-verify"]||"false")),n}},{name:"Loon Trojan Parser",test:function(t){return/^.*=\s*trojan/i.test(t.split(",")[0])&&-1===t.indexOf("password")},parse:function(t){var e=t.split("=")[1].split(","),r={name:t.split("=")[0].trim(),type:"trojan",server:e[1],port:e[2],password:e[3].replace(/"/g,""),sni:e[1],"skip-cert-verify":JSON.parse(e["skip-cert-verify"]||"false")};if(e.length>4){var n=___slicedToArray_39(e[4].split(":"),2),o=n[0],i=n[1];if("tls-name"!==o)throw new Error("Unknown option ".concat(o," for line: \n").concat(t));r.sni=i}return r}},Loon_Http(),{name:"QX SS Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1===t.indexOf("ssr-protocol")},parse:function(t){var e=getQXParams(t),r={name:e.tag,type:"ss",server:e.server,port:e.port,cipher:e.method,password:e.password,udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false"),supported:{}};if(e.obfs)switch(r["plugin-opts"]={host:e["obfs-host"]||r.server},e.obfs){case"http":case"tls":r.plugin="obfs",r["plugin-opts"].mode=e.obfs;break;case"ws":case"wss":r["plugin-opts"]=___objectSpread_39(___objectSpread_39({},r["plugin-opts"]),{},{mode:"websocket",path:e["obfs-uri"]||"/",tls:"wss"===e.obfs}),r["plugin-opts"].tls&&void 0!==e["tls-verification"]&&(r["plugin-opts"]["skip-cert-verify"]=e["tls-verification"]),r.plugin="v2ray-plugin",r.supported.Surge=!1,r.supported.Loon=!1}return r}},{name:"QX SSR Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1!==t.indexOf("ssr-protocol")},parse:function(t){var e=getQXParams(t),r={name:e.tag,type:"ssr",server:e.server,port:e.port,cipher:e.method,password:e.password,protocol:e["ssr-protocol"],obfs:"plain","protocol-param":e["ssr-protocol-param"],udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false"),supported:{Surge:!1}};return e.obfs&&(r.obfs=e.obfs,r["obfs-param"]=e["obfs-host"]),r}},{name:"QX VMess Parser",test:function(t){return/^vmess\s*=/.test(t.split(",")[0].trim())},parse:function(t){var e=getQXParams(t),r={type:"vmess",name:e.tag,server:e.server,port:e.port,cipher:e.method||"none",uuid:e.password,alterId:0,tls:"over-tls"===e.obfs||"wss"===e.obfs,udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false")};return r.tls&&(r.sni=e["obfs-host"]||e.server,r["skip-cert-verify"]=!JSON.parse(e["tls-verification"]||"true")),"ws"!==e.obfs&&"wss"!==e.obfs||(r.network="ws",r["ws-opts"]={path:e["obfs-uri"],headers:{Host:e["obfs-host"]||e.server}}),r}},{name:"QX Trojan Parser",test:function(t){return/^trojan\s*=/.test(t.split(",")[0].trim())},parse:function(t){var e=getQXParams(t),r={type:"trojan",name:e.tag,server:e.server,port:e.port,password:e.password,sni:e["tls-host"]||e.server,udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false")};return r["skip-cert-verify"]=!JSON.parse(e["tls-verification"]||"true"),r}},{name:"QX HTTP Parser",test:function(t){return/^http\s*=/.test(t.split(",")[0].trim())},parse:function(t){var e=getQXParams(t),r={type:"http",name:e.tag,server:e.server,port:e.port,tls:JSON.parse(e["over-tls"]||"false"),udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false")};return e.username&&"none"!==e.username&&(r.username=e.username),e.password&&"none"!==e.password&&(r.password=e.password),r.tls&&(r.sni=e["tls-host"]||r.server,r["skip-cert-verify"]=!JSON.parse(e["tls-verification"]||"true")),r}}];_$parsers_39.default=___default_39;var _$proxyUtils_38={};function ___typeof_38(t){return(___typeof_38="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$proxyUtils_38,"__esModule",{value:!0}),_$proxyUtils_38.ProxyUtils=void 0;var ___download_38=___interopRequireDefault_38(_$download_48),_processors=function(t,e){if(t&&t.__esModule)return t;if(null===t||"object"!==___typeof_38(t)&&"function"!=typeof t)return{default:t};var r=_getRequireWildcardCache(void 0);if(r&&r.has(t))return r.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if("default"!==i&&Object.prototype.hasOwnProperty.call(t,i)){var a=o?Object.getOwnPropertyDescriptor(t,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=t[i]}return n.default=t,r&&r.set(t,n),n}(_$processors_41),_preprocessors=___interopRequireDefault_38(_$preprocessors_40),_producers=___interopRequireDefault_38(_$producers_42),_parsers=___interopRequireDefault_38(_$parsers_39),___app_38=___interopRequireDefault_38(_$app_37);function _getRequireWildcardCache(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(t){return t?r:e})(t)}function ___interopRequireDefault_38(t){return t&&t.__esModule?t:{default:t}}function ___regeneratorRuntime_38(){___regeneratorRuntime_38=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(x){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof l?e:l,i=Object.create(o.prototype),a=new E(n||[]);return i._invoke=function(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,a),i}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(x){return{type:"throw",arg:x}}}t.wrap=c;var f={};function l(){}function p(){}function h(){}var _={};u(_,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(S([])));v&&v!==e&&r.call(v,o)&&(_=v);var y=h.prototype=l.prototype=Object.create(_);function g(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function m(t,e){var n;this._invoke=function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==___typeof_38(l)&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return f;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,f;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function E(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function S(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:S(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __asyncGeneratorStep_38(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}function ___createForOfIteratorHelper_38(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_38(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_38(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___arrayLikeToArray_38(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==w[1]?w[1]:[],n=w.length>2?w[2]:void 0,o=___createForOfIteratorHelper_38(r),t.prev=3,o.s();case 5:if((i=o.n()).done){t.next=40;break}if(a=i.value,u=void 0,c={},-1===a.type.indexOf("Script")){t.next=29;break}if(s=a.args,f=s.mode,l=s.content,"link"!==f){t.next=28;break}if((h=(p=l).split("#")).length>1){_=___createForOfIteratorHelper_38(h[1].split("&"));try{for(_.s();!(d=_.n()).done;)v=d.value,y=v.split("=")[0],g=v.split("=")[1]||!0,c[y]=g}catch(b){_.e(b)}finally{_.f()}}return t.prev=15,t.next=18,(0,___download_38.default)(p.split("#")[0]);case 18:u=t.sent,___app_38.default.info("Script loaded: >>>\n ".concat(u)),t.next=26;break;case 22:return t.prev=22,t.t0=t.catch(15),___app_38.default.error("Error when downloading remote script: ".concat(a.args.content,".\n Reason: ").concat(t.t0)),t.abrupt("continue",38);case 26:t.next=29;break;case 28:u=l;case 29:if(_processors.default[a.type]){t.next=32;break}return ___app_38.default.error('Unknown operator: "'.concat(a.type,'"')),t.abrupt("continue",38);case 32:return ___app_38.default.info('Applying "'.concat(a.type,'" with arguments:\n >>> ').concat(JSON.stringify(a.args,null,2)||"None")),m=void 0,m=-1!==a.type.indexOf("Script")?_processors.default[a.type](u,n,c):_processors.default[a.type](a.args),t.next=37,(0,_processors.ApplyProcessor)(m,e);case 37:e=t.sent;case 38:t.next=5;break;case 40:t.next=45;break;case 42:t.prev=42,t.t1=t.catch(3),o.e(t.t1);case 45:return t.prev=45,o.f(),t.finish(45);case 48:return t.abrupt("return",e);case 49:case"end":return t.stop()}}),t,null,[[3,42,45,48],[15,22]])})),(_process=function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_38(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_38(i,n,o,a,u,"throw",t)}a(void 0)}))}).apply(this,arguments)}var ProxyUtils={parse:function(t){t=function(t){var e,r=___createForOfIteratorHelper_38(_preprocessors.default);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{if(n.test(t))return ___app_38.default.info("Pre-processor [".concat(n.name,"] activated")),n.parse(t)}catch(o){___app_38.default.error("Parser [".concat(n.name,"] failed\n Reason: ").concat(o))}}}catch(i){r.e(i)}finally{r.f()}return t}(t);var e,r,n=[],o=___createForOfIteratorHelper_38(t.split("\n"));try{for(o.s();!(r=o.n()).done;){var i=r.value;if(0!==(i=i.trim()).length){var a=e&&safeMatch(e,i);if(!a){var u,c=___createForOfIteratorHelper_38(_parsers.default);try{for(c.s();!(u=c.n()).done;){var s=u.value;if(safeMatch(s,i)){e=s,a=!0,___app_38.default.info("Proxy parser: ".concat(s.name," is activated"));break}}}catch(l){c.e(l)}finally{c.f()}}if(a)try{var f=e.parse(i);f||___app_38.default.error("Parser ".concat(e.name," return nothing for \n").concat(i,"\n")),n.push(f)}catch(l){___app_38.default.error("Failed to parse line: \n ".concat(i,"\n Reason: ").concat(l.stack))}else ___app_38.default.error("Failed to find a rule to parse line: \n".concat(i,"\n"))}}}catch(l){o.e(l)}finally{o.f()}return n},process:function(t){return _process.apply(this,arguments)},produce:function(t,e){var r=_producers.default[e];if(!r)throw new Error("Target platform: ".concat(e," is not supported!"));return t=t.filter((function(t){return!(t.supported&&!1===t.supported[e])})),___app_38.default.info("Producing proxies for target: ".concat(e)),void 0===r.type||"SINGLE"===r.type?t.map((function(t){try{return r.produce(t)}catch(e){return ___app_38.default.error("Cannot produce proxy: ".concat(JSON.stringify(t,null,2),"\nReason: ").concat(e)),""}})).filter((function(t){return t.length>0})).join("\n"):"ALL"===r.type?r.produce(t):void 0}};function safeMatch(t,e){var r;try{r=t.test(e)}catch(n){r=!1}return r}_$proxyUtils_38.ProxyUtils=ProxyUtils;var _$preprocessors_45={};Object.defineProperty(_$preprocessors_45,"__esModule",{value:!0}),_$preprocessors_45.default=void 0;var ___default_45=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},{name:"Clash Provider",test:function(t){return 0===t.indexOf("payload:")},parse:function(t){return t.replace("payload:","").replace(/^\s*-\s*/gm,"")}}];_$preprocessors_45.default=___default_45;var _$producers_46={};Object.defineProperty(_$producers_46,"__esModule",{value:!0}),_$producers_46.default=void 0;var obj,___staticJsYaml_46=(obj=_$staticJsYaml_36)&&obj.__esModule?obj:{default:obj},___default_46={QX:{type:"SINGLE",func:function(t){return-1!==["URL-REGEX","DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:"".concat({"DOMAIN-KEYWORD":"HOST-KEYWORD","DOMAIN-SUFFIX":"HOST-SUFFIX",DOMAIN:"HOST","IP-CIDR6":"IP6-CIDR"}[t.type]||t.type,",").concat(t.content,",SUB-STORE")}},Surge:{type:"SINGLE",func:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}},Loon:{type:"SINGLE",func:function(t){return-1!==["DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}(t)}},Clash:{type:"ALL",func:function(t){var e={"DEST-PORT":"DST-PORT","SRC-IP":"SRC-IP-CIDR","IN-PORT":"SRC-PORT"},r={payload:t.map((function(t){var r="".concat(e[t.type]||t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(r+=t.options?",".concat(t.options[0]):""),r}))};return ___staticJsYaml_46.default.dump(r)}}};_$producers_46.default=___default_46;var _$parsers_44={};function ___createForOfIteratorHelper_44(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_44(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_44(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___arrayLikeToArray_44(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___arrayLikeToArray_43(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0})).join("\n"):"ALL"===r.type?r.func(t):void 0}};_$ruleUtils_43.RuleUtils=RuleUtils;var _$resourceParserLoon_47={},RESOURCE_TYPE_RULE=2,result=$resource;if(1===$resourceType){var proxies=_$proxyUtils_38.ProxyUtils.parse($resource);result=_$proxyUtils_38.ProxyUtils.produce(proxies,"Loon")}else if($resourceType===RESOURCE_TYPE_RULE){var rules=_$ruleUtils_43.RuleUtils.parse($resource);result=_$ruleUtils_43.RuleUtils.produce(rules,"Loon")}$done(result)}(); \ No newline at end of file +!function(){var createModuleFactory=function(t){var e;return function(r){return e||t(e={exports:{},parent:r},e.exports),e.exports}},_$buffer_2=createModuleFactory((function(t,e){(function(t){(function(){"use strict";e.Buffer=r,e.SlowBuffer=function(t){return+t!=t&&(t=0),r.alloc(+t)},e.INSPECT_MAX_BYTES=50;function t(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=r.prototype,e}function r(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return n(t,e,r)}function n(e,n,o){if("string"==typeof e)return function(e,n){if("string"==typeof n&&""!==n||(n="utf8"),!r.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var o=0|s(e,n),u=t(o),a=u.write(e,n);return a!==o&&(u=u.slice(0,a)),u}(e,n);if(ArrayBuffer.isView(e))return a(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(B(e,ArrayBuffer)||e&&B(e.buffer,ArrayBuffer))return function(t,e,n){if(e<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function s(t,e){if(r.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var n=t.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;for(var u=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return R(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return L(t).length;default:if(u)return o?-1:R(t).length;e=(""+e).toLowerCase(),u=!0}}function c(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function l(t,e,n,o,u){if(0===t.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),T(n=+n)&&(n=u?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(u)return-1;n=t.length-1}else if(n<0){if(!u)return-1;n=0}if("string"==typeof e&&(e=r.from(e,o)),r.isBuffer(e))return 0===e.length?-1:p(t,e,n,o,u);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?u?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):p(t,[e],n,o,u);throw new TypeError("val must be string, number or Buffer")}function p(t,e,r,n,o){var u,a=1,i=t.length,s=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,i/=2,s/=2,r/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(o){var l=-1;for(u=r;ui&&(r=i-s),u=r;u>=0;u--){for(var p=!0,f=0;fo&&(n=o):n=o;var u=e.length;n>u/2&&(n=u/2);for(var a=0;a>8,o=r%256,u.push(o),u.push(n);return u}(e,t.length-r),t,r,n)}function m(t,e,r){return 0===e&&r===t.length?_$base64Js_1.fromByteArray(t):_$base64Js_1.fromByteArray(t.slice(e,r))}function v(t,e,r){r=Math.min(t.length,r);for(var n=[],o=e;o239?4:c>223?3:c>191?2:1;if(o+p<=r)switch(p){case 1:c<128&&(l=c);break;case 2:128==(192&(u=t[o+1]))&&(s=(31&c)<<6|63&u)>127&&(l=s);break;case 3:u=t[o+1],a=t[o+2],128==(192&u)&&128==(192&a)&&(s=(15&c)<<12|(63&u)<<6|63&a)>2047&&(s<55296||s>57343)&&(l=s);break;case 4:u=t[o+1],a=t[o+2],i=t[o+3],128==(192&u)&&128==(192&a)&&128==(192&i)&&(s=(15&c)<<18|(63&u)<<12|(63&a)<<6|63&i)>65535&&s<1114112&&(l=s)}null===l?(l=65533,p=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=p}return function(t){var e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);for(var r="",n=0;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return w(this,e,r);case"utf8":case"utf-8":return v(this,e,r);case"ascii":return E(this,e,r);case"latin1":case"binary":return b(this,e,r);case"base64":return m(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},r.prototype.toLocaleString=r.prototype.toString,r.prototype.equals=function(t){if(!r.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===r.compare(this,t)},r.prototype.inspect=function(){var t="",r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),""},r.prototype.compare=function(t,e,n,o,u){if(B(t,Uint8Array)&&(t=r.from(t,t.offset,t.byteLength)),!r.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===o&&(o=0),void 0===u&&(u=this.length),e<0||n>t.length||o<0||u>this.length)throw new RangeError("out of range index");if(o>=u&&e>=n)return 0;if(o>=u)return-1;if(e>=n)return 1;if(this===t)return 0;for(var a=(u>>>=0)-(o>>>=0),i=(n>>>=0)-(e>>>=0),s=Math.min(a,i),c=this.slice(o,u),l=t.slice(e,n),p=0;p>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-e;if((void 0===r||r>o)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var u=!1;;)switch(n){case"hex":return f(this,t,e,r);case"utf8":case"utf-8":return h(this,t,e,r);case"ascii":return _(this,t,e,r);case"latin1":case"binary":return d(this,t,e,r);case"base64":return g(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return y(this,t,e,r);default:if(u)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),u=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function E(t,e,r){var n="";r=Math.min(t.length,r);for(var o=e;oo)&&(r=o);for(var u="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function S(t,e,n,o,u,a){if(!r.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>u||et.length)throw new RangeError("Index out of range")}function $(t,e,r,n,o,u){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function O(t,e,r,n,o){return e=+e,r>>>=0,o||$(t,0,r,4),_$ieee754_3.write(t,e,r,n,23,4),r+4}function F(t,e,r,n,o){return e=+e,r>>>=0,o||$(t,0,r,8),_$ieee754_3.write(t,e,r,n,52,8),r+8}r.prototype.slice=function(t,e){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e>>=0,e>>>=0,r||x(t,e,this.length);for(var n=this[t],o=1,u=0;++u>>=0,e>>>=0,r||x(t,e,this.length);for(var n=this[t+--e],o=1;e>0&&(o*=256);)n+=this[t+--e]*o;return n},r.prototype.readUInt8=function(t,e){return t>>>=0,e||x(t,1,this.length),this[t]},r.prototype.readUInt16LE=function(t,e){return t>>>=0,e||x(t,2,this.length),this[t]|this[t+1]<<8},r.prototype.readUInt16BE=function(t,e){return t>>>=0,e||x(t,2,this.length),this[t]<<8|this[t+1]},r.prototype.readUInt32LE=function(t,e){return t>>>=0,e||x(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},r.prototype.readUInt32BE=function(t,e){return t>>>=0,e||x(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},r.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||x(t,e,this.length);for(var n=this[t],o=1,u=0;++u=(o*=128)&&(n-=Math.pow(2,8*e)),n},r.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||x(t,e,this.length);for(var n=e,o=1,u=this[t+--n];n>0&&(o*=256);)u+=this[t+--n]*o;return u>=(o*=128)&&(u-=Math.pow(2,8*e)),u},r.prototype.readInt8=function(t,e){return t>>>=0,e||x(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},r.prototype.readInt16LE=function(t,e){t>>>=0,e||x(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt16BE=function(t,e){t>>>=0,e||x(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt32LE=function(t,e){return t>>>=0,e||x(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},r.prototype.readInt32BE=function(t,e){return t>>>=0,e||x(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},r.prototype.readFloatLE=function(t,e){return t>>>=0,e||x(t,4,this.length),_$ieee754_3.read(this,t,!0,23,4)},r.prototype.readFloatBE=function(t,e){return t>>>=0,e||x(t,4,this.length),_$ieee754_3.read(this,t,!1,23,4)},r.prototype.readDoubleLE=function(t,e){return t>>>=0,e||x(t,8,this.length),_$ieee754_3.read(this,t,!0,52,8)},r.prototype.readDoubleBE=function(t,e){return t>>>=0,e||x(t,8,this.length),_$ieee754_3.read(this,t,!1,52,8)},r.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||S(this,t,e,r,Math.pow(2,8*r)-1,0);var o=1,u=0;for(this[e]=255&t;++u>>=0,r>>>=0,n||S(this,t,e,r,Math.pow(2,8*r)-1,0);var o=r-1,u=1;for(this[e+o]=255&t;--o>=0&&(u*=256);)this[e+o]=t/u&255;return e+r},r.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,1,255,0),this[e]=255&t,e+1},r.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},r.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);S(this,t,e,r,o-1,-o)}var u=0,a=1,i=0;for(this[e]=255&t;++u>0)-i&255;return e+r},r.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);S(this,t,e,r,o-1,-o)}var u=r-1,a=1,i=0;for(this[e+u]=255&t;--u>=0&&(a*=256);)t<0&&0===i&&0!==this[e+u+1]&&(i=1),this[e+u]=(t/a>>0)-i&255;return e+r},r.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},r.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},r.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeFloatLE=function(t,e,r){return O(this,t,e,!0,r)},r.prototype.writeFloatBE=function(t,e,r){return O(this,t,e,!1,r)},r.prototype.writeDoubleLE=function(t,e,r){return F(this,t,e,!0,r)},r.prototype.writeDoubleBE=function(t,e,r){return F(this,t,e,!1,r)},r.prototype.copy=function(t,e,n,o){if(!r.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),o||0===o||(o=this.length),e>=t.length&&(e=t.length),e||(e=0),o>0&&o=this.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),t.length-e=0;--a)t[a+e]=this[a+n];else Uint8Array.prototype.set.call(t,this.subarray(n,o),e);return u},r.prototype.fill=function(t,e,n,o){if("string"==typeof t){if("string"==typeof e?(o=e,e=0,n=this.length):"string"==typeof n&&(o=n,n=this.length),void 0!==o&&"string"!=typeof o)throw new TypeError("encoding must be a string");if("string"==typeof o&&!r.isEncoding(o))throw new TypeError("Unknown encoding: "+o);if(1===t.length){var u=t.charCodeAt(0);("utf8"===o&&u<128||"latin1"===o)&&(t=u)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&u.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&u.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&u.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(e-=3)>-1&&u.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;u.push(r)}else if(r<2048){if((e-=2)<0)break;u.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;u.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;u.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return u}function L(t){return _$base64Js_1.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(D,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function P(t,e,r,n){for(var o=0;o=e.length||o>=t.length);++o)e[o+r]=t[o];return o}function B(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function T(t){return t!=t}}).call(this)}).call(this,_$buffer_2({}).Buffer)})),_$openApi_84={};function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ownKeys(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread(t){for(var e=1;e=0;--o){var u=this.tryEntries[o],a=u.completion;if("root"===u.tryLoc)return n("end");if(u.tryLoc<=this.prev){var i=r.call(u,"catchLoc"),s=r.call(u,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),b(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;b(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function asyncGeneratorStep(t,e,r,n,o,u,a){try{var i=t[u](a),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}function _asyncToGenerator(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var u=t.apply(e,r);function a(t){asyncGeneratorStep(u,n,o,a,i,"next",t)}function i(t){asyncGeneratorStep(u,n,o,a,i,"throw",t)}a(void 0)}))}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"untitled",debug=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_classCallCheck(this,OpenAPI),this.name=name,this.debug=debug,this.http=HTTP(),this.env=ENV(),this.node=function(){if(isNode){var fs=eval("require('fs')");return{fs:fs}}return null}(),this.initCache();var delay=function(t,e){return new Promise((function(r){setTimeout(r.bind(null,e),t)}))},_ref;Promise.prototype.delay=(_ref=_asyncToGenerator(_regeneratorRuntime().mark((function t(e){var r;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this;case 2:return r=t.sent,t.next=5,delay(e,r);case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t,this)}))),function(t){return _ref.apply(this,arguments)})}return _createClass(OpenAPI,[{key:"initCache",value:function(){if(isQX&&(this.cache=JSON.parse($prefs.valueForKey(this.name)||"{}")),(isLoon||isSurge)&&(this.cache=JSON.parse($persistentStore.read(this.name)||"{}")),isNode){var t="root.json";this.node.fs.existsSync(t)||this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.root={},t="".concat(this.name,".json"),this.node.fs.existsSync(t)?this.cache=JSON.parse(this.node.fs.readFileSync("".concat(this.name,".json"))):(this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.cache={})}}},{key:"persistCache",value:function(){var t=JSON.stringify(this.cache,null,2);isQX&&$prefs.setValueForKey(t,this.name),(isLoon||isSurge)&&$persistentStore.write(t,this.name),isNode&&(this.node.fs.writeFileSync("".concat(this.name,".json"),t,{flag:"w"},(function(t){return console.log(t)})),this.node.fs.writeFileSync("root.json",JSON.stringify(this.root,null,2),{flag:"w"},(function(t){return console.log(t)})))}},{key:"write",value:function(t,e){if(this.log("SET ".concat(e)),-1!==e.indexOf("#")){if(e=e.substr(1),isSurge||isLoon)return $persistentStore.write(t,e);if(isQX)return $prefs.setValueForKey(t,e);isNode&&(this.root[e]=t)}else this.cache[e]=t;this.persistCache()}},{key:"read",value:function(t){return this.log("READ ".concat(t)),-1===t.indexOf("#")?this.cache[t]:(t=t.substr(1),isSurge||isLoon?$persistentStore.read(t):isQX?$prefs.valueForKey(t):isNode?this.root[t]:void 0)}},{key:"delete",value:function(t){if(this.log("DELETE ".concat(t)),-1!==t.indexOf("#")){if(t=t.substr(1),isSurge||isLoon)return $persistentStore.write(null,t);if(isQX)return $prefs.removeValueForKey(t);isNode&&delete this.root[t]}else delete this.cache[t];this.persistCache()}},{key:"notify",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n["open-url"],u=n["media-url"];if(isQX&&$notify(t,e,r,n),isSurge&&$notification.post(t,e,r+"".concat(u?"\n\u591a\u5a92\u4f53:"+u:""),{url:o}),isLoon){var a={};o&&(a.openUrl=o),u&&(a.mediaUrl=u),"{}"===JSON.stringify(a)?$notification.post(t,e,r):$notification.post(t,e,r,a)}if(isNode){var i=r+(o?"\n\u70b9\u51fb\u8df3\u8f6c: ".concat(o):"")+(u?"\n\u591a\u5a92\u4f53: ".concat(u):"");console.log("".concat(t,"\n").concat(e,"\n").concat(i,"\n\n"))}}},{key:"log",value:function(t){this.debug&&console.log("[".concat(this.name,"] LOG: ").concat(t))}},{key:"info",value:function(t){console.log("[".concat(this.name,"] INFO: ").concat(t))}},{key:"error",value:function(t){console.log("[".concat(this.name,"] ERROR: ").concat(t))}},{key:"wait",value:function(t){return new Promise((function(e){return setTimeout(e,t)}))}},{key:"done",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};isQX||isLoon||isSurge?$done(t):isNode&&"undefined"!=typeof $context&&($context.headers=t.headers,$context.statusCode=t.statusCode,$context.body=t.body)}}]),OpenAPI}();function ENV(){return{isQX:isQX,isLoon:isLoon,isSurge:isSurge,isNode:isNode}}function HTTP(){var defaultOptions=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{baseURL:""},_ENV=ENV(),isQX=_ENV.isQX,isLoon=_ENV.isLoon,isSurge=_ENV.isSurge,isNode=_ENV.isNode,methods=["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],URL_REGEX=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;function send(method,options){options="string"==typeof options?{url:options}:options;var baseURL=defaultOptions.baseURL;baseURL&&!URL_REGEX.test(options.url||"")&&(options.url=baseURL?baseURL+options.url:options.url),options=_objectSpread(_objectSpread({},defaultOptions),options);var timeout=options.timeout,events=_objectSpread(_objectSpread({},{onRequest:function(){},onResponse:function(t){return t},onTimeout:function(){}}),options.events),worker,timeoutid;events.onRequest(method,options),isQX?worker=$task.fetch({method:method,url:options.url,headers:options.headers,body:options.body}):(isLoon||isSurge||isNode)&&(worker=new Promise((function(resolve,reject){var request=isNode?eval("require('request')"):$httpClient;request[method.toLowerCase()](options,(function(t,e,r){t?reject(t):resolve({statusCode:e.status||e.statusCode,headers:e.headers,body:r})}))})));var timer=timeout?new Promise((function(t,e){timeoutid=setTimeout((function(){return events.onTimeout(),e("".concat(method," URL: ").concat(options.url," exceeds the timeout ").concat(timeout," ms"))}),timeout)})):null;return(timer?Promise.race([timer,worker]).then((function(t){return clearTimeout(timeoutid),t})):worker).then((function(t){return events.onResponse(t)}))}var http={};return methods.forEach((function(t){return http[t.toLowerCase()]=function(e){return send(t,e)}})),http}_$openApi_84.OpenAPI=OpenAPI;var _$download_80={};function ___typeof_80(t){return(___typeof_80="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ___regeneratorRuntime_80(){___regeneratorRuntime_80=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",u=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(S){i=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof p?e:p,u=Object.create(o.prototype),a=new w(n||[]);return u._invoke=function(t,e,r){var n="suspendedStart";return function(o,u){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw u;return{value:void 0,done:!0}}for(r.method=o,r.arg=u;;){var a=r.delegate;if(a){var i=A(a,r);if(i){if(i===l)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===l)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(t,r,a),u}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(S){return{type:"throw",arg:S}}}t.wrap=s;var l={};function p(){}function f(){}function h(){}var _={};i(_,o,(function(){return this}));var d=Object.getPrototypeOf,g=d&&d(d(C([])));g&&g!==e&&r.call(g,o)&&(_=g);var y=h.prototype=p.prototype=Object.create(_);function m(t){["next","throw","return"].forEach((function(e){i(t,e,(function(t){return this._invoke(e,t)}))}))}function v(t,e){var n;this._invoke=function(o,u){function a(){return new e((function(n,a){!function n(o,u,a,i){var s=c(t[o],t,u);if("throw"!==s.type){var l=s.arg,p=l.value;return p&&"object"==___typeof_80(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,a,i)}),(function(t){n("throw",t,a,i)})):e.resolve(p).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,i)}))}i(s.arg)}(o,u,n,a)}))}return n=n?n.then(a,a):a()}}function A(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,A(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function b(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function w(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function C(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,u=function e(){for(;++n=0;--o){var u=this.tryEntries[o],a=u.completion;if("root"===u.tryLoc)return n("end");if(u.tryLoc<=this.prev){var i=r.call(u,"catchLoc"),s=r.call(u,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),b(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;b(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __asyncGeneratorStep_80(t,e,r,n,o,u,a){try{var i=t[u](a),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}Object.defineProperty(_$download_80,"__esModule",{value:!0}),_$download_80.default=function(t,e){return _download.apply(this,arguments)};var cache=new Map;function _download(){var t;return t=___regeneratorRuntime_80().mark((function t(e,r){var n,o,u;return ___regeneratorRuntime_80().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=(r=r||"Quantumult%20X/1.0.29 (iPhone14,5; iOS 15.4.1)")+e,!cache.has(n)){t.next=4;break}return t.abrupt("return",cache.get(n));case 4:return o=(0,_$openApi_84.HTTP)({headers:{"User-Agent":r}}),u=new Promise((function(t,r){o.get(e).then((function(e){var n=e.body;0===n.replace(/\s/g,"").length?r(new Error("\u8ba2\u9605\u5185\u5bb9\u4e3a\u7a7a\uff01")):t(n)}))})),cache.set(n,u),t.abrupt("return",u);case 8:case"end":return t.stop()}}),t)})),(_download=function(){var e=this,r=arguments;return new Promise((function(n,o){var u=t.apply(e,r);function a(t){__asyncGeneratorStep_80(u,n,o,a,i,"next",t)}function i(t){__asyncGeneratorStep_80(u,n,o,a,i,"throw",t)}a(void 0)}))}).apply(this,arguments)}var _$utils_82={};Object.defineProperty(_$utils_82,"__esModule",{value:!0}),_$utils_82.isIPv4=function(t){return IPV4_REGEX.test(t)},_$utils_82.isIPv6=function(t){return IPV6_REGEX.test(t)};var IPV4_REGEX=/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$/,IPV6_REGEX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,_$logical_83={};function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r"']/g,B=RegExp(L.source),T=RegExp(P.source),k=/<%-([\s\S]+?)%>/g,I=/<%([\s\S]+?)%>/g,j=/<%=([\s\S]+?)%>/g,N=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,M=/^\w*$/,U=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,H=/[\\^$.*+?()[\]{}|]/g,q=RegExp(H.source),G=/^\s+/,z=/\s/,W=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Y=/\{\n\/\* \[wrapped with (.+)\] \*/,K=/,? & /,X=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,V=/[()=,{}\[\]\/\s]/,J=/\\(\\)?/g,Q=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Z=/\w*$/,tt=/^[-+]0x[0-9a-f]+$/i,et=/^0b[01]+$/i,rt=/^\[object .+?Constructor\]$/,nt=/^0o[0-7]+$/i,ot=/^(?:0|[1-9]\d*)$/,ut=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,at=/($^)/,it=/['\n\r\u2028\u2029\\]/g,st="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ct="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",lt="["+ct+"]",pt="["+st+"]",ft="\\d+",ht="[a-z\\xdf-\\xf6\\xf8-\\xff]",_t="[^\\ud800-\\udfff"+ct+ft+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",dt="\\ud83c[\\udffb-\\udfff]",gt="[^\\ud800-\\udfff]",yt="(?:\\ud83c[\\udde6-\\uddff]){2}",mt="[\\ud800-\\udbff][\\udc00-\\udfff]",vt="[A-Z\\xc0-\\xd6\\xd8-\\xde]",At="(?:"+ht+"|"+_t+")",Et="(?:"+vt+"|"+_t+")",bt="(?:"+pt+"|"+dt+")?",wt="[\\ufe0e\\ufe0f]?"+bt+"(?:\\u200d(?:"+[gt,yt,mt].join("|")+")[\\ufe0e\\ufe0f]?"+bt+")*",Ct="(?:"+["[\\u2700-\\u27bf]",yt,mt].join("|")+")"+wt,xt="(?:"+[gt+pt+"?",pt,yt,mt,"[\\ud800-\\udfff]"].join("|")+")",St=RegExp("['\u2019]","g"),$t=RegExp(pt,"g"),Ot=RegExp(dt+"(?="+dt+")|"+xt+wt,"g"),Ft=RegExp([vt+"?"+ht+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[lt,vt,"$"].join("|")+")",Et+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[lt,vt+At,"$"].join("|")+")",vt+"?"+At+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",vt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ft,Ct].join("|"),"g"),Dt=RegExp("[\\u200d\\ud800-\\udfff"+st+"\\ufe0e\\ufe0f]"),Rt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Lt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Pt=-1,Bt={};Bt[E]=Bt[b]=Bt[w]=Bt[C]=Bt[x]=Bt[S]=Bt["[object Uint8ClampedArray]"]=Bt[$]=Bt[O]=!0,Bt[o]=Bt[u]=Bt[v]=Bt[a]=Bt[A]=Bt[i]=Bt[s]=Bt[c]=Bt[p]=Bt[f]=Bt[h]=Bt[_]=Bt[d]=Bt[g]=Bt[m]=!1;var Tt={};Tt[o]=Tt[u]=Tt[v]=Tt[A]=Tt[a]=Tt[i]=Tt[E]=Tt[b]=Tt[w]=Tt[C]=Tt[x]=Tt[p]=Tt[f]=Tt[h]=Tt[_]=Tt[d]=Tt[g]=Tt[y]=Tt[S]=Tt["[object Uint8ClampedArray]"]=Tt[$]=Tt[O]=!0,Tt[s]=Tt[c]=Tt[m]=!1;var kt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},It=parseFloat,jt=parseInt,Nt="object"==typeof t&&t&&t.Object===Object&&t,Mt="object"==typeof self&&self&&self.Object===Object&&self,Ut=Nt||Mt||Function("return this")(),Ht="object"==typeof _$lodash_35.exports&&_$lodash_35.exports&&!_$lodash_35.exports.nodeType&&_$lodash_35.exports,qt=Ht&&_$lodash_35&&!_$lodash_35.nodeType&&_$lodash_35,Gt=qt&&qt.exports===Ht,zt=Gt&&Nt.process,Wt=function(){try{return qt&&qt.require&&qt.require("util").types||zt&&zt.binding&&zt.binding("util")}catch(t){}}(),Yt=Wt&&Wt.isArrayBuffer,Kt=Wt&&Wt.isDate,Xt=Wt&&Wt.isMap,Vt=Wt&&Wt.isRegExp,Jt=Wt&&Wt.isSet,Qt=Wt&&Wt.isTypedArray;function Zt(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}function te(t,e,r,n){for(var o=-1,u=null==t?0:t.length;++o-1}function ae(t,e,r){for(var n=-1,o=null==t?0:t.length;++n-1;);return r}function Fe(t,e){for(var r=t.length;r--&&de(e,t[r],0)>-1;);return r}var De=Ae({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Re=Ae({"&":"&","<":"<",">":">",'"':""","'":"'"});function Le(t){return"\\"+kt[t]}function Pe(t){return Dt.test(t)}function Be(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}function Te(t,e){return function(r){return t(e(r))}}function ke(t,e){for(var n=-1,o=t.length,u=0,a=[];++n",""":'"',"'":"'"}),qe=function t(z){var st,ct=(z=null==z?Ut:qe.defaults(Ut.Object(),z,qe.pick(Ut,Lt))).Array,lt=z.Date,pt=z.Error,ft=z.Function,ht=z.Math,_t=z.Object,dt=z.RegExp,gt=z.String,yt=z.TypeError,mt=ct.prototype,vt=ft.prototype,At=_t.prototype,Et=z["__core-js_shared__"],bt=vt.toString,wt=At.hasOwnProperty,Ct=0,xt=(st=/[^.]+$/.exec(Et&&Et.keys&&Et.keys.IE_PROTO||""))?"Symbol(src)_1."+st:"",Ot=At.toString,Dt=bt.call(_t),kt=Ut._,Nt=dt("^"+bt.call(wt).replace(H,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Mt=Gt?z.Buffer:void 0,Ht=z.Symbol,qt=z.Uint8Array,zt=Mt?Mt.allocUnsafe:void 0,Wt=Te(_t.getPrototypeOf,_t),fe=_t.create,Ae=At.propertyIsEnumerable,Ge=mt.splice,ze=Ht?Ht.isConcatSpreadable:void 0,We=Ht?Ht.iterator:void 0,Ye=Ht?Ht.toStringTag:void 0,Ke=function(){try{var t=Zo(_t,"defineProperty");return t({},"",{}),t}catch(e){}}(),Xe=z.clearTimeout!==Ut.clearTimeout&&z.clearTimeout,Ve=lt&<.now!==Ut.Date.now&<.now,Je=z.setTimeout!==Ut.setTimeout&&z.setTimeout,Qe=ht.ceil,Ze=ht.floor,tr=_t.getOwnPropertySymbols,er=Mt?Mt.isBuffer:void 0,rr=z.isFinite,nr=mt.join,or=Te(_t.keys,_t),ur=ht.max,ar=ht.min,ir=lt.now,sr=z.parseInt,cr=ht.random,lr=mt.reverse,pr=Zo(z,"DataView"),fr=Zo(z,"Map"),hr=Zo(z,"Promise"),_r=Zo(z,"Set"),dr=Zo(z,"WeakMap"),gr=Zo(_t,"create"),yr=dr&&new dr,mr={},vr=xu(pr),Ar=xu(fr),Er=xu(hr),br=xu(_r),wr=xu(dr),Cr=Ht?Ht.prototype:void 0,xr=Cr?Cr.valueOf:void 0,Sr=Cr?Cr.toString:void 0;function $r(t){if(Ha(t)&&!Ra(t)&&!(t instanceof Rr)){if(t instanceof Dr)return t;if(wt.call(t,"__wrapped__"))return Su(t)}return new Dr(t)}var Or=function(){function t(){}return function(e){if(!Ua(e))return{};if(fe)return fe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();function Fr(){}function Dr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function Rr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Lr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Xr(t,e,r,n,u,s){var m,F=1&e,D=2&e,R=4&e;if(r&&(m=u?r(t,n,u,s):r(t)),void 0!==m)return m;if(!Ua(t))return t;var L=Ra(t);if(L){if(m=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&wt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}(t),!F)return yo(t,m)}else{var P=ru(t),B=P==c||P==l;if(Ta(t))return lo(t,F);if(P==h||P==o||B&&!u){if(m=D||B?{}:ou(t),!F)return D?function(t,e){return mo(t,eu(t),e)}(t,function(t,e){return t&&mo(e,vi(e),t)}(m,t)):function(t,e){return mo(t,tu(t),e)}(t,zr(m,t))}else{if(!Tt[P])return u?t:{};m=function(t,e,r){var n,o,u,s=t.constructor;switch(e){case v:return po(t);case a:case i:return new s(+t);case A:return function(t,e){var r=e?po(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}(t,r);case E:case b:case w:case C:case x:case S:case"[object Uint8ClampedArray]":case $:case O:return fo(t,r);case p:return new s;case f:case g:return new s(t);case _:return(u=new(o=t).constructor(o.source,Z.exec(o))).lastIndex=o.lastIndex,u;case d:return new s;case y:return n=t,xr?_t(xr.call(n)):{}}}(t,P,F)}}s||(s=new kr);var T=s.get(t);if(T)return T;s.set(t,m),Ya(t)?t.forEach((function(n){m.add(Xr(n,e,r,n,t,s))})):qa(t)&&t.forEach((function(n,o){m.set(o,Xr(n,e,r,o,t,s))}));var k=L?void 0:(R?D?Wo:zo:D?vi:mi)(t);return ee(k||t,(function(n,o){k&&(n=t[o=n]),Hr(m,o,Xr(n,e,r,o,t,s))})),m}function Vr(t,e,r){var n=r.length;if(null==t)return!n;for(t=_t(t);n--;){var o=r[n],u=e[o],a=t[o];if(void 0===a&&!(o in t)||!u(a))return!1}return!0}function Jr(t,r,n){if("function"!=typeof t)throw new yt(e);return mu((function(){t.apply(void 0,n)}),r)}function Qr(t,e,r,n){var o=-1,u=ue,a=!0,i=t.length,s=[],c=e.length;if(!i)return s;r&&(e=ie(e,xe(r))),n?(u=ae,a=!1):e.length>=200&&(u=$e,a=!1,e=new Tr(e));t:for(;++o-1},Pr.prototype.set=function(t,e){var r=this.__data__,n=qr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this},Br.prototype.clear=function(){this.size=0,this.__data__={hash:new Lr,map:new(fr||Pr),string:new Lr}},Br.prototype.delete=function(t){var e=Jo(this,t).delete(t);return this.size-=e?1:0,e},Br.prototype.get=function(t){return Jo(this,t).get(t)},Br.prototype.has=function(t){return Jo(this,t).has(t)},Br.prototype.set=function(t,e){var r=Jo(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this},Tr.prototype.add=Tr.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Tr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.clear=function(){this.__data__=new Pr,this.size=0},kr.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},kr.prototype.get=function(t){return this.__data__.get(t)},kr.prototype.has=function(t){return this.__data__.has(t)},kr.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Pr){var n=r.__data__;if(!fr||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Br(n)}return r.set(t,e),this.size=r.size,this};var Zr=Eo(sn),tn=Eo(cn,!0);function en(t,e){var r=!0;return Zr(t,(function(t,n,o){return r=!!e(t,n,o)})),r}function rn(t,e,r){for(var n=-1,o=t.length;++n0&&r(i)?e>1?on(i,e-1,r,n,o):se(o,i):n||(o[o.length]=i)}return o}var un=bo(),an=bo(!0);function sn(t,e){return t&&un(t,e,mi)}function cn(t,e){return t&&an(t,e,mi)}function ln(t,e){return oe(e,(function(e){return ja(t[e])}))}function pn(t,e){for(var r=0,n=(e=ao(e,t)).length;null!=t&&re}function dn(t,e){return null!=t&&wt.call(t,e)}function gn(t,e){return null!=t&&e in _t(t)}function yn(t,e,r){for(var n=r?ae:ue,o=t[0].length,u=t.length,a=u,i=ct(u),s=1/0,c=[];a--;){var l=t[a];a&&e&&(l=ie(l,xe(e))),s=ar(l.length,s),i[a]=!r&&(e||o>=120&&l.length>=120)?new Tr(a&&l):void 0}l=t[0];var p=-1,f=i[0];t:for(;++p=i?s:s*("desc"==r[n]?-1:1)}return t.index-e.index}(t,e,r)}));n--;)t[n]=t[n].value;return t}(Sn(t,(function(t,r,o){return{criteria:ie(e,(function(e){return e(t)})),index:++n,value:t}})))}function Ln(t,e,r){for(var n=-1,o=e.length,u={};++n-1;)i!==t&&Ge.call(i,s,1),Ge.call(t,s,1);return t}function Bn(t,e){for(var r=t?e.length:0,n=r-1;r--;){var o=e[r];if(r==n||o!==u){var u=o;au(o)?Ge.call(t,o,1):Qn(t,o)}}return t}function Tn(t,e){return t+Ze(cr()*(e-t+1))}function kn(t,e){var r="";if(!t||e<1||e>9007199254740991)return r;do{e%2&&(r+=t),(e=Ze(e/2))&&(t+=t)}while(e);return r}function In(t,e){return vu(_u(t,e,Gi),t+"")}function jn(t){return jr($i(t))}function Nn(t,e){var r=$i(t);return bu(r,Kr(e,0,r.length))}function Mn(t,e,r,n){if(!Ua(t))return t;for(var o=-1,u=(e=ao(e,t)).length,a=u-1,i=t;null!=i&&++oo?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var u=ct(o);++n>>1,a=t[u];null!==a&&!Xa(a)&&(r?a<=e:a=200){var c=e?null:Io(t);if(c)return Ie(c);a=!1,o=$e,s=new Tr}else s=e?[]:i;t:for(;++n=n?t:Gn(t,e,r)}var co=Xe||function(t){return Ut.clearTimeout(t)};function lo(t,e){if(e)return t.slice();var r=t.length,n=zt?zt(r):new t.constructor(r);return t.copy(n),n}function po(t){var e=new t.constructor(t.byteLength);return new qt(e).set(new qt(t)),e}function fo(t,e){var r=e?po(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function ho(t,e){if(t!==e){var r=void 0!==t,n=null===t,o=t==t,u=Xa(t),a=void 0!==e,i=null===e,s=e==e,c=Xa(e);if(!i&&!c&&!u&&t>e||u&&a&&s&&!i&&!c||n&&a&&s||!r&&s||!o)return 1;if(!n&&!u&&!c&&t1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(u=t.length>3&&"function"==typeof u?(o--,u):void 0,a&&iu(r[0],r[1],a)&&(u=o<3?void 0:u,o=1),e=_t(e);++n-1?o[u?e[a]:a]:void 0}}function $o(t){return Go((function(r){var n=r.length,o=n,u=Dr.prototype.thru;for(t&&r.reverse();o--;){var a=r[o];if("function"!=typeof a)throw new yt(e);if(u&&!i&&"wrapper"==Ko(a))var i=new Dr([],!0)}for(o=i?o:n;++o1&&m.reverse(),l&&si))return!1;var c=u.get(t),l=u.get(e);if(c&&l)return c==e&&l==t;var p=-1,f=!0,h=2&r?new Tr:void 0;for(u.set(t,e),u.set(e,t);++p-1&&t%1==0&&t1?"& ":"")+e[n],e=e.join(r>2?", ":" "),t.replace(W,"{\n/* [wrapped with "+e+"] */\n")}(o,function(t,e){return ee(n,(function(r){var n="_."+r[0];e&r[1]&&!ue(t,n)&&t.push(n)})),t.sort()}(function(t){var e=t.match(Y);return e?e[1].split(K):[]}(o),r)))}function Eu(t){var e=0,r=0;return function(){var n=ir(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function bu(t,e){var r=-1,n=t.length,o=n-1;for(e=void 0===e?n:e;++r1?t[e-1]:void 0;return r="function"==typeof r?(t.pop(),r):void 0,Wu(t,r)}));function Zu(t){var e=$r(t);return e.__chain__=!0,e}function ta(t,e){return e(t)}var ea=Go((function(t){var e=t.length,r=e?t[0]:0,n=this.__wrapped__,o=function(e){return Yr(e,t)};return!(e>1||this.__actions__.length)&&n instanceof Rr&&au(r)?((n=n.slice(r,+r+(e?1:0))).__actions__.push({func:ta,args:[o],thisArg:void 0}),new Dr(n,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(o)})),ra=vo((function(t,e,r){wt.call(t,r)?++t[r]:Wr(t,r,1)})),na=So(Du),oa=So(Ru);function ua(t,e){return(Ra(t)?ee:Zr)(t,Vo(e,3))}function aa(t,e){return(Ra(t)?re:tn)(t,Vo(e,3))}var ia=vo((function(t,e,r){wt.call(t,r)?t[r].push(e):Wr(t,r,[e])})),sa=In((function(t,e,r){var n=-1,o="function"==typeof e,u=Pa(t)?ct(t.length):[];return Zr(t,(function(t){u[++n]=o?Zt(e,t,r):mn(t,e,r)})),u})),ca=vo((function(t,e,r){Wr(t,r,e)}));function la(t,e){return(Ra(t)?ie:Sn)(t,Vo(e,3))}var pa=vo((function(t,e,r){t[r?0:1].push(e)}),(function(){return[[],[]]})),fa=In((function(t,e){if(null==t)return[];var r=e.length;return r>1&&iu(t,e[0],e[1])?e=[]:r>2&&iu(e[0],e[1],e[2])&&(e=[e[0]]),Rn(t,on(e,1),[])})),ha=Ve||function(){return Ut.Date.now()};function _a(t,e,r){return e=r?void 0:e,No(t,128,void 0,void 0,void 0,void 0,e=t&&null==e?t.length:e)}function da(t,r){var n;if("function"!=typeof r)throw new yt(e);return t=ei(t),function(){return--t>0&&(n=r.apply(this,arguments)),t<=1&&(r=void 0),n}}var ga=In((function(t,e,r){var n=1;if(r.length){var o=ke(r,Xo(ga));n|=32}return No(t,n,e,r,o)})),ya=In((function(t,e,r){var n=3;if(r.length){var o=ke(r,Xo(ya));n|=32}return No(e,n,t,r,o)}));function ma(t,r,n){var o,u,a,i,s,c,l=0,p=!1,f=!1,h=!0;if("function"!=typeof t)throw new yt(e);function _(e){var r=o,n=u;return o=u=void 0,l=e,i=t.apply(n,r)}function d(t){var e=t-c;return void 0===c||e>=r||e<0||f&&t-l>=a}function g(){var t=ha();if(d(t))return y(t);s=mu(g,function(t){var e=r-(t-c);return f?ar(e,a-(t-l)):e}(t))}function y(t){return s=void 0,h&&o?_(t):(o=u=void 0,i)}function m(){var t=ha(),e=d(t);if(o=arguments,u=this,c=t,e){if(void 0===s)return function(t){return l=t,s=mu(g,r),p?_(t):i}(c);if(f)return co(s),s=mu(g,r),_(c)}return void 0===s&&(s=mu(g,r)),i}return r=ni(r)||0,Ua(n)&&(p=!!n.leading,a=(f="maxWait"in n)?ur(ni(n.maxWait)||0,r):a,h="trailing"in n?!!n.trailing:h),m.cancel=function(){void 0!==s&&co(s),l=0,o=c=u=s=void 0},m.flush=function(){return void 0===s?i:y(ha())},m}var va=In((function(t,e){return Jr(t,1,e)})),Aa=In((function(t,e,r){return Jr(t,ni(e)||0,r)}));function Ea(t,r){if("function"!=typeof t||null!=r&&"function"!=typeof r)throw new yt(e);var n=function(){var e=arguments,o=r?r.apply(this,e):e[0],u=n.cache;if(u.has(o))return u.get(o);var a=t.apply(this,e);return n.cache=u.set(o,a)||u,a};return n.cache=new(Ea.Cache||Br),n}function ba(t){if("function"!=typeof t)throw new yt(e);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Ea.Cache=Br;var wa=io((function(t,e){var r=(e=1==e.length&&Ra(e[0])?ie(e[0],xe(Vo())):ie(on(e,1),xe(Vo()))).length;return In((function(n){for(var o=-1,u=ar(n.length,r);++o=e})),Da=vn(function(){return arguments}())?vn:function(t){return Ha(t)&&wt.call(t,"callee")&&!Ae.call(t,"callee")},Ra=ct.isArray,La=Yt?xe(Yt):function(t){return Ha(t)&&hn(t)==v};function Pa(t){return null!=t&&Ma(t.length)&&!ja(t)}function Ba(t){return Ha(t)&&Pa(t)}var Ta=er||ns,ka=Kt?xe(Kt):function(t){return Ha(t)&&hn(t)==i};function Ia(t){if(!Ha(t))return!1;var e=hn(t);return e==s||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!za(t)}function ja(t){if(!Ua(t))return!1;var e=hn(t);return e==c||e==l||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Na(t){return"number"==typeof t&&t==ei(t)}function Ma(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function Ua(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Ha(t){return null!=t&&"object"==typeof t}var qa=Xt?xe(Xt):function(t){return Ha(t)&&ru(t)==p};function Ga(t){return"number"==typeof t||Ha(t)&&hn(t)==f}function za(t){if(!Ha(t)||hn(t)!=h)return!1;var e=Wt(t);if(null===e)return!0;var r=wt.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&bt.call(r)==Dt}var Wa=Vt?xe(Vt):function(t){return Ha(t)&&hn(t)==_},Ya=Jt?xe(Jt):function(t){return Ha(t)&&ru(t)==d};function Ka(t){return"string"==typeof t||!Ra(t)&&Ha(t)&&hn(t)==g}function Xa(t){return"symbol"==typeof t||Ha(t)&&hn(t)==y}var Va=Qt?xe(Qt):function(t){return Ha(t)&&Ma(t.length)&&!!Bt[hn(t)]},Ja=Bo(xn),Qa=Bo((function(t,e){return t<=e}));function Za(t){if(!t)return[];if(Pa(t))return Ka(t)?Me(t):yo(t);if(We&&t[We])return function(t){for(var e,r=[];!(e=t.next()).done;)r.push(e.value);return r}(t[We]());var e=ru(t);return(e==p?Be:e==d?Ie:$i)(t)}function ti(t){return t?(t=ni(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function ei(t){var e=ti(t),r=e%1;return e==e?r?e-r:e:0}function ri(t){return t?Kr(ei(t),0,4294967295):0}function ni(t){if("number"==typeof t)return t;if(Xa(t))return NaN;if(Ua(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Ua(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ce(t);var r=et.test(t);return r||nt.test(t)?jt(t.slice(2),r?2:8):tt.test(t)?NaN:+t}function oi(t){return mo(t,vi(t))}function ui(t){return null==t?"":Vn(t)}var ai=Ao((function(t,e){if(pu(e)||Pa(e))mo(e,mi(e),t);else for(var r in e)wt.call(e,r)&&Hr(t,r,e[r])})),ii=Ao((function(t,e){mo(e,vi(e),t)})),si=Ao((function(t,e,r,n){mo(e,vi(e),t,n)})),ci=Ao((function(t,e,r,n){mo(e,mi(e),t,n)})),li=Go(Yr),pi=In((function(t,e){t=_t(t);var r=-1,n=e.length,o=n>2?e[2]:void 0;for(o&&iu(e[0],e[1],o)&&(n=1);++r1),e})),mo(t,Wo(t),r),n&&(r=Xr(r,7,Ho));for(var o=e.length;o--;)Qn(r,e[o]);return r})),wi=Go((function(t,e){return null==t?{}:function(t,e){return Ln(t,e,(function(e,r){return _i(t,r)}))}(t,e)}));function Ci(t,e){if(null==t)return{};var r=ie(Wo(t),(function(t){return[t]}));return e=Vo(e),Ln(t,r,(function(t,r){return e(t,r[0])}))}var xi=jo(mi),Si=jo(vi);function $i(t){return null==t?[]:Se(t,mi(t))}var Oi=Co((function(t,e,r){return e=e.toLowerCase(),t+(r?Fi(e):e)}));function Fi(t){return Ii(ui(t).toLowerCase())}function Di(t){return(t=ui(t))&&t.replace(ut,De).replace($t,"")}var Ri=Co((function(t,e,r){return t+(r?"-":"")+e.toLowerCase()})),Li=Co((function(t,e,r){return t+(r?" ":"")+e.toLowerCase()})),Pi=wo("toLowerCase"),Bi=Co((function(t,e,r){return t+(r?"_":"")+e.toLowerCase()})),Ti=Co((function(t,e,r){return t+(r?" ":"")+Ii(e)})),ki=Co((function(t,e,r){return t+(r?" ":"")+e.toUpperCase()})),Ii=wo("toUpperCase");function ji(t,e,r){return t=ui(t),void 0===(e=r?void 0:e)?function(t){return Rt.test(t)}(t)?function(t){return t.match(Ft)||[]}(t):function(t){return t.match(X)||[]}(t):t.match(e)||[]}var Ni=In((function(t,e){try{return Zt(t,void 0,e)}catch(r){return Ia(r)?r:new pt(r)}})),Mi=Go((function(t,e){return ee(e,(function(e){e=Cu(e),Wr(t,e,ga(t[e],t))})),t}));function Ui(t){return function(){return t}}var Hi=$o(),qi=$o(!0);function Gi(t){return t}function zi(t){return wn("function"==typeof t?t:Xr(t,1))}var Wi=In((function(t,e){return function(r){return mn(r,t,e)}})),Yi=In((function(t,e){return function(r){return mn(t,r,e)}}));function Ki(t,e,r){var n=mi(e),o=ln(e,n);null!=r||Ua(e)&&(o.length||!n.length)||(r=e,e=t,t=this,o=ln(e,mi(e)));var u=!(Ua(r)&&"chain"in r&&!r.chain),a=ja(t);return ee(o,(function(r){var n=e[r];t[r]=n,a&&(t.prototype[r]=function(){var e=this.__chain__;if(u||e){var r=t(this.__wrapped__);return(r.__actions__=yo(this.__actions__)).push({func:n,args:arguments,thisArg:t}),r.__chain__=e,r}return n.apply(t,se([this.value()],arguments))})})),t}function Xi(){}var Vi=Ro(ie),Ji=Ro(ne),Qi=Ro(pe);function Zi(t){return su(t)?ve(Cu(t)):function(t){return function(e){return pn(e,t)}}(t)}var ts=Po(),es=Po(!0);function rs(){return[]}function ns(){return!1}var os,us=Do((function(t,e){return t+e}),0),as=ko("ceil"),is=Do((function(t,e){return t/e}),1),ss=ko("floor"),cs=Do((function(t,e){return t*e}),1),ls=ko("round"),ps=Do((function(t,e){return t-e}),0);return $r.after=function(t,r){if("function"!=typeof r)throw new yt(e);return t=ei(t),function(){if(--t<1)return r.apply(this,arguments)}},$r.ary=_a,$r.assign=ai,$r.assignIn=ii,$r.assignInWith=si,$r.assignWith=ci,$r.at=li,$r.before=da,$r.bind=ga,$r.bindAll=Mi,$r.bindKey=ya,$r.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ra(t)?t:[t]},$r.chain=Zu,$r.chunk=function(t,e,r){e=(r?iu(t,e,r):void 0===e)?1:ur(ei(e),0);var n=null==t?0:t.length;if(!n||e<1)return[];for(var o=0,u=0,a=ct(Qe(n/e));oo?0:o+r),(n=void 0===n||n>o?o:ei(n))<0&&(n+=o),n=r>n?0:ri(n);r>>0)?(t=ui(t))&&("string"==typeof e||null!=e&&!Wa(e))&&!(e=Vn(e))&&Pe(t)?so(Me(t),0,r):t.split(e,r):[]},$r.spread=function(t,r){if("function"!=typeof t)throw new yt(e);return r=null==r?0:ur(ei(r),0),In((function(e){var n=e[r],o=so(e,0,r);return n&&se(o,n),Zt(t,this,o)}))},$r.tail=function(t){var e=null==t?0:t.length;return e?Gn(t,1,e):[]},$r.take=function(t,e,r){return t&&t.length?Gn(t,0,(e=r||void 0===e?1:ei(e))<0?0:e):[]},$r.takeRight=function(t,e,r){var n=null==t?0:t.length;return n?Gn(t,(e=n-(e=r||void 0===e?1:ei(e)))<0?0:e,n):[]},$r.takeRightWhile=function(t,e){return t&&t.length?to(t,Vo(e,3),!1,!0):[]},$r.takeWhile=function(t,e){return t&&t.length?to(t,Vo(e,3)):[]},$r.tap=function(t,e){return e(t),t},$r.throttle=function(t,r,n){var o=!0,u=!0;if("function"!=typeof t)throw new yt(e);return Ua(n)&&(o="leading"in n?!!n.leading:o,u="trailing"in n?!!n.trailing:u),ma(t,r,{leading:o,maxWait:r,trailing:u})},$r.thru=ta,$r.toArray=Za,$r.toPairs=xi,$r.toPairsIn=Si,$r.toPath=function(t){return Ra(t)?ie(t,Cu):Xa(t)?[t]:yo(wu(ui(t)))},$r.toPlainObject=oi,$r.transform=function(t,e,r){var n=Ra(t),o=n||Ta(t)||Va(t);if(e=Vo(e,4),null==r){var u=t&&t.constructor;r=o?n?new u:[]:Ua(t)&&ja(u)?Or(Wt(t)):{}}return(o?ee:sn)(t,(function(t,n,o){return e(r,t,n,o)})),r},$r.unary=function(t){return _a(t,1)},$r.union=Hu,$r.unionBy=qu,$r.unionWith=Gu,$r.uniq=function(t){return t&&t.length?Jn(t):[]},$r.uniqBy=function(t,e){return t&&t.length?Jn(t,Vo(e,2)):[]},$r.uniqWith=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?Jn(t,void 0,e):[]},$r.unset=function(t,e){return null==t||Qn(t,e)},$r.unzip=zu,$r.unzipWith=Wu,$r.update=function(t,e,r){return null==t?t:Zn(t,e,uo(r))},$r.updateWith=function(t,e,r,n){return n="function"==typeof n?n:void 0,null==t?t:Zn(t,e,uo(r),n)},$r.values=$i,$r.valuesIn=function(t){return null==t?[]:Se(t,vi(t))},$r.without=Yu,$r.words=ji,$r.wrap=function(t,e){return Ca(uo(e),t)},$r.xor=Ku,$r.xorBy=Xu,$r.xorWith=Vu,$r.zip=Ju,$r.zipObject=function(t,e){return no(t||[],e||[],Hr)},$r.zipObjectDeep=function(t,e){return no(t||[],e||[],Mn)},$r.zipWith=Qu,$r.entries=xi,$r.entriesIn=Si,$r.extend=ii,$r.extendWith=si,Ki($r,$r),$r.add=us,$r.attempt=Ni,$r.camelCase=Oi,$r.capitalize=Fi,$r.ceil=as,$r.clamp=function(t,e,r){return void 0===r&&(r=e,e=void 0),void 0!==r&&(r=(r=ni(r))==r?r:0),void 0!==e&&(e=(e=ni(e))==e?e:0),Kr(ni(t),e,r)},$r.clone=function(t){return Xr(t,4)},$r.cloneDeep=function(t){return Xr(t,5)},$r.cloneDeepWith=function(t,e){return Xr(t,5,e="function"==typeof e?e:void 0)},$r.cloneWith=function(t,e){return Xr(t,4,e="function"==typeof e?e:void 0)},$r.conformsTo=function(t,e){return null==e||Vr(t,e,mi(e))},$r.deburr=Di,$r.defaultTo=function(t,e){return null==t||t!=t?e:t},$r.divide=is,$r.endsWith=function(t,e,r){t=ui(t),e=Vn(e);var n=t.length,o=r=void 0===r?n:Kr(ei(r),0,n);return(r-=e.length)>=0&&t.slice(r,o)==e},$r.eq=$a,$r.escape=function(t){return(t=ui(t))&&T.test(t)?t.replace(P,Re):t},$r.escapeRegExp=function(t){return(t=ui(t))&&q.test(t)?t.replace(H,"\\$&"):t},$r.every=function(t,e,r){var n=Ra(t)?ne:en;return r&&iu(t,e,r)&&(e=void 0),n(t,Vo(e,3))},$r.find=na,$r.findIndex=Du,$r.findKey=function(t,e){return he(t,Vo(e,3),sn)},$r.findLast=oa,$r.findLastIndex=Ru,$r.findLastKey=function(t,e){return he(t,Vo(e,3),cn)},$r.floor=ss,$r.forEach=ua,$r.forEachRight=aa,$r.forIn=function(t,e){return null==t?t:un(t,Vo(e,3),vi)},$r.forInRight=function(t,e){return null==t?t:an(t,Vo(e,3),vi)},$r.forOwn=function(t,e){return t&&sn(t,Vo(e,3))},$r.forOwnRight=function(t,e){return t&&cn(t,Vo(e,3))},$r.get=hi,$r.gt=Oa,$r.gte=Fa,$r.has=function(t,e){return null!=t&&nu(t,e,dn)},$r.hasIn=_i,$r.head=Pu,$r.identity=Gi,$r.includes=function(t,e,r,n){t=Pa(t)?t:$i(t),r=r&&!n?ei(r):0;var o=t.length;return r<0&&(r=ur(o+r,0)),Ka(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&de(t,e,r)>-1},$r.indexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:ei(r);return o<0&&(o=ur(n+o,0)),de(t,e,o)},$r.inRange=function(t,e,r){return e=ti(e),void 0===r?(r=e,e=0):r=ti(r),function(t,e,r){return t>=ar(e,r)&&t=-9007199254740991&&t<=9007199254740991},$r.isSet=Ya,$r.isString=Ka,$r.isSymbol=Xa,$r.isTypedArray=Va,$r.isUndefined=function(t){return void 0===t},$r.isWeakMap=function(t){return Ha(t)&&ru(t)==m},$r.isWeakSet=function(t){return Ha(t)&&"[object WeakSet]"==hn(t)},$r.join=function(t,e){return null==t?"":nr.call(t,e)},$r.kebabCase=Ri,$r.last=Iu,$r.lastIndexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=n;return void 0!==r&&(o=(o=ei(r))<0?ur(n+o,0):ar(o,n-1)),e==e?function(t,e,r){for(var n=r+1;n--;)if(t[n]===e)return n;return n}(t,e,o):_e(t,ye,o,!0)},$r.lowerCase=Li,$r.lowerFirst=Pi,$r.lt=Ja,$r.lte=Qa,$r.max=function(t){return t&&t.length?rn(t,Gi,_n):void 0},$r.maxBy=function(t,e){return t&&t.length?rn(t,Vo(e,2),_n):void 0},$r.mean=function(t){return me(t,Gi)},$r.meanBy=function(t,e){return me(t,Vo(e,2))},$r.min=function(t){return t&&t.length?rn(t,Gi,xn):void 0},$r.minBy=function(t,e){return t&&t.length?rn(t,Vo(e,2),xn):void 0},$r.stubArray=rs,$r.stubFalse=ns,$r.stubObject=function(){return{}},$r.stubString=function(){return""},$r.stubTrue=function(){return!0},$r.multiply=cs,$r.nth=function(t,e){return t&&t.length?Dn(t,ei(e)):void 0},$r.noConflict=function(){return Ut._===this&&(Ut._=kt),this},$r.noop=Xi,$r.now=ha,$r.pad=function(t,e,r){t=ui(t);var n=(e=ei(e))?Ne(t):0;if(!e||n>=e)return t;var o=(e-n)/2;return Lo(Ze(o),r)+t+Lo(Qe(o),r)},$r.padEnd=function(t,e,r){t=ui(t);var n=(e=ei(e))?Ne(t):0;return e&&ne){var n=t;t=e,e=n}if(r||t%1||e%1){var o=cr();return ar(t+o*(e-t+It("1e-"+((o+"").length-1))),e)}return Tn(t,e)},$r.reduce=function(t,e,r){var n=Ra(t)?ce:Ee,o=arguments.length<3;return n(t,Vo(e,4),r,o,Zr)},$r.reduceRight=function(t,e,r){var n=Ra(t)?le:Ee,o=arguments.length<3;return n(t,Vo(e,4),r,o,tn)},$r.repeat=function(t,e,r){return e=(r?iu(t,e,r):void 0===e)?1:ei(e),kn(ui(t),e)},$r.replace=function(){var t=arguments,e=ui(t[0]);return t.length<3?e:e.replace(t[1],t[2])},$r.result=function(t,e,r){var n=-1,o=(e=ao(e,t)).length;for(o||(o=1,t=void 0);++n9007199254740991)return[];var r=4294967295,n=ar(t,4294967295);t-=4294967295;for(var o=we(n,e=Vo(e));++r=u)return t;var i=r-Ne(n);if(i<1)return n;var s=a?so(a,0,i).join(""):t.slice(0,i);if(void 0===o)return s+n;if(a&&(i+=s.length-i),Wa(o)){if(t.slice(i).search(o)){var c,l=s;for(o.global||(o=dt(o.source,ui(Z.exec(o))+"g")),o.lastIndex=0;c=o.exec(l);)var p=c.index;s=s.slice(0,void 0===p?i:p)}}else if(t.indexOf(Vn(o),i)!=i){var f=s.lastIndexOf(o);f>-1&&(s=s.slice(0,f))}return s+n},$r.unescape=function(t){return(t=ui(t))&&B.test(t)?t.replace(L,He):t},$r.uniqueId=function(t){var e=++Ct;return ui(t)+e},$r.upperCase=ki,$r.upperFirst=Ii,$r.each=ua,$r.eachRight=aa,$r.first=Pu,Ki($r,(os={},sn($r,(function(t,e){wt.call($r.prototype,e)||(os[e]=t)})),os),{chain:!1}),$r.VERSION="4.17.21",ee(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){$r[t].placeholder=$r})),ee(["drop","take"],(function(t,e){Rr.prototype[t]=function(r){r=void 0===r?1:ur(ei(r),0);var n=this.__filtered__&&!e?new Rr(this):this.clone();return n.__filtered__?n.__takeCount__=ar(r,n.__takeCount__):n.__views__.push({size:ar(r,4294967295),type:t+(n.__dir__<0?"Right":"")}),n},Rr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),ee(["filter","map","takeWhile"],(function(t,e){var r=e+1,n=1==r||3==r;Rr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Vo(t,3),type:r}),e.__filtered__=e.__filtered__||n,e}})),ee(["head","last"],(function(t,e){var r="take"+(e?"Right":"");Rr.prototype[t]=function(){return this[r](1).value()[0]}})),ee(["initial","tail"],(function(t,e){var r="drop"+(e?"":"Right");Rr.prototype[t]=function(){return this.__filtered__?new Rr(this):this[r](1)}})),Rr.prototype.compact=function(){return this.filter(Gi)},Rr.prototype.find=function(t){return this.filter(t).head()},Rr.prototype.findLast=function(t){return this.reverse().find(t)},Rr.prototype.invokeMap=In((function(t,e){return"function"==typeof t?new Rr(this):this.map((function(r){return mn(r,t,e)}))})),Rr.prototype.reject=function(t){return this.filter(ba(Vo(t)))},Rr.prototype.slice=function(t,e){t=ei(t);var r=this;return r.__filtered__&&(t>0||e<0)?new Rr(r):(t<0?r=r.takeRight(-t):t&&(r=r.drop(t)),void 0!==e&&(r=(e=ei(e))<0?r.dropRight(-e):r.take(e-t)),r)},Rr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Rr.prototype.toArray=function(){return this.take(4294967295)},sn(Rr.prototype,(function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),n=/^(?:head|last)$/.test(e),o=$r[n?"take"+("last"==e?"Right":""):e],u=n||/^find/.test(e);o&&($r.prototype[e]=function(){var e=this.__wrapped__,a=n?[1]:arguments,i=e instanceof Rr,s=a[0],c=i||Ra(e),l=function(t){var e=o.apply($r,se([t],a));return n&&p?e[0]:e};c&&r&&"function"==typeof s&&1!=s.length&&(i=c=!1);var p=this.__chain__,f=!!this.__actions__.length,h=u&&!p,_=i&&!f;if(!u&&c){e=_?e:new Rr(this);var d=t.apply(e,a);return d.__actions__.push({func:ta,args:[l],thisArg:void 0}),new Dr(d,p)}return h&&_?t.apply(this,a):(d=this.thru(l),h?n?d.value()[0]:d.value():d)})})),ee(["pop","push","shift","sort","splice","unshift"],(function(t){var e=mt[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);$r.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var o=this.value();return e.apply(Ra(o)?o:[],t)}return this[r]((function(r){return e.apply(Ra(r)?r:[],t)}))}})),sn(Rr.prototype,(function(t,e){var r=$r[e];if(r){var n=r.name+"";wt.call(mr,n)||(mr[n]=[]),mr[n].push({name:e,func:r})}})),mr[Oo(void 0,2).name]=[{name:"wrapper",func:void 0}],Rr.prototype.clone=function(){var t=new Rr(this.__wrapped__);return t.__actions__=yo(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=yo(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=yo(this.__views__),t},Rr.prototype.reverse=function(){if(this.__filtered__){var t=new Rr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Rr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,r=Ra(t),n=e<0,o=r?t.length:0,u=function(t,e,r){for(var n=-1,o=r.length;++n=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},$r.prototype.plant=function(t){for(var e,r=this;r instanceof Fr;){var n=Su(r);n.__index__=0,n.__values__=void 0,e?o.__wrapped__=n:e=n;var o=n;r=r.__wrapped__}return o.__wrapped__=t,e},$r.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Rr){var e=t;return this.__actions__.length&&(e=new Rr(this)),(e=e.reverse()).__actions__.push({func:ta,args:[Uu],thisArg:void 0}),new Dr(e,this.__chain__)}return this.thru(Uu)},$r.prototype.toJSON=$r.prototype.valueOf=$r.prototype.value=function(){return eo(this.__wrapped__,this.__actions__)},$r.prototype.first=$r.prototype.head,We&&($r.prototype[We]=function(){return this}),$r}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Ut._=qe,define((function(){return qe}))):qt?((qt.exports=qe)._=qe,Ht._=qe):Ut._=qe}).call(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),_$lodash_35=_$lodash_35.exports;var _$app_66={};Object.defineProperty(_$app_66,"__esModule",{value:!0}),_$app_66.default=void 0;var _default=new _$openApi_84.OpenAPI("sub-store");_$app_66.default=_default;var _$processors_73={};function ___typeof_73(t){return(___typeof_73="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$processors_73,"__esModule",{value:!0}),_$processors_73.ApplyProcessor=function(t,e){return _ApplyProcessor.apply(this,arguments)},_$processors_73.default=void 0;var _lodash=_interopRequireDefault(_$lodash_35),_app=_interopRequireDefault(_$app_66);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return function(t){if(Array.isArray(t))return ___arrayLikeToArray_73(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ___regeneratorRuntime_73(){___regeneratorRuntime_73=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",u=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(S){i=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof p?e:p,u=Object.create(o.prototype),a=new w(n||[]);return u._invoke=function(t,e,r){var n="suspendedStart";return function(o,u){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw u;return{value:void 0,done:!0}}for(r.method=o,r.arg=u;;){var a=r.delegate;if(a){var i=A(a,r);if(i){if(i===l)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===l)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(t,r,a),u}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(S){return{type:"throw",arg:S}}}t.wrap=s;var l={};function p(){}function f(){}function h(){}var _={};i(_,o,(function(){return this}));var d=Object.getPrototypeOf,g=d&&d(d(C([])));g&&g!==e&&r.call(g,o)&&(_=g);var y=h.prototype=p.prototype=Object.create(_);function m(t){["next","throw","return"].forEach((function(e){i(t,e,(function(t){return this._invoke(e,t)}))}))}function v(t,e){var n;this._invoke=function(o,u){function a(){return new e((function(n,a){!function n(o,u,a,i){var s=c(t[o],t,u);if("throw"!==s.type){var l=s.arg,p=l.value;return p&&"object"==___typeof_73(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,a,i)}),(function(t){n("throw",t,a,i)})):e.resolve(p).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,i)}))}i(s.arg)}(o,u,n,a)}))}return n=n?n.then(a,a):a()}}function A(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,A(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function b(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function w(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function C(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,u=function e(){for(;++n=0;--o){var u=this.tryEntries[o],a=u.completion;if("root"===u.tryLoc)return n("end");if(u.tryLoc<=this.prev){var i=r.call(u,"catchLoc"),s=r.call(u,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),b(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;b(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __asyncGeneratorStep_73(t,e,r,n,o,u,a){try{var i=t[u](a),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}function ___asyncToGenerator_73(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var u=t.apply(e,r);function a(t){__asyncGeneratorStep_73(u,n,o,a,i,"next",t)}function i(t){__asyncGeneratorStep_73(u,n,o,a,i,"throw",t)}a(void 0)}))}}function _createForOfIteratorHelper(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=_unsupportedIterableToArray(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var u,a=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){i=!0,u=t},f:function(){try{a||null==r.return||r.return()}finally{if(i)throw u}}}}function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_73(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_73(t,e):void 0}}function ___arrayLikeToArray_73(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0])||arguments[0];return{name:"Flag Operator",func:function(e){return e.map((function(e){if(t){var r=(0,_$geo_81.getFlag)(e.name);e.name=removeFlag(e.name),e.name=r+" "+e.name,e.name=e.name.replace(/\ud83c\uddf9\ud83c\uddfc/g,"\ud83c\udde8\ud83c\uddf3")}else e.name=removeFlag(e.name);return e}))}}},"Sort Operator":function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"asc";return{name:"Sort Operator",func:function(e){switch(t){case"asc":case"desc":return e.sort((function(e,r){return(e.name>r.name?1:-1)*("desc"===t?-1:1)}));case"random":return function(t){for(var e,r,n=t.length;0!==n;)r=Math.floor(Math.random()*n),e=t[n-=1],t[n]=t[r],t[r]=e;return t}(e);default:throw new Error("Unknown sort option: "+t)}}}},"Regex Sort Operator":function(t){return{name:"Regex Sort Operator",func:function(e){return t=t.map((function(t){return buildRegex(t)})),e.sort((function(e,r){var n=getRegexOrder(t,e.name),o=getRegexOrder(t,r.name);return n&&!o?-1:o&&!n?1:n&&o?n1){void 0===c[t.name]&&(c[t.name]=1);for(var e="",r=c[t.name]++,n=0;r>0;)e=a[r%10]+e,r=parseInt(r/10),n++;for(;n++0&&-1==="\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>e/2-1){r=" ... ",n+=5;break}for(o="",u=this.position;ue/2-1){o=" ... ",u-=5;break}return a=this.buffer.slice(n,u),_$common_7.repeat(" ",t)+r+a+o+"\n"+_$common_7.repeat(" ",t+this.position-n+r.length)+"^"},Mark.prototype.toString=function(t){var e,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(e=this.getSnippet())&&(r+=":\n"+e),r},_$mark_11=Mark;var TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"],_$type_18=function(t,e){var r,n;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(e))throw new _$exception_9('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=(r=e.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(t){r[t].forEach((function(e){n[String(e)]=t}))})),n),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new _$exception_9('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')},_$schema_12={};function compileList(t,e,r){var n=[];return t.include.forEach((function(t){r=compileList(t,e,r)})),t[e].forEach((function(t){r.forEach((function(e,r){e.tag===t.tag&&e.kind===t.kind&&n.push(r)})),r.push(t)})),r.filter((function(t,e){return-1===n.indexOf(e)}))}function Schema(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach((function(t){if(t.loadKind&&"scalar"!==t.loadKind)throw new _$exception_9("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=function(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(t){r[t.kind][t.tag]=r.fallback[t.tag]=t}for(t=0,e=arguments.length;t=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/,_$float_21=new _$type_18("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!YAML_FLOAT_PATTERN.test(t)||"_"===t[t.length-1])},construct:function(t){var e,r,n,o;return r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:e.indexOf(":")>=0?(e.split(":").forEach((function(t){o.unshift(parseFloat(t,10))})),e=0,n=1,o.forEach((function(t){e+=t*n,n*=60})),r*e):r*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||_$common_7.isNegativeZero(t))},represent:function(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_$common_7.isNegativeZero(t))return"-0.0";return r=t.toString(10),SCIENTIFIC_WITHOUT_DOT.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"}),_$json_17=new _$schema_12({include:[_$failsafe_16],implicit:[_$null_28,_$bool_20,_$int_22,_$float_21]}),_$core_13=new _$schema_12({include:[_$json_17]}),YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),_$timestamp_34=new _$type_18("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==YAML_DATE_REGEXP.exec(t)||null!==YAML_TIMESTAMP_REGEXP.exec(t))},construct:function(t){var e,r,n,o,u,a,i,s,c=0,l=null;if(null===(e=YAML_DATE_REGEXP.exec(t))&&(e=YAML_TIMESTAMP_REGEXP.exec(t)),null===e)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,o=+e[3],!e[4])return new Date(Date.UTC(r,n,o));if(u=+e[4],a=+e[5],i=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+="0";c=+c}return e[9]&&(l=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(l=-l)),s=new Date(Date.UTC(r,n,o,u,a,i,c)),l&&s.setTime(s.getTime()-l),s},instanceOf:Date,represent:function(t){return t.toISOString()}}),_$merge_27=new _$type_18("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),NodeBuffer;try{var _require=require;NodeBuffer=_require("buffer").Buffer}catch(__){}var BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",_$binary_19=new _$type_18("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,r,n=0,o=t.length,u=BASE64_MAP;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8==0},construct:function(t){var e,r,n=t.replace(/[\r\n=]/g,""),o=n.length,u=BASE64_MAP,a=0,i=[];for(e=0;e>16&255),i.push(a>>8&255),i.push(255&a)),a=a<<6|u.indexOf(n.charAt(e));return 0==(r=o%4*6)?(i.push(a>>16&255),i.push(a>>8&255),i.push(255&a)):18===r?(i.push(a>>10&255),i.push(a>>2&255)):12===r&&i.push(a>>4&255),NodeBuffer?NodeBuffer.from?NodeBuffer.from(i):new NodeBuffer(i):i},predicate:function(t){return NodeBuffer&&NodeBuffer.isBuffer(t)},represent:function(t){var e,r,n="",o=0,u=t.length,a=BASE64_MAP;for(e=0;e>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[63&o]),o=(o<<8)+t[e];return 0==(r=u%3)?(n+=a[o>>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[63&o]):2===r?(n+=a[o>>10&63],n+=a[o>>4&63],n+=a[o<<2&63],n+=a[64]):1===r&&(n+=a[o>>2&63],n+=a[o<<4&63],n+=a[64],n+=a[64]),n}}),_hasOwnProperty=Object.prototype.hasOwnProperty,_toString=Object.prototype.toString,_$omap_29=new _$type_18("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,r,n,o,u,a=[],i=t;for(e=0,r=i.length;e3)return!1;if("/"!==e[e.length-n.length-1])return!1}return!0},construct:function(t){var e=t,r=/\/([gim]*)$/.exec(t),n="";return"/"===e[0]&&(r&&(n=r[1]),e=e.slice(1,e.length-n.length-1)),new RegExp(e,n)},predicate:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},represent:function(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}}),esprima;try{var ___require_23=require;esprima=___require_23("esprima")}catch(_){"undefined"!=typeof window&&(esprima=window.esprima)}var _$function_23=new _$type_18("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(t){if(null===t)return!1;try{var e="("+t+")",r=esprima.parse(e,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(n){return!1}},construct:function(t){var e,r="("+t+")",n=esprima.parse(r,{range:!0}),o=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(t){o.push(t.name)})),e=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(o,r.slice(e[0]+1,e[1]-1)):new Function(o,"return "+r.slice(e[0],e[1]))},predicate:function(t){return"[object Function]"===Object.prototype.toString.call(t)},represent:function(t){return t.toString()}}),_$default_full_14=_$schema_12.DEFAULT=new _$schema_12({include:[_$default_safe_15],explicit:[_$undefined_25,_$regexp_24,_$function_23]}),_$loader_10={},___hasOwnProperty_10=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(t){return Object.prototype.toString.call(t)}function is_EOL(t){return 10===t||13===t}function is_WHITE_SPACE(t){return 9===t||32===t}function is_WS_OR_EOL(t){return 9===t||32===t||10===t||13===t}function is_FLOW_INDICATOR(t){return 44===t||91===t||93===t||123===t||125===t}function fromHexCode(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function simpleEscapeSequence(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function charFromCodepoint(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);function State(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||_$default_full_14,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(t,e){return new _$exception_9(e,new _$mark_11(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function throwError(t,e){throw generateError(t,e)}function throwWarning(t,e){t.onWarning&&t.onWarning.call(null,generateError(t,e))}var directiveHandlers={YAML:function(t,e,r){var n,o,u;null!==t.version&&throwError(t,"duplication of %YAML directive"),1!==r.length&&throwError(t,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&throwError(t,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),u=parseInt(n[2],10),1!==o&&throwError(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=u<2,1!==u&&2!==u&&throwWarning(t,"unsupported YAML version of the document")},TAG:function(t,e,r){var n,o;2!==r.length&&throwError(t,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],PATTERN_TAG_HANDLE.test(n)||throwError(t,"ill-formed tag handle (first argument) of the TAG directive"),___hasOwnProperty_10.call(t.tagMap,n)&&throwError(t,'there is a previously declared suffix for "'+n+'" tag handle'),PATTERN_TAG_URI.test(o)||throwError(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[n]=o}};function captureSegment(t,e,r,n){var o,u,a,i;if(e1&&(t.result+=_$common_7.repeat("\n",e-1))}function readBlockSequence(t,e){var r,n,o=t.tag,u=t.anchor,a=[],i=!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),n=t.input.charCodeAt(t.position);0!==n&&45===n&&is_WS_OR_EOL(t.input.charCodeAt(t.position+1));)if(i=!0,t.position++,skipSeparationSpace(t,!0,-1)&&t.lineIndent<=e)a.push(null),n=t.input.charCodeAt(t.position);else if(r=t.line,composeNode(t,e,CONTEXT_BLOCK_IN,!1,!0),a.push(t.result),skipSeparationSpace(t,!0,-1),n=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&0!==n)throwError(t,"bad indentation of a sequence entry");else if(t.lineIndente?h=1:t.lineIndent===e?h=0:t.lineIndente?h=1:t.lineIndent===e?h=0:t.lineIndente)&&(composeNode(t,e,CONTEXT_BLOCK_OUT,!0,o)&&(d?h=t.result:_=t.result),d||(storeMappingPair(t,l,p,f,h,_,u,a),f=h=_=null),skipSeparationSpace(t,!0,-1),i=t.input.charCodeAt(t.position)),t.lineIndent>e&&0!==i)throwError(t,"bad indentation of a mapping entry");else if(t.lineIndent=0))break;0===o?throwError(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?throwError(t,"repeat of an indentation width identifier"):(l=e+o-1,c=!0)}if(is_WHITE_SPACE(u)){do{u=t.input.charCodeAt(++t.position)}while(is_WHITE_SPACE(u));if(35===u)do{u=t.input.charCodeAt(++t.position)}while(!is_EOL(u)&&0!==u)}for(;0!==u;){for(readLineBreak(t),t.lineIndent=0,u=t.input.charCodeAt(t.position);(!c||t.lineIndentl&&(l=t.lineIndent),is_EOL(u))p++;else{if(t.lineIndent0){for(o=a,u=0;o>0;o--)(a=fromHexCode(i=t.input.charCodeAt(++t.position)))>=0?u=(u<<4)+a:throwError(t,"expected hexadecimal character");t.result+=charFromCodepoint(u),t.position++}else throwError(t,"unknown escape sequence");r=n=t.position}else is_EOL(i)?(captureSegment(t,r,n,!0),writeFoldedLines(t,skipSeparationSpace(t,!1,e)),r=n=t.position):t.position===t.lineStart&&testDocumentSeparator(t)?throwError(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}throwError(t,"unexpected end of the stream within a double quoted scalar")}(t,p)?d=!0:function(t){var e,r,n;if(42!==(n=t.input.charCodeAt(t.position)))return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!is_WS_OR_EOL(n)&&!is_FLOW_INDICATOR(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&throwError(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),___hasOwnProperty_10.call(t.anchorMap,r)||throwError(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],skipSeparationSpace(t,!0,-1),!0}(t)?(d=!0,null===t.tag&&null===t.anchor||throwError(t,"alias node should not have any properties")):function(t,e,r){var n,o,u,a,i,s,c,l,p=t.kind,f=t.result;if(is_WS_OR_EOL(l=t.input.charCodeAt(t.position))||is_FLOW_INDICATOR(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n)))return!1;for(t.kind="scalar",t.result="",o=u=t.position,a=!1;0!==l;){if(58===l){if(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n))break}else if(35===l){if(is_WS_OR_EOL(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&testDocumentSeparator(t)||r&&is_FLOW_INDICATOR(l))break;if(is_EOL(l)){if(i=t.line,s=t.lineStart,c=t.lineIndent,skipSeparationSpace(t,!1,-1),t.lineIndent>=e){a=!0,l=t.input.charCodeAt(t.position);continue}t.position=u,t.line=i,t.lineStart=s,t.lineIndent=c;break}}a&&(captureSegment(t,o,u,!1),writeFoldedLines(t,t.line-i),o=u=t.position,a=!1),is_WHITE_SPACE(l)||(u=t.position+1),l=t.input.charCodeAt(++t.position)}return captureSegment(t,o,u,!1),!!t.result||(t.kind=p,t.result=f,!1)}(t,p,CONTEXT_FLOW_IN===r)&&(d=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===h&&(d=i&&readBlockSequence(t,f))),null!==t.tag&&"!"!==t.tag)if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&throwError(t,'unacceptable node kind for ! tag; it should be "scalar", not "'+t.kind+'"'),s=0,c=t.implicitTypes.length;s tag; it should be "'+l.kind+'", not "'+t.kind+'"'),l.resolve(t.result)?(t.result=l.construct(t.result),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):throwError(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):throwError(t,"unknown tag !<"+t.tag+">");return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||d}function readDocument(t){var e,r,n,o,u=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};0!==(o=t.input.charCodeAt(t.position))&&(skipSeparationSpace(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==o));){for(a=!0,o=t.input.charCodeAt(++t.position),e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);for(n=[],(r=t.input.slice(e,t.position)).length<1&&throwError(t,"directive name must not be less than one character in length");0!==o;){for(;is_WHITE_SPACE(o);)o=t.input.charCodeAt(++t.position);if(35===o){do{o=t.input.charCodeAt(++t.position)}while(0!==o&&!is_EOL(o));break}if(is_EOL(o))break;for(e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(e,t.position))}0!==o&&readLineBreak(t),___hasOwnProperty_10.call(directiveHandlers,r)?directiveHandlers[r](t,r,n):throwWarning(t,'unknown document directive "'+r+'"')}skipSeparationSpace(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,skipSeparationSpace(t,!0,-1)):a&&throwError(t,"directives end mark is expected"),composeNode(t,t.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(t,!0,-1),t.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(t.input.slice(u,t.position))&&throwWarning(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&testDocumentSeparator(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,skipSeparationSpace(t,!0,-1)):t.position0?t.charCodeAt(u-1):null,h=h&&isPlainSafe(a,i)}else{for(u=0;un&&" "!==t[f+1],f=u);else if(!isPrintable(a))return STYLE_DOUBLE;i=u>0?t.charCodeAt(u-1):null,h=h&&isPlainSafe(a,i)}l=l||p&&u-f-1>n&&" "!==t[f+1]}return c||l?r>9&&needIndentIndicator(t)?STYLE_DOUBLE:l?STYLE_FOLDED:STYLE_LITERAL:h&&!o(t)?STYLE_PLAIN:STYLE_SINGLE}function writeScalar(t,e,r,n){t.dump=function(){if(0===e.length)return"''";if(!t.noCompatMode&&-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(e))return"'"+e+"'";var o=t.indent*Math.max(1,r),u=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),a=n||t.flowLevel>-1&&r>=t.flowLevel;switch(chooseScalarStyle(e,a,t.indent,u,(function(e){return function(t,e){var r,n;for(r=0,n=t.implicitTypes.length;r"+blockHeader(e,t.indent)+dropEndingNewline(indentString(function(t,e){for(var r,n,o,u=/(\n+)([^\n]*)/g,a=(o=-1!==(o=t.indexOf("\n"))?o:t.length,u.lastIndex=o,foldLine(t.slice(0,o),e)),i="\n"===t[0]||" "===t[0];n=u.exec(t);){var s=n[1],c=n[2];r=" "===c[0],a+=s+(i||r||""===c?"":"\n")+foldLine(c,e),i=r}return a}(e,u),o));case STYLE_DOUBLE:return'"'+function(t){for(var e,r,n,o="",u=0;u=55296&&e<=56319&&(r=t.charCodeAt(u+1))>=56320&&r<=57343?(o+=encodeHex(1024*(e-55296)+r-56320+65536),u++):o+=!(n=ESCAPE_SEQUENCES[e])&&isPrintable(e)?t[u]:n||encodeHex(e);return o}(e)+'"';default:throw new _$exception_9("impossible error: invalid scalar style")}}()}function blockHeader(t,e){var r=needIndentIndicator(t)?String(e):"",n="\n"===t[t.length-1];return r+(!n||"\n"!==t[t.length-2]&&"\n"!==t?n?"":"-":"+")+"\n"}function dropEndingNewline(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function foldLine(t,e){if(""===t||" "===t[0])return t;for(var r,n,o=/ [^ ]/g,u=0,a=0,i=0,s="";r=o.exec(t);)(i=r.index)-u>e&&(n=a>u?a:i,s+="\n"+t.slice(u,n),u=n+1),a=i;return s+="\n",t.length-u>e&&a>u?s+=t.slice(u,a)+"\n"+t.slice(a+1):s+=t.slice(u),s.slice(1)}function detectType(t,e,r){var n,o,u,a,i,s;for(u=0,a=(o=r?t.explicitTypes:t.implicitTypes).length;u tag resolver accepts not "'+s+'" style');n=i.represent[s](e,s)}t.dump=n}return!0}return!1}function writeNode(t,e,r,n,o,u){t.tag=null,t.dump=r,detectType(t,r,!1)||detectType(t,r,!0);var a=___toString_8.call(t.dump);n&&(n=t.flowLevel<0||t.flowLevel>e);var i,s,c="[object Object]"===a||"[object Array]"===a;if(c&&(s=-1!==(i=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||s||2!==t.indent&&e>0)&&(o=!1),s&&t.usedDuplicates[i])t.dump="*ref_"+i;else{if(c&&s&&!t.usedDuplicates[i]&&(t.usedDuplicates[i]=!0),"[object Object]"===a)n&&0!==Object.keys(t.dump).length?(function(t,e,r,n){var o,u,a,i,s,c,l="",p=t.tag,f=Object.keys(r);if(!0===t.sortKeys)f.sort();else if("function"==typeof t.sortKeys)f.sort(t.sortKeys);else if(t.sortKeys)throw new _$exception_9("sortKeys must be a boolean or a function");for(o=0,u=f.length;o1024)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?c+="?":c+="? "),c+=t.dump,s&&(c+=generateNextLine(t,e)),writeNode(t,e+1,i,!0,s)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?c+=":":c+=": ",l+=c+=t.dump));t.tag=p,t.dump=l||"{}"}(t,e,t.dump,o),s&&(t.dump="&ref_"+i+t.dump)):(function(t,e,r){var n,o,u,a,i,s="",c=t.tag,l=Object.keys(r);for(n=0,o=l.length;n1024&&(i+="? "),i+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),writeNode(t,e,a,!1,!1)&&(s+=i+=t.dump));t.tag=c,t.dump="{"+s+"}"}(t,e,t.dump),s&&(t.dump="&ref_"+i+" "+t.dump));else if("[object Array]"===a){var l=t.noArrayIndent&&e>0?e-1:e;n&&0!==t.dump.length?(function(t,e,r,n){var o,u,a="",i=t.tag;for(o=0,u=r.length;o "+t.dump)}return!0}function getDuplicateReferences(t,e){var r,n,o=[],u=[];for(function t(e,r,n){var o,u,a;if(null!==e&&"object"==typeof e)if(-1!==(u=r.indexOf(e)))-1===n.indexOf(u)&&n.push(u);else if(r.push(e),Array.isArray(e))for(u=0,a=e.length;u0?o-4:o;for(r=0;r>16&255,a[i++]=e>>8&255,a[i++]=255&e;return 2===u&&(e=revLookup[t.charCodeAt(r)]<<2|revLookup[t.charCodeAt(r+1)]>>4,a[i++]=255&e),1===u&&(e=revLookup[t.charCodeAt(r)]<<10|revLookup[t.charCodeAt(r+1)]<<4|revLookup[t.charCodeAt(r+2)]>>2,a[i++]=e>>8&255,a[i++]=255&e),a},fromByteArray:function(t){for(var e,r=t.length,n=r%3,o=[],u=0,a=r-n;ua?a:u+16383));return 1===n?(e=t[r-1],o.push(lookup[e>>2]+lookup[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],o.push(lookup[e>>10]+lookup[e>>4&63]+lookup[e<<2&63]+"=")),o.join("")}},lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",__i_1=0,len=code.length;__i_10)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function encodeChunk(t,e,r){for(var n,o,u=[],a=e;a>18&63]+lookup[o>>12&63]+lookup[o>>6&63]+lookup[63&o]);return u.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var _$ieee754_3={read:function(t,e,r,n,o){var u,a,i=8*o-n-1,s=(1<>1,l=-7,p=r?o-1:0,f=r?-1:1,h=t[e+p];for(p+=f,u=h&(1<<-l)-1,h>>=-l,l+=i;l>0;u=256*u+t[e+p],p+=f,l-=8);for(a=u&(1<<-l)-1,u>>=-l,l+=n;l>0;a=256*a+t[e+p],p+=f,l-=8);if(0===u)u=1-c;else{if(u===s)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),u-=c}return(h?-1:1)*a*Math.pow(2,u-n)},write:function(t,e,r,n,o,u){var a,i,s,c=8*u-o-1,l=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:u-1,_=n?1:-1,d=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(i=isNaN(e)?1:0,a=l):(a=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-a))<1&&(a--,s*=2),(e+=a+p>=1?f/s:f*Math.pow(2,1-p))*s>=2&&(a++,s/=2),a+p>=l?(i=0,a=l):a+p>=1?(i=(e*s-1)*Math.pow(2,o),a+=p):(i=e*Math.pow(2,p-1)*Math.pow(2,o),a=0));o>=8;t[r+h]=255&i,h+=_,i/=256,o-=8);for(a=a<0;t[r+h]=255&a,h+=_,a/=256,c-=8);t[r+h-_]|=128*d}},_$base64_4={exports:{}};(function(t,e){(function(){!function(t,e){var r,n;"object"==typeof _$base64_4.exports?_$base64_4.exports=e():"function"==typeof define&&define.amd?define(e):(r=t.Base64,(n=e()).noConflict=function(){return t.Base64=r,n},t.Meteor&&(Base64=n),t.Base64=n)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:this,(function(){"use strict";var t,r="function"==typeof atob,n="function"==typeof btoa,o="function"==typeof e,u="function"==typeof TextDecoder?new TextDecoder:void 0,a="function"==typeof TextEncoder?new TextEncoder:void 0,i=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),s=(t={},i.forEach((function(e,r){return t[e]=r})),t),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,l=String.fromCharCode.bind(String),p="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t,e){return void 0===e&&(e=function(t){return t}),new Uint8Array(Array.prototype.slice.call(t,0).map(e))},f=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},h=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},_=function(t){for(var e,r,n,o,u="",a=t.length%3,s=0;s255||(n=t.charCodeAt(s++))>255||(o=t.charCodeAt(s++))>255)throw new TypeError("invalid character found");u+=i[(e=r<<16|n<<8|o)>>18&63]+i[e>>12&63]+i[e>>6&63]+i[63&e]}return a?u.slice(0,a-3)+"===".substring(a):u},d=n?function(t){return btoa(t)}:o?function(t){return e.from(t,"binary").toString("base64")}:_,g=o?function(t){return e.from(t).toString("base64")}:function(t){for(var e=[],r=0,n=t.length;r>>6)+l(128|63&e):l(224|e>>>12&15)+l(128|e>>>6&63)+l(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return l(240|e>>>18&7)+l(128|e>>>12&63)+l(128|e>>>6&63)+l(128|63&e)},v=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,A=function(t){return t.replace(v,m)},E=o?function(t){return e.from(t,"utf8").toString("base64")}:a?function(t){return g(a.encode(t))}:function(t){return d(A(t))},b=function(t,e){return void 0===e&&(e=!1),e?f(E(t)):E(t)},w=function(t){return b(t,!0)},C=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,x=function(t){switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return l(55296+(e>>>10))+l(56320+(1023&e));case 3:return l((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return l((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},S=function(t){return t.replace(C,x)},$=function(t){if(t=t.replace(/\s+/g,""),!c.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var e,r,n,o="",u=0;u>16&255):64===n?l(e>>16&255,e>>8&255):l(e>>16&255,e>>8&255,255&e);return o},O=r?function(t){return atob(h(t))}:o?function(t){return e.from(t,"base64").toString("binary")}:$,F=o?function(t){return p(e.from(t,"base64"))}:function(t){return p(O(t),(function(t){return t.charCodeAt(0)}))},D=function(t){return F(L(t))},R=o?function(t){return e.from(t,"base64").toString("utf8")}:u?function(t){return u.decode(F(t))}:function(t){return S(O(t))},L=function(t){return h(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},P=function(t){return R(L(t))},B=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},T=function(){var t=function(t,e){return Object.defineProperty(String.prototype,t,B(e))};t("fromBase64",(function(){return P(this)})),t("toBase64",(function(t){return b(this,t)})),t("toBase64URI",(function(){return b(this,!0)})),t("toBase64URL",(function(){return b(this,!0)})),t("toUint8Array",(function(){return D(this)}))},k=function(){var t=function(t,e){return Object.defineProperty(Uint8Array.prototype,t,B(e))};t("toBase64",(function(t){return y(this,t)})),t("toBase64URI",(function(){return y(this,!0)})),t("toBase64URL",(function(){return y(this,!0)}))},I={version:"3.7.2",VERSION:"3.7.2",atob:O,atobPolyfill:$,btoa:d,btoaPolyfill:_,fromBase64:P,toBase64:b,encode:b,encodeURI:w,encodeURL:w,utob:A,btou:S,decode:P,isValid:function(t){if("string"!=typeof t)return!1;var e=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},fromUint8Array:y,toUint8Array:D,extendString:T,extendUint8Array:k,extendBuiltins:function(){T(),k()},Base64:{}};return Object.keys(I).forEach((function(t){return I.Base64[t]=I[t]})),I}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},_$buffer_2({}).Buffer),_$base64_4=_$base64_4.exports;var _$preprocessors_72={};Object.defineProperty(_$preprocessors_72,"__esModule",{value:!0}),_$preprocessors_72.default=void 0;var keys,___default_72=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},(keys=["dm1lc3M","c3NyOi8v","dHJvamFu","c3M6Ly","c3NkOi8v","c2hhZG93","aHR0c"],{name:"Base64 Pre-processor",test:function(t){return keys.some((function(e){return-1!==t.indexOf(e)}))},parse:function(t){return _$base64_4.Base64.decode(t)}}),{name:"Clash Pre-processor",test:function(t){return/proxies/.test(t)},parse:function(t){return(0,_$staticJsYaml_65.safeLoad)(t).proxies.map((function(t){return JSON.stringify(t)})).join("\n")}},{name:"SSD Pre-processor",test:function(t){return 0===t.indexOf("ssd://")},parse:function(t){for(var e=[],r=JSON.parse(_$base64_4.Base64.decode(t.split("ssd://")[1])),n=r.port,o=r.encryption,u=r.password,a=r.servers,i=0;it.length)&&(e=t.length);for(var r=0,n=new Array(e);r (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleWebsocket() {\n if (obfs.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (shadowsocks/vmess/trojan/https/http/snell/socks5/socks5_tls) {\n return proxy;\n}\n\nshadowsocks = tag equals "ss" address (method/passwordk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess" address (vmess_uuid/vmess_aead/ws/ws_path/ws_headers/method/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleWebsocket();\n}\ntrojan = tag equals "trojan" address (passwordk/ws/ws_path/ws_headers/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleWebsocket();\n}\nhttps = tag equals "https" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http" address (username password)? (fast_open/others)* {\n proxy.type = "http";\n}\nsnell = tag equals "snell" address (snell_version/snell_psk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "snell";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n $set(proxy, "obfs-opts.mode", obfs.type);\n $set(proxy, "obfs-opts.host", obfs.host);\n $set(proxy, "obfs-opts.path", obfs.path);\n }\n}\nsocks5 = tag equals "socks5" address (username password)? (fast_open/others)* {\n proxy.type = "socks5";\n}\nsocks5_tls = tag equals "socks5-tls" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "socks5";\n proxy.tls = true;\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma match:[^,]+ { proxy.password = match.join(""); }\n\ntls = comma "tls" equals flag:bool { proxy.tls = flag; }\nsni = comma "sni" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nsnell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join(""); }\nsnell_version = comma "version" equals match:$[0-9]+ { proxy.version = parseInt(match.trim()); }\n\npasswordk = comma "password" equals match:[^,]+ { proxy.password = match.join(""); }\nvmess_uuid = comma "username" equals match:[^,]+ { proxy.uuid = match.join(""); }\nvmess_aead = comma "vmess-aead" equals flag:bool { proxy.alterId = 0; }\n\nmethod = comma "encrypt-method" equals cipher:cipher {\n proxy.cipher = cipher;\n}\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nws = comma "ws" equals flag:bool { obfs.type = "ws"; }\nws_headers = comma "ws-headers" equals "Host:" host:domain {\n obfs.host = host;\n}\nws_path = comma "ws-path" equals path:uri { obfs.path = path; }\n\nobfs = comma "obfs" equals type:("http"/"tls") { obfs.type = type; }\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; };\nobfs_uri = comma "obfs-uri" equals path:uri { obfs.path = path }\nuri = $[^,]+\n\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \r\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'],(raw=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleWebsocket() {\n if (obfs.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (shadowsocks/vmess/trojan/https/http/snell/socks5/socks5_tls) {\n return proxy;\n}\n\nshadowsocks = tag equals "ss" address (method/passwordk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess" address (vmess_uuid/vmess_aead/ws/ws_path/ws_headers/method/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleWebsocket();\n}\ntrojan = tag equals "trojan" address (passwordk/ws/ws_path/ws_headers/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleWebsocket();\n}\nhttps = tag equals "https" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http" address (username password)? (fast_open/others)* {\n proxy.type = "http";\n}\nsnell = tag equals "snell" address (snell_version/snell_psk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "snell";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n $set(proxy, "obfs-opts.mode", obfs.type);\n $set(proxy, "obfs-opts.host", obfs.host);\n $set(proxy, "obfs-opts.path", obfs.path);\n }\n}\nsocks5 = tag equals "socks5" address (username password)? (fast_open/others)* {\n proxy.type = "socks5";\n}\nsocks5_tls = tag equals "socks5-tls" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "socks5";\n proxy.tls = true;\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma match:[^,]+ { proxy.password = match.join(""); }\n\ntls = comma "tls" equals flag:bool { proxy.tls = flag; }\nsni = comma "sni" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nsnell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join(""); }\nsnell_version = comma "version" equals match:$[0-9]+ { proxy.version = parseInt(match.trim()); }\n\npasswordk = comma "password" equals match:[^,]+ { proxy.password = match.join(""); }\nvmess_uuid = comma "username" equals match:[^,]+ { proxy.uuid = match.join(""); }\nvmess_aead = comma "vmess-aead" equals flag:bool { proxy.alterId = 0; }\n\nmethod = comma "encrypt-method" equals cipher:cipher {\n proxy.cipher = cipher;\n}\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nws = comma "ws" equals flag:bool { obfs.type = "ws"; }\nws_headers = comma "ws-headers" equals "Host:" host:domain {\n obfs.host = host;\n}\nws_path = comma "ws-path" equals path:uri { obfs.path = path; }\n\nobfs = comma "obfs" equals type:("http"/"tls") { obfs.type = type; }\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; };\nobfs_uri = comma "obfs-uri" equals path:uri { obfs.path = path }\nuri = $[^,]+\n\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \\r\\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'])||(raw=strings.slice(0)),_templateObject=Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))));_$surge_69.default=___default_69;var _$loon_67={},___templateObject_67;Object.defineProperty(_$loon_67,"__esModule",{value:!0}),_$loon_67.default=void 0;var __strings_67,__raw_67,___default_67=String.raw(___templateObject_67||(__strings_67=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const transport = {};\n const $ = {};\n\n function handleTransport() {\n if (transport.type === "tcp") { /* do nothing */ }\n else if (transport.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", transport.path);\n $set(proxy, "ws-opts.headers.Host", transport.host);\n } else if (transport.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", transport.path);\n $set(proxy, "http-opts.headers.Host", transport.host);\n }\n }\n}\n\nstart = (shadowsocksr/shadowsocks/vmess/vless/trojan/https/http) {\n return proxy;\n}\n\nshadowsocksr = tag equals "shadowsocksr"i address method password (ssr_protocol/ssr_protocol_param/obfs_ssr/obfs_ssr_param/obfs_host/obfs_uri/fast_open/udp_relay/others)*{\n proxy.type = "ssr";\n // handle ssr obfs\n proxy.obfs = obfs.type;\n}\nshadowsocks = tag equals "shadowsocks"i address method password (obfs_ss/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/vmess_alterId/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleTransport();\n}\nvless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vless";\n handleTransport();\n}\ntrojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleTransport();\n}\nhttps = tag equals "https"i address (username password)? (tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http"i address (username password)? (fast_open/udp_relay/others)* {\n proxy.type = "http";\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n throw new Error("Invalid domain: " + domain);\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n throw new Error("Invalid port number: " + port);\n}\n\nmethod = comma cipher:cipher { proxy.cipher = cipher; }\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma \'"\' match:[^"]* \'"\' { proxy.password = match.join(""); }\nuuid = comma \'"\' match:[^"]+ \'"\' { proxy.uuid = match.join(""); }\n\nobfs_ss = comma "obfs-name" equals type:("http"/"tls") { obfs.type = type; }\n\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; }\nobfs_ssr_param = comma "obfs-param" equals match:$[^,]+ { proxy["obfs-param"] = match; }\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\nuri = $[^,]+\n\ntransport = comma "transport" equals type:("tcp"/"ws"/"http") { transport.type = type; }\ntransport_host = comma "host" equals host:domain { transport.host = host; }\ntransport_path = comma "path" equals path:uri { transport.path = path; }\n\nssr_protocol = comma "protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; }\nssr_protocol_param = comma "protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nvmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseInt(alterId); } \n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-name" equals host:domain { proxy.sni = host; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \r\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'],(__raw_67=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const transport = {};\n const $ = {};\n\n function handleTransport() {\n if (transport.type === "tcp") { /* do nothing */ }\n else if (transport.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", transport.path);\n $set(proxy, "ws-opts.headers.Host", transport.host);\n } else if (transport.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", transport.path);\n $set(proxy, "http-opts.headers.Host", transport.host);\n }\n }\n}\n\nstart = (shadowsocksr/shadowsocks/vmess/vless/trojan/https/http) {\n return proxy;\n}\n\nshadowsocksr = tag equals "shadowsocksr"i address method password (ssr_protocol/ssr_protocol_param/obfs_ssr/obfs_ssr_param/obfs_host/obfs_uri/fast_open/udp_relay/others)*{\n proxy.type = "ssr";\n // handle ssr obfs\n proxy.obfs = obfs.type;\n}\nshadowsocks = tag equals "shadowsocks"i address method password (obfs_ss/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/vmess_alterId/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleTransport();\n}\nvless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vless";\n handleTransport();\n}\ntrojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleTransport();\n}\nhttps = tag equals "https"i address (username password)? (tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http"i address (username password)? (fast_open/udp_relay/others)* {\n proxy.type = "http";\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n throw new Error("Invalid domain: " + domain);\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n throw new Error("Invalid port number: " + port);\n}\n\nmethod = comma cipher:cipher { proxy.cipher = cipher; }\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma \'"\' match:[^"]* \'"\' { proxy.password = match.join(""); }\nuuid = comma \'"\' match:[^"]+ \'"\' { proxy.uuid = match.join(""); }\n\nobfs_ss = comma "obfs-name" equals type:("http"/"tls") { obfs.type = type; }\n\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; }\nobfs_ssr_param = comma "obfs-param" equals match:$[^,]+ { proxy["obfs-param"] = match; }\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\nuri = $[^,]+\n\ntransport = comma "transport" equals type:("tcp"/"ws"/"http") { transport.type = type; }\ntransport_host = comma "host" equals host:domain { transport.host = host; }\ntransport_path = comma "path" equals path:uri { transport.path = path; }\n\nssr_protocol = comma "protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; }\nssr_protocol_param = comma "protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nvmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseInt(alterId); } \n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-name" equals host:domain { proxy.sni = host; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \\r\\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'])||(__raw_67=__strings_67.slice(0)),___templateObject_67=Object.freeze(Object.defineProperties(__strings_67,{raw:{value:Object.freeze(__raw_67)}}))));_$loon_67.default=___default_67;var _$qx_68={},___templateObject_68;Object.defineProperty(_$qx_68,"__esModule",{value:!0}),_$qx_68.default=void 0;var __strings_68,__raw_68,___default_68=String.raw(___templateObject_68||(__strings_68=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parse initializer\n{\n\tconst proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleObfs() {\n if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.network = "ws";\n if (obfs.type === \'wss\') {\n proxy.tls = true;\n }\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n } else if (obfs.type === "over-tls") {\n proxy.tls = true;\n proxy.sni = proxy.sni || proxy.server;\n } else if (obfs.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", obfs.path);\n $set(proxy, "http-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (trojan/shadowsocks/vmess/http/socks5) {\n return proxy\n}\n\ntrojan = "trojan" equals address\n (password/over_tls/tls_host/tls_verification/obfs/obfs_host/obfs_uri/tag/udp_relay/udp_over_tcp/fast_open/others)* {\n proxy.type = "trojan";\n handleObfs();\n}\n\nshadowsocks = "shadowsocks" equals address\n (password/method/obfs_ssr/obfs_ss/obfs_host/obfs_uri/ssr_protocol/ssr_protocol_param/tls_verification/udp_relay/udp_over_tcp/fast_open/tag/others)* {\n if (proxy.protocol) {\n proxy.type = "ssr";\n // handle ssr obfs\n if (obfs.host) proxy["obfs-param"] = obfs.host;\n if (obfs.type) proxy.obfs = obfs.type;\n } else {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts", {\n mode: obfs.type\n });\n } else if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.plugin = "v2ray-plugin";\n $set(proxy, "plugin-opts.mode", "websocket");\n if (obfs.type === "wss") {\n $set(proxy, "plugin-opts.tls", true);\n }\n } else if (obfs.type === \'over-tls\') {\n throw new Error(\'ss over-tls is not supported\');\n }\n if (obfs.type) {\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n }\n}\n\nvmess = "vmess" equals address\n (uuid/method/over_tls/tls_host/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/others)* {\n proxy.type = "vmess";\n handleObfs();\n}\n\nhttp = "http" equals address \n (username/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)*{\n proxy.type = "http";\n}\n\nsocks5 = "socks5" equals address\n (username/password/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)* {\n proxy.type = "socks5";\n}\n \naddress = server:server ":" port:port {\n proxy.server = server;\n proxy.port = port;\n}\nserver = ip/domain\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nip = & {\n const start = peg$currPos;\n let end;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n if (input[j] === ":") end = j;\n j++;\n }\n peg$currPos = end || j;\n $.ip = input.substring(start, end).trim();\n return true;\n} { return $.ip; }\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = comma "username" equals username:[^=,]+ { proxy.username = username.join("").trim(); }\npassword = comma "password" equals password:[^=,]+ { proxy.password = password.join("").trim(); }\nuuid = comma "password" equals uuid:[^=,]+ { proxy.uuid = uuid.join("").trim(); }\n\nmethod = comma "method" equals cipher:cipher { proxy.cipher = cipher };\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf-poly1305"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\naead = comma "aead" equals flag:bool { proxy.alterId = 0; }\n\nudp_relay = comma "udp-relay" equals flag:bool { proxy.udp = flag; }\nudp_over_tcp = comma "udp-over-tcp" equals flag:bool { throw new Error("UDP over TCP is not supported"); }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-host" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "tls-verification" equals flag:bool { \n if (!flag) {\n proxy["skip-cert-verify"] = true;\n }\n}\n\nobfs_ss = comma "obfs" equals type:("http"/"tls"/"wss"/"ws") { obfs.type = type; return type; }\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; return type; }\nobfs = comma "obfs" equals type:("wss"/"ws"/"over-tls"/"http") { obfs.type = type; return type; };\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\n\nssr_protocol = comma "ssr-protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; return protocol; }\nssr_protocol_param = comma "ssr-protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nuri = $[^,]+\n\ntag = comma "tag" equals tag:[^=,]+ { proxy.name = tag.join(""); }\nothers = comma [^=,]+ equals [^=,]+\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \r\t]*\nbool = b:("true"/"false") { return b === "true" }\n'],(__raw_68=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parse initializer\n{\n\tconst proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleObfs() {\n if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.network = "ws";\n if (obfs.type === \'wss\') {\n proxy.tls = true;\n }\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n } else if (obfs.type === "over-tls") {\n proxy.tls = true;\n proxy.sni = proxy.sni || proxy.server;\n } else if (obfs.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", obfs.path);\n $set(proxy, "http-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (trojan/shadowsocks/vmess/http/socks5) {\n return proxy\n}\n\ntrojan = "trojan" equals address\n (password/over_tls/tls_host/tls_verification/obfs/obfs_host/obfs_uri/tag/udp_relay/udp_over_tcp/fast_open/others)* {\n proxy.type = "trojan";\n handleObfs();\n}\n\nshadowsocks = "shadowsocks" equals address\n (password/method/obfs_ssr/obfs_ss/obfs_host/obfs_uri/ssr_protocol/ssr_protocol_param/tls_verification/udp_relay/udp_over_tcp/fast_open/tag/others)* {\n if (proxy.protocol) {\n proxy.type = "ssr";\n // handle ssr obfs\n if (obfs.host) proxy["obfs-param"] = obfs.host;\n if (obfs.type) proxy.obfs = obfs.type;\n } else {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts", {\n mode: obfs.type\n });\n } else if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.plugin = "v2ray-plugin";\n $set(proxy, "plugin-opts.mode", "websocket");\n if (obfs.type === "wss") {\n $set(proxy, "plugin-opts.tls", true);\n }\n } else if (obfs.type === \'over-tls\') {\n throw new Error(\'ss over-tls is not supported\');\n }\n if (obfs.type) {\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n }\n}\n\nvmess = "vmess" equals address\n (uuid/method/over_tls/tls_host/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/others)* {\n proxy.type = "vmess";\n handleObfs();\n}\n\nhttp = "http" equals address \n (username/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)*{\n proxy.type = "http";\n}\n\nsocks5 = "socks5" equals address\n (username/password/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)* {\n proxy.type = "socks5";\n}\n \naddress = server:server ":" port:port {\n proxy.server = server;\n proxy.port = port;\n}\nserver = ip/domain\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nip = & {\n const start = peg$currPos;\n let end;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n if (input[j] === ":") end = j;\n j++;\n }\n peg$currPos = end || j;\n $.ip = input.substring(start, end).trim();\n return true;\n} { return $.ip; }\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = comma "username" equals username:[^=,]+ { proxy.username = username.join("").trim(); }\npassword = comma "password" equals password:[^=,]+ { proxy.password = password.join("").trim(); }\nuuid = comma "password" equals uuid:[^=,]+ { proxy.uuid = uuid.join("").trim(); }\n\nmethod = comma "method" equals cipher:cipher { proxy.cipher = cipher };\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf-poly1305"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\naead = comma "aead" equals flag:bool { proxy.alterId = 0; }\n\nudp_relay = comma "udp-relay" equals flag:bool { proxy.udp = flag; }\nudp_over_tcp = comma "udp-over-tcp" equals flag:bool { throw new Error("UDP over TCP is not supported"); }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-host" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "tls-verification" equals flag:bool { \n if (!flag) {\n proxy["skip-cert-verify"] = true;\n }\n}\n\nobfs_ss = comma "obfs" equals type:("http"/"tls"/"wss"/"ws") { obfs.type = type; return type; }\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; return type; }\nobfs = comma "obfs" equals type:("wss"/"ws"/"over-tls"/"http") { obfs.type = type; return type; };\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\n\nssr_protocol = comma "ssr-protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; return protocol; }\nssr_protocol_param = comma "ssr-protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nuri = $[^,]+\n\ntag = comma "tag" equals tag:[^=,]+ { proxy.name = tag.join(""); }\nothers = comma [^=,]+ equals [^=,]+\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \\r\\t]*\nbool = b:("true"/"false") { return b === "true" }\n'])||(__raw_68=__strings_68.slice(0)),___templateObject_68=Object.freeze(Object.defineProperties(__strings_68,{raw:{value:Object.freeze(__raw_68)}}))));_$qx_68.default=___default_68;const setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])};class GrammarError extends Error{constructor(t,e,r){super(t),setProtoOf(this,GrammarError.prototype),this.name="GrammarError",this.location=e,void 0===r&&(r=[]),this.diagnostics=r,this.stage=null,this.problems=[["error",t,e,r]]}toString(){let t=super.toString();this.location&&(t+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(t+=this.location.source+":"),t+=`${this.location.start.line}:${this.location.start.column}`);for(const e of this.diagnostics)t+="\n from ",void 0!==e.location.source&&null!==e.location.source&&(t+=e.location.source+":"),t+=`${e.location.start.line}:${e.location.start.column}: ${e.message}`;return t}format(t){const e=t.map(({source:t,text:e})=>({source:t,text:e.split(/\r\n|\n|\r/g)}));function r(t,r,n=""){let o="";const u=e.find(({source:e})=>e===t.source),a=t.start;if(u){const e=t.end,i=u.text[a.line-1],s=(a.line===e.line?e.column:i.length+1)-a.column||1;n&&(o+="\nnote: "+n),o+=`\n --\x3e ${t.source}:${a.line}:${a.column}\n${"".padEnd(r)} |\n${a.line.toString().padStart(r)} | ${i}\n${"".padEnd(r)} | ${"".padEnd(a.column-1)}${"".padEnd(s,"^")}`}else o+=`\n at ${t.source}:${a.line}:${a.column}`,n&&(o+=": "+n);return o}return this.problems.filter(t=>"info"!==t[0]).map(t=>function(t,e,n,o=[]){let u;u=(u=n?o.reduce((t,{location:e})=>Math.max(t,e.start.line),n.start.line):Math.max.apply(null,o.map(t=>t.location.start.line))).toString().length;let a=`${t}: ${e}`;n&&(a+=r(n,u));for(const i of o)a+=r(i.location,u,i.message);return a}(...t)).join("\n\n")}}var _$GrammarError_53=GrammarError;const visitor={build(t){function e(e,...r){return t[e.type](e,...r)}function r(){}function n(t,...r){return e(t.expression,...r)}function o(t){return function(r,...n){r[t].forEach(t=>e(t,...n))}}const u={grammar(t,...r){t.topLevelInitializer&&e(t.topLevelInitializer,...r),t.initializer&&e(t.initializer,...r),t.rules.forEach(t=>e(t,...r))},top_level_initializer:r,initializer:r,rule:n,named:n,choice:o("alternatives"),action:n,sequence:o("elements"),labeled:n,text:n,simple_and:n,simple_not:n,optional:n,zero_or_more:n,one_or_more:n,group:n,semantic_and:r,semantic_not:r,rule_ref:r,literal:r,class:r,any:r};return Object.keys(u).forEach(e=>{Object.prototype.hasOwnProperty.call(t,e)||(t[e]=u[e])}),e}};var _$visitor_52=visitor;const asts={findRule(t,e){for(let r=0;rt.alternatives.every(o),sequence:t=>t.elements.some(o),simple_and:n,simple_not:n,optional:n,zero_or_more:n,semantic_and:n,semantic_not:n,rule_ref(e){const r=asts.findRule(t,e.name);return r?o(r):void 0},literal:t=>""!==t.value,class:r,any:r});return o(e)}};var _$asts_36=asts,_$opcodes_38={PUSH:0,PUSH_EMPTY_STRING:35,PUSH_UNDEFINED:1,PUSH_NULL:2,PUSH_FAILED:3,PUSH_EMPTY_ARRAY:4,PUSH_CURR_POS:5,POP:6,POP_CURR_POS:7,POP_N:8,NIP:9,APPEND:10,WRAP:11,TEXT:12,PLUCK:36,IF:13,IF_ERROR:14,IF_NOT_ERROR:15,WHILE_NOT_ERROR:16,MATCH_ANY:17,MATCH_STRING:18,MATCH_STRING_IC:19,MATCH_CHAR_CLASS:20,MATCH_REGEXP:20,ACCEPT_N:21,ACCEPT_STRING:22,FAIL:23,LOAD_SAVED_POS:24,UPDATE_SAVED_POS:25,CALL:26,RULE:27,SILENT_FAILS_ON:28,SILENT_FAILS_OFF:29},_$inferenceMatchResult_41={};const ALWAYS_MATCH=1,SOMETIMES_MATCH=0,NEVER_MATCH=-1;function inferenceMatchResult(t){function e(t){return t.match=SOMETIMES_MATCH}function r(t){return u(t.expression),t.match=ALWAYS_MATCH}function n(t){return t.match=u(t.expression)}function o(t,e){const r=t.length;let n=0,o=0;for(let a=0;a0?NEVER_MATCH:SOMETIMES_MATCH}const u=_$visitor_52.build({rule(t){let e,r=0;if(void 0===t.match){t.match=SOMETIMES_MATCH;do{if(e=t.match,t.match=u(t.expression),++r>6)throw new _$GrammarError_53("Infinity cycle detected when trying to evaluate node match result",t.location)}while(e!==t.match)}return t.match},named:n,choice:t=>t.match=o(t.alternatives,!0),action:n,sequence:t=>t.match=o(t.elements,!1),labeled:n,text:n,simple_and:n,simple_not:t=>t.match=-u(t.expression),optional:r,zero_or_more:r,one_or_more:n,group:n,semantic_and:e,semantic_not:e,rule_ref(e){const r=_$asts_36.findRule(t,e.name);return e.match=u(r)},literal(t){const e=0===t.value.length?ALWAYS_MATCH:SOMETIMES_MATCH;return t.match=e},class(t){const e=0===t.parts.length?NEVER_MATCH:SOMETIMES_MATCH;return t.match=e},any:e});u(t)}inferenceMatchResult.ALWAYS_MATCH=ALWAYS_MATCH,inferenceMatchResult.SOMETIMES_MATCH=SOMETIMES_MATCH,inferenceMatchResult.NEVER_MATCH=NEVER_MATCH,_$inferenceMatchResult_41=inferenceMatchResult;const{ALWAYS_MATCH:__ALWAYS_MATCH_39,SOMETIMES_MATCH:__SOMETIMES_MATCH_39,NEVER_MATCH:__NEVER_MATCH_39}=_$inferenceMatchResult_41;var _$generateBytecode_39=function(t){const e=[],r=[],n=[],o=[];function u(t){const e=JSON.stringify(t),r=n.findIndex(t=>JSON.stringify(t)===e);return-1===r?n.push(t)-1:r}function a(t,e,r){const n={predicate:t,params:e,body:r.code,location:r.codeLocation},u=JSON.stringify(n),a=o.findIndex(t=>JSON.stringify(t)===u);return-1===a?o.push(n)-1:a}function i(t){const e={};return Object.keys(t).forEach(r=>{e[r]=t[r]}),e}function s(t,...e){return t.concat(...e)}function c(t,e,r,n){return t===__ALWAYS_MATCH_39?r:t===__NEVER_MATCH_39?n:e.concat([r.length,n.length],r,n)}function l(t,e,r,n){const o=Object.keys(r).map(t=>n-r[t]);return[_$opcodes_38.CALL,t,e,o.length].concat(o)}function p(t,e,r){const n=0|t.match;return s([_$opcodes_38.PUSH_CURR_POS],[_$opcodes_38.SILENT_FAILS_ON],_(t,{sp:r.sp+1,env:i(r.env),action:null}),[_$opcodes_38.SILENT_FAILS_OFF],c(e?-n:n,[e?_$opcodes_38.IF_ERROR:_$opcodes_38.IF_NOT_ERROR],s([_$opcodes_38.POP],[e?_$opcodes_38.POP:_$opcodes_38.POP_CURR_POS],[_$opcodes_38.PUSH_UNDEFINED]),s([_$opcodes_38.POP],[e?_$opcodes_38.POP_CURR_POS:_$opcodes_38.POP],[_$opcodes_38.PUSH_FAILED])))}function f(t,e,r){const n=a(!0,Object.keys(r.env),t);return s([_$opcodes_38.UPDATE_SAVED_POS],l(n,0,r.env,r.sp),c(0|t.match,[_$opcodes_38.IF],s([_$opcodes_38.POP],e?[_$opcodes_38.PUSH_FAILED]:[_$opcodes_38.PUSH_UNDEFINED]),s([_$opcodes_38.POP],e?[_$opcodes_38.PUSH_UNDEFINED]:[_$opcodes_38.PUSH_FAILED])))}function h(t){return e=[_$opcodes_38.WHILE_NOT_ERROR],r=s([_$opcodes_38.APPEND],t),e.concat([r.length],r);var e,r}const _=_$visitor_52.build({grammar(t){t.rules.forEach(_),t.literals=e,t.classes=r,t.expectations=n,t.functions=o},rule(t){t.bytecode=_(t.expression,{sp:-1,env:{},pluck:[],action:null})},named(t,e){const r=0|t.match,n=r===__NEVER_MATCH_39?null:u({type:"rule",value:t.name});return s([_$opcodes_38.SILENT_FAILS_ON],_(t.expression,e),[_$opcodes_38.SILENT_FAILS_OFF],c(r,[_$opcodes_38.IF_ERROR],[_$opcodes_38.FAIL,n],[]))},choice:(t,e)=>function t(e,r){const n=0|e[0].match,o=_(e[0],{sp:r.sp,env:i(r.env),action:null});return n===__ALWAYS_MATCH_39?o:s(o,e.length>1?c(__SOMETIMES_MATCH_39,[_$opcodes_38.IF_ERROR],s([_$opcodes_38.POP],t(e.slice(1),r)),[]):[])}(t.alternatives,e),action(t,e){const r=i(e.env),n="sequence"!==t.expression.type||0===t.expression.elements.length,o=_(t.expression,{sp:e.sp+(n?1:0),env:r,action:t}),u=0|t.expression.match,p=n&&u!==__NEVER_MATCH_39?a(!1,Object.keys(r),t):null;return n?s([_$opcodes_38.PUSH_CURR_POS],o,c(u,[_$opcodes_38.IF_NOT_ERROR],s([_$opcodes_38.LOAD_SAVED_POS,1],l(p,1,r,e.sp+2)),[]),[_$opcodes_38.NIP]):o},sequence:(t,e)=>s([_$opcodes_38.PUSH_CURR_POS],function e(r,n){if(r.length>0){const o=t.elements.length-r.length+1;return s(_(r[0],{sp:n.sp,env:n.env,pluck:n.pluck,action:null}),c(0|r[0].match,[_$opcodes_38.IF_NOT_ERROR],e(r.slice(1),{sp:n.sp+1,env:n.env,pluck:n.pluck,action:n.action}),s(o>1?[_$opcodes_38.POP_N,o]:[_$opcodes_38.POP],[_$opcodes_38.POP_CURR_POS],[_$opcodes_38.PUSH_FAILED])))}if(n.pluck.length>0)return s([_$opcodes_38.PLUCK,t.elements.length+1,n.pluck.length],n.pluck.map(t=>n.sp-t));if(n.action){const e=a(!1,Object.keys(n.env),n.action);return s([_$opcodes_38.LOAD_SAVED_POS,t.elements.length],l(e,t.elements.length+1,n.env,n.sp))}return s([_$opcodes_38.WRAP,t.elements.length],[_$opcodes_38.NIP])}(t.elements,{sp:e.sp+1,env:e.env,pluck:[],action:e.action})),labeled(t,e){let r=e.env;const n=t.label,o=e.sp+1;return n&&(r=i(e.env),e.env[t.label]=o),t.pick&&e.pluck.push(o),_(t.expression,{sp:e.sp,env:r,action:null})},text:(t,e)=>s([_$opcodes_38.PUSH_CURR_POS],_(t.expression,{sp:e.sp+1,env:i(e.env),action:null}),c(0|t.match,[_$opcodes_38.IF_NOT_ERROR],s([_$opcodes_38.POP],[_$opcodes_38.TEXT]),[_$opcodes_38.NIP])),simple_and:(t,e)=>p(t.expression,!1,e),simple_not:(t,e)=>p(t.expression,!0,e),optional:(t,e)=>s(_(t.expression,{sp:e.sp,env:i(e.env),action:null}),c(-(0|t.expression.match),[_$opcodes_38.IF_ERROR],s([_$opcodes_38.POP],[_$opcodes_38.PUSH_NULL]),[])),zero_or_more(t,e){const r=_(t.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([_$opcodes_38.PUSH_EMPTY_ARRAY],r,h(r),[_$opcodes_38.POP])},one_or_more(t,e){const r=_(t.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([_$opcodes_38.PUSH_EMPTY_ARRAY],r,c(0|t.expression.match,[_$opcodes_38.IF_NOT_ERROR],s(h(r),[_$opcodes_38.POP]),s([_$opcodes_38.POP],[_$opcodes_38.POP],[_$opcodes_38.PUSH_FAILED])))},group:(t,e)=>_(t.expression,{sp:e.sp,env:i(e.env),action:null}),semantic_and:(t,e)=>f(t,!1,e),semantic_not:(t,e)=>f(t,!0,e),rule_ref:e=>[_$opcodes_38.RULE,_$asts_36.indexOfRule(t,e.name)],literal(t){if(t.value.length>0){const r=0|t.match,n=r===__SOMETIMES_MATCH_39||r===__ALWAYS_MATCH_39&&!t.ignoreCase?function(t){const r=e.indexOf(t);return-1===r?e.push(t)-1:r}(t.ignoreCase?t.value.toLowerCase():t.value):null,o=r!==__ALWAYS_MATCH_39?u({type:"literal",value:t.value,ignoreCase:t.ignoreCase}):null;return c(r,t.ignoreCase?[_$opcodes_38.MATCH_STRING_IC,n]:[_$opcodes_38.MATCH_STRING,n],t.ignoreCase?[_$opcodes_38.ACCEPT_N,t.value.length]:[_$opcodes_38.ACCEPT_STRING,n],[_$opcodes_38.FAIL,o])}return[_$opcodes_38.PUSH_EMPTY_STRING]},class(t){const e=0|t.match,n=e===__SOMETIMES_MATCH_39?function(t){const e={value:t.parts,inverted:t.inverted,ignoreCase:t.ignoreCase},n=JSON.stringify(e),o=r.findIndex(t=>JSON.stringify(t)===n);return-1===o?r.push(e)-1:o}(t):null,o=e!==__ALWAYS_MATCH_39?u({type:"class",value:t.parts,inverted:t.inverted,ignoreCase:t.ignoreCase}):null;return c(e,[_$opcodes_38.MATCH_CHAR_CLASS,n],[_$opcodes_38.ACCEPT_N,1],[_$opcodes_38.FAIL,o])},any(t){const e=0|t.match,r=e!==__ALWAYS_MATCH_39?u({type:"any"}):null;return c(e,[_$opcodes_38.MATCH_ANY],[_$opcodes_38.ACCEPT_N,1],[_$opcodes_38.FAIL,r])}});_(t)},_$stack_50=class{constructor(t,e,r){this.sp=-1,this.maxSp=-1,this.varName=e,this.ruleName=t,this.type=r}name(t){if(t<0)throw new RangeError(`Rule '${this.ruleName}': The variable stack underflow: attempt to use a variable '${this.varName}' at an index ${t}`);return this.varName+t}push(t){const e=this.name(++this.sp)+" = "+t+";";return this.sp>this.maxSp&&(this.maxSp=this.sp),e}pop(t){return void 0!==t?(this.sp-=t,Array.from({length:t},(t,e)=>this.name(this.sp+1+e))):this.name(this.sp--)}top(){return this.name(this.sp)}index(t){if(t<0)throw new RangeError(`Rule '${this.ruleName}': The variable stack overflow: attempt to get a variable at a negative index ${t}`);return this.name(this.sp-t)}result(){if(this.maxSp<0)throw new RangeError(`Rule '${this.ruleName}': The variable stack is empty, can't get the result'`);return this.name(0)}defines(){return this.maxSp<0?"":this.type+" "+Array.from({length:this.maxSp+1},(t,e)=>this.name(e)).join(", ")+";"}checkedIf(t,e,r){const n=this.sp;if(e(),r){const e=this.sp;if(this.sp=n,r(),e!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+t+": Branches of a condition can't move the stack pointer differently (before: "+n+", after then: "+e+", after else: "+this.sp+").")}}checkedLoop(t,e){const r=this.sp;if(e(),r!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+t+": Body of a loop can't move the stack pointer (before: "+r+", after: "+this.sp+").")}},_$version_56="2.0.1",_$utils_51={};function hex(t){return t.charCodeAt(0).toString(16).toUpperCase()}_$utils_51.hex=hex,_$utils_51.stringEscape=function(t){return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,t=>"\\x0"+hex(t)).replace(/[\x10-\x1F\x7F-\xFF]/g,t=>"\\x"+hex(t)).replace(/[\u0100-\u0FFF]/g,t=>"\\u0"+hex(t)).replace(/[\u1000-\uFFFF]/g,t=>"\\u"+hex(t))},_$utils_51.regexpClassEscape=function(t){return t.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,t=>"\\x0"+hex(t)).replace(/[\x10-\x1F\x7F-\xFF]/g,t=>"\\x"+hex(t)).replace(/[\u0100-\u0FFF]/g,t=>"\\u0"+hex(t)).replace(/[\u1000-\uFFFF]/g,t=>"\\u"+hex(t))};var _$base64_59={};const intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");_$base64_59.encode=function(t){if(0<=t&&t>>=5)>0&&(e|=32),r+=_$base64_59.encode(e)}while(n>0);return r}},_$util_63={getArg:function(t,e,r){if(e in t)return t[e];if(3===arguments.length)return r;throw new Error('"'+e+'" is a required argument.')}};const supportsNullProto=!("__proto__"in Object.create(null));function identity(t){return t}function isProtoString(t){if(!t)return!1;const e=t.length;if(e<9)return!1;if(95!==t.charCodeAt(e-1)||95!==t.charCodeAt(e-2)||111!==t.charCodeAt(e-3)||116!==t.charCodeAt(e-4)||111!==t.charCodeAt(e-5)||114!==t.charCodeAt(e-6)||112!==t.charCodeAt(e-7)||95!==t.charCodeAt(e-8)||95!==t.charCodeAt(e-9))return!1;for(let r=e-10;r>=0;r--)if(36!==t.charCodeAt(r))return!1;return!0}function strcmp(t,e){return t===e?0:null===t?1:null===e?-1:t>e?1:-1}_$util_63.toSetString=supportsNullProto?identity:function(t){return isProtoString(t)?"$"+t:t},_$util_63.fromSetString=supportsNullProto?identity:function(t){return isProtoString(t)?t.slice(1):t},_$util_63.compareByGeneratedPositionsInflated=function(t,e){let r=t.generatedLine-e.generatedLine;return 0!==r||0!=(r=t.generatedColumn-e.generatedColumn)||0!==(r=strcmp(t.source,e.source))||0!=(r=t.originalLine-e.originalLine)||0!=(r=t.originalColumn-e.originalColumn)?r:strcmp(t.name,e.name)};const PROTOCOL="http:",PROTOCOL_AND_HOST=PROTOCOL+"//host";function createSafeHandler(t){return e=>{const r=getURLType(e),n=buildSafeBase(e),o=new URL(e,n);t(o);const u=o.toString();return"absolute"===r?u:"scheme-relative"===r?u.slice(PROTOCOL.length):"path-absolute"===r?u.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(n,u)}}function withBase(t,e){return new URL(t,e).toString()}function buildSafeBase(t){const e=t.split("..").length-1,r=function(t,e){let r=0;for(;;){const t="p"+r++;if(-1===e.indexOf(t))return t}}(0,t);let n=PROTOCOL_AND_HOST+"/";for(let o=0;o0&&!n[n.length-1]&&n.pop();r.length>0&&n.length>0&&r[0]===n[0];)r.shift(),n.shift();return n.map(()=>"..").concat(r).join("/")+e.search+e.hash}const ensureDirectory=createSafeHandler(t=>{t.pathname=t.pathname.replace(/\/?$/,"/")}),normalize=createSafeHandler(t=>{});_$util_63.normalize=normalize,_$util_63.join=function(t,e){const r=getURLType(e),n=getURLType(t);if(t=ensureDirectory(t),"absolute"===r)return withBase(e,void 0);if("absolute"===n)return withBase(e,t);if("scheme-relative"===r)return normalize(e);if("scheme-relative"===n)return withBase(e,withBase(t,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===r)return normalize(e);if("path-absolute"===n)return withBase(e,withBase(t,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const o=buildSafeBase(e+t);return computeRelativeURL(o,withBase(e,withBase(t,o)))},_$util_63.relative=function(t,e){const r=function(t,e){if(getURLType(t)!==getURLType(e))return null;const r=buildSafeBase(t+e),n=new URL(t,r),o=new URL(e,r);try{new URL("",o.toString())}catch(u){return null}return o.protocol!==n.protocol||o.user!==n.user||o.password!==n.password||o.hostname!==n.hostname||o.port!==n.port?null:computeRelativeURL(n,o)}(t,e);return"string"==typeof r?r:normalize(e)};var _$arraySet_57={};class ArraySet{constructor(){this._array=[],this._set=new Map}static fromArray(t,e){const r=new ArraySet;for(let n=0,o=t.length;n=0)return e;throw new Error('"'+t+'" is not in the set.')}at(t){if(t>=0&&tr||n==r&&u>=o||_$util_63.compareByGeneratedPositionsInflated(t,e)<=0}(this._last,t)?(this._sorted=!1,this._array.push(t)):(this._last=t,this._array.push(t))}toArray(){return this._sorted||(this._array.sort(_$util_63.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}},_$sourceMapGenerator_61={};const __ArraySet_61=_$arraySet_57.ArraySet,MappingList=_$mappingList_60.MappingList;class SourceMapGenerator{constructor(t){t||(t={}),this._file=_$util_63.getArg(t,"file",null),this._sourceRoot=_$util_63.getArg(t,"sourceRoot",null),this._skipValidation=_$util_63.getArg(t,"skipValidation",!1),this._sources=new __ArraySet_61,this._names=new __ArraySet_61,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(t){const e=t.sourceRoot,r=new SourceMapGenerator({file:t.file,sourceRoot:e});return t.eachMapping((function(t){const n={generated:{line:t.generatedLine,column:t.generatedColumn}};null!=t.source&&(n.source=t.source,null!=e&&(n.source=_$util_63.relative(e,n.source)),n.original={line:t.originalLine,column:t.originalColumn},null!=t.name&&(n.name=t.name)),r.addMapping(n)})),t.sources.forEach((function(n){let o=n;null!=e&&(o=_$util_63.relative(e,n)),r._sources.has(o)||r._sources.add(o);const u=t.sourceContentFor(n);null!=u&&r.setSourceContent(n,u)})),r}addMapping(t){const e=_$util_63.getArg(t,"generated"),r=_$util_63.getArg(t,"original",null);let n=_$util_63.getArg(t,"source",null),o=_$util_63.getArg(t,"name",null);this._skipValidation||this._validateMapping(e,r,n,o),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=o&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:e.line,generatedColumn:e.column,originalLine:r&&r.line,originalColumn:r&&r.column,source:n,name:o})}setSourceContent(t,e){let r=t;null!=this._sourceRoot&&(r=_$util_63.relative(this._sourceRoot,r)),null!=e?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[_$util_63.toSetString(r)]=e):this._sourcesContents&&(delete this._sourcesContents[_$util_63.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(t,e,r){let n=e;if(null==e){if(null==t.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=t.file}const o=this._sourceRoot;null!=o&&(n=_$util_63.relative(o,n));const u=this._mappings.toArray().length>0?new __ArraySet_61:this._sources,a=new __ArraySet_61;this._mappings.unsortedForEach((function(e){if(e.source===n&&null!=e.originalLine){const n=t.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=n.source&&(e.source=n.source,null!=r&&(e.source=_$util_63.join(r,e.source)),null!=o&&(e.source=_$util_63.relative(o,e.source)),e.originalLine=n.line,e.originalColumn=n.column,null!=n.name&&(e.name=n.name))}const i=e.source;null==i||u.has(i)||u.add(i);const s=e.name;null==s||a.has(s)||a.add(s)}),this),this._sources=u,this._names=a,t.sources.forEach((function(e){const n=t.sourceContentFor(e);null!=n&&(null!=r&&(e=_$util_63.join(r,e)),null!=o&&(e=_$util_63.relative(o,e)),this.setSourceContent(e,n))}),this)}_validateMapping(t,e,r,n){if(e&&"number"!=typeof e.line&&"number"!=typeof e.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!e&&!r&&!n);else if(!(t&&"line"in t&&"column"in t&&e&&"line"in e&&"column"in e&&t.line>0&&t.column>=0&&e.line>0&&e.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:r,original:e,name:n}))}_serializeMappings(){let t,e,r,n,o=0,u=1,a=0,i=0,s=0,c=0,l="";const p=this._mappings.toArray();for(let f=0,h=p.length;f0){if(!_$util_63.compareByGeneratedPositionsInflated(e,p[f-1]))continue;t+=","}t+=_$base64Vlq_58.encode(e.generatedColumn-o),o=e.generatedColumn,null!=e.source&&(n=this._sources.indexOf(e.source),t+=_$base64Vlq_58.encode(n-c),c=n,t+=_$base64Vlq_58.encode(e.originalLine-1-i),i=e.originalLine-1,t+=_$base64Vlq_58.encode(e.originalColumn-a),a=e.originalColumn,null!=e.name&&(r=this._names.indexOf(e.name),t+=_$base64Vlq_58.encode(r-s),s=r)),l+=t}return l}_generateSourcesContent(t,e){return t.map((function(t){if(!this._sourcesContents)return null;null!=e&&(t=_$util_63.relative(e,t));const r=_$util_63.toSetString(t);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(t.file=this._file),null!=this._sourceRoot&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator.prototype._version=3,_$sourceMapGenerator_61.SourceMapGenerator=SourceMapGenerator;var _$sourceNode_62={};const __SourceMapGenerator_62=_$sourceMapGenerator_61.SourceMapGenerator,REGEX_NEWLINE=/(\r?\n)/,NEWLINE_CODE=10,isSourceNode="$$$isSourceNode$$$";class SourceNode{constructor(t,e,r,n,o){this.children=[],this.sourceContents={},this.line=null==t?null:t,this.column=null==e?null:e,this.source=null==r?null:r,this.name=null==o?null:o,this[isSourceNode]=!0,null!=n&&this.add(n)}static fromStringWithSourceMap(t,e,r){const n=new SourceNode,o=t.split(REGEX_NEWLINE);let u=0;const a=function(){return t()+(t()||"");function t(){return u=0;e--)this.prepend(t[e]);else{if(!t[isSourceNode]&&"string"!=typeof t)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);this.children.unshift(t)}return this}walk(t){let e;for(let r=0,n=this.children.length;r0){for(e=[],r=0;rnew __SourceNode_40(n+a,0===a?o:0,e.source,a===u.length-1?t:[t,"\n"],r)))}function wrapInSourceNode(t,e,r,n,o){return r?new __SourceNode_40(null,null,r.source,[t,toSourceNode(e,r,o),new __SourceNode_40(r.end.line,r.end.column-1,r.source,n)]):new __SourceNode_40(null,null,null,[t,e,n])}var _$generateJs_40=function(t,e){function r(t){return t instanceof __SourceNode_40?t:t.replace(/^(.+)$/gm," $1")}function n(t){return"peg$c"+t}function o(t){return"peg$r"+t}function u(t){return"peg$e"+t}function a(t){return"peg$f"+t}function i(t){return"peg$parse"+t}function s(t){return t.codeLocation?toSourceNode(t.code,t.codeLocation,"$"+t.type):t.code}t.code=function(t){function n(){return[`// Generated by Peggy ${_$version_56}.`,"//","// https://peggyjs.org/"]}function o(){return e.trace?["{"," SyntaxError: peg$SyntaxError,"," DefaultTracer: peg$DefaultTracer,"," parse: peg$parse","}"].join("\n"):["{"," SyntaxError: peg$SyntaxError,"," parse: peg$parse","}"].join("\n")}const u={bare:()=>[...n(),"(function() {",' "use strict";',"",t,"",r("return "+o()+";"),"})()"],commonjs(){const r=Object.keys(e.dependencies),u=n();return u.push("",'"use strict";',""),r.length>0&&(r.forEach(t=>{u.push("var "+t+' = require("'+stringEscape(e.dependencies[t])+'");')}),u.push("")),u.push(t,"","module.exports = "+o()+";"),u},es(){const r=Object.keys(e.dependencies),o=n();return o.push(""),r.length>0&&(r.forEach(t=>{o.push("import "+t+' from "'+stringEscape(e.dependencies[t])+'";')}),o.push("")),o.push(t,"","export {"," peg$SyntaxError as SyntaxError,",e.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),o},amd(){const u=Object.keys(e.dependencies),a="["+u.map(t=>e.dependencies[t]).map(t=>'"'+stringEscape(t)+'"').join(", ")+"]",i=u.join(", ");return[...n(),"define("+a+", function("+i+") {",' "use strict";',"",t,"",r("return "+o()+";"),"});"]},globals:()=>[...n(),"(function(root) {",' "use strict";',"",t,"",r("root."+e.exportVar+" = "+o()+";"),"})(this);"],umd(){const u=Object.keys(e.dependencies),a=u.map(t=>e.dependencies[t]),i="["+a.map(t=>'"'+stringEscape(t)+'"').join(", ")+"]",s=a.map(t=>'require("'+stringEscape(t)+'")').join(", "),c=u.join(", "),l=n();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+i+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+s+");"),null!==e.exportVar&&l.push(" } else {"," root."+e.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",t,"",r("return "+o()+";"),"});"),l}}[e.format]();return new __SourceNode_40(null,null,e.grammarSource,u.map(t=>t instanceof __SourceNode_40?t:t+"\n"))}(function(){const c=[];t.topLevelInitializer&&(c.push(s(t.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),e.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");const l="{ "+e.allowedStartRules.map(t=>t+": "+i(t)).join(", ")+" }",p=i(e.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new __SourceNode_40(null,null,e.grammarSource,[t.literals.map((t,e)=>" var "+n(e)+' = "'+stringEscape(t)+'";').concat("",t.classes.map((t,e)=>{return" var "+o(e)+" = /^["+((r=t).inverted?"^":"")+r.value.map(t=>Array.isArray(t)?regexpClassEscape(t[0])+"-"+regexpClassEscape(t[1]):regexpClassEscape(t)).join("")+"]/"+(r.ignoreCase?"i":"")+";";var r})).concat("",t.expectations.map((t,e)=>" var "+u(e)+" = "+function(t){switch(t.type){case"rule":return'peg$otherExpectation("'+stringEscape(t.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape(t.value)+'", '+t.ignoreCase+")";case"class":return"peg$classExpectation(["+t.value.map(t=>Array.isArray(t)?'["'+stringEscape(t[0])+'", "'+stringEscape(t[1])+'"]':'"'+stringEscape(t)+'"').join(", ")+"], "+t.inverted+", "+t.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(t)+")")}}(t)+";")).concat("").join("\n"),t.functions.map((function(t,e){return wrapInSourceNode(`\n var ${a(e)} = function(${t.params.join(", ")}) {`,t.body,t.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),e.cache&&c.push(" var peg$resultsCache = {};",""),e.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),t.rules.forEach(s=>{c.push(...function(s){const c=[],l=new _$stack_50(s.name,"s","var"),p=function e(s){let c=0;const p=s.length,f=[];let h;function _(t,n){const o=n+3,u=s[c+o-2],a=s[c+o-1];let i,p;l.checkedIf(c,()=>{c+=o,i=e(s.slice(c,c+u)),c+=u},a>0?()=>{p=e(s.slice(c,c+a)),c+=a}:null),f.push("if ("+t+") {"),f.push(...i.map(r)),a>0&&(f.push("} else {"),f.push(...p.map(r))),f.push("}")}function d(t){const n=s[c+2-1];let o;l.checkedLoop(c,()=>{c+=2,o=e(s.slice(c,c+n)),c+=n}),f.push("while ("+t+") {"),f.push(...o.map(r)),f.push("}")}function g(){const t=s[c+4-1],e=a(s[c+1])+"("+s.slice(c+4,c+4+t).map(t=>l.index(t)).join(", ")+")";l.pop(s[c+2]),f.push(l.push(e)),c+=4+t}for(;cl.index(t)).join(", ")} ]`,l.pop(s[c+1]),f.push(l.push(h)),c+=r;break}case _$opcodes_38.IF:_(l.top(),0);break;case _$opcodes_38.IF_ERROR:_(l.top()+" === peg$FAILED",0);break;case _$opcodes_38.IF_NOT_ERROR:_(l.top()+" !== peg$FAILED",0);break;case _$opcodes_38.WHILE_NOT_ERROR:d(l.top()+" !== peg$FAILED");break;case _$opcodes_38.MATCH_ANY:_("input.length > peg$currPos",0);break;case _$opcodes_38.MATCH_STRING:_(t.literals[s[c+1]].length>1?"input.substr(peg$currPos, "+t.literals[s[c+1]].length+") === "+n(s[c+1]):"input.charCodeAt(peg$currPos) === "+t.literals[s[c+1]].charCodeAt(0),1);break;case _$opcodes_38.MATCH_STRING_IC:_("input.substr(peg$currPos, "+t.literals[s[c+1]].length+").toLowerCase() === "+n(s[c+1]),1);break;case _$opcodes_38.MATCH_CHAR_CLASS:_(o(s[c+1])+".test(input.charAt(peg$currPos))",1);break;case _$opcodes_38.ACCEPT_N:f.push(l.push(s[c+1]>1?"input.substr(peg$currPos, "+s[c+1]+")":"input.charAt(peg$currPos)")),f.push(s[c+1]>1?"peg$currPos += "+s[c+1]+";":"peg$currPos++;"),c+=2;break;case _$opcodes_38.ACCEPT_STRING:f.push(l.push(n(s[c+1]))),f.push(t.literals[s[c+1]].length>1?"peg$currPos += "+t.literals[s[c+1]].length+";":"peg$currPos++;"),c+=2;break;case _$opcodes_38.FAIL:f.push(l.push("peg$FAILED")),f.push("if (peg$silentFails === 0) { peg$fail("+u(s[c+1])+"); }"),c+=2;break;case _$opcodes_38.LOAD_SAVED_POS:f.push("peg$savedPos = "+l.index(s[c+1])+";"),c+=2;break;case _$opcodes_38.UPDATE_SAVED_POS:f.push("peg$savedPos = peg$currPos;"),c++;break;case _$opcodes_38.CALL:g();break;case _$opcodes_38.RULE:f.push(l.push(i(t.rules[s[c+1]].name)+"()")),c+=2;break;case _$opcodes_38.SILENT_FAILS_ON:f.push("peg$silentFails++;"),c++;break;case _$opcodes_38.SILENT_FAILS_OFF:f.push("peg$silentFails--;"),c++;break;default:throw new Error("Invalid opcode: "+s[c]+".")}return f}(s.bytecode);return c.push(wrapInSourceNode(" function ",i(s.name),s.nameLocation,"() {\n",s.name)),e.trace&&c.push(" var startPos = peg$currPos;"),c.push(r(l.defines())),c.push(...function(r,n){const o=[];return o.push(""),e.trace&&o.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)","});",""),e.cache&&(o.push("var key = peg$currPos * "+t.rules.length+" + "+n+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),e.trace&&o.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+r+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),o.push(" return cached.result;","}","")),o}('"'+stringEscape(s.name)+'"',_$asts_36.indexOfRule(t,s.name)).map(r)),c.push(...p.map(r)),c.push(...function(t,r){const n=[];return e.cache&&n.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+r+" };"),e.trace&&n.push("","if ("+r+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+t+","," result: "+r+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)"," });","}"),n.push("","return "+r+";"),n}('"'+stringEscape(s.name)+'"',l.result()).map(r)),c.push("}"),c}(s).map(r)),c.push("")}),t.initializer&&(c.push(s(t.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new __SourceNode_40(null,null,e.grammarSource,c.map(t=>t instanceof __SourceNode_40?t:t+"\n"))}())},_$removeProxyRules_42=function(t,e,r){const n=[];t.rules.forEach((o,u)=>{var a;"rule"===(a=o).type&&"rule_ref"===a.expression.type&&(function(t,e,n){_$visitor_52.build({rule_ref(o){o.name===e&&(o.name=n,r.info(`Proxy rule "${e}" replaced by the rule "${n}"`,o.location,[{message:"This rule will be used",location:_$asts_36.findRule(t,n).nameLocation}]))}})(t)}(t,o.name,o.expression.name),-1===e.allowedStartRules.indexOf(o.name)&&n.push(u))}),n.reverse(),n.forEach(e=>{t.rules.splice(e,1)})},_$reportDuplicateLabels_43=function(t,e,r){function n(t){const e={};return Object.keys(t).forEach(r=>{e[r]=t[r]}),e}function o(t,e){u(t.expression,n(e))}const u=_$visitor_52.build({rule(t){u(t.expression,{})},choice(t,e){t.alternatives.forEach(t=>{u(t,n(e))})},action:o,labeled(t,e){const n=t.label;n&&Object.prototype.hasOwnProperty.call(e,n)&&r.error(`Label "${t.label}" is already defined`,t.labelLocation,[{message:"Original label location",location:e[n]}]),u(t.expression,e),e[t.label]=t.labelLocation},text:o,simple_and:o,simple_not:o,optional:o,zero_or_more:o,one_or_more:o,group:o});u(t)},_$reportDuplicateRules_44=function(t,e,r){const n={};_$visitor_52.build({rule(t){Object.prototype.hasOwnProperty.call(n,t.name)?r.error(`Rule "${t.name}" is already defined`,t.nameLocation,[{message:"Original rule location",location:n[t.name]}]):n[t.name]=t.nameLocation}})(t)},_$reportInfiniteRecursion_46=function(t,e,r){const n=[],o=[],u=_$visitor_52.build({rule(t){n.push(t.name),u(t.expression),n.pop()},sequence(e){e.elements.every(e=>(u(e),!_$asts_36.alwaysConsumesOnSuccess(t,e)))},rule_ref(e){o.push(e);const a=_$asts_36.findRule(t,e.name);if(-1!==n.indexOf(e.name))return n.push(e.name),void r.error("Possible infinite loop when parsing (left recursion: "+n.join(" -> ")+")",a.nameLocation,o.map((t,e,r)=>({message:e+1!==r.length?`Step ${e+1}: call of the rule "${t.name}" without input consumption`:`Step ${e+1}: call itself without input consumption - left recursion`,location:t.location})));a&&u(a),o.pop()}});u(t)},_$reportInfiniteRepetition_47=function(t,e,r){_$visitor_52.build({zero_or_more(e){_$asts_36.alwaysConsumesOnSuccess(t,e.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)},one_or_more(e){_$asts_36.alwaysConsumesOnSuccess(t,e.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)}})(t)},_$reportUndefinedRules_48=function(t,e,r){_$visitor_52.build({rule_ref(e){_$asts_36.findRule(t,e.name)||r.error(`Rule "${e.name}" is not defined`,e.location)}})(t)},_$reportIncorrectPlucking_45=function(t,e,r){const n=_$visitor_52.build({action(t){n(t.expression,t)},labeled(t,e){t.pick&&e&&r.error('"@" cannot be used with an action block',t.labelLocation,[{message:"Action block location",location:e.codeLocation}]),n(t.expression)}});n(t)};class Defaults{constructor(t){"function"==typeof(t=void 0!==t?t:{}).error&&(this.error=t.error),"function"==typeof t.warning&&(this.warning=t.warning),"function"==typeof t.info&&(this.info=t.info)}error(){}warning(){}info(){}}var _$session_49=class{constructor(t){this._callbacks=new Defaults(t),this._firstError=null,this.errors=0,this.problems=[],this.stage=null}error(...t){++this.errors,null===this._firstError&&(this._firstError=new _$GrammarError_53(...t),this._firstError.stage=this.stage,this._firstError.problems=this.problems),this.problems.push(["error",...t]),this._callbacks.error(this.stage,...t)}warning(...t){this.problems.push(["warning",...t]),this._callbacks.warning(this.stage,...t)}info(...t){this.problems.push(["info",...t]),this._callbacks.info(this.stage,...t)}checkErrors(){if(0!==this.errors)throw this._firstError}};function processOptions(t,e){const r={};return Object.keys(t).forEach(e=>{r[e]=t[e]}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(r,t)||(r[t]=e[t])}),r}const compiler={visitor:_$visitor_52,passes:{check:[_$reportUndefinedRules_48,_$reportDuplicateRules_44,_$reportDuplicateLabels_43,_$reportInfiniteRecursion_46,_$reportInfiniteRepetition_47,_$reportIncorrectPlucking_45],transform:[_$removeProxyRules_42,_$inferenceMatchResult_41],generate:[_$generateBytecode_39,_$generateJs_40]},compile(ast,passes,options){if(options=void 0!==options?options:{},options=processOptions(options,{allowedStartRules:[ast.rules[0].name],cache:!1,dependencies:{},exportVar:null,format:"bare",output:"parser",trace:!1}),!Array.isArray(options.allowedStartRules))throw new Error("allowedStartRules must be an array");if(0===options.allowedStartRules.length)throw new Error("Must have at least one start rule");const allRules=ast.rules.map(t=>t.name);for(const t of options.allowedStartRules)if(-1===allRules.indexOf(t))throw new Error(`Unknown start rule "${t}"`);const session=new _$session_49(options);switch(Object.keys(passes).forEach(t=>{session.stage=t,session.info("Process stage "+t),passes[t].forEach(e=>{session.info(`Process pass ${t}.${e.name}`),e(ast,options,session)}),session.checkErrors()}),options.output){case"parser":return eval(ast.code.toString());case"source":return ast.code.toString();case"source-and-map":return ast.code;default:throw new Error("Invalid output format: "+options.output+".")}}};var _$compiler_37=compiler,_$parser_54={};const OPS_TO_PREFIXED_TYPES={$:"text","&":"simple_and","!":"simple_not"},OPS_TO_SUFFIXED_TYPES={"?":"optional","*":"zero_or_more","+":"one_or_more"},OPS_TO_SEMANTIC_PREDICATE_TYPES={"&":"semantic_and","!":"semantic_not"};function peg$SyntaxError(t,e,r,n){var o=Error.call(this,t);return Object.setPrototypeOf&&Object.setPrototypeOf(o,peg$SyntaxError.prototype),o.expected=e,o.found=r,o.location=n,o.name="SyntaxError",o}function peg$padEnd(t,e,r){return r=r||" ",t.length>e?t:(e-=t.length,t+(r+=r.repeat(e)).slice(0,e))}!function(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}(peg$SyntaxError,Error),peg$SyntaxError.prototype.format=function(t){var e="Error: "+this.message;if(this.location){var r,n=null;for(r=0;r0){for(e=1,r=1;ezt&&(zt=Ht,Wt=[]),Wt.push(t))}function re(){var e,r,o,u,a,i;if(e=Ht,Pe(),r=Ht,(o=function(){var e,r,o,u;return e=Ht,123===t.charCodeAt(Ht)?(r="{",Ht++):(r=n,0===Yt&&ee(b)),r!==n&&(o=Le())!==n?(125===t.charCodeAt(Ht)?(u="}",Ht++):(u=n,0===Yt&&ee(w)),u!==n&&Be()!==n?(qt=e,e=function(t){return{type:"top_level_initializer",code:t[0],codeLocation:t[1],location:Kt()}}(o)):(Ht=e,e=n)):(Ht=e,e=n),e}())!==n?(u=Pe(),r=o):(Ht=r,r=n),r===n&&(r=null),o=Ht,(u=function(){var t,e;return t=Ht,(e=Le())!==n&&Be()!==n?(qt=t,t=function(t){return{type:"initializer",code:t[0],codeLocation:t[1],location:Kt()}}(e)):(Ht=t,t=n),t}())!==n?(a=Pe(),o=u):(Ht=o,o=n),o===n&&(o=null),u=[],a=Ht,(i=ne())!==n?(Pe(),a=i):(Ht=a,a=n),a!==n)for(;a!==n;)u.push(a),a=Ht,(i=ne())!==n?(Pe(),a=i):(Ht=a,a=n);else u=n;return u!==n?(qt=e,e=function(t,e,r){return{type:"grammar",topLevelInitializer:t,initializer:e,rules:r,location:Kt()}}(r,o,u)):(Ht=e,e=n),e}function ne(){var e,r,o,u,a,i,s,c;return e=Ht,(r=me())!==n?(Pe(),o=Ht,(u=Ee())!==n?(Pe(),o=u):(Ht=o,o=n),o===n&&(o=null),61===t.charCodeAt(Ht)?(u="=",Ht++):(u=n,0===Yt&&ee(C)),u!==n?(Pe(),(a=oe())!==n&&Be()!==n?(qt=e,s=o,c=a,e={type:"rule",name:(i=r)[0],nameLocation:i[1],expression:null!==s?{type:"named",name:s,expression:c,location:Kt()}:c,location:Kt()}):(Ht=e,e=n)):(Ht=e,e=n)):(Ht=e,e=n),e}function oe(){var e,r,o,u,a,i,s,c;if(e=Ht,(r=ue())!==n){for(o=[],u=Ht,Pe(),47===t.charCodeAt(Ht)?(a="/",Ht++):(a=n,0===Yt&&ee(x)),a!==n?(Pe(),(i=ue())!==n?u=i:(Ht=u,u=n)):(Ht=u,u=n);u!==n;)o.push(u),u=Ht,Pe(),47===t.charCodeAt(Ht)?(a="/",Ht++):(a=n,0===Yt&&ee(x)),a!==n?(Pe(),(i=ue())!==n?u=i:(Ht=u,u=n)):(Ht=u,u=n);qt=e,s=r,e=(c=o).length>0?{type:"choice",alternatives:[s].concat(c),location:Kt()}:s}else Ht=e,e=n;return e}function ue(){var t,e,r,o;return t=Ht,(e=function(){var t,e,r,o,u,a,i;if(t=Ht,(e=ae())!==n){for(r=[],o=Ht,Pe(),(u=ae())!==n?o=u:(Ht=o,o=n);o!==n;)r.push(o),o=Ht,Pe(),(u=ae())!==n?o=u:(Ht=o,o=n);qt=t,a=e,t=(i=r).length>0||"labeled"===a.type&&a.pick?{type:"sequence",elements:[a].concat(i),location:Kt()}:a}else Ht=t,t=n;return t}())!==n?(r=Ht,Pe(),(o=Le())!==n?r=o:(Ht=r,r=n),r===n&&(r=null),qt=t,t=function(t,e){return null!==e?{type:"action",expression:t,code:e[0],codeLocation:e[1],location:Kt()}:t}(e,r)):(Ht=t,t=n),t}function ae(){var e,r,o,u,a,i,s;return e=Ht,(r=function(){var e,r;return e=Ht,64===t.charCodeAt(Ht)?(r="@",Ht++):(r=n,0===Yt&&ee(S)),r!==n&&(qt=e,r=Kt()),r}())!==n?((o=ie())===n&&(o=null),(u=se())!==n?(qt=e,a=r,i=o,(s=u).type.startsWith("semantic_")&&Xt('"@" cannot be used on a semantic predicate',a),e={type:"labeled",label:null!==i?i[0]:null,labelLocation:null!==i?i[1]:a,pick:!0,expression:s,location:Kt()}):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=Ht,(r=ie())!==n?(o=Pe(),(u=se())!==n?(qt=e,e=function(t,e){return{type:"labeled",label:t[0],labelLocation:t[1],expression:e,location:Kt()}}(r,u)):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=se())),e}function ie(){var e,r,o,u;return e=Ht,(r=me())!==n?(Pe(),58===t.charCodeAt(Ht)?(o=":",Ht++):(o=n,0===Yt&&ee($)),o!==n?(qt=e,u=r,Te.indexOf(u[0])>=0&&Xt(`Label can't be a reserved word "${u[0]}"`,u[1]),e=u):(Ht=e,e=n)):(Ht=e,e=n),e}function se(){var e,r,o,u;return e=Ht,(r=function(){var e;return 36===t.charCodeAt(Ht)?(e="$",Ht++):(e=n,0===Yt&&ee(O)),e===n&&(38===t.charCodeAt(Ht)?(e="&",Ht++):(e=n,0===Yt&&ee(F)),e===n&&(33===t.charCodeAt(Ht)?(e="!",Ht++):(e=n,0===Yt&&ee(D)))),e}())!==n?(Pe(),(o=ce())!==n?(qt=e,u=o,e={type:OPS_TO_PREFIXED_TYPES[r],expression:u,location:Kt()}):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=ce()),e}function ce(){var e,r,o,u;return e=Ht,(r=le())!==n?(Pe(),(o=function(){var e;return 63===t.charCodeAt(Ht)?(e="?",Ht++):(e=n,0===Yt&&ee(R)),e===n&&(42===t.charCodeAt(Ht)?(e="*",Ht++):(e=n,0===Yt&&ee(L)),e===n&&(43===t.charCodeAt(Ht)?(e="+",Ht++):(e=n,0===Yt&&ee(P)))),e}())!==n?(qt=e,u=r,e={type:OPS_TO_SUFFIXED_TYPES[o],expression:u,location:Kt()}):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=le()),e}function le(){var e,r,o,u,a;return(e=function(){var e,r,o;return Yt++,e=Ht,(r=Ee())!==n?(105===t.charCodeAt(Ht)?(o="i",Ht++):(o=n,0===Yt&&ee(it)),o===n&&(o=null),qt=e,e={type:"literal",value:r,ignoreCase:null!==o,location:Kt()}):(Ht=e,e=n),Yt--,e===n&&(r=n,0===Yt&&ee(at)),e}())===n&&(e=function(){var e,r,o,u,a,i,s,c;if(Yt++,e=Ht,91===t.charCodeAt(Ht)?(r="[",Ht++):(r=n,0===Yt&&ee(ft)),r!==n){for(94===t.charCodeAt(Ht)?(o="^",Ht++):(o=n,0===Yt&&ee(ht)),o===n&&(o=null),u=[],(a=Ce())===n&&(a=xe());a!==n;)u.push(a),(a=Ce())===n&&(a=xe());93===t.charCodeAt(Ht)?(a="]",Ht++):(a=n,0===Yt&&ee(_t)),a!==n?(105===t.charCodeAt(Ht)?(i="i",Ht++):(i=n,0===Yt&&ee(it)),i===n&&(i=null),qt=e,s=o,c=i,e={type:"class",parts:u.filter(t=>""!==t),inverted:null!==s,ignoreCase:null!==c,location:Kt()}):(Ht=e,e=n)}else Ht=e,e=n;return Yt--,e===n&&(r=n,0===Yt&&ee(pt)),e}())===n&&(e=function(){var e,r;return e=Ht,46===t.charCodeAt(Ht)?(r=".",Ht++):(r=n,0===Yt&&ee($t)),r!==n&&(qt=e,r={type:"any",location:Kt()}),r}())===n&&(e=function(){var e,r,o,u,a,i,s;return e=Ht,(r=me())!==n?(o=Ht,Yt++,u=Ht,a=Pe(),i=Ht,(s=Ee())!==n?i=s=[s,Pe()]:(Ht=i,i=n),i===n&&(i=null),61===t.charCodeAt(Ht)?(s="=",Ht++):(s=n,0===Yt&&ee(C)),s!==n?u=a=[a,i,s]:(Ht=u,u=n),Yt--,u===n?o=void 0:(Ht=o,o=n),o!==n?(qt=e,e={type:"rule_ref",name:r[0],location:Kt()}):(Ht=e,e=n)):(Ht=e,e=n),e}())===n&&(e=function(){var e,r,o;return e=Ht,(r=function(){var e;return 38===t.charCodeAt(Ht)?(e="&",Ht++):(e=n,0===Yt&&ee(F)),e===n&&(33===t.charCodeAt(Ht)?(e="!",Ht++):(e=n,0===Yt&&ee(D))),e}())!==n?(Pe(),(o=Le())!==n?(qt=e,e=function(t,e){return{type:OPS_TO_SEMANTIC_PREDICATE_TYPES[t],code:e[0],codeLocation:e[1],location:Kt()}}(r,o)):(Ht=e,e=n)):(Ht=e,e=n),e}())===n&&(e=Ht,40===t.charCodeAt(Ht)?(r="(",Ht++):(r=n,0===Yt&&ee(B)),r!==n?(Pe(),(o=oe())!==n?(Pe(),41===t.charCodeAt(Ht)?(u=")",Ht++):(u=n,0===Yt&&ee(T)),u!==n?(qt=e,e="labeled"===(a=o).type||"sequence"===a.type?{type:"group",expression:a,location:Kt()}:a):(Ht=e,e=n)):(Ht=e,e=n)):(Ht=e,e=n)),e}function pe(){var e;return t.length>Ht?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(k)),e}function fe(){var e;return Yt++,9===t.charCodeAt(Ht)?(e="\t",Ht++):(e=n,0===Yt&&ee(j)),e===n&&(11===t.charCodeAt(Ht)?(e="\v",Ht++):(e=n,0===Yt&&ee(N)),e===n&&(12===t.charCodeAt(Ht)?(e="\f",Ht++):(e=n,0===Yt&&ee(M)),e===n&&(32===t.charCodeAt(Ht)?(e=" ",Ht++):(e=n,0===Yt&&ee(U)),e===n&&(160===t.charCodeAt(Ht)?(e="\xa0",Ht++):(e=n,0===Yt&&ee(H)),e===n&&(65279===t.charCodeAt(Ht)?(e="\ufeff",Ht++):(e=n,0===Yt&&ee(q)),e===n&&(e=function(){var e;return E.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Mt)),e}())))))),Yt--,e===n&&0===Yt&&ee(I),e}function he(){var e;return i.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(G)),e}function _e(){var e;return Yt++,10===t.charCodeAt(Ht)?(e="\n",Ht++):(e=n,0===Yt&&ee(W)),e===n&&("\r\n"===t.substr(Ht,2)?(e="\r\n",Ht+=2):(e=n,0===Yt&&ee(Y)),e===n&&(13===t.charCodeAt(Ht)?(e="\r",Ht++):(e=n,0===Yt&&ee(K)),e===n&&(8232===t.charCodeAt(Ht)?(e="\u2028",Ht++):(e=n,0===Yt&&ee(X)),e===n&&(8233===t.charCodeAt(Ht)?(e="\u2029",Ht++):(e=n,0===Yt&&ee(V)))))),Yt--,e===n&&0===Yt&&ee(z),e}function de(){var e;return Yt++,(e=function(){var e,r,o,u,a,i;if(e=Ht,"/*"===t.substr(Ht,2)?(r="/*",Ht+=2):(r=n,0===Yt&&ee(Q)),r!==n){for(o=[],u=Ht,a=Ht,Yt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Yt&&ee(Z)),Yt--,i===n?a=void 0:(Ht=a,a=n),a!==n&&(i=pe())!==n?u=a=[a,i]:(Ht=u,u=n);u!==n;)o.push(u),u=Ht,a=Ht,Yt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Yt&&ee(Z)),Yt--,i===n?a=void 0:(Ht=a,a=n),a!==n&&(i=pe())!==n?u=a=[a,i]:(Ht=u,u=n);"*/"===t.substr(Ht,2)?(u="*/",Ht+=2):(u=n,0===Yt&&ee(Z)),u!==n?e=r=[r,o,u]:(Ht=e,e=n)}else Ht=e,e=n;return e}())===n&&(e=ye()),Yt--,e===n&&0===Yt&&ee(J),e}function ge(){var e,r,o,u,a,i;if(e=Ht,"/*"===t.substr(Ht,2)?(r="/*",Ht+=2):(r=n,0===Yt&&ee(Q)),r!==n){for(o=[],u=Ht,a=Ht,Yt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Yt&&ee(Z)),i===n&&(i=he()),Yt--,i===n?a=void 0:(Ht=a,a=n),a!==n&&(i=pe())!==n?u=a=[a,i]:(Ht=u,u=n);u!==n;)o.push(u),u=Ht,a=Ht,Yt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Yt&&ee(Z)),i===n&&(i=he()),Yt--,i===n?a=void 0:(Ht=a,a=n),a!==n&&(i=pe())!==n?u=a=[a,i]:(Ht=u,u=n);"*/"===t.substr(Ht,2)?(u="*/",Ht+=2):(u=n,0===Yt&&ee(Z)),u!==n?e=r=[r,o,u]:(Ht=e,e=n)}else Ht=e,e=n;return e}function ye(){var e,r,o,u,a,i;if(e=Ht,"//"===t.substr(Ht,2)?(r="//",Ht+=2):(r=n,0===Yt&&ee(tt)),r!==n){for(o=[],u=Ht,a=Ht,Yt++,i=he(),Yt--,i===n?a=void 0:(Ht=a,a=n),a!==n&&(i=pe())!==n?u=a=[a,i]:(Ht=u,u=n);u!==n;)o.push(u),u=Ht,a=Ht,Yt++,i=he(),Yt--,i===n?a=void 0:(Ht=a,a=n),a!==n&&(i=pe())!==n?u=a=[a,i]:(Ht=u,u=n);e=r=[r,o]}else Ht=e,e=n;return e}function me(){var t,e,r,o;if(Yt++,t=Ht,(e=ve())!==n){for(r=[],o=Ae();o!==n;)r.push(o),o=Ae();qt=t,t=[e+r.join(""),Kt()]}else Ht=t,t=n;return Yt--,t===n&&(e=n,0===Yt&&ee(et)),t}function ve(){var e,r,o;return(e=function(){var e;return(e=function(){var e;return d.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Bt)),e}())===n&&(e=function(){var e;return p.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Dt)),e}())===n&&(e=function(){var e;return _.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Pt)),e}())===n&&(e=function(){var e;return f.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Rt)),e}())===n&&(e=function(){var e;return h.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Lt)),e}())===n&&(e=function(){var e;return v.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(jt)),e}()),e}())===n&&(36===t.charCodeAt(Ht)?(e="$",Ht++):(e=n,0===Yt&&ee(O)),e===n&&(95===t.charCodeAt(Ht)?(e="_",Ht++):(e=n,0===Yt&&ee(rt)),e===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Yt&&ee(nt)),r!==n&&(o=Fe())!==n?e=o:(Ht=e,e=n)))),e}function Ae(){var e;return(e=ve())===n&&(e=function(){var e;return(e=function(){var e;return y.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(kt)),e}())===n&&(e=function(){var e;return g.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Tt)),e}()),e}())===n&&(e=function(){var e;return m.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(It)),e}())===n&&(e=function(){var e;return A.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(Nt)),e}())===n&&(8204===t.charCodeAt(Ht)?(e="\u200c",Ht++):(e=n,0===Yt&&ee(ot)),e===n&&(8205===t.charCodeAt(Ht)?(e="\u200d",Ht++):(e=n,0===Yt&&ee(ut)))),e}function Ee(){var e,r,o,u;if(Yt++,e=Ht,34===t.charCodeAt(Ht)?(r='"',Ht++):(r=n,0===Yt&&ee(ct)),r!==n){for(o=[],u=be();u!==n;)o.push(u),u=be();34===t.charCodeAt(Ht)?(u='"',Ht++):(u=n,0===Yt&&ee(ct)),u!==n?(qt=e,e=o.join("")):(Ht=e,e=n)}else Ht=e,e=n;if(e===n)if(e=Ht,39===t.charCodeAt(Ht)?(r="'",Ht++):(r=n,0===Yt&&ee(lt)),r!==n){for(o=[],u=we();u!==n;)o.push(u),u=we();39===t.charCodeAt(Ht)?(u="'",Ht++):(u=n,0===Yt&&ee(lt)),u!==n?(qt=e,e=function(t){return t.join("")}(o)):(Ht=e,e=n)}else Ht=e,e=n;return Yt--,e===n&&(r=n,0===Yt&&ee(st)),e}function be(){var e,r,o,u;return e=Ht,r=Ht,o=Ht,Yt++,34===t.charCodeAt(Ht)?(u='"',Ht++):(u=n,0===Yt&&ee(ct)),u===n&&(92===t.charCodeAt(Ht)?(u="\\",Ht++):(u=n,0===Yt&&ee(nt)),u===n&&(u=he())),Yt--,u===n?o=void 0:(Ht=o,o=n),o!==n&&(u=pe())!==n?r=o=[o,u]:(Ht=r,r=n),(e=r!==n?t.substring(e,Ht):r)===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Yt&&ee(nt)),r!==n&&(o=$e())!==n?e=o:(Ht=e,e=n),e===n&&(e=Se())),e}function we(){var e,r,o,u;return e=Ht,r=Ht,o=Ht,Yt++,39===t.charCodeAt(Ht)?(u="'",Ht++):(u=n,0===Yt&&ee(lt)),u===n&&(92===t.charCodeAt(Ht)?(u="\\",Ht++):(u=n,0===Yt&&ee(nt)),u===n&&(u=he())),Yt--,u===n?o=void 0:(Ht=o,o=n),o!==n&&(u=pe())!==n?r=o=[o,u]:(Ht=r,r=n),(e=r!==n?t.substring(e,Ht):r)===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Yt&&ee(nt)),r!==n&&(o=$e())!==n?e=o:(Ht=e,e=n),e===n&&(e=Se())),e}function Ce(){var e,r,o,u,a,i;return e=Ht,(r=xe())!==n?(45===t.charCodeAt(Ht)?(o="-",Ht++):(o=n,0===Yt&&ee(dt)),o!==n&&(u=xe())!==n?(qt=e,i=u,(a=r).charCodeAt(0)>i.charCodeAt(0)&&Xt("Invalid character range: "+t.substring(qt,Ht)+"."),e=[a,i]):(Ht=e,e=n)):(Ht=e,e=n),e}function xe(){var e,r,o,u;return e=Ht,r=Ht,o=Ht,Yt++,93===t.charCodeAt(Ht)?(u="]",Ht++):(u=n,0===Yt&&ee(_t)),u===n&&(92===t.charCodeAt(Ht)?(u="\\",Ht++):(u=n,0===Yt&&ee(nt)),u===n&&(u=he())),Yt--,u===n?o=void 0:(Ht=o,o=n),o!==n&&(u=pe())!==n?r=o=[o,u]:(Ht=r,r=n),(e=r!==n?t.substring(e,Ht):r)===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Yt&&ee(nt)),r!==n&&(o=$e())!==n?e=o:(Ht=e,e=n),e===n&&(e=Se())),e}function Se(){var e,r;return e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Yt&&ee(nt)),r!==n&&_e()!==n?(qt=e,e=""):(Ht=e,e=n),e}function $e(){var e,r,o,u;return(e=function(){var e;return(e=Oe())===n&&(e=function(){var e,r,o,u;return e=Ht,r=Ht,o=Ht,Yt++,(u=function(){var e;return(e=Oe())===n&&(e=De())===n&&(120===t.charCodeAt(Ht)?(e="x",Ht++):(e=n,0===Yt&&ee(wt)),e===n&&(117===t.charCodeAt(Ht)?(e="u",Ht++):(e=n,0===Yt&&ee(Ct)))),e}())===n&&(u=he()),Yt--,u===n?o=void 0:(Ht=o,o=n),o!==n&&(u=pe())!==n?r=o=[o,u]:(Ht=r,r=n),r!==n?t.substring(e,Ht):r}()),e}())===n&&(e=Ht,48===t.charCodeAt(Ht)?(r="0",Ht++):(r=n,0===Yt&&ee(gt)),r!==n?(o=Ht,Yt++,u=De(),Yt--,u===n?o=void 0:(Ht=o,o=n),o!==n?(qt=e,e="\0"):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=function(){var e,r,o,u,a,i,s;return e=Ht,120===t.charCodeAt(Ht)?(r="x",Ht++):(r=n,0===Yt&&ee(wt)),r!==n?(o=Ht,u=Ht,(a=Re())!==n&&(i=Re())!==n?u=a=[a,i]:(Ht=u,u=n),(o=u!==n?t.substring(o,Ht):u)!==n?(qt=e,s=o,e=String.fromCharCode(parseInt(s,16))):(Ht=e,e=n)):(Ht=e,e=n),e}())===n&&(e=Fe())),e}function Oe(){var e,r;return 39===t.charCodeAt(Ht)?(e="'",Ht++):(e=n,0===Yt&&ee(lt)),e===n&&(34===t.charCodeAt(Ht)?(e='"',Ht++):(e=n,0===Yt&&ee(ct)),e===n&&(92===t.charCodeAt(Ht)?(e="\\",Ht++):(e=n,0===Yt&&ee(nt)),e===n&&(e=Ht,98===t.charCodeAt(Ht)?(r="b",Ht++):(r=n,0===Yt&&ee(yt)),r!==n&&(qt=e,r="\b"),(e=r)===n&&(e=Ht,102===t.charCodeAt(Ht)?(r="f",Ht++):(r=n,0===Yt&&ee(mt)),r!==n&&(qt=e,r="\f"),(e=r)===n&&(e=Ht,110===t.charCodeAt(Ht)?(r="n",Ht++):(r=n,0===Yt&&ee(vt)),r!==n&&(qt=e,r="\n"),(e=r)===n&&(e=Ht,114===t.charCodeAt(Ht)?(r="r",Ht++):(r=n,0===Yt&&ee(At)),r!==n&&(qt=e,r="\r"),(e=r)===n&&(e=Ht,116===t.charCodeAt(Ht)?(r="t",Ht++):(r=n,0===Yt&&ee(Et)),r!==n&&(qt=e,r="\t"),(e=r)===n&&(e=Ht,118===t.charCodeAt(Ht)?(r="v",Ht++):(r=n,0===Yt&&ee(bt)),r!==n&&(qt=e,r="\v"),e=r)))))))),e}function Fe(){var e,r,o,u,a,i,s,c,l;return e=Ht,117===t.charCodeAt(Ht)?(r="u",Ht++):(r=n,0===Yt&&ee(Ct)),r!==n?(o=Ht,u=Ht,(a=Re())!==n&&(i=Re())!==n&&(s=Re())!==n&&(c=Re())!==n?u=a=[a,i,s,c]:(Ht=u,u=n),(o=u!==n?t.substring(o,Ht):u)!==n?(qt=e,l=o,e=String.fromCharCode(parseInt(l,16))):(Ht=e,e=n)):(Ht=e,e=n),e}function De(){var e;return s.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(xt)),e}function Re(){var e;return c.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Yt&&ee(St)),e}function Le(){var e,r,o,u;return Yt++,e=Ht,123===t.charCodeAt(Ht)?(r="{",Ht++):(r=n,0===Yt&&ee(b)),r!==n?(o=function(){var e,r;return e=Ht,r=function e(){var r,o,u,a,i,s;if(r=Ht,o=[],u=[],a=Ht,i=Ht,Yt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Yt&&ee(Ft)),Yt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?a=i=[i,s]:(Ht=a,a=n),a!==n)for(;a!==n;)u.push(a),a=Ht,i=Ht,Yt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Yt&&ee(Ft)),Yt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?a=i=[i,s]:(Ht=a,a=n);else u=n;for(u===n&&(u=Ht,123===t.charCodeAt(Ht)?(a="{",Ht++):(a=n,0===Yt&&ee(b)),a!==n?(i=e(),125===t.charCodeAt(Ht)?(s="}",Ht++):(s=n,0===Yt&&ee(w)),s!==n?u=a=[a,i,s]:(Ht=u,u=n)):(Ht=u,u=n));u!==n;){if(o.push(u),u=[],a=Ht,i=Ht,Yt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Yt&&ee(Ft)),Yt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?a=i=[i,s]:(Ht=a,a=n),a!==n)for(;a!==n;)u.push(a),a=Ht,i=Ht,Yt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Yt&&ee(Ft)),Yt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?a=i=[i,s]:(Ht=a,a=n);else u=n;u===n&&(u=Ht,123===t.charCodeAt(Ht)?(a="{",Ht++):(a=n,0===Yt&&ee(b)),a!==n?(i=e(),125===t.charCodeAt(Ht)?(s="}",Ht++):(s=n,0===Yt&&ee(w)),s!==n?u=a=[a,i,s]:(Ht=u,u=n)):(Ht=u,u=n))}return t.substring(r,Ht)}(),qt=e,r=function(t){return[t,Kt()]}(r)}(),125===t.charCodeAt(Ht)?(u="}",Ht++):(u=n,0===Yt&&ee(w)),u!==n?e=o:(Ht=e,e=n)):(Ht=e,e=n),Yt--,e===n&&(r=n,0===Yt&&ee(Ot)),e}function Pe(){var t,e;for(t=[],(e=fe())===n&&(e=_e())===n&&(e=de());e!==n;)t.push(e),(e=fe())===n&&(e=_e())===n&&(e=de());return t}function Be(){var e,r,o,u;return e=Ht,r=Pe(),59===t.charCodeAt(Ht)?(o=";",Ht++):(o=n,0===Yt&&ee(Ut)),o!==n?e=r=[r,o]:(Ht=e,e=n),e===n&&(e=Ht,r=function(){var t,e;for(t=[],(e=fe())===n&&(e=ge());e!==n;)t.push(e),(e=fe())===n&&(e=ge());return t}(),(o=ye())===n&&(o=null),(u=_e())!==n?e=r=[r,o,u]:(Ht=e,e=n),e===n&&(e=Ht,r=Pe(),(o=function(){var e,r;return e=Ht,Yt++,t.length>Ht?(r=t.charAt(Ht),Ht++):(r=n,0===Yt&&ee(k)),Yt--,r===n?e=void 0:(Ht=e,e=n),e}())!==n?e=r=[r,o]:(Ht=e,e=n))),e}const Te=e.reservedWords||[];if((r=a())!==n&&Ht===t.length)return r;throw r!==n&&Ht{e[r]=t[r].slice()}),e}(peg.compiler.passes),reservedWords:peg.RESERVED_WORDS.slice()};return r.forEach(t=>{t.use(n,e)}),peg.compiler.compile(n.parser.parse(t,{grammarSource:e.grammarSource,reservedWords:n.reservedWords}),n.passes,e)}};var _$peg_55=peg,_$parsers_71={};function ___typeof_71(t){return(___typeof_71="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$parsers_71,"__esModule",{value:!0}),_$parsers_71.default=void 0;var QXParser,LoonParser,SurgeParser,_surge=___interopRequireDefault_71(_$surge_69),_loon=___interopRequireDefault_71(_$loon_67),_qx=___interopRequireDefault_71(_$qx_68),peggy=function(t,e){if(t&&t.__esModule)return t;if(null===t||"object"!==___typeof_71(t)&&"function"!=typeof t)return{default:t};var r=_getRequireWildcardCache(void 0);if(r&&r.has(t))return r.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var a=o?Object.getOwnPropertyDescriptor(t,u):null;a&&(a.get||a.set)?Object.defineProperty(n,u,a):n[u]=t[u]}return n.default=t,r&&r.set(t,n),n}(_$peg_55);function _getRequireWildcardCache(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(t){return t?r:e})(t)}function ___interopRequireDefault_71(t){return t&&t.__esModule?t:{default:t}}function ___slicedToArray_71(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,u=[],a=!0,i=!1;try{for(r=r.call(t);!(a=(n=r.next()).done)&&(u.push(n.value),!e||u.length!==e);a=!0);}catch(s){i=!0,o=s}finally{try{a||null==r.return||r.return()}finally{if(i)throw o}}return u}}(t,e)||___unsupportedIterableToArray_71(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function __ownKeys_71(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_71(t){for(var e=1;e=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var u,a=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){i=!0,u=t},f:function(){try{a||null==r.return||r.return()}finally{if(i)throw u}}}}function ___unsupportedIterableToArray_71(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_71(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_71(t,e):void 0}}function ___arrayLikeToArray_71(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1){var s,c=___createForOfIteratorHelper_71(t);try{for(c.s();!(s=c.n()).done;){var l=___slicedToArray_71(s.value.split("="),2),p=l[0],f=l[1];i[p]=f.trim()}}catch(h){c.e(h)}finally{c.f()}}return ___objectSpread_71(___objectSpread_71({},a),{},{name:i.remarks?_$base64_4.Base64.decode(i.remarks):a.server,"protocol-param":_$base64_4.Base64.decode(i.protoparam||"").replace(/\s/g,""),"obfs-param":_$base64_4.Base64.decode(i.obfsparam||"").replace(/\s/g,"")})}}),{name:"URI VMess Parser",test:function(t){return/^vmess:\/\//.test(t)},parse:function(t){t=t.split("vmess://")[1];var e=_$base64_4.Base64.decode(t);if(/=\s*vmess/.test(e)){var r,n=e.split(",").map((function(t){return t.trim()})),o={},u=___createForOfIteratorHelper_71(n);try{for(u.s();!(r=u.n()).done;){var a=r.value;if(-1!==a.indexOf("=")){var i=___slicedToArray_71(a.split("="),2),s=i[0],c=i[1];o[s.trim()]=c.trim()}}}catch(_){u.e(_)}finally{u.f()}var l={name:n[0].split("=")[0].trim(),type:"vmess",server:n[1],port:n[2],cipher:n[3],uuid:n[4].match(/^"(.*)"$/)[1],tls:"over-tls"===o.obfs||"wss"===o.obfs};if(void 0!==o["udp-relay"]&&(l.udp=JSON.parse(o["udp-relay"])),void 0!==o["fast-open"]&&(l.udp=JSON.parse(o["fast-open"])),"ws"===o.obfs||"wss"===o.obfs){l.network="ws",l["ws-opts"].path=(o["obfs-path"]||'"/"').match(/^"(.*)"$/)[1];var p=o["obfs-header"];p&&-1!==p.indexOf("Host")&&(p=p.match(/Host:\s*([a-zA-Z0-9-.]*)/)[1]),l["ws-opts"].headers={Host:p||l.server}}return l.tls&&"false"===o['"tls-verification"']&&(l["skip-cert-verify"]=!0),l.tls&&o["obfs-host"]&&(l.sni=o["obfs-host"]),l}var f=JSON.parse(e),h={name:f.ps,type:"vmess",server:f.add,port:f.port,cipher:"auto",uuid:f.id,alterId:f.aid||0,tls:"tls"===f.tls||!0===f.tls,supported:{}};return"ws"===f.net&&(h.network="ws",h["ws-opts"]={path:f.path,headers:{Host:f.host||f.add}},h.tls&&f.host&&(h.sni=f.host)),!1===f.verify_cert&&(h["skip-cert-verify"]=!0),h}},{name:"URI Trojan Parser",test:function(t){return/^trojan:\/\//.test(t)},parse:function(t){var e=___slicedToArray_71((t=t.split("trojan://")[1]).split("@")[1].split("?")[0].split(":"),2),r=e[0],n=e[1],o=decodeURIComponent(t.split("#")[1].trim()),u=t.split("?"),a=null;return u.length>1&&(u=u[1].split("#")[0].split("&"),a=new Map(u.map((function(t){return t.split("=")}))).get("sni")),{name:o||"[Trojan] ".concat(r),type:"trojan",server:r,port:n,password:t.split("@")[0],sni:a,supported:{}}}},{name:"Clash Parser",test:function(t){try{JSON.parse(t)}catch(e){return!1}return!0},parse:function(t){return JSON.parse(t)}},{name:"Surge SS Parser",test:function(t){return/^.*=\s*ss/.test(t.split(",")[0])},parse:function(t){return getSurgeParser().parse(t)}},{name:"Surge VMess Parser",test:function(t){return/^.*=\s*vmess/.test(t.split(",")[0])&&-1!==t.indexOf("username")},parse:function(t){return getSurgeParser().parse(t)}},{name:"Surge Trojan Parser",test:function(t){return/^.*=\s*trojan/.test(t.split(",")[0])&&-1!==t.indexOf("sni")},parse:function(t){return getSurgeParser().parse(t)}},{name:"Surge HTTP Parser",test:function(t){return/^.*=\s*https?/.test(t.split(",")[0])&&!Loon_Http().test(t)},parse:function(t){return getSurgeParser().parse(t)}},{name:"Loon SS Parser",test:function(t){return"shadowsocks"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){return getLoonParser().parse(t)}},{name:"Loon SSR Parser",test:function(t){return"shadowsocksr"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){return getLoonParser().parse(t)}},{name:"Loon VMess Parser",test:function(t){return/^.*=\s*vmess/i.test(t.split(",")[0])&&-1===t.indexOf("username")},parse:function(t){return getLoonParser().parse(t)}},{name:"Loon Trojan Parser",test:function(t){return/^.*=\s*trojan/i.test(t.split(",")[0])&&-1===t.indexOf("password")},parse:function(t){return getLoonParser().parse(t)}},Loon_Http(),{name:"QX SS Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1===t.indexOf("ssr-protocol")},parse:function(t){return getQXParser().parse(t)}},{name:"QX SSR Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1!==t.indexOf("ssr-protocol")},parse:function(t){return getQXParser().parse(t)}},{name:"QX VMess Parser",test:function(t){return/^vmess\s*=/.test(t.split(",")[0].trim())},parse:function(t){return getQXParser().parse(t)}},{name:"QX Trojan Parser",test:function(t){return/^trojan\s*=/.test(t.split(",")[0].trim())},parse:function(t){return getQXParser().parse(t)}},{name:"QX HTTP Parser",test:function(t){return/^http\s*=/.test(t.split(",")[0].trim())},parse:function(t){return getQXParser().parse(t)}}];_$parsers_71.default=___default_71;var _$proxyUtils_70={};function ___typeof_70(t){return(___typeof_70="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$proxyUtils_70,"__esModule",{value:!0}),_$proxyUtils_70.ProxyUtils=void 0;var ___download_70=___interopRequireDefault_70(_$download_80),_processors=function(t,e){if(t&&t.__esModule)return t;if(null===t||"object"!==___typeof_70(t)&&"function"!=typeof t)return{default:t};var r=___getRequireWildcardCache_70(void 0);if(r&&r.has(t))return r.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in t)if("default"!==u&&Object.prototype.hasOwnProperty.call(t,u)){var a=o?Object.getOwnPropertyDescriptor(t,u):null;a&&(a.get||a.set)?Object.defineProperty(n,u,a):n[u]=t[u]}return n.default=t,r&&r.set(t,n),n}(_$processors_73),_preprocessors=___interopRequireDefault_70(_$preprocessors_72),_producers=___interopRequireDefault_70(_$producers_74),_parsers=___interopRequireDefault_70(_$parsers_71),___app_70=___interopRequireDefault_70(_$app_66);function ___getRequireWildcardCache_70(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return(___getRequireWildcardCache_70=function(t){return t?r:e})(t)}function ___interopRequireDefault_70(t){return t&&t.__esModule?t:{default:t}}function ___regeneratorRuntime_70(){___regeneratorRuntime_70=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",u=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(S){i=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof p?e:p,u=Object.create(o.prototype),a=new w(n||[]);return u._invoke=function(t,e,r){var n="suspendedStart";return function(o,u){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw u;return{value:void 0,done:!0}}for(r.method=o,r.arg=u;;){var a=r.delegate;if(a){var i=A(a,r);if(i){if(i===l)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===l)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(t,r,a),u}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(S){return{type:"throw",arg:S}}}t.wrap=s;var l={};function p(){}function f(){}function h(){}var _={};i(_,o,(function(){return this}));var d=Object.getPrototypeOf,g=d&&d(d(C([])));g&&g!==e&&r.call(g,o)&&(_=g);var y=h.prototype=p.prototype=Object.create(_);function m(t){["next","throw","return"].forEach((function(e){i(t,e,(function(t){return this._invoke(e,t)}))}))}function v(t,e){var n;this._invoke=function(o,u){function a(){return new e((function(n,a){!function n(o,u,a,i){var s=c(t[o],t,u);if("throw"!==s.type){var l=s.arg,p=l.value;return p&&"object"==___typeof_70(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,a,i)}),(function(t){n("throw",t,a,i)})):e.resolve(p).then((function(t){l.value=t,a(l)}),(function(t){return n("throw",t,a,i)}))}i(s.arg)}(o,u,n,a)}))}return n=n?n.then(a,a):a()}}function A(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,A(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function b(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function w(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function C(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,u=function e(){for(;++n=0;--o){var u=this.tryEntries[o],a=u.completion;if("root"===u.tryLoc)return n("end");if(u.tryLoc<=this.prev){var i=r.call(u,"catchLoc"),s=r.call(u,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),b(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;b(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __asyncGeneratorStep_70(t,e,r,n,o,u,a){try{var i=t[u](a),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}function ___createForOfIteratorHelper_70(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_70(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_70(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var u,a=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){i=!0,u=t},f:function(){try{a||null==r.return||r.return()}finally{if(i)throw u}}}}function ___arrayLikeToArray_70(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==A[1]?A[1]:[],n=A.length>2?A[2]:void 0,o=___createForOfIteratorHelper_70(r),t.prev=3,o.s();case 5:if((u=o.n()).done){t.next=40;break}if(a=u.value,i=void 0,s={},-1===a.type.indexOf("Script")){t.next=29;break}if(c=a.args,l=c.mode,p=c.content,"link"!==l){t.next=28;break}if((h=(f=p).split("#")).length>1){_=___createForOfIteratorHelper_70(h[1].split("&"));try{for(_.s();!(d=_.n()).done;)g=d.value,y=g.split("=")[0],m=g.split("=")[1]||!0,s[y]=m}catch(E){_.e(E)}finally{_.f()}}return t.prev=15,t.next=18,(0,___download_70.default)(f.split("#")[0]);case 18:i=t.sent,___app_70.default.info("Script loaded: >>>\n ".concat(i)),t.next=26;break;case 22:return t.prev=22,t.t0=t.catch(15),___app_70.default.error("Error when downloading remote script: ".concat(a.args.content,".\n Reason: ").concat(t.t0)),t.abrupt("continue",38);case 26:t.next=29;break;case 28:i=p;case 29:if(_processors.default[a.type]){t.next=32;break}return ___app_70.default.error('Unknown operator: "'.concat(a.type,'"')),t.abrupt("continue",38);case 32:return ___app_70.default.info('Applying "'.concat(a.type,'" with arguments:\n >>> ').concat(JSON.stringify(a.args,null,2)||"None")),v=void 0,v=-1!==a.type.indexOf("Script")?_processors.default[a.type](i,n,s):_processors.default[a.type](a.args),t.next=37,(0,_processors.ApplyProcessor)(v,e);case 37:e=t.sent;case 38:t.next=5;break;case 40:t.next=45;break;case 42:t.prev=42,t.t1=t.catch(3),o.e(t.t1);case 45:return t.prev=45,o.f(),t.finish(45);case 48:return t.abrupt("return",e);case 49:case"end":return t.stop()}}),t,null,[[3,42,45,48],[15,22]])})),(_process=function(){var e=this,r=arguments;return new Promise((function(n,o){var u=t.apply(e,r);function a(t){__asyncGeneratorStep_70(u,n,o,a,i,"next",t)}function i(t){__asyncGeneratorStep_70(u,n,o,a,i,"throw",t)}a(void 0)}))}).apply(this,arguments)}var ProxyUtils={parse:function(t){t=function(t){var e,r=___createForOfIteratorHelper_70(_preprocessors.default);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{if(n.test(t))return ___app_70.default.info("Pre-processor [".concat(n.name,"] activated")),n.parse(t)}catch(o){___app_70.default.error("Parser [".concat(n.name,"] failed\n Reason: ").concat(o))}}}catch(u){r.e(u)}finally{r.f()}return t}(t);var e,r,n=[],o=___createForOfIteratorHelper_70(t.split("\n"));try{for(o.s();!(r=o.n()).done;){var u=r.value;if(0!==(u=u.trim()).length){var a=e&&safeMatch(e,u);if(!a){var i,s=___createForOfIteratorHelper_70(_parsers.default);try{for(s.s();!(i=s.n()).done;){var c=i.value;if(safeMatch(c,u)){e=c,a=!0,___app_70.default.info("Proxy parser: ".concat(c.name," is activated"));break}}}catch(p){s.e(p)}finally{s.f()}}if(a)try{var l=e.parse(u);l||___app_70.default.error("Parser ".concat(e.name," return nothing for \n").concat(u,"\n")),n.push(l)}catch(p){___app_70.default.error("Failed to parse line: \n ".concat(u,"\n Reason: ").concat(p))}else ___app_70.default.error("Failed to find a rule to parse line: \n".concat(u,"\n"))}}}catch(p){o.e(p)}finally{o.f()}return n},process:function(t){return _process.apply(this,arguments)},produce:function(t,e){var r=_producers.default[e];if(!r)throw new Error("Target platform: ".concat(e," is not supported!"));return t=t.filter((function(t){return!(t.supported&&!1===t.supported[e])})),___app_70.default.info("Producing proxies for target: ".concat(e)),void 0===r.type||"SINGLE"===r.type?t.map((function(t){try{return r.produce(t)}catch(e){return ___app_70.default.error("Cannot produce proxy: ".concat(JSON.stringify(t,null,2),"\nReason: ").concat(e)),""}})).filter((function(t){return t.length>0})).join("\n"):"ALL"===r.type?r.produce(t):void 0}};function safeMatch(t,e){var r;try{r=t.test(e)}catch(n){r=!1}return r}_$proxyUtils_70.ProxyUtils=ProxyUtils;var _$preprocessors_77={};Object.defineProperty(_$preprocessors_77,"__esModule",{value:!0}),_$preprocessors_77.default=void 0;var ___default_77=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},{name:"Clash Provider",test:function(t){return 0===t.indexOf("payload:")},parse:function(t){return t.replace("payload:","").replace(/^\s*-\s*/gm,"")}}];_$preprocessors_77.default=___default_77;var _$producers_78={};Object.defineProperty(_$producers_78,"__esModule",{value:!0}),_$producers_78.default=void 0;var obj,___staticJsYaml_78=(obj=_$staticJsYaml_65)&&obj.__esModule?obj:{default:obj},___default_78={QX:{type:"SINGLE",func:function(t){return-1!==["URL-REGEX","DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:"".concat({"DOMAIN-KEYWORD":"HOST-KEYWORD","DOMAIN-SUFFIX":"HOST-SUFFIX",DOMAIN:"HOST","IP-CIDR6":"IP6-CIDR"}[t.type]||t.type,",").concat(t.content,",SUB-STORE")}},Surge:{type:"SINGLE",func:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}},Loon:{type:"SINGLE",func:function(t){return-1!==["DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}(t)}},Clash:{type:"ALL",func:function(t){var e={"DEST-PORT":"DST-PORT","SRC-IP":"SRC-IP-CIDR","IN-PORT":"SRC-PORT"},r={payload:t.map((function(t){var r="".concat(e[t.type]||t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(r+=t.options?",".concat(t.options[0]):""),r}))};return ___staticJsYaml_78.default.dump(r)}}};_$producers_78.default=___default_78;var _$parsers_76={};function ___createForOfIteratorHelper_76(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_76(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_76(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var u,a=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){i=!0,u=t},f:function(){try{a||null==r.return||r.return()}finally{if(i)throw u}}}}function ___arrayLikeToArray_76(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var u,a=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){i=!0,u=t},f:function(){try{a||null==r.return||r.return()}finally{if(i)throw u}}}}function ___arrayLikeToArray_75(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0})).join("\n"):"ALL"===r.type?r.func(t):void 0}};_$ruleUtils_75.RuleUtils=RuleUtils;var _$resourceParserLoon_79={},RESOURCE_TYPE_RULE=2,result=$resource;if(1===$resourceType){var proxies=_$proxyUtils_70.ProxyUtils.parse($resource);result=_$proxyUtils_70.ProxyUtils.produce(proxies,"Loon")}else if($resourceType===RESOURCE_TYPE_RULE){var rules=_$ruleUtils_75.RuleUtils.parse($resource);result=_$ruleUtils_75.RuleUtils.produce(rules,"Loon")}$done(result)}(); \ No newline at end of file diff --git a/backend/gulpfile.babel.js b/backend/gulpfile.babel.js index 3ae2a73..daef51d 100644 --- a/backend/gulpfile.babel.js +++ b/backend/gulpfile.babel.js @@ -4,65 +4,67 @@ import gulp from 'gulp'; import prettier from 'gulp-prettier'; import header from 'gulp-header'; import eslint from 'gulp-eslint-new'; +import newFile from 'gulp-file'; +import path from 'path'; +import tap from 'gulp-tap'; import pkg from './package.json'; +export function peggy() { + return gulp.src('src/**/*.peg') + .pipe(tap(function (file) { + const filename = path.basename(file.path).split(".")[0] + ".js"; + const raw = fs.readFileSync(file.path, 'utf8'); + const contents = `const grammars = String.raw\`\n${raw}\n\`;\nexport default grammars;`; + return newFile(filename, contents) + .pipe(gulp.dest(path.dirname(file.path))) + })); +} + export function lint() { - return gulp - .src('src/**/*.js') - .pipe(eslint({ fix: true })) - .pipe(eslint.fix()) - .pipe(eslint.format()) - .pipe(eslint.failAfterError()); + return gulp + .src('src/**/*.js') + .pipe(eslint({fix: true})) + .pipe(eslint.fix()) + .pipe(eslint.format()) + .pipe(eslint.failAfterError()); } export function styles() { - return gulp - .src('src/**/*.js') - .pipe( - prettier({ - singleQuote: true, - trailingComma: 'all', - tabWidth: 4, - bracketSpacing: true - }) - ) - .pipe(gulp.dest((file) => file.base)); + return gulp + .src('src/**/*.js') + .pipe(prettier({ + singleQuote: true, trailingComma: 'all', tabWidth: 4, bracketSpacing: true + })) + .pipe(gulp.dest((file) => file.base)); } function scripts(src, dest) { - return () => { - return browserify(src) - .transform('babelify', { - presets: [ [ '@babel/preset-env' ] ] - }) - .plugin('tinyify') - .bundle() - .pipe(fs.createWriteStream(dest)); - }; + return () => { + return browserify(src) + .transform('babelify', { + presets: [['@babel/preset-env']] + }) + .plugin('tinyify') + .bundle() + .pipe(fs.createWriteStream(dest)); + }; } function banner(dest) { - return () => gulp - .src(dest) - .pipe(header(fs.readFileSync('./banner', 'utf-8'), { pkg, updated: new Date().toLocaleString() })) - .pipe(gulp.dest((file) => file.base)); + return () => gulp + .src(dest) + .pipe(header(fs.readFileSync('./banner', 'utf-8'), {pkg, updated: new Date().toLocaleString()})) + .pipe(gulp.dest((file) => file.base)); } const artifacts = [ - { src: 'src/main.js', dest: 'sub-store.min.js' }, - { src: 'src/products/resource-parser.loon.js', dest: 'dist/sub-store-parser.loon.min.js'} -] + {src: 'src/main.js', dest: 'sub-store.min.js'}, + {src: 'src/products/resource-parser.loon.js', dest: 'dist/sub-store-parser.loon.min.js'} +]; -export const build = gulp.series( - gulp.parallel(artifacts.map(artifact => scripts(artifact.src, artifact.dest))), - gulp.parallel(artifacts.map(artifact => banner(artifact.dest))) -); +export const build = gulp.series(gulp.parallel(artifacts.map(artifact => scripts(artifact.src, artifact.dest))), gulp.parallel(artifacts.map(artifact => banner(artifact.dest)))); -const all = gulp.series( - lint, - styles, - build -) +const all = gulp.series(peggy, lint, styles, build) export default all; diff --git a/backend/package-lock.json b/backend/package-lock.json index 11672fe..72ab2c7 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -26,15 +26,21 @@ "babelify": "^10.0.0", "browser-pack-flat": "^3.4.2", "browserify": "^17.0.0", + "chai": "^4.3.6", "eslint": "^8.16.0", "gulp": "^4.0.2", "gulp-babel": "^8.0.0", "gulp-eslint-new": "^1.4.4", + "gulp-file": "^0.4.0", "gulp-header": "^2.0.9", "gulp-prettier": "^4.0.0", + "gulp-tap": "^2.0.0", + "mocha": "^10.0.0", "nodemon": "^2.0.16", + "peggy": "^2.0.1", "prettier": "2.6.2", "prettier-plugin-sort-imports": "^1.6.1", + "through2": "^4.0.2", "tinyify": "^3.0.0" } }, @@ -1929,6 +1935,16 @@ "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", "dev": true }, + "node_modules/@goto-bus-stop/envify/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -2287,6 +2303,12 @@ "@types/vinyl": "*" } }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/abbrev/-/abbrev-1.1.1.tgz", @@ -2747,6 +2769,15 @@ "inherits": "2.0.1" } }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -3252,6 +3283,26 @@ "safe-buffer": "~5.1.1" } }, + "node_modules/browser-pack-flat/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/browser-pack/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/browser-process-hrtime": { "version": "0.1.3", "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", @@ -3267,6 +3318,12 @@ "resolve": "^1.17.0" } }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, "node_modules/browser-unpack": { "version": "1.4.2", "resolved": "https://registry.npmmirror.com/browser-unpack/-/browser-unpack-1.4.2.tgz", @@ -3448,6 +3505,16 @@ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, + "node_modules/browserify/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/browserslist": { "version": "4.20.3", "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.20.3.tgz", @@ -3520,6 +3587,16 @@ "bundle-collapser": "bin/cmd.js" } }, + "node_modules/bundle-collapser/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -3653,6 +3730,24 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", @@ -3669,6 +3764,15 @@ "node": ">=0.10.0" } }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/chokidar": { "version": "2.1.8", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz", @@ -3995,6 +4099,16 @@ "safe-buffer": "~5.1.1" } }, + "node_modules/common-shakeify/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", @@ -4366,6 +4480,18 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz", @@ -4494,6 +4620,16 @@ "deps-sort": "bin/cmd.js" } }, + "node_modules/deps-sort/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/des.js": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/des.js/-/des.js-1.0.1.tgz", @@ -4535,6 +4671,15 @@ "node": ">=0.8.0" } }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -5826,6 +5971,15 @@ "node": ">= 0.10" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz", @@ -5981,6 +6135,16 @@ "node": ">= 0.10" } }, + "node_modules/fs-mkdirp-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -6059,6 +6223,15 @@ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", @@ -6336,6 +6509,16 @@ "@babel/core": "^7.0.0" } }, + "node_modules/gulp-babel/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/gulp-cli": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/gulp-cli/-/gulp-cli-2.3.0.tgz", @@ -6398,6 +6581,68 @@ "node": ">=10.13.0" } }, + "node_modules/gulp-file": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/gulp-file/-/gulp-file-0.4.0.tgz", + "integrity": "sha512-3NPCJpAPpbNoV2aml8T96OK3Aof4pm4PMOIa1jSQbMNSNUUXdZ5QjVgLXLStjv0gg9URcETc7kvYnzXdYXUWug==", + "dev": true, + "dependencies": { + "through2": "^0.4.1", + "vinyl": "^2.1.0" + } + }, + "node_modules/gulp-file/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/gulp-file/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "dev": true + }, + "node_modules/gulp-file/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/gulp-file/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/gulp-file/node_modules/through2": { + "version": "0.4.2", + "resolved": "https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz", + "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", + "dev": true, + "dependencies": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + } + }, + "node_modules/gulp-file/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dev": true, + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, "node_modules/gulp-header": { "version": "2.0.9", "resolved": "https://registry.npmmirror.com/gulp-header/-/gulp-header-2.0.9.tgz", @@ -6410,6 +6655,16 @@ "through2": "^2.0.0" } }, + "node_modules/gulp-header/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/gulp-prettier": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/gulp-prettier/-/gulp-prettier-4.0.0.tgz", @@ -6424,27 +6679,29 @@ "node": ">=12" } }, - "node_modules/gulp-prettier/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/gulp-tap": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/gulp-tap/-/gulp-tap-2.0.0.tgz", + "integrity": "sha512-U5/v1bTozx672QHzrvzPe6fPl2io7Wqyrx2y30AG53eMU/idH4BrY/b2yikOkdyhjDqGgPoMUMnpBg9e9LK8Nw==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "through2": "^3.0.1" } }, - "node_modules/gulp-prettier/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "node_modules/gulp-tap/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/gulp-tap/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "dependencies": { - "readable-stream": "3" + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } }, "node_modules/gulplog": { @@ -6646,6 +6903,15 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -6839,6 +7105,16 @@ "insert-module-globals": "bin/cmd.js" } }, + "node_modules/insert-module-globals/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.3.tgz", @@ -7179,6 +7455,15 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -7282,6 +7567,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz", @@ -7677,6 +7971,92 @@ "lodash._reinterpolate": "^3.0.0" } }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -8080,6 +8460,528 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, + "node_modules/mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/mocha/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/mocha/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/mocha/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/module-deps": { "version": "6.2.3", "resolved": "https://registry.npmmirror.com/module-deps/-/module-deps-6.2.3.tgz", @@ -8109,6 +9011,16 @@ "node": ">= 0.8.0" } }, + "node_modules/module-deps/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -8182,6 +9094,18 @@ "nanobench-compare": "compare.js" } }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", @@ -9098,6 +10022,15 @@ "node": ">=0.10.0" } }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -9114,6 +10047,31 @@ "node": ">=0.12" } }, + "node_modules/peggy": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/peggy/-/peggy-2.0.1.tgz", + "integrity": "sha512-mBqfmdUAOVn7RILpXTbcRBhLfTR4Go0SresSnivGDdRylBOyVFJncFiVyCNNpPWq8HmgeRleXHs/Go4o8kQVXA==", + "dev": true, + "dependencies": { + "commander": "^9.3.0", + "source-map-generator": "0.8.0" + }, + "bin": { + "peggy": "bin/peggy.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/peggy/node_modules/commander": { + "version": "9.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -9840,6 +10798,16 @@ "node": ">= 0.10" } }, + "node_modules/remove-bom-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -10137,6 +11105,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -10427,6 +11404,15 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-generator": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/source-map-generator/-/source-map-generator-0.8.0.tgz", + "integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -11229,13 +12215,12 @@ "dev": true }, "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "3" } }, "node_modules/through2-filter": { @@ -11248,6 +12233,30 @@ "xtend": "~4.0.0" } }, + "node_modules/through2-filter/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/time-stamp/-/time-stamp-1.1.0.tgz", @@ -11424,6 +12433,16 @@ "node": ">= 0.10" } }, + "node_modules/to-through/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -11529,6 +12548,15 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", @@ -12183,6 +13211,16 @@ "node": ">= 0.10" } }, + "node_modules/vinyl-fs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/vinyl-sourcemap": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", @@ -12350,6 +13388,12 @@ "node": ">=0.10.0" } }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, "node_modules/wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -12446,6 +13490,48 @@ "camelcase": "^3.0.0", "object.assign": "^4.1.0" } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } } }, "dependencies": { @@ -13801,6 +14887,16 @@ "resolved": "https://registry.npmmirror.com/dash-ast/-/dash-ast-2.0.1.tgz", "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } } } }, @@ -14101,6 +15197,12 @@ "@types/vinyl": "*" } }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/abbrev/-/abbrev-1.1.1.tgz", @@ -14477,6 +15579,12 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -14856,6 +15964,18 @@ "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "browser-pack-flat": { @@ -14889,6 +16009,16 @@ "requires": { "safe-buffer": "~5.1.1" } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } } } }, @@ -14907,6 +16037,12 @@ "resolve": "^1.17.0" } }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, "browser-unpack": { "version": "1.4.2", "resolved": "https://registry.npmmirror.com/browser-unpack/-/browser-unpack-1.4.2.tgz", @@ -14979,6 +16115,16 @@ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } } } }, @@ -15138,6 +16284,18 @@ "falafel": "^2.1.0", "minimist": "^1.1.1", "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "bytes": { @@ -15254,6 +16412,21 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, + "chai": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", @@ -15267,6 +16440,12 @@ "supports-color": "^2.0.0" } }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz", @@ -15544,6 +16723,16 @@ "requires": { "safe-buffer": "~5.1.1" } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } } } }, @@ -15869,6 +17058,15 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, "deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz", @@ -15970,6 +17168,18 @@ "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "des.js": { @@ -16004,6 +17214,12 @@ "minimist": "^1.1.1" } }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -17087,6 +18303,12 @@ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", "dev": true }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz", @@ -17210,6 +18432,18 @@ "requires": { "graceful-fs": "^4.1.11", "through2": "^2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "fs.realpath": { @@ -17276,6 +18510,12 @@ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, "get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", @@ -17503,6 +18743,18 @@ "replace-ext": "^1.0.0", "through2": "^2.0.0", "vinyl-sourcemaps-apply": "^0.2.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "gulp-cli": { @@ -17557,6 +18809,67 @@ } } }, + "gulp-file": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/gulp-file/-/gulp-file-0.4.0.tgz", + "integrity": "sha512-3NPCJpAPpbNoV2aml8T96OK3Aof4pm4PMOIa1jSQbMNSNUUXdZ5QjVgLXLStjv0gg9URcETc7kvYnzXdYXUWug==", + "dev": true, + "requires": { + "through2": "^0.4.1", + "vinyl": "^2.1.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz", + "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", + "dev": true, + "requires": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, "gulp-header": { "version": "2.0.9", "resolved": "https://registry.npmmirror.com/gulp-header/-/gulp-header-2.0.9.tgz", @@ -17567,6 +18880,18 @@ "lodash.template": "^4.5.0", "map-stream": "0.0.7", "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "gulp-prettier": { @@ -17578,26 +18903,31 @@ "plugin-error": "^1.0.1", "prettier": "^2.0.0", "through2": "^4.0.2" + } + }, + "gulp-tap": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/gulp-tap/-/gulp-tap-2.0.0.tgz", + "integrity": "sha512-U5/v1bTozx672QHzrvzPe6fPl2io7Wqyrx2y30AG53eMU/idH4BrY/b2yikOkdyhjDqGgPoMUMnpBg9e9LK8Nw==", + "dev": true, + "requires": { + "through2": "^3.0.1" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, "requires": { - "readable-stream": "3" + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } } } @@ -17762,6 +19092,12 @@ "minimalistic-assert": "^1.0.1" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -17922,6 +19258,18 @@ "through2": "^2.0.0", "undeclared-identifiers": "^1.1.2", "xtend": "^4.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "internal-slot": { @@ -18182,6 +19530,12 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -18264,6 +19618,12 @@ "unc-path-regex": "^0.1.2" } }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz", @@ -18592,6 +19952,76 @@ "lodash._reinterpolate": "^3.0.0" } }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -18926,6 +20356,407 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, + "mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + } + } + }, "module-deps": { "version": "6.2.3", "resolved": "https://registry.npmmirror.com/module-deps/-/module-deps-6.2.3.tgz", @@ -18947,6 +20778,18 @@ "subarg": "^1.0.0", "through2": "^2.0.0", "xtend": "^4.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "ms": { @@ -19014,6 +20857,12 @@ "pretty-hrtime": "^1.0.2" } }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", @@ -19733,6 +21582,12 @@ } } }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, "pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -19746,6 +21601,24 @@ "sha.js": "^2.4.8" } }, + "peggy": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/peggy/-/peggy-2.0.1.tgz", + "integrity": "sha512-mBqfmdUAOVn7RILpXTbcRBhLfTR4Go0SresSnivGDdRylBOyVFJncFiVyCNNpPWq8HmgeRleXHs/Go4o8kQVXA==", + "dev": true, + "requires": { + "commander": "^9.3.0", + "source-map-generator": "0.8.0" + }, + "dependencies": { + "commander": { + "version": "9.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "dev": true + } + } + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -20350,6 +22223,18 @@ "remove-bom-buffer": "^3.0.0", "safe-buffer": "^5.1.0", "through2": "^2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "remove-trailing-separator": { @@ -20602,6 +22487,15 @@ } } }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -20845,6 +22739,12 @@ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "devOptional": true }, + "source-map-generator": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/source-map-generator/-/source-map-generator-0.8.0.tgz", + "integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -21540,13 +23440,25 @@ "dev": true }, "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "through2-filter": { @@ -21557,6 +23469,18 @@ "requires": { "through2": "~2.0.0", "xtend": "~4.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "time-stamp": { @@ -21703,6 +23627,18 @@ "dev": true, "requires": { "through2": "^2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "toidentifier": { @@ -21794,6 +23730,12 @@ "prelude-ls": "~1.1.2" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", @@ -22324,6 +24266,18 @@ "value-or-function": "^3.0.0", "vinyl": "^2.0.0", "vinyl-sourcemap": "^1.1.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "vinyl-sourcemap": { @@ -22467,6 +24421,12 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -22554,6 +24514,38 @@ "camelcase": "^3.0.0", "object.assign": "^4.1.0" } + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/backend/package.json b/backend/package.json index f1d0d5b..76ce996 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,10 +1,10 @@ { "name": "sub-store", - "version": "1.6", + "version": "2.0", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "gulp peggy && npx cross-env BABEL_ENV=test mocha --require @babel/register --recursive", "serve": "node sub-store.min.js", "start": "nodemon --exec node_modules/.bin/babel-node src/main.js", "build": "gulp" @@ -29,15 +29,21 @@ "babelify": "^10.0.0", "browser-pack-flat": "^3.4.2", "browserify": "^17.0.0", + "chai": "^4.3.6", "eslint": "^8.16.0", "gulp": "^4.0.2", "gulp-babel": "^8.0.0", "gulp-eslint-new": "^1.4.4", + "gulp-file": "^0.4.0", "gulp-header": "^2.0.9", "gulp-prettier": "^4.0.0", + "gulp-tap": "^2.0.0", + "mocha": "^10.0.0", "nodemon": "^2.0.16", + "peggy": "^2.0.1", "prettier": "2.6.2", "prettier-plugin-sort-imports": "^1.6.1", + "through2": "^4.0.2", "tinyify": "^3.0.0" } } diff --git a/backend/src/core/proxy-utils/grammars/loon.js b/backend/src/core/proxy-utils/grammars/loon.js new file mode 100644 index 0000000..f015c84 --- /dev/null +++ b/backend/src/core/proxy-utils/grammars/loon.js @@ -0,0 +1,172 @@ +const grammars = String.raw` +// global initializer +{{ + function $set(obj, path, value) { + if (Object(obj) !== obj) return obj; + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || []; + path + .slice(0, -1) + .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value; + return obj; + } +}} + +// per-parser initializer +{ + const proxy = {}; + const obfs = {}; + const transport = {}; + const $ = {}; + + function handleTransport() { + if (transport.type === "tcp") { /* do nothing */ } + else if (transport.type === "ws") { + proxy.network = "ws"; + $set(proxy, "ws-opts.path", transport.path); + $set(proxy, "ws-opts.headers.Host", transport.host); + } else if (transport.type === "http") { + proxy.network = "http"; + $set(proxy, "http-opts.path", transport.path); + $set(proxy, "http-opts.headers.Host", transport.host); + } + } +} + +start = (shadowsocksr/shadowsocks/vmess/vless/trojan/https/http) { + return proxy; +} + +shadowsocksr = tag equals "shadowsocksr"i address method password (ssr_protocol/ssr_protocol_param/obfs_ssr/obfs_ssr_param/obfs_host/obfs_uri/fast_open/udp_relay/others)*{ + proxy.type = "ssr"; + // handle ssr obfs + proxy.obfs = obfs.type; +} +shadowsocks = tag equals "shadowsocks"i address method password (obfs_ss/obfs_host/obfs_uri/fast_open/udp_relay/others)* { + proxy.type = "ss"; + // handle ss obfs + if (obfs.type == "http" || obfs.type === "tls") { + proxy.plugin = "obfs"; + $set(proxy, "plugin-opts.mode", obfs.type); + $set(proxy, "plugin-opts.host", obfs.host); + $set(proxy, "plugin-opts.path", obfs.path); + } +} +vmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/vmess_alterId/fast_open/udp_relay/others)* { + proxy.type = "vmess"; + handleTransport(); +} +vless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "vless"; + handleTransport(); +} +trojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "trojan"; + handleTransport(); +} +https = tag equals "https"i address (username password)? (tls_host/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "http"; + proxy.tls = true; +} +http = tag equals "http"i address (username password)? (fast_open/udp_relay/others)* { + proxy.type = "http"; +} + +address = comma server:server comma port:port { + proxy.server = server; + proxy.port = port; +} + +server = ip/domain + +ip = & { + const start = peg$currPos; + let j = start; + while (j < input.length) { + if (input[j] === ",") break; + j++; + } + peg$currPos = j; + $.ip = input.substring(start, j).trim(); + return true; +} { return $.ip; } + +domain = match:[0-9a-zA-z-_.]+ { + const domain = match.join(""); + if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) { + return domain; + } + throw new Error("Invalid domain: " + domain); +} + +port = digits:[0-9]+ { + const port = parseInt(digits.join(""), 10); + if (port >= 80 && port <= 65535) { + return port; + } + throw new Error("Invalid port number: " + port); +} + +method = comma cipher:cipher { proxy.cipher = cipher; } +cipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none"); + +username = & { + let j = peg$currPos; + let start, end; + let first = true; + while (j < input.length) { + if (input[j] === ',') { + if (first) { + start = j + 1; + first = false; + } else { + end = j; + break; + } + } + j++; + } + const match = input.substring(start, end); + if (match.indexOf("=") === -1) { + $.username = match; + peg$currPos = end; + return true; + } +} { proxy.username = $.username; } +password = comma '"' match:[^"]* '"' { proxy.password = match.join(""); } +uuid = comma '"' match:[^"]+ '"' { proxy.uuid = match.join(""); } + +obfs_ss = comma "obfs-name" equals type:("http"/"tls") { obfs.type = type; } + +obfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; } +obfs_ssr_param = comma "obfs-param" equals match:$[^,]+ { proxy["obfs-param"] = match; } + +obfs_host = comma "obfs-host" equals host:domain { obfs.host = host; } +obfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; } +uri = $[^,]+ + +transport = comma "transport" equals type:("tcp"/"ws"/"http") { transport.type = type; } +transport_host = comma "host" equals host:domain { transport.host = host; } +transport_path = comma "path" equals path:uri { transport.path = path; } + +ssr_protocol = comma "protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; } +ssr_protocol_param = comma "protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; } + +vmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseInt(alterId); } + +over_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; } +tls_host = comma "tls-name" equals host:domain { proxy.sni = host; } +tls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; } + +fast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; } +udp_relay = comma "udp" equals flag:bool { proxy.udp = flag; } + +tag = match:[^=,]* { proxy.name = match.join("").trim(); } +comma = _ "," _ +equals = _ "=" _ +_ = [ \r\t]* +bool = b:("true"/"false") { return b === "true" } +others = comma [^=,]+ equals [^=,]+ +`; +export default grammars; diff --git a/backend/src/core/proxy-utils/grammars/loon.peg b/backend/src/core/proxy-utils/grammars/loon.peg new file mode 100644 index 0000000..d42ffd1 --- /dev/null +++ b/backend/src/core/proxy-utils/grammars/loon.peg @@ -0,0 +1,169 @@ +// global initializer +{{ + function $set(obj, path, value) { + if (Object(obj) !== obj) return obj; + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || []; + path + .slice(0, -1) + .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value; + return obj; + } +}} + +// per-parser initializer +{ + const proxy = {}; + const obfs = {}; + const transport = {}; + const $ = {}; + + function handleTransport() { + if (transport.type === "tcp") { /* do nothing */ } + else if (transport.type === "ws") { + proxy.network = "ws"; + $set(proxy, "ws-opts.path", transport.path); + $set(proxy, "ws-opts.headers.Host", transport.host); + } else if (transport.type === "http") { + proxy.network = "http"; + $set(proxy, "http-opts.path", transport.path); + $set(proxy, "http-opts.headers.Host", transport.host); + } + } +} + +start = (shadowsocksr/shadowsocks/vmess/vless/trojan/https/http) { + return proxy; +} + +shadowsocksr = tag equals "shadowsocksr"i address method password (ssr_protocol/ssr_protocol_param/obfs_ssr/obfs_ssr_param/obfs_host/obfs_uri/fast_open/udp_relay/others)*{ + proxy.type = "ssr"; + // handle ssr obfs + proxy.obfs = obfs.type; +} +shadowsocks = tag equals "shadowsocks"i address method password (obfs_ss/obfs_host/obfs_uri/fast_open/udp_relay/others)* { + proxy.type = "ss"; + // handle ss obfs + if (obfs.type == "http" || obfs.type === "tls") { + proxy.plugin = "obfs"; + $set(proxy, "plugin-opts.mode", obfs.type); + $set(proxy, "plugin-opts.host", obfs.host); + $set(proxy, "plugin-opts.path", obfs.path); + } +} +vmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/vmess_alterId/fast_open/udp_relay/others)* { + proxy.type = "vmess"; + handleTransport(); +} +vless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "vless"; + handleTransport(); +} +trojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "trojan"; + handleTransport(); +} +https = tag equals "https"i address (username password)? (tls_host/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "http"; + proxy.tls = true; +} +http = tag equals "http"i address (username password)? (fast_open/udp_relay/others)* { + proxy.type = "http"; +} + +address = comma server:server comma port:port { + proxy.server = server; + proxy.port = port; +} + +server = ip/domain + +ip = & { + const start = peg$currPos; + let j = start; + while (j < input.length) { + if (input[j] === ",") break; + j++; + } + peg$currPos = j; + $.ip = input.substring(start, j).trim(); + return true; +} { return $.ip; } + +domain = match:[0-9a-zA-z-_.]+ { + const domain = match.join(""); + if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) { + return domain; + } + throw new Error("Invalid domain: " + domain); +} + +port = digits:[0-9]+ { + const port = parseInt(digits.join(""), 10); + if (port >= 80 && port <= 65535) { + return port; + } + throw new Error("Invalid port number: " + port); +} + +method = comma cipher:cipher { proxy.cipher = cipher; } +cipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none"); + +username = & { + let j = peg$currPos; + let start, end; + let first = true; + while (j < input.length) { + if (input[j] === ',') { + if (first) { + start = j + 1; + first = false; + } else { + end = j; + break; + } + } + j++; + } + const match = input.substring(start, end); + if (match.indexOf("=") === -1) { + $.username = match; + peg$currPos = end; + return true; + } +} { proxy.username = $.username; } +password = comma '"' match:[^"]* '"' { proxy.password = match.join(""); } +uuid = comma '"' match:[^"]+ '"' { proxy.uuid = match.join(""); } + +obfs_ss = comma "obfs-name" equals type:("http"/"tls") { obfs.type = type; } + +obfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; } +obfs_ssr_param = comma "obfs-param" equals match:$[^,]+ { proxy["obfs-param"] = match; } + +obfs_host = comma "obfs-host" equals host:domain { obfs.host = host; } +obfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; } +uri = $[^,]+ + +transport = comma "transport" equals type:("tcp"/"ws"/"http") { transport.type = type; } +transport_host = comma "host" equals host:domain { transport.host = host; } +transport_path = comma "path" equals path:uri { transport.path = path; } + +ssr_protocol = comma "protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; } +ssr_protocol_param = comma "protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; } + +vmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseInt(alterId); } + +over_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; } +tls_host = comma "tls-name" equals host:domain { proxy.sni = host; } +tls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; } + +fast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; } +udp_relay = comma "udp" equals flag:bool { proxy.udp = flag; } + +tag = match:[^=,]* { proxy.name = match.join("").trim(); } +comma = _ "," _ +equals = _ "=" _ +_ = [ \r\t]* +bool = b:("true"/"false") { return b === "true" } +others = comma [^=,]+ equals [^=,]+ \ No newline at end of file diff --git a/backend/src/core/proxy-utils/grammars/qx.js b/backend/src/core/proxy-utils/grammars/qx.js new file mode 100644 index 0000000..9265450 --- /dev/null +++ b/backend/src/core/proxy-utils/grammars/qx.js @@ -0,0 +1,171 @@ +const grammars = String.raw` +// global initializer +{{ + function $set(obj, path, value) { + if (Object(obj) !== obj) return obj; + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || []; + path + .slice(0, -1) + .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value; + return obj; + } +}} + +// per-parse initializer +{ + const proxy = {}; + const obfs = {}; + const $ = {}; + + function handleObfs() { + if (obfs.type === "ws" || obfs.type === "wss") { + proxy.network = "ws"; + if (obfs.type === 'wss') { + proxy.tls = true; + } + $set(proxy, "ws-opts.path", obfs.path); + $set(proxy, "ws-opts.headers.Host", obfs.host); + } else if (obfs.type === "over-tls") { + proxy.tls = true; + proxy.sni = proxy.sni || proxy.server; + } else if (obfs.type === "http") { + proxy.network = "http"; + $set(proxy, "http-opts.path", obfs.path); + $set(proxy, "http-opts.headers.Host", obfs.host); + } + } +} + +start = (trojan/shadowsocks/vmess/http/socks5) { + return proxy +} + +trojan = "trojan" equals address + (password/over_tls/tls_host/tls_verification/obfs/obfs_host/obfs_uri/tag/udp_relay/udp_over_tcp/fast_open/others)* { + proxy.type = "trojan"; + handleObfs(); +} + +shadowsocks = "shadowsocks" equals address + (password/method/obfs_ssr/obfs_ss/obfs_host/obfs_uri/ssr_protocol/ssr_protocol_param/tls_verification/udp_relay/udp_over_tcp/fast_open/tag/others)* { + if (proxy.protocol) { + proxy.type = "ssr"; + // handle ssr obfs + if (obfs.host) proxy["obfs-param"] = obfs.host; + if (obfs.type) proxy.obfs = obfs.type; + } else { + proxy.type = "ss"; + // handle ss obfs + if (obfs.type == "http" || obfs.type === "tls") { + proxy.plugin = "obfs"; + $set(proxy, "plugin-opts", { + mode: obfs.type + }); + } else if (obfs.type === "ws" || obfs.type === "wss") { + proxy.plugin = "v2ray-plugin"; + $set(proxy, "plugin-opts.mode", "websocket"); + if (obfs.type === "wss") { + $set(proxy, "plugin-opts.tls", true); + } + } else if (obfs.type === 'over-tls') { + throw new Error('ss over-tls is not supported'); + } + if (obfs.type) { + $set(proxy, "plugin-opts.host", obfs.host); + $set(proxy, "plugin-opts.path", obfs.path); + } + } +} + +vmess = "vmess" equals address + (uuid/method/over_tls/tls_host/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/others)* { + proxy.type = "vmess"; + handleObfs(); +} + +http = "http" equals address + (username/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)*{ + proxy.type = "http"; +} + +socks5 = "socks5" equals address + (username/password/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)* { + proxy.type = "socks5"; +} + +address = server:server ":" port:port { + proxy.server = server; + proxy.port = port; +} +server = ip/domain + +domain = match:[0-9a-zA-z-_.]+ { + const domain = match.join(""); + if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) { + return domain; + } +} + +ip = & { + const start = peg$currPos; + let end; + let j = start; + while (j < input.length) { + if (input[j] === ",") break; + if (input[j] === ":") end = j; + j++; + } + peg$currPos = end || j; + $.ip = input.substring(start, end).trim(); + return true; +} { return $.ip; } + +port = digits:[0-9]+ { + const port = parseInt(digits.join(""), 10); + if (port >= 80 && port <= 65535) { + return port; + } +} + +username = comma "username" equals username:[^=,]+ { proxy.username = username.join("").trim(); } +password = comma "password" equals password:[^=,]+ { proxy.password = password.join("").trim(); } +uuid = comma "password" equals uuid:[^=,]+ { proxy.uuid = uuid.join("").trim(); } + +method = comma "method" equals cipher:cipher { proxy.cipher = cipher }; +cipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf-poly1305"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none"); +aead = comma "aead" equals flag:bool { proxy.alterId = 0; } + +udp_relay = comma "udp-relay" equals flag:bool { proxy.udp = flag; } +udp_over_tcp = comma "udp-over-tcp" equals flag:bool { throw new Error("UDP over TCP is not supported"); } +fast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; } + +over_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; } +tls_host = comma "tls-host" equals sni:domain { proxy.sni = sni; } +tls_verification = comma "tls-verification" equals flag:bool { + if (!flag) { + proxy["skip-cert-verify"] = true; + } +} + +obfs_ss = comma "obfs" equals type:("http"/"tls"/"wss"/"ws") { obfs.type = type; return type; } +obfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; return type; } +obfs = comma "obfs" equals type:("wss"/"ws"/"over-tls"/"http") { obfs.type = type; return type; }; + +obfs_host = comma "obfs-host" equals host:domain { obfs.host = host; } +obfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; } + +ssr_protocol = comma "ssr-protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; return protocol; } +ssr_protocol_param = comma "ssr-protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; } + +uri = $[^,]+ + +tag = comma "tag" equals tag:[^=,]+ { proxy.name = tag.join(""); } +others = comma [^=,]+ equals [^=,]+ +comma = _ "," _ +equals = _ "=" _ +_ = [ \r\t]* +bool = b:("true"/"false") { return b === "true" } +`; +export default grammars; diff --git a/backend/src/core/proxy-utils/grammars/qx.peg b/backend/src/core/proxy-utils/grammars/qx.peg new file mode 100644 index 0000000..7978ece --- /dev/null +++ b/backend/src/core/proxy-utils/grammars/qx.peg @@ -0,0 +1,168 @@ +// global initializer +{{ + function $set(obj, path, value) { + if (Object(obj) !== obj) return obj; + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || []; + path + .slice(0, -1) + .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value; + return obj; + } +}} + +// per-parse initializer +{ + const proxy = {}; + const obfs = {}; + const $ = {}; + + function handleObfs() { + if (obfs.type === "ws" || obfs.type === "wss") { + proxy.network = "ws"; + if (obfs.type === 'wss') { + proxy.tls = true; + } + $set(proxy, "ws-opts.path", obfs.path); + $set(proxy, "ws-opts.headers.Host", obfs.host); + } else if (obfs.type === "over-tls") { + proxy.tls = true; + proxy.sni = proxy.sni || proxy.server; + } else if (obfs.type === "http") { + proxy.network = "http"; + $set(proxy, "http-opts.path", obfs.path); + $set(proxy, "http-opts.headers.Host", obfs.host); + } + } +} + +start = (trojan/shadowsocks/vmess/http/socks5) { + return proxy +} + +trojan = "trojan" equals address + (password/over_tls/tls_host/tls_verification/obfs/obfs_host/obfs_uri/tag/udp_relay/udp_over_tcp/fast_open/others)* { + proxy.type = "trojan"; + handleObfs(); +} + +shadowsocks = "shadowsocks" equals address + (password/method/obfs_ssr/obfs_ss/obfs_host/obfs_uri/ssr_protocol/ssr_protocol_param/tls_verification/udp_relay/udp_over_tcp/fast_open/tag/others)* { + if (proxy.protocol) { + proxy.type = "ssr"; + // handle ssr obfs + if (obfs.host) proxy["obfs-param"] = obfs.host; + if (obfs.type) proxy.obfs = obfs.type; + } else { + proxy.type = "ss"; + // handle ss obfs + if (obfs.type == "http" || obfs.type === "tls") { + proxy.plugin = "obfs"; + $set(proxy, "plugin-opts", { + mode: obfs.type + }); + } else if (obfs.type === "ws" || obfs.type === "wss") { + proxy.plugin = "v2ray-plugin"; + $set(proxy, "plugin-opts.mode", "websocket"); + if (obfs.type === "wss") { + $set(proxy, "plugin-opts.tls", true); + } + } else if (obfs.type === 'over-tls') { + throw new Error('ss over-tls is not supported'); + } + if (obfs.type) { + $set(proxy, "plugin-opts.host", obfs.host); + $set(proxy, "plugin-opts.path", obfs.path); + } + } +} + +vmess = "vmess" equals address + (uuid/method/over_tls/tls_host/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/others)* { + proxy.type = "vmess"; + handleObfs(); +} + +http = "http" equals address + (username/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)*{ + proxy.type = "http"; +} + +socks5 = "socks5" equals address + (username/password/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)* { + proxy.type = "socks5"; +} + +address = server:server ":" port:port { + proxy.server = server; + proxy.port = port; +} +server = ip/domain + +domain = match:[0-9a-zA-z-_.]+ { + const domain = match.join(""); + if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) { + return domain; + } +} + +ip = & { + const start = peg$currPos; + let end; + let j = start; + while (j < input.length) { + if (input[j] === ",") break; + if (input[j] === ":") end = j; + j++; + } + peg$currPos = end || j; + $.ip = input.substring(start, end).trim(); + return true; +} { return $.ip; } + +port = digits:[0-9]+ { + const port = parseInt(digits.join(""), 10); + if (port >= 80 && port <= 65535) { + return port; + } +} + +username = comma "username" equals username:[^=,]+ { proxy.username = username.join("").trim(); } +password = comma "password" equals password:[^=,]+ { proxy.password = password.join("").trim(); } +uuid = comma "password" equals uuid:[^=,]+ { proxy.uuid = uuid.join("").trim(); } + +method = comma "method" equals cipher:cipher { proxy.cipher = cipher }; +cipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf-poly1305"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none"); +aead = comma "aead" equals flag:bool { proxy.alterId = 0; } + +udp_relay = comma "udp-relay" equals flag:bool { proxy.udp = flag; } +udp_over_tcp = comma "udp-over-tcp" equals flag:bool { throw new Error("UDP over TCP is not supported"); } +fast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; } + +over_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; } +tls_host = comma "tls-host" equals sni:domain { proxy.sni = sni; } +tls_verification = comma "tls-verification" equals flag:bool { + if (!flag) { + proxy["skip-cert-verify"] = true; + } +} + +obfs_ss = comma "obfs" equals type:("http"/"tls"/"wss"/"ws") { obfs.type = type; return type; } +obfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; return type; } +obfs = comma "obfs" equals type:("wss"/"ws"/"over-tls"/"http") { obfs.type = type; return type; }; + +obfs_host = comma "obfs-host" equals host:domain { obfs.host = host; } +obfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; } + +ssr_protocol = comma "ssr-protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; return protocol; } +ssr_protocol_param = comma "ssr-protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; } + +uri = $[^,]+ + +tag = comma "tag" equals tag:[^=,]+ { proxy.name = tag.join(""); } +others = comma [^=,]+ equals [^=,]+ +comma = _ "," _ +equals = _ "=" _ +_ = [ \r\t]* +bool = b:("true"/"false") { return b === "true" } \ No newline at end of file diff --git a/backend/src/core/proxy-utils/grammars/surge.js b/backend/src/core/proxy-utils/grammars/surge.js new file mode 100644 index 0000000..53ad456 --- /dev/null +++ b/backend/src/core/proxy-utils/grammars/surge.js @@ -0,0 +1,172 @@ +const grammars = String.raw` +// global initializer +{{ + function $set(obj, path, value) { + if (Object(obj) !== obj) return obj; + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || []; + path + .slice(0, -1) + .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value; + return obj; + } +}} + +// per-parser initializer +{ + const proxy = {}; + const obfs = {}; + const $ = {}; + + function handleWebsocket() { + if (obfs.type === "ws") { + proxy.network = "ws"; + $set(proxy, "ws-opts.path", obfs.path); + $set(proxy, "ws-opts.headers.Host", obfs.host); + } + } +} + +start = (shadowsocks/vmess/trojan/https/http/snell/socks5/socks5_tls) { + return proxy; +} + +shadowsocks = tag equals "ss" address (method/passwordk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* { + proxy.type = "ss"; + // handle obfs + if (obfs.type == "http" || obfs.type === "tls") { + proxy.plugin = "obfs"; + $set(proxy, "plugin-opts.mode", obfs.type); + $set(proxy, "plugin-opts.host", obfs.host); + $set(proxy, "plugin-opts.path", obfs.path); + } +} +vmess = tag equals "vmess" address (vmess_uuid/vmess_aead/ws/ws_path/ws_headers/method/tls/sni/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "vmess"; + handleWebsocket(); +} +trojan = tag equals "trojan" address (passwordk/ws/ws_path/ws_headers/tls/sni/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "trojan"; + handleWebsocket(); +} +https = tag equals "https" address (username password)? (sni/tls_verification/fast_open/others)* { + proxy.type = "http"; + proxy.tls = true; +} +http = tag equals "http" address (username password)? (fast_open/others)* { + proxy.type = "http"; +} +snell = tag equals "snell" address (snell_version/snell_psk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* { + proxy.type = "snell"; + // handle obfs + if (obfs.type == "http" || obfs.type === "tls") { + $set(proxy, "obfs-opts.mode", obfs.type); + $set(proxy, "obfs-opts.host", obfs.host); + $set(proxy, "obfs-opts.path", obfs.path); + } +} +socks5 = tag equals "socks5" address (username password)? (fast_open/others)* { + proxy.type = "socks5"; +} +socks5_tls = tag equals "socks5-tls" address (username password)? (sni/tls_verification/fast_open/others)* { + proxy.type = "socks5"; + proxy.tls = true; +} + +address = comma server:server comma port:port { + proxy.server = server; + proxy.port = port; +} + +server = ip/domain + +ip = & { + const start = peg$currPos; + let j = start; + while (j < input.length) { + if (input[j] === ",") break; + j++; + } + peg$currPos = j; + $.ip = input.substring(start, j).trim(); + return true; +} { return $.ip; } + +domain = match:[0-9a-zA-z-_.]+ { + const domain = match.join(""); + if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) { + return domain; + } +} + +port = digits:[0-9]+ { + const port = parseInt(digits.join(""), 10); + if (port >= 80 && port <= 65535) { + return port; + } +} + +username = & { + let j = peg$currPos; + let start, end; + let first = true; + while (j < input.length) { + if (input[j] === ',') { + if (first) { + start = j + 1; + first = false; + } else { + end = j; + break; + } + } + j++; + } + const match = input.substring(start, end); + if (match.indexOf("=") === -1) { + $.username = match; + peg$currPos = end; + return true; + } +} { proxy.username = $.username; } +password = comma match:[^,]+ { proxy.password = match.join(""); } + +tls = comma "tls" equals flag:bool { proxy.tls = flag; } +sni = comma "sni" equals sni:domain { proxy.sni = sni; } +tls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; } + +snell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join(""); } +snell_version = comma "version" equals match:$[0-9]+ { proxy.version = parseInt(match.trim()); } + +passwordk = comma "password" equals match:[^,]+ { proxy.password = match.join(""); } +vmess_uuid = comma "username" equals match:[^,]+ { proxy.uuid = match.join(""); } +vmess_aead = comma "vmess-aead" equals flag:bool { proxy.alterId = 0; } + +method = comma "encrypt-method" equals cipher:cipher { + proxy.cipher = cipher; +} +cipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none"); + +ws = comma "ws" equals flag:bool { obfs.type = "ws"; } +ws_headers = comma "ws-headers" equals "Host:" host:domain { + obfs.host = host; +} +ws_path = comma "ws-path" equals path:uri { obfs.path = path; } + +obfs = comma "obfs" equals type:("http"/"tls") { obfs.type = type; } +obfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }; +obfs_uri = comma "obfs-uri" equals path:uri { obfs.path = path } +uri = $[^,]+ + +udp_relay = comma "udp" equals flag:bool { proxy.udp = flag; } +fast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; } + +tag = match:[^=,]* { proxy.name = match.join("").trim(); } +comma = _ "," _ +equals = _ "=" _ +_ = [ \r\t]* +bool = b:("true"/"false") { return b === "true" } +others = comma [^=,]+ equals [^=,]+ +`; +export default grammars; diff --git a/backend/src/core/proxy-utils/grammars/surge.peg b/backend/src/core/proxy-utils/grammars/surge.peg new file mode 100644 index 0000000..eeaf575 --- /dev/null +++ b/backend/src/core/proxy-utils/grammars/surge.peg @@ -0,0 +1,169 @@ +// global initializer +{{ + function $set(obj, path, value) { + if (Object(obj) !== obj) return obj; + if (!Array.isArray(path)) path = path.toString().match(/[^.[\]]+/g) || []; + path + .slice(0, -1) + .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[ + path[path.length - 1] + ] = value; + return obj; + } +}} + +// per-parser initializer +{ + const proxy = {}; + const obfs = {}; + const $ = {}; + + function handleWebsocket() { + if (obfs.type === "ws") { + proxy.network = "ws"; + $set(proxy, "ws-opts.path", obfs.path); + $set(proxy, "ws-opts.headers.Host", obfs.host); + } + } +} + +start = (shadowsocks/vmess/trojan/https/http/snell/socks5/socks5_tls) { + return proxy; +} + +shadowsocks = tag equals "ss" address (method/passwordk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* { + proxy.type = "ss"; + // handle obfs + if (obfs.type == "http" || obfs.type === "tls") { + proxy.plugin = "obfs"; + $set(proxy, "plugin-opts.mode", obfs.type); + $set(proxy, "plugin-opts.host", obfs.host); + $set(proxy, "plugin-opts.path", obfs.path); + } +} +vmess = tag equals "vmess" address (vmess_uuid/vmess_aead/ws/ws_path/ws_headers/method/tls/sni/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "vmess"; + handleWebsocket(); +} +trojan = tag equals "trojan" address (passwordk/ws/ws_path/ws_headers/tls/sni/tls_verification/fast_open/udp_relay/others)* { + proxy.type = "trojan"; + handleWebsocket(); +} +https = tag equals "https" address (username password)? (sni/tls_verification/fast_open/others)* { + proxy.type = "http"; + proxy.tls = true; +} +http = tag equals "http" address (username password)? (fast_open/others)* { + proxy.type = "http"; +} +snell = tag equals "snell" address (snell_version/snell_psk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* { + proxy.type = "snell"; + // handle obfs + if (obfs.type == "http" || obfs.type === "tls") { + $set(proxy, "obfs-opts.mode", obfs.type); + $set(proxy, "obfs-opts.host", obfs.host); + $set(proxy, "obfs-opts.path", obfs.path); + } +} +socks5 = tag equals "socks5" address (username password)? (fast_open/others)* { + proxy.type = "socks5"; +} +socks5_tls = tag equals "socks5-tls" address (username password)? (sni/tls_verification/fast_open/others)* { + proxy.type = "socks5"; + proxy.tls = true; +} + +address = comma server:server comma port:port { + proxy.server = server; + proxy.port = port; +} + +server = ip/domain + +ip = & { + const start = peg$currPos; + let j = start; + while (j < input.length) { + if (input[j] === ",") break; + j++; + } + peg$currPos = j; + $.ip = input.substring(start, j).trim(); + return true; +} { return $.ip; } + +domain = match:[0-9a-zA-z-_.]+ { + const domain = match.join(""); + if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) { + return domain; + } +} + +port = digits:[0-9]+ { + const port = parseInt(digits.join(""), 10); + if (port >= 80 && port <= 65535) { + return port; + } +} + +username = & { + let j = peg$currPos; + let start, end; + let first = true; + while (j < input.length) { + if (input[j] === ',') { + if (first) { + start = j + 1; + first = false; + } else { + end = j; + break; + } + } + j++; + } + const match = input.substring(start, end); + if (match.indexOf("=") === -1) { + $.username = match; + peg$currPos = end; + return true; + } +} { proxy.username = $.username; } +password = comma match:[^,]+ { proxy.password = match.join(""); } + +tls = comma "tls" equals flag:bool { proxy.tls = flag; } +sni = comma "sni" equals sni:domain { proxy.sni = sni; } +tls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; } + +snell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join(""); } +snell_version = comma "version" equals match:$[0-9]+ { proxy.version = parseInt(match.trim()); } + +passwordk = comma "password" equals match:[^,]+ { proxy.password = match.join(""); } +vmess_uuid = comma "username" equals match:[^,]+ { proxy.uuid = match.join(""); } +vmess_aead = comma "vmess-aead" equals flag:bool { proxy.alterId = 0; } + +method = comma "encrypt-method" equals cipher:cipher { + proxy.cipher = cipher; +} +cipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none"); + +ws = comma "ws" equals flag:bool { obfs.type = "ws"; } +ws_headers = comma "ws-headers" equals "Host:" host:domain { + obfs.host = host; +} +ws_path = comma "ws-path" equals path:uri { obfs.path = path; } + +obfs = comma "obfs" equals type:("http"/"tls") { obfs.type = type; } +obfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }; +obfs_uri = comma "obfs-uri" equals path:uri { obfs.path = path } +uri = $[^,]+ + +udp_relay = comma "udp" equals flag:bool { proxy.udp = flag; } +fast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; } + +tag = match:[^=,]* { proxy.name = match.join("").trim(); } +comma = _ "," _ +equals = _ "=" _ +_ = [ \r\t]* +bool = b:("true"/"false") { return b === "true" } +others = comma [^=,]+ equals [^=,]+ \ No newline at end of file diff --git a/backend/src/core/proxy-utils/index.js b/backend/src/core/proxy-utils/index.js index 64af0eb..d4aa9e8 100644 --- a/backend/src/core/proxy-utils/index.js +++ b/backend/src/core/proxy-utils/index.js @@ -53,9 +53,7 @@ function parse(raw) { } proxies.push(proxy); } catch (err) { - $.error( - `Failed to parse line: \n ${line}\n Reason: ${err.stack}`, - ); + $.error(`Failed to parse line: \n ${line}\n Reason: ${err}`); } } } diff --git a/backend/src/core/proxy-utils/parsers.js b/backend/src/core/proxy-utils/parsers.js index 84c7c59..e7f55ee 100644 --- a/backend/src/core/proxy-utils/parsers.js +++ b/backend/src/core/proxy-utils/parsers.js @@ -1,4 +1,31 @@ +import surge from './grammars/surge'; +import loon from './grammars/loon'; import { Base64 } from 'js-base64'; +import qx from './grammars/qx'; +import * as peggy from 'peggy'; + +let QXParser, LoonParser, SurgeParser; + +function getQXParser() { + if (!QXParser) { + QXParser = peggy.generate(qx); + } + return QXParser; +} + +function getLoonParser() { + if (!LoonParser) { + LoonParser = peggy.generate(loon); + } + return LoonParser; +} + +function getSurgeParser() { + if (!SurgeParser) { + SurgeParser = peggy.generate(surge); + } + return SurgeParser; +} // Parse SS URI format (only supports new SIP002, legacy format is depreciated). // reference: https://shadowsocks.org/en/spec/SIP002-URI-Scheme.html @@ -304,53 +331,8 @@ function QX_SS() { ); }; const parse = (line) => { - const supported = {}; - const params = getQXParams(line); - const proxy = { - name: params.tag, - type: 'ss', - server: params.server, - port: params.port, - cipher: params.method, - password: params.password, - udp: JSON.parse(params['udp-relay'] || 'false'), - tfo: JSON.parse(params['fast-open'] || 'false'), - supported, - }; - // handle obfs options - if (params.obfs) { - proxy['plugin-opts'] = { - host: params['obfs-host'] || proxy.server, - }; - switch (params.obfs) { - case 'http': - case 'tls': - proxy.plugin = 'obfs'; - proxy['plugin-opts'].mode = params.obfs; - break; - case 'ws': - case 'wss': - proxy['plugin-opts'] = { - ...proxy['plugin-opts'], - mode: 'websocket', - path: params['obfs-uri'] || '/', - tls: params.obfs === 'wss', - }; - if ( - proxy['plugin-opts'].tls && - typeof params['tls-verification'] !== 'undefined' - ) { - proxy['plugin-opts']['skip-cert-verify'] = - params['tls-verification']; - } - proxy.plugin = 'v2ray-plugin'; - // Surge and Loon lack support for v2ray-plugin obfs - proxy.supported.Surge = false; - proxy.supported.Loon = false; - break; - } - } - return proxy; + const parser = getQXParser(); + return parser.parse(line); }; return { name, test, parse }; } @@ -363,33 +345,7 @@ function QX_SSR() { line.indexOf('ssr-protocol') !== -1 ); }; - - const parse = (line) => { - const supported = { - Surge: false, - }; - const params = getQXParams(line); - const proxy = { - name: params.tag, - type: 'ssr', - server: params.server, - port: params.port, - cipher: params.method, - password: params.password, - protocol: params['ssr-protocol'], - obfs: 'plain', // default obfs - 'protocol-param': params['ssr-protocol-param'], - udp: JSON.parse(params['udp-relay'] || 'false'), - tfo: JSON.parse(params['fast-open'] || 'false'), - supported, - }; - // handle obfs options - if (params.obfs) { - proxy.obfs = params.obfs; - proxy['obfs-param'] = params['obfs-host']; - } - return proxy; - }; + const parse = (line) => getQXParser().parse(line); return { name, test, parse }; } @@ -398,39 +354,7 @@ function QX_VMess() { const test = (line) => { return /^vmess\s*=/.test(line.split(',')[0].trim()); }; - const parse = (line) => { - const params = getQXParams(line); - const proxy = { - type: 'vmess', - name: params.tag, - server: params.server, - port: params.port, - cipher: params.method || 'none', - uuid: params.password, - alterId: 0, - tls: params.obfs === 'over-tls' || params.obfs === 'wss', - udp: JSON.parse(params['udp-relay'] || 'false'), - tfo: JSON.parse(params['fast-open'] || 'false'), - }; - if (proxy.tls) { - proxy.sni = params['obfs-host'] || params.server; - proxy['skip-cert-verify'] = !JSON.parse( - params['tls-verification'] || 'true', - ); - } - // handle ws headers - if (params.obfs === 'ws' || params.obfs === 'wss') { - proxy.network = 'ws'; - proxy['ws-opts'] = { - path: params['obfs-uri'], - headers: { - Host: params['obfs-host'] || params.server, // if no host provided, use the same as server - }, - }; - } - return proxy; - }; - + const parse = (line) => getQXParser().parse(line); return { name, test, parse }; } @@ -439,23 +363,7 @@ function QX_Trojan() { const test = (line) => { return /^trojan\s*=/.test(line.split(',')[0].trim()); }; - const parse = (line) => { - const params = getQXParams(line); - const proxy = { - type: 'trojan', - name: params.tag, - server: params.server, - port: params.port, - password: params.password, - sni: params['tls-host'] || params.server, - udp: JSON.parse(params['udp-relay'] || 'false'), - tfo: JSON.parse(params['fast-open'] || 'false'), - }; - proxy['skip-cert-verify'] = !JSON.parse( - params['tls-verification'] || 'true', - ); - return proxy; - }; + const parse = (line) => getQXParser().parse(line); return { name, test, parse }; } @@ -464,53 +372,10 @@ function QX_Http() { const test = (line) => { return /^http\s*=/.test(line.split(',')[0].trim()); }; - const parse = (line) => { - const params = getQXParams(line); - const proxy = { - type: 'http', - name: params.tag, - server: params.server, - port: params.port, - tls: JSON.parse(params['over-tls'] || 'false'), - udp: JSON.parse(params['udp-relay'] || 'false'), - tfo: JSON.parse(params['fast-open'] || 'false'), - }; - if (params.username && params.username !== 'none') - proxy.username = params.username; - if (params.password && params.password !== 'none') - proxy.password = params.password; - if (proxy.tls) { - proxy.sni = params['tls-host'] || proxy.server; - proxy['skip-cert-verify'] = !JSON.parse( - params['tls-verification'] || 'true', - ); - } - return proxy; - }; - + const parse = (line) => getQXParser().parse(line); return { name, test, parse }; } -function getQXParams(line) { - const groups = line.split(','); - const params = {}; - const protocols = ['shadowsocks', 'vmess', 'http', 'trojan']; - groups.forEach((g) => { - let [key, value] = g.split('='); - key = key.trim(); - value = value.trim(); - if (protocols.indexOf(key) !== -1) { - params.type = key; - const conf = value.split(':'); - params.server = conf[0]; - params.port = conf[1]; - } else { - params[key.trim()] = value.trim(); - } - }); - return params; -} - function Loon_SS() { const name = 'Loon SS Parser'; const test = (line) => { @@ -519,26 +384,7 @@ function Loon_SS() { 'shadowsocks' ); }; - const parse = (line) => { - const params = line.split('=')[1].split(','); - const proxy = { - name: line.split('=')[0].trim(), - type: 'ss', - server: params[1], - port: params[2], - cipher: params[3], - password: params[4].replace(/"/g, ''), - }; - // handle obfs - if (params.length > 5) { - proxy.plugin = 'obfs'; - proxy['plugin-opts'] = { - mode: params[5], - host: params[6], - }; - } - return proxy; - }; + const parse = (line) => getLoonParser().parse(line); return { name, test, parse }; } @@ -550,25 +396,7 @@ function Loon_SSR() { 'shadowsocksr' ); }; - const parse = (line) => { - const params = line.split('=')[1].split(','); - const supported = { - Surge: false, - }; - return { - name: line.split('=')[0].trim(), - type: 'ssr', - server: params[1], - port: params[2], - cipher: params[3], - password: params[4].replace(/"/g, ''), - protocol: params[5], - 'protocol-param': params[6].match(/{(.*)}/)[1], - supported, - obfs: params[7], - 'obfs-param': params[8].match(/{(.*)}/)[1], - }; - }; + const parse = (line) => getLoonParser().parse(line); return { name, test, parse }; } @@ -581,49 +409,7 @@ function Loon_VMess() { line.indexOf('username') === -1 ); }; - const parse = (line) => { - let params = line.split('=')[1].split(','); - const proxy = { - name: line.split('=')[0].trim(), - type: 'vmess', - server: params[1], - port: params[2], - cipher: params[3] || 'none', - uuid: params[4].replace(/"/g, ''), - alterId: 0, - }; - // get transport options - params = params.splice(5); - for (const item of params) { - const [key, val] = item.split(':'); - params[key] = val; - } - proxy.tls = JSON.parse(params['over-tls'] || 'false'); - if (proxy.tls) { - proxy.sni = params['tls-name'] || proxy.server; - proxy['skip-cert-verify'] = JSON.parse( - params['skip-cert-verify'] || 'false', - ); - } - switch (params.transport) { - case 'tcp': - break; - case 'ws': - proxy.network = params.transport; - proxy['ws-opts'] = { - path: params.path, - headers: { - Host: params.host, - }, - }; - } - if (proxy.tls) { - proxy['skip-cert-verify'] = JSON.parse( - params['skip-cert-verify'] || 'false', - ); - } - return proxy; - }; + const parse = (line) => getLoonParser().parse(line); return { name, test, parse }; } @@ -636,28 +422,7 @@ function Loon_Trojan() { ); }; - const parse = (line) => { - const params = line.split('=')[1].split(','); - const proxy = { - name: line.split('=')[0].trim(), - type: 'trojan', - server: params[1], - port: params[2], - password: params[3].replace(/"/g, ''), - sni: params[1], // default sni is the server itself - 'skip-cert-verify': JSON.parse( - params['skip-cert-verify'] || 'false', - ), - }; - // trojan sni - if (params.length > 4) { - const [key, val] = params[4].split(':'); - if (key === 'tls-name') proxy.sni = val; - else throw new Error(`Unknown option ${key} for line: \n${line}`); - } - return proxy; - }; - + const parse = (line) => getLoonParser().parse(line); return { name, test, parse }; } @@ -672,27 +437,7 @@ function Loon_Http() { ); }; - const parse = (line) => { - const params = line.split('=')[1].split(','); - const proxy = { - name: line.split('=')[0].trim(), - type: 'http', - server: params[1], - port: params[2], - tls: params[2] === '443', // port 443 is considered as https type - }; - if (params[3]) proxy.username = params[3]; - if (params[4]) proxy.password = params[4]; - - if (proxy.tls) { - proxy.sni = params['tls-name'] || proxy.server; - proxy['skip-cert-verify'] = JSON.parse( - params['skip-cert-verify'] || 'false', - ); - } - - return proxy; - }; + const parse = (line) => getLoonParser().parse(line); return { name, test, parse }; } @@ -701,28 +446,7 @@ function Surge_SS() { const test = (line) => { return /^.*=\s*ss/.test(line.split(',')[0]); }; - const parse = (line) => { - const params = getSurgeParams(line); - const proxy = { - name: params.name, - type: 'ss', - server: params.server, - port: params.port, - cipher: params['encrypt-method'], - password: params.password, - tfo: JSON.parse(params.tfo || 'false'), - udp: JSON.parse(params['udp-relay'] || 'false'), - }; - // handle obfs - if (params.obfs) { - proxy.plugin = 'obfs'; - proxy['plugin-opts'] = { - mode: params.obfs, - host: params['obfs-host'], - }; - } - return proxy; - }; + const parse = (line) => getSurgeParser().parse(line); return { name, test, parse }; } @@ -734,44 +458,7 @@ function Surge_VMess() { line.indexOf('username') !== -1 ); }; - const parse = (line) => { - const params = getSurgeParams(line); - const proxy = { - name: params.name, - type: 'vmess', - server: params.server, - port: params.port, - uuid: params.username, - alterId: 0, // surge does not have this field - cipher: 'none', // surge does not have this field - tls: JSON.parse(params.tls || 'false'), - tfo: JSON.parse(params.tfo || 'false'), - }; - if (proxy.tls) { - if (typeof params['skip-cert-verify'] !== 'undefined') { - proxy['skip-cert-verify'] = - params['skip-cert-verify'] === true || - params['skip-cert-verify'] === '1'; - } - proxy.sni = params['sni'] || params.server; - } - // use websocket - if (JSON.parse(params.ws || 'false')) { - proxy.network = 'ws'; - proxy['ws-opts'] = { - path: params['ws-path'], - }; - - const res = params['ws-headers'].match( - /(,|^|\s)*HOST:\s*(.*?)(,|$)/, - ); - const host = res ? res[2] : proxy.server; - proxy['ws-opts'].headers = { - Host: host || params.server, - }; - } - return proxy; - }; + const parse = (line) => getSurgeParser().parse(line); return { name, test, parse }; } @@ -783,25 +470,7 @@ function Surge_Trojan() { line.indexOf('sni') !== -1 ); }; - const parse = (line) => { - const params = getSurgeParams(line); - const proxy = { - name: params.name, - type: 'trojan', - server: params.server, - port: params.port, - password: params.password, - sni: params.sni || params.server, - tfo: JSON.parse(params.tfo || 'false'), - }; - if (typeof params['skip-cert-verify'] !== 'undefined') { - proxy['skip-cert-verify'] = - params['skip-cert-verify'] === true || - params['skip-cert-verify'] === '1'; - } - return proxy; - }; - + const parse = (line) => getSurgeParser().parse(line); return { name, test, parse }; } @@ -812,50 +481,10 @@ function Surge_Http() { /^.*=\s*https?/.test(line.split(',')[0]) && !Loon_Http().test(line) ); }; - const parse = (line) => { - const params = getSurgeParams(line); - const tls = /^.*?=\s?https/.test(line); - const proxy = { - name: params.name, - type: 'http', - server: params.server, - port: params.port, - tls: JSON.parse(tls || 'false'), - tfo: JSON.parse(params.tfo || 'false'), - }; - if (proxy.tls) { - if (typeof params['skip-cert-verify'] !== 'undefined') { - proxy['skip-cert-verify'] = - params['skip-cert-verify'] === true || - params['skip-cert-verify'] === '1'; - } - proxy.sni = params.sni || params.server; - } - if (params.username && params.username !== 'none') - proxy.username = params.username; - if (params.password && params.password !== 'none') - proxy.password = params.password; - return proxy; - }; + const parse = (line) => getSurgeParser().parse(line); return { name, test, parse }; } -function getSurgeParams(line) { - const params = {}; - params.name = line.split('=')[0].trim(); - const segments = line.split(','); - params.server = segments[1].trim(); - params.port = segments[2].trim(); - for (let i = 3; i < segments.length; i++) { - const item = segments[i]; - if (item.indexOf('=') !== -1) { - const [key, value] = item.split('='); - params[key.trim()] = value.trim(); - } - } - return params; -} - export default [ URI_SS(), URI_SSR(), diff --git a/backend/src/test.js b/backend/src/test.js new file mode 100644 index 0000000..b7f4c3f --- /dev/null +++ b/backend/src/test.js @@ -0,0 +1,8 @@ +import loon from './core/proxy-utils/grammars/loon'; +import * as peggy from 'peggy'; + +const parser = peggy.generate(loon); + +const raw = String.raw`vmess4 = vmess,example.com,10086,aes-128-gcm,"52396e06-041a-4cc2-be5c-8525eb457809",transport=ws,alterId=0,path=/,host=v3-dy-y.ixigua.com,over-tls=true,tls-name=example.com,skip-cert-verify=true`; + +console.log(JSON.stringify(parser.parse(raw), null, 2)); diff --git a/backend/sub-store.min.js b/backend/sub-store.min.js index 31aa27e..bb5030f 100644 --- a/backend/sub-store.min.js +++ b/backend/sub-store.min.js @@ -6,11 +6,11 @@ * ███████║╚██████╔╝██████╔╝ ███████║ ██║ ╚██████╔╝██║ ██║███████╗ * ╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ * Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket! - * @updated: 2022/6/14 23:39:36 - * @version: 1.6 + * @updated: 2022/6/15 23:37:36 + * @version: 2.0 * @author: Peng-YM * @github: https://github.com/Peng-YM/Sub-Store * @documentation: https://www.notion.so/Sub-Store-6259586994d34c11a4ced5c406264b46 */ -!function(){var createModuleFactory=function(t){var e;return function(r){return e||t(e={exports:{},parent:r},e.exports),e.exports}},_$buffer_2=createModuleFactory((function(t,e){(function(t){(function(){"use strict";e.Buffer=r,e.SlowBuffer=function(t){return+t!=t&&(t=0),r.alloc(+t)},e.INSPECT_MAX_BYTES=50;function t(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=r.prototype,e}function r(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return i(t)}return n(t,e,r)}function n(e,n,o){if("string"==typeof e)return function(e,n){if("string"==typeof n&&""!==n||(n="utf8"),!r.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var o=0|c(e,n),i=t(o),a=i.write(e,n);return a!==o&&(i=i.slice(0,a)),i}(e,n);if(ArrayBuffer.isView(e))return a(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(P(e,ArrayBuffer)||e&&P(e.buffer,ArrayBuffer))return function(t,e,n){if(e<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function c(t,e){if(r.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||P(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var n=t.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return C(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return I(t).length;default:if(i)return o?-1:C(t).length;e=(""+e).toLowerCase(),i=!0}}function s(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function f(t,e,n,o,i){if(0===t.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),$(n=+n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=r.from(e,o)),r.isBuffer(e))return 0===e.length?-1:l(t,e,n,o,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):l(t,[e],n,o,i);throw new TypeError("val must be string, number or Buffer")}function l(t,e,r,n,o){var i,a=1,u=t.length,c=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,u/=2,c/=2,r/=2}function s(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(o){var f=-1;for(i=r;iu&&(r=u-c),i=r;i>=0;i--){for(var l=!0,p=0;po&&(n=o):n=o;var i=e.length;n>i/2&&(n=i/2);for(var a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(e,t.length-r),t,r,n)}function g(t,e,r){return 0===e&&r===t.length?_$base64Js_1.fromByteArray(t):_$base64Js_1.fromByteArray(t.slice(e,r))}function m(t,e,r){r=Math.min(t.length,r);for(var n=[],o=e;o239?4:s>223?3:s>191?2:1;if(o+l<=r)switch(l){case 1:s<128&&(f=s);break;case 2:128==(192&(i=t[o+1]))&&(c=(31&s)<<6|63&i)>127&&(f=c);break;case 3:i=t[o+1],a=t[o+2],128==(192&i)&&128==(192&a)&&(c=(15&s)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(f=c);break;case 4:i=t[o+1],a=t[o+2],u=t[o+3],128==(192&i)&&128==(192&a)&&128==(192&u)&&(c=(15&s)<<18|(63&i)<<12|(63&a)<<6|63&u)>65535&&c<1114112&&(f=c)}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),o+=l}return function(t){var e=t.length;if(e<=w)return String.fromCharCode.apply(String,t);for(var r="",n=0;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return S(this,e,r);case"utf8":case"utf-8":return m(this,e,r);case"ascii":return b(this,e,r);case"latin1":case"binary":return E(this,e,r);case"base64":return g(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},r.prototype.toLocaleString=r.prototype.toString,r.prototype.equals=function(t){if(!r.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===r.compare(this,t)},r.prototype.inspect=function(){var t="",r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),""},r.prototype.compare=function(t,e,n,o,i){if(P(t,Uint8Array)&&(t=r.from(t,t.offset,t.byteLength)),!r.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===o&&(o=0),void 0===i&&(i=this.length),e<0||n>t.length||o<0||i>this.length)throw new RangeError("out of range index");if(o>=i&&e>=n)return 0;if(o>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(o>>>=0),u=(n>>>=0)-(e>>>=0),c=Math.min(a,u),s=this.slice(o,i),f=t.slice(e,n),l=0;l>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-e;if((void 0===r||r>o)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return p(this,t,e,r);case"utf8":case"utf-8":return _(this,t,e,r);case"ascii":return h(this,t,e,r);case"latin1":case"binary":return d(this,t,e,r);case"base64":return v(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return y(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var w=4096;function b(t,e,r){var n="";r=Math.min(t.length,r);for(var o=e;oo)&&(r=o);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function x(t,e,n,o,i,a){if(!r.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n,o,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function T(t,e,r,n,o){return e=+e,r>>>=0,o||L(t,0,r,4),_$ieee754_3.write(t,e,r,n,23,4),r+4}function k(t,e,r,n,o){return e=+e,r>>>=0,o||L(t,0,r,8),_$ieee754_3.write(t,e,r,n,52,8),r+8}r.prototype.slice=function(t,e){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e>>=0,e>>>=0,r||O(t,e,this.length);for(var n=this[t],o=1,i=0;++i>>=0,e>>>=0,r||O(t,e,this.length);for(var n=this[t+--e],o=1;e>0&&(o*=256);)n+=this[t+--e]*o;return n},r.prototype.readUInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),this[t]},r.prototype.readUInt16LE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]|this[t+1]<<8},r.prototype.readUInt16BE=function(t,e){return t>>>=0,e||O(t,2,this.length),this[t]<<8|this[t+1]},r.prototype.readUInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},r.prototype.readUInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},r.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||O(t,e,this.length);for(var n=this[t],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*e)),n},r.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||O(t,e,this.length);for(var n=e,o=1,i=this[t+--n];n>0&&(o*=256);)i+=this[t+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},r.prototype.readInt8=function(t,e){return t>>>=0,e||O(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},r.prototype.readInt16LE=function(t,e){t>>>=0,e||O(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt16BE=function(t,e){t>>>=0,e||O(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt32LE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},r.prototype.readInt32BE=function(t,e){return t>>>=0,e||O(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},r.prototype.readFloatLE=function(t,e){return t>>>=0,e||O(t,4,this.length),_$ieee754_3.read(this,t,!0,23,4)},r.prototype.readFloatBE=function(t,e){return t>>>=0,e||O(t,4,this.length),_$ieee754_3.read(this,t,!1,23,4)},r.prototype.readDoubleLE=function(t,e){return t>>>=0,e||O(t,8,this.length),_$ieee754_3.read(this,t,!0,52,8)},r.prototype.readDoubleBE=function(t,e){return t>>>=0,e||O(t,8,this.length),_$ieee754_3.read(this,t,!1,52,8)},r.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||x(this,t,e,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[e]=255&t;++i>>=0,r>>>=0,n||x(this,t,e,r,Math.pow(2,8*r)-1,0);var o=r-1,i=1;for(this[e+o]=255&t;--o>=0&&(i*=256);)this[e+o]=t/i&255;return e+r},r.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,1,255,0),this[e]=255&t,e+1},r.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},r.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);x(this,t,e,r,o-1,-o)}var i=0,a=1,u=0;for(this[e]=255&t;++i>0)-u&255;return e+r},r.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);x(this,t,e,r,o-1,-o)}var i=r-1,a=1,u=0;for(this[e+i]=255&t;--i>=0&&(a*=256);)t<0&&0===u&&0!==this[e+i+1]&&(u=1),this[e+i]=(t/a>>0)-u&255;return e+r},r.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},r.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},r.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeFloatLE=function(t,e,r){return T(this,t,e,!0,r)},r.prototype.writeFloatBE=function(t,e,r){return T(this,t,e,!1,r)},r.prototype.writeDoubleLE=function(t,e,r){return k(this,t,e,!0,r)},r.prototype.writeDoubleBE=function(t,e,r){return k(this,t,e,!1,r)},r.prototype.copy=function(t,e,n,o){if(!r.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),o||0===o||(o=this.length),e>=t.length&&(e=t.length),e||(e=0),o>0&&o=this.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),t.length-e=0;--a)t[a+e]=this[a+n];else Uint8Array.prototype.set.call(t,this.subarray(n,o),e);return i},r.prototype.fill=function(t,e,n,o){if("string"==typeof t){if("string"==typeof e?(o=e,e=0,n=this.length):"string"==typeof n&&(o=n,n=this.length),void 0!==o&&"string"!=typeof o)throw new TypeError("encoding must be a string");if("string"==typeof o&&!r.isEncoding(o))throw new TypeError("Unknown encoding: "+o);if(1===t.length){var i=t.charCodeAt(0);("utf8"===o&&i<128||"latin1"===o)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(a=e;a55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function I(t){return _$base64Js_1.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(R,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function j(t,e,r,n){for(var o=0;o=e.length||o>=t.length);++o)e[o+r]=t[o];return o}function P(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function $(t){return t!=t}}).call(this)}).call(this,_$buffer_2({}).Buffer)})),_$constants_50={};Object.defineProperty(_$constants_50,"__esModule",{value:!0}),_$constants_50.SUBS_KEY=_$constants_50.SETTINGS_KEY=_$constants_50.RULES_KEY=_$constants_50.GIST_BACKUP_KEY=_$constants_50.GIST_BACKUP_FILE_NAME=_$constants_50.COLLECTIONS_KEY=_$constants_50.ARTIFACT_REPOSITORY_KEY=_$constants_50.ARTIFACTS_KEY=void 0,_$constants_50.SETTINGS_KEY="settings",_$constants_50.SUBS_KEY="subs",_$constants_50.COLLECTIONS_KEY="collections",_$constants_50.ARTIFACTS_KEY="artifacts",_$constants_50.RULES_KEY="rules",_$constants_50.GIST_BACKUP_KEY="Auto Generated Sub-Store Backup",_$constants_50.GIST_BACKUP_FILE_NAME="Sub-Store",_$constants_50.ARTIFACT_REPOSITORY_KEY="Sub-Store Artifacts Repository";var _$openApi_60={};function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ownKeys(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread(t){for(var e=1;e=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function asyncGeneratorStep(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}function _asyncToGenerator(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){asyncGeneratorStep(i,n,o,a,u,"next",t)}function u(t){asyncGeneratorStep(i,n,o,a,u,"throw",t)}a(void 0)}))}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"untitled",debug=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_classCallCheck(this,OpenAPI),this.name=name,this.debug=debug,this.http=HTTP(),this.env=ENV(),this.node=function(){if(isNode){var fs=eval("require('fs')");return{fs:fs}}return null}(),this.initCache();var delay=function(t,e){return new Promise((function(r){setTimeout(r.bind(null,e),t)}))},_ref;Promise.prototype.delay=(_ref=_asyncToGenerator(_regeneratorRuntime().mark((function t(e){var r;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this;case 2:return r=t.sent,t.next=5,delay(e,r);case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t,this)}))),function(t){return _ref.apply(this,arguments)})}return _createClass(OpenAPI,[{key:"initCache",value:function(){if(isQX&&(this.cache=JSON.parse($prefs.valueForKey(this.name)||"{}")),(isLoon||isSurge)&&(this.cache=JSON.parse($persistentStore.read(this.name)||"{}")),isNode){var t="root.json";this.node.fs.existsSync(t)||this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.root={},t="".concat(this.name,".json"),this.node.fs.existsSync(t)?this.cache=JSON.parse(this.node.fs.readFileSync("".concat(this.name,".json"))):(this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.cache={})}}},{key:"persistCache",value:function(){var t=JSON.stringify(this.cache,null,2);isQX&&$prefs.setValueForKey(t,this.name),(isLoon||isSurge)&&$persistentStore.write(t,this.name),isNode&&(this.node.fs.writeFileSync("".concat(this.name,".json"),t,{flag:"w"},(function(t){return console.log(t)})),this.node.fs.writeFileSync("root.json",JSON.stringify(this.root,null,2),{flag:"w"},(function(t){return console.log(t)})))}},{key:"write",value:function(t,e){if(this.log("SET ".concat(e)),-1!==e.indexOf("#")){if(e=e.substr(1),isSurge||isLoon)return $persistentStore.write(t,e);if(isQX)return $prefs.setValueForKey(t,e);isNode&&(this.root[e]=t)}else this.cache[e]=t;this.persistCache()}},{key:"read",value:function(t){return this.log("READ ".concat(t)),-1===t.indexOf("#")?this.cache[t]:(t=t.substr(1),isSurge||isLoon?$persistentStore.read(t):isQX?$prefs.valueForKey(t):isNode?this.root[t]:void 0)}},{key:"delete",value:function(t){if(this.log("DELETE ".concat(t)),-1!==t.indexOf("#")){if(t=t.substr(1),isSurge||isLoon)return $persistentStore.write(null,t);if(isQX)return $prefs.removeValueForKey(t);isNode&&delete this.root[t]}else delete this.cache[t];this.persistCache()}},{key:"notify",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n["open-url"],i=n["media-url"];if(isQX&&$notify(t,e,r,n),isSurge&&$notification.post(t,e,r+"".concat(i?"\n\u591a\u5a92\u4f53:"+i:""),{url:o}),isLoon){var a={};o&&(a.openUrl=o),i&&(a.mediaUrl=i),"{}"===JSON.stringify(a)?$notification.post(t,e,r):$notification.post(t,e,r,a)}if(isNode){var u=r+(o?"\n\u70b9\u51fb\u8df3\u8f6c: ".concat(o):"")+(i?"\n\u591a\u5a92\u4f53: ".concat(i):"");console.log("".concat(t,"\n").concat(e,"\n").concat(u,"\n\n"))}}},{key:"log",value:function(t){this.debug&&console.log("[".concat(this.name,"] LOG: ").concat(t))}},{key:"info",value:function(t){console.log("[".concat(this.name,"] INFO: ").concat(t))}},{key:"error",value:function(t){console.log("[".concat(this.name,"] ERROR: ").concat(t))}},{key:"wait",value:function(t){return new Promise((function(e){return setTimeout(e,t)}))}},{key:"done",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};isQX||isLoon||isSurge?$done(t):isNode&&"undefined"!=typeof $context&&($context.headers=t.headers,$context.statusCode=t.statusCode,$context.body=t.body)}}]),OpenAPI}();function ENV(){return{isQX:isQX,isLoon:isLoon,isSurge:isSurge,isNode:isNode}}function HTTP(){var defaultOptions=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{baseURL:""},_ENV=ENV(),isQX=_ENV.isQX,isLoon=_ENV.isLoon,isSurge=_ENV.isSurge,isNode=_ENV.isNode,methods=["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],URL_REGEX=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;function send(method,options){options="string"==typeof options?{url:options}:options;var baseURL=defaultOptions.baseURL;baseURL&&!URL_REGEX.test(options.url||"")&&(options.url=baseURL?baseURL+options.url:options.url),options=_objectSpread(_objectSpread({},defaultOptions),options);var timeout=options.timeout,events=_objectSpread(_objectSpread({},{onRequest:function(){},onResponse:function(t){return t},onTimeout:function(){}}),options.events),worker,timeoutid;events.onRequest(method,options),isQX?worker=$task.fetch({method:method,url:options.url,headers:options.headers,body:options.body}):(isLoon||isSurge||isNode)&&(worker=new Promise((function(resolve,reject){var request=isNode?eval("require('request')"):$httpClient;request[method.toLowerCase()](options,(function(t,e,r){t?reject(t):resolve({statusCode:e.status||e.statusCode,headers:e.headers,body:r})}))})));var timer=timeout?new Promise((function(t,e){timeoutid=setTimeout((function(){return events.onTimeout(),e("".concat(method," URL: ").concat(options.url," exceeds the timeout ").concat(timeout," ms"))}),timeout)})):null;return(timer?Promise.race([timer,worker]).then((function(t){return clearTimeout(timeoutid),t})):worker).then((function(t){return events.onResponse(t)}))}var http={};return methods.forEach((function(t){return http[t.toLowerCase()]=function(e){return send(t,e)}})),http}_$openApi_60.OpenAPI=OpenAPI;var _$express_59={};function ___classCallCheck_59(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ___defineProperties_59(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:0,n=e.method,o=e.url,i=e.headers,a=e.body;i=formatHeaders(i),/json/i.test(i["Content-Type"])&&(a=JSON.parse(a)),n=n.toUpperCase();var u,c=extractURL(o),s=c.path,f=c.query,l=null,p=0;for(u=r;up&&(l=handlers[u],p=_.split("/").length)}if(l){var h=function(){t(n,o,u)},d={method:n,url:o,path:s,query:f,params:extractPathParams(l.pattern,s),headers:i,body:a},v=Response(),y=l.callback,g=function(t){v.status(500).json({status:"failed",message:"Internal Server Error: ".concat(t)})};if("AsyncFunction"===y.constructor.name)y(d,v,h).catch(g);else try{y(d,v,h)}catch(m){g(m)}}else Response().status(404).json({status:"failed",message:"ERROR: 404 not found"})},app={};return METHODS_NAMES.forEach((function(t){app[t.toLowerCase()]=function(e,r){handlers.push({method:t,pattern:e,callback:r})}})),app.route=function(t){var e={};return METHODS_NAMES.forEach((function(r){e[r.toLowerCase()]=function(n){return handlers.push({method:r,pattern:t,callback:n}),e}})),e},app.start=function(){dispatch($request)},app;function rawBodySaver(t,e,r,n){r&&r.length&&(t.rawBody=r.toString(n||"utf8"))}function Response(){var t=200,e=(0,_$openApi_60.ENV)(),r=e.isQX,n=e.isLoon,o=e.isSurge,i=DEFAULT_HEADERS,a={200:"HTTP/1.1 200 OK",201:"HTTP/1.1 201 Created",302:"HTTP/1.1 302 Found",307:"HTTP/1.1 307 Temporary Redirect",308:"HTTP/1.1 308 Permanent Redirect",404:"HTTP/1.1 404 Not Found",500:"HTTP/1.1 500 Internal Server Error"};return new(function(){function e(){___classCallCheck_59(this,e)}return ___createClass_59(e,[{key:"status",value:function(e){return t=e,this}},{key:"send",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",u={status:r?a[t]:t,body:e,headers:i};r?$done(u):(n||o)&&$done({response:u})}},{key:"end",value:function(){this.send()}},{key:"html",value:function(t){this.set("Content-Type","text/html;charset=UTF-8"),this.send(t)}},{key:"json",value:function(t){this.set("Content-Type","application/json;charset=UTF-8"),this.send(JSON.stringify(t))}},{key:"set",value:function(t,e){return i[t]=e,this}}]),e}())}}function formatHeaders(t){for(var e={},r=0,n=Object.keys(t);r=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function _createForOfIteratorHelper(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __asyncGeneratorStep_54(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}Object.defineProperty(_$download_54,"__esModule",{value:!0}),_$download_54.default=function(t,e){return _download.apply(this,arguments)};var cache=new Map;function _download(){var t;return t=___regeneratorRuntime_54().mark((function t(e,r){var n,o,i;return ___regeneratorRuntime_54().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=(r=r||"Quantumult%20X/1.0.29 (iPhone14,5; iOS 15.4.1)")+e,!cache.has(n)){t.next=4;break}return t.abrupt("return",cache.get(n));case 4:return o=(0,_$openApi_60.HTTP)({headers:{"User-Agent":r}}),i=new Promise((function(t,r){o.get(e).then((function(e){var n=e.body;0===n.replace(/\s/g,"").length?r(new Error("\u8ba2\u9605\u5185\u5bb9\u4e3a\u7a7a\uff01")):t(n)}))})),cache.set(n,i),t.abrupt("return",i);case 8:case"end":return t.stop()}}),t)})),(_download=function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_54(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_54(i,n,o,a,u,"throw",t)}a(void 0)}))}).apply(this,arguments)}var _$utils_57={};Object.defineProperty(_$utils_57,"__esModule",{value:!0}),_$utils_57.isIPv4=function(t){return IPV4_REGEX.test(t)},_$utils_57.isIPv6=function(t){return IPV6_REGEX.test(t)};var IPV4_REGEX=/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$/,IPV6_REGEX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,_$logical_58={};function ___arrayLikeToArray_58(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r"']/g,P=RegExp(I.source),$=RegExp(j.source),N=/<%-([\s\S]+?)%>/g,F=/<%([\s\S]+?)%>/g,U=/<%=([\s\S]+?)%>/g,D=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,M=/^\w*$/,B=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/[\\^$.*+?()[\]{}|]/g,H=RegExp(G.source),Y=/^\s+/,K=/\s/,W=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,q=/\{\n\/\* \[wrapped with (.+)\] \*/,J=/,? & /,z=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,X=/[()=,{}\[\]\/\s]/,V=/\\(\\)?/g,Q=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Z=/\w*$/,tt=/^[-+]0x[0-9a-f]+$/i,et=/^0b[01]+$/i,rt=/^\[object .+?Constructor\]$/,nt=/^0o[0-7]+$/i,ot=/^(?:0|[1-9]\d*)$/,it=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,at=/($^)/,ut=/['\n\r\u2028\u2029\\]/g,ct="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",st="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ft="["+st+"]",lt="["+ct+"]",pt="\\d+",_t="[a-z\\xdf-\\xf6\\xf8-\\xff]",ht="[^\\ud800-\\udfff"+st+pt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",dt="\\ud83c[\\udffb-\\udfff]",vt="[^\\ud800-\\udfff]",yt="(?:\\ud83c[\\udde6-\\uddff]){2}",gt="[\\ud800-\\udbff][\\udc00-\\udfff]",mt="[A-Z\\xc0-\\xd6\\xd8-\\xde]",wt="(?:"+_t+"|"+ht+")",bt="(?:"+mt+"|"+ht+")",Et="(?:"+lt+"|"+dt+")?",St="[\\ufe0e\\ufe0f]?"+Et+"(?:\\u200d(?:"+[vt,yt,gt].join("|")+")[\\ufe0e\\ufe0f]?"+Et+")*",At="(?:"+["[\\u2700-\\u27bf]",yt,gt].join("|")+")"+St,Ot="(?:"+[vt+lt+"?",lt,yt,gt,"[\\ud800-\\udfff]"].join("|")+")",xt=RegExp("['\u2019]","g"),Lt=RegExp(lt,"g"),Tt=RegExp(dt+"(?="+dt+")|"+Ot+St,"g"),kt=RegExp([mt+"?"+_t+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[ft,mt,"$"].join("|")+")",bt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[ft,mt+wt,"$"].join("|")+")",mt+"?"+wt+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",mt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",pt,At].join("|"),"g"),Rt=RegExp("[\\u200d\\ud800-\\udfff"+ct+"\\ufe0e\\ufe0f]"),Ct=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,It=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],jt=-1,Pt={};Pt[b]=Pt[E]=Pt[S]=Pt[A]=Pt[O]=Pt[x]=Pt["[object Uint8ClampedArray]"]=Pt[L]=Pt[T]=!0,Pt[o]=Pt[i]=Pt[m]=Pt[a]=Pt[w]=Pt[u]=Pt[c]=Pt[s]=Pt[l]=Pt[p]=Pt[_]=Pt[h]=Pt[d]=Pt[v]=Pt[g]=!1;var $t={};$t[o]=$t[i]=$t[m]=$t[w]=$t[a]=$t[u]=$t[b]=$t[E]=$t[S]=$t[A]=$t[O]=$t[l]=$t[p]=$t[_]=$t[h]=$t[d]=$t[v]=$t[y]=$t[x]=$t["[object Uint8ClampedArray]"]=$t[L]=$t[T]=!0,$t[c]=$t[s]=$t[g]=!1;var Nt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ft=parseFloat,Ut=parseInt,Dt="object"==typeof t&&t&&t.Object===Object&&t,Mt="object"==typeof self&&self&&self.Object===Object&&self,Bt=Dt||Mt||Function("return this")(),Gt="object"==typeof _$lodash_35.exports&&_$lodash_35.exports&&!_$lodash_35.exports.nodeType&&_$lodash_35.exports,Ht=Gt&&_$lodash_35&&!_$lodash_35.nodeType&&_$lodash_35,Yt=Ht&&Ht.exports===Gt,Kt=Yt&&Dt.process,Wt=function(){try{return Ht&&Ht.require&&Ht.require("util").types||Kt&&Kt.binding&&Kt.binding("util")}catch(t){}}(),qt=Wt&&Wt.isArrayBuffer,Jt=Wt&&Wt.isDate,zt=Wt&&Wt.isMap,Xt=Wt&&Wt.isRegExp,Vt=Wt&&Wt.isSet,Qt=Wt&&Wt.isTypedArray;function Zt(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}function te(t,e,r,n){for(var o=-1,i=null==t?0:t.length;++o-1}function ae(t,e,r){for(var n=-1,o=null==t?0:t.length;++n-1;);return r}function ke(t,e){for(var r=t.length;r--&&de(e,t[r],0)>-1;);return r}var Re=we({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Ce=we({"&":"&","<":"<",">":">",'"':""","'":"'"});function Ie(t){return"\\"+Nt[t]}function je(t){return Rt.test(t)}function Pe(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}function $e(t,e){return function(r){return t(e(r))}}function Ne(t,e){for(var n=-1,o=t.length,i=0,a=[];++n",""":'"',"'":"'"}),He=function t(K){var ct,st=(K=null==K?Bt:He.defaults(Bt.Object(),K,He.pick(Bt,It))).Array,ft=K.Date,lt=K.Error,pt=K.Function,_t=K.Math,ht=K.Object,dt=K.RegExp,vt=K.String,yt=K.TypeError,gt=st.prototype,mt=pt.prototype,wt=ht.prototype,bt=K["__core-js_shared__"],Et=mt.toString,St=wt.hasOwnProperty,At=0,Ot=(ct=/[^.]+$/.exec(bt&&bt.keys&&bt.keys.IE_PROTO||""))?"Symbol(src)_1."+ct:"",Tt=wt.toString,Rt=Et.call(ht),Nt=Bt._,Dt=dt("^"+Et.call(St).replace(G,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Mt=Yt?K.Buffer:void 0,Gt=K.Symbol,Ht=K.Uint8Array,Kt=Mt?Mt.allocUnsafe:void 0,Wt=$e(ht.getPrototypeOf,ht),pe=ht.create,we=wt.propertyIsEnumerable,Ye=gt.splice,Ke=Gt?Gt.isConcatSpreadable:void 0,We=Gt?Gt.iterator:void 0,qe=Gt?Gt.toStringTag:void 0,Je=function(){try{var t=Zo(ht,"defineProperty");return t({},"",{}),t}catch(e){}}(),ze=K.clearTimeout!==Bt.clearTimeout&&K.clearTimeout,Xe=ft&&ft.now!==Bt.Date.now&&ft.now,Ve=K.setTimeout!==Bt.setTimeout&&K.setTimeout,Qe=_t.ceil,Ze=_t.floor,tr=ht.getOwnPropertySymbols,er=Mt?Mt.isBuffer:void 0,rr=K.isFinite,nr=gt.join,or=$e(ht.keys,ht),ir=_t.max,ar=_t.min,ur=ft.now,cr=K.parseInt,sr=_t.random,fr=gt.reverse,lr=Zo(K,"DataView"),pr=Zo(K,"Map"),_r=Zo(K,"Promise"),hr=Zo(K,"Set"),dr=Zo(K,"WeakMap"),vr=Zo(ht,"create"),yr=dr&&new dr,gr={},mr=Oi(lr),wr=Oi(pr),br=Oi(_r),Er=Oi(hr),Sr=Oi(dr),Ar=Gt?Gt.prototype:void 0,Or=Ar?Ar.valueOf:void 0,xr=Ar?Ar.toString:void 0;function Lr(t){if(Ga(t)&&!Ca(t)&&!(t instanceof Cr)){if(t instanceof Rr)return t;if(St.call(t,"__wrapped__"))return xi(t)}return new Rr(t)}var Tr=function(){function t(){}return function(e){if(!Ba(e))return{};if(pe)return pe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();function kr(){}function Rr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function Cr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Ir(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function zr(t,e,r,n,i,c){var g,k=1&e,R=2&e,C=4&e;if(r&&(g=i?r(t,n,i,c):r(t)),void 0!==g)return g;if(!Ba(t))return t;var I=Ca(t);if(I){if(g=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&St.call(t,"index")&&(r.index=t.index,r.input=t.input),r}(t),!k)return yo(t,g)}else{var j=ri(t),P=j==s||j==f;if($a(t))return fo(t,k);if(j==_||j==o||P&&!i){if(g=R||P?{}:oi(t),!k)return R?function(t,e){return go(t,ei(t),e)}(t,function(t,e){return t&&go(e,mu(e),t)}(g,t)):function(t,e){return go(t,ti(t),e)}(t,Kr(g,t))}else{if(!$t[j])return i?t:{};g=function(t,e,r){var n,o,i,c=t.constructor;switch(e){case m:return lo(t);case a:case u:return new c(+t);case w:return function(t,e){var r=e?lo(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}(t,r);case b:case E:case S:case A:case O:case x:case"[object Uint8ClampedArray]":case L:case T:return po(t,r);case l:return new c;case p:case v:return new c(t);case h:return(i=new(o=t).constructor(o.source,Z.exec(o))).lastIndex=o.lastIndex,i;case d:return new c;case y:return n=t,Or?ht(Or.call(n)):{}}}(t,j,k)}}c||(c=new Nr);var $=c.get(t);if($)return $;c.set(t,g),qa(t)?t.forEach((function(n){g.add(zr(n,e,r,n,t,c))})):Ha(t)&&t.forEach((function(n,o){g.set(o,zr(n,e,r,o,t,c))}));var N=I?void 0:(C?R?Wo:Ko:R?mu:gu)(t);return ee(N||t,(function(n,o){N&&(n=t[o=n]),Gr(g,o,zr(n,e,r,o,t,c))})),g}function Xr(t,e,r){var n=r.length;if(null==t)return!n;for(t=ht(t);n--;){var o=r[n],i=e[o],a=t[o];if(void 0===a&&!(o in t)||!i(a))return!1}return!0}function Vr(t,r,n){if("function"!=typeof t)throw new yt(e);return gi((function(){t.apply(void 0,n)}),r)}function Qr(t,e,r,n){var o=-1,i=ie,a=!0,u=t.length,c=[],s=e.length;if(!u)return c;r&&(e=ue(e,Oe(r))),n?(i=ae,a=!1):e.length>=200&&(i=Le,a=!1,e=new $r(e));t:for(;++o-1},jr.prototype.set=function(t,e){var r=this.__data__,n=Hr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this},Pr.prototype.clear=function(){this.size=0,this.__data__={hash:new Ir,map:new(pr||jr),string:new Ir}},Pr.prototype.delete=function(t){var e=Vo(this,t).delete(t);return this.size-=e?1:0,e},Pr.prototype.get=function(t){return Vo(this,t).get(t)},Pr.prototype.has=function(t){return Vo(this,t).has(t)},Pr.prototype.set=function(t,e){var r=Vo(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this},$r.prototype.add=$r.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},$r.prototype.has=function(t){return this.__data__.has(t)},Nr.prototype.clear=function(){this.__data__=new jr,this.size=0},Nr.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},Nr.prototype.get=function(t){return this.__data__.get(t)},Nr.prototype.has=function(t){return this.__data__.has(t)},Nr.prototype.set=function(t,e){var r=this.__data__;if(r instanceof jr){var n=r.__data__;if(!pr||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Pr(n)}return r.set(t,e),this.size=r.size,this};var Zr=bo(cn),tn=bo(sn,!0);function en(t,e){var r=!0;return Zr(t,(function(t,n,o){return r=!!e(t,n,o)})),r}function rn(t,e,r){for(var n=-1,o=t.length;++n0&&r(u)?e>1?on(u,e-1,r,n,o):ce(o,u):n||(o[o.length]=u)}return o}var an=Eo(),un=Eo(!0);function cn(t,e){return t&&an(t,e,gu)}function sn(t,e){return t&&un(t,e,gu)}function fn(t,e){return oe(e,(function(e){return Ua(t[e])}))}function ln(t,e){for(var r=0,n=(e=ao(e,t)).length;null!=t&&re}function dn(t,e){return null!=t&&St.call(t,e)}function vn(t,e){return null!=t&&e in ht(t)}function yn(t,e,r){for(var n=r?ae:ie,o=t[0].length,i=t.length,a=i,u=st(i),c=1/0,s=[];a--;){var f=t[a];a&&e&&(f=ue(f,Oe(e))),c=ar(f.length,c),u[a]=!r&&(e||o>=120&&f.length>=120)?new $r(a&&f):void 0}f=t[0];var l=-1,p=u[0];t:for(;++l=u?c:c*("desc"==r[n]?-1:1)}return t.index-e.index}(t,e,r)}));n--;)t[n]=t[n].value;return t}(xn(t,(function(t,r,o){return{criteria:ue(e,(function(e){return e(t)})),index:++n,value:t}})))}function In(t,e,r){for(var n=-1,o=e.length,i={};++n-1;)u!==t&&Ye.call(u,c,1),Ye.call(t,c,1);return t}function Pn(t,e){for(var r=t?e.length:0,n=r-1;r--;){var o=e[r];if(r==n||o!==i){var i=o;ai(o)?Ye.call(t,o,1):Qn(t,o)}}return t}function $n(t,e){return t+Ze(sr()*(e-t+1))}function Nn(t,e){var r="";if(!t||e<1||e>9007199254740991)return r;do{e%2&&(r+=t),(e=Ze(e/2))&&(t+=t)}while(e);return r}function Fn(t,e){return mi(hi(t,e,Yu),t+"")}function Un(t){return Ur(Lu(t))}function Dn(t,e){var r=Lu(t);return Ei(r,Jr(e,0,r.length))}function Mn(t,e,r,n){if(!Ba(t))return t;for(var o=-1,i=(e=ao(e,t)).length,a=i-1,u=t;null!=u&&++oo?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=st(o);++n>>1,a=t[i];null!==a&&!za(a)&&(r?a<=e:a=200){var s=e?null:Fo(t);if(s)return Fe(s);a=!1,o=Le,c=new $r}else c=e?[]:u;t:for(;++n=n?t:Yn(t,e,r)}var so=ze||function(t){return Bt.clearTimeout(t)};function fo(t,e){if(e)return t.slice();var r=t.length,n=Kt?Kt(r):new t.constructor(r);return t.copy(n),n}function lo(t){var e=new t.constructor(t.byteLength);return new Ht(e).set(new Ht(t)),e}function po(t,e){var r=e?lo(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function _o(t,e){if(t!==e){var r=void 0!==t,n=null===t,o=t==t,i=za(t),a=void 0!==e,u=null===e,c=e==e,s=za(e);if(!u&&!s&&!i&&t>e||i&&a&&c&&!u&&!s||n&&a&&c||!r&&c||!o)return 1;if(!n&&!i&&!s&&t1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&ui(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=ht(e);++n-1?o[i?e[a]:a]:void 0}}function Lo(t){return Yo((function(r){var n=r.length,o=n,i=Rr.prototype.thru;for(t&&r.reverse();o--;){var a=r[o];if("function"!=typeof a)throw new yt(e);if(i&&!u&&"wrapper"==Jo(a))var u=new Rr([],!0)}for(o=u?o:n;++o1&&g.reverse(),f&&cu))return!1;var s=i.get(t),f=i.get(e);if(s&&f)return s==e&&f==t;var l=-1,p=!0,_=2&r?new $r:void 0;for(i.set(t,e),i.set(e,t);++l-1&&t%1==0&&t1?"& ":"")+e[n],e=e.join(r>2?", ":" "),t.replace(W,"{\n/* [wrapped with "+e+"] */\n")}(o,function(t,e){return ee(n,(function(r){var n="_."+r[0];e&r[1]&&!ie(t,n)&&t.push(n)})),t.sort()}(function(t){var e=t.match(q);return e?e[1].split(J):[]}(o),r)))}function bi(t){var e=0,r=0;return function(){var n=ur(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Ei(t,e){var r=-1,n=t.length,o=n-1;for(e=void 0===e?n:e;++r1?t[e-1]:void 0;return r="function"==typeof r?(t.pop(),r):void 0,Wi(t,r)}));function Zi(t){var e=Lr(t);return e.__chain__=!0,e}function ta(t,e){return e(t)}var ea=Yo((function(t){var e=t.length,r=e?t[0]:0,n=this.__wrapped__,o=function(e){return qr(e,t)};return!(e>1||this.__actions__.length)&&n instanceof Cr&&ai(r)?((n=n.slice(r,+r+(e?1:0))).__actions__.push({func:ta,args:[o],thisArg:void 0}),new Rr(n,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(o)})),ra=mo((function(t,e,r){St.call(t,r)?++t[r]:Wr(t,r,1)})),na=xo(Ri),oa=xo(Ci);function ia(t,e){return(Ca(t)?ee:Zr)(t,Xo(e,3))}function aa(t,e){return(Ca(t)?re:tn)(t,Xo(e,3))}var ua=mo((function(t,e,r){St.call(t,r)?t[r].push(e):Wr(t,r,[e])})),ca=Fn((function(t,e,r){var n=-1,o="function"==typeof e,i=ja(t)?st(t.length):[];return Zr(t,(function(t){i[++n]=o?Zt(e,t,r):gn(t,e,r)})),i})),sa=mo((function(t,e,r){Wr(t,r,e)}));function fa(t,e){return(Ca(t)?ue:xn)(t,Xo(e,3))}var la=mo((function(t,e,r){t[r?0:1].push(e)}),(function(){return[[],[]]})),pa=Fn((function(t,e){if(null==t)return[];var r=e.length;return r>1&&ui(t,e[0],e[1])?e=[]:r>2&&ui(e[0],e[1],e[2])&&(e=[e[0]]),Cn(t,on(e,1),[])})),_a=Xe||function(){return Bt.Date.now()};function ha(t,e,r){return e=r?void 0:e,Do(t,128,void 0,void 0,void 0,void 0,e=t&&null==e?t.length:e)}function da(t,r){var n;if("function"!=typeof r)throw new yt(e);return t=eu(t),function(){return--t>0&&(n=r.apply(this,arguments)),t<=1&&(r=void 0),n}}var va=Fn((function(t,e,r){var n=1;if(r.length){var o=Ne(r,zo(va));n|=32}return Do(t,n,e,r,o)})),ya=Fn((function(t,e,r){var n=3;if(r.length){var o=Ne(r,zo(ya));n|=32}return Do(e,n,t,r,o)}));function ga(t,r,n){var o,i,a,u,c,s,f=0,l=!1,p=!1,_=!0;if("function"!=typeof t)throw new yt(e);function h(e){var r=o,n=i;return o=i=void 0,f=e,u=t.apply(n,r)}function d(t){var e=t-s;return void 0===s||e>=r||e<0||p&&t-f>=a}function v(){var t=_a();if(d(t))return y(t);c=gi(v,function(t){var e=r-(t-s);return p?ar(e,a-(t-f)):e}(t))}function y(t){return c=void 0,_&&o?h(t):(o=i=void 0,u)}function g(){var t=_a(),e=d(t);if(o=arguments,i=this,s=t,e){if(void 0===c)return function(t){return f=t,c=gi(v,r),l?h(t):u}(s);if(p)return so(c),c=gi(v,r),h(s)}return void 0===c&&(c=gi(v,r)),u}return r=nu(r)||0,Ba(n)&&(l=!!n.leading,a=(p="maxWait"in n)?ir(nu(n.maxWait)||0,r):a,_="trailing"in n?!!n.trailing:_),g.cancel=function(){void 0!==c&&so(c),f=0,o=s=i=c=void 0},g.flush=function(){return void 0===c?u:y(_a())},g}var ma=Fn((function(t,e){return Vr(t,1,e)})),wa=Fn((function(t,e,r){return Vr(t,nu(e)||0,r)}));function ba(t,r){if("function"!=typeof t||null!=r&&"function"!=typeof r)throw new yt(e);var n=function(){var e=arguments,o=r?r.apply(this,e):e[0],i=n.cache;if(i.has(o))return i.get(o);var a=t.apply(this,e);return n.cache=i.set(o,a)||i,a};return n.cache=new(ba.Cache||Pr),n}function Ea(t){if("function"!=typeof t)throw new yt(e);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}ba.Cache=Pr;var Sa=uo((function(t,e){var r=(e=1==e.length&&Ca(e[0])?ue(e[0],Oe(Xo())):ue(on(e,1),Oe(Xo()))).length;return Fn((function(n){for(var o=-1,i=ar(n.length,r);++o=e})),Ra=mn(function(){return arguments}())?mn:function(t){return Ga(t)&&St.call(t,"callee")&&!we.call(t,"callee")},Ca=st.isArray,Ia=qt?Oe(qt):function(t){return Ga(t)&&_n(t)==m};function ja(t){return null!=t&&Ma(t.length)&&!Ua(t)}function Pa(t){return Ga(t)&&ja(t)}var $a=er||nc,Na=Jt?Oe(Jt):function(t){return Ga(t)&&_n(t)==u};function Fa(t){if(!Ga(t))return!1;var e=_n(t);return e==c||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!Ka(t)}function Ua(t){if(!Ba(t))return!1;var e=_n(t);return e==s||e==f||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Da(t){return"number"==typeof t&&t==eu(t)}function Ma(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function Ba(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Ga(t){return null!=t&&"object"==typeof t}var Ha=zt?Oe(zt):function(t){return Ga(t)&&ri(t)==l};function Ya(t){return"number"==typeof t||Ga(t)&&_n(t)==p}function Ka(t){if(!Ga(t)||_n(t)!=_)return!1;var e=Wt(t);if(null===e)return!0;var r=St.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&Et.call(r)==Rt}var Wa=Xt?Oe(Xt):function(t){return Ga(t)&&_n(t)==h},qa=Vt?Oe(Vt):function(t){return Ga(t)&&ri(t)==d};function Ja(t){return"string"==typeof t||!Ca(t)&&Ga(t)&&_n(t)==v}function za(t){return"symbol"==typeof t||Ga(t)&&_n(t)==y}var Xa=Qt?Oe(Qt):function(t){return Ga(t)&&Ma(t.length)&&!!Pt[_n(t)]},Va=Po(On),Qa=Po((function(t,e){return t<=e}));function Za(t){if(!t)return[];if(ja(t))return Ja(t)?Me(t):yo(t);if(We&&t[We])return function(t){for(var e,r=[];!(e=t.next()).done;)r.push(e.value);return r}(t[We]());var e=ri(t);return(e==l?Pe:e==d?Fe:Lu)(t)}function tu(t){return t?(t=nu(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function eu(t){var e=tu(t),r=e%1;return e==e?r?e-r:e:0}function ru(t){return t?Jr(eu(t),0,4294967295):0}function nu(t){if("number"==typeof t)return t;if(za(t))return NaN;if(Ba(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Ba(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ae(t);var r=et.test(t);return r||nt.test(t)?Ut(t.slice(2),r?2:8):tt.test(t)?NaN:+t}function ou(t){return go(t,mu(t))}function iu(t){return null==t?"":Xn(t)}var au=wo((function(t,e){if(li(e)||ja(e))go(e,gu(e),t);else for(var r in e)St.call(e,r)&&Gr(t,r,e[r])})),uu=wo((function(t,e){go(e,mu(e),t)})),cu=wo((function(t,e,r,n){go(e,mu(e),t,n)})),su=wo((function(t,e,r,n){go(e,gu(e),t,n)})),fu=Yo(qr),lu=Fn((function(t,e){t=ht(t);var r=-1,n=e.length,o=n>2?e[2]:void 0;for(o&&ui(e[0],e[1],o)&&(n=1);++r1),e})),go(t,Wo(t),r),n&&(r=zr(r,7,Go));for(var o=e.length;o--;)Qn(r,e[o]);return r})),Su=Yo((function(t,e){return null==t?{}:function(t,e){return In(t,e,(function(e,r){return hu(t,r)}))}(t,e)}));function Au(t,e){if(null==t)return{};var r=ue(Wo(t),(function(t){return[t]}));return e=Xo(e),In(t,r,(function(t,r){return e(t,r[0])}))}var Ou=Uo(gu),xu=Uo(mu);function Lu(t){return null==t?[]:xe(t,gu(t))}var Tu=Ao((function(t,e,r){return e=e.toLowerCase(),t+(r?ku(e):e)}));function ku(t){return Fu(iu(t).toLowerCase())}function Ru(t){return(t=iu(t))&&t.replace(it,Re).replace(Lt,"")}var Cu=Ao((function(t,e,r){return t+(r?"-":"")+e.toLowerCase()})),Iu=Ao((function(t,e,r){return t+(r?" ":"")+e.toLowerCase()})),ju=So("toLowerCase"),Pu=Ao((function(t,e,r){return t+(r?"_":"")+e.toLowerCase()})),$u=Ao((function(t,e,r){return t+(r?" ":"")+Fu(e)})),Nu=Ao((function(t,e,r){return t+(r?" ":"")+e.toUpperCase()})),Fu=So("toUpperCase");function Uu(t,e,r){return t=iu(t),void 0===(e=r?void 0:e)?function(t){return Ct.test(t)}(t)?function(t){return t.match(kt)||[]}(t):function(t){return t.match(z)||[]}(t):t.match(e)||[]}var Du=Fn((function(t,e){try{return Zt(t,void 0,e)}catch(r){return Fa(r)?r:new lt(r)}})),Mu=Yo((function(t,e){return ee(e,(function(e){e=Ai(e),Wr(t,e,va(t[e],t))})),t}));function Bu(t){return function(){return t}}var Gu=Lo(),Hu=Lo(!0);function Yu(t){return t}function Ku(t){return Sn("function"==typeof t?t:zr(t,1))}var Wu=Fn((function(t,e){return function(r){return gn(r,t,e)}})),qu=Fn((function(t,e){return function(r){return gn(t,r,e)}}));function Ju(t,e,r){var n=gu(e),o=fn(e,n);null!=r||Ba(e)&&(o.length||!n.length)||(r=e,e=t,t=this,o=fn(e,gu(e)));var i=!(Ba(r)&&"chain"in r&&!r.chain),a=Ua(t);return ee(o,(function(r){var n=e[r];t[r]=n,a&&(t.prototype[r]=function(){var e=this.__chain__;if(i||e){var r=t(this.__wrapped__);return(r.__actions__=yo(this.__actions__)).push({func:n,args:arguments,thisArg:t}),r.__chain__=e,r}return n.apply(t,ce([this.value()],arguments))})})),t}function zu(){}var Xu=Co(ue),Vu=Co(ne),Qu=Co(le);function Zu(t){return ci(t)?me(Ai(t)):function(t){return function(e){return ln(e,t)}}(t)}var tc=jo(),ec=jo(!0);function rc(){return[]}function nc(){return!1}var oc,ic=Ro((function(t,e){return t+e}),0),ac=No("ceil"),uc=Ro((function(t,e){return t/e}),1),cc=No("floor"),sc=Ro((function(t,e){return t*e}),1),fc=No("round"),lc=Ro((function(t,e){return t-e}),0);return Lr.after=function(t,r){if("function"!=typeof r)throw new yt(e);return t=eu(t),function(){if(--t<1)return r.apply(this,arguments)}},Lr.ary=ha,Lr.assign=au,Lr.assignIn=uu,Lr.assignInWith=cu,Lr.assignWith=su,Lr.at=fu,Lr.before=da,Lr.bind=va,Lr.bindAll=Mu,Lr.bindKey=ya,Lr.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ca(t)?t:[t]},Lr.chain=Zi,Lr.chunk=function(t,e,r){e=(r?ui(t,e,r):void 0===e)?1:ir(eu(e),0);var n=null==t?0:t.length;if(!n||e<1)return[];for(var o=0,i=0,a=st(Qe(n/e));oo?0:o+r),(n=void 0===n||n>o?o:eu(n))<0&&(n+=o),n=r>n?0:ru(n);r>>0)?(t=iu(t))&&("string"==typeof e||null!=e&&!Wa(e))&&!(e=Xn(e))&&je(t)?co(Me(t),0,r):t.split(e,r):[]},Lr.spread=function(t,r){if("function"!=typeof t)throw new yt(e);return r=null==r?0:ir(eu(r),0),Fn((function(e){var n=e[r],o=co(e,0,r);return n&&ce(o,n),Zt(t,this,o)}))},Lr.tail=function(t){var e=null==t?0:t.length;return e?Yn(t,1,e):[]},Lr.take=function(t,e,r){return t&&t.length?Yn(t,0,(e=r||void 0===e?1:eu(e))<0?0:e):[]},Lr.takeRight=function(t,e,r){var n=null==t?0:t.length;return n?Yn(t,(e=n-(e=r||void 0===e?1:eu(e)))<0?0:e,n):[]},Lr.takeRightWhile=function(t,e){return t&&t.length?to(t,Xo(e,3),!1,!0):[]},Lr.takeWhile=function(t,e){return t&&t.length?to(t,Xo(e,3)):[]},Lr.tap=function(t,e){return e(t),t},Lr.throttle=function(t,r,n){var o=!0,i=!0;if("function"!=typeof t)throw new yt(e);return Ba(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),ga(t,r,{leading:o,maxWait:r,trailing:i})},Lr.thru=ta,Lr.toArray=Za,Lr.toPairs=Ou,Lr.toPairsIn=xu,Lr.toPath=function(t){return Ca(t)?ue(t,Ai):za(t)?[t]:yo(Si(iu(t)))},Lr.toPlainObject=ou,Lr.transform=function(t,e,r){var n=Ca(t),o=n||$a(t)||Xa(t);if(e=Xo(e,4),null==r){var i=t&&t.constructor;r=o?n?new i:[]:Ba(t)&&Ua(i)?Tr(Wt(t)):{}}return(o?ee:cn)(t,(function(t,n,o){return e(r,t,n,o)})),r},Lr.unary=function(t){return ha(t,1)},Lr.union=Gi,Lr.unionBy=Hi,Lr.unionWith=Yi,Lr.uniq=function(t){return t&&t.length?Vn(t):[]},Lr.uniqBy=function(t,e){return t&&t.length?Vn(t,Xo(e,2)):[]},Lr.uniqWith=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?Vn(t,void 0,e):[]},Lr.unset=function(t,e){return null==t||Qn(t,e)},Lr.unzip=Ki,Lr.unzipWith=Wi,Lr.update=function(t,e,r){return null==t?t:Zn(t,e,io(r))},Lr.updateWith=function(t,e,r,n){return n="function"==typeof n?n:void 0,null==t?t:Zn(t,e,io(r),n)},Lr.values=Lu,Lr.valuesIn=function(t){return null==t?[]:xe(t,mu(t))},Lr.without=qi,Lr.words=Uu,Lr.wrap=function(t,e){return Aa(io(e),t)},Lr.xor=Ji,Lr.xorBy=zi,Lr.xorWith=Xi,Lr.zip=Vi,Lr.zipObject=function(t,e){return no(t||[],e||[],Gr)},Lr.zipObjectDeep=function(t,e){return no(t||[],e||[],Mn)},Lr.zipWith=Qi,Lr.entries=Ou,Lr.entriesIn=xu,Lr.extend=uu,Lr.extendWith=cu,Ju(Lr,Lr),Lr.add=ic,Lr.attempt=Du,Lr.camelCase=Tu,Lr.capitalize=ku,Lr.ceil=ac,Lr.clamp=function(t,e,r){return void 0===r&&(r=e,e=void 0),void 0!==r&&(r=(r=nu(r))==r?r:0),void 0!==e&&(e=(e=nu(e))==e?e:0),Jr(nu(t),e,r)},Lr.clone=function(t){return zr(t,4)},Lr.cloneDeep=function(t){return zr(t,5)},Lr.cloneDeepWith=function(t,e){return zr(t,5,e="function"==typeof e?e:void 0)},Lr.cloneWith=function(t,e){return zr(t,4,e="function"==typeof e?e:void 0)},Lr.conformsTo=function(t,e){return null==e||Xr(t,e,gu(e))},Lr.deburr=Ru,Lr.defaultTo=function(t,e){return null==t||t!=t?e:t},Lr.divide=uc,Lr.endsWith=function(t,e,r){t=iu(t),e=Xn(e);var n=t.length,o=r=void 0===r?n:Jr(eu(r),0,n);return(r-=e.length)>=0&&t.slice(r,o)==e},Lr.eq=La,Lr.escape=function(t){return(t=iu(t))&&$.test(t)?t.replace(j,Ce):t},Lr.escapeRegExp=function(t){return(t=iu(t))&&H.test(t)?t.replace(G,"\\$&"):t},Lr.every=function(t,e,r){var n=Ca(t)?ne:en;return r&&ui(t,e,r)&&(e=void 0),n(t,Xo(e,3))},Lr.find=na,Lr.findIndex=Ri,Lr.findKey=function(t,e){return _e(t,Xo(e,3),cn)},Lr.findLast=oa,Lr.findLastIndex=Ci,Lr.findLastKey=function(t,e){return _e(t,Xo(e,3),sn)},Lr.floor=cc,Lr.forEach=ia,Lr.forEachRight=aa,Lr.forIn=function(t,e){return null==t?t:an(t,Xo(e,3),mu)},Lr.forInRight=function(t,e){return null==t?t:un(t,Xo(e,3),mu)},Lr.forOwn=function(t,e){return t&&cn(t,Xo(e,3))},Lr.forOwnRight=function(t,e){return t&&sn(t,Xo(e,3))},Lr.get=_u,Lr.gt=Ta,Lr.gte=ka,Lr.has=function(t,e){return null!=t&&ni(t,e,dn)},Lr.hasIn=hu,Lr.head=ji,Lr.identity=Yu,Lr.includes=function(t,e,r,n){t=ja(t)?t:Lu(t),r=r&&!n?eu(r):0;var o=t.length;return r<0&&(r=ir(o+r,0)),Ja(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&de(t,e,r)>-1},Lr.indexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:eu(r);return o<0&&(o=ir(n+o,0)),de(t,e,o)},Lr.inRange=function(t,e,r){return e=tu(e),void 0===r?(r=e,e=0):r=tu(r),function(t,e,r){return t>=ar(e,r)&&t=-9007199254740991&&t<=9007199254740991},Lr.isSet=qa,Lr.isString=Ja,Lr.isSymbol=za,Lr.isTypedArray=Xa,Lr.isUndefined=function(t){return void 0===t},Lr.isWeakMap=function(t){return Ga(t)&&ri(t)==g},Lr.isWeakSet=function(t){return Ga(t)&&"[object WeakSet]"==_n(t)},Lr.join=function(t,e){return null==t?"":nr.call(t,e)},Lr.kebabCase=Cu,Lr.last=Fi,Lr.lastIndexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=n;return void 0!==r&&(o=(o=eu(r))<0?ir(n+o,0):ar(o,n-1)),e==e?function(t,e,r){for(var n=r+1;n--;)if(t[n]===e)return n;return n}(t,e,o):he(t,ye,o,!0)},Lr.lowerCase=Iu,Lr.lowerFirst=ju,Lr.lt=Va,Lr.lte=Qa,Lr.max=function(t){return t&&t.length?rn(t,Yu,hn):void 0},Lr.maxBy=function(t,e){return t&&t.length?rn(t,Xo(e,2),hn):void 0},Lr.mean=function(t){return ge(t,Yu)},Lr.meanBy=function(t,e){return ge(t,Xo(e,2))},Lr.min=function(t){return t&&t.length?rn(t,Yu,On):void 0},Lr.minBy=function(t,e){return t&&t.length?rn(t,Xo(e,2),On):void 0},Lr.stubArray=rc,Lr.stubFalse=nc,Lr.stubObject=function(){return{}},Lr.stubString=function(){return""},Lr.stubTrue=function(){return!0},Lr.multiply=sc,Lr.nth=function(t,e){return t&&t.length?Rn(t,eu(e)):void 0},Lr.noConflict=function(){return Bt._===this&&(Bt._=Nt),this},Lr.noop=zu,Lr.now=_a,Lr.pad=function(t,e,r){t=iu(t);var n=(e=eu(e))?De(t):0;if(!e||n>=e)return t;var o=(e-n)/2;return Io(Ze(o),r)+t+Io(Qe(o),r)},Lr.padEnd=function(t,e,r){t=iu(t);var n=(e=eu(e))?De(t):0;return e&&ne){var n=t;t=e,e=n}if(r||t%1||e%1){var o=sr();return ar(t+o*(e-t+Ft("1e-"+((o+"").length-1))),e)}return $n(t,e)},Lr.reduce=function(t,e,r){var n=Ca(t)?se:be,o=arguments.length<3;return n(t,Xo(e,4),r,o,Zr)},Lr.reduceRight=function(t,e,r){var n=Ca(t)?fe:be,o=arguments.length<3;return n(t,Xo(e,4),r,o,tn)},Lr.repeat=function(t,e,r){return e=(r?ui(t,e,r):void 0===e)?1:eu(e),Nn(iu(t),e)},Lr.replace=function(){var t=arguments,e=iu(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Lr.result=function(t,e,r){var n=-1,o=(e=ao(e,t)).length;for(o||(o=1,t=void 0);++n9007199254740991)return[];var r=4294967295,n=ar(t,4294967295);t-=4294967295;for(var o=Se(n,e=Xo(e));++r=i)return t;var u=r-De(n);if(u<1)return n;var c=a?co(a,0,u).join(""):t.slice(0,u);if(void 0===o)return c+n;if(a&&(u+=c.length-u),Wa(o)){if(t.slice(u).search(o)){var s,f=c;for(o.global||(o=dt(o.source,iu(Z.exec(o))+"g")),o.lastIndex=0;s=o.exec(f);)var l=s.index;c=c.slice(0,void 0===l?u:l)}}else if(t.indexOf(Xn(o),u)!=u){var p=c.lastIndexOf(o);p>-1&&(c=c.slice(0,p))}return c+n},Lr.unescape=function(t){return(t=iu(t))&&P.test(t)?t.replace(I,Ge):t},Lr.uniqueId=function(t){var e=++At;return iu(t)+e},Lr.upperCase=Nu,Lr.upperFirst=Fu,Lr.each=ia,Lr.eachRight=aa,Lr.first=ji,Ju(Lr,(oc={},cn(Lr,(function(t,e){St.call(Lr.prototype,e)||(oc[e]=t)})),oc),{chain:!1}),Lr.VERSION="4.17.21",ee(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Lr[t].placeholder=Lr})),ee(["drop","take"],(function(t,e){Cr.prototype[t]=function(r){r=void 0===r?1:ir(eu(r),0);var n=this.__filtered__&&!e?new Cr(this):this.clone();return n.__filtered__?n.__takeCount__=ar(r,n.__takeCount__):n.__views__.push({size:ar(r,4294967295),type:t+(n.__dir__<0?"Right":"")}),n},Cr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),ee(["filter","map","takeWhile"],(function(t,e){var r=e+1,n=1==r||3==r;Cr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Xo(t,3),type:r}),e.__filtered__=e.__filtered__||n,e}})),ee(["head","last"],(function(t,e){var r="take"+(e?"Right":"");Cr.prototype[t]=function(){return this[r](1).value()[0]}})),ee(["initial","tail"],(function(t,e){var r="drop"+(e?"":"Right");Cr.prototype[t]=function(){return this.__filtered__?new Cr(this):this[r](1)}})),Cr.prototype.compact=function(){return this.filter(Yu)},Cr.prototype.find=function(t){return this.filter(t).head()},Cr.prototype.findLast=function(t){return this.reverse().find(t)},Cr.prototype.invokeMap=Fn((function(t,e){return"function"==typeof t?new Cr(this):this.map((function(r){return gn(r,t,e)}))})),Cr.prototype.reject=function(t){return this.filter(Ea(Xo(t)))},Cr.prototype.slice=function(t,e){t=eu(t);var r=this;return r.__filtered__&&(t>0||e<0)?new Cr(r):(t<0?r=r.takeRight(-t):t&&(r=r.drop(t)),void 0!==e&&(r=(e=eu(e))<0?r.dropRight(-e):r.take(e-t)),r)},Cr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Cr.prototype.toArray=function(){return this.take(4294967295)},cn(Cr.prototype,(function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),n=/^(?:head|last)$/.test(e),o=Lr[n?"take"+("last"==e?"Right":""):e],i=n||/^find/.test(e);o&&(Lr.prototype[e]=function(){var e=this.__wrapped__,a=n?[1]:arguments,u=e instanceof Cr,c=a[0],s=u||Ca(e),f=function(t){var e=o.apply(Lr,ce([t],a));return n&&l?e[0]:e};s&&r&&"function"==typeof c&&1!=c.length&&(u=s=!1);var l=this.__chain__,p=!!this.__actions__.length,_=i&&!l,h=u&&!p;if(!i&&s){e=h?e:new Cr(this);var d=t.apply(e,a);return d.__actions__.push({func:ta,args:[f],thisArg:void 0}),new Rr(d,l)}return _&&h?t.apply(this,a):(d=this.thru(f),_?n?d.value()[0]:d.value():d)})})),ee(["pop","push","shift","sort","splice","unshift"],(function(t){var e=gt[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);Lr.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var o=this.value();return e.apply(Ca(o)?o:[],t)}return this[r]((function(r){return e.apply(Ca(r)?r:[],t)}))}})),cn(Cr.prototype,(function(t,e){var r=Lr[e];if(r){var n=r.name+"";St.call(gr,n)||(gr[n]=[]),gr[n].push({name:e,func:r})}})),gr[To(void 0,2).name]=[{name:"wrapper",func:void 0}],Cr.prototype.clone=function(){var t=new Cr(this.__wrapped__);return t.__actions__=yo(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=yo(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=yo(this.__views__),t},Cr.prototype.reverse=function(){if(this.__filtered__){var t=new Cr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Cr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,r=Ca(t),n=e<0,o=r?t.length:0,i=function(t,e,r){for(var n=-1,o=r.length;++n=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},Lr.prototype.plant=function(t){for(var e,r=this;r instanceof kr;){var n=xi(r);n.__index__=0,n.__values__=void 0,e?o.__wrapped__=n:e=n;var o=n;r=r.__wrapped__}return o.__wrapped__=t,e},Lr.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Cr){var e=t;return this.__actions__.length&&(e=new Cr(this)),(e=e.reverse()).__actions__.push({func:ta,args:[Bi],thisArg:void 0}),new Rr(e,this.__chain__)}return this.thru(Bi)},Lr.prototype.toJSON=Lr.prototype.valueOf=Lr.prototype.value=function(){return eo(this.__wrapped__,this.__actions__)},Lr.prototype.first=Lr.prototype.head,We&&(Lr.prototype[We]=function(){return this}),Lr}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Bt._=He,define((function(){return He}))):Ht?((Ht.exports=He)._=He,Gt._=He):Bt._=He}).call(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),_$lodash_35=_$lodash_35.exports;var _$processors_41={};function ___typeof_41(t){return(___typeof_41="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$processors_41,"__esModule",{value:!0}),_$processors_41.ApplyProcessor=function(t,e){return _ApplyProcessor.apply(this,arguments)},_$processors_41.default=void 0;var _lodash=_interopRequireDefault(_$lodash_35),_app=_interopRequireDefault(_$app_37);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return function(t){if(Array.isArray(t))return ___arrayLikeToArray_41(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ___regeneratorRuntime_41(){___regeneratorRuntime_41=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(x){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof l?e:l,i=Object.create(o.prototype),a=new S(n||[]);return i._invoke=function(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,a),i}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(x){return{type:"throw",arg:x}}}t.wrap=c;var f={};function l(){}function p(){}function _(){}var h={};u(h,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(A([])));v&&v!==e&&r.call(v,o)&&(h=v);var y=_.prototype=l.prototype=Object.create(h);function g(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function m(t,e){var n;this._invoke=function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==___typeof_41(l)&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return f;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,f;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function A(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __asyncGeneratorStep_41(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}function ___asyncToGenerator_41(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_41(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_41(i,n,o,a,u,"throw",t)}a(void 0)}))}}function ___createForOfIteratorHelper_41(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=_unsupportedIterableToArray(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_41(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_41(t,e):void 0}}function ___arrayLikeToArray_41(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0])||arguments[0];return{name:"Flag Operator",func:function(e){return e.map((function(e){if(t){var r=(0,_$geo_55.getFlag)(e.name);e.name=removeFlag(e.name),e.name=r+" "+e.name,e.name=e.name.replace(/\ud83c\uddf9\ud83c\uddfc/g,"\ud83c\udde8\ud83c\uddf3")}else e.name=removeFlag(e.name);return e}))}}},"Sort Operator":function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"asc";return{name:"Sort Operator",func:function(e){switch(t){case"asc":case"desc":return e.sort((function(e,r){return(e.name>r.name?1:-1)*("desc"===t?-1:1)}));case"random":return function(t){for(var e,r,n=t.length;0!==n;)r=Math.floor(Math.random()*n),e=t[n-=1],t[n]=t[r],t[r]=e;return t}(e);default:throw new Error("Unknown sort option: "+t)}}}},"Regex Sort Operator":function(t){return{name:"Regex Sort Operator",func:function(e){return t=t.map((function(t){return buildRegex(t)})),e.sort((function(e,r){var n=getRegexOrder(t,e.name),o=getRegexOrder(t,r.name);return n&&!o?-1:o&&!n?1:n&&o?n1){void 0===s[t.name]&&(s[t.name]=1);for(var e="",r=s[t.name]++,n=0;r>0;)e=a[r%10]+e,r=parseInt(r/10),n++;for(;n++0&&-1==="\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>e/2-1){r=" ... ",n+=5;break}for(o="",i=this.position;ie/2-1){o=" ... ",i-=5;break}return a=this.buffer.slice(n,i),_$common_7.repeat(" ",t)+r+a+o+"\n"+_$common_7.repeat(" ",t+this.position-n+r.length)+"^"},Mark.prototype.toString=function(t){var e,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(e=this.getSnippet())&&(r+=":\n"+e),r},_$mark_11=Mark;var TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"],_$type_18=function(t,e){var r,n;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(e))throw new _$exception_9('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=(r=e.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(t){r[t].forEach((function(e){n[String(e)]=t}))})),n),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new _$exception_9('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')},_$schema_12={};function compileList(t,e,r){var n=[];return t.include.forEach((function(t){r=compileList(t,e,r)})),t[e].forEach((function(t){r.forEach((function(e,r){e.tag===t.tag&&e.kind===t.kind&&n.push(r)})),r.push(t)})),r.filter((function(t,e){return-1===n.indexOf(e)}))}function Schema(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach((function(t){if(t.loadKind&&"scalar"!==t.loadKind)throw new _$exception_9("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=function(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(t){r[t.kind][t.tag]=r.fallback[t.tag]=t}for(t=0,e=arguments.length;t=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/,_$float_21=new _$type_18("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!YAML_FLOAT_PATTERN.test(t)||"_"===t[t.length-1])},construct:function(t){var e,r,n,o;return r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:e.indexOf(":")>=0?(e.split(":").forEach((function(t){o.unshift(parseFloat(t,10))})),e=0,n=1,o.forEach((function(t){e+=t*n,n*=60})),r*e):r*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||_$common_7.isNegativeZero(t))},represent:function(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_$common_7.isNegativeZero(t))return"-0.0";return r=t.toString(10),SCIENTIFIC_WITHOUT_DOT.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"}),_$json_17=new _$schema_12({include:[_$failsafe_16],implicit:[_$null_28,_$bool_20,_$int_22,_$float_21]}),_$core_13=new _$schema_12({include:[_$json_17]}),YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),_$timestamp_34=new _$type_18("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==YAML_DATE_REGEXP.exec(t)||null!==YAML_TIMESTAMP_REGEXP.exec(t))},construct:function(t){var e,r,n,o,i,a,u,c,s=0,f=null;if(null===(e=YAML_DATE_REGEXP.exec(t))&&(e=YAML_TIMESTAMP_REGEXP.exec(t)),null===e)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,o=+e[3],!e[4])return new Date(Date.UTC(r,n,o));if(i=+e[4],a=+e[5],u=+e[6],e[7]){for(s=e[7].slice(0,3);s.length<3;)s+="0";s=+s}return e[9]&&(f=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(f=-f)),c=new Date(Date.UTC(r,n,o,i,a,u,s)),f&&c.setTime(c.getTime()-f),c},instanceOf:Date,represent:function(t){return t.toISOString()}}),_$merge_27=new _$type_18("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),NodeBuffer;try{var _require=require;NodeBuffer=_require("buffer").Buffer}catch(__){}var BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",_$binary_19=new _$type_18("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,r,n=0,o=t.length,i=BASE64_MAP;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8==0},construct:function(t){var e,r,n=t.replace(/[\r\n=]/g,""),o=n.length,i=BASE64_MAP,a=0,u=[];for(e=0;e>16&255),u.push(a>>8&255),u.push(255&a)),a=a<<6|i.indexOf(n.charAt(e));return 0==(r=o%4*6)?(u.push(a>>16&255),u.push(a>>8&255),u.push(255&a)):18===r?(u.push(a>>10&255),u.push(a>>2&255)):12===r&&u.push(a>>4&255),NodeBuffer?NodeBuffer.from?NodeBuffer.from(u):new NodeBuffer(u):u},predicate:function(t){return NodeBuffer&&NodeBuffer.isBuffer(t)},represent:function(t){var e,r,n="",o=0,i=t.length,a=BASE64_MAP;for(e=0;e>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[63&o]),o=(o<<8)+t[e];return 0==(r=i%3)?(n+=a[o>>18&63],n+=a[o>>12&63],n+=a[o>>6&63],n+=a[63&o]):2===r?(n+=a[o>>10&63],n+=a[o>>4&63],n+=a[o<<2&63],n+=a[64]):1===r&&(n+=a[o>>2&63],n+=a[o<<4&63],n+=a[64],n+=a[64]),n}}),_hasOwnProperty=Object.prototype.hasOwnProperty,_toString=Object.prototype.toString,_$omap_29=new _$type_18("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,r,n,o,i,a=[],u=t;for(e=0,r=u.length;e3)return!1;if("/"!==e[e.length-n.length-1])return!1}return!0},construct:function(t){var e=t,r=/\/([gim]*)$/.exec(t),n="";return"/"===e[0]&&(r&&(n=r[1]),e=e.slice(1,e.length-n.length-1)),new RegExp(e,n)},predicate:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},represent:function(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}}),esprima;try{var ___require_23=require;esprima=___require_23("esprima")}catch(_){"undefined"!=typeof window&&(esprima=window.esprima)}var _$function_23=new _$type_18("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(t){if(null===t)return!1;try{var e="("+t+")",r=esprima.parse(e,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(n){return!1}},construct:function(t){var e,r="("+t+")",n=esprima.parse(r,{range:!0}),o=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(t){o.push(t.name)})),e=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(o,r.slice(e[0]+1,e[1]-1)):new Function(o,"return "+r.slice(e[0],e[1]))},predicate:function(t){return"[object Function]"===Object.prototype.toString.call(t)},represent:function(t){return t.toString()}}),_$default_full_14=_$schema_12.DEFAULT=new _$schema_12({include:[_$default_safe_15],explicit:[_$undefined_25,_$regexp_24,_$function_23]}),_$loader_10={},___hasOwnProperty_10=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(t){return Object.prototype.toString.call(t)}function is_EOL(t){return 10===t||13===t}function is_WHITE_SPACE(t){return 9===t||32===t}function is_WS_OR_EOL(t){return 9===t||32===t||10===t||13===t}function is_FLOW_INDICATOR(t){return 44===t||91===t||93===t||123===t||125===t}function fromHexCode(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function simpleEscapeSequence(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function charFromCodepoint(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);function State(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||_$default_full_14,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(t,e){return new _$exception_9(e,new _$mark_11(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function throwError(t,e){throw generateError(t,e)}function throwWarning(t,e){t.onWarning&&t.onWarning.call(null,generateError(t,e))}var directiveHandlers={YAML:function(t,e,r){var n,o,i;null!==t.version&&throwError(t,"duplication of %YAML directive"),1!==r.length&&throwError(t,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&throwError(t,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),i=parseInt(n[2],10),1!==o&&throwError(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=i<2,1!==i&&2!==i&&throwWarning(t,"unsupported YAML version of the document")},TAG:function(t,e,r){var n,o;2!==r.length&&throwError(t,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],PATTERN_TAG_HANDLE.test(n)||throwError(t,"ill-formed tag handle (first argument) of the TAG directive"),___hasOwnProperty_10.call(t.tagMap,n)&&throwError(t,'there is a previously declared suffix for "'+n+'" tag handle'),PATTERN_TAG_URI.test(o)||throwError(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[n]=o}};function captureSegment(t,e,r,n){var o,i,a,u;if(e1&&(t.result+=_$common_7.repeat("\n",e-1))}function readBlockSequence(t,e){var r,n,o=t.tag,i=t.anchor,a=[],u=!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),n=t.input.charCodeAt(t.position);0!==n&&45===n&&is_WS_OR_EOL(t.input.charCodeAt(t.position+1));)if(u=!0,t.position++,skipSeparationSpace(t,!0,-1)&&t.lineIndent<=e)a.push(null),n=t.input.charCodeAt(t.position);else if(r=t.line,composeNode(t,e,CONTEXT_BLOCK_IN,!1,!0),a.push(t.result),skipSeparationSpace(t,!0,-1),n=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&0!==n)throwError(t,"bad indentation of a sequence entry");else if(t.lineIndente?_=1:t.lineIndent===e?_=0:t.lineIndente?_=1:t.lineIndent===e?_=0:t.lineIndente)&&(composeNode(t,e,CONTEXT_BLOCK_OUT,!0,o)&&(d?_=t.result:h=t.result),d||(storeMappingPair(t,f,l,p,_,h,i,a),p=_=h=null),skipSeparationSpace(t,!0,-1),u=t.input.charCodeAt(t.position)),t.lineIndent>e&&0!==u)throwError(t,"bad indentation of a mapping entry");else if(t.lineIndent=0))break;0===o?throwError(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?throwError(t,"repeat of an indentation width identifier"):(f=e+o-1,s=!0)}if(is_WHITE_SPACE(i)){do{i=t.input.charCodeAt(++t.position)}while(is_WHITE_SPACE(i));if(35===i)do{i=t.input.charCodeAt(++t.position)}while(!is_EOL(i)&&0!==i)}for(;0!==i;){for(readLineBreak(t),t.lineIndent=0,i=t.input.charCodeAt(t.position);(!s||t.lineIndentf&&(f=t.lineIndent),is_EOL(i))l++;else{if(t.lineIndent0){for(o=a,i=0;o>0;o--)(a=fromHexCode(u=t.input.charCodeAt(++t.position)))>=0?i=(i<<4)+a:throwError(t,"expected hexadecimal character");t.result+=charFromCodepoint(i),t.position++}else throwError(t,"unknown escape sequence");r=n=t.position}else is_EOL(u)?(captureSegment(t,r,n,!0),writeFoldedLines(t,skipSeparationSpace(t,!1,e)),r=n=t.position):t.position===t.lineStart&&testDocumentSeparator(t)?throwError(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}throwError(t,"unexpected end of the stream within a double quoted scalar")}(t,l)?d=!0:function(t){var e,r,n;if(42!==(n=t.input.charCodeAt(t.position)))return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!is_WS_OR_EOL(n)&&!is_FLOW_INDICATOR(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&throwError(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),___hasOwnProperty_10.call(t.anchorMap,r)||throwError(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],skipSeparationSpace(t,!0,-1),!0}(t)?(d=!0,null===t.tag&&null===t.anchor||throwError(t,"alias node should not have any properties")):function(t,e,r){var n,o,i,a,u,c,s,f,l=t.kind,p=t.result;if(is_WS_OR_EOL(f=t.input.charCodeAt(t.position))||is_FLOW_INDICATOR(f)||35===f||38===f||42===f||33===f||124===f||62===f||39===f||34===f||37===f||64===f||96===f)return!1;if((63===f||45===f)&&(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n)))return!1;for(t.kind="scalar",t.result="",o=i=t.position,a=!1;0!==f;){if(58===f){if(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n))break}else if(35===f){if(is_WS_OR_EOL(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&testDocumentSeparator(t)||r&&is_FLOW_INDICATOR(f))break;if(is_EOL(f)){if(u=t.line,c=t.lineStart,s=t.lineIndent,skipSeparationSpace(t,!1,-1),t.lineIndent>=e){a=!0,f=t.input.charCodeAt(t.position);continue}t.position=i,t.line=u,t.lineStart=c,t.lineIndent=s;break}}a&&(captureSegment(t,o,i,!1),writeFoldedLines(t,t.line-u),o=i=t.position,a=!1),is_WHITE_SPACE(f)||(i=t.position+1),f=t.input.charCodeAt(++t.position)}return captureSegment(t,o,i,!1),!!t.result||(t.kind=l,t.result=p,!1)}(t,l,CONTEXT_FLOW_IN===r)&&(d=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===_&&(d=u&&readBlockSequence(t,p))),null!==t.tag&&"!"!==t.tag)if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&throwError(t,'unacceptable node kind for ! tag; it should be "scalar", not "'+t.kind+'"'),c=0,s=t.implicitTypes.length;c tag; it should be "'+f.kind+'", not "'+t.kind+'"'),f.resolve(t.result)?(t.result=f.construct(t.result),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):throwError(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):throwError(t,"unknown tag !<"+t.tag+">");return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||d}function readDocument(t){var e,r,n,o,i=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};0!==(o=t.input.charCodeAt(t.position))&&(skipSeparationSpace(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==o));){for(a=!0,o=t.input.charCodeAt(++t.position),e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);for(n=[],(r=t.input.slice(e,t.position)).length<1&&throwError(t,"directive name must not be less than one character in length");0!==o;){for(;is_WHITE_SPACE(o);)o=t.input.charCodeAt(++t.position);if(35===o){do{o=t.input.charCodeAt(++t.position)}while(0!==o&&!is_EOL(o));break}if(is_EOL(o))break;for(e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(e,t.position))}0!==o&&readLineBreak(t),___hasOwnProperty_10.call(directiveHandlers,r)?directiveHandlers[r](t,r,n):throwWarning(t,'unknown document directive "'+r+'"')}skipSeparationSpace(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,skipSeparationSpace(t,!0,-1)):a&&throwError(t,"directives end mark is expected"),composeNode(t,t.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(t,!0,-1),t.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(t.input.slice(i,t.position))&&throwWarning(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&testDocumentSeparator(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,skipSeparationSpace(t,!0,-1)):t.position0?t.charCodeAt(i-1):null,_=_&&isPlainSafe(a,u)}else{for(i=0;in&&" "!==t[p+1],p=i);else if(!isPrintable(a))return STYLE_DOUBLE;u=i>0?t.charCodeAt(i-1):null,_=_&&isPlainSafe(a,u)}f=f||l&&i-p-1>n&&" "!==t[p+1]}return s||f?r>9&&needIndentIndicator(t)?STYLE_DOUBLE:f?STYLE_FOLDED:STYLE_LITERAL:_&&!o(t)?STYLE_PLAIN:STYLE_SINGLE}function writeScalar(t,e,r,n){t.dump=function(){if(0===e.length)return"''";if(!t.noCompatMode&&-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(e))return"'"+e+"'";var o=t.indent*Math.max(1,r),i=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),a=n||t.flowLevel>-1&&r>=t.flowLevel;switch(chooseScalarStyle(e,a,t.indent,i,(function(e){return function(t,e){var r,n;for(r=0,n=t.implicitTypes.length;r"+blockHeader(e,t.indent)+dropEndingNewline(indentString(function(t,e){for(var r,n,o,i=/(\n+)([^\n]*)/g,a=(o=-1!==(o=t.indexOf("\n"))?o:t.length,i.lastIndex=o,foldLine(t.slice(0,o),e)),u="\n"===t[0]||" "===t[0];n=i.exec(t);){var c=n[1],s=n[2];r=" "===s[0],a+=c+(u||r||""===s?"":"\n")+foldLine(s,e),u=r}return a}(e,i),o));case STYLE_DOUBLE:return'"'+function(t){for(var e,r,n,o="",i=0;i=55296&&e<=56319&&(r=t.charCodeAt(i+1))>=56320&&r<=57343?(o+=encodeHex(1024*(e-55296)+r-56320+65536),i++):o+=!(n=ESCAPE_SEQUENCES[e])&&isPrintable(e)?t[i]:n||encodeHex(e);return o}(e)+'"';default:throw new _$exception_9("impossible error: invalid scalar style")}}()}function blockHeader(t,e){var r=needIndentIndicator(t)?String(e):"",n="\n"===t[t.length-1];return r+(!n||"\n"!==t[t.length-2]&&"\n"!==t?n?"":"-":"+")+"\n"}function dropEndingNewline(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function foldLine(t,e){if(""===t||" "===t[0])return t;for(var r,n,o=/ [^ ]/g,i=0,a=0,u=0,c="";r=o.exec(t);)(u=r.index)-i>e&&(n=a>i?a:u,c+="\n"+t.slice(i,n),i=n+1),a=u;return c+="\n",t.length-i>e&&a>i?c+=t.slice(i,a)+"\n"+t.slice(a+1):c+=t.slice(i),c.slice(1)}function detectType(t,e,r){var n,o,i,a,u,c;for(i=0,a=(o=r?t.explicitTypes:t.implicitTypes).length;i tag resolver accepts not "'+c+'" style');n=u.represent[c](e,c)}t.dump=n}return!0}return!1}function writeNode(t,e,r,n,o,i){t.tag=null,t.dump=r,detectType(t,r,!1)||detectType(t,r,!0);var a=___toString_8.call(t.dump);n&&(n=t.flowLevel<0||t.flowLevel>e);var u,c,s="[object Object]"===a||"[object Array]"===a;if(s&&(c=-1!==(u=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||c||2!==t.indent&&e>0)&&(o=!1),c&&t.usedDuplicates[u])t.dump="*ref_"+u;else{if(s&&c&&!t.usedDuplicates[u]&&(t.usedDuplicates[u]=!0),"[object Object]"===a)n&&0!==Object.keys(t.dump).length?(function(t,e,r,n){var o,i,a,u,c,s,f="",l=t.tag,p=Object.keys(r);if(!0===t.sortKeys)p.sort();else if("function"==typeof t.sortKeys)p.sort(t.sortKeys);else if(t.sortKeys)throw new _$exception_9("sortKeys must be a boolean or a function");for(o=0,i=p.length;o1024)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?s+="?":s+="? "),s+=t.dump,c&&(s+=generateNextLine(t,e)),writeNode(t,e+1,u,!0,c)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?s+=":":s+=": ",f+=s+=t.dump));t.tag=l,t.dump=f||"{}"}(t,e,t.dump,o),c&&(t.dump="&ref_"+u+t.dump)):(function(t,e,r){var n,o,i,a,u,c="",s=t.tag,f=Object.keys(r);for(n=0,o=f.length;n1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),writeNode(t,e,a,!1,!1)&&(c+=u+=t.dump));t.tag=s,t.dump="{"+c+"}"}(t,e,t.dump),c&&(t.dump="&ref_"+u+" "+t.dump));else if("[object Array]"===a){var f=t.noArrayIndent&&e>0?e-1:e;n&&0!==t.dump.length?(function(t,e,r,n){var o,i,a="",u=t.tag;for(o=0,i=r.length;o "+t.dump)}return!0}function getDuplicateReferences(t,e){var r,n,o=[],i=[];for(function t(e,r,n){var o,i,a;if(null!==e&&"object"==typeof e)if(-1!==(i=r.indexOf(e)))-1===n.indexOf(i)&&n.push(i);else if(r.push(e),Array.isArray(e))for(i=0,a=e.length;i0?o-4:o;for(r=0;r>16&255,a[u++]=e>>8&255,a[u++]=255&e;return 2===i&&(e=revLookup[t.charCodeAt(r)]<<2|revLookup[t.charCodeAt(r+1)]>>4,a[u++]=255&e),1===i&&(e=revLookup[t.charCodeAt(r)]<<10|revLookup[t.charCodeAt(r+1)]<<4|revLookup[t.charCodeAt(r+2)]>>2,a[u++]=e>>8&255,a[u++]=255&e),a},fromByteArray:function(t){for(var e,r=t.length,n=r%3,o=[],i=0,a=r-n;ia?a:i+16383));return 1===n?(e=t[r-1],o.push(lookup[e>>2]+lookup[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],o.push(lookup[e>>10]+lookup[e>>4&63]+lookup[e<<2&63]+"=")),o.join("")}},lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",__i_1=0,len=code.length;__i_10)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function encodeChunk(t,e,r){for(var n,o,i=[],a=e;a>18&63]+lookup[o>>12&63]+lookup[o>>6&63]+lookup[63&o]);return i.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var _$ieee754_3={read:function(t,e,r,n,o){var i,a,u=8*o-n-1,c=(1<>1,f=-7,l=r?o-1:0,p=r?-1:1,_=t[e+l];for(l+=p,i=_&(1<<-f)-1,_>>=-f,f+=u;f>0;i=256*i+t[e+l],l+=p,f-=8);for(a=i&(1<<-f)-1,i>>=-f,f+=n;f>0;a=256*a+t[e+l],l+=p,f-=8);if(0===i)i=1-s;else{if(i===c)return a?NaN:1/0*(_?-1:1);a+=Math.pow(2,n),i-=s}return(_?-1:1)*a*Math.pow(2,i-n)},write:function(t,e,r,n,o,i){var a,u,c,s=8*i-o-1,f=(1<>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,_=n?0:i-1,h=n?1:-1,d=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-a))<1&&(a--,c*=2),(e+=a+l>=1?p/c:p*Math.pow(2,1-l))*c>=2&&(a++,c/=2),a+l>=f?(u=0,a=f):a+l>=1?(u=(e*c-1)*Math.pow(2,o),a+=l):(u=e*Math.pow(2,l-1)*Math.pow(2,o),a=0));o>=8;t[r+_]=255&u,_+=h,u/=256,o-=8);for(a=a<0;t[r+_]=255&a,_+=h,a/=256,s-=8);t[r+_-h]|=128*d}},_$base64_4={exports:{}};(function(t,e){(function(){!function(t,e){var r,n;"object"==typeof _$base64_4.exports?_$base64_4.exports=e():"function"==typeof define&&define.amd?define(e):(r=t.Base64,(n=e()).noConflict=function(){return t.Base64=r,n},t.Meteor&&(Base64=n),t.Base64=n)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:this,(function(){"use strict";var t,r="function"==typeof atob,n="function"==typeof btoa,o="function"==typeof e,i="function"==typeof TextDecoder?new TextDecoder:void 0,a="function"==typeof TextEncoder?new TextEncoder:void 0,u=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),c=(t={},u.forEach((function(e,r){return t[e]=r})),t),s=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,f=String.fromCharCode.bind(String),l="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t,e){return void 0===e&&(e=function(t){return t}),new Uint8Array(Array.prototype.slice.call(t,0).map(e))},p=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},_=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},h=function(t){for(var e,r,n,o,i="",a=t.length%3,c=0;c255||(n=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");i+=u[(e=r<<16|n<<8|o)>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}return a?i.slice(0,a-3)+"===".substring(a):i},d=n?function(t){return btoa(t)}:o?function(t){return e.from(t,"binary").toString("base64")}:h,v=o?function(t){return e.from(t).toString("base64")}:function(t){for(var e=[],r=0,n=t.length;r>>6)+f(128|63&e):f(224|e>>>12&15)+f(128|e>>>6&63)+f(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return f(240|e>>>18&7)+f(128|e>>>12&63)+f(128|e>>>6&63)+f(128|63&e)},m=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,w=function(t){return t.replace(m,g)},b=o?function(t){return e.from(t,"utf8").toString("base64")}:a?function(t){return v(a.encode(t))}:function(t){return d(w(t))},E=function(t,e){return void 0===e&&(e=!1),e?p(b(t)):b(t)},S=function(t){return E(t,!0)},A=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,O=function(t){switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return f(55296+(e>>>10))+f(56320+(1023&e));case 3:return f((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return f((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},x=function(t){return t.replace(A,O)},L=function(t){if(t=t.replace(/\s+/g,""),!s.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var e,r,n,o="",i=0;i>16&255):64===n?f(e>>16&255,e>>8&255):f(e>>16&255,e>>8&255,255&e);return o},T=r?function(t){return atob(_(t))}:o?function(t){return e.from(t,"base64").toString("binary")}:L,k=o?function(t){return l(e.from(t,"base64"))}:function(t){return l(T(t),(function(t){return t.charCodeAt(0)}))},R=function(t){return k(I(t))},C=o?function(t){return e.from(t,"base64").toString("utf8")}:i?function(t){return i.decode(k(t))}:function(t){return x(T(t))},I=function(t){return _(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},j=function(t){return C(I(t))},P=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},$=function(){var t=function(t,e){return Object.defineProperty(String.prototype,t,P(e))};t("fromBase64",(function(){return j(this)})),t("toBase64",(function(t){return E(this,t)})),t("toBase64URI",(function(){return E(this,!0)})),t("toBase64URL",(function(){return E(this,!0)})),t("toUint8Array",(function(){return R(this)}))},N=function(){var t=function(t,e){return Object.defineProperty(Uint8Array.prototype,t,P(e))};t("toBase64",(function(t){return y(this,t)})),t("toBase64URI",(function(){return y(this,!0)})),t("toBase64URL",(function(){return y(this,!0)}))},F={version:"3.7.2",VERSION:"3.7.2",atob:T,atobPolyfill:L,btoa:d,btoaPolyfill:h,fromBase64:j,toBase64:E,encode:E,encodeURI:S,encodeURL:S,utob:w,btou:x,decode:j,isValid:function(t){if("string"!=typeof t)return!1;var e=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},fromUint8Array:y,toUint8Array:R,extendString:$,extendUint8Array:N,extendBuiltins:function(){$(),N()},Base64:{}};return Object.keys(F).forEach((function(t){return F.Base64[t]=F[t]})),F}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},_$buffer_2({}).Buffer),_$base64_4=_$base64_4.exports;var _$preprocessors_40={};Object.defineProperty(_$preprocessors_40,"__esModule",{value:!0}),_$preprocessors_40.default=void 0;var keys,___default_40=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},(keys=["dm1lc3M","c3NyOi8v","dHJvamFu","c3M6Ly","c3NkOi8v","c2hhZG93","aHR0c"],{name:"Base64 Pre-processor",test:function(t){return keys.some((function(e){return-1!==t.indexOf(e)}))},parse:function(t){return _$base64_4.Base64.decode(t)}}),{name:"Clash Pre-processor",test:function(t){return/proxies/.test(t)},parse:function(t){return(0,_$staticJsYaml_36.safeLoad)(t).proxies.map((function(t){return JSON.stringify(t)})).join("\n")}},{name:"SSD Pre-processor",test:function(t){return 0===t.indexOf("ssd://")},parse:function(t){for(var e=[],r=JSON.parse(_$base64_4.Base64.decode(t.split("ssd://")[1])),n=r.port,o=r.encryption,i=r.password,a=r.servers,u=0;ut.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___unsupportedIterableToArray_39(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_39(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_39(t,e):void 0}}function ___arrayLikeToArray_39(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1){var c,s=___createForOfIteratorHelper_39(t);try{for(s.s();!(c=s.n()).done;){var f=___slicedToArray_39(c.value.split("="),2),l=f[0],p=f[1];u[l]=p.trim()}}catch(_){s.e(_)}finally{s.f()}}return ___objectSpread_39(___objectSpread_39({},a),{},{name:u.remarks?_$base64_4.Base64.decode(u.remarks):a.server,"protocol-param":_$base64_4.Base64.decode(u.protoparam||"").replace(/\s/g,""),"obfs-param":_$base64_4.Base64.decode(u.obfsparam||"").replace(/\s/g,"")})}}),{name:"URI VMess Parser",test:function(t){return/^vmess:\/\//.test(t)},parse:function(t){t=t.split("vmess://")[1];var e=_$base64_4.Base64.decode(t);if(/=\s*vmess/.test(e)){var r,n=e.split(",").map((function(t){return t.trim()})),o={},i=___createForOfIteratorHelper_39(n);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(-1!==a.indexOf("=")){var u=___slicedToArray_39(a.split("="),2),c=u[0],s=u[1];o[c.trim()]=s.trim()}}}catch(h){i.e(h)}finally{i.f()}var f={name:n[0].split("=")[0].trim(),type:"vmess",server:n[1],port:n[2],cipher:n[3],uuid:n[4].match(/^"(.*)"$/)[1],tls:"over-tls"===o.obfs||"wss"===o.obfs};if(void 0!==o["udp-relay"]&&(f.udp=JSON.parse(o["udp-relay"])),void 0!==o["fast-open"]&&(f.udp=JSON.parse(o["fast-open"])),"ws"===o.obfs||"wss"===o.obfs){f.network="ws",f["ws-opts"].path=(o["obfs-path"]||'"/"').match(/^"(.*)"$/)[1];var l=o["obfs-header"];l&&-1!==l.indexOf("Host")&&(l=l.match(/Host:\s*([a-zA-Z0-9-.]*)/)[1]),f["ws-opts"].headers={Host:l||f.server}}return f.tls&&"false"===o['"tls-verification"']&&(f["skip-cert-verify"]=!0),f.tls&&o["obfs-host"]&&(f.sni=o["obfs-host"]),f}var p=JSON.parse(e),_={name:p.ps,type:"vmess",server:p.add,port:p.port,cipher:"auto",uuid:p.id,alterId:p.aid||0,tls:"tls"===p.tls||!0===p.tls,supported:{}};return"ws"===p.net&&(_.network="ws",_["ws-opts"]={path:p.path,headers:{Host:p.host||p.add}},_.tls&&p.host&&(_.sni=p.host)),!1===p.verify_cert&&(_["skip-cert-verify"]=!0),_}},{name:"URI Trojan Parser",test:function(t){return/^trojan:\/\//.test(t)},parse:function(t){var e=___slicedToArray_39((t=t.split("trojan://")[1]).split("@")[1].split("?")[0].split(":"),2),r=e[0],n=e[1],o=decodeURIComponent(t.split("#")[1].trim()),i=t.split("?"),a=null;return i.length>1&&(i=i[1].split("#")[0].split("&"),a=new Map(i.map((function(t){return t.split("=")}))).get("sni")),{name:o||"[Trojan] ".concat(r),type:"trojan",server:r,port:n,password:t.split("@")[0],sni:a,supported:{}}}},{name:"Clash Parser",test:function(t){try{JSON.parse(t)}catch(e){return!1}return!0},parse:function(t){return JSON.parse(t)}},{name:"Surge SS Parser",test:function(t){return/^.*=\s*ss/.test(t.split(",")[0])},parse:function(t){var e=getSurgeParams(t),r={name:e.name,type:"ss",server:e.server,port:e.port,cipher:e["encrypt-method"],password:e.password,tfo:JSON.parse(e.tfo||"false"),udp:JSON.parse(e["udp-relay"]||"false")};return e.obfs&&(r.plugin="obfs",r["plugin-opts"]={mode:e.obfs,host:e["obfs-host"]}),r}},{name:"Surge VMess Parser",test:function(t){return/^.*=\s*vmess/.test(t.split(",")[0])&&-1!==t.indexOf("username")},parse:function(t){var e=getSurgeParams(t),r={name:e.name,type:"vmess",server:e.server,port:e.port,uuid:e.username,alterId:0,cipher:"none",tls:JSON.parse(e.tls||"false"),tfo:JSON.parse(e.tfo||"false")};if(r.tls&&(void 0!==e["skip-cert-verify"]&&(r["skip-cert-verify"]=!0===e["skip-cert-verify"]||"1"===e["skip-cert-verify"]),r.sni=e.sni||e.server),JSON.parse(e.ws||"false")){r.network="ws",r["ws-opts"]={path:e["ws-path"]};var n=e["ws-headers"].match(/(,|^|\s)*HOST:\s*(.*?)(,|$)/),o=n?n[2]:r.server;r["ws-opts"].headers={Host:o||e.server}}return r}},{name:"Surge Trojan Parser",test:function(t){return/^.*=\s*trojan/.test(t.split(",")[0])&&-1!==t.indexOf("sni")},parse:function(t){var e=getSurgeParams(t),r={name:e.name,type:"trojan",server:e.server,port:e.port,password:e.password,sni:e.sni||e.server,tfo:JSON.parse(e.tfo||"false")};return void 0!==e["skip-cert-verify"]&&(r["skip-cert-verify"]=!0===e["skip-cert-verify"]||"1"===e["skip-cert-verify"]),r}},{name:"Surge HTTP Parser",test:function(t){return/^.*=\s*https?/.test(t.split(",")[0])&&!Loon_Http().test(t)},parse:function(t){var e=getSurgeParams(t),r=/^.*?=\s?https/.test(t),n={name:e.name,type:"http",server:e.server,port:e.port,tls:JSON.parse(r||"false"),tfo:JSON.parse(e.tfo||"false")};return n.tls&&(void 0!==e["skip-cert-verify"]&&(n["skip-cert-verify"]=!0===e["skip-cert-verify"]||"1"===e["skip-cert-verify"]),n.sni=e.sni||e.server),e.username&&"none"!==e.username&&(n.username=e.username),e.password&&"none"!==e.password&&(n.password=e.password),n}},{name:"Loon SS Parser",test:function(t){return"shadowsocks"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){var e=t.split("=")[1].split(","),r={name:t.split("=")[0].trim(),type:"ss",server:e[1],port:e[2],cipher:e[3],password:e[4].replace(/"/g,"")};return e.length>5&&(r.plugin="obfs",r["plugin-opts"]={mode:e[5],host:e[6]}),r}},{name:"Loon SSR Parser",test:function(t){return"shadowsocksr"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){var e=t.split("=")[1].split(",");return{name:t.split("=")[0].trim(),type:"ssr",server:e[1],port:e[2],cipher:e[3],password:e[4].replace(/"/g,""),protocol:e[5],"protocol-param":e[6].match(/{(.*)}/)[1],supported:{Surge:!1},obfs:e[7],"obfs-param":e[8].match(/{(.*)}/)[1]}}},{name:"Loon VMess Parser",test:function(t){return/^.*=\s*vmess/i.test(t.split(",")[0])&&-1===t.indexOf("username")},parse:function(t){var e,r=t.split("=")[1].split(","),n={name:t.split("=")[0].trim(),type:"vmess",server:r[1],port:r[2],cipher:r[3]||"none",uuid:r[4].replace(/"/g,""),alterId:0},o=___createForOfIteratorHelper_39(r=r.splice(5));try{for(o.s();!(e=o.n()).done;){var i=___slicedToArray_39(e.value.split(":"),2),a=i[0],u=i[1];r[a]=u}}catch(c){o.e(c)}finally{o.f()}switch(n.tls=JSON.parse(r["over-tls"]||"false"),n.tls&&(n.sni=r["tls-name"]||n.server,n["skip-cert-verify"]=JSON.parse(r["skip-cert-verify"]||"false")),r.transport){case"tcp":break;case"ws":n.network=r.transport,n["ws-opts"]={path:r.path,headers:{Host:r.host}}}return n.tls&&(n["skip-cert-verify"]=JSON.parse(r["skip-cert-verify"]||"false")),n}},{name:"Loon Trojan Parser",test:function(t){return/^.*=\s*trojan/i.test(t.split(",")[0])&&-1===t.indexOf("password")},parse:function(t){var e=t.split("=")[1].split(","),r={name:t.split("=")[0].trim(),type:"trojan",server:e[1],port:e[2],password:e[3].replace(/"/g,""),sni:e[1],"skip-cert-verify":JSON.parse(e["skip-cert-verify"]||"false")};if(e.length>4){var n=___slicedToArray_39(e[4].split(":"),2),o=n[0],i=n[1];if("tls-name"!==o)throw new Error("Unknown option ".concat(o," for line: \n").concat(t));r.sni=i}return r}},Loon_Http(),{name:"QX SS Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1===t.indexOf("ssr-protocol")},parse:function(t){var e=getQXParams(t),r={name:e.tag,type:"ss",server:e.server,port:e.port,cipher:e.method,password:e.password,udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false"),supported:{}};if(e.obfs)switch(r["plugin-opts"]={host:e["obfs-host"]||r.server},e.obfs){case"http":case"tls":r.plugin="obfs",r["plugin-opts"].mode=e.obfs;break;case"ws":case"wss":r["plugin-opts"]=___objectSpread_39(___objectSpread_39({},r["plugin-opts"]),{},{mode:"websocket",path:e["obfs-uri"]||"/",tls:"wss"===e.obfs}),r["plugin-opts"].tls&&void 0!==e["tls-verification"]&&(r["plugin-opts"]["skip-cert-verify"]=e["tls-verification"]),r.plugin="v2ray-plugin",r.supported.Surge=!1,r.supported.Loon=!1}return r}},{name:"QX SSR Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1!==t.indexOf("ssr-protocol")},parse:function(t){var e=getQXParams(t),r={name:e.tag,type:"ssr",server:e.server,port:e.port,cipher:e.method,password:e.password,protocol:e["ssr-protocol"],obfs:"plain","protocol-param":e["ssr-protocol-param"],udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false"),supported:{Surge:!1}};return e.obfs&&(r.obfs=e.obfs,r["obfs-param"]=e["obfs-host"]),r}},{name:"QX VMess Parser",test:function(t){return/^vmess\s*=/.test(t.split(",")[0].trim())},parse:function(t){var e=getQXParams(t),r={type:"vmess",name:e.tag,server:e.server,port:e.port,cipher:e.method||"none",uuid:e.password,alterId:0,tls:"over-tls"===e.obfs||"wss"===e.obfs,udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false")};return r.tls&&(r.sni=e["obfs-host"]||e.server,r["skip-cert-verify"]=!JSON.parse(e["tls-verification"]||"true")),"ws"!==e.obfs&&"wss"!==e.obfs||(r.network="ws",r["ws-opts"]={path:e["obfs-uri"],headers:{Host:e["obfs-host"]||e.server}}),r}},{name:"QX Trojan Parser",test:function(t){return/^trojan\s*=/.test(t.split(",")[0].trim())},parse:function(t){var e=getQXParams(t),r={type:"trojan",name:e.tag,server:e.server,port:e.port,password:e.password,sni:e["tls-host"]||e.server,udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false")};return r["skip-cert-verify"]=!JSON.parse(e["tls-verification"]||"true"),r}},{name:"QX HTTP Parser",test:function(t){return/^http\s*=/.test(t.split(",")[0].trim())},parse:function(t){var e=getQXParams(t),r={type:"http",name:e.tag,server:e.server,port:e.port,tls:JSON.parse(e["over-tls"]||"false"),udp:JSON.parse(e["udp-relay"]||"false"),tfo:JSON.parse(e["fast-open"]||"false")};return e.username&&"none"!==e.username&&(r.username=e.username),e.password&&"none"!==e.password&&(r.password=e.password),r.tls&&(r.sni=e["tls-host"]||r.server,r["skip-cert-verify"]=!JSON.parse(e["tls-verification"]||"true")),r}}];_$parsers_39.default=___default_39;var _$proxyUtils_38={};function ___typeof_38(t){return(___typeof_38="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$proxyUtils_38,"__esModule",{value:!0}),_$proxyUtils_38.ProxyUtils=void 0;var ___download_38=___interopRequireDefault_38(_$download_54),_processors=function(t,e){if(t&&t.__esModule)return t;if(null===t||"object"!==___typeof_38(t)&&"function"!=typeof t)return{default:t};var r=_getRequireWildcardCache(void 0);if(r&&r.has(t))return r.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if("default"!==i&&Object.prototype.hasOwnProperty.call(t,i)){var a=o?Object.getOwnPropertyDescriptor(t,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=t[i]}return n.default=t,r&&r.set(t,n),n}(_$processors_41),_preprocessors=___interopRequireDefault_38(_$preprocessors_40),_producers=___interopRequireDefault_38(_$producers_42),_parsers=___interopRequireDefault_38(_$parsers_39),___app_38=___interopRequireDefault_38(_$app_37);function _getRequireWildcardCache(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(t){return t?r:e})(t)}function ___interopRequireDefault_38(t){return t&&t.__esModule?t:{default:t}}function ___regeneratorRuntime_38(){___regeneratorRuntime_38=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",i=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(x){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof l?e:l,i=Object.create(o.prototype),a=new S(n||[]);return i._invoke=function(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var u=w(a,r);if(u){if(u===f)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,a),i}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(x){return{type:"throw",arg:x}}}t.wrap=c;var f={};function l(){}function p(){}function _(){}var h={};u(h,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(A([])));v&&v!==e&&r.call(v,o)&&(h=v);var y=_.prototype=l.prototype=Object.create(h);function g(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function m(t,e){var n;this._invoke=function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==___typeof_38(l)&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,u)}),(function(t){n("throw",t,a,u)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,u)}))}u(c.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return f;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,f;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function A(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __asyncGeneratorStep_38(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}function ___createForOfIteratorHelper_38(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_38(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_38(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___arrayLikeToArray_38(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==w[1]?w[1]:[],n=w.length>2?w[2]:void 0,o=___createForOfIteratorHelper_38(r),t.prev=3,o.s();case 5:if((i=o.n()).done){t.next=40;break}if(a=i.value,u=void 0,c={},-1===a.type.indexOf("Script")){t.next=29;break}if(s=a.args,f=s.mode,l=s.content,"link"!==f){t.next=28;break}if((_=(p=l).split("#")).length>1){h=___createForOfIteratorHelper_38(_[1].split("&"));try{for(h.s();!(d=h.n()).done;)v=d.value,y=v.split("=")[0],g=v.split("=")[1]||!0,c[y]=g}catch(b){h.e(b)}finally{h.f()}}return t.prev=15,t.next=18,(0,___download_38.default)(p.split("#")[0]);case 18:u=t.sent,___app_38.default.info("Script loaded: >>>\n ".concat(u)),t.next=26;break;case 22:return t.prev=22,t.t0=t.catch(15),___app_38.default.error("Error when downloading remote script: ".concat(a.args.content,".\n Reason: ").concat(t.t0)),t.abrupt("continue",38);case 26:t.next=29;break;case 28:u=l;case 29:if(_processors.default[a.type]){t.next=32;break}return ___app_38.default.error('Unknown operator: "'.concat(a.type,'"')),t.abrupt("continue",38);case 32:return ___app_38.default.info('Applying "'.concat(a.type,'" with arguments:\n >>> ').concat(JSON.stringify(a.args,null,2)||"None")),m=void 0,m=-1!==a.type.indexOf("Script")?_processors.default[a.type](u,n,c):_processors.default[a.type](a.args),t.next=37,(0,_processors.ApplyProcessor)(m,e);case 37:e=t.sent;case 38:t.next=5;break;case 40:t.next=45;break;case 42:t.prev=42,t.t1=t.catch(3),o.e(t.t1);case 45:return t.prev=45,o.f(),t.finish(45);case 48:return t.abrupt("return",e);case 49:case"end":return t.stop()}}),t,null,[[3,42,45,48],[15,22]])})),(_process=function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_38(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_38(i,n,o,a,u,"throw",t)}a(void 0)}))}).apply(this,arguments)}var ProxyUtils={parse:function(t){t=function(t){var e,r=___createForOfIteratorHelper_38(_preprocessors.default);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{if(n.test(t))return ___app_38.default.info("Pre-processor [".concat(n.name,"] activated")),n.parse(t)}catch(o){___app_38.default.error("Parser [".concat(n.name,"] failed\n Reason: ").concat(o))}}}catch(i){r.e(i)}finally{r.f()}return t}(t);var e,r,n=[],o=___createForOfIteratorHelper_38(t.split("\n"));try{for(o.s();!(r=o.n()).done;){var i=r.value;if(0!==(i=i.trim()).length){var a=e&&safeMatch(e,i);if(!a){var u,c=___createForOfIteratorHelper_38(_parsers.default);try{for(c.s();!(u=c.n()).done;){var s=u.value;if(safeMatch(s,i)){e=s,a=!0,___app_38.default.info("Proxy parser: ".concat(s.name," is activated"));break}}}catch(l){c.e(l)}finally{c.f()}}if(a)try{var f=e.parse(i);f||___app_38.default.error("Parser ".concat(e.name," return nothing for \n").concat(i,"\n")),n.push(f)}catch(l){___app_38.default.error("Failed to parse line: \n ".concat(i,"\n Reason: ").concat(l.stack))}else ___app_38.default.error("Failed to find a rule to parse line: \n".concat(i,"\n"))}}}catch(l){o.e(l)}finally{o.f()}return n},process:function(t){return _process.apply(this,arguments)},produce:function(t,e){var r=_producers.default[e];if(!r)throw new Error("Target platform: ".concat(e," is not supported!"));return t=t.filter((function(t){return!(t.supported&&!1===t.supported[e])})),___app_38.default.info("Producing proxies for target: ".concat(e)),void 0===r.type||"SINGLE"===r.type?t.map((function(t){try{return r.produce(t)}catch(e){return ___app_38.default.error("Cannot produce proxy: ".concat(JSON.stringify(t,null,2),"\nReason: ").concat(e)),""}})).filter((function(t){return t.length>0})).join("\n"):"ALL"===r.type?r.produce(t):void 0}};function safeMatch(t,e){var r;try{r=t.test(e)}catch(n){r=!1}return r}_$proxyUtils_38.ProxyUtils=ProxyUtils;var _$preprocessors_45={};Object.defineProperty(_$preprocessors_45,"__esModule",{value:!0}),_$preprocessors_45.default=void 0;var ___default_45=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},{name:"Clash Provider",test:function(t){return 0===t.indexOf("payload:")},parse:function(t){return t.replace("payload:","").replace(/^\s*-\s*/gm,"")}}];_$preprocessors_45.default=___default_45;var _$producers_46={};Object.defineProperty(_$producers_46,"__esModule",{value:!0}),_$producers_46.default=void 0;var obj,___staticJsYaml_46=(obj=_$staticJsYaml_36)&&obj.__esModule?obj:{default:obj},___default_46={QX:{type:"SINGLE",func:function(t){return-1!==["URL-REGEX","DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:"".concat({"DOMAIN-KEYWORD":"HOST-KEYWORD","DOMAIN-SUFFIX":"HOST-SUFFIX",DOMAIN:"HOST","IP-CIDR6":"IP6-CIDR"}[t.type]||t.type,",").concat(t.content,",SUB-STORE")}},Surge:{type:"SINGLE",func:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}},Loon:{type:"SINGLE",func:function(t){return-1!==["DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}(t)}},Clash:{type:"ALL",func:function(t){var e={"DEST-PORT":"DST-PORT","SRC-IP":"SRC-IP-CIDR","IN-PORT":"SRC-PORT"},r={payload:t.map((function(t){var r="".concat(e[t.type]||t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(r+=t.options?",".concat(t.options[0]):""),r}))};return ___staticJsYaml_46.default.dump(r)}}};_$producers_46.default=___default_46;var _$parsers_44={};function ___createForOfIteratorHelper_44(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_44(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_44(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___arrayLikeToArray_44(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___arrayLikeToArray_43(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0})).join("\n"):"ALL"===r.type?r.func(t):void 0}};_$ruleUtils_43.RuleUtils=RuleUtils;var _$artifacts_48={};function ___typeof_48(t){return(___typeof_48="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$artifacts_48,"__esModule",{value:!0}),_$artifacts_48.default=function(t){___app_48.default.read(_$constants_50.ARTIFACTS_KEY)||___app_48.default.write({},_$constants_50.ARTIFACTS_KEY),t.route("/api/artifacts").get(getAllArtifacts).post(createArtifact),t.route("/api/artifact/:name").get(getArtifact).patch(updateArtifact).delete(deleteArtifact),t.get("/api/cron/sync-artifacts",cronSyncArtifacts)},_$artifacts_48.produceArtifact=produceArtifact;var ___download_48=___interopRequireDefault_48(_$download_54),_gist=___interopRequireDefault_48(_$gist_56),___app_48=___interopRequireDefault_48(_$app_37);function ___interopRequireDefault_48(t){return t&&t.__esModule?t:{default:t}}function ___createForOfIteratorHelper_48(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_48(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_48(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function ___arrayLikeToArray_48(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __ownKeys_48(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_48(t){for(var e=1;e>>")),console.log(JSON.stringify(a,null,2)),t.prev=26,t.next=29,syncArtifact(___defineProperty_48({},encodeURIComponent(a.name),{content:c}));case 29:s=t.sent,a.updated=(new Date).getTime(),f=JSON.parse(s.body),a.url=f.files[encodeURIComponent(a.name)].raw_url.replace(/\/raw\/[^/]*\/(.*)/,"/raw/$1"),___app_48.default.write(i,_$constants_50.ARTIFACTS_KEY),r.json({status:"success"}),t.next=40;break;case 37:t.prev=37,t.t1=t.catch(26),r.status(500).json({status:"failed",message:t.t1});case 40:t.next=43;break;case 42:r.json({status:"success",data:a});case 43:t.next=46;break;case 45:r.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u914d\u7f6e\uff01"});case 46:case"end":return t.stop()}}),t,null,[[26,37]])})))).apply(this,arguments)}function createArtifact(t,e){var r=t.body;___app_48.default.info("\u6b63\u5728\u521b\u5efa\u8fdc\u7a0b\u914d\u7f6e\uff1a".concat(r.name));var n=___app_48.default.read(_$constants_50.ARTIFACTS_KEY);n[r.name]?e.status(500).json({status:"failed",message:"\u8fdc\u7a0b\u914d\u7f6e".concat(r.name,"\u5df2\u5b58\u5728\uff01")}):(n[r.name]=r,___app_48.default.write(n,_$constants_50.ARTIFACTS_KEY),e.status(201).json({status:"success",data:r}))}function updateArtifact(t,e){var r=___app_48.default.read(_$constants_50.ARTIFACTS_KEY),n=t.params.name,o=r[n=decodeURIComponent(n)];if(o){___app_48.default.info("\u6b63\u5728\u66f4\u65b0\u8fdc\u7a0b\u914d\u7f6e\uff1a".concat(o.name));var i=t.body;if(void 0===i.name||/^[\w-_.]*$/.test(i.name)){var a=___objectSpread_48(___objectSpread_48({},o),i);r[a.name]=a,a.name!==n&&delete r[n],___app_48.default.write(r,_$constants_50.ARTIFACTS_KEY),e.json({status:"success",data:a})}else e.status(500).json({status:"failed",message:"\u8fdc\u7a0b\u914d\u7f6e\u540d\u79f0 ".concat(i.name," \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002")})}else e.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u8fdc\u7a0b\u914d\u7f6e\uff01"})}function cronSyncArtifacts(t,e){return _cronSyncArtifacts.apply(this,arguments)}function _cronSyncArtifacts(){return(_cronSyncArtifacts=___asyncToGenerator_48(___regeneratorRuntime_48().mark((function t(e,r){var n,o,i,a,u,c,s;return ___regeneratorRuntime_48().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return ___app_48.default.info("\u5f00\u59cb\u540c\u6b65\u6240\u6709\u8fdc\u7a0b\u914d\u7f6e..."),n=___app_48.default.read(_$constants_50.ARTIFACTS_KEY),o={},t.prev=3,t.next=6,Promise.all(Object.values(n).map(function(){var t=___asyncToGenerator_48(___regeneratorRuntime_48().mark((function t(e){var r,n;return ___regeneratorRuntime_48().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.sync){t.next=15;break}___app_48.default.info("\u6b63\u5728\u540c\u6b65\u4e91\u914d\u7f6e\uff1a".concat(e.name,"...")),t.t0=e.type,t.next="subscription"===t.t0?5:"collection"===t.t0?7:"rule"===t.t0?9:11;break;case 5:return r=___app_48.default.read(_$constants_50.SUBS_KEY)[e.source],t.abrupt("break",11);case 7:return r=___app_48.default.read(_$constants_50.COLLECTIONS_KEY)[e.source],t.abrupt("break",11);case 9:return r=___app_48.default.read(_$constants_50.RULES_KEY)[e.source],t.abrupt("break",11);case 11:return t.next=13,produceArtifact({type:e.type,item:r,platform:e.platform});case 13:n=t.sent,o[e.name]={content:n};case 15:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 6:return t.next=8,syncArtifact(o);case 8:for(i=t.sent,a=JSON.parse(i.body),u=0,c=Object.values(n);u=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __ownKeys_53(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_53(t){for(var e=1;e=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __ownKeys_49(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_49(t){for(var e=1;e0)){t.next=16;break}if("local"===(l=s[f[0]]).source){t.next=16;break}return t.next=14,(0,_$subscriptions_53.getFlowHeaders)(l.url);case 14:(p=t.sent)&&r.set("subscription-userinfo",p);case 16:if(!c){t.next=30;break}return t.prev=17,t.next=20,(0,_$artifacts_48.produceArtifact)({type:"collection",item:c,platform:a,noProcessor:i});case 20:_=t.sent,"JSON"===a?r.set("Content-Type","application/json;charset=utf-8").send(_):r.send(_),t.next=28;break;case 24:t.prev=24,t.t0=t.catch(17),___app_49.default.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25","\u274c \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u9519\u8bef\uff1a".concat(n,"\uff01"),"\ud83e\udd14 \u539f\u56e0\uff1a".concat(t.t0)),r.status(500).json({status:"failed",message:t.t0});case 28:t.next=32;break;case 30:___app_49.default.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25","\u274c \u672a\u627e\u5230\u7ec4\u5408\u8ba2\u9605\uff1a".concat(n,"\uff01")),r.status(404).json({status:"failed"});case 32:case"end":return t.stop()}}),t,null,[[17,24]])})),(_downloadCollection=function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_49(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_49(i,n,o,a,u,"throw",t)}a(void 0)}))}).apply(this,arguments)}function createCollection(t,e){var r=t.body;___app_49.default.info("\u6b63\u5728\u521b\u5efa\u7ec4\u5408\u8ba2\u9605\uff1a".concat(r.name));var n=___app_49.default.read(_$constants_50.COLLECTIONS_KEY);n[r.name]&&e.status(500).json({status:"failed",message:"\u8ba2\u9605\u96c6".concat(r.name,"\u5df2\u5b58\u5728\uff01")}),n[r.name]=r,___app_49.default.write(n,_$constants_50.COLLECTIONS_KEY),e.status(201).json({status:"success",data:r})}function getCollection(t,e){var r=t.params.name;r=decodeURIComponent(r);var n=___app_49.default.read(_$constants_50.COLLECTIONS_KEY)[r];n?e.json({status:"success",data:n}):e.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u8ba2\u9605\u96c6\uff1a".concat(r,"!")})}function updateCollection(t,e){var r=t.params.name;r=decodeURIComponent(r);var n=t.body,o=___app_49.default.read(_$constants_50.COLLECTIONS_KEY);if(o[r]){var i=___objectSpread_49(___objectSpread_49({},o[r]),n);___app_49.default.info("\u6b63\u5728\u66f4\u65b0\u7ec4\u5408\u8ba2\u9605\uff1a".concat(r,"...")),delete o[r],o[n.name||r]=i,___app_49.default.write(o,_$constants_50.COLLECTIONS_KEY),e.json({status:"success",data:i})}else e.status(500).json({status:"failed",message:"\u8ba2\u9605\u96c6".concat(r,"\u4e0d\u5b58\u5728\uff0c\u65e0\u6cd5\u66f4\u65b0\uff01")})}function deleteCollection(t,e){var r=t.params.name;r=decodeURIComponent(r),___app_49.default.info("\u6b63\u5728\u5220\u9664\u7ec4\u5408\u8ba2\u9605\uff1a".concat(r));var n=___app_49.default.read(_$constants_50.COLLECTIONS_KEY);delete n[r],___app_49.default.write(n,_$constants_50.COLLECTIONS_KEY),e.json({status:"success"})}function getAllCollections(t,e){var r=___app_49.default.read(_$constants_50.COLLECTIONS_KEY);e.json({status:"success",data:r})}var _$settings_52={};Object.defineProperty(_$settings_52,"__esModule",{value:!0}),_$settings_52.default=function(t){___app_52.default.read(_$constants_50.SETTINGS_KEY)||___app_52.default.write({},_$constants_50.SETTINGS_KEY),t.route("/api/settings").get(getSettings).patch(updateSettings)};var __obj_52,___app_52=(__obj_52=_$app_37)&&__obj_52.__esModule?__obj_52:{default:__obj_52};function __ownKeys_52(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_52(t){for(var e=1;e=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:A(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}function __asyncGeneratorStep_51(t,e,r,n,o,i,a){try{var u=t[i](a),c=u.value}catch(s){return void r(s)}u.done?e(c):Promise.resolve(c).then(n,o)}function ___asyncToGenerator_51(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function a(t){__asyncGeneratorStep_51(i,n,o,a,u,"next",t)}function u(t){__asyncGeneratorStep_51(i,n,o,a,u,"throw",t)}a(void 0)}))}}function getEnv(t,e){var r=(0,_$openApi_60.ENV)(),n="Node";r.isNode&&(n="Node"),r.isQX&&(n="QX"),r.isLoon&&(n="Loon"),r.isSurge&&(n="Surge"),e.json({backend:n})}function gistBackup(t,e){return _gistBackup.apply(this,arguments)}function _gistBackup(){return(_gistBackup=___asyncToGenerator_51(___regeneratorRuntime_51().mark((function t(e,r){var n,o,i,a,u,c,s;return ___regeneratorRuntime_51().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.query.action,o=___app_51.default.read(_$constants_50.SETTINGS_KEY),i=o.gistToken){t.next=6;break}r.status(500).json({status:"failed",message:"\u672a\u627e\u5230Gist\u5907\u4efdToken!"}),t.next=35;break;case 6:a=new ___gist_51.default({token:i,key:_$constants_50.GIST_BACKUP_KEY}),t.prev=7,c=___app_51.default.read(_$constants_50.SETTINGS_KEY),t.t0=n,t.next="upload"===t.t0?12:"download"===t.t0?20:27;break;case 12:return c.syncTime=(new Date).getTime(),___app_51.default.write(c,_$constants_50.SETTINGS_KEY),u=___app_51.default.read("#sub-store"),___app_51.default.env.isNode&&(u=JSON.stringify(___app_51.default.cache,null," ")),___app_51.default.info("\u4e0a\u4f20\u5907\u4efd\u4e2d..."),t.next=19,a.upload((f={},l=_$constants_50.GIST_BACKUP_FILE_NAME,p={content:u},l in f?Object.defineProperty(f,l,{value:p,enumerable:!0,configurable:!0,writable:!0}):f[l]=p,f));case 19:return t.abrupt("break",27);case 20:return ___app_51.default.info("\u8fd8\u539f\u5907\u4efd\u4e2d..."),t.next=23,a.download(_$constants_50.GIST_BACKUP_FILE_NAME);case 23:return u=t.sent,___app_51.default.write(u,"#sub-store"),___app_51.default.env.isNode&&(u=JSON.parse(u),Object.keys(u).forEach((function(t){___app_51.default.write(u[t],t)}))),t.abrupt("break",27);case 27:r.json({status:"success"}),t.next=35;break;case 30:t.prev=30,t.t1=t.catch(7),s="".concat("upload"===n?"\u4e0a\u4f20":"\u4e0b\u8f7d","\u5907\u4efd\u5931\u8d25\uff01").concat(t.t1),___app_51.default.error(s),r.status(500).json({status:"failed",message:s});case 35:case"end":return t.stop()}var f,l,p}),t,null,[[7,30]])})))).apply(this,arguments)}function IP_API(t,e){return _IP_API.apply(this,arguments)}function _IP_API(){return(_IP_API=___asyncToGenerator_51(___regeneratorRuntime_51().mark((function t(e,r){var n,o,i;return ___regeneratorRuntime_51().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=decodeURIComponent(e.params.server),o=(0,_$openApi_60.HTTP)(),t.next=4,o.get("http://ip-api.com/json/".concat(n,"?lang=zh-CN")).then((function(t){return JSON.parse(t.body)}));case 4:i=t.sent,r.json(i);case 6:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var _$main_47={},__obj_47,_restful=(__obj_47=_$restful_51)&&__obj_47.__esModule?__obj_47:{default:__obj_47};console.log("\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \xa9 \ud835\udc77\ud835\udc86\ud835\udc8f\ud835\udc88-\ud835\udc80\ud835\udc74\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n"),(0,_restful.default)()}(); \ No newline at end of file +!function(){var createModuleFactory=function(t){var e;return function(r){return e||t(e={exports:{},parent:r},e.exports),e.exports}},_$buffer_2=createModuleFactory((function(t,e){(function(t){(function(){"use strict";e.Buffer=r,e.SlowBuffer=function(t){return+t!=t&&(t=0),r.alloc(+t)},e.INSPECT_MAX_BYTES=50;function t(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=r.prototype,e}function r(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return a(t)}return n(t,e,r)}function n(e,n,o){if("string"==typeof e)return function(e,n){if("string"==typeof n&&""!==n||(n="utf8"),!r.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var o=0|s(e,n),a=t(o),u=a.write(e,n);return u!==o&&(a=a.slice(0,u)),a}(e,n);if(ArrayBuffer.isView(e))return u(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(j(e,ArrayBuffer)||e&&j(e.buffer,ArrayBuffer))return function(t,e,n){if(e<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function s(t,e){if(r.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||j(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var n=t.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===n)return 0;for(var a=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return P(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return T(t).length;default:if(a)return o?-1:P(t).length;e=(""+e).toLowerCase(),a=!0}}function c(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function l(t,e,n,o,a){if(0===t.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),k(n=+n)&&(n=a?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(a)return-1;n=t.length-1}else if(n<0){if(!a)return-1;n=0}if("string"==typeof e&&(e=r.from(e,o)),r.isBuffer(e))return 0===e.length?-1:p(t,e,n,o,a);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):p(t,[e],n,o,a);throw new TypeError("val must be string, number or Buffer")}function p(t,e,r,n,o){var a,u=1,i=t.length,s=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;u=2,i/=2,s/=2,r/=2}function c(t,e){return 1===u?t[e]:t.readUInt16BE(e*u)}if(o){var l=-1;for(a=r;ai&&(r=i-s),a=r;a>=0;a--){for(var p=!0,f=0;fo&&(n=o):n=o;var a=e.length;n>a/2&&(n=a/2);for(var u=0;u>8,o=r%256,a.push(o),a.push(n);return a}(e,t.length-r),t,r,n)}function g(t,e,r){return 0===e&&r===t.length?_$base64Js_1.fromByteArray(t):_$base64Js_1.fromByteArray(t.slice(e,r))}function m(t,e,r){r=Math.min(t.length,r);for(var n=[],o=e;o239?4:c>223?3:c>191?2:1;if(o+p<=r)switch(p){case 1:c<128&&(l=c);break;case 2:128==(192&(a=t[o+1]))&&(s=(31&c)<<6|63&a)>127&&(l=s);break;case 3:a=t[o+1],u=t[o+2],128==(192&a)&&128==(192&u)&&(s=(15&c)<<12|(63&a)<<6|63&u)>2047&&(s<55296||s>57343)&&(l=s);break;case 4:a=t[o+1],u=t[o+2],i=t[o+3],128==(192&a)&&128==(192&u)&&128==(192&i)&&(s=(15&c)<<18|(63&a)<<12|(63&u)<<6|63&i)>65535&&s<1114112&&(l=s)}null===l?(l=65533,p=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),o+=p}return function(t){var e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);for(var r="",n=0;nthis.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return w(this,e,r);case"utf8":case"utf-8":return m(this,e,r);case"ascii":return b(this,e,r);case"latin1":case"binary":return E(this,e,r);case"base64":return g(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}.apply(this,arguments)},r.prototype.toLocaleString=r.prototype.toString,r.prototype.equals=function(t){if(!r.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===r.compare(this,t)},r.prototype.inspect=function(){var t="",r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),""},r.prototype.compare=function(t,e,n,o,a){if(j(t,Uint8Array)&&(t=r.from(t,t.offset,t.byteLength)),!r.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===o&&(o=0),void 0===a&&(a=this.length),e<0||n>t.length||o<0||a>this.length)throw new RangeError("out of range index");if(o>=a&&e>=n)return 0;if(o>=a)return-1;if(e>=n)return 1;if(this===t)return 0;for(var u=(a>>>=0)-(o>>>=0),i=(n>>>=0)-(e>>>=0),s=Math.min(u,i),c=this.slice(o,a),l=t.slice(e,n),p=0;p>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-e;if((void 0===r||r>o)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return f(this,t,e,r);case"utf8":case"utf-8":return _(this,t,e,r);case"ascii":return h(this,t,e,r);case"latin1":case"binary":return d(this,t,e,r);case"base64":return y(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function b(t,e,r){var n="";r=Math.min(t.length,r);for(var o=e;oo)&&(r=o);for(var a="",u=e;ur)throw new RangeError("Trying to access beyond buffer length")}function S(t,e,n,o,a,u){if(!r.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>a||et.length)throw new RangeError("Index out of range")}function O(t,e,r,n,o,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function $(t,e,r,n,o){return e=+e,r>>>=0,o||O(t,0,r,4),_$ieee754_3.write(t,e,r,n,23,4),r+4}function F(t,e,r,n,o){return e=+e,r>>>=0,o||O(t,0,r,8),_$ieee754_3.write(t,e,r,n,52,8),r+8}r.prototype.slice=function(t,e){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e>>=0,e>>>=0,r||x(t,e,this.length);for(var n=this[t],o=1,a=0;++a>>=0,e>>>=0,r||x(t,e,this.length);for(var n=this[t+--e],o=1;e>0&&(o*=256);)n+=this[t+--e]*o;return n},r.prototype.readUInt8=function(t,e){return t>>>=0,e||x(t,1,this.length),this[t]},r.prototype.readUInt16LE=function(t,e){return t>>>=0,e||x(t,2,this.length),this[t]|this[t+1]<<8},r.prototype.readUInt16BE=function(t,e){return t>>>=0,e||x(t,2,this.length),this[t]<<8|this[t+1]},r.prototype.readUInt32LE=function(t,e){return t>>>=0,e||x(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},r.prototype.readUInt32BE=function(t,e){return t>>>=0,e||x(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},r.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||x(t,e,this.length);for(var n=this[t],o=1,a=0;++a=(o*=128)&&(n-=Math.pow(2,8*e)),n},r.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||x(t,e,this.length);for(var n=e,o=1,a=this[t+--n];n>0&&(o*=256);)a+=this[t+--n]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*e)),a},r.prototype.readInt8=function(t,e){return t>>>=0,e||x(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},r.prototype.readInt16LE=function(t,e){t>>>=0,e||x(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt16BE=function(t,e){t>>>=0,e||x(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},r.prototype.readInt32LE=function(t,e){return t>>>=0,e||x(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},r.prototype.readInt32BE=function(t,e){return t>>>=0,e||x(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},r.prototype.readFloatLE=function(t,e){return t>>>=0,e||x(t,4,this.length),_$ieee754_3.read(this,t,!0,23,4)},r.prototype.readFloatBE=function(t,e){return t>>>=0,e||x(t,4,this.length),_$ieee754_3.read(this,t,!1,23,4)},r.prototype.readDoubleLE=function(t,e){return t>>>=0,e||x(t,8,this.length),_$ieee754_3.read(this,t,!0,52,8)},r.prototype.readDoubleBE=function(t,e){return t>>>=0,e||x(t,8,this.length),_$ieee754_3.read(this,t,!1,52,8)},r.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||S(this,t,e,r,Math.pow(2,8*r)-1,0);var o=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n||S(this,t,e,r,Math.pow(2,8*r)-1,0);var o=r-1,a=1;for(this[e+o]=255&t;--o>=0&&(a*=256);)this[e+o]=t/a&255;return e+r},r.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,1,255,0),this[e]=255&t,e+1},r.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},r.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);S(this,t,e,r,o-1,-o)}var a=0,u=1,i=0;for(this[e]=255&t;++a>0)-i&255;return e+r},r.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var o=Math.pow(2,8*r-1);S(this,t,e,r,o-1,-o)}var a=r-1,u=1,i=0;for(this[e+a]=255&t;--a>=0&&(u*=256);)t<0&&0===i&&0!==this[e+a+1]&&(i=1),this[e+a]=(t/u>>0)-i&255;return e+r},r.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},r.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},r.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},r.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},r.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},r.prototype.writeFloatLE=function(t,e,r){return $(this,t,e,!0,r)},r.prototype.writeFloatBE=function(t,e,r){return $(this,t,e,!1,r)},r.prototype.writeDoubleLE=function(t,e,r){return F(this,t,e,!0,r)},r.prototype.writeDoubleBE=function(t,e,r){return F(this,t,e,!1,r)},r.prototype.copy=function(t,e,n,o){if(!r.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),o||0===o||(o=this.length),e>=t.length&&(e=t.length),e||(e=0),o>0&&o=this.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),t.length-e=0;--u)t[u+e]=this[u+n];else Uint8Array.prototype.set.call(t,this.subarray(n,o),e);return a},r.prototype.fill=function(t,e,n,o){if("string"==typeof t){if("string"==typeof e?(o=e,e=0,n=this.length):"string"==typeof n&&(o=n,n=this.length),void 0!==o&&"string"!=typeof o)throw new TypeError("encoding must be a string");if("string"==typeof o&&!r.isEncoding(o))throw new TypeError("Unknown encoding: "+o);if(1===t.length){var a=t.charCodeAt(0);("utf8"===o&&a<128||"latin1"===o)&&(t=a)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(u=e;u55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(u+1===n){(e-=3)>-1&&a.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(e-=3)>-1&&a.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function T(t){return _$base64Js_1.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(L,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function R(t,e,r,n){for(var o=0;o=e.length||o>=t.length);++o)e[o+r]=t[o];return o}function j(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function k(t){return t!=t}}).call(this)}).call(this,_$buffer_2({}).Buffer)})),_$constants_82={};Object.defineProperty(_$constants_82,"__esModule",{value:!0}),_$constants_82.SUBS_KEY=_$constants_82.SETTINGS_KEY=_$constants_82.RULES_KEY=_$constants_82.GIST_BACKUP_KEY=_$constants_82.GIST_BACKUP_FILE_NAME=_$constants_82.COLLECTIONS_KEY=_$constants_82.ARTIFACT_REPOSITORY_KEY=_$constants_82.ARTIFACTS_KEY=void 0,_$constants_82.SETTINGS_KEY="settings",_$constants_82.SUBS_KEY="subs",_$constants_82.COLLECTIONS_KEY="collections",_$constants_82.ARTIFACTS_KEY="artifacts",_$constants_82.RULES_KEY="rules",_$constants_82.GIST_BACKUP_KEY="Auto Generated Sub-Store Backup",_$constants_82.GIST_BACKUP_FILE_NAME="Sub-Store",_$constants_82.ARTIFACT_REPOSITORY_KEY="Sub-Store Artifacts Repository";var _$openApi_92={};function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ownKeys(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function asyncGeneratorStep(t,e,r,n,o,a,u){try{var i=t[a](u),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}function _asyncToGenerator(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function u(t){asyncGeneratorStep(a,n,o,u,i,"next",t)}function i(t){asyncGeneratorStep(a,n,o,u,i,"throw",t)}u(void 0)}))}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:"untitled",debug=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_classCallCheck(this,OpenAPI),this.name=name,this.debug=debug,this.http=HTTP(),this.env=ENV(),this.node=function(){if(isNode){var fs=eval("require('fs')");return{fs:fs}}return null}(),this.initCache();var delay=function(t,e){return new Promise((function(r){setTimeout(r.bind(null,e),t)}))},_ref;Promise.prototype.delay=(_ref=_asyncToGenerator(_regeneratorRuntime().mark((function t(e){var r;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this;case 2:return r=t.sent,t.next=5,delay(e,r);case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t,this)}))),function(t){return _ref.apply(this,arguments)})}return _createClass(OpenAPI,[{key:"initCache",value:function(){if(isQX&&(this.cache=JSON.parse($prefs.valueForKey(this.name)||"{}")),(isLoon||isSurge)&&(this.cache=JSON.parse($persistentStore.read(this.name)||"{}")),isNode){var t="root.json";this.node.fs.existsSync(t)||this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.root={},t="".concat(this.name,".json"),this.node.fs.existsSync(t)?this.cache=JSON.parse(this.node.fs.readFileSync("".concat(this.name,".json"))):(this.node.fs.writeFileSync(t,JSON.stringify({}),{flag:"wx"},(function(t){return console.log(t)})),this.cache={})}}},{key:"persistCache",value:function(){var t=JSON.stringify(this.cache,null,2);isQX&&$prefs.setValueForKey(t,this.name),(isLoon||isSurge)&&$persistentStore.write(t,this.name),isNode&&(this.node.fs.writeFileSync("".concat(this.name,".json"),t,{flag:"w"},(function(t){return console.log(t)})),this.node.fs.writeFileSync("root.json",JSON.stringify(this.root,null,2),{flag:"w"},(function(t){return console.log(t)})))}},{key:"write",value:function(t,e){if(this.log("SET ".concat(e)),-1!==e.indexOf("#")){if(e=e.substr(1),isSurge||isLoon)return $persistentStore.write(t,e);if(isQX)return $prefs.setValueForKey(t,e);isNode&&(this.root[e]=t)}else this.cache[e]=t;this.persistCache()}},{key:"read",value:function(t){return this.log("READ ".concat(t)),-1===t.indexOf("#")?this.cache[t]:(t=t.substr(1),isSurge||isLoon?$persistentStore.read(t):isQX?$prefs.valueForKey(t):isNode?this.root[t]:void 0)}},{key:"delete",value:function(t){if(this.log("DELETE ".concat(t)),-1!==t.indexOf("#")){if(t=t.substr(1),isSurge||isLoon)return $persistentStore.write(null,t);if(isQX)return $prefs.removeValueForKey(t);isNode&&delete this.root[t]}else delete this.cache[t];this.persistCache()}},{key:"notify",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n["open-url"],a=n["media-url"];if(isQX&&$notify(t,e,r,n),isSurge&&$notification.post(t,e,r+"".concat(a?"\n\u591a\u5a92\u4f53:"+a:""),{url:o}),isLoon){var u={};o&&(u.openUrl=o),a&&(u.mediaUrl=a),"{}"===JSON.stringify(u)?$notification.post(t,e,r):$notification.post(t,e,r,u)}if(isNode){var i=r+(o?"\n\u70b9\u51fb\u8df3\u8f6c: ".concat(o):"")+(a?"\n\u591a\u5a92\u4f53: ".concat(a):"");console.log("".concat(t,"\n").concat(e,"\n").concat(i,"\n\n"))}}},{key:"log",value:function(t){this.debug&&console.log("[".concat(this.name,"] LOG: ").concat(t))}},{key:"info",value:function(t){console.log("[".concat(this.name,"] INFO: ").concat(t))}},{key:"error",value:function(t){console.log("[".concat(this.name,"] ERROR: ").concat(t))}},{key:"wait",value:function(t){return new Promise((function(e){return setTimeout(e,t)}))}},{key:"done",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};isQX||isLoon||isSurge?$done(t):isNode&&"undefined"!=typeof $context&&($context.headers=t.headers,$context.statusCode=t.statusCode,$context.body=t.body)}}]),OpenAPI}();function ENV(){return{isQX:isQX,isLoon:isLoon,isSurge:isSurge,isNode:isNode}}function HTTP(){var defaultOptions=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{baseURL:""},_ENV=ENV(),isQX=_ENV.isQX,isLoon=_ENV.isLoon,isSurge=_ENV.isSurge,isNode=_ENV.isNode,methods=["GET","POST","PUT","DELETE","HEAD","OPTIONS","PATCH"],URL_REGEX=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;function send(method,options){options="string"==typeof options?{url:options}:options;var baseURL=defaultOptions.baseURL;baseURL&&!URL_REGEX.test(options.url||"")&&(options.url=baseURL?baseURL+options.url:options.url),options=_objectSpread(_objectSpread({},defaultOptions),options);var timeout=options.timeout,events=_objectSpread(_objectSpread({},{onRequest:function(){},onResponse:function(t){return t},onTimeout:function(){}}),options.events),worker,timeoutid;events.onRequest(method,options),isQX?worker=$task.fetch({method:method,url:options.url,headers:options.headers,body:options.body}):(isLoon||isSurge||isNode)&&(worker=new Promise((function(resolve,reject){var request=isNode?eval("require('request')"):$httpClient;request[method.toLowerCase()](options,(function(t,e,r){t?reject(t):resolve({statusCode:e.status||e.statusCode,headers:e.headers,body:r})}))})));var timer=timeout?new Promise((function(t,e){timeoutid=setTimeout((function(){return events.onTimeout(),e("".concat(method," URL: ").concat(options.url," exceeds the timeout ").concat(timeout," ms"))}),timeout)})):null;return(timer?Promise.race([timer,worker]).then((function(t){return clearTimeout(timeoutid),t})):worker).then((function(t){return events.onResponse(t)}))}var http={};return methods.forEach((function(t){return http[t.toLowerCase()]=function(e){return send(t,e)}})),http}_$openApi_92.OpenAPI=OpenAPI;var _$express_91={};function ___classCallCheck_91(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ___defineProperties_91(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:0,n=e.method,o=e.url,a=e.headers,u=e.body;a=formatHeaders(a),/json/i.test(a["content-type"])&&(u=JSON.parse(u)),n=n.toUpperCase();var i,s=extractURL(o),c=s.path,l=s.query,p=null,f=0;for(i=r;if&&(p=handlers[i],f=_.split("/").length)}if(p){var h=function(){t(n,o,i)},d={method:n,url:o,path:c,query:l,params:extractPathParams(p.pattern,c),headers:a,body:u},y=Response(),v=p.callback,g=function(t){y.status(500).json({status:"failed",message:"Internal Server Error: ".concat(t)})};if("AsyncFunction"===v.constructor.name)v(d,y,h).catch(g);else try{v(d,y,h)}catch(m){g(m)}}else Response().status(404).json({status:"failed",message:"ERROR: 404 not found"})},app={};return METHODS_NAMES.forEach((function(t){app[t.toLowerCase()]=function(e,r){handlers.push({method:t,pattern:e,callback:r})}})),app.route=function(t){var e={};return METHODS_NAMES.forEach((function(r){e[r.toLowerCase()]=function(n){return handlers.push({method:r,pattern:t,callback:n}),e}})),e},app.start=function(){dispatch($request)},app;function rawBodySaver(t,e,r,n){r&&r.length&&(t.rawBody=r.toString(n||"utf8"))}function Response(){var t=200,e=(0,_$openApi_92.ENV)(),r=e.isQX,n=e.isLoon,o=e.isSurge,a=DEFAULT_HEADERS,u={200:"HTTP/1.1 200 OK",201:"HTTP/1.1 201 Created",302:"HTTP/1.1 302 Found",307:"HTTP/1.1 307 Temporary Redirect",308:"HTTP/1.1 308 Permanent Redirect",404:"HTTP/1.1 404 Not Found",500:"HTTP/1.1 500 Internal Server Error"};return new(function(){function e(){___classCallCheck_91(this,e)}return ___createClass_91(e,[{key:"status",value:function(e){return t=e,this}},{key:"send",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i={status:r?u[t]:t,body:e,headers:a};r?$done(i):(n||o)&&$done({response:i})}},{key:"end",value:function(){this.send()}},{key:"html",value:function(t){this.set("Content-Type","text/html;charset=UTF-8"),this.send(t)}},{key:"json",value:function(t){this.set("Content-Type","application/json;charset=UTF-8"),this.send(JSON.stringify(t))}},{key:"set",value:function(t,e){return a[t]=e,this}}]),e}())}}function formatHeaders(t){for(var e={},r=0,n=Object.keys(t);r=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function _createForOfIteratorHelper(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var a,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw a}}}}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __asyncGeneratorStep_86(t,e,r,n,o,a,u){try{var i=t[a](u),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}Object.defineProperty(_$download_86,"__esModule",{value:!0}),_$download_86.default=function(t,e){return _download.apply(this,arguments)};var cache=new Map;function _download(){var t;return t=___regeneratorRuntime_86().mark((function t(e,r){var n,o,a;return ___regeneratorRuntime_86().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=(r=r||"Quantumult%20X/1.0.29 (iPhone14,5; iOS 15.4.1)")+e,!cache.has(n)){t.next=4;break}return t.abrupt("return",cache.get(n));case 4:return o=(0,_$openApi_92.HTTP)({headers:{"User-Agent":r}}),a=new Promise((function(t,r){o.get(e).then((function(e){var n=e.body;0===n.replace(/\s/g,"").length?r(new Error("\u8ba2\u9605\u5185\u5bb9\u4e3a\u7a7a\uff01")):t(n)}))})),cache.set(n,a),t.abrupt("return",a);case 8:case"end":return t.stop()}}),t)})),(_download=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function u(t){__asyncGeneratorStep_86(a,n,o,u,i,"next",t)}function i(t){__asyncGeneratorStep_86(a,n,o,u,i,"throw",t)}u(void 0)}))}).apply(this,arguments)}var _$utils_89={};Object.defineProperty(_$utils_89,"__esModule",{value:!0}),_$utils_89.isIPv4=function(t){return IPV4_REGEX.test(t)},_$utils_89.isIPv6=function(t){return IPV6_REGEX.test(t)};var IPV4_REGEX=/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$/,IPV6_REGEX=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,_$logical_90={};function ___arrayLikeToArray_90(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r"']/g,j=RegExp(T.source),k=RegExp(R.source),D=/<%-([\s\S]+?)%>/g,I=/<%([\s\S]+?)%>/g,B=/<%=([\s\S]+?)%>/g,N=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,M=/^\w*$/,U=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,H=/[\\^$.*+?()[\]{}|]/g,G=RegExp(H.source),q=/^\s+/,Y=/\s/,z=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,K=/\{\n\/\* \[wrapped with (.+)\] \*/,W=/,? & /,X=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,V=/[()=,{}\[\]\/\s]/,J=/\\(\\)?/g,Q=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Z=/\w*$/,tt=/^[-+]0x[0-9a-f]+$/i,et=/^0b[01]+$/i,rt=/^\[object .+?Constructor\]$/,nt=/^0o[0-7]+$/i,ot=/^(?:0|[1-9]\d*)$/,at=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ut=/($^)/,it=/['\n\r\u2028\u2029\\]/g,st="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ct="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",lt="["+ct+"]",pt="["+st+"]",ft="\\d+",_t="[a-z\\xdf-\\xf6\\xf8-\\xff]",ht="[^\\ud800-\\udfff"+ct+ft+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",dt="\\ud83c[\\udffb-\\udfff]",yt="[^\\ud800-\\udfff]",vt="(?:\\ud83c[\\udde6-\\uddff]){2}",gt="[\\ud800-\\udbff][\\udc00-\\udfff]",mt="[A-Z\\xc0-\\xd6\\xd8-\\xde]",At="(?:"+_t+"|"+ht+")",bt="(?:"+mt+"|"+ht+")",Et="(?:"+pt+"|"+dt+")?",wt="[\\ufe0e\\ufe0f]?"+Et+"(?:\\u200d(?:"+[yt,vt,gt].join("|")+")[\\ufe0e\\ufe0f]?"+Et+")*",Ct="(?:"+["[\\u2700-\\u27bf]",vt,gt].join("|")+")"+wt,xt="(?:"+[yt+pt+"?",pt,vt,gt,"[\\ud800-\\udfff]"].join("|")+")",St=RegExp("['\u2019]","g"),Ot=RegExp(pt,"g"),$t=RegExp(dt+"(?="+dt+")|"+xt+wt,"g"),Ft=RegExp([mt+"?"+_t+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[lt,mt,"$"].join("|")+")",bt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[lt,mt+At,"$"].join("|")+")",mt+"?"+At+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",mt+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ft,Ct].join("|"),"g"),Lt=RegExp("[\\u200d\\ud800-\\udfff"+st+"\\ufe0e\\ufe0f]"),Pt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Tt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Rt=-1,jt={};jt[b]=jt[E]=jt[w]=jt[C]=jt[x]=jt[S]=jt["[object Uint8ClampedArray]"]=jt[O]=jt[$]=!0,jt[o]=jt[a]=jt[m]=jt[u]=jt[A]=jt[i]=jt[s]=jt[c]=jt[p]=jt[f]=jt[_]=jt[h]=jt[d]=jt[y]=jt[g]=!1;var kt={};kt[o]=kt[a]=kt[m]=kt[A]=kt[u]=kt[i]=kt[b]=kt[E]=kt[w]=kt[C]=kt[x]=kt[p]=kt[f]=kt[_]=kt[h]=kt[d]=kt[y]=kt[v]=kt[S]=kt["[object Uint8ClampedArray]"]=kt[O]=kt[$]=!0,kt[s]=kt[c]=kt[g]=!1;var Dt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},It=parseFloat,Bt=parseInt,Nt="object"==typeof t&&t&&t.Object===Object&&t,Mt="object"==typeof self&&self&&self.Object===Object&&self,Ut=Nt||Mt||Function("return this")(),Ht="object"==typeof _$lodash_35.exports&&_$lodash_35.exports&&!_$lodash_35.exports.nodeType&&_$lodash_35.exports,Gt=Ht&&_$lodash_35&&!_$lodash_35.nodeType&&_$lodash_35,qt=Gt&&Gt.exports===Ht,Yt=qt&&Nt.process,zt=function(){try{return Gt&&Gt.require&&Gt.require("util").types||Yt&&Yt.binding&&Yt.binding("util")}catch(t){}}(),Kt=zt&&zt.isArrayBuffer,Wt=zt&&zt.isDate,Xt=zt&&zt.isMap,Vt=zt&&zt.isRegExp,Jt=zt&&zt.isSet,Qt=zt&&zt.isTypedArray;function Zt(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}function te(t,e,r,n){for(var o=-1,a=null==t?0:t.length;++o-1}function ue(t,e,r){for(var n=-1,o=null==t?0:t.length;++n-1;);return r}function Fe(t,e){for(var r=t.length;r--&&de(e,t[r],0)>-1;);return r}var Le=Ae({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),Pe=Ae({"&":"&","<":"<",">":">",'"':""","'":"'"});function Te(t){return"\\"+Dt[t]}function Re(t){return Lt.test(t)}function je(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}function ke(t,e){return function(r){return t(e(r))}}function De(t,e){for(var n=-1,o=t.length,a=0,u=[];++n",""":'"',"'":"'"}),Ge=function t(Y){var st,ct=(Y=null==Y?Ut:Ge.defaults(Ut.Object(),Y,Ge.pick(Ut,Tt))).Array,lt=Y.Date,pt=Y.Error,ft=Y.Function,_t=Y.Math,ht=Y.Object,dt=Y.RegExp,yt=Y.String,vt=Y.TypeError,gt=ct.prototype,mt=ft.prototype,At=ht.prototype,bt=Y["__core-js_shared__"],Et=mt.toString,wt=At.hasOwnProperty,Ct=0,xt=(st=/[^.]+$/.exec(bt&&bt.keys&&bt.keys.IE_PROTO||""))?"Symbol(src)_1."+st:"",$t=At.toString,Lt=Et.call(ht),Dt=Ut._,Nt=dt("^"+Et.call(wt).replace(H,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Mt=qt?Y.Buffer:void 0,Ht=Y.Symbol,Gt=Y.Uint8Array,Yt=Mt?Mt.allocUnsafe:void 0,zt=ke(ht.getPrototypeOf,ht),fe=ht.create,Ae=At.propertyIsEnumerable,qe=gt.splice,Ye=Ht?Ht.isConcatSpreadable:void 0,ze=Ht?Ht.iterator:void 0,Ke=Ht?Ht.toStringTag:void 0,We=function(){try{var t=Zo(ht,"defineProperty");return t({},"",{}),t}catch(e){}}(),Xe=Y.clearTimeout!==Ut.clearTimeout&&Y.clearTimeout,Ve=lt&<.now!==Ut.Date.now&<.now,Je=Y.setTimeout!==Ut.setTimeout&&Y.setTimeout,Qe=_t.ceil,Ze=_t.floor,tr=ht.getOwnPropertySymbols,er=Mt?Mt.isBuffer:void 0,rr=Y.isFinite,nr=gt.join,or=ke(ht.keys,ht),ar=_t.max,ur=_t.min,ir=lt.now,sr=Y.parseInt,cr=_t.random,lr=gt.reverse,pr=Zo(Y,"DataView"),fr=Zo(Y,"Map"),_r=Zo(Y,"Promise"),hr=Zo(Y,"Set"),dr=Zo(Y,"WeakMap"),yr=Zo(ht,"create"),vr=dr&&new dr,gr={},mr=xa(pr),Ar=xa(fr),br=xa(_r),Er=xa(hr),wr=xa(dr),Cr=Ht?Ht.prototype:void 0,xr=Cr?Cr.valueOf:void 0,Sr=Cr?Cr.toString:void 0;function Or(t){if(Hu(t)&&!Pu(t)&&!(t instanceof Pr)){if(t instanceof Lr)return t;if(wt.call(t,"__wrapped__"))return Sa(t)}return new Lr(t)}var $r=function(){function t(){}return function(e){if(!Uu(e))return{};if(fe)return fe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();function Fr(){}function Lr(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function Pr(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Tr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function Xr(t,e,r,n,a,s){var g,F=1&e,L=2&e,P=4&e;if(r&&(g=a?r(t,n,a,s):r(t)),void 0!==g)return g;if(!Uu(t))return t;var T=Pu(t);if(T){if(g=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&wt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}(t),!F)return vo(t,g)}else{var R=ra(t),j=R==c||R==l;if(ku(t))return lo(t,F);if(R==_||R==o||j&&!a){if(g=L||j?{}:oa(t),!F)return L?function(t,e){return go(t,ea(t),e)}(t,function(t,e){return t&&go(e,mi(e),t)}(g,t)):function(t,e){return go(t,ta(t),e)}(t,Yr(g,t))}else{if(!kt[R])return a?t:{};g=function(t,e,r){var n,o,a,s=t.constructor;switch(e){case m:return po(t);case u:case i:return new s(+t);case A:return function(t,e){var r=e?po(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}(t,r);case b:case E:case w:case C:case x:case S:case"[object Uint8ClampedArray]":case O:case $:return fo(t,r);case p:return new s;case f:case y:return new s(t);case h:return(a=new(o=t).constructor(o.source,Z.exec(o))).lastIndex=o.lastIndex,a;case d:return new s;case v:return n=t,xr?ht(xr.call(n)):{}}}(t,R,F)}}s||(s=new Dr);var k=s.get(t);if(k)return k;s.set(t,g),Ku(t)?t.forEach((function(n){g.add(Xr(n,e,r,n,t,s))})):Gu(t)&&t.forEach((function(n,o){g.set(o,Xr(n,e,r,o,t,s))}));var D=T?void 0:(P?L?zo:Yo:L?mi:gi)(t);return ee(D||t,(function(n,o){D&&(n=t[o=n]),Hr(g,o,Xr(n,e,r,o,t,s))})),g}function Vr(t,e,r){var n=r.length;if(null==t)return!n;for(t=ht(t);n--;){var o=r[n],a=e[o],u=t[o];if(void 0===u&&!(o in t)||!a(u))return!1}return!0}function Jr(t,r,n){if("function"!=typeof t)throw new vt(e);return ga((function(){t.apply(void 0,n)}),r)}function Qr(t,e,r,n){var o=-1,a=ae,u=!0,i=t.length,s=[],c=e.length;if(!i)return s;r&&(e=ie(e,xe(r))),n?(a=ue,u=!1):e.length>=200&&(a=Oe,u=!1,e=new kr(e));t:for(;++o-1},Rr.prototype.set=function(t,e){var r=this.__data__,n=Gr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this},jr.prototype.clear=function(){this.size=0,this.__data__={hash:new Tr,map:new(fr||Rr),string:new Tr}},jr.prototype.delete=function(t){var e=Jo(this,t).delete(t);return this.size-=e?1:0,e},jr.prototype.get=function(t){return Jo(this,t).get(t)},jr.prototype.has=function(t){return Jo(this,t).has(t)},jr.prototype.set=function(t,e){var r=Jo(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this},kr.prototype.add=kr.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},kr.prototype.has=function(t){return this.__data__.has(t)},Dr.prototype.clear=function(){this.__data__=new Rr,this.size=0},Dr.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},Dr.prototype.get=function(t){return this.__data__.get(t)},Dr.prototype.has=function(t){return this.__data__.has(t)},Dr.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Rr){var n=r.__data__;if(!fr||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new jr(n)}return r.set(t,e),this.size=r.size,this};var Zr=bo(sn),tn=bo(cn,!0);function en(t,e){var r=!0;return Zr(t,(function(t,n,o){return r=!!e(t,n,o)})),r}function rn(t,e,r){for(var n=-1,o=t.length;++n0&&r(i)?e>1?on(i,e-1,r,n,o):se(o,i):n||(o[o.length]=i)}return o}var an=Eo(),un=Eo(!0);function sn(t,e){return t&&an(t,e,gi)}function cn(t,e){return t&&un(t,e,gi)}function ln(t,e){return oe(e,(function(e){return Bu(t[e])}))}function pn(t,e){for(var r=0,n=(e=uo(e,t)).length;null!=t&&re}function dn(t,e){return null!=t&&wt.call(t,e)}function yn(t,e){return null!=t&&e in ht(t)}function vn(t,e,r){for(var n=r?ue:ae,o=t[0].length,a=t.length,u=a,i=ct(a),s=1/0,c=[];u--;){var l=t[u];u&&e&&(l=ie(l,xe(e))),s=ur(l.length,s),i[u]=!r&&(e||o>=120&&l.length>=120)?new kr(u&&l):void 0}l=t[0];var p=-1,f=i[0];t:for(;++p=i?s:s*("desc"==r[n]?-1:1)}return t.index-e.index}(t,e,r)}));n--;)t[n]=t[n].value;return t}(Sn(t,(function(t,r,o){return{criteria:ie(e,(function(e){return e(t)})),index:++n,value:t}})))}function Tn(t,e,r){for(var n=-1,o=e.length,a={};++n-1;)i!==t&&qe.call(i,s,1),qe.call(t,s,1);return t}function jn(t,e){for(var r=t?e.length:0,n=r-1;r--;){var o=e[r];if(r==n||o!==a){var a=o;ua(o)?qe.call(t,o,1):Qn(t,o)}}return t}function kn(t,e){return t+Ze(cr()*(e-t+1))}function Dn(t,e){var r="";if(!t||e<1||e>9007199254740991)return r;do{e%2&&(r+=t),(e=Ze(e/2))&&(t+=t)}while(e);return r}function In(t,e){return ma(ha(t,e,qi),t+"")}function Bn(t){return Br(Oi(t))}function Nn(t,e){var r=Oi(t);return Ea(r,Wr(e,0,r.length))}function Mn(t,e,r,n){if(!Uu(t))return t;for(var o=-1,a=(e=uo(e,t)).length,u=a-1,i=t;null!=i&&++oo?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var a=ct(o);++n>>1,u=t[a];null!==u&&!Xu(u)&&(r?u<=e:u=200){var c=e?null:Io(t);if(c)return Ie(c);u=!1,o=Oe,s=new kr}else s=e?[]:i;t:for(;++n=n?t:qn(t,e,r)}var co=Xe||function(t){return Ut.clearTimeout(t)};function lo(t,e){if(e)return t.slice();var r=t.length,n=Yt?Yt(r):new t.constructor(r);return t.copy(n),n}function po(t){var e=new t.constructor(t.byteLength);return new Gt(e).set(new Gt(t)),e}function fo(t,e){var r=e?po(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}function _o(t,e){if(t!==e){var r=void 0!==t,n=null===t,o=t==t,a=Xu(t),u=void 0!==e,i=null===e,s=e==e,c=Xu(e);if(!i&&!c&&!a&&t>e||a&&u&&s&&!i&&!c||n&&u&&s||!r&&s||!o)return 1;if(!n&&!a&&!c&&t1?r[o-1]:void 0,u=o>2?r[2]:void 0;for(a=t.length>3&&"function"==typeof a?(o--,a):void 0,u&&ia(r[0],r[1],u)&&(a=o<3?void 0:a,o=1),e=ht(e);++n-1?o[a?e[u]:u]:void 0}}function Oo(t){return qo((function(r){var n=r.length,o=n,a=Lr.prototype.thru;for(t&&r.reverse();o--;){var u=r[o];if("function"!=typeof u)throw new vt(e);if(a&&!i&&"wrapper"==Wo(u))var i=new Lr([],!0)}for(o=i?o:n;++o1&&g.reverse(),l&&si))return!1;var c=a.get(t),l=a.get(e);if(c&&l)return c==e&&l==t;var p=-1,f=!0,_=2&r?new kr:void 0;for(a.set(t,e),a.set(e,t);++p-1&&t%1==0&&t1?"& ":"")+e[n],e=e.join(r>2?", ":" "),t.replace(z,"{\n/* [wrapped with "+e+"] */\n")}(o,function(t,e){return ee(n,(function(r){var n="_."+r[0];e&r[1]&&!ae(t,n)&&t.push(n)})),t.sort()}(function(t){var e=t.match(K);return e?e[1].split(W):[]}(o),r)))}function ba(t){var e=0,r=0;return function(){var n=ir(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Ea(t,e){var r=-1,n=t.length,o=n-1;for(e=void 0===e?n:e;++r1?t[e-1]:void 0;return r="function"==typeof r?(t.pop(),r):void 0,za(t,r)}));function Za(t){var e=Or(t);return e.__chain__=!0,e}function tu(t,e){return e(t)}var eu=qo((function(t){var e=t.length,r=e?t[0]:0,n=this.__wrapped__,o=function(e){return Kr(e,t)};return!(e>1||this.__actions__.length)&&n instanceof Pr&&ua(r)?((n=n.slice(r,+r+(e?1:0))).__actions__.push({func:tu,args:[o],thisArg:void 0}),new Lr(n,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(o)})),ru=mo((function(t,e,r){wt.call(t,r)?++t[r]:zr(t,r,1)})),nu=So(La),ou=So(Pa);function au(t,e){return(Pu(t)?ee:Zr)(t,Vo(e,3))}function uu(t,e){return(Pu(t)?re:tn)(t,Vo(e,3))}var iu=mo((function(t,e,r){wt.call(t,r)?t[r].push(e):zr(t,r,[e])})),su=In((function(t,e,r){var n=-1,o="function"==typeof e,a=Ru(t)?ct(t.length):[];return Zr(t,(function(t){a[++n]=o?Zt(e,t,r):gn(t,e,r)})),a})),cu=mo((function(t,e,r){zr(t,r,e)}));function lu(t,e){return(Pu(t)?ie:Sn)(t,Vo(e,3))}var pu=mo((function(t,e,r){t[r?0:1].push(e)}),(function(){return[[],[]]})),fu=In((function(t,e){if(null==t)return[];var r=e.length;return r>1&&ia(t,e[0],e[1])?e=[]:r>2&&ia(e[0],e[1],e[2])&&(e=[e[0]]),Pn(t,on(e,1),[])})),_u=Ve||function(){return Ut.Date.now()};function hu(t,e,r){return e=r?void 0:e,No(t,128,void 0,void 0,void 0,void 0,e=t&&null==e?t.length:e)}function du(t,r){var n;if("function"!=typeof r)throw new vt(e);return t=ei(t),function(){return--t>0&&(n=r.apply(this,arguments)),t<=1&&(r=void 0),n}}var yu=In((function(t,e,r){var n=1;if(r.length){var o=De(r,Xo(yu));n|=32}return No(t,n,e,r,o)})),vu=In((function(t,e,r){var n=3;if(r.length){var o=De(r,Xo(vu));n|=32}return No(e,n,t,r,o)}));function gu(t,r,n){var o,a,u,i,s,c,l=0,p=!1,f=!1,_=!0;if("function"!=typeof t)throw new vt(e);function h(e){var r=o,n=a;return o=a=void 0,l=e,i=t.apply(n,r)}function d(t){var e=t-c;return void 0===c||e>=r||e<0||f&&t-l>=u}function y(){var t=_u();if(d(t))return v(t);s=ga(y,function(t){var e=r-(t-c);return f?ur(e,u-(t-l)):e}(t))}function v(t){return s=void 0,_&&o?h(t):(o=a=void 0,i)}function g(){var t=_u(),e=d(t);if(o=arguments,a=this,c=t,e){if(void 0===s)return function(t){return l=t,s=ga(y,r),p?h(t):i}(c);if(f)return co(s),s=ga(y,r),h(c)}return void 0===s&&(s=ga(y,r)),i}return r=ni(r)||0,Uu(n)&&(p=!!n.leading,u=(f="maxWait"in n)?ar(ni(n.maxWait)||0,r):u,_="trailing"in n?!!n.trailing:_),g.cancel=function(){void 0!==s&&co(s),l=0,o=c=a=s=void 0},g.flush=function(){return void 0===s?i:v(_u())},g}var mu=In((function(t,e){return Jr(t,1,e)})),Au=In((function(t,e,r){return Jr(t,ni(e)||0,r)}));function bu(t,r){if("function"!=typeof t||null!=r&&"function"!=typeof r)throw new vt(e);var n=function(){var e=arguments,o=r?r.apply(this,e):e[0],a=n.cache;if(a.has(o))return a.get(o);var u=t.apply(this,e);return n.cache=a.set(o,u)||a,u};return n.cache=new(bu.Cache||jr),n}function Eu(t){if("function"!=typeof t)throw new vt(e);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}bu.Cache=jr;var wu=io((function(t,e){var r=(e=1==e.length&&Pu(e[0])?ie(e[0],xe(Vo())):ie(on(e,1),xe(Vo()))).length;return In((function(n){for(var o=-1,a=ur(n.length,r);++o=e})),Lu=mn(function(){return arguments}())?mn:function(t){return Hu(t)&&wt.call(t,"callee")&&!Ae.call(t,"callee")},Pu=ct.isArray,Tu=Kt?xe(Kt):function(t){return Hu(t)&&_n(t)==m};function Ru(t){return null!=t&&Mu(t.length)&&!Bu(t)}function ju(t){return Hu(t)&&Ru(t)}var ku=er||ns,Du=Wt?xe(Wt):function(t){return Hu(t)&&_n(t)==i};function Iu(t){if(!Hu(t))return!1;var e=_n(t);return e==s||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!Yu(t)}function Bu(t){if(!Uu(t))return!1;var e=_n(t);return e==c||e==l||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Nu(t){return"number"==typeof t&&t==ei(t)}function Mu(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function Uu(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Hu(t){return null!=t&&"object"==typeof t}var Gu=Xt?xe(Xt):function(t){return Hu(t)&&ra(t)==p};function qu(t){return"number"==typeof t||Hu(t)&&_n(t)==f}function Yu(t){if(!Hu(t)||_n(t)!=_)return!1;var e=zt(t);if(null===e)return!0;var r=wt.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&Et.call(r)==Lt}var zu=Vt?xe(Vt):function(t){return Hu(t)&&_n(t)==h},Ku=Jt?xe(Jt):function(t){return Hu(t)&&ra(t)==d};function Wu(t){return"string"==typeof t||!Pu(t)&&Hu(t)&&_n(t)==y}function Xu(t){return"symbol"==typeof t||Hu(t)&&_n(t)==v}var Vu=Qt?xe(Qt):function(t){return Hu(t)&&Mu(t.length)&&!!jt[_n(t)]},Ju=jo(xn),Qu=jo((function(t,e){return t<=e}));function Zu(t){if(!t)return[];if(Ru(t))return Wu(t)?Me(t):vo(t);if(ze&&t[ze])return function(t){for(var e,r=[];!(e=t.next()).done;)r.push(e.value);return r}(t[ze]());var e=ra(t);return(e==p?je:e==d?Ie:Oi)(t)}function ti(t){return t?(t=ni(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function ei(t){var e=ti(t),r=e%1;return e==e?r?e-r:e:0}function ri(t){return t?Wr(ei(t),0,4294967295):0}function ni(t){if("number"==typeof t)return t;if(Xu(t))return NaN;if(Uu(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Uu(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ce(t);var r=et.test(t);return r||nt.test(t)?Bt(t.slice(2),r?2:8):tt.test(t)?NaN:+t}function oi(t){return go(t,mi(t))}function ai(t){return null==t?"":Vn(t)}var ui=Ao((function(t,e){if(pa(e)||Ru(e))go(e,gi(e),t);else for(var r in e)wt.call(e,r)&&Hr(t,r,e[r])})),ii=Ao((function(t,e){go(e,mi(e),t)})),si=Ao((function(t,e,r,n){go(e,mi(e),t,n)})),ci=Ao((function(t,e,r,n){go(e,gi(e),t,n)})),li=qo(Kr),pi=In((function(t,e){t=ht(t);var r=-1,n=e.length,o=n>2?e[2]:void 0;for(o&&ia(e[0],e[1],o)&&(n=1);++r1),e})),go(t,zo(t),r),n&&(r=Xr(r,7,Ho));for(var o=e.length;o--;)Qn(r,e[o]);return r})),wi=qo((function(t,e){return null==t?{}:function(t,e){return Tn(t,e,(function(e,r){return hi(t,r)}))}(t,e)}));function Ci(t,e){if(null==t)return{};var r=ie(zo(t),(function(t){return[t]}));return e=Vo(e),Tn(t,r,(function(t,r){return e(t,r[0])}))}var xi=Bo(gi),Si=Bo(mi);function Oi(t){return null==t?[]:Se(t,gi(t))}var $i=Co((function(t,e,r){return e=e.toLowerCase(),t+(r?Fi(e):e)}));function Fi(t){return Ii(ai(t).toLowerCase())}function Li(t){return(t=ai(t))&&t.replace(at,Le).replace(Ot,"")}var Pi=Co((function(t,e,r){return t+(r?"-":"")+e.toLowerCase()})),Ti=Co((function(t,e,r){return t+(r?" ":"")+e.toLowerCase()})),Ri=wo("toLowerCase"),ji=Co((function(t,e,r){return t+(r?"_":"")+e.toLowerCase()})),ki=Co((function(t,e,r){return t+(r?" ":"")+Ii(e)})),Di=Co((function(t,e,r){return t+(r?" ":"")+e.toUpperCase()})),Ii=wo("toUpperCase");function Bi(t,e,r){return t=ai(t),void 0===(e=r?void 0:e)?function(t){return Pt.test(t)}(t)?function(t){return t.match(Ft)||[]}(t):function(t){return t.match(X)||[]}(t):t.match(e)||[]}var Ni=In((function(t,e){try{return Zt(t,void 0,e)}catch(r){return Iu(r)?r:new pt(r)}})),Mi=qo((function(t,e){return ee(e,(function(e){e=Ca(e),zr(t,e,yu(t[e],t))})),t}));function Ui(t){return function(){return t}}var Hi=Oo(),Gi=Oo(!0);function qi(t){return t}function Yi(t){return wn("function"==typeof t?t:Xr(t,1))}var zi=In((function(t,e){return function(r){return gn(r,t,e)}})),Ki=In((function(t,e){return function(r){return gn(t,r,e)}}));function Wi(t,e,r){var n=gi(e),o=ln(e,n);null!=r||Uu(e)&&(o.length||!n.length)||(r=e,e=t,t=this,o=ln(e,gi(e)));var a=!(Uu(r)&&"chain"in r&&!r.chain),u=Bu(t);return ee(o,(function(r){var n=e[r];t[r]=n,u&&(t.prototype[r]=function(){var e=this.__chain__;if(a||e){var r=t(this.__wrapped__);return(r.__actions__=vo(this.__actions__)).push({func:n,args:arguments,thisArg:t}),r.__chain__=e,r}return n.apply(t,se([this.value()],arguments))})})),t}function Xi(){}var Vi=Po(ie),Ji=Po(ne),Qi=Po(pe);function Zi(t){return sa(t)?me(Ca(t)):function(t){return function(e){return pn(e,t)}}(t)}var ts=Ro(),es=Ro(!0);function rs(){return[]}function ns(){return!1}var os,as=Lo((function(t,e){return t+e}),0),us=Do("ceil"),is=Lo((function(t,e){return t/e}),1),ss=Do("floor"),cs=Lo((function(t,e){return t*e}),1),ls=Do("round"),ps=Lo((function(t,e){return t-e}),0);return Or.after=function(t,r){if("function"!=typeof r)throw new vt(e);return t=ei(t),function(){if(--t<1)return r.apply(this,arguments)}},Or.ary=hu,Or.assign=ui,Or.assignIn=ii,Or.assignInWith=si,Or.assignWith=ci,Or.at=li,Or.before=du,Or.bind=yu,Or.bindAll=Mi,Or.bindKey=vu,Or.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Pu(t)?t:[t]},Or.chain=Za,Or.chunk=function(t,e,r){e=(r?ia(t,e,r):void 0===e)?1:ar(ei(e),0);var n=null==t?0:t.length;if(!n||e<1)return[];for(var o=0,a=0,u=ct(Qe(n/e));oo?0:o+r),(n=void 0===n||n>o?o:ei(n))<0&&(n+=o),n=r>n?0:ri(n);r>>0)?(t=ai(t))&&("string"==typeof e||null!=e&&!zu(e))&&!(e=Vn(e))&&Re(t)?so(Me(t),0,r):t.split(e,r):[]},Or.spread=function(t,r){if("function"!=typeof t)throw new vt(e);return r=null==r?0:ar(ei(r),0),In((function(e){var n=e[r],o=so(e,0,r);return n&&se(o,n),Zt(t,this,o)}))},Or.tail=function(t){var e=null==t?0:t.length;return e?qn(t,1,e):[]},Or.take=function(t,e,r){return t&&t.length?qn(t,0,(e=r||void 0===e?1:ei(e))<0?0:e):[]},Or.takeRight=function(t,e,r){var n=null==t?0:t.length;return n?qn(t,(e=n-(e=r||void 0===e?1:ei(e)))<0?0:e,n):[]},Or.takeRightWhile=function(t,e){return t&&t.length?to(t,Vo(e,3),!1,!0):[]},Or.takeWhile=function(t,e){return t&&t.length?to(t,Vo(e,3)):[]},Or.tap=function(t,e){return e(t),t},Or.throttle=function(t,r,n){var o=!0,a=!0;if("function"!=typeof t)throw new vt(e);return Uu(n)&&(o="leading"in n?!!n.leading:o,a="trailing"in n?!!n.trailing:a),gu(t,r,{leading:o,maxWait:r,trailing:a})},Or.thru=tu,Or.toArray=Zu,Or.toPairs=xi,Or.toPairsIn=Si,Or.toPath=function(t){return Pu(t)?ie(t,Ca):Xu(t)?[t]:vo(wa(ai(t)))},Or.toPlainObject=oi,Or.transform=function(t,e,r){var n=Pu(t),o=n||ku(t)||Vu(t);if(e=Vo(e,4),null==r){var a=t&&t.constructor;r=o?n?new a:[]:Uu(t)&&Bu(a)?$r(zt(t)):{}}return(o?ee:sn)(t,(function(t,n,o){return e(r,t,n,o)})),r},Or.unary=function(t){return hu(t,1)},Or.union=Ha,Or.unionBy=Ga,Or.unionWith=qa,Or.uniq=function(t){return t&&t.length?Jn(t):[]},Or.uniqBy=function(t,e){return t&&t.length?Jn(t,Vo(e,2)):[]},Or.uniqWith=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?Jn(t,void 0,e):[]},Or.unset=function(t,e){return null==t||Qn(t,e)},Or.unzip=Ya,Or.unzipWith=za,Or.update=function(t,e,r){return null==t?t:Zn(t,e,ao(r))},Or.updateWith=function(t,e,r,n){return n="function"==typeof n?n:void 0,null==t?t:Zn(t,e,ao(r),n)},Or.values=Oi,Or.valuesIn=function(t){return null==t?[]:Se(t,mi(t))},Or.without=Ka,Or.words=Bi,Or.wrap=function(t,e){return Cu(ao(e),t)},Or.xor=Wa,Or.xorBy=Xa,Or.xorWith=Va,Or.zip=Ja,Or.zipObject=function(t,e){return no(t||[],e||[],Hr)},Or.zipObjectDeep=function(t,e){return no(t||[],e||[],Mn)},Or.zipWith=Qa,Or.entries=xi,Or.entriesIn=Si,Or.extend=ii,Or.extendWith=si,Wi(Or,Or),Or.add=as,Or.attempt=Ni,Or.camelCase=$i,Or.capitalize=Fi,Or.ceil=us,Or.clamp=function(t,e,r){return void 0===r&&(r=e,e=void 0),void 0!==r&&(r=(r=ni(r))==r?r:0),void 0!==e&&(e=(e=ni(e))==e?e:0),Wr(ni(t),e,r)},Or.clone=function(t){return Xr(t,4)},Or.cloneDeep=function(t){return Xr(t,5)},Or.cloneDeepWith=function(t,e){return Xr(t,5,e="function"==typeof e?e:void 0)},Or.cloneWith=function(t,e){return Xr(t,4,e="function"==typeof e?e:void 0)},Or.conformsTo=function(t,e){return null==e||Vr(t,e,gi(e))},Or.deburr=Li,Or.defaultTo=function(t,e){return null==t||t!=t?e:t},Or.divide=is,Or.endsWith=function(t,e,r){t=ai(t),e=Vn(e);var n=t.length,o=r=void 0===r?n:Wr(ei(r),0,n);return(r-=e.length)>=0&&t.slice(r,o)==e},Or.eq=Ou,Or.escape=function(t){return(t=ai(t))&&k.test(t)?t.replace(R,Pe):t},Or.escapeRegExp=function(t){return(t=ai(t))&&G.test(t)?t.replace(H,"\\$&"):t},Or.every=function(t,e,r){var n=Pu(t)?ne:en;return r&&ia(t,e,r)&&(e=void 0),n(t,Vo(e,3))},Or.find=nu,Or.findIndex=La,Or.findKey=function(t,e){return _e(t,Vo(e,3),sn)},Or.findLast=ou,Or.findLastIndex=Pa,Or.findLastKey=function(t,e){return _e(t,Vo(e,3),cn)},Or.floor=ss,Or.forEach=au,Or.forEachRight=uu,Or.forIn=function(t,e){return null==t?t:an(t,Vo(e,3),mi)},Or.forInRight=function(t,e){return null==t?t:un(t,Vo(e,3),mi)},Or.forOwn=function(t,e){return t&&sn(t,Vo(e,3))},Or.forOwnRight=function(t,e){return t&&cn(t,Vo(e,3))},Or.get=_i,Or.gt=$u,Or.gte=Fu,Or.has=function(t,e){return null!=t&&na(t,e,dn)},Or.hasIn=hi,Or.head=Ra,Or.identity=qi,Or.includes=function(t,e,r,n){t=Ru(t)?t:Oi(t),r=r&&!n?ei(r):0;var o=t.length;return r<0&&(r=ar(o+r,0)),Wu(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&de(t,e,r)>-1},Or.indexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:ei(r);return o<0&&(o=ar(n+o,0)),de(t,e,o)},Or.inRange=function(t,e,r){return e=ti(e),void 0===r?(r=e,e=0):r=ti(r),function(t,e,r){return t>=ur(e,r)&&t=-9007199254740991&&t<=9007199254740991},Or.isSet=Ku,Or.isString=Wu,Or.isSymbol=Xu,Or.isTypedArray=Vu,Or.isUndefined=function(t){return void 0===t},Or.isWeakMap=function(t){return Hu(t)&&ra(t)==g},Or.isWeakSet=function(t){return Hu(t)&&"[object WeakSet]"==_n(t)},Or.join=function(t,e){return null==t?"":nr.call(t,e)},Or.kebabCase=Pi,Or.last=Ia,Or.lastIndexOf=function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=n;return void 0!==r&&(o=(o=ei(r))<0?ar(n+o,0):ur(o,n-1)),e==e?function(t,e,r){for(var n=r+1;n--;)if(t[n]===e)return n;return n}(t,e,o):he(t,ve,o,!0)},Or.lowerCase=Ti,Or.lowerFirst=Ri,Or.lt=Ju,Or.lte=Qu,Or.max=function(t){return t&&t.length?rn(t,qi,hn):void 0},Or.maxBy=function(t,e){return t&&t.length?rn(t,Vo(e,2),hn):void 0},Or.mean=function(t){return ge(t,qi)},Or.meanBy=function(t,e){return ge(t,Vo(e,2))},Or.min=function(t){return t&&t.length?rn(t,qi,xn):void 0},Or.minBy=function(t,e){return t&&t.length?rn(t,Vo(e,2),xn):void 0},Or.stubArray=rs,Or.stubFalse=ns,Or.stubObject=function(){return{}},Or.stubString=function(){return""},Or.stubTrue=function(){return!0},Or.multiply=cs,Or.nth=function(t,e){return t&&t.length?Ln(t,ei(e)):void 0},Or.noConflict=function(){return Ut._===this&&(Ut._=Dt),this},Or.noop=Xi,Or.now=_u,Or.pad=function(t,e,r){t=ai(t);var n=(e=ei(e))?Ne(t):0;if(!e||n>=e)return t;var o=(e-n)/2;return To(Ze(o),r)+t+To(Qe(o),r)},Or.padEnd=function(t,e,r){t=ai(t);var n=(e=ei(e))?Ne(t):0;return e&&ne){var n=t;t=e,e=n}if(r||t%1||e%1){var o=cr();return ur(t+o*(e-t+It("1e-"+((o+"").length-1))),e)}return kn(t,e)},Or.reduce=function(t,e,r){var n=Pu(t)?ce:be,o=arguments.length<3;return n(t,Vo(e,4),r,o,Zr)},Or.reduceRight=function(t,e,r){var n=Pu(t)?le:be,o=arguments.length<3;return n(t,Vo(e,4),r,o,tn)},Or.repeat=function(t,e,r){return e=(r?ia(t,e,r):void 0===e)?1:ei(e),Dn(ai(t),e)},Or.replace=function(){var t=arguments,e=ai(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Or.result=function(t,e,r){var n=-1,o=(e=uo(e,t)).length;for(o||(o=1,t=void 0);++n9007199254740991)return[];var r=4294967295,n=ur(t,4294967295);t-=4294967295;for(var o=we(n,e=Vo(e));++r=a)return t;var i=r-Ne(n);if(i<1)return n;var s=u?so(u,0,i).join(""):t.slice(0,i);if(void 0===o)return s+n;if(u&&(i+=s.length-i),zu(o)){if(t.slice(i).search(o)){var c,l=s;for(o.global||(o=dt(o.source,ai(Z.exec(o))+"g")),o.lastIndex=0;c=o.exec(l);)var p=c.index;s=s.slice(0,void 0===p?i:p)}}else if(t.indexOf(Vn(o),i)!=i){var f=s.lastIndexOf(o);f>-1&&(s=s.slice(0,f))}return s+n},Or.unescape=function(t){return(t=ai(t))&&j.test(t)?t.replace(T,He):t},Or.uniqueId=function(t){var e=++Ct;return ai(t)+e},Or.upperCase=Di,Or.upperFirst=Ii,Or.each=au,Or.eachRight=uu,Or.first=Ra,Wi(Or,(os={},sn(Or,(function(t,e){wt.call(Or.prototype,e)||(os[e]=t)})),os),{chain:!1}),Or.VERSION="4.17.21",ee(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Or[t].placeholder=Or})),ee(["drop","take"],(function(t,e){Pr.prototype[t]=function(r){r=void 0===r?1:ar(ei(r),0);var n=this.__filtered__&&!e?new Pr(this):this.clone();return n.__filtered__?n.__takeCount__=ur(r,n.__takeCount__):n.__views__.push({size:ur(r,4294967295),type:t+(n.__dir__<0?"Right":"")}),n},Pr.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),ee(["filter","map","takeWhile"],(function(t,e){var r=e+1,n=1==r||3==r;Pr.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Vo(t,3),type:r}),e.__filtered__=e.__filtered__||n,e}})),ee(["head","last"],(function(t,e){var r="take"+(e?"Right":"");Pr.prototype[t]=function(){return this[r](1).value()[0]}})),ee(["initial","tail"],(function(t,e){var r="drop"+(e?"":"Right");Pr.prototype[t]=function(){return this.__filtered__?new Pr(this):this[r](1)}})),Pr.prototype.compact=function(){return this.filter(qi)},Pr.prototype.find=function(t){return this.filter(t).head()},Pr.prototype.findLast=function(t){return this.reverse().find(t)},Pr.prototype.invokeMap=In((function(t,e){return"function"==typeof t?new Pr(this):this.map((function(r){return gn(r,t,e)}))})),Pr.prototype.reject=function(t){return this.filter(Eu(Vo(t)))},Pr.prototype.slice=function(t,e){t=ei(t);var r=this;return r.__filtered__&&(t>0||e<0)?new Pr(r):(t<0?r=r.takeRight(-t):t&&(r=r.drop(t)),void 0!==e&&(r=(e=ei(e))<0?r.dropRight(-e):r.take(e-t)),r)},Pr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Pr.prototype.toArray=function(){return this.take(4294967295)},sn(Pr.prototype,(function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),n=/^(?:head|last)$/.test(e),o=Or[n?"take"+("last"==e?"Right":""):e],a=n||/^find/.test(e);o&&(Or.prototype[e]=function(){var e=this.__wrapped__,u=n?[1]:arguments,i=e instanceof Pr,s=u[0],c=i||Pu(e),l=function(t){var e=o.apply(Or,se([t],u));return n&&p?e[0]:e};c&&r&&"function"==typeof s&&1!=s.length&&(i=c=!1);var p=this.__chain__,f=!!this.__actions__.length,_=a&&!p,h=i&&!f;if(!a&&c){e=h?e:new Pr(this);var d=t.apply(e,u);return d.__actions__.push({func:tu,args:[l],thisArg:void 0}),new Lr(d,p)}return _&&h?t.apply(this,u):(d=this.thru(l),_?n?d.value()[0]:d.value():d)})})),ee(["pop","push","shift","sort","splice","unshift"],(function(t){var e=gt[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);Or.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var o=this.value();return e.apply(Pu(o)?o:[],t)}return this[r]((function(r){return e.apply(Pu(r)?r:[],t)}))}})),sn(Pr.prototype,(function(t,e){var r=Or[e];if(r){var n=r.name+"";wt.call(gr,n)||(gr[n]=[]),gr[n].push({name:e,func:r})}})),gr[$o(void 0,2).name]=[{name:"wrapper",func:void 0}],Pr.prototype.clone=function(){var t=new Pr(this.__wrapped__);return t.__actions__=vo(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=vo(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=vo(this.__views__),t},Pr.prototype.reverse=function(){if(this.__filtered__){var t=new Pr(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Pr.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,r=Pu(t),n=e<0,o=r?t.length:0,a=function(t,e,r){for(var n=-1,o=r.length;++n=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},Or.prototype.plant=function(t){for(var e,r=this;r instanceof Fr;){var n=Sa(r);n.__index__=0,n.__values__=void 0,e?o.__wrapped__=n:e=n;var o=n;r=r.__wrapped__}return o.__wrapped__=t,e},Or.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Pr){var e=t;return this.__actions__.length&&(e=new Pr(this)),(e=e.reverse()).__actions__.push({func:tu,args:[Ua],thisArg:void 0}),new Lr(e,this.__chain__)}return this.thru(Ua)},Or.prototype.toJSON=Or.prototype.valueOf=Or.prototype.value=function(){return eo(this.__wrapped__,this.__actions__)},Or.prototype.first=Or.prototype.head,ze&&(Or.prototype[ze]=function(){return this}),Or}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Ut._=Ge,define((function(){return Ge}))):Gt?((Gt.exports=Ge)._=Ge,Ht._=Ge):Ut._=Ge}).call(this)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),_$lodash_35=_$lodash_35.exports;var _$processors_73={};function ___typeof_73(t){return(___typeof_73="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$processors_73,"__esModule",{value:!0}),_$processors_73.ApplyProcessor=function(t,e){return _ApplyProcessor.apply(this,arguments)},_$processors_73.default=void 0;var _lodash=_interopRequireDefault(_$lodash_35),_app=_interopRequireDefault(_$app_66);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return function(t){if(Array.isArray(t))return ___arrayLikeToArray_73(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ___regeneratorRuntime_73(){___regeneratorRuntime_73=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",u=n.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(S){i=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof p?e:p,a=Object.create(o.prototype),u=new w(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var u=r.delegate;if(u){var i=A(u,r);if(i){if(i===l)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===l)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(t,r,u),a}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(S){return{type:"throw",arg:S}}}t.wrap=s;var l={};function p(){}function f(){}function _(){}var h={};i(h,o,(function(){return this}));var d=Object.getPrototypeOf,y=d&&d(d(C([])));y&&y!==e&&r.call(y,o)&&(h=y);var v=_.prototype=p.prototype=Object.create(h);function g(t){["next","throw","return"].forEach((function(e){i(t,e,(function(t){return this._invoke(e,t)}))}))}function m(t,e){var n;this._invoke=function(o,a){function u(){return new e((function(n,u){!function n(o,a,u,i){var s=c(t[o],t,a);if("throw"!==s.type){var l=s.arg,p=l.value;return p&&"object"==___typeof_73(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,u,i)}),(function(t){n("throw",t,u,i)})):e.resolve(p).then((function(t){l.value=t,u(l)}),(function(t){return n("throw",t,u,i)}))}i(s.arg)}(o,a,n,u)}))}return n=n?n.then(u,u):u()}}function A(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,A(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function w(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function C(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __asyncGeneratorStep_73(t,e,r,n,o,a,u){try{var i=t[a](u),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}function ___asyncToGenerator_73(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function u(t){__asyncGeneratorStep_73(a,n,o,u,i,"next",t)}function i(t){__asyncGeneratorStep_73(a,n,o,u,i,"throw",t)}u(void 0)}))}}function ___createForOfIteratorHelper_73(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=_unsupportedIterableToArray(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var a,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw a}}}}function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_73(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_73(t,e):void 0}}function ___arrayLikeToArray_73(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0])||arguments[0];return{name:"Flag Operator",func:function(e){return e.map((function(e){if(t){var r=(0,_$geo_87.getFlag)(e.name);e.name=removeFlag(e.name),e.name=r+" "+e.name,e.name=e.name.replace(/\ud83c\uddf9\ud83c\uddfc/g,"\ud83c\udde8\ud83c\uddf3")}else e.name=removeFlag(e.name);return e}))}}},"Sort Operator":function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"asc";return{name:"Sort Operator",func:function(e){switch(t){case"asc":case"desc":return e.sort((function(e,r){return(e.name>r.name?1:-1)*("desc"===t?-1:1)}));case"random":return function(t){for(var e,r,n=t.length;0!==n;)r=Math.floor(Math.random()*n),e=t[n-=1],t[n]=t[r],t[r]=e;return t}(e);default:throw new Error("Unknown sort option: "+t)}}}},"Regex Sort Operator":function(t){return{name:"Regex Sort Operator",func:function(e){return t=t.map((function(t){return buildRegex(t)})),e.sort((function(e,r){var n=getRegexOrder(t,e.name),o=getRegexOrder(t,r.name);return n&&!o?-1:o&&!n?1:n&&o?n1){void 0===c[t.name]&&(c[t.name]=1);for(var e="",r=c[t.name]++,n=0;r>0;)e=u[r%10]+e,r=parseInt(r/10),n++;for(;n++0&&-1==="\0\r\n\x85\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>e/2-1){r=" ... ",n+=5;break}for(o="",a=this.position;ae/2-1){o=" ... ",a-=5;break}return u=this.buffer.slice(n,a),_$common_7.repeat(" ",t)+r+u+o+"\n"+_$common_7.repeat(" ",t+this.position-n+r.length)+"^"},Mark.prototype.toString=function(t){var e,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(e=this.getSnippet())&&(r+=":\n"+e),r},_$mark_11=Mark;var TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"],_$type_18=function(t,e){var r,n;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(e))throw new _$exception_9('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=(r=e.styleAliases||null,n={},null!==r&&Object.keys(r).forEach((function(t){r[t].forEach((function(e){n[String(e)]=t}))})),n),-1===YAML_NODE_KINDS.indexOf(this.kind))throw new _$exception_9('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')},_$schema_12={};function compileList(t,e,r){var n=[];return t.include.forEach((function(t){r=compileList(t,e,r)})),t[e].forEach((function(t){r.forEach((function(e,r){e.tag===t.tag&&e.kind===t.kind&&n.push(r)})),r.push(t)})),r.filter((function(t,e){return-1===n.indexOf(e)}))}function Schema(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach((function(t){if(t.loadKind&&"scalar"!==t.loadKind)throw new _$exception_9("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=function(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(t){r[t.kind][t.tag]=r.fallback[t.tag]=t}for(t=0,e=arguments.length;t=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/,_$float_21=new _$type_18("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!YAML_FLOAT_PATTERN.test(t)||"_"===t[t.length-1])},construct:function(t){var e,r,n,o;return r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:e.indexOf(":")>=0?(e.split(":").forEach((function(t){o.unshift(parseFloat(t,10))})),e=0,n=1,o.forEach((function(t){e+=t*n,n*=60})),r*e):r*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||_$common_7.isNegativeZero(t))},represent:function(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(_$common_7.isNegativeZero(t))return"-0.0";return r=t.toString(10),SCIENTIFIC_WITHOUT_DOT.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"}),_$json_17=new _$schema_12({include:[_$failsafe_16],implicit:[_$null_28,_$bool_20,_$int_22,_$float_21]}),_$core_13=new _$schema_12({include:[_$json_17]}),YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),_$timestamp_34=new _$type_18("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==YAML_DATE_REGEXP.exec(t)||null!==YAML_TIMESTAMP_REGEXP.exec(t))},construct:function(t){var e,r,n,o,a,u,i,s,c=0,l=null;if(null===(e=YAML_DATE_REGEXP.exec(t))&&(e=YAML_TIMESTAMP_REGEXP.exec(t)),null===e)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,o=+e[3],!e[4])return new Date(Date.UTC(r,n,o));if(a=+e[4],u=+e[5],i=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+="0";c=+c}return e[9]&&(l=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(l=-l)),s=new Date(Date.UTC(r,n,o,a,u,i,c)),l&&s.setTime(s.getTime()-l),s},instanceOf:Date,represent:function(t){return t.toISOString()}}),_$merge_27=new _$type_18("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),NodeBuffer;try{var _require=require;NodeBuffer=_require("buffer").Buffer}catch(__){}var BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r",_$binary_19=new _$type_18("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,r,n=0,o=t.length,a=BASE64_MAP;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8==0},construct:function(t){var e,r,n=t.replace(/[\r\n=]/g,""),o=n.length,a=BASE64_MAP,u=0,i=[];for(e=0;e>16&255),i.push(u>>8&255),i.push(255&u)),u=u<<6|a.indexOf(n.charAt(e));return 0==(r=o%4*6)?(i.push(u>>16&255),i.push(u>>8&255),i.push(255&u)):18===r?(i.push(u>>10&255),i.push(u>>2&255)):12===r&&i.push(u>>4&255),NodeBuffer?NodeBuffer.from?NodeBuffer.from(i):new NodeBuffer(i):i},predicate:function(t){return NodeBuffer&&NodeBuffer.isBuffer(t)},represent:function(t){var e,r,n="",o=0,a=t.length,u=BASE64_MAP;for(e=0;e>18&63],n+=u[o>>12&63],n+=u[o>>6&63],n+=u[63&o]),o=(o<<8)+t[e];return 0==(r=a%3)?(n+=u[o>>18&63],n+=u[o>>12&63],n+=u[o>>6&63],n+=u[63&o]):2===r?(n+=u[o>>10&63],n+=u[o>>4&63],n+=u[o<<2&63],n+=u[64]):1===r&&(n+=u[o>>2&63],n+=u[o<<4&63],n+=u[64],n+=u[64]),n}}),_hasOwnProperty=Object.prototype.hasOwnProperty,_toString=Object.prototype.toString,_$omap_29=new _$type_18("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,r,n,o,a,u=[],i=t;for(e=0,r=i.length;e3)return!1;if("/"!==e[e.length-n.length-1])return!1}return!0},construct:function(t){var e=t,r=/\/([gim]*)$/.exec(t),n="";return"/"===e[0]&&(r&&(n=r[1]),e=e.slice(1,e.length-n.length-1)),new RegExp(e,n)},predicate:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},represent:function(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}}),esprima;try{var ___require_23=require;esprima=___require_23("esprima")}catch(_){"undefined"!=typeof window&&(esprima=window.esprima)}var _$function_23=new _$type_18("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(t){if(null===t)return!1;try{var e="("+t+")",r=esprima.parse(e,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(n){return!1}},construct:function(t){var e,r="("+t+")",n=esprima.parse(r,{range:!0}),o=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(t){o.push(t.name)})),e=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(o,r.slice(e[0]+1,e[1]-1)):new Function(o,"return "+r.slice(e[0],e[1]))},predicate:function(t){return"[object Function]"===Object.prototype.toString.call(t)},represent:function(t){return t.toString()}}),_$default_full_14=_$schema_12.DEFAULT=new _$schema_12({include:[_$default_safe_15],explicit:[_$undefined_25,_$regexp_24,_$function_23]}),_$loader_10={},___hasOwnProperty_10=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(t){return Object.prototype.toString.call(t)}function is_EOL(t){return 10===t||13===t}function is_WHITE_SPACE(t){return 9===t||32===t}function is_WS_OR_EOL(t){return 9===t||32===t||10===t||13===t}function is_FLOW_INDICATOR(t){return 44===t||91===t||93===t||123===t||125===t}function fromHexCode(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function simpleEscapeSequence(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function charFromCodepoint(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256),i=0;i<256;i++)simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0,simpleEscapeMap[i]=simpleEscapeSequence(i);function State(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||_$default_full_14,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(t,e){return new _$exception_9(e,new _$mark_11(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function throwError(t,e){throw generateError(t,e)}function throwWarning(t,e){t.onWarning&&t.onWarning.call(null,generateError(t,e))}var directiveHandlers={YAML:function(t,e,r){var n,o,a;null!==t.version&&throwError(t,"duplication of %YAML directive"),1!==r.length&&throwError(t,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&throwError(t,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),a=parseInt(n[2],10),1!==o&&throwError(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=a<2,1!==a&&2!==a&&throwWarning(t,"unsupported YAML version of the document")},TAG:function(t,e,r){var n,o;2!==r.length&&throwError(t,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],PATTERN_TAG_HANDLE.test(n)||throwError(t,"ill-formed tag handle (first argument) of the TAG directive"),___hasOwnProperty_10.call(t.tagMap,n)&&throwError(t,'there is a previously declared suffix for "'+n+'" tag handle'),PATTERN_TAG_URI.test(o)||throwError(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[n]=o}};function captureSegment(t,e,r,n){var o,a,u,i;if(e1&&(t.result+=_$common_7.repeat("\n",e-1))}function readBlockSequence(t,e){var r,n,o=t.tag,a=t.anchor,u=[],i=!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=u),n=t.input.charCodeAt(t.position);0!==n&&45===n&&is_WS_OR_EOL(t.input.charCodeAt(t.position+1));)if(i=!0,t.position++,skipSeparationSpace(t,!0,-1)&&t.lineIndent<=e)u.push(null),n=t.input.charCodeAt(t.position);else if(r=t.line,composeNode(t,e,CONTEXT_BLOCK_IN,!1,!0),u.push(t.result),skipSeparationSpace(t,!0,-1),n=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&0!==n)throwError(t,"bad indentation of a sequence entry");else if(t.lineIndente?_=1:t.lineIndent===e?_=0:t.lineIndente?_=1:t.lineIndent===e?_=0:t.lineIndente)&&(composeNode(t,e,CONTEXT_BLOCK_OUT,!0,o)&&(d?_=t.result:h=t.result),d||(storeMappingPair(t,l,p,f,_,h,a,u),f=_=h=null),skipSeparationSpace(t,!0,-1),i=t.input.charCodeAt(t.position)),t.lineIndent>e&&0!==i)throwError(t,"bad indentation of a mapping entry");else if(t.lineIndent=0))break;0===o?throwError(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?throwError(t,"repeat of an indentation width identifier"):(l=e+o-1,c=!0)}if(is_WHITE_SPACE(a)){do{a=t.input.charCodeAt(++t.position)}while(is_WHITE_SPACE(a));if(35===a)do{a=t.input.charCodeAt(++t.position)}while(!is_EOL(a)&&0!==a)}for(;0!==a;){for(readLineBreak(t),t.lineIndent=0,a=t.input.charCodeAt(t.position);(!c||t.lineIndentl&&(l=t.lineIndent),is_EOL(a))p++;else{if(t.lineIndent0){for(o=u,a=0;o>0;o--)(u=fromHexCode(i=t.input.charCodeAt(++t.position)))>=0?a=(a<<4)+u:throwError(t,"expected hexadecimal character");t.result+=charFromCodepoint(a),t.position++}else throwError(t,"unknown escape sequence");r=n=t.position}else is_EOL(i)?(captureSegment(t,r,n,!0),writeFoldedLines(t,skipSeparationSpace(t,!1,e)),r=n=t.position):t.position===t.lineStart&&testDocumentSeparator(t)?throwError(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}throwError(t,"unexpected end of the stream within a double quoted scalar")}(t,p)?d=!0:function(t){var e,r,n;if(42!==(n=t.input.charCodeAt(t.position)))return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!is_WS_OR_EOL(n)&&!is_FLOW_INDICATOR(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&throwError(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),___hasOwnProperty_10.call(t.anchorMap,r)||throwError(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],skipSeparationSpace(t,!0,-1),!0}(t)?(d=!0,null===t.tag&&null===t.anchor||throwError(t,"alias node should not have any properties")):function(t,e,r){var n,o,a,u,i,s,c,l,p=t.kind,f=t.result;if(is_WS_OR_EOL(l=t.input.charCodeAt(t.position))||is_FLOW_INDICATOR(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n)))return!1;for(t.kind="scalar",t.result="",o=a=t.position,u=!1;0!==l;){if(58===l){if(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n))break}else if(35===l){if(is_WS_OR_EOL(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&testDocumentSeparator(t)||r&&is_FLOW_INDICATOR(l))break;if(is_EOL(l)){if(i=t.line,s=t.lineStart,c=t.lineIndent,skipSeparationSpace(t,!1,-1),t.lineIndent>=e){u=!0,l=t.input.charCodeAt(t.position);continue}t.position=a,t.line=i,t.lineStart=s,t.lineIndent=c;break}}u&&(captureSegment(t,o,a,!1),writeFoldedLines(t,t.line-i),o=a=t.position,u=!1),is_WHITE_SPACE(l)||(a=t.position+1),l=t.input.charCodeAt(++t.position)}return captureSegment(t,o,a,!1),!!t.result||(t.kind=p,t.result=f,!1)}(t,p,CONTEXT_FLOW_IN===r)&&(d=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===_&&(d=i&&readBlockSequence(t,f))),null!==t.tag&&"!"!==t.tag)if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&throwError(t,'unacceptable node kind for ! tag; it should be "scalar", not "'+t.kind+'"'),s=0,c=t.implicitTypes.length;s tag; it should be "'+l.kind+'", not "'+t.kind+'"'),l.resolve(t.result)?(t.result=l.construct(t.result),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):throwError(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):throwError(t,"unknown tag !<"+t.tag+">");return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||d}function readDocument(t){var e,r,n,o,a=t.position,u=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};0!==(o=t.input.charCodeAt(t.position))&&(skipSeparationSpace(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==o));){for(u=!0,o=t.input.charCodeAt(++t.position),e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);for(n=[],(r=t.input.slice(e,t.position)).length<1&&throwError(t,"directive name must not be less than one character in length");0!==o;){for(;is_WHITE_SPACE(o);)o=t.input.charCodeAt(++t.position);if(35===o){do{o=t.input.charCodeAt(++t.position)}while(0!==o&&!is_EOL(o));break}if(is_EOL(o))break;for(e=t.position;0!==o&&!is_WS_OR_EOL(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(e,t.position))}0!==o&&readLineBreak(t),___hasOwnProperty_10.call(directiveHandlers,r)?directiveHandlers[r](t,r,n):throwWarning(t,'unknown document directive "'+r+'"')}skipSeparationSpace(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,skipSeparationSpace(t,!0,-1)):u&&throwError(t,"directives end mark is expected"),composeNode(t,t.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(t,!0,-1),t.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(t.input.slice(a,t.position))&&throwWarning(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&testDocumentSeparator(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,skipSeparationSpace(t,!0,-1)):t.position0?t.charCodeAt(a-1):null,_=_&&isPlainSafe(u,i)}else{for(a=0;an&&" "!==t[f+1],f=a);else if(!isPrintable(u))return STYLE_DOUBLE;i=a>0?t.charCodeAt(a-1):null,_=_&&isPlainSafe(u,i)}l=l||p&&a-f-1>n&&" "!==t[f+1]}return c||l?r>9&&needIndentIndicator(t)?STYLE_DOUBLE:l?STYLE_FOLDED:STYLE_LITERAL:_&&!o(t)?STYLE_PLAIN:STYLE_SINGLE}function writeScalar(t,e,r,n){t.dump=function(){if(0===e.length)return"''";if(!t.noCompatMode&&-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(e))return"'"+e+"'";var o=t.indent*Math.max(1,r),a=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),u=n||t.flowLevel>-1&&r>=t.flowLevel;switch(chooseScalarStyle(e,u,t.indent,a,(function(e){return function(t,e){var r,n;for(r=0,n=t.implicitTypes.length;r"+blockHeader(e,t.indent)+dropEndingNewline(indentString(function(t,e){for(var r,n,o,a=/(\n+)([^\n]*)/g,u=(o=-1!==(o=t.indexOf("\n"))?o:t.length,a.lastIndex=o,foldLine(t.slice(0,o),e)),i="\n"===t[0]||" "===t[0];n=a.exec(t);){var s=n[1],c=n[2];r=" "===c[0],u+=s+(i||r||""===c?"":"\n")+foldLine(c,e),i=r}return u}(e,a),o));case STYLE_DOUBLE:return'"'+function(t){for(var e,r,n,o="",a=0;a=55296&&e<=56319&&(r=t.charCodeAt(a+1))>=56320&&r<=57343?(o+=encodeHex(1024*(e-55296)+r-56320+65536),a++):o+=!(n=ESCAPE_SEQUENCES[e])&&isPrintable(e)?t[a]:n||encodeHex(e);return o}(e)+'"';default:throw new _$exception_9("impossible error: invalid scalar style")}}()}function blockHeader(t,e){var r=needIndentIndicator(t)?String(e):"",n="\n"===t[t.length-1];return r+(!n||"\n"!==t[t.length-2]&&"\n"!==t?n?"":"-":"+")+"\n"}function dropEndingNewline(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function foldLine(t,e){if(""===t||" "===t[0])return t;for(var r,n,o=/ [^ ]/g,a=0,u=0,i=0,s="";r=o.exec(t);)(i=r.index)-a>e&&(n=u>a?u:i,s+="\n"+t.slice(a,n),a=n+1),u=i;return s+="\n",t.length-a>e&&u>a?s+=t.slice(a,u)+"\n"+t.slice(u+1):s+=t.slice(a),s.slice(1)}function detectType(t,e,r){var n,o,a,u,i,s;for(a=0,u=(o=r?t.explicitTypes:t.implicitTypes).length;a tag resolver accepts not "'+s+'" style');n=i.represent[s](e,s)}t.dump=n}return!0}return!1}function writeNode(t,e,r,n,o,a){t.tag=null,t.dump=r,detectType(t,r,!1)||detectType(t,r,!0);var u=___toString_8.call(t.dump);n&&(n=t.flowLevel<0||t.flowLevel>e);var i,s,c="[object Object]"===u||"[object Array]"===u;if(c&&(s=-1!==(i=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||s||2!==t.indent&&e>0)&&(o=!1),s&&t.usedDuplicates[i])t.dump="*ref_"+i;else{if(c&&s&&!t.usedDuplicates[i]&&(t.usedDuplicates[i]=!0),"[object Object]"===u)n&&0!==Object.keys(t.dump).length?(function(t,e,r,n){var o,a,u,i,s,c,l="",p=t.tag,f=Object.keys(r);if(!0===t.sortKeys)f.sort();else if("function"==typeof t.sortKeys)f.sort(t.sortKeys);else if(t.sortKeys)throw new _$exception_9("sortKeys must be a boolean or a function");for(o=0,a=f.length;o1024)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?c+="?":c+="? "),c+=t.dump,s&&(c+=generateNextLine(t,e)),writeNode(t,e+1,i,!0,s)&&(t.dump&&CHAR_LINE_FEED===t.dump.charCodeAt(0)?c+=":":c+=": ",l+=c+=t.dump));t.tag=p,t.dump=l||"{}"}(t,e,t.dump,o),s&&(t.dump="&ref_"+i+t.dump)):(function(t,e,r){var n,o,a,u,i,s="",c=t.tag,l=Object.keys(r);for(n=0,o=l.length;n1024&&(i+="? "),i+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),writeNode(t,e,u,!1,!1)&&(s+=i+=t.dump));t.tag=c,t.dump="{"+s+"}"}(t,e,t.dump),s&&(t.dump="&ref_"+i+" "+t.dump));else if("[object Array]"===u){var l=t.noArrayIndent&&e>0?e-1:e;n&&0!==t.dump.length?(function(t,e,r,n){var o,a,u="",i=t.tag;for(o=0,a=r.length;o "+t.dump)}return!0}function getDuplicateReferences(t,e){var r,n,o=[],a=[];for(function t(e,r,n){var o,a,u;if(null!==e&&"object"==typeof e)if(-1!==(a=r.indexOf(e)))-1===n.indexOf(a)&&n.push(a);else if(r.push(e),Array.isArray(e))for(a=0,u=e.length;a0?o-4:o;for(r=0;r>16&255,u[i++]=e>>8&255,u[i++]=255&e;return 2===a&&(e=revLookup[t.charCodeAt(r)]<<2|revLookup[t.charCodeAt(r+1)]>>4,u[i++]=255&e),1===a&&(e=revLookup[t.charCodeAt(r)]<<10|revLookup[t.charCodeAt(r+1)]<<4|revLookup[t.charCodeAt(r+2)]>>2,u[i++]=e>>8&255,u[i++]=255&e),u},fromByteArray:function(t){for(var e,r=t.length,n=r%3,o=[],a=0,u=r-n;au?u:a+16383));return 1===n?(e=t[r-1],o.push(lookup[e>>2]+lookup[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],o.push(lookup[e>>10]+lookup[e>>4&63]+lookup[e<<2&63]+"=")),o.join("")}},lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",__i_1=0,len=code.length;__i_10)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function encodeChunk(t,e,r){for(var n,o,a=[],u=e;u>18&63]+lookup[o>>12&63]+lookup[o>>6&63]+lookup[63&o]);return a.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var _$ieee754_3={read:function(t,e,r,n,o){var a,u,i=8*o-n-1,s=(1<>1,l=-7,p=r?o-1:0,f=r?-1:1,_=t[e+p];for(p+=f,a=_&(1<<-l)-1,_>>=-l,l+=i;l>0;a=256*a+t[e+p],p+=f,l-=8);for(u=a&(1<<-l)-1,a>>=-l,l+=n;l>0;u=256*u+t[e+p],p+=f,l-=8);if(0===a)a=1-c;else{if(a===s)return u?NaN:1/0*(_?-1:1);u+=Math.pow(2,n),a-=c}return(_?-1:1)*u*Math.pow(2,a-n)},write:function(t,e,r,n,o,a){var u,i,s,c=8*a-o-1,l=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,_=n?0:a-1,h=n?1:-1,d=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(i=isNaN(e)?1:0,u=l):(u=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-u))<1&&(u--,s*=2),(e+=u+p>=1?f/s:f*Math.pow(2,1-p))*s>=2&&(u++,s/=2),u+p>=l?(i=0,u=l):u+p>=1?(i=(e*s-1)*Math.pow(2,o),u+=p):(i=e*Math.pow(2,p-1)*Math.pow(2,o),u=0));o>=8;t[r+_]=255&i,_+=h,i/=256,o-=8);for(u=u<0;t[r+_]=255&u,_+=h,u/=256,c-=8);t[r+_-h]|=128*d}},_$base64_4={exports:{}};(function(t,e){(function(){!function(t,e){var r,n;"object"==typeof _$base64_4.exports?_$base64_4.exports=e():"function"==typeof define&&define.amd?define(e):(r=t.Base64,(n=e()).noConflict=function(){return t.Base64=r,n},t.Meteor&&(Base64=n),t.Base64=n)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:this,(function(){"use strict";var t,r="function"==typeof atob,n="function"==typeof btoa,o="function"==typeof e,a="function"==typeof TextDecoder?new TextDecoder:void 0,u="function"==typeof TextEncoder?new TextEncoder:void 0,i=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),s=(t={},i.forEach((function(e,r){return t[e]=r})),t),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,l=String.fromCharCode.bind(String),p="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t,e){return void 0===e&&(e=function(t){return t}),new Uint8Array(Array.prototype.slice.call(t,0).map(e))},f=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},_=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},h=function(t){for(var e,r,n,o,a="",u=t.length%3,s=0;s255||(n=t.charCodeAt(s++))>255||(o=t.charCodeAt(s++))>255)throw new TypeError("invalid character found");a+=i[(e=r<<16|n<<8|o)>>18&63]+i[e>>12&63]+i[e>>6&63]+i[63&e]}return u?a.slice(0,u-3)+"===".substring(u):a},d=n?function(t){return btoa(t)}:o?function(t){return e.from(t,"binary").toString("base64")}:h,y=o?function(t){return e.from(t).toString("base64")}:function(t){for(var e=[],r=0,n=t.length;r>>6)+l(128|63&e):l(224|e>>>12&15)+l(128|e>>>6&63)+l(128|63&e);var e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return l(240|e>>>18&7)+l(128|e>>>12&63)+l(128|e>>>6&63)+l(128|63&e)},m=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,A=function(t){return t.replace(m,g)},b=o?function(t){return e.from(t,"utf8").toString("base64")}:u?function(t){return y(u.encode(t))}:function(t){return d(A(t))},E=function(t,e){return void 0===e&&(e=!1),e?f(b(t)):b(t)},w=function(t){return E(t,!0)},C=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,x=function(t){switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return l(55296+(e>>>10))+l(56320+(1023&e));case 3:return l((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return l((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},S=function(t){return t.replace(C,x)},O=function(t){if(t=t.replace(/\s+/g,""),!c.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var e,r,n,o="",a=0;a>16&255):64===n?l(e>>16&255,e>>8&255):l(e>>16&255,e>>8&255,255&e);return o},$=r?function(t){return atob(_(t))}:o?function(t){return e.from(t,"base64").toString("binary")}:O,F=o?function(t){return p(e.from(t,"base64"))}:function(t){return p($(t),(function(t){return t.charCodeAt(0)}))},L=function(t){return F(T(t))},P=o?function(t){return e.from(t,"base64").toString("utf8")}:a?function(t){return a.decode(F(t))}:function(t){return S($(t))},T=function(t){return _(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},R=function(t){return P(T(t))},j=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},k=function(){var t=function(t,e){return Object.defineProperty(String.prototype,t,j(e))};t("fromBase64",(function(){return R(this)})),t("toBase64",(function(t){return E(this,t)})),t("toBase64URI",(function(){return E(this,!0)})),t("toBase64URL",(function(){return E(this,!0)})),t("toUint8Array",(function(){return L(this)}))},D=function(){var t=function(t,e){return Object.defineProperty(Uint8Array.prototype,t,j(e))};t("toBase64",(function(t){return v(this,t)})),t("toBase64URI",(function(){return v(this,!0)})),t("toBase64URL",(function(){return v(this,!0)}))},I={version:"3.7.2",VERSION:"3.7.2",atob:$,atobPolyfill:O,btoa:d,btoaPolyfill:h,fromBase64:R,toBase64:E,encode:E,encodeURI:w,encodeURL:w,utob:A,btou:S,decode:R,isValid:function(t){if("string"!=typeof t)return!1;var e=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(e)||!/[^\s0-9a-zA-Z\-_]/.test(e)},fromUint8Array:v,toUint8Array:L,extendString:k,extendUint8Array:D,extendBuiltins:function(){k(),D()},Base64:{}};return Object.keys(I).forEach((function(t){return I.Base64[t]=I[t]})),I}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},_$buffer_2({}).Buffer),_$base64_4=_$base64_4.exports;var _$preprocessors_72={};Object.defineProperty(_$preprocessors_72,"__esModule",{value:!0}),_$preprocessors_72.default=void 0;var keys,___default_72=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},(keys=["dm1lc3M","c3NyOi8v","dHJvamFu","c3M6Ly","c3NkOi8v","c2hhZG93","aHR0c"],{name:"Base64 Pre-processor",test:function(t){return keys.some((function(e){return-1!==t.indexOf(e)}))},parse:function(t){return _$base64_4.Base64.decode(t)}}),{name:"Clash Pre-processor",test:function(t){return/proxies/.test(t)},parse:function(t){return(0,_$staticJsYaml_65.safeLoad)(t).proxies.map((function(t){return JSON.stringify(t)})).join("\n")}},{name:"SSD Pre-processor",test:function(t){return 0===t.indexOf("ssd://")},parse:function(t){for(var e=[],r=JSON.parse(_$base64_4.Base64.decode(t.split("ssd://")[1])),n=r.port,o=r.encryption,a=r.password,u=r.servers,i=0;it.length)&&(e=t.length);for(var r=0,n=new Array(e);r (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleWebsocket() {\n if (obfs.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (shadowsocks/vmess/trojan/https/http/snell/socks5/socks5_tls) {\n return proxy;\n}\n\nshadowsocks = tag equals "ss" address (method/passwordk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess" address (vmess_uuid/vmess_aead/ws/ws_path/ws_headers/method/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleWebsocket();\n}\ntrojan = tag equals "trojan" address (passwordk/ws/ws_path/ws_headers/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleWebsocket();\n}\nhttps = tag equals "https" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http" address (username password)? (fast_open/others)* {\n proxy.type = "http";\n}\nsnell = tag equals "snell" address (snell_version/snell_psk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "snell";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n $set(proxy, "obfs-opts.mode", obfs.type);\n $set(proxy, "obfs-opts.host", obfs.host);\n $set(proxy, "obfs-opts.path", obfs.path);\n }\n}\nsocks5 = tag equals "socks5" address (username password)? (fast_open/others)* {\n proxy.type = "socks5";\n}\nsocks5_tls = tag equals "socks5-tls" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "socks5";\n proxy.tls = true;\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma match:[^,]+ { proxy.password = match.join(""); }\n\ntls = comma "tls" equals flag:bool { proxy.tls = flag; }\nsni = comma "sni" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nsnell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join(""); }\nsnell_version = comma "version" equals match:$[0-9]+ { proxy.version = parseInt(match.trim()); }\n\npasswordk = comma "password" equals match:[^,]+ { proxy.password = match.join(""); }\nvmess_uuid = comma "username" equals match:[^,]+ { proxy.uuid = match.join(""); }\nvmess_aead = comma "vmess-aead" equals flag:bool { proxy.alterId = 0; }\n\nmethod = comma "encrypt-method" equals cipher:cipher {\n proxy.cipher = cipher;\n}\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nws = comma "ws" equals flag:bool { obfs.type = "ws"; }\nws_headers = comma "ws-headers" equals "Host:" host:domain {\n obfs.host = host;\n}\nws_path = comma "ws-path" equals path:uri { obfs.path = path; }\n\nobfs = comma "obfs" equals type:("http"/"tls") { obfs.type = type; }\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; };\nobfs_uri = comma "obfs-uri" equals path:uri { obfs.path = path }\nuri = $[^,]+\n\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \r\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'],(raw=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleWebsocket() {\n if (obfs.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (shadowsocks/vmess/trojan/https/http/snell/socks5/socks5_tls) {\n return proxy;\n}\n\nshadowsocks = tag equals "ss" address (method/passwordk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess" address (vmess_uuid/vmess_aead/ws/ws_path/ws_headers/method/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleWebsocket();\n}\ntrojan = tag equals "trojan" address (passwordk/ws/ws_path/ws_headers/tls/sni/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleWebsocket();\n}\nhttps = tag equals "https" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http" address (username password)? (fast_open/others)* {\n proxy.type = "http";\n}\nsnell = tag equals "snell" address (snell_version/snell_psk/obfs/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "snell";\n // handle obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n $set(proxy, "obfs-opts.mode", obfs.type);\n $set(proxy, "obfs-opts.host", obfs.host);\n $set(proxy, "obfs-opts.path", obfs.path);\n }\n}\nsocks5 = tag equals "socks5" address (username password)? (fast_open/others)* {\n proxy.type = "socks5";\n}\nsocks5_tls = tag equals "socks5-tls" address (username password)? (sni/tls_verification/fast_open/others)* {\n proxy.type = "socks5";\n proxy.tls = true;\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma match:[^,]+ { proxy.password = match.join(""); }\n\ntls = comma "tls" equals flag:bool { proxy.tls = flag; }\nsni = comma "sni" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nsnell_psk = comma "psk" equals match:[^,]+ { proxy.psk = match.join(""); }\nsnell_version = comma "version" equals match:$[0-9]+ { proxy.version = parseInt(match.trim()); }\n\npasswordk = comma "password" equals match:[^,]+ { proxy.password = match.join(""); }\nvmess_uuid = comma "username" equals match:[^,]+ { proxy.uuid = match.join(""); }\nvmess_aead = comma "vmess-aead" equals flag:bool { proxy.alterId = 0; }\n\nmethod = comma "encrypt-method" equals cipher:cipher {\n proxy.cipher = cipher;\n}\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nws = comma "ws" equals flag:bool { obfs.type = "ws"; }\nws_headers = comma "ws-headers" equals "Host:" host:domain {\n obfs.host = host;\n}\nws_path = comma "ws-path" equals path:uri { obfs.path = path; }\n\nobfs = comma "obfs" equals type:("http"/"tls") { obfs.type = type; }\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; };\nobfs_uri = comma "obfs-uri" equals path:uri { obfs.path = path }\nuri = $[^,]+\n\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \\r\\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'])||(raw=strings.slice(0)),_templateObject=Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}))));_$surge_69.default=___default_69;var _$loon_67={},___templateObject_67;Object.defineProperty(_$loon_67,"__esModule",{value:!0}),_$loon_67.default=void 0;var __strings_67,__raw_67,___default_67=String.raw(___templateObject_67||(__strings_67=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const transport = {};\n const $ = {};\n\n function handleTransport() {\n if (transport.type === "tcp") { /* do nothing */ }\n else if (transport.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", transport.path);\n $set(proxy, "ws-opts.headers.Host", transport.host);\n } else if (transport.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", transport.path);\n $set(proxy, "http-opts.headers.Host", transport.host);\n }\n }\n}\n\nstart = (shadowsocksr/shadowsocks/vmess/vless/trojan/https/http) {\n return proxy;\n}\n\nshadowsocksr = tag equals "shadowsocksr"i address method password (ssr_protocol/ssr_protocol_param/obfs_ssr/obfs_ssr_param/obfs_host/obfs_uri/fast_open/udp_relay/others)*{\n proxy.type = "ssr";\n // handle ssr obfs\n proxy.obfs = obfs.type;\n}\nshadowsocks = tag equals "shadowsocks"i address method password (obfs_ss/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/vmess_alterId/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleTransport();\n}\nvless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vless";\n handleTransport();\n}\ntrojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleTransport();\n}\nhttps = tag equals "https"i address (username password)? (tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http"i address (username password)? (fast_open/udp_relay/others)* {\n proxy.type = "http";\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n throw new Error("Invalid domain: " + domain);\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n throw new Error("Invalid port number: " + port);\n}\n\nmethod = comma cipher:cipher { proxy.cipher = cipher; }\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma \'"\' match:[^"]* \'"\' { proxy.password = match.join(""); }\nuuid = comma \'"\' match:[^"]+ \'"\' { proxy.uuid = match.join(""); }\n\nobfs_ss = comma "obfs-name" equals type:("http"/"tls") { obfs.type = type; }\n\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; }\nobfs_ssr_param = comma "obfs-param" equals match:$[^,]+ { proxy["obfs-param"] = match; }\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\nuri = $[^,]+\n\ntransport = comma "transport" equals type:("tcp"/"ws"/"http") { transport.type = type; }\ntransport_host = comma "host" equals host:domain { transport.host = host; }\ntransport_path = comma "path" equals path:uri { transport.path = path; }\n\nssr_protocol = comma "protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; }\nssr_protocol_param = comma "protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nvmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseInt(alterId); } \n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-name" equals host:domain { proxy.sni = host; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \r\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'],(__raw_67=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parser initializer\n{\n const proxy = {};\n const obfs = {};\n const transport = {};\n const $ = {};\n\n function handleTransport() {\n if (transport.type === "tcp") { /* do nothing */ }\n else if (transport.type === "ws") {\n proxy.network = "ws";\n $set(proxy, "ws-opts.path", transport.path);\n $set(proxy, "ws-opts.headers.Host", transport.host);\n } else if (transport.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", transport.path);\n $set(proxy, "http-opts.headers.Host", transport.host);\n }\n }\n}\n\nstart = (shadowsocksr/shadowsocks/vmess/vless/trojan/https/http) {\n return proxy;\n}\n\nshadowsocksr = tag equals "shadowsocksr"i address method password (ssr_protocol/ssr_protocol_param/obfs_ssr/obfs_ssr_param/obfs_host/obfs_uri/fast_open/udp_relay/others)*{\n proxy.type = "ssr";\n // handle ssr obfs\n proxy.obfs = obfs.type;\n}\nshadowsocks = tag equals "shadowsocks"i address method password (obfs_ss/obfs_host/obfs_uri/fast_open/udp_relay/others)* {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts.mode", obfs.type);\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n}\nvmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/vmess_alterId/fast_open/udp_relay/others)* {\n proxy.type = "vmess";\n handleTransport();\n}\nvless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "vless";\n handleTransport();\n}\ntrojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "trojan";\n handleTransport();\n}\nhttps = tag equals "https"i address (username password)? (tls_host/tls_verification/fast_open/udp_relay/others)* {\n proxy.type = "http";\n proxy.tls = true;\n}\nhttp = tag equals "http"i address (username password)? (fast_open/udp_relay/others)* {\n proxy.type = "http";\n}\n\naddress = comma server:server comma port:port {\n proxy.server = server;\n proxy.port = port;\n}\n\nserver = ip/domain\n\nip = & {\n const start = peg$currPos;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n j++;\n }\n peg$currPos = j;\n $.ip = input.substring(start, j).trim();\n return true;\n} { return $.ip; }\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n throw new Error("Invalid domain: " + domain);\n}\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n throw new Error("Invalid port number: " + port);\n}\n\nmethod = comma cipher:cipher { proxy.cipher = cipher; }\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\n\nusername = & {\n let j = peg$currPos; \n let start, end;\n let first = true;\n while (j < input.length) {\n if (input[j] === \',\') {\n if (first) {\n start = j + 1;\n first = false;\n } else {\n end = j;\n break;\n }\n }\n j++;\n }\n const match = input.substring(start, end);\n if (match.indexOf("=") === -1) {\n $.username = match;\n peg$currPos = end;\n return true;\n }\n} { proxy.username = $.username; }\npassword = comma \'"\' match:[^"]* \'"\' { proxy.password = match.join(""); }\nuuid = comma \'"\' match:[^"]+ \'"\' { proxy.uuid = match.join(""); }\n\nobfs_ss = comma "obfs-name" equals type:("http"/"tls") { obfs.type = type; }\n\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; }\nobfs_ssr_param = comma "obfs-param" equals match:$[^,]+ { proxy["obfs-param"] = match; }\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\nuri = $[^,]+\n\ntransport = comma "transport" equals type:("tcp"/"ws"/"http") { transport.type = type; }\ntransport_host = comma "host" equals host:domain { transport.host = host; }\ntransport_path = comma "path" equals path:uri { transport.path = path; }\n\nssr_protocol = comma "protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; }\nssr_protocol_param = comma "protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nvmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseInt(alterId); } \n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-name" equals host:domain { proxy.sni = host; }\ntls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }\n\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\nudp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }\n\ntag = match:[^=,]* { proxy.name = match.join("").trim(); }\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \\r\\t]*\nbool = b:("true"/"false") { return b === "true" }\nothers = comma [^=,]+ equals [^=,]+\n'])||(__raw_67=__strings_67.slice(0)),___templateObject_67=Object.freeze(Object.defineProperties(__strings_67,{raw:{value:Object.freeze(__raw_67)}}))));_$loon_67.default=___default_67;var _$qx_68={},___templateObject_68;Object.defineProperty(_$qx_68,"__esModule",{value:!0}),_$qx_68.default=void 0;var __strings_68,__raw_68,___default_68=String.raw(___templateObject_68||(__strings_68=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parse initializer\n{\n\tconst proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleObfs() {\n if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.network = "ws";\n if (obfs.type === \'wss\') {\n proxy.tls = true;\n }\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n } else if (obfs.type === "over-tls") {\n proxy.tls = true;\n proxy.sni = proxy.sni || proxy.server;\n } else if (obfs.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", obfs.path);\n $set(proxy, "http-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (trojan/shadowsocks/vmess/http/socks5) {\n return proxy\n}\n\ntrojan = "trojan" equals address\n (password/over_tls/tls_host/tls_verification/obfs/obfs_host/obfs_uri/tag/udp_relay/udp_over_tcp/fast_open/others)* {\n proxy.type = "trojan";\n handleObfs();\n}\n\nshadowsocks = "shadowsocks" equals address\n (password/method/obfs_ssr/obfs_ss/obfs_host/obfs_uri/ssr_protocol/ssr_protocol_param/tls_verification/udp_relay/udp_over_tcp/fast_open/tag/others)* {\n if (proxy.protocol) {\n proxy.type = "ssr";\n // handle ssr obfs\n if (obfs.host) proxy["obfs-param"] = obfs.host;\n if (obfs.type) proxy.obfs = obfs.type;\n } else {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts", {\n mode: obfs.type\n });\n } else if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.plugin = "v2ray-plugin";\n $set(proxy, "plugin-opts.mode", "websocket");\n if (obfs.type === "wss") {\n $set(proxy, "plugin-opts.tls", true);\n }\n } else if (obfs.type === \'over-tls\') {\n throw new Error(\'ss over-tls is not supported\');\n }\n if (obfs.type) {\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n }\n}\n\nvmess = "vmess" equals address\n (uuid/method/over_tls/tls_host/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/others)* {\n proxy.type = "vmess";\n handleObfs();\n}\n\nhttp = "http" equals address \n (username/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)*{\n proxy.type = "http";\n}\n\nsocks5 = "socks5" equals address\n (username/password/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)* {\n proxy.type = "socks5";\n}\n \naddress = server:server ":" port:port {\n proxy.server = server;\n proxy.port = port;\n}\nserver = ip/domain\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nip = & {\n const start = peg$currPos;\n let end;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n if (input[j] === ":") end = j;\n j++;\n }\n peg$currPos = end || j;\n $.ip = input.substring(start, end).trim();\n return true;\n} { return $.ip; }\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = comma "username" equals username:[^=,]+ { proxy.username = username.join("").trim(); }\npassword = comma "password" equals password:[^=,]+ { proxy.password = password.join("").trim(); }\nuuid = comma "password" equals uuid:[^=,]+ { proxy.uuid = uuid.join("").trim(); }\n\nmethod = comma "method" equals cipher:cipher { proxy.cipher = cipher };\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf-poly1305"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\naead = comma "aead" equals flag:bool { proxy.alterId = 0; }\n\nudp_relay = comma "udp-relay" equals flag:bool { proxy.udp = flag; }\nudp_over_tcp = comma "udp-over-tcp" equals flag:bool { throw new Error("UDP over TCP is not supported"); }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-host" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "tls-verification" equals flag:bool { \n if (!flag) {\n proxy["skip-cert-verify"] = true;\n }\n}\n\nobfs_ss = comma "obfs" equals type:("http"/"tls"/"wss"/"ws") { obfs.type = type; return type; }\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; return type; }\nobfs = comma "obfs" equals type:("wss"/"ws"/"over-tls"/"http") { obfs.type = type; return type; };\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\n\nssr_protocol = comma "ssr-protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; return protocol; }\nssr_protocol_param = comma "ssr-protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nuri = $[^,]+\n\ntag = comma "tag" equals tag:[^=,]+ { proxy.name = tag.join(""); }\nothers = comma [^=,]+ equals [^=,]+\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \r\t]*\nbool = b:("true"/"false") { return b === "true" }\n'],(__raw_68=['\n// global initializer\n{{\n function $set(obj, path, value) {\n if (Object(obj) !== obj) return obj;\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n path\n .slice(0, -1)\n .reduce((a, c, i) => (Object(a[c]) === a[c] ? a[c] : (a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1] ? [] : {})), obj)[\n path[path.length - 1]\n ] = value;\n return obj;\n }\n}}\n\n// per-parse initializer\n{\n\tconst proxy = {};\n const obfs = {};\n const $ = {};\n\n function handleObfs() {\n if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.network = "ws";\n if (obfs.type === \'wss\') {\n proxy.tls = true;\n }\n $set(proxy, "ws-opts.path", obfs.path);\n $set(proxy, "ws-opts.headers.Host", obfs.host);\n } else if (obfs.type === "over-tls") {\n proxy.tls = true;\n proxy.sni = proxy.sni || proxy.server;\n } else if (obfs.type === "http") {\n proxy.network = "http";\n $set(proxy, "http-opts.path", obfs.path);\n $set(proxy, "http-opts.headers.Host", obfs.host);\n }\n }\n}\n\nstart = (trojan/shadowsocks/vmess/http/socks5) {\n return proxy\n}\n\ntrojan = "trojan" equals address\n (password/over_tls/tls_host/tls_verification/obfs/obfs_host/obfs_uri/tag/udp_relay/udp_over_tcp/fast_open/others)* {\n proxy.type = "trojan";\n handleObfs();\n}\n\nshadowsocks = "shadowsocks" equals address\n (password/method/obfs_ssr/obfs_ss/obfs_host/obfs_uri/ssr_protocol/ssr_protocol_param/tls_verification/udp_relay/udp_over_tcp/fast_open/tag/others)* {\n if (proxy.protocol) {\n proxy.type = "ssr";\n // handle ssr obfs\n if (obfs.host) proxy["obfs-param"] = obfs.host;\n if (obfs.type) proxy.obfs = obfs.type;\n } else {\n proxy.type = "ss";\n // handle ss obfs\n if (obfs.type == "http" || obfs.type === "tls") {\n proxy.plugin = "obfs";\n $set(proxy, "plugin-opts", {\n mode: obfs.type\n });\n } else if (obfs.type === "ws" || obfs.type === "wss") {\n proxy.plugin = "v2ray-plugin";\n $set(proxy, "plugin-opts.mode", "websocket");\n if (obfs.type === "wss") {\n $set(proxy, "plugin-opts.tls", true);\n }\n } else if (obfs.type === \'over-tls\') {\n throw new Error(\'ss over-tls is not supported\');\n }\n if (obfs.type) {\n $set(proxy, "plugin-opts.host", obfs.host);\n $set(proxy, "plugin-opts.path", obfs.path);\n }\n }\n}\n\nvmess = "vmess" equals address\n (uuid/method/over_tls/tls_host/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/others)* {\n proxy.type = "vmess";\n handleObfs();\n}\n\nhttp = "http" equals address \n (username/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)*{\n proxy.type = "http";\n}\n\nsocks5 = "socks5" equals address\n (username/password/password/over_tls/tls_host/tls_verification/tag/fast_open/udp_relay/udp_over_tcp/others)* {\n proxy.type = "socks5";\n}\n \naddress = server:server ":" port:port {\n proxy.server = server;\n proxy.port = port;\n}\nserver = ip/domain\n\ndomain = match:[0-9a-zA-z-_.]+ { \n const domain = match.join(""); \n if (/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/.test(domain)) {\n return domain;\n }\n}\n\nip = & {\n const start = peg$currPos;\n let end;\n let j = start;\n while (j < input.length) {\n if (input[j] === ",") break;\n if (input[j] === ":") end = j;\n j++;\n }\n peg$currPos = end || j;\n $.ip = input.substring(start, end).trim();\n return true;\n} { return $.ip; }\n\nport = digits:[0-9]+ { \n const port = parseInt(digits.join(""), 10); \n if (port >= 80 && port <= 65535) {\n \treturn port;\n }\n}\n\nusername = comma "username" equals username:[^=,]+ { proxy.username = username.join("").trim(); }\npassword = comma "password" equals password:[^=,]+ { proxy.password = password.join("").trim(); }\nuuid = comma "password" equals uuid:[^=,]+ { proxy.uuid = uuid.join("").trim(); }\n\nmethod = comma "method" equals cipher:cipher { proxy.cipher = cipher };\ncipher = ("aes-128-gcm"/"aes-192-gcm"/"aes-256-gcm"/"aes-128-cfb"/"aes-192-cfb"/"aes-256-cfb"/"aes-128-ctr"/"aes-192-ctr"/"aes-256-ctr"/"rc4-md5"/"chacha20-ietf-poly1305"/"chacha20-ietf"/"chacha20-poly1305"/"chacha20"/"none");\naead = comma "aead" equals flag:bool { proxy.alterId = 0; }\n\nudp_relay = comma "udp-relay" equals flag:bool { proxy.udp = flag; }\nudp_over_tcp = comma "udp-over-tcp" equals flag:bool { throw new Error("UDP over TCP is not supported"); }\nfast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }\n\nover_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }\ntls_host = comma "tls-host" equals sni:domain { proxy.sni = sni; }\ntls_verification = comma "tls-verification" equals flag:bool { \n if (!flag) {\n proxy["skip-cert-verify"] = true;\n }\n}\n\nobfs_ss = comma "obfs" equals type:("http"/"tls"/"wss"/"ws") { obfs.type = type; return type; }\nobfs_ssr = comma "obfs" equals type:("plain"/"http_simple"/"http_post"/"random_head"/"tls1.2_ticket_auth"/"tls1.2_ticket_fastauth") { obfs.type = type; return type; }\nobfs = comma "obfs" equals type:("wss"/"ws"/"over-tls"/"http") { obfs.type = type; return type; };\n\nobfs_host = comma "obfs-host" equals host:domain { obfs.host = host; }\nobfs_uri = comma "obfs-uri" equals uri:uri { obfs.path = uri; }\n\nssr_protocol = comma "ssr-protocol" equals protocol:("origin"/"auth_sha1_v4"/"auth_aes128_md5"/"auth_aes128_sha1"/"auth_chain_a"/"auth_chain_b") { proxy.protocol = protocol; return protocol; }\nssr_protocol_param = comma "ssr-protocol-param" equals param:$[^=,]+ { proxy["protocol-param"] = param; }\n\nuri = $[^,]+\n\ntag = comma "tag" equals tag:[^=,]+ { proxy.name = tag.join(""); }\nothers = comma [^=,]+ equals [^=,]+\ncomma = _ "," _\nequals = _ "=" _\n_ = [ \\r\\t]*\nbool = b:("true"/"false") { return b === "true" }\n'])||(__raw_68=__strings_68.slice(0)),___templateObject_68=Object.freeze(Object.defineProperties(__strings_68,{raw:{value:Object.freeze(__raw_68)}}))));_$qx_68.default=___default_68;const setProtoOf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])};class GrammarError extends Error{constructor(t,e,r){super(t),setProtoOf(this,GrammarError.prototype),this.name="GrammarError",this.location=e,void 0===r&&(r=[]),this.diagnostics=r,this.stage=null,this.problems=[["error",t,e,r]]}toString(){let t=super.toString();this.location&&(t+="\n at ",void 0!==this.location.source&&null!==this.location.source&&(t+=this.location.source+":"),t+=`${this.location.start.line}:${this.location.start.column}`);for(const e of this.diagnostics)t+="\n from ",void 0!==e.location.source&&null!==e.location.source&&(t+=e.location.source+":"),t+=`${e.location.start.line}:${e.location.start.column}: ${e.message}`;return t}format(t){const e=t.map(({source:t,text:e})=>({source:t,text:e.split(/\r\n|\n|\r/g)}));function r(t,r,n=""){let o="";const a=e.find(({source:e})=>e===t.source),u=t.start;if(a){const e=t.end,i=a.text[u.line-1],s=(u.line===e.line?e.column:i.length+1)-u.column||1;n&&(o+="\nnote: "+n),o+=`\n --\x3e ${t.source}:${u.line}:${u.column}\n${"".padEnd(r)} |\n${u.line.toString().padStart(r)} | ${i}\n${"".padEnd(r)} | ${"".padEnd(u.column-1)}${"".padEnd(s,"^")}`}else o+=`\n at ${t.source}:${u.line}:${u.column}`,n&&(o+=": "+n);return o}return this.problems.filter(t=>"info"!==t[0]).map(t=>function(t,e,n,o=[]){let a;a=(a=n?o.reduce((t,{location:e})=>Math.max(t,e.start.line),n.start.line):Math.max.apply(null,o.map(t=>t.location.start.line))).toString().length;let u=`${t}: ${e}`;n&&(u+=r(n,a));for(const i of o)u+=r(i.location,a,i.message);return u}(...t)).join("\n\n")}}var _$GrammarError_53=GrammarError;const visitor={build(t){function e(e,...r){return t[e.type](e,...r)}function r(){}function n(t,...r){return e(t.expression,...r)}function o(t){return function(r,...n){r[t].forEach(t=>e(t,...n))}}const a={grammar(t,...r){t.topLevelInitializer&&e(t.topLevelInitializer,...r),t.initializer&&e(t.initializer,...r),t.rules.forEach(t=>e(t,...r))},top_level_initializer:r,initializer:r,rule:n,named:n,choice:o("alternatives"),action:n,sequence:o("elements"),labeled:n,text:n,simple_and:n,simple_not:n,optional:n,zero_or_more:n,one_or_more:n,group:n,semantic_and:r,semantic_not:r,rule_ref:r,literal:r,class:r,any:r};return Object.keys(a).forEach(e=>{Object.prototype.hasOwnProperty.call(t,e)||(t[e]=a[e])}),e}};var _$visitor_52=visitor;const asts={findRule(t,e){for(let r=0;rt.alternatives.every(o),sequence:t=>t.elements.some(o),simple_and:n,simple_not:n,optional:n,zero_or_more:n,semantic_and:n,semantic_not:n,rule_ref(e){const r=asts.findRule(t,e.name);return r?o(r):void 0},literal:t=>""!==t.value,class:r,any:r});return o(e)}};var _$asts_36=asts,_$opcodes_38={PUSH:0,PUSH_EMPTY_STRING:35,PUSH_UNDEFINED:1,PUSH_NULL:2,PUSH_FAILED:3,PUSH_EMPTY_ARRAY:4,PUSH_CURR_POS:5,POP:6,POP_CURR_POS:7,POP_N:8,NIP:9,APPEND:10,WRAP:11,TEXT:12,PLUCK:36,IF:13,IF_ERROR:14,IF_NOT_ERROR:15,WHILE_NOT_ERROR:16,MATCH_ANY:17,MATCH_STRING:18,MATCH_STRING_IC:19,MATCH_CHAR_CLASS:20,MATCH_REGEXP:20,ACCEPT_N:21,ACCEPT_STRING:22,FAIL:23,LOAD_SAVED_POS:24,UPDATE_SAVED_POS:25,CALL:26,RULE:27,SILENT_FAILS_ON:28,SILENT_FAILS_OFF:29},_$inferenceMatchResult_41={};const ALWAYS_MATCH=1,SOMETIMES_MATCH=0,NEVER_MATCH=-1;function inferenceMatchResult(t){function e(t){return t.match=SOMETIMES_MATCH}function r(t){return a(t.expression),t.match=ALWAYS_MATCH}function n(t){return t.match=a(t.expression)}function o(t,e){const r=t.length;let n=0,o=0;for(let u=0;u0?NEVER_MATCH:SOMETIMES_MATCH}const a=_$visitor_52.build({rule(t){let e,r=0;if(void 0===t.match){t.match=SOMETIMES_MATCH;do{if(e=t.match,t.match=a(t.expression),++r>6)throw new _$GrammarError_53("Infinity cycle detected when trying to evaluate node match result",t.location)}while(e!==t.match)}return t.match},named:n,choice:t=>t.match=o(t.alternatives,!0),action:n,sequence:t=>t.match=o(t.elements,!1),labeled:n,text:n,simple_and:n,simple_not:t=>t.match=-a(t.expression),optional:r,zero_or_more:r,one_or_more:n,group:n,semantic_and:e,semantic_not:e,rule_ref(e){const r=_$asts_36.findRule(t,e.name);return e.match=a(r)},literal(t){const e=0===t.value.length?ALWAYS_MATCH:SOMETIMES_MATCH;return t.match=e},class(t){const e=0===t.parts.length?NEVER_MATCH:SOMETIMES_MATCH;return t.match=e},any:e});a(t)}inferenceMatchResult.ALWAYS_MATCH=ALWAYS_MATCH,inferenceMatchResult.SOMETIMES_MATCH=SOMETIMES_MATCH,inferenceMatchResult.NEVER_MATCH=NEVER_MATCH,_$inferenceMatchResult_41=inferenceMatchResult;const{ALWAYS_MATCH:__ALWAYS_MATCH_39,SOMETIMES_MATCH:__SOMETIMES_MATCH_39,NEVER_MATCH:__NEVER_MATCH_39}=_$inferenceMatchResult_41;var _$generateBytecode_39=function(t){const e=[],r=[],n=[],o=[];function a(t){const e=JSON.stringify(t),r=n.findIndex(t=>JSON.stringify(t)===e);return-1===r?n.push(t)-1:r}function u(t,e,r){const n={predicate:t,params:e,body:r.code,location:r.codeLocation},a=JSON.stringify(n),u=o.findIndex(t=>JSON.stringify(t)===a);return-1===u?o.push(n)-1:u}function i(t){const e={};return Object.keys(t).forEach(r=>{e[r]=t[r]}),e}function s(t,...e){return t.concat(...e)}function c(t,e,r,n){return t===__ALWAYS_MATCH_39?r:t===__NEVER_MATCH_39?n:e.concat([r.length,n.length],r,n)}function l(t,e,r,n){const o=Object.keys(r).map(t=>n-r[t]);return[_$opcodes_38.CALL,t,e,o.length].concat(o)}function p(t,e,r){const n=0|t.match;return s([_$opcodes_38.PUSH_CURR_POS],[_$opcodes_38.SILENT_FAILS_ON],h(t,{sp:r.sp+1,env:i(r.env),action:null}),[_$opcodes_38.SILENT_FAILS_OFF],c(e?-n:n,[e?_$opcodes_38.IF_ERROR:_$opcodes_38.IF_NOT_ERROR],s([_$opcodes_38.POP],[e?_$opcodes_38.POP:_$opcodes_38.POP_CURR_POS],[_$opcodes_38.PUSH_UNDEFINED]),s([_$opcodes_38.POP],[e?_$opcodes_38.POP_CURR_POS:_$opcodes_38.POP],[_$opcodes_38.PUSH_FAILED])))}function f(t,e,r){const n=u(!0,Object.keys(r.env),t);return s([_$opcodes_38.UPDATE_SAVED_POS],l(n,0,r.env,r.sp),c(0|t.match,[_$opcodes_38.IF],s([_$opcodes_38.POP],e?[_$opcodes_38.PUSH_FAILED]:[_$opcodes_38.PUSH_UNDEFINED]),s([_$opcodes_38.POP],e?[_$opcodes_38.PUSH_UNDEFINED]:[_$opcodes_38.PUSH_FAILED])))}function _(t){return e=[_$opcodes_38.WHILE_NOT_ERROR],r=s([_$opcodes_38.APPEND],t),e.concat([r.length],r);var e,r}const h=_$visitor_52.build({grammar(t){t.rules.forEach(h),t.literals=e,t.classes=r,t.expectations=n,t.functions=o},rule(t){t.bytecode=h(t.expression,{sp:-1,env:{},pluck:[],action:null})},named(t,e){const r=0|t.match,n=r===__NEVER_MATCH_39?null:a({type:"rule",value:t.name});return s([_$opcodes_38.SILENT_FAILS_ON],h(t.expression,e),[_$opcodes_38.SILENT_FAILS_OFF],c(r,[_$opcodes_38.IF_ERROR],[_$opcodes_38.FAIL,n],[]))},choice:(t,e)=>function t(e,r){const n=0|e[0].match,o=h(e[0],{sp:r.sp,env:i(r.env),action:null});return n===__ALWAYS_MATCH_39?o:s(o,e.length>1?c(__SOMETIMES_MATCH_39,[_$opcodes_38.IF_ERROR],s([_$opcodes_38.POP],t(e.slice(1),r)),[]):[])}(t.alternatives,e),action(t,e){const r=i(e.env),n="sequence"!==t.expression.type||0===t.expression.elements.length,o=h(t.expression,{sp:e.sp+(n?1:0),env:r,action:t}),a=0|t.expression.match,p=n&&a!==__NEVER_MATCH_39?u(!1,Object.keys(r),t):null;return n?s([_$opcodes_38.PUSH_CURR_POS],o,c(a,[_$opcodes_38.IF_NOT_ERROR],s([_$opcodes_38.LOAD_SAVED_POS,1],l(p,1,r,e.sp+2)),[]),[_$opcodes_38.NIP]):o},sequence:(t,e)=>s([_$opcodes_38.PUSH_CURR_POS],function e(r,n){if(r.length>0){const o=t.elements.length-r.length+1;return s(h(r[0],{sp:n.sp,env:n.env,pluck:n.pluck,action:null}),c(0|r[0].match,[_$opcodes_38.IF_NOT_ERROR],e(r.slice(1),{sp:n.sp+1,env:n.env,pluck:n.pluck,action:n.action}),s(o>1?[_$opcodes_38.POP_N,o]:[_$opcodes_38.POP],[_$opcodes_38.POP_CURR_POS],[_$opcodes_38.PUSH_FAILED])))}if(n.pluck.length>0)return s([_$opcodes_38.PLUCK,t.elements.length+1,n.pluck.length],n.pluck.map(t=>n.sp-t));if(n.action){const e=u(!1,Object.keys(n.env),n.action);return s([_$opcodes_38.LOAD_SAVED_POS,t.elements.length],l(e,t.elements.length+1,n.env,n.sp))}return s([_$opcodes_38.WRAP,t.elements.length],[_$opcodes_38.NIP])}(t.elements,{sp:e.sp+1,env:e.env,pluck:[],action:e.action})),labeled(t,e){let r=e.env;const n=t.label,o=e.sp+1;return n&&(r=i(e.env),e.env[t.label]=o),t.pick&&e.pluck.push(o),h(t.expression,{sp:e.sp,env:r,action:null})},text:(t,e)=>s([_$opcodes_38.PUSH_CURR_POS],h(t.expression,{sp:e.sp+1,env:i(e.env),action:null}),c(0|t.match,[_$opcodes_38.IF_NOT_ERROR],s([_$opcodes_38.POP],[_$opcodes_38.TEXT]),[_$opcodes_38.NIP])),simple_and:(t,e)=>p(t.expression,!1,e),simple_not:(t,e)=>p(t.expression,!0,e),optional:(t,e)=>s(h(t.expression,{sp:e.sp,env:i(e.env),action:null}),c(-(0|t.expression.match),[_$opcodes_38.IF_ERROR],s([_$opcodes_38.POP],[_$opcodes_38.PUSH_NULL]),[])),zero_or_more(t,e){const r=h(t.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([_$opcodes_38.PUSH_EMPTY_ARRAY],r,_(r),[_$opcodes_38.POP])},one_or_more(t,e){const r=h(t.expression,{sp:e.sp+1,env:i(e.env),action:null});return s([_$opcodes_38.PUSH_EMPTY_ARRAY],r,c(0|t.expression.match,[_$opcodes_38.IF_NOT_ERROR],s(_(r),[_$opcodes_38.POP]),s([_$opcodes_38.POP],[_$opcodes_38.POP],[_$opcodes_38.PUSH_FAILED])))},group:(t,e)=>h(t.expression,{sp:e.sp,env:i(e.env),action:null}),semantic_and:(t,e)=>f(t,!1,e),semantic_not:(t,e)=>f(t,!0,e),rule_ref:e=>[_$opcodes_38.RULE,_$asts_36.indexOfRule(t,e.name)],literal(t){if(t.value.length>0){const r=0|t.match,n=r===__SOMETIMES_MATCH_39||r===__ALWAYS_MATCH_39&&!t.ignoreCase?function(t){const r=e.indexOf(t);return-1===r?e.push(t)-1:r}(t.ignoreCase?t.value.toLowerCase():t.value):null,o=r!==__ALWAYS_MATCH_39?a({type:"literal",value:t.value,ignoreCase:t.ignoreCase}):null;return c(r,t.ignoreCase?[_$opcodes_38.MATCH_STRING_IC,n]:[_$opcodes_38.MATCH_STRING,n],t.ignoreCase?[_$opcodes_38.ACCEPT_N,t.value.length]:[_$opcodes_38.ACCEPT_STRING,n],[_$opcodes_38.FAIL,o])}return[_$opcodes_38.PUSH_EMPTY_STRING]},class(t){const e=0|t.match,n=e===__SOMETIMES_MATCH_39?function(t){const e={value:t.parts,inverted:t.inverted,ignoreCase:t.ignoreCase},n=JSON.stringify(e),o=r.findIndex(t=>JSON.stringify(t)===n);return-1===o?r.push(e)-1:o}(t):null,o=e!==__ALWAYS_MATCH_39?a({type:"class",value:t.parts,inverted:t.inverted,ignoreCase:t.ignoreCase}):null;return c(e,[_$opcodes_38.MATCH_CHAR_CLASS,n],[_$opcodes_38.ACCEPT_N,1],[_$opcodes_38.FAIL,o])},any(t){const e=0|t.match,r=e!==__ALWAYS_MATCH_39?a({type:"any"}):null;return c(e,[_$opcodes_38.MATCH_ANY],[_$opcodes_38.ACCEPT_N,1],[_$opcodes_38.FAIL,r])}});h(t)},_$stack_50=class{constructor(t,e,r){this.sp=-1,this.maxSp=-1,this.varName=e,this.ruleName=t,this.type=r}name(t){if(t<0)throw new RangeError(`Rule '${this.ruleName}': The variable stack underflow: attempt to use a variable '${this.varName}' at an index ${t}`);return this.varName+t}push(t){const e=this.name(++this.sp)+" = "+t+";";return this.sp>this.maxSp&&(this.maxSp=this.sp),e}pop(t){return void 0!==t?(this.sp-=t,Array.from({length:t},(t,e)=>this.name(this.sp+1+e))):this.name(this.sp--)}top(){return this.name(this.sp)}index(t){if(t<0)throw new RangeError(`Rule '${this.ruleName}': The variable stack overflow: attempt to get a variable at a negative index ${t}`);return this.name(this.sp-t)}result(){if(this.maxSp<0)throw new RangeError(`Rule '${this.ruleName}': The variable stack is empty, can't get the result'`);return this.name(0)}defines(){return this.maxSp<0?"":this.type+" "+Array.from({length:this.maxSp+1},(t,e)=>this.name(e)).join(", ")+";"}checkedIf(t,e,r){const n=this.sp;if(e(),r){const e=this.sp;if(this.sp=n,r(),e!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+t+": Branches of a condition can't move the stack pointer differently (before: "+n+", after then: "+e+", after else: "+this.sp+").")}}checkedLoop(t,e){const r=this.sp;if(e(),r!==this.sp)throw new Error("Rule '"+this.ruleName+"', position "+t+": Body of a loop can't move the stack pointer (before: "+r+", after: "+this.sp+").")}},_$version_56="2.0.1",_$utils_51={};function hex(t){return t.charCodeAt(0).toString(16).toUpperCase()}_$utils_51.hex=hex,_$utils_51.stringEscape=function(t){return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,t=>"\\x0"+hex(t)).replace(/[\x10-\x1F\x7F-\xFF]/g,t=>"\\x"+hex(t)).replace(/[\u0100-\u0FFF]/g,t=>"\\u0"+hex(t)).replace(/[\u1000-\uFFFF]/g,t=>"\\u"+hex(t))},_$utils_51.regexpClassEscape=function(t){return t.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\v/g,"\\v").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,t=>"\\x0"+hex(t)).replace(/[\x10-\x1F\x7F-\xFF]/g,t=>"\\x"+hex(t)).replace(/[\u0100-\u0FFF]/g,t=>"\\u0"+hex(t)).replace(/[\u1000-\uFFFF]/g,t=>"\\u"+hex(t))};var _$base64_59={};const intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");_$base64_59.encode=function(t){if(0<=t&&t>>=5)>0&&(e|=32),r+=_$base64_59.encode(e)}while(n>0);return r}},_$util_63={getArg:function(t,e,r){if(e in t)return t[e];if(3===arguments.length)return r;throw new Error('"'+e+'" is a required argument.')}};const supportsNullProto=!("__proto__"in Object.create(null));function identity(t){return t}function isProtoString(t){if(!t)return!1;const e=t.length;if(e<9)return!1;if(95!==t.charCodeAt(e-1)||95!==t.charCodeAt(e-2)||111!==t.charCodeAt(e-3)||116!==t.charCodeAt(e-4)||111!==t.charCodeAt(e-5)||114!==t.charCodeAt(e-6)||112!==t.charCodeAt(e-7)||95!==t.charCodeAt(e-8)||95!==t.charCodeAt(e-9))return!1;for(let r=e-10;r>=0;r--)if(36!==t.charCodeAt(r))return!1;return!0}function strcmp(t,e){return t===e?0:null===t?1:null===e?-1:t>e?1:-1}_$util_63.toSetString=supportsNullProto?identity:function(t){return isProtoString(t)?"$"+t:t},_$util_63.fromSetString=supportsNullProto?identity:function(t){return isProtoString(t)?t.slice(1):t},_$util_63.compareByGeneratedPositionsInflated=function(t,e){let r=t.generatedLine-e.generatedLine;return 0!==r||0!=(r=t.generatedColumn-e.generatedColumn)||0!==(r=strcmp(t.source,e.source))||0!=(r=t.originalLine-e.originalLine)||0!=(r=t.originalColumn-e.originalColumn)?r:strcmp(t.name,e.name)};const PROTOCOL="http:",PROTOCOL_AND_HOST=PROTOCOL+"//host";function createSafeHandler(t){return e=>{const r=getURLType(e),n=buildSafeBase(e),o=new URL(e,n);t(o);const a=o.toString();return"absolute"===r?a:"scheme-relative"===r?a.slice(PROTOCOL.length):"path-absolute"===r?a.slice(PROTOCOL_AND_HOST.length):computeRelativeURL(n,a)}}function withBase(t,e){return new URL(t,e).toString()}function buildSafeBase(t){const e=t.split("..").length-1,r=function(t,e){let r=0;for(;;){const t="p"+r++;if(-1===e.indexOf(t))return t}}(0,t);let n=PROTOCOL_AND_HOST+"/";for(let o=0;o0&&!n[n.length-1]&&n.pop();r.length>0&&n.length>0&&r[0]===n[0];)r.shift(),n.shift();return n.map(()=>"..").concat(r).join("/")+e.search+e.hash}const ensureDirectory=createSafeHandler(t=>{t.pathname=t.pathname.replace(/\/?$/,"/")}),normalize=createSafeHandler(t=>{});_$util_63.normalize=normalize,_$util_63.join=function(t,e){const r=getURLType(e),n=getURLType(t);if(t=ensureDirectory(t),"absolute"===r)return withBase(e,void 0);if("absolute"===n)return withBase(e,t);if("scheme-relative"===r)return normalize(e);if("scheme-relative"===n)return withBase(e,withBase(t,PROTOCOL_AND_HOST)).slice(PROTOCOL.length);if("path-absolute"===r)return normalize(e);if("path-absolute"===n)return withBase(e,withBase(t,PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length);const o=buildSafeBase(e+t);return computeRelativeURL(o,withBase(e,withBase(t,o)))},_$util_63.relative=function(t,e){const r=function(t,e){if(getURLType(t)!==getURLType(e))return null;const r=buildSafeBase(t+e),n=new URL(t,r),o=new URL(e,r);try{new URL("",o.toString())}catch(a){return null}return o.protocol!==n.protocol||o.user!==n.user||o.password!==n.password||o.hostname!==n.hostname||o.port!==n.port?null:computeRelativeURL(n,o)}(t,e);return"string"==typeof r?r:normalize(e)};var _$arraySet_57={};class ArraySet{constructor(){this._array=[],this._set=new Map}static fromArray(t,e){const r=new ArraySet;for(let n=0,o=t.length;n=0)return e;throw new Error('"'+t+'" is not in the set.')}at(t){if(t>=0&&tr||n==r&&a>=o||_$util_63.compareByGeneratedPositionsInflated(t,e)<=0}(this._last,t)?(this._sorted=!1,this._array.push(t)):(this._last=t,this._array.push(t))}toArray(){return this._sorted||(this._array.sort(_$util_63.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}}},_$sourceMapGenerator_61={};const __ArraySet_61=_$arraySet_57.ArraySet,MappingList=_$mappingList_60.MappingList;class SourceMapGenerator{constructor(t){t||(t={}),this._file=_$util_63.getArg(t,"file",null),this._sourceRoot=_$util_63.getArg(t,"sourceRoot",null),this._skipValidation=_$util_63.getArg(t,"skipValidation",!1),this._sources=new __ArraySet_61,this._names=new __ArraySet_61,this._mappings=new MappingList,this._sourcesContents=null}static fromSourceMap(t){const e=t.sourceRoot,r=new SourceMapGenerator({file:t.file,sourceRoot:e});return t.eachMapping((function(t){const n={generated:{line:t.generatedLine,column:t.generatedColumn}};null!=t.source&&(n.source=t.source,null!=e&&(n.source=_$util_63.relative(e,n.source)),n.original={line:t.originalLine,column:t.originalColumn},null!=t.name&&(n.name=t.name)),r.addMapping(n)})),t.sources.forEach((function(n){let o=n;null!=e&&(o=_$util_63.relative(e,n)),r._sources.has(o)||r._sources.add(o);const a=t.sourceContentFor(n);null!=a&&r.setSourceContent(n,a)})),r}addMapping(t){const e=_$util_63.getArg(t,"generated"),r=_$util_63.getArg(t,"original",null);let n=_$util_63.getArg(t,"source",null),o=_$util_63.getArg(t,"name",null);this._skipValidation||this._validateMapping(e,r,n,o),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=o&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:e.line,generatedColumn:e.column,originalLine:r&&r.line,originalColumn:r&&r.column,source:n,name:o})}setSourceContent(t,e){let r=t;null!=this._sourceRoot&&(r=_$util_63.relative(this._sourceRoot,r)),null!=e?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[_$util_63.toSetString(r)]=e):this._sourcesContents&&(delete this._sourcesContents[_$util_63.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))}applySourceMap(t,e,r){let n=e;if(null==e){if(null==t.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=t.file}const o=this._sourceRoot;null!=o&&(n=_$util_63.relative(o,n));const a=this._mappings.toArray().length>0?new __ArraySet_61:this._sources,u=new __ArraySet_61;this._mappings.unsortedForEach((function(e){if(e.source===n&&null!=e.originalLine){const n=t.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=n.source&&(e.source=n.source,null!=r&&(e.source=_$util_63.join(r,e.source)),null!=o&&(e.source=_$util_63.relative(o,e.source)),e.originalLine=n.line,e.originalColumn=n.column,null!=n.name&&(e.name=n.name))}const i=e.source;null==i||a.has(i)||a.add(i);const s=e.name;null==s||u.has(s)||u.add(s)}),this),this._sources=a,this._names=u,t.sources.forEach((function(e){const n=t.sourceContentFor(e);null!=n&&(null!=r&&(e=_$util_63.join(r,e)),null!=o&&(e=_$util_63.relative(o,e)),this.setSourceContent(e,n))}),this)}_validateMapping(t,e,r,n){if(e&&"number"!=typeof e.line&&"number"!=typeof e.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!e&&!r&&!n);else if(!(t&&"line"in t&&"column"in t&&e&&"line"in e&&"column"in e&&t.line>0&&t.column>=0&&e.line>0&&e.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:r,original:e,name:n}))}_serializeMappings(){let t,e,r,n,o=0,a=1,u=0,i=0,s=0,c=0,l="";const p=this._mappings.toArray();for(let f=0,_=p.length;f<_;f++){if(t="",(e=p[f]).generatedLine!==a)for(o=0;e.generatedLine!==a;)t+=";",a++;else if(f>0){if(!_$util_63.compareByGeneratedPositionsInflated(e,p[f-1]))continue;t+=","}t+=_$base64Vlq_58.encode(e.generatedColumn-o),o=e.generatedColumn,null!=e.source&&(n=this._sources.indexOf(e.source),t+=_$base64Vlq_58.encode(n-c),c=n,t+=_$base64Vlq_58.encode(e.originalLine-1-i),i=e.originalLine-1,t+=_$base64Vlq_58.encode(e.originalColumn-u),u=e.originalColumn,null!=e.name&&(r=this._names.indexOf(e.name),t+=_$base64Vlq_58.encode(r-s),s=r)),l+=t}return l}_generateSourcesContent(t,e){return t.map((function(t){if(!this._sourcesContents)return null;null!=e&&(t=_$util_63.relative(e,t));const r=_$util_63.toSetString(t);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)}toJSON(){const t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(t.file=this._file),null!=this._sourceRoot&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t}toString(){return JSON.stringify(this.toJSON())}}SourceMapGenerator.prototype._version=3,_$sourceMapGenerator_61.SourceMapGenerator=SourceMapGenerator;var _$sourceNode_62={};const __SourceMapGenerator_62=_$sourceMapGenerator_61.SourceMapGenerator,REGEX_NEWLINE=/(\r?\n)/,NEWLINE_CODE=10,isSourceNode="$$$isSourceNode$$$";class SourceNode{constructor(t,e,r,n,o){this.children=[],this.sourceContents={},this.line=null==t?null:t,this.column=null==e?null:e,this.source=null==r?null:r,this.name=null==o?null:o,this[isSourceNode]=!0,null!=n&&this.add(n)}static fromStringWithSourceMap(t,e,r){const n=new SourceNode,o=t.split(REGEX_NEWLINE);let a=0;const u=function(){return t()+(t()||"");function t(){return a=0;e--)this.prepend(t[e]);else{if(!t[isSourceNode]&&"string"!=typeof t)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);this.children.unshift(t)}return this}walk(t){let e;for(let r=0,n=this.children.length;r0){for(e=[],r=0;rnew __SourceNode_40(n+u,0===u?o:0,e.source,u===a.length-1?t:[t,"\n"],r)))}function wrapInSourceNode(t,e,r,n,o){return r?new __SourceNode_40(null,null,r.source,[t,toSourceNode(e,r,o),new __SourceNode_40(r.end.line,r.end.column-1,r.source,n)]):new __SourceNode_40(null,null,null,[t,e,n])}var _$generateJs_40=function(t,e){function r(t){return t instanceof __SourceNode_40?t:t.replace(/^(.+)$/gm," $1")}function n(t){return"peg$c"+t}function o(t){return"peg$r"+t}function a(t){return"peg$e"+t}function u(t){return"peg$f"+t}function i(t){return"peg$parse"+t}function s(t){return t.codeLocation?toSourceNode(t.code,t.codeLocation,"$"+t.type):t.code}t.code=function(t){function n(){return[`// Generated by Peggy ${_$version_56}.`,"//","// https://peggyjs.org/"]}function o(){return e.trace?["{"," SyntaxError: peg$SyntaxError,"," DefaultTracer: peg$DefaultTracer,"," parse: peg$parse","}"].join("\n"):["{"," SyntaxError: peg$SyntaxError,"," parse: peg$parse","}"].join("\n")}const a={bare:()=>[...n(),"(function() {",' "use strict";',"",t,"",r("return "+o()+";"),"})()"],commonjs(){const r=Object.keys(e.dependencies),a=n();return a.push("",'"use strict";',""),r.length>0&&(r.forEach(t=>{a.push("var "+t+' = require("'+stringEscape(e.dependencies[t])+'");')}),a.push("")),a.push(t,"","module.exports = "+o()+";"),a},es(){const r=Object.keys(e.dependencies),o=n();return o.push(""),r.length>0&&(r.forEach(t=>{o.push("import "+t+' from "'+stringEscape(e.dependencies[t])+'";')}),o.push("")),o.push(t,"","export {"," peg$SyntaxError as SyntaxError,",e.trace?" peg$DefaultTracer as DefaultTracer,":""," peg$parse as parse","};"),o},amd(){const a=Object.keys(e.dependencies),u="["+a.map(t=>e.dependencies[t]).map(t=>'"'+stringEscape(t)+'"').join(", ")+"]",i=a.join(", ");return[...n(),"define("+u+", function("+i+") {",' "use strict";',"",t,"",r("return "+o()+";"),"});"]},globals:()=>[...n(),"(function(root) {",' "use strict";',"",t,"",r("root."+e.exportVar+" = "+o()+";"),"})(this);"],umd(){const a=Object.keys(e.dependencies),u=a.map(t=>e.dependencies[t]),i="["+u.map(t=>'"'+stringEscape(t)+'"').join(", ")+"]",s=u.map(t=>'require("'+stringEscape(t)+'")').join(", "),c=a.join(", "),l=n();return l.push("(function(root, factory) {",' if (typeof define === "function" && define.amd) {'," define("+i+", factory);",' } else if (typeof module === "object" && module.exports) {'," module.exports = factory("+s+");"),null!==e.exportVar&&l.push(" } else {"," root."+e.exportVar+" = factory();"),l.push(" }","})(this, function("+c+") {",' "use strict";',"",t,"",r("return "+o()+";"),"});"),l}}[e.format]();return new __SourceNode_40(null,null,e.grammarSource,a.map(t=>t instanceof __SourceNode_40?t:t+"\n"))}(function(){const c=[];t.topLevelInitializer&&(c.push(s(t.topLevelInitializer)),c.push("")),c.push("function peg$subclass(child, parent) {"," function C() { this.constructor = child; }"," C.prototype = parent.prototype;"," child.prototype = new C();","}","","function peg$SyntaxError(message, expected, found, location) {"," var self = Error.call(this, message);"," // istanbul ignore next Check is a necessary evil to support older environments"," if (Object.setPrototypeOf) {"," Object.setPrototypeOf(self, peg$SyntaxError.prototype);"," }"," self.expected = expected;"," self.found = found;"," self.location = location;",' self.name = "SyntaxError";'," return self;","}","","peg$subclass(peg$SyntaxError, Error);","","function peg$padEnd(str, targetLength, padString) {",' padString = padString || " ";'," if (str.length > targetLength) { return str; }"," targetLength -= str.length;"," padString += padString.repeat(targetLength);"," return str + padString.slice(0, targetLength);","}","","peg$SyntaxError.prototype.format = function(sources) {",' var str = "Error: " + this.message;'," if (this.location) {"," var src = null;"," var k;"," for (k = 0; k < sources.length; k++) {"," if (sources[k].source === this.location.source) {"," src = sources[k].text.split(/\\r\\n|\\n|\\r/g);"," break;"," }"," }"," var s = this.location.start;",' var loc = this.location.source + ":" + s.line + ":" + s.column;'," if (src) {"," var e = this.location.end;"," var filler = peg$padEnd(\"\", s.line.toString().length, ' ');"," var line = src[s.line - 1];"," var last = s.line === e.line ? e.column : line.length + 1;"," var hatLen = (last - s.column) || 1;",' str += "\\n --\x3e " + loc + "\\n"',' + filler + " |\\n"',' + s.line + " | " + line + "\\n"',' + filler + " | " + peg$padEnd("", s.column - 1, \' \')',' + peg$padEnd("", hatLen, "^");'," } else {",' str += "\\n at " + loc;'," }"," }"," return str;","};","","peg$SyntaxError.buildMessage = function(expected, found) {"," var DESCRIBE_EXPECTATION_FNS = {"," literal: function(expectation) {",' return "\\"" + literalEscape(expectation.text) + "\\"";'," },",""," class: function(expectation) {"," var escapedParts = expectation.parts.map(function(part) {"," return Array.isArray(part)",' ? classEscape(part[0]) + "-" + classEscape(part[1])'," : classEscape(part);"," });","",' return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";'," },",""," any: function() {",' return "any character";'," },",""," end: function() {",' return "end of input";'," },",""," other: function(expectation) {"," return expectation.description;"," }"," };",""," function hex(ch) {"," return ch.charCodeAt(0).toString(16).toUpperCase();"," }",""," function literalEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/"/g, "\\\\\\"")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function classEscape(s) {"," return s",' .replace(/\\\\/g, "\\\\\\\\")',' .replace(/\\]/g, "\\\\]")',' .replace(/\\^/g, "\\\\^")',' .replace(/-/g, "\\\\-")',' .replace(/\\0/g, "\\\\0")',' .replace(/\\t/g, "\\\\t")',' .replace(/\\n/g, "\\\\n")',' .replace(/\\r/g, "\\\\r")',' .replace(/[\\x00-\\x0F]/g, function(ch) { return "\\\\x0" + hex(ch); })',' .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return "\\\\x" + hex(ch); });'," }",""," function describeExpectation(expectation) {"," return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);"," }",""," function describeExpected(expected) {"," var descriptions = expected.map(describeExpectation);"," var i, j;",""," descriptions.sort();",""," if (descriptions.length > 0) {"," for (i = 1, j = 1; i < descriptions.length; i++) {"," if (descriptions[i - 1] !== descriptions[i]) {"," descriptions[j] = descriptions[i];"," j++;"," }"," }"," descriptions.length = j;"," }",""," switch (descriptions.length) {"," case 1:"," return descriptions[0];",""," case 2:",' return descriptions[0] + " or " + descriptions[1];',""," default:",' return descriptions.slice(0, -1).join(", ")',' + ", or "'," + descriptions[descriptions.length - 1];"," }"," }",""," function describeFound(found) {",' return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";'," }","",' return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";',"};",""),e.trace&&c.push("function peg$DefaultTracer() {"," this.indentLevel = 0;","}","","peg$DefaultTracer.prototype.trace = function(event) {"," var that = this;",""," function log(event) {"," function repeat(string, n) {",' var result = "", i;',""," for (i = 0; i < n; i++) {"," result += string;"," }",""," return result;"," }",""," function pad(string, length) {",' return string + repeat(" ", length - string.length);'," }","",' if (typeof console === "object") {'," console.log(",' event.location.start.line + ":" + event.location.start.column + "-"',' + event.location.end.line + ":" + event.location.end.column + " "',' + pad(event.type, 10) + " "',' + repeat(" ", that.indentLevel) + event.rule'," );"," }"," }",""," switch (event.type) {",' case "rule.enter":'," log(event);"," this.indentLevel++;"," break;","",' case "rule.match":'," this.indentLevel--;"," log(event);"," break;","",' case "rule.fail":'," this.indentLevel--;"," log(event);"," break;",""," default:",' throw new Error("Invalid event type: " + event.type + ".");'," }","};","");const l="{ "+e.allowedStartRules.map(t=>t+": "+i(t)).join(", ")+" }",p=i(e.allowedStartRules[0]);return c.push("function peg$parse(input, options) {"," options = options !== undefined ? options : {};",""," var peg$FAILED = {};"," var peg$source = options.grammarSource;",""," var peg$startRuleFunctions = "+l+";"," var peg$startRuleFunction = "+p+";","",new __SourceNode_40(null,null,e.grammarSource,[t.literals.map((t,e)=>" var "+n(e)+' = "'+stringEscape(t)+'";').concat("",t.classes.map((t,e)=>{return" var "+o(e)+" = /^["+((r=t).inverted?"^":"")+r.value.map(t=>Array.isArray(t)?regexpClassEscape(t[0])+"-"+regexpClassEscape(t[1]):regexpClassEscape(t)).join("")+"]/"+(r.ignoreCase?"i":"")+";";var r})).concat("",t.expectations.map((t,e)=>" var "+a(e)+" = "+function(t){switch(t.type){case"rule":return'peg$otherExpectation("'+stringEscape(t.value)+'")';case"literal":return'peg$literalExpectation("'+stringEscape(t.value)+'", '+t.ignoreCase+")";case"class":return"peg$classExpectation(["+t.value.map(t=>Array.isArray(t)?'["'+stringEscape(t[0])+'", "'+stringEscape(t[1])+'"]':'"'+stringEscape(t)+'"').join(", ")+"], "+t.inverted+", "+t.ignoreCase+")";case"any":return"peg$anyExpectation()";default:throw new Error("Unknown expectation type ("+JSON.stringify(t)+")")}}(t)+";")).concat("").join("\n"),t.functions.map((function(t,e){return wrapInSourceNode(`\n var ${u(e)} = function(${t.params.join(", ")}) {`,t.body,t.location,"};")}))]),""," var peg$currPos = 0;"," var peg$savedPos = 0;"," var peg$posDetailsCache = [{ line: 1, column: 1 }];"," var peg$maxFailPos = 0;"," var peg$maxFailExpected = [];"," var peg$silentFails = 0;",""),e.cache&&c.push(" var peg$resultsCache = {};",""),e.trace&&c.push(' var peg$tracer = "tracer" in options ? options.tracer : new peg$DefaultTracer();',""),c.push(" var peg$result;","",' if ("startRule" in options) {'," if (!(options.startRule in peg$startRuleFunctions)) {",' throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");'," }",""," peg$startRuleFunction = peg$startRuleFunctions[options.startRule];"," }",""," function text() {"," return input.substring(peg$savedPos, peg$currPos);"," }",""," function offset() {"," return peg$savedPos;"," }",""," function range() {"," return {"," source: peg$source,"," start: peg$savedPos,"," end: peg$currPos"," };"," }",""," function location() {"," return peg$computeLocation(peg$savedPos, peg$currPos);"," }",""," function expected(description, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildStructuredError("," [peg$otherExpectation(description)],"," input.substring(peg$savedPos, peg$currPos),"," location"," );"," }",""," function error(message, location) {"," location = location !== undefined"," ? location"," : peg$computeLocation(peg$savedPos, peg$currPos);",""," throw peg$buildSimpleError(message, location);"," }",""," function peg$literalExpectation(text, ignoreCase) {",' return { type: "literal", text: text, ignoreCase: ignoreCase };'," }",""," function peg$classExpectation(parts, inverted, ignoreCase) {",' return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };'," }",""," function peg$anyExpectation() {",' return { type: "any" };'," }",""," function peg$endExpectation() {",' return { type: "end" };'," }",""," function peg$otherExpectation(description) {",' return { type: "other", description: description };'," }",""," function peg$computePosDetails(pos) {"," var details = peg$posDetailsCache[pos];"," var p;",""," if (details) {"," return details;"," } else {"," p = pos - 1;"," while (!peg$posDetailsCache[p]) {"," p--;"," }",""," details = peg$posDetailsCache[p];"," details = {"," line: details.line,"," column: details.column"," };",""," while (p < pos) {"," if (input.charCodeAt(p) === 10) {"," details.line++;"," details.column = 1;"," } else {"," details.column++;"," }",""," p++;"," }",""," peg$posDetailsCache[pos] = details;",""," return details;"," }"," }",""," function peg$computeLocation(startPos, endPos) {"," var startPosDetails = peg$computePosDetails(startPos);"," var endPosDetails = peg$computePosDetails(endPos);",""," return {"," source: peg$source,"," start: {"," offset: startPos,"," line: startPosDetails.line,"," column: startPosDetails.column"," },"," end: {"," offset: endPos,"," line: endPosDetails.line,"," column: endPosDetails.column"," }"," };"," }",""," function peg$fail(expected) {"," if (peg$currPos < peg$maxFailPos) { return; }",""," if (peg$currPos > peg$maxFailPos) {"," peg$maxFailPos = peg$currPos;"," peg$maxFailExpected = [];"," }",""," peg$maxFailExpected.push(expected);"," }",""," function peg$buildSimpleError(message, location) {"," return new peg$SyntaxError(message, null, null, location);"," }",""," function peg$buildStructuredError(expected, found, location) {"," return new peg$SyntaxError("," peg$SyntaxError.buildMessage(expected, found),"," expected,"," found,"," location"," );"," }",""),t.rules.forEach(s=>{c.push(...function(s){const c=[],l=new _$stack_50(s.name,"s","var"),p=function e(s){let c=0;const p=s.length,f=[];let _;function h(t,n){const o=n+3,a=s[c+o-2],u=s[c+o-1];let i,p;l.checkedIf(c,()=>{c+=o,i=e(s.slice(c,c+a)),c+=a},u>0?()=>{p=e(s.slice(c,c+u)),c+=u}:null),f.push("if ("+t+") {"),f.push(...i.map(r)),u>0&&(f.push("} else {"),f.push(...p.map(r))),f.push("}")}function d(t){const n=s[c+2-1];let o;l.checkedLoop(c,()=>{c+=2,o=e(s.slice(c,c+n)),c+=n}),f.push("while ("+t+") {"),f.push(...o.map(r)),f.push("}")}function y(){const t=s[c+4-1],e=u(s[c+1])+"("+s.slice(c+4,c+4+t).map(t=>l.index(t)).join(", ")+")";l.pop(s[c+2]),f.push(l.push(e)),c+=4+t}for(;cl.index(t)).join(", ")} ]`,l.pop(s[c+1]),f.push(l.push(_)),c+=r;break}case _$opcodes_38.IF:h(l.top(),0);break;case _$opcodes_38.IF_ERROR:h(l.top()+" === peg$FAILED",0);break;case _$opcodes_38.IF_NOT_ERROR:h(l.top()+" !== peg$FAILED",0);break;case _$opcodes_38.WHILE_NOT_ERROR:d(l.top()+" !== peg$FAILED");break;case _$opcodes_38.MATCH_ANY:h("input.length > peg$currPos",0);break;case _$opcodes_38.MATCH_STRING:h(t.literals[s[c+1]].length>1?"input.substr(peg$currPos, "+t.literals[s[c+1]].length+") === "+n(s[c+1]):"input.charCodeAt(peg$currPos) === "+t.literals[s[c+1]].charCodeAt(0),1);break;case _$opcodes_38.MATCH_STRING_IC:h("input.substr(peg$currPos, "+t.literals[s[c+1]].length+").toLowerCase() === "+n(s[c+1]),1);break;case _$opcodes_38.MATCH_CHAR_CLASS:h(o(s[c+1])+".test(input.charAt(peg$currPos))",1);break;case _$opcodes_38.ACCEPT_N:f.push(l.push(s[c+1]>1?"input.substr(peg$currPos, "+s[c+1]+")":"input.charAt(peg$currPos)")),f.push(s[c+1]>1?"peg$currPos += "+s[c+1]+";":"peg$currPos++;"),c+=2;break;case _$opcodes_38.ACCEPT_STRING:f.push(l.push(n(s[c+1]))),f.push(t.literals[s[c+1]].length>1?"peg$currPos += "+t.literals[s[c+1]].length+";":"peg$currPos++;"),c+=2;break;case _$opcodes_38.FAIL:f.push(l.push("peg$FAILED")),f.push("if (peg$silentFails === 0) { peg$fail("+a(s[c+1])+"); }"),c+=2;break;case _$opcodes_38.LOAD_SAVED_POS:f.push("peg$savedPos = "+l.index(s[c+1])+";"),c+=2;break;case _$opcodes_38.UPDATE_SAVED_POS:f.push("peg$savedPos = peg$currPos;"),c++;break;case _$opcodes_38.CALL:y();break;case _$opcodes_38.RULE:f.push(l.push(i(t.rules[s[c+1]].name)+"()")),c+=2;break;case _$opcodes_38.SILENT_FAILS_ON:f.push("peg$silentFails++;"),c++;break;case _$opcodes_38.SILENT_FAILS_OFF:f.push("peg$silentFails--;"),c++;break;default:throw new Error("Invalid opcode: "+s[c]+".")}return f}(s.bytecode);return c.push(wrapInSourceNode(" function ",i(s.name),s.nameLocation,"() {\n",s.name)),e.trace&&c.push(" var startPos = peg$currPos;"),c.push(r(l.defines())),c.push(...function(r,n){const o=[];return o.push(""),e.trace&&o.push("peg$tracer.trace({",' type: "rule.enter",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)","});",""),e.cache&&(o.push("var key = peg$currPos * "+t.rules.length+" + "+n+";","var cached = peg$resultsCache[key];","","if (cached) {"," peg$currPos = cached.nextPos;",""),e.trace&&o.push("if (cached.result !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+r+","," result: cached.result,"," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+r+","," location: peg$computeLocation(startPos, startPos)"," });","}",""),o.push(" return cached.result;","}","")),o}('"'+stringEscape(s.name)+'"',_$asts_36.indexOfRule(t,s.name)).map(r)),c.push(...p.map(r)),c.push(...function(t,r){const n=[];return e.cache&&n.push("","peg$resultsCache[key] = { nextPos: peg$currPos, result: "+r+" };"),e.trace&&n.push("","if ("+r+" !== peg$FAILED) {"," peg$tracer.trace({",' type: "rule.match",'," rule: "+t+","," result: "+r+","," location: peg$computeLocation(startPos, peg$currPos)"," });","} else {"," peg$tracer.trace({",' type: "rule.fail",'," rule: "+t+","," location: peg$computeLocation(startPos, startPos)"," });","}"),n.push("","return "+r+";"),n}('"'+stringEscape(s.name)+'"',l.result()).map(r)),c.push("}"),c}(s).map(r)),c.push("")}),t.initializer&&(c.push(s(t.initializer)),c.push("")),c.push(" peg$result = peg$startRuleFunction();",""," if (peg$result !== peg$FAILED && peg$currPos === input.length) {"," return peg$result;"," } else {"," if (peg$result !== peg$FAILED && peg$currPos < input.length) {"," peg$fail(peg$endExpectation());"," }",""," throw peg$buildStructuredError("," peg$maxFailExpected,"," peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,"," peg$maxFailPos < input.length"," ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)"," : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)"," );"," }","}"),new __SourceNode_40(null,null,e.grammarSource,c.map(t=>t instanceof __SourceNode_40?t:t+"\n"))}())},_$removeProxyRules_42=function(t,e,r){const n=[];t.rules.forEach((o,a)=>{var u;"rule"===(u=o).type&&"rule_ref"===u.expression.type&&(function(t,e,n){_$visitor_52.build({rule_ref(o){o.name===e&&(o.name=n,r.info(`Proxy rule "${e}" replaced by the rule "${n}"`,o.location,[{message:"This rule will be used",location:_$asts_36.findRule(t,n).nameLocation}]))}})(t)}(t,o.name,o.expression.name),-1===e.allowedStartRules.indexOf(o.name)&&n.push(a))}),n.reverse(),n.forEach(e=>{t.rules.splice(e,1)})},_$reportDuplicateLabels_43=function(t,e,r){function n(t){const e={};return Object.keys(t).forEach(r=>{e[r]=t[r]}),e}function o(t,e){a(t.expression,n(e))}const a=_$visitor_52.build({rule(t){a(t.expression,{})},choice(t,e){t.alternatives.forEach(t=>{a(t,n(e))})},action:o,labeled(t,e){const n=t.label;n&&Object.prototype.hasOwnProperty.call(e,n)&&r.error(`Label "${t.label}" is already defined`,t.labelLocation,[{message:"Original label location",location:e[n]}]),a(t.expression,e),e[t.label]=t.labelLocation},text:o,simple_and:o,simple_not:o,optional:o,zero_or_more:o,one_or_more:o,group:o});a(t)},_$reportDuplicateRules_44=function(t,e,r){const n={};_$visitor_52.build({rule(t){Object.prototype.hasOwnProperty.call(n,t.name)?r.error(`Rule "${t.name}" is already defined`,t.nameLocation,[{message:"Original rule location",location:n[t.name]}]):n[t.name]=t.nameLocation}})(t)},_$reportInfiniteRecursion_46=function(t,e,r){const n=[],o=[],a=_$visitor_52.build({rule(t){n.push(t.name),a(t.expression),n.pop()},sequence(e){e.elements.every(e=>(a(e),!_$asts_36.alwaysConsumesOnSuccess(t,e)))},rule_ref(e){o.push(e);const u=_$asts_36.findRule(t,e.name);if(-1!==n.indexOf(e.name))return n.push(e.name),void r.error("Possible infinite loop when parsing (left recursion: "+n.join(" -> ")+")",u.nameLocation,o.map((t,e,r)=>({message:e+1!==r.length?`Step ${e+1}: call of the rule "${t.name}" without input consumption`:`Step ${e+1}: call itself without input consumption - left recursion`,location:t.location})));u&&a(u),o.pop()}});a(t)},_$reportInfiniteRepetition_47=function(t,e,r){_$visitor_52.build({zero_or_more(e){_$asts_36.alwaysConsumesOnSuccess(t,e.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)},one_or_more(e){_$asts_36.alwaysConsumesOnSuccess(t,e.expression)||r.error("Possible infinite loop when parsing (repetition used with an expression that may not consume any input)",e.location)}})(t)},_$reportUndefinedRules_48=function(t,e,r){_$visitor_52.build({rule_ref(e){_$asts_36.findRule(t,e.name)||r.error(`Rule "${e.name}" is not defined`,e.location)}})(t)},_$reportIncorrectPlucking_45=function(t,e,r){const n=_$visitor_52.build({action(t){n(t.expression,t)},labeled(t,e){t.pick&&e&&r.error('"@" cannot be used with an action block',t.labelLocation,[{message:"Action block location",location:e.codeLocation}]),n(t.expression)}});n(t)};class Defaults{constructor(t){"function"==typeof(t=void 0!==t?t:{}).error&&(this.error=t.error),"function"==typeof t.warning&&(this.warning=t.warning),"function"==typeof t.info&&(this.info=t.info)}error(){}warning(){}info(){}}var _$session_49=class{constructor(t){this._callbacks=new Defaults(t),this._firstError=null,this.errors=0,this.problems=[],this.stage=null}error(...t){++this.errors,null===this._firstError&&(this._firstError=new _$GrammarError_53(...t),this._firstError.stage=this.stage,this._firstError.problems=this.problems),this.problems.push(["error",...t]),this._callbacks.error(this.stage,...t)}warning(...t){this.problems.push(["warning",...t]),this._callbacks.warning(this.stage,...t)}info(...t){this.problems.push(["info",...t]),this._callbacks.info(this.stage,...t)}checkErrors(){if(0!==this.errors)throw this._firstError}};function processOptions(t,e){const r={};return Object.keys(t).forEach(e=>{r[e]=t[e]}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(r,t)||(r[t]=e[t])}),r}const compiler={visitor:_$visitor_52,passes:{check:[_$reportUndefinedRules_48,_$reportDuplicateRules_44,_$reportDuplicateLabels_43,_$reportInfiniteRecursion_46,_$reportInfiniteRepetition_47,_$reportIncorrectPlucking_45],transform:[_$removeProxyRules_42,_$inferenceMatchResult_41],generate:[_$generateBytecode_39,_$generateJs_40]},compile(ast,passes,options){if(options=void 0!==options?options:{},options=processOptions(options,{allowedStartRules:[ast.rules[0].name],cache:!1,dependencies:{},exportVar:null,format:"bare",output:"parser",trace:!1}),!Array.isArray(options.allowedStartRules))throw new Error("allowedStartRules must be an array");if(0===options.allowedStartRules.length)throw new Error("Must have at least one start rule");const allRules=ast.rules.map(t=>t.name);for(const t of options.allowedStartRules)if(-1===allRules.indexOf(t))throw new Error(`Unknown start rule "${t}"`);const session=new _$session_49(options);switch(Object.keys(passes).forEach(t=>{session.stage=t,session.info("Process stage "+t),passes[t].forEach(e=>{session.info(`Process pass ${t}.${e.name}`),e(ast,options,session)}),session.checkErrors()}),options.output){case"parser":return eval(ast.code.toString());case"source":return ast.code.toString();case"source-and-map":return ast.code;default:throw new Error("Invalid output format: "+options.output+".")}}};var _$compiler_37=compiler,_$parser_54={};const OPS_TO_PREFIXED_TYPES={$:"text","&":"simple_and","!":"simple_not"},OPS_TO_SUFFIXED_TYPES={"?":"optional","*":"zero_or_more","+":"one_or_more"},OPS_TO_SEMANTIC_PREDICATE_TYPES={"&":"semantic_and","!":"semantic_not"};function peg$SyntaxError(t,e,r,n){var o=Error.call(this,t);return Object.setPrototypeOf&&Object.setPrototypeOf(o,peg$SyntaxError.prototype),o.expected=e,o.found=r,o.location=n,o.name="SyntaxError",o}function peg$padEnd(t,e,r){return r=r||" ",t.length>e?t:(e-=t.length,t+(r+=r.repeat(e)).slice(0,e))}!function(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}(peg$SyntaxError,Error),peg$SyntaxError.prototype.format=function(t){var e="Error: "+this.message;if(this.location){var r,n=null;for(r=0;r0){for(e=1,r=1;eYt&&(Yt=Ht,zt=[]),zt.push(t))}function re(){var e,r,o,a,u,i;if(e=Ht,Re(),r=Ht,(o=function(){var e,r,o,a;return e=Ht,123===t.charCodeAt(Ht)?(r="{",Ht++):(r=n,0===Kt&&ee(E)),r!==n&&(o=Te())!==n?(125===t.charCodeAt(Ht)?(a="}",Ht++):(a=n,0===Kt&&ee(w)),a!==n&&je()!==n?(Gt=e,e=function(t){return{type:"top_level_initializer",code:t[0],codeLocation:t[1],location:Wt()}}(o)):(Ht=e,e=n)):(Ht=e,e=n),e}())!==n?(a=Re(),r=o):(Ht=r,r=n),r===n&&(r=null),o=Ht,(a=function(){var t,e;return t=Ht,(e=Te())!==n&&je()!==n?(Gt=t,t=function(t){return{type:"initializer",code:t[0],codeLocation:t[1],location:Wt()}}(e)):(Ht=t,t=n),t}())!==n?(u=Re(),o=a):(Ht=o,o=n),o===n&&(o=null),a=[],u=Ht,(i=ne())!==n?(Re(),u=i):(Ht=u,u=n),u!==n)for(;u!==n;)a.push(u),u=Ht,(i=ne())!==n?(Re(),u=i):(Ht=u,u=n);else a=n;return a!==n?(Gt=e,e={type:"grammar",topLevelInitializer:r,initializer:o,rules:a,location:Wt()}):(Ht=e,e=n),e}function ne(){var e,r,o,a,u,i,s,c;return e=Ht,(r=ge())!==n?(Re(),o=Ht,(a=be())!==n?(Re(),o=a):(Ht=o,o=n),o===n&&(o=null),61===t.charCodeAt(Ht)?(a="=",Ht++):(a=n,0===Kt&&ee(C)),a!==n?(Re(),(u=oe())!==n&&je()!==n?(Gt=e,s=o,c=u,e={type:"rule",name:(i=r)[0],nameLocation:i[1],expression:null!==s?{type:"named",name:s,expression:c,location:Wt()}:c,location:Wt()}):(Ht=e,e=n)):(Ht=e,e=n)):(Ht=e,e=n),e}function oe(){var e,r,o,a,u,i,s,c;if(e=Ht,(r=ae())!==n){for(o=[],a=Ht,Re(),47===t.charCodeAt(Ht)?(u="/",Ht++):(u=n,0===Kt&&ee(x)),u!==n?(Re(),(i=ae())!==n?a=i:(Ht=a,a=n)):(Ht=a,a=n);a!==n;)o.push(a),a=Ht,Re(),47===t.charCodeAt(Ht)?(u="/",Ht++):(u=n,0===Kt&&ee(x)),u!==n?(Re(),(i=ae())!==n?a=i:(Ht=a,a=n)):(Ht=a,a=n);Gt=e,s=r,e=(c=o).length>0?{type:"choice",alternatives:[s].concat(c),location:Wt()}:s}else Ht=e,e=n;return e}function ae(){var t,e,r,o;return t=Ht,(e=function(){var t,e,r,o,a,u,i;if(t=Ht,(e=ue())!==n){for(r=[],o=Ht,Re(),(a=ue())!==n?o=a:(Ht=o,o=n);o!==n;)r.push(o),o=Ht,Re(),(a=ue())!==n?o=a:(Ht=o,o=n);Gt=t,u=e,t=(i=r).length>0||"labeled"===u.type&&u.pick?{type:"sequence",elements:[u].concat(i),location:Wt()}:u}else Ht=t,t=n;return t}())!==n?(r=Ht,Re(),(o=Te())!==n?r=o:(Ht=r,r=n),r===n&&(r=null),Gt=t,t=function(t,e){return null!==e?{type:"action",expression:t,code:e[0],codeLocation:e[1],location:Wt()}:t}(e,r)):(Ht=t,t=n),t}function ue(){var e,r,o,a,u,i,s;return e=Ht,(r=function(){var e,r;return e=Ht,64===t.charCodeAt(Ht)?(r="@",Ht++):(r=n,0===Kt&&ee(S)),r!==n&&(Gt=e,r=Wt()),r}())!==n?((o=ie())===n&&(o=null),(a=se())!==n?(Gt=e,u=r,i=o,(s=a).type.startsWith("semantic_")&&Xt('"@" cannot be used on a semantic predicate',u),e={type:"labeled",label:null!==i?i[0]:null,labelLocation:null!==i?i[1]:u,pick:!0,expression:s,location:Wt()}):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=Ht,(r=ie())!==n?(o=Re(),(a=se())!==n?(Gt=e,e=function(t,e){return{type:"labeled",label:t[0],labelLocation:t[1],expression:e,location:Wt()}}(r,a)):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=se())),e}function ie(){var e,r,o,a;return e=Ht,(r=ge())!==n?(Re(),58===t.charCodeAt(Ht)?(o=":",Ht++):(o=n,0===Kt&&ee(O)),o!==n?(Gt=e,a=r,ke.indexOf(a[0])>=0&&Xt(`Label can't be a reserved word "${a[0]}"`,a[1]),e=a):(Ht=e,e=n)):(Ht=e,e=n),e}function se(){var e,r,o,a;return e=Ht,(r=function(){var e;return 36===t.charCodeAt(Ht)?(e="$",Ht++):(e=n,0===Kt&&ee($)),e===n&&(38===t.charCodeAt(Ht)?(e="&",Ht++):(e=n,0===Kt&&ee(F)),e===n&&(33===t.charCodeAt(Ht)?(e="!",Ht++):(e=n,0===Kt&&ee(L)))),e}())!==n?(Re(),(o=ce())!==n?(Gt=e,a=o,e={type:OPS_TO_PREFIXED_TYPES[r],expression:a,location:Wt()}):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=ce()),e}function ce(){var e,r,o,a;return e=Ht,(r=le())!==n?(Re(),(o=function(){var e;return 63===t.charCodeAt(Ht)?(e="?",Ht++):(e=n,0===Kt&&ee(P)),e===n&&(42===t.charCodeAt(Ht)?(e="*",Ht++):(e=n,0===Kt&&ee(T)),e===n&&(43===t.charCodeAt(Ht)?(e="+",Ht++):(e=n,0===Kt&&ee(R)))),e}())!==n?(Gt=e,a=r,e={type:OPS_TO_SUFFIXED_TYPES[o],expression:a,location:Wt()}):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=le()),e}function le(){var e,r,o,a,u;return(e=function(){var e,r,o;return Kt++,e=Ht,(r=be())!==n?(105===t.charCodeAt(Ht)?(o="i",Ht++):(o=n,0===Kt&&ee(it)),o===n&&(o=null),Gt=e,e={type:"literal",value:r,ignoreCase:null!==o,location:Wt()}):(Ht=e,e=n),Kt--,e===n&&(r=n,0===Kt&&ee(ut)),e}())===n&&(e=function(){var e,r,o,a,u,i,s,c;if(Kt++,e=Ht,91===t.charCodeAt(Ht)?(r="[",Ht++):(r=n,0===Kt&&ee(ft)),r!==n){for(94===t.charCodeAt(Ht)?(o="^",Ht++):(o=n,0===Kt&&ee(_t)),o===n&&(o=null),a=[],(u=Ce())===n&&(u=xe());u!==n;)a.push(u),(u=Ce())===n&&(u=xe());93===t.charCodeAt(Ht)?(u="]",Ht++):(u=n,0===Kt&&ee(ht)),u!==n?(105===t.charCodeAt(Ht)?(i="i",Ht++):(i=n,0===Kt&&ee(it)),i===n&&(i=null),Gt=e,s=o,c=i,e={type:"class",parts:a.filter(t=>""!==t),inverted:null!==s,ignoreCase:null!==c,location:Wt()}):(Ht=e,e=n)}else Ht=e,e=n;return Kt--,e===n&&(r=n,0===Kt&&ee(pt)),e}())===n&&(e=function(){var e,r;return e=Ht,46===t.charCodeAt(Ht)?(r=".",Ht++):(r=n,0===Kt&&ee(Ot)),r!==n&&(Gt=e,r={type:"any",location:Wt()}),r}())===n&&(e=function(){var e,r,o,a,u,i,s;return e=Ht,(r=ge())!==n?(o=Ht,Kt++,a=Ht,u=Re(),i=Ht,(s=be())!==n?i=s=[s,Re()]:(Ht=i,i=n),i===n&&(i=null),61===t.charCodeAt(Ht)?(s="=",Ht++):(s=n,0===Kt&&ee(C)),s!==n?a=u=[u,i,s]:(Ht=a,a=n),Kt--,a===n?o=void 0:(Ht=o,o=n),o!==n?(Gt=e,e={type:"rule_ref",name:r[0],location:Wt()}):(Ht=e,e=n)):(Ht=e,e=n),e}())===n&&(e=function(){var e,r,o;return e=Ht,(r=function(){var e;return 38===t.charCodeAt(Ht)?(e="&",Ht++):(e=n,0===Kt&&ee(F)),e===n&&(33===t.charCodeAt(Ht)?(e="!",Ht++):(e=n,0===Kt&&ee(L))),e}())!==n?(Re(),(o=Te())!==n?(Gt=e,e=function(t,e){return{type:OPS_TO_SEMANTIC_PREDICATE_TYPES[t],code:e[0],codeLocation:e[1],location:Wt()}}(r,o)):(Ht=e,e=n)):(Ht=e,e=n),e}())===n&&(e=Ht,40===t.charCodeAt(Ht)?(r="(",Ht++):(r=n,0===Kt&&ee(j)),r!==n?(Re(),(o=oe())!==n?(Re(),41===t.charCodeAt(Ht)?(a=")",Ht++):(a=n,0===Kt&&ee(k)),a!==n?(Gt=e,e="labeled"===(u=o).type||"sequence"===u.type?{type:"group",expression:u,location:Wt()}:u):(Ht=e,e=n)):(Ht=e,e=n)):(Ht=e,e=n)),e}function pe(){var e;return t.length>Ht?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(D)),e}function fe(){var e;return Kt++,9===t.charCodeAt(Ht)?(e="\t",Ht++):(e=n,0===Kt&&ee(B)),e===n&&(11===t.charCodeAt(Ht)?(e="\v",Ht++):(e=n,0===Kt&&ee(N)),e===n&&(12===t.charCodeAt(Ht)?(e="\f",Ht++):(e=n,0===Kt&&ee(M)),e===n&&(32===t.charCodeAt(Ht)?(e=" ",Ht++):(e=n,0===Kt&&ee(U)),e===n&&(160===t.charCodeAt(Ht)?(e="\xa0",Ht++):(e=n,0===Kt&&ee(H)),e===n&&(65279===t.charCodeAt(Ht)?(e="\ufeff",Ht++):(e=n,0===Kt&&ee(G)),e===n&&(e=function(){var e;return b.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Mt)),e}())))))),Kt--,e===n&&0===Kt&&ee(I),e}function _e(){var e;return i.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(q)),e}function he(){var e;return Kt++,10===t.charCodeAt(Ht)?(e="\n",Ht++):(e=n,0===Kt&&ee(z)),e===n&&("\r\n"===t.substr(Ht,2)?(e="\r\n",Ht+=2):(e=n,0===Kt&&ee(K)),e===n&&(13===t.charCodeAt(Ht)?(e="\r",Ht++):(e=n,0===Kt&&ee(W)),e===n&&(8232===t.charCodeAt(Ht)?(e="\u2028",Ht++):(e=n,0===Kt&&ee(X)),e===n&&(8233===t.charCodeAt(Ht)?(e="\u2029",Ht++):(e=n,0===Kt&&ee(V)))))),Kt--,e===n&&0===Kt&&ee(Y),e}function de(){var e;return Kt++,(e=function(){var e,r,o,a,u,i;if(e=Ht,"/*"===t.substr(Ht,2)?(r="/*",Ht+=2):(r=n,0===Kt&&ee(Q)),r!==n){for(o=[],a=Ht,u=Ht,Kt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Kt&&ee(Z)),Kt--,i===n?u=void 0:(Ht=u,u=n),u!==n&&(i=pe())!==n?a=u=[u,i]:(Ht=a,a=n);a!==n;)o.push(a),a=Ht,u=Ht,Kt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Kt&&ee(Z)),Kt--,i===n?u=void 0:(Ht=u,u=n),u!==n&&(i=pe())!==n?a=u=[u,i]:(Ht=a,a=n);"*/"===t.substr(Ht,2)?(a="*/",Ht+=2):(a=n,0===Kt&&ee(Z)),a!==n?e=r=[r,o,a]:(Ht=e,e=n)}else Ht=e,e=n;return e}())===n&&(e=ve()),Kt--,e===n&&0===Kt&&ee(J),e}function ye(){var e,r,o,a,u,i;if(e=Ht,"/*"===t.substr(Ht,2)?(r="/*",Ht+=2):(r=n,0===Kt&&ee(Q)),r!==n){for(o=[],a=Ht,u=Ht,Kt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Kt&&ee(Z)),i===n&&(i=_e()),Kt--,i===n?u=void 0:(Ht=u,u=n),u!==n&&(i=pe())!==n?a=u=[u,i]:(Ht=a,a=n);a!==n;)o.push(a),a=Ht,u=Ht,Kt++,"*/"===t.substr(Ht,2)?(i="*/",Ht+=2):(i=n,0===Kt&&ee(Z)),i===n&&(i=_e()),Kt--,i===n?u=void 0:(Ht=u,u=n),u!==n&&(i=pe())!==n?a=u=[u,i]:(Ht=a,a=n);"*/"===t.substr(Ht,2)?(a="*/",Ht+=2):(a=n,0===Kt&&ee(Z)),a!==n?e=r=[r,o,a]:(Ht=e,e=n)}else Ht=e,e=n;return e}function ve(){var e,r,o,a,u,i;if(e=Ht,"//"===t.substr(Ht,2)?(r="//",Ht+=2):(r=n,0===Kt&&ee(tt)),r!==n){for(o=[],a=Ht,u=Ht,Kt++,i=_e(),Kt--,i===n?u=void 0:(Ht=u,u=n),u!==n&&(i=pe())!==n?a=u=[u,i]:(Ht=a,a=n);a!==n;)o.push(a),a=Ht,u=Ht,Kt++,i=_e(),Kt--,i===n?u=void 0:(Ht=u,u=n),u!==n&&(i=pe())!==n?a=u=[u,i]:(Ht=a,a=n);e=r=[r,o]}else Ht=e,e=n;return e}function ge(){var t,e,r,o;if(Kt++,t=Ht,(e=me())!==n){for(r=[],o=Ae();o!==n;)r.push(o),o=Ae();Gt=t,t=[e+r.join(""),Wt()]}else Ht=t,t=n;return Kt--,t===n&&(e=n,0===Kt&&ee(et)),t}function me(){var e,r,o;return(e=function(){var e;return(e=function(){var e;return d.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(jt)),e}())===n&&(e=function(){var e;return p.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Lt)),e}())===n&&(e=function(){var e;return h.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Rt)),e}())===n&&(e=function(){var e;return f.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Pt)),e}())===n&&(e=function(){var e;return _.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Tt)),e}())===n&&(e=function(){var e;return m.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Bt)),e}()),e}())===n&&(36===t.charCodeAt(Ht)?(e="$",Ht++):(e=n,0===Kt&&ee($)),e===n&&(95===t.charCodeAt(Ht)?(e="_",Ht++):(e=n,0===Kt&&ee(rt)),e===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Kt&&ee(nt)),r!==n&&(o=Fe())!==n?e=o:(Ht=e,e=n)))),e}function Ae(){var e;return(e=me())===n&&(e=function(){var e;return(e=function(){var e;return v.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Dt)),e}())===n&&(e=function(){var e;return y.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(kt)),e}()),e}())===n&&(e=function(){var e;return g.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(It)),e}())===n&&(e=function(){var e;return A.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(Nt)),e}())===n&&(8204===t.charCodeAt(Ht)?(e="\u200c",Ht++):(e=n,0===Kt&&ee(ot)),e===n&&(8205===t.charCodeAt(Ht)?(e="\u200d",Ht++):(e=n,0===Kt&&ee(at)))),e}function be(){var e,r,o,a;if(Kt++,e=Ht,34===t.charCodeAt(Ht)?(r='"',Ht++):(r=n,0===Kt&&ee(ct)),r!==n){for(o=[],a=Ee();a!==n;)o.push(a),a=Ee();34===t.charCodeAt(Ht)?(a='"',Ht++):(a=n,0===Kt&&ee(ct)),a!==n?(Gt=e,e=o.join("")):(Ht=e,e=n)}else Ht=e,e=n;if(e===n)if(e=Ht,39===t.charCodeAt(Ht)?(r="'",Ht++):(r=n,0===Kt&&ee(lt)),r!==n){for(o=[],a=we();a!==n;)o.push(a),a=we();39===t.charCodeAt(Ht)?(a="'",Ht++):(a=n,0===Kt&&ee(lt)),a!==n?(Gt=e,e=function(t){return t.join("")}(o)):(Ht=e,e=n)}else Ht=e,e=n;return Kt--,e===n&&(r=n,0===Kt&&ee(st)),e}function Ee(){var e,r,o,a;return e=Ht,r=Ht,o=Ht,Kt++,34===t.charCodeAt(Ht)?(a='"',Ht++):(a=n,0===Kt&&ee(ct)),a===n&&(92===t.charCodeAt(Ht)?(a="\\",Ht++):(a=n,0===Kt&&ee(nt)),a===n&&(a=_e())),Kt--,a===n?o=void 0:(Ht=o,o=n),o!==n&&(a=pe())!==n?r=o=[o,a]:(Ht=r,r=n),(e=r!==n?t.substring(e,Ht):r)===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Kt&&ee(nt)),r!==n&&(o=Oe())!==n?e=o:(Ht=e,e=n),e===n&&(e=Se())),e}function we(){var e,r,o,a;return e=Ht,r=Ht,o=Ht,Kt++,39===t.charCodeAt(Ht)?(a="'",Ht++):(a=n,0===Kt&&ee(lt)),a===n&&(92===t.charCodeAt(Ht)?(a="\\",Ht++):(a=n,0===Kt&&ee(nt)),a===n&&(a=_e())),Kt--,a===n?o=void 0:(Ht=o,o=n),o!==n&&(a=pe())!==n?r=o=[o,a]:(Ht=r,r=n),(e=r!==n?t.substring(e,Ht):r)===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Kt&&ee(nt)),r!==n&&(o=Oe())!==n?e=o:(Ht=e,e=n),e===n&&(e=Se())),e}function Ce(){var e,r,o,a,u,i;return e=Ht,(r=xe())!==n?(45===t.charCodeAt(Ht)?(o="-",Ht++):(o=n,0===Kt&&ee(dt)),o!==n&&(a=xe())!==n?(Gt=e,i=a,(u=r).charCodeAt(0)>i.charCodeAt(0)&&Xt("Invalid character range: "+t.substring(Gt,Ht)+"."),e=[u,i]):(Ht=e,e=n)):(Ht=e,e=n),e}function xe(){var e,r,o,a;return e=Ht,r=Ht,o=Ht,Kt++,93===t.charCodeAt(Ht)?(a="]",Ht++):(a=n,0===Kt&&ee(ht)),a===n&&(92===t.charCodeAt(Ht)?(a="\\",Ht++):(a=n,0===Kt&&ee(nt)),a===n&&(a=_e())),Kt--,a===n?o=void 0:(Ht=o,o=n),o!==n&&(a=pe())!==n?r=o=[o,a]:(Ht=r,r=n),(e=r!==n?t.substring(e,Ht):r)===n&&(e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Kt&&ee(nt)),r!==n&&(o=Oe())!==n?e=o:(Ht=e,e=n),e===n&&(e=Se())),e}function Se(){var e,r;return e=Ht,92===t.charCodeAt(Ht)?(r="\\",Ht++):(r=n,0===Kt&&ee(nt)),r!==n&&he()!==n?(Gt=e,e=""):(Ht=e,e=n),e}function Oe(){var e,r,o,a;return(e=function(){var e;return(e=$e())===n&&(e=function(){var e,r,o,a;return e=Ht,r=Ht,o=Ht,Kt++,(a=function(){var e;return(e=$e())===n&&(e=Le())===n&&(120===t.charCodeAt(Ht)?(e="x",Ht++):(e=n,0===Kt&&ee(wt)),e===n&&(117===t.charCodeAt(Ht)?(e="u",Ht++):(e=n,0===Kt&&ee(Ct)))),e}())===n&&(a=_e()),Kt--,a===n?o=void 0:(Ht=o,o=n),o!==n&&(a=pe())!==n?r=o=[o,a]:(Ht=r,r=n),r!==n?t.substring(e,Ht):r}()),e}())===n&&(e=Ht,48===t.charCodeAt(Ht)?(r="0",Ht++):(r=n,0===Kt&&ee(yt)),r!==n?(o=Ht,Kt++,a=Le(),Kt--,a===n?o=void 0:(Ht=o,o=n),o!==n?(Gt=e,e="\0"):(Ht=e,e=n)):(Ht=e,e=n),e===n&&(e=function(){var e,r,o,a,u,i,s;return e=Ht,120===t.charCodeAt(Ht)?(r="x",Ht++):(r=n,0===Kt&&ee(wt)),r!==n?(o=Ht,a=Ht,(u=Pe())!==n&&(i=Pe())!==n?a=u=[u,i]:(Ht=a,a=n),(o=a!==n?t.substring(o,Ht):a)!==n?(Gt=e,s=o,e=String.fromCharCode(parseInt(s,16))):(Ht=e,e=n)):(Ht=e,e=n),e}())===n&&(e=Fe())),e}function $e(){var e,r;return 39===t.charCodeAt(Ht)?(e="'",Ht++):(e=n,0===Kt&&ee(lt)),e===n&&(34===t.charCodeAt(Ht)?(e='"',Ht++):(e=n,0===Kt&&ee(ct)),e===n&&(92===t.charCodeAt(Ht)?(e="\\",Ht++):(e=n,0===Kt&&ee(nt)),e===n&&(e=Ht,98===t.charCodeAt(Ht)?(r="b",Ht++):(r=n,0===Kt&&ee(vt)),r!==n&&(Gt=e,r="\b"),(e=r)===n&&(e=Ht,102===t.charCodeAt(Ht)?(r="f",Ht++):(r=n,0===Kt&&ee(gt)),r!==n&&(Gt=e,r="\f"),(e=r)===n&&(e=Ht,110===t.charCodeAt(Ht)?(r="n",Ht++):(r=n,0===Kt&&ee(mt)),r!==n&&(Gt=e,r="\n"),(e=r)===n&&(e=Ht,114===t.charCodeAt(Ht)?(r="r",Ht++):(r=n,0===Kt&&ee(At)),r!==n&&(Gt=e,r="\r"),(e=r)===n&&(e=Ht,116===t.charCodeAt(Ht)?(r="t",Ht++):(r=n,0===Kt&&ee(bt)),r!==n&&(Gt=e,r="\t"),(e=r)===n&&(e=Ht,118===t.charCodeAt(Ht)?(r="v",Ht++):(r=n,0===Kt&&ee(Et)),r!==n&&(Gt=e,r="\v"),e=r)))))))),e}function Fe(){var e,r,o,a,u,i,s,c,l;return e=Ht,117===t.charCodeAt(Ht)?(r="u",Ht++):(r=n,0===Kt&&ee(Ct)),r!==n?(o=Ht,a=Ht,(u=Pe())!==n&&(i=Pe())!==n&&(s=Pe())!==n&&(c=Pe())!==n?a=u=[u,i,s,c]:(Ht=a,a=n),(o=a!==n?t.substring(o,Ht):a)!==n?(Gt=e,l=o,e=String.fromCharCode(parseInt(l,16))):(Ht=e,e=n)):(Ht=e,e=n),e}function Le(){var e;return s.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(xt)),e}function Pe(){var e;return c.test(t.charAt(Ht))?(e=t.charAt(Ht),Ht++):(e=n,0===Kt&&ee(St)),e}function Te(){var e,r,o,a;return Kt++,e=Ht,123===t.charCodeAt(Ht)?(r="{",Ht++):(r=n,0===Kt&&ee(E)),r!==n?(o=function(){var e,r;return e=Ht,r=function e(){var r,o,a,u,i,s;if(r=Ht,o=[],a=[],u=Ht,i=Ht,Kt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Kt&&ee(Ft)),Kt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?u=i=[i,s]:(Ht=u,u=n),u!==n)for(;u!==n;)a.push(u),u=Ht,i=Ht,Kt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Kt&&ee(Ft)),Kt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?u=i=[i,s]:(Ht=u,u=n);else a=n;for(a===n&&(a=Ht,123===t.charCodeAt(Ht)?(u="{",Ht++):(u=n,0===Kt&&ee(E)),u!==n?(i=e(),125===t.charCodeAt(Ht)?(s="}",Ht++):(s=n,0===Kt&&ee(w)),s!==n?a=u=[u,i,s]:(Ht=a,a=n)):(Ht=a,a=n));a!==n;){if(o.push(a),a=[],u=Ht,i=Ht,Kt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Kt&&ee(Ft)),Kt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?u=i=[i,s]:(Ht=u,u=n),u!==n)for(;u!==n;)a.push(u),u=Ht,i=Ht,Kt++,l.test(t.charAt(Ht))?(s=t.charAt(Ht),Ht++):(s=n,0===Kt&&ee(Ft)),Kt--,s===n?i=void 0:(Ht=i,i=n),i!==n&&(s=pe())!==n?u=i=[i,s]:(Ht=u,u=n);else a=n;a===n&&(a=Ht,123===t.charCodeAt(Ht)?(u="{",Ht++):(u=n,0===Kt&&ee(E)),u!==n?(i=e(),125===t.charCodeAt(Ht)?(s="}",Ht++):(s=n,0===Kt&&ee(w)),s!==n?a=u=[u,i,s]:(Ht=a,a=n)):(Ht=a,a=n))}return t.substring(r,Ht)}(),Gt=e,r=function(t){return[t,Wt()]}(r)}(),125===t.charCodeAt(Ht)?(a="}",Ht++):(a=n,0===Kt&&ee(w)),a!==n?e=o:(Ht=e,e=n)):(Ht=e,e=n),Kt--,e===n&&(r=n,0===Kt&&ee($t)),e}function Re(){var t,e;for(t=[],(e=fe())===n&&(e=he())===n&&(e=de());e!==n;)t.push(e),(e=fe())===n&&(e=he())===n&&(e=de());return t}function je(){var e,r,o,a;return e=Ht,r=Re(),59===t.charCodeAt(Ht)?(o=";",Ht++):(o=n,0===Kt&&ee(Ut)),o!==n?e=r=[r,o]:(Ht=e,e=n),e===n&&(e=Ht,r=function(){var t,e;for(t=[],(e=fe())===n&&(e=ye());e!==n;)t.push(e),(e=fe())===n&&(e=ye());return t}(),(o=ve())===n&&(o=null),(a=he())!==n?e=r=[r,o,a]:(Ht=e,e=n),e===n&&(e=Ht,r=Re(),(o=function(){var e,r;return e=Ht,Kt++,t.length>Ht?(r=t.charAt(Ht),Ht++):(r=n,0===Kt&&ee(D)),Kt--,r===n?e=void 0:(Ht=e,e=n),e}())!==n?e=r=[r,o]:(Ht=e,e=n))),e}const ke=e.reservedWords||[];if((r=u())!==n&&Ht===t.length)return r;throw r!==n&&Ht{e[r]=t[r].slice()}),e}(peg.compiler.passes),reservedWords:peg.RESERVED_WORDS.slice()};return r.forEach(t=>{t.use(n,e)}),peg.compiler.compile(n.parser.parse(t,{grammarSource:e.grammarSource,reservedWords:n.reservedWords}),n.passes,e)}};var _$peg_55=peg,_$parsers_71={};function ___typeof_71(t){return(___typeof_71="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$parsers_71,"__esModule",{value:!0}),_$parsers_71.default=void 0;var QXParser,LoonParser,SurgeParser,_surge=___interopRequireDefault_71(_$surge_69),_loon=___interopRequireDefault_71(_$loon_67),_qx=___interopRequireDefault_71(_$qx_68),peggy=function(t,e){if(t&&t.__esModule)return t;if(null===t||"object"!==___typeof_71(t)&&"function"!=typeof t)return{default:t};var r=_getRequireWildcardCache(void 0);if(r&&r.has(t))return r.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if("default"!==a&&Object.prototype.hasOwnProperty.call(t,a)){var u=o?Object.getOwnPropertyDescriptor(t,a):null;u&&(u.get||u.set)?Object.defineProperty(n,a,u):n[a]=t[a]}return n.default=t,r&&r.set(t,n),n}(_$peg_55);function _getRequireWildcardCache(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(t){return t?r:e})(t)}function ___interopRequireDefault_71(t){return t&&t.__esModule?t:{default:t}}function ___slicedToArray_71(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,a=[],u=!0,i=!1;try{for(r=r.call(t);!(u=(n=r.next()).done)&&(a.push(n.value),!e||a.length!==e);u=!0);}catch(s){i=!0,o=s}finally{try{u||null==r.return||r.return()}finally{if(i)throw o}}return a}}(t,e)||___unsupportedIterableToArray_71(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function __ownKeys_71(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_71(t){for(var e=1;e=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var a,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw a}}}}function ___unsupportedIterableToArray_71(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_71(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_71(t,e):void 0}}function ___arrayLikeToArray_71(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1){var s,c=___createForOfIteratorHelper_71(t);try{for(c.s();!(s=c.n()).done;){var l=___slicedToArray_71(s.value.split("="),2),p=l[0],f=l[1];i[p]=f.trim()}}catch(_){c.e(_)}finally{c.f()}}return ___objectSpread_71(___objectSpread_71({},u),{},{name:i.remarks?_$base64_4.Base64.decode(i.remarks):u.server,"protocol-param":_$base64_4.Base64.decode(i.protoparam||"").replace(/\s/g,""),"obfs-param":_$base64_4.Base64.decode(i.obfsparam||"").replace(/\s/g,"")})}}),{name:"URI VMess Parser",test:function(t){return/^vmess:\/\//.test(t)},parse:function(t){t=t.split("vmess://")[1];var e=_$base64_4.Base64.decode(t);if(/=\s*vmess/.test(e)){var r,n=e.split(",").map((function(t){return t.trim()})),o={},a=___createForOfIteratorHelper_71(n);try{for(a.s();!(r=a.n()).done;){var u=r.value;if(-1!==u.indexOf("=")){var i=___slicedToArray_71(u.split("="),2),s=i[0],c=i[1];o[s.trim()]=c.trim()}}}catch(h){a.e(h)}finally{a.f()}var l={name:n[0].split("=")[0].trim(),type:"vmess",server:n[1],port:n[2],cipher:n[3],uuid:n[4].match(/^"(.*)"$/)[1],tls:"over-tls"===o.obfs||"wss"===o.obfs};if(void 0!==o["udp-relay"]&&(l.udp=JSON.parse(o["udp-relay"])),void 0!==o["fast-open"]&&(l.udp=JSON.parse(o["fast-open"])),"ws"===o.obfs||"wss"===o.obfs){l.network="ws",l["ws-opts"].path=(o["obfs-path"]||'"/"').match(/^"(.*)"$/)[1];var p=o["obfs-header"];p&&-1!==p.indexOf("Host")&&(p=p.match(/Host:\s*([a-zA-Z0-9-.]*)/)[1]),l["ws-opts"].headers={Host:p||l.server}}return l.tls&&"false"===o['"tls-verification"']&&(l["skip-cert-verify"]=!0),l.tls&&o["obfs-host"]&&(l.sni=o["obfs-host"]),l}var f=JSON.parse(e),_={name:f.ps,type:"vmess",server:f.add,port:f.port,cipher:"auto",uuid:f.id,alterId:f.aid||0,tls:"tls"===f.tls||!0===f.tls,supported:{}};return"ws"===f.net&&(_.network="ws",_["ws-opts"]={path:f.path,headers:{Host:f.host||f.add}},_.tls&&f.host&&(_.sni=f.host)),!1===f.verify_cert&&(_["skip-cert-verify"]=!0),_}},{name:"URI Trojan Parser",test:function(t){return/^trojan:\/\//.test(t)},parse:function(t){var e=___slicedToArray_71((t=t.split("trojan://")[1]).split("@")[1].split("?")[0].split(":"),2),r=e[0],n=e[1],o=decodeURIComponent(t.split("#")[1].trim()),a=t.split("?"),u=null;return a.length>1&&(a=a[1].split("#")[0].split("&"),u=new Map(a.map((function(t){return t.split("=")}))).get("sni")),{name:o||"[Trojan] ".concat(r),type:"trojan",server:r,port:n,password:t.split("@")[0],sni:u,supported:{}}}},{name:"Clash Parser",test:function(t){try{JSON.parse(t)}catch(e){return!1}return!0},parse:function(t){return JSON.parse(t)}},{name:"Surge SS Parser",test:function(t){return/^.*=\s*ss/.test(t.split(",")[0])},parse:function(t){return getSurgeParser().parse(t)}},{name:"Surge VMess Parser",test:function(t){return/^.*=\s*vmess/.test(t.split(",")[0])&&-1!==t.indexOf("username")},parse:function(t){return getSurgeParser().parse(t)}},{name:"Surge Trojan Parser",test:function(t){return/^.*=\s*trojan/.test(t.split(",")[0])&&-1!==t.indexOf("sni")},parse:function(t){return getSurgeParser().parse(t)}},{name:"Surge HTTP Parser",test:function(t){return/^.*=\s*https?/.test(t.split(",")[0])&&!Loon_Http().test(t)},parse:function(t){return getSurgeParser().parse(t)}},{name:"Loon SS Parser",test:function(t){return"shadowsocks"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){return getLoonParser().parse(t)}},{name:"Loon SSR Parser",test:function(t){return"shadowsocksr"===t.split(",")[0].split("=")[1].trim().toLowerCase()},parse:function(t){return getLoonParser().parse(t)}},{name:"Loon VMess Parser",test:function(t){return/^.*=\s*vmess/i.test(t.split(",")[0])&&-1===t.indexOf("username")},parse:function(t){return getLoonParser().parse(t)}},{name:"Loon Trojan Parser",test:function(t){return/^.*=\s*trojan/i.test(t.split(",")[0])&&-1===t.indexOf("password")},parse:function(t){return getLoonParser().parse(t)}},Loon_Http(),{name:"QX SS Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1===t.indexOf("ssr-protocol")},parse:function(t){return getQXParser().parse(t)}},{name:"QX SSR Parser",test:function(t){return/^shadowsocks\s*=/.test(t.split(",")[0].trim())&&-1!==t.indexOf("ssr-protocol")},parse:function(t){return getQXParser().parse(t)}},{name:"QX VMess Parser",test:function(t){return/^vmess\s*=/.test(t.split(",")[0].trim())},parse:function(t){return getQXParser().parse(t)}},{name:"QX Trojan Parser",test:function(t){return/^trojan\s*=/.test(t.split(",")[0].trim())},parse:function(t){return getQXParser().parse(t)}},{name:"QX HTTP Parser",test:function(t){return/^http\s*=/.test(t.split(",")[0].trim())},parse:function(t){return getQXParser().parse(t)}}];_$parsers_71.default=___default_71;var _$proxyUtils_70={};function ___typeof_70(t){return(___typeof_70="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$proxyUtils_70,"__esModule",{value:!0}),_$proxyUtils_70.ProxyUtils=void 0;var ___download_70=___interopRequireDefault_70(_$download_86),_processors=function(t,e){if(t&&t.__esModule)return t;if(null===t||"object"!==___typeof_70(t)&&"function"!=typeof t)return{default:t};var r=___getRequireWildcardCache_70(void 0);if(r&&r.has(t))return r.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if("default"!==a&&Object.prototype.hasOwnProperty.call(t,a)){var u=o?Object.getOwnPropertyDescriptor(t,a):null;u&&(u.get||u.set)?Object.defineProperty(n,a,u):n[a]=t[a]}return n.default=t,r&&r.set(t,n),n}(_$processors_73),_preprocessors=___interopRequireDefault_70(_$preprocessors_72),_producers=___interopRequireDefault_70(_$producers_74),_parsers=___interopRequireDefault_70(_$parsers_71),___app_70=___interopRequireDefault_70(_$app_66);function ___getRequireWildcardCache_70(t){if("function"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return(___getRequireWildcardCache_70=function(t){return t?r:e})(t)}function ___interopRequireDefault_70(t){return t&&t.__esModule?t:{default:t}}function ___regeneratorRuntime_70(){___regeneratorRuntime_70=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",u=n.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(S){i=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof p?e:p,a=Object.create(o.prototype),u=new w(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var u=r.delegate;if(u){var i=A(u,r);if(i){if(i===l)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var s=c(t,e,r);if("normal"===s.type){if(n=r.done?"completed":"suspendedYield",s.arg===l)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n="completed",r.method="throw",r.arg=s.arg)}}}(t,r,u),a}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(S){return{type:"throw",arg:S}}}t.wrap=s;var l={};function p(){}function f(){}function _(){}var h={};i(h,o,(function(){return this}));var d=Object.getPrototypeOf,y=d&&d(d(C([])));y&&y!==e&&r.call(y,o)&&(h=y);var v=_.prototype=p.prototype=Object.create(h);function g(t){["next","throw","return"].forEach((function(e){i(t,e,(function(t){return this._invoke(e,t)}))}))}function m(t,e){var n;this._invoke=function(o,a){function u(){return new e((function(n,u){!function n(o,a,u,i){var s=c(t[o],t,a);if("throw"!==s.type){var l=s.arg,p=l.value;return p&&"object"==___typeof_70(p)&&r.call(p,"__await")?e.resolve(p.__await).then((function(t){n("next",t,u,i)}),(function(t){n("throw",t,u,i)})):e.resolve(p).then((function(t){l.value=t,u(l)}),(function(t){return n("throw",t,u,i)}))}i(s.arg)}(o,a,n,u)}))}return n=n?n.then(u,u):u()}}function A(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,A(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function w(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function C(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __asyncGeneratorStep_70(t,e,r,n,o,a,u){try{var i=t[a](u),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}function ___createForOfIteratorHelper_70(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_70(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_70(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var a,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw a}}}}function ___arrayLikeToArray_70(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==A[1]?A[1]:[],n=A.length>2?A[2]:void 0,o=___createForOfIteratorHelper_70(r),t.prev=3,o.s();case 5:if((a=o.n()).done){t.next=40;break}if(u=a.value,i=void 0,s={},-1===u.type.indexOf("Script")){t.next=29;break}if(c=u.args,l=c.mode,p=c.content,"link"!==l){t.next=28;break}if((_=(f=p).split("#")).length>1){h=___createForOfIteratorHelper_70(_[1].split("&"));try{for(h.s();!(d=h.n()).done;)y=d.value,v=y.split("=")[0],g=y.split("=")[1]||!0,s[v]=g}catch(b){h.e(b)}finally{h.f()}}return t.prev=15,t.next=18,(0,___download_70.default)(f.split("#")[0]);case 18:i=t.sent,___app_70.default.info("Script loaded: >>>\n ".concat(i)),t.next=26;break;case 22:return t.prev=22,t.t0=t.catch(15),___app_70.default.error("Error when downloading remote script: ".concat(u.args.content,".\n Reason: ").concat(t.t0)),t.abrupt("continue",38);case 26:t.next=29;break;case 28:i=p;case 29:if(_processors.default[u.type]){t.next=32;break}return ___app_70.default.error('Unknown operator: "'.concat(u.type,'"')),t.abrupt("continue",38);case 32:return ___app_70.default.info('Applying "'.concat(u.type,'" with arguments:\n >>> ').concat(JSON.stringify(u.args,null,2)||"None")),m=void 0,m=-1!==u.type.indexOf("Script")?_processors.default[u.type](i,n,s):_processors.default[u.type](u.args),t.next=37,(0,_processors.ApplyProcessor)(m,e);case 37:e=t.sent;case 38:t.next=5;break;case 40:t.next=45;break;case 42:t.prev=42,t.t1=t.catch(3),o.e(t.t1);case 45:return t.prev=45,o.f(),t.finish(45);case 48:return t.abrupt("return",e);case 49:case"end":return t.stop()}}),t,null,[[3,42,45,48],[15,22]])})),(_process=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function u(t){__asyncGeneratorStep_70(a,n,o,u,i,"next",t)}function i(t){__asyncGeneratorStep_70(a,n,o,u,i,"throw",t)}u(void 0)}))}).apply(this,arguments)}var ProxyUtils={parse:function(t){t=function(t){var e,r=___createForOfIteratorHelper_70(_preprocessors.default);try{for(r.s();!(e=r.n()).done;){var n=e.value;try{if(n.test(t))return ___app_70.default.info("Pre-processor [".concat(n.name,"] activated")),n.parse(t)}catch(o){___app_70.default.error("Parser [".concat(n.name,"] failed\n Reason: ").concat(o))}}}catch(a){r.e(a)}finally{r.f()}return t}(t);var e,r,n=[],o=___createForOfIteratorHelper_70(t.split("\n"));try{for(o.s();!(r=o.n()).done;){var a=r.value;if(0!==(a=a.trim()).length){var u=e&&safeMatch(e,a);if(!u){var i,s=___createForOfIteratorHelper_70(_parsers.default);try{for(s.s();!(i=s.n()).done;){var c=i.value;if(safeMatch(c,a)){e=c,u=!0,___app_70.default.info("Proxy parser: ".concat(c.name," is activated"));break}}}catch(p){s.e(p)}finally{s.f()}}if(u)try{var l=e.parse(a);l||___app_70.default.error("Parser ".concat(e.name," return nothing for \n").concat(a,"\n")),n.push(l)}catch(p){___app_70.default.error("Failed to parse line: \n ".concat(a,"\n Reason: ").concat(p))}else ___app_70.default.error("Failed to find a rule to parse line: \n".concat(a,"\n"))}}}catch(p){o.e(p)}finally{o.f()}return n},process:function(t){return _process.apply(this,arguments)},produce:function(t,e){var r=_producers.default[e];if(!r)throw new Error("Target platform: ".concat(e," is not supported!"));return t=t.filter((function(t){return!(t.supported&&!1===t.supported[e])})),___app_70.default.info("Producing proxies for target: ".concat(e)),void 0===r.type||"SINGLE"===r.type?t.map((function(t){try{return r.produce(t)}catch(e){return ___app_70.default.error("Cannot produce proxy: ".concat(JSON.stringify(t,null,2),"\nReason: ").concat(e)),""}})).filter((function(t){return t.length>0})).join("\n"):"ALL"===r.type?r.produce(t):void 0}};function safeMatch(t,e){var r;try{r=t.test(e)}catch(n){r=!1}return r}_$proxyUtils_70.ProxyUtils=ProxyUtils;var _$preprocessors_77={};Object.defineProperty(_$preprocessors_77,"__esModule",{value:!0}),_$preprocessors_77.default=void 0;var ___default_77=[{name:"HTML",test:function(t){return/^/.test(t)},parse:function(){return""}},{name:"Clash Provider",test:function(t){return 0===t.indexOf("payload:")},parse:function(t){return t.replace("payload:","").replace(/^\s*-\s*/gm,"")}}];_$preprocessors_77.default=___default_77;var _$producers_78={};Object.defineProperty(_$producers_78,"__esModule",{value:!0}),_$producers_78.default=void 0;var obj,___staticJsYaml_78=(obj=_$staticJsYaml_65)&&obj.__esModule?obj:{default:obj},___default_78={QX:{type:"SINGLE",func:function(t){return-1!==["URL-REGEX","DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:"".concat({"DOMAIN-KEYWORD":"HOST-KEYWORD","DOMAIN-SUFFIX":"HOST-SUFFIX",DOMAIN:"HOST","IP-CIDR6":"IP6-CIDR"}[t.type]||t.type,",").concat(t.content,",SUB-STORE")}},Surge:{type:"SINGLE",func:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}},Loon:{type:"SINGLE",func:function(t){return-1!==["DEST-PORT","SRC-IP","IN-PORT","PROTOCOL"].indexOf(t.type)?null:function(t){var e="".concat(t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(e+=t.options?",".concat(t.options[0]):""),e}(t)}},Clash:{type:"ALL",func:function(t){var e={"DEST-PORT":"DST-PORT","SRC-IP":"SRC-IP-CIDR","IN-PORT":"SRC-PORT"},r={payload:t.map((function(t){var r="".concat(e[t.type]||t.type,",").concat(t.content);return"IP-CIDR"!==t.type&&"IP-CIDR6"!==t.type||(r+=t.options?",".concat(t.options[0]):""),r}))};return ___staticJsYaml_78.default.dump(r)}}};_$producers_78.default=___default_78;var _$parsers_76={};function ___createForOfIteratorHelper_76(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_76(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_76(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var a,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw a}}}}function ___arrayLikeToArray_76(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var a,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw a}}}}function ___arrayLikeToArray_75(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0})).join("\n"):"ALL"===r.type?r.func(t):void 0}};_$ruleUtils_75.RuleUtils=RuleUtils;var _$artifacts_80={};function ___typeof_80(t){return(___typeof_80="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(_$artifacts_80,"__esModule",{value:!0}),_$artifacts_80.default=function(t){___app_80.default.read(_$constants_82.ARTIFACTS_KEY)||___app_80.default.write({},_$constants_82.ARTIFACTS_KEY),t.route("/api/artifacts").get(getAllArtifacts).post(createArtifact),t.route("/api/artifact/:name").get(getArtifact).patch(updateArtifact).delete(deleteArtifact),t.get("/api/cron/sync-artifacts",cronSyncArtifacts)},_$artifacts_80.produceArtifact=produceArtifact;var ___download_80=___interopRequireDefault_80(_$download_86),_gist=___interopRequireDefault_80(_$gist_88),___app_80=___interopRequireDefault_80(_$app_66);function ___interopRequireDefault_80(t){return t&&t.__esModule?t:{default:t}}function ___createForOfIteratorHelper_80(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return ___arrayLikeToArray_80(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?___arrayLikeToArray_80(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f: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.")}var a,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw a}}}}function ___arrayLikeToArray_80(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __ownKeys_80(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_80(t){for(var e=1;e>>")),console.log(JSON.stringify(u,null,2)),t.prev=26,t.next=29,syncArtifact(___defineProperty_80({},encodeURIComponent(u.name),{content:s}));case 29:c=t.sent,u.updated=(new Date).getTime(),l=JSON.parse(c.body),u.url=l.files[encodeURIComponent(u.name)].raw_url.replace(/\/raw\/[^/]*\/(.*)/,"/raw/$1"),___app_80.default.write(a,_$constants_82.ARTIFACTS_KEY),r.json({status:"success"}),t.next=40;break;case 37:t.prev=37,t.t1=t.catch(26),r.status(500).json({status:"failed",message:t.t1});case 40:t.next=43;break;case 42:r.json({status:"success",data:u});case 43:t.next=46;break;case 45:r.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u914d\u7f6e\uff01"});case 46:case"end":return t.stop()}}),t,null,[[26,37]])})))).apply(this,arguments)}function createArtifact(t,e){var r=t.body;___app_80.default.info("\u6b63\u5728\u521b\u5efa\u8fdc\u7a0b\u914d\u7f6e\uff1a".concat(r.name));var n=___app_80.default.read(_$constants_82.ARTIFACTS_KEY);n[r.name]?e.status(500).json({status:"failed",message:"\u8fdc\u7a0b\u914d\u7f6e".concat(r.name,"\u5df2\u5b58\u5728\uff01")}):(n[r.name]=r,___app_80.default.write(n,_$constants_82.ARTIFACTS_KEY),e.status(201).json({status:"success",data:r}))}function updateArtifact(t,e){var r=___app_80.default.read(_$constants_82.ARTIFACTS_KEY),n=t.params.name,o=r[n=decodeURIComponent(n)];if(o){___app_80.default.info("\u6b63\u5728\u66f4\u65b0\u8fdc\u7a0b\u914d\u7f6e\uff1a".concat(o.name));var a=t.body;if(void 0===a.name||/^[\w-_.]*$/.test(a.name)){var u=___objectSpread_80(___objectSpread_80({},o),a);r[u.name]=u,u.name!==n&&delete r[n],___app_80.default.write(r,_$constants_82.ARTIFACTS_KEY),e.json({status:"success",data:u})}else e.status(500).json({status:"failed",message:"\u8fdc\u7a0b\u914d\u7f6e\u540d\u79f0 ".concat(a.name," \u4e2d\u542b\u6709\u975e\u6cd5\u5b57\u7b26\uff01\u540d\u79f0\u4e2d\u53ea\u80fd\u5305\u542b\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u6a2a\u6760\u3002")})}else e.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u5bf9\u5e94\u7684\u8fdc\u7a0b\u914d\u7f6e\uff01"})}function cronSyncArtifacts(t,e){return _cronSyncArtifacts.apply(this,arguments)}function _cronSyncArtifacts(){return(_cronSyncArtifacts=___asyncToGenerator_80(___regeneratorRuntime_80().mark((function t(e,r){var n,o,a,u,i,s,c;return ___regeneratorRuntime_80().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return ___app_80.default.info("\u5f00\u59cb\u540c\u6b65\u6240\u6709\u8fdc\u7a0b\u914d\u7f6e..."),n=___app_80.default.read(_$constants_82.ARTIFACTS_KEY),o={},t.prev=3,t.next=6,Promise.all(Object.values(n).map(function(){var t=___asyncToGenerator_80(___regeneratorRuntime_80().mark((function t(e){var r,n;return ___regeneratorRuntime_80().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.sync){t.next=15;break}___app_80.default.info("\u6b63\u5728\u540c\u6b65\u4e91\u914d\u7f6e\uff1a".concat(e.name,"...")),t.t0=e.type,t.next="subscription"===t.t0?5:"collection"===t.t0?7:"rule"===t.t0?9:11;break;case 5:return r=___app_80.default.read(_$constants_82.SUBS_KEY)[e.source],t.abrupt("break",11);case 7:return r=___app_80.default.read(_$constants_82.COLLECTIONS_KEY)[e.source],t.abrupt("break",11);case 9:return r=___app_80.default.read(_$constants_82.RULES_KEY)[e.source],t.abrupt("break",11);case 11:return t.next=13,produceArtifact({type:e.type,item:r,platform:e.platform});case 13:n=t.sent,o[e.name]={content:n};case 15:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 6:return t.next=8,syncArtifact(o);case 8:for(a=t.sent,u=JSON.parse(a.body),i=0,s=Object.values(n);i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __ownKeys_85(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_85(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __ownKeys_81(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_81(t){for(var e=1;e0)){t.next=16;break}if("local"===(p=c[l[0]]).source){t.next=16;break}return t.next=14,(0,_$subscriptions_85.getFlowHeaders)(p.url);case 14:(f=t.sent)&&r.set("subscription-userinfo",f);case 16:if(!s){t.next=30;break}return t.prev=17,t.next=20,(0,_$artifacts_80.produceArtifact)({type:"collection",item:s,platform:u,noProcessor:a});case 20:_=t.sent,"JSON"===u?r.set("Content-Type","application/json;charset=utf-8").send(_):r.send(_),t.next=28;break;case 24:t.prev=24,t.t0=t.catch(17),___app_81.default.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25","\u274c \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u9519\u8bef\uff1a".concat(n,"\uff01"),"\ud83e\udd14 \u539f\u56e0\uff1a".concat(t.t0)),r.status(500).json({status:"failed",message:t.t0});case 28:t.next=32;break;case 30:___app_81.default.notify("\ud83c\udf0d \u300e \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \u300f \u4e0b\u8f7d\u7ec4\u5408\u8ba2\u9605\u5931\u8d25","\u274c \u672a\u627e\u5230\u7ec4\u5408\u8ba2\u9605\uff1a".concat(n,"\uff01")),r.status(404).json({status:"failed"});case 32:case"end":return t.stop()}}),t,null,[[17,24]])})),(_downloadCollection=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function u(t){__asyncGeneratorStep_81(a,n,o,u,i,"next",t)}function i(t){__asyncGeneratorStep_81(a,n,o,u,i,"throw",t)}u(void 0)}))}).apply(this,arguments)}function createCollection(t,e){var r=t.body;___app_81.default.info("\u6b63\u5728\u521b\u5efa\u7ec4\u5408\u8ba2\u9605\uff1a".concat(r.name));var n=___app_81.default.read(_$constants_82.COLLECTIONS_KEY);n[r.name]&&e.status(500).json({status:"failed",message:"\u8ba2\u9605\u96c6".concat(r.name,"\u5df2\u5b58\u5728\uff01")}),n[r.name]=r,___app_81.default.write(n,_$constants_82.COLLECTIONS_KEY),e.status(201).json({status:"success",data:r})}function getCollection(t,e){var r=t.params.name;r=decodeURIComponent(r);var n=___app_81.default.read(_$constants_82.COLLECTIONS_KEY)[r];n?e.json({status:"success",data:n}):e.status(404).json({status:"failed",message:"\u672a\u627e\u5230\u8ba2\u9605\u96c6\uff1a".concat(r,"!")})}function updateCollection(t,e){var r=t.params.name;r=decodeURIComponent(r);var n=t.body,o=___app_81.default.read(_$constants_82.COLLECTIONS_KEY);if(o[r]){var a=___objectSpread_81(___objectSpread_81({},o[r]),n);___app_81.default.info("\u6b63\u5728\u66f4\u65b0\u7ec4\u5408\u8ba2\u9605\uff1a".concat(r,"...")),delete o[r],o[n.name||r]=a,___app_81.default.write(o,_$constants_82.COLLECTIONS_KEY),e.json({status:"success",data:a})}else e.status(500).json({status:"failed",message:"\u8ba2\u9605\u96c6".concat(r,"\u4e0d\u5b58\u5728\uff0c\u65e0\u6cd5\u66f4\u65b0\uff01")})}function deleteCollection(t,e){var r=t.params.name;r=decodeURIComponent(r),___app_81.default.info("\u6b63\u5728\u5220\u9664\u7ec4\u5408\u8ba2\u9605\uff1a".concat(r));var n=___app_81.default.read(_$constants_82.COLLECTIONS_KEY);delete n[r],___app_81.default.write(n,_$constants_82.COLLECTIONS_KEY),e.json({status:"success"})}function getAllCollections(t,e){var r=___app_81.default.read(_$constants_82.COLLECTIONS_KEY);e.json({status:"success",data:r})}var _$settings_84={};Object.defineProperty(_$settings_84,"__esModule",{value:!0}),_$settings_84.default=function(t){___app_84.default.read(_$constants_82.SETTINGS_KEY)||___app_84.default.write({},_$constants_82.SETTINGS_KEY),t.route("/api/settings").get(getSettings).patch(updateSettings)};var __obj_84,___app_84=(__obj_84=_$app_66)&&__obj_84.__esModule?__obj_84:{default:__obj_84};function __ownKeys_84(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ___objectSpread_84(t){for(var e=1;e=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(i&&s){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:C(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function __asyncGeneratorStep_83(t,e,r,n,o,a,u){try{var i=t[a](u),s=i.value}catch(c){return void r(c)}i.done?e(s):Promise.resolve(s).then(n,o)}function ___asyncToGenerator_83(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function u(t){__asyncGeneratorStep_83(a,n,o,u,i,"next",t)}function i(t){__asyncGeneratorStep_83(a,n,o,u,i,"throw",t)}u(void 0)}))}}function getEnv(t,e){var r=(0,_$openApi_92.ENV)(),n="Node";r.isNode&&(n="Node"),r.isQX&&(n="QX"),r.isLoon&&(n="Loon"),r.isSurge&&(n="Surge"),e.json({backend:n})}function gistBackup(t,e){return _gistBackup.apply(this,arguments)}function _gistBackup(){return(_gistBackup=___asyncToGenerator_83(___regeneratorRuntime_83().mark((function t(e,r){var n,o,a,u,i,s,c;return ___regeneratorRuntime_83().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.query.action,o=___app_83.default.read(_$constants_82.SETTINGS_KEY),a=o.gistToken){t.next=6;break}r.status(500).json({status:"failed",message:"\u672a\u627e\u5230Gist\u5907\u4efdToken!"}),t.next=35;break;case 6:u=new ___gist_83.default({token:a,key:_$constants_82.GIST_BACKUP_KEY}),t.prev=7,s=___app_83.default.read(_$constants_82.SETTINGS_KEY),t.t0=n,t.next="upload"===t.t0?12:"download"===t.t0?20:27;break;case 12:return s.syncTime=(new Date).getTime(),___app_83.default.write(s,_$constants_82.SETTINGS_KEY),i=___app_83.default.read("#sub-store"),___app_83.default.env.isNode&&(i=JSON.stringify(___app_83.default.cache,null," ")),___app_83.default.info("\u4e0a\u4f20\u5907\u4efd\u4e2d..."),t.next=19,u.upload((l={},p=_$constants_82.GIST_BACKUP_FILE_NAME,f={content:i},p in l?Object.defineProperty(l,p,{value:f,enumerable:!0,configurable:!0,writable:!0}):l[p]=f,l));case 19:return t.abrupt("break",27);case 20:return ___app_83.default.info("\u8fd8\u539f\u5907\u4efd\u4e2d..."),t.next=23,u.download(_$constants_82.GIST_BACKUP_FILE_NAME);case 23:return i=t.sent,___app_83.default.write(i,"#sub-store"),___app_83.default.env.isNode&&(i=JSON.parse(i),Object.keys(i).forEach((function(t){___app_83.default.write(i[t],t)}))),t.abrupt("break",27);case 27:r.json({status:"success"}),t.next=35;break;case 30:t.prev=30,t.t1=t.catch(7),c="".concat("upload"===n?"\u4e0a\u4f20":"\u4e0b\u8f7d","\u5907\u4efd\u5931\u8d25\uff01").concat(t.t1),___app_83.default.error(c),r.status(500).json({status:"failed",message:c});case 35:case"end":return t.stop()}var l,p,f}),t,null,[[7,30]])})))).apply(this,arguments)}function IP_API(t,e){return _IP_API.apply(this,arguments)}function _IP_API(){return(_IP_API=___asyncToGenerator_83(___regeneratorRuntime_83().mark((function t(e,r){var n,o,a;return ___regeneratorRuntime_83().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=decodeURIComponent(e.params.server),o=(0,_$openApi_92.HTTP)(),t.next=4,o.get("http://ip-api.com/json/".concat(n,"?lang=zh-CN")).then((function(t){return JSON.parse(t.body)}));case 4:a=t.sent,r.json(a);case 6:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var _$main_79={},__obj_79,_restful=(__obj_79=_$restful_83)&&__obj_79.__esModule?__obj_79:{default:__obj_79};console.log("\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n \ud835\udc7a\ud835\udc96\ud835\udc83-\ud835\udc7a\ud835\udc95\ud835\udc90\ud835\udc93\ud835\udc86 \xa9 \ud835\udc77\ud835\udc86\ud835\udc8f\ud835\udc88-\ud835\udc80\ud835\udc74\n\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\u2505\n"),(0,_restful.default)()}(); \ No newline at end of file diff --git a/backend/test/proxy-parsers/loon.spec.js b/backend/test/proxy-parsers/loon.spec.js new file mode 100644 index 0000000..7b591d1 --- /dev/null +++ b/backend/test/proxy-parsers/loon.spec.js @@ -0,0 +1,145 @@ +import { expect } from 'chai'; +import * as peggy from 'peggy'; +import loon from '../../src/core/proxy-utils/grammars/loon'; +import testcases from './testcases'; +import { describe, it } from 'mocha'; + +const parser = peggy.generate(loon); + +describe('Loon', function() { + describe('shadowsocks', function() { + it('test shadowsocks simple', function() { + const { input, expected } = testcases.SS.SIMPLE; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + it('test shadowsocks obfs + tls', function() { + const { input, expected } = testcases.SS.OBFS_TLS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + it('test shadowsocks obfs + http', function() { + const { input, expected } = testcases.SS.OBFS_HTTP; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + }); + + describe('shadowsocksr', function() { + it('test shadowsocksr simple', function() { + const { input, expected } = testcases.SSR.SIMPLE; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + }); + + describe('trojan', function() { + it('test trojan simple', function() { + const { input, expected } = testcases.TROJAN.SIMPLE; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + + it('test trojan + ws', function() { + const { input, expected } = testcases.TROJAN.WS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + + it('test trojan + wss', function() { + const { input, expected } = testcases.TROJAN.WSS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + }); + + describe('vmess', function() { + it('test vmess simple', function() { + const { input, expected } = testcases.VMESS.SIMPLE; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vmess + aead', function() { + const { input, expected } = testcases.VMESS.AEAD; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vmess + ws', function() { + const { input, expected } = testcases.VMESS.WS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vmess + wss', function() { + const { input, expected } = testcases.VMESS.WSS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vmess + http', function() { + const { input, expected } = testcases.VMESS.HTTP; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vmess + http + tls', function() { + const { input, expected } = testcases.VMESS.HTTP_TLS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + }); + + describe('vless', function() { + it('test vless simple', function() { + const { input, expected } = testcases.VLESS.SIMPLE; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon) + }); + + it('test vless + ws', function() { + const { input, expected } = testcases.VLESS.WS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vless + wss', function() { + const { input, expected } = testcases.VLESS.WSS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vless + http', function() { + const { input, expected } = testcases.VLESS.HTTP; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + + it('test vless + http + tls', function() { + const { input, expected } = testcases.VLESS.HTTP_TLS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected.Loon); + }); + }); + + describe('http(s)', function() { + it('test http simple', function () { + const { input, expected } = testcases.HTTP.SIMPLE; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + + it('test http with authentication', function () { + const { input, expected } = testcases.HTTP.AUTH; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + + it('test https', function () { + const { input, expected } = testcases.HTTP.TLS; + const proxy = parser.parse(input.Loon); + expect(proxy).eql(expected); + }); + }); +}); \ No newline at end of file diff --git a/backend/test/proxy-parsers/qx.spec.js b/backend/test/proxy-parsers/qx.spec.js new file mode 100644 index 0000000..6df18d8 --- /dev/null +++ b/backend/test/proxy-parsers/qx.spec.js @@ -0,0 +1,139 @@ +import * as peggy from 'peggy'; +import qx from '../../src/core/proxy-utils/grammars/qx'; +import { expect } from 'chai'; +import testcases from './testcases'; +import { describe, it } from 'mocha'; + + + +const parser = peggy.generate(qx); + +describe('QX', function() { + describe('shadowsocks', function() { + it('test shadowsocks simple', function() { + const { input, expected } = testcases.SS.SIMPLE; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + it('test shadowsocks obfs + tls', function() { + const { input, expected } = testcases.SS.OBFS_TLS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + it('test shadowsocks obfs + http', function() { + const { input, expected } = testcases.SS.OBFS_HTTP; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + it('test shadowsocks v2ray-plugin + ws', function() { + const { input, expected } = testcases.SS.V2RAY_PLUGIN_WS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + it('test shadowsocks v2ray-plugin + wss', function() { + const { input, expected } = testcases.SS.V2RAY_PLUGIN_WSS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + }); + + describe('shadowsocksr', function() { + it('test shadowsocksr simple', function() { + const { input, expected } = testcases.SSR.SIMPLE; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + }); + + describe('trojan', function() { + it('test trojan simple', function() { + const { input, expected } = testcases.TROJAN.SIMPLE; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + + it('test trojan + ws', function() { + const { input, expected } = testcases.TROJAN.WS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + + it('test trojan + wss', function() { + const { input, expected } = testcases.TROJAN.WSS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + }); + + describe('vmess', function() { + it('test vmess simple', function() { + const { input, expected } = testcases.VMESS.SIMPLE; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected.QX); + }); + + it('test vmess aead', function() { + const { input, expected } = testcases.VMESS.AEAD; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected.QX); + }); + + it('test vmess + ws', function() { + const { input, expected } = testcases.VMESS.WS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected.QX); + }); + + it('test vmess + wss', function() { + const { input, expected } = testcases.VMESS.WSS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected.QX); + }); + + it('test vmess + http', function() { + const { input, expected } = testcases.VMESS.HTTP; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected.QX); + }); + }); + + describe('http', function () { + it('test http simple', function () { + const { input, expected } = testcases.HTTP.SIMPLE; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + + it('test http with authentication', function () { + const { input, expected } = testcases.HTTP.AUTH; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + + it('test https', function () { + const { input, expected } = testcases.HTTP.TLS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + }); + + describe('socks5', function () { + it('test socks5 simple', function () { + const { input, expected } = testcases.SOCKS5.SIMPLE; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + + it('test socks5 with authentication', function () { + const { input, expected } = testcases.SOCKS5.AUTH; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + + it('test socks5 + tls', function () { + const { input, expected } = testcases.SOCKS5.TLS; + const proxy = parser.parse(input.QX); + expect(proxy).eql(expected); + }); + }); +}); \ No newline at end of file diff --git a/backend/test/proxy-parsers/surge.spec.js b/backend/test/proxy-parsers/surge.spec.js new file mode 100644 index 0000000..42e5c6b --- /dev/null +++ b/backend/test/proxy-parsers/surge.spec.js @@ -0,0 +1,134 @@ +import * as peggy from 'peggy'; +import surge from '../../src/core/proxy-utils/grammars/surge'; +import { expect } from 'chai'; +import testcases from './testcases'; +import { describe, it } from 'mocha'; + + +const parser = peggy.generate(surge); + +describe('Surge', function() { + describe('shadowsocks', function() { + it('test shadowsocks simple', function() { + const { input, expected } = testcases.SS.SIMPLE; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + it('test shadowsocks obfs + tls', function() { + const { input, expected } = testcases.SS.OBFS_TLS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + it('test shadowsocks obfs + http', function() { + const { input, expected } = testcases.SS.OBFS_HTTP; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + }); + + describe('trojan', function() { + it('test trojan simple', function() { + const { input, expected } = testcases.TROJAN.SIMPLE; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test trojan + ws', function() { + const { input, expected } = testcases.TROJAN.WS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test trojan + wss', function() { + const { input, expected } = testcases.TROJAN.WSS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + }); + + describe('vmess', function() { + it('test vmess simple', function() { + const { input, expected } = testcases.VMESS.SIMPLE; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected.Surge); + }); + + it('test vmess aead', function() { + const { input, expected } = testcases.VMESS.AEAD; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected.Surge); + }); + + it('test vmess + ws', function() { + const { input, expected } = testcases.VMESS.WS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected.Surge); + }); + + it('test vmess + wss', function() { + const { input, expected } = testcases.VMESS.WSS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected.Surge); + }); + }); + + describe('http', function () { + it('test http simple', function () { + const { input, expected } = testcases.HTTP.SIMPLE; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test http with authentication', function () { + const { input, expected } = testcases.HTTP.AUTH; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test https', function () { + const { input, expected } = testcases.HTTP.TLS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + }); + + describe('socks5', function () { + it('test socks5 simple', function () { + const { input, expected } = testcases.SOCKS5.SIMPLE; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test socks5 with authentication', function () { + const { input, expected } = testcases.SOCKS5.AUTH; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test socks5 + tls', function () { + const { input, expected } = testcases.SOCKS5.TLS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + }); + + describe('snell', function () { + it('test snell simple', function () { + const { input, expected } = testcases.SNELL.SIMPLE; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test snell obfs + http', function () { + const { input, expected } = testcases.SNELL.OBFS_HTTP; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + + it('test snell obfs + tls', function () { + const { input, expected } = testcases.SNELL.OBFS_TLS; + const proxy = parser.parse(input.Surge); + expect(proxy).eql(expected); + }); + }) +}); \ No newline at end of file diff --git a/backend/test/proxy-parsers/testcases.js b/backend/test/proxy-parsers/testcases.js new file mode 100644 index 0000000..3ec0ee8 --- /dev/null +++ b/backend/test/proxy-parsers/testcases.js @@ -0,0 +1,572 @@ +function createTestCases() { + const name = 'name'; + const server = 'example.com'; + const port = 10086; + + const cipher = 'chacha20'; + + const username = 'username'; + const password = 'password'; + + const obfs_host = 'obfs.com'; + const obfs_path = '/resource/file'; + + const ssr_protocol = 'auth_chain_b'; + const ssr_protocol_param = 'def'; + const ssr_obfs = 'tls1.2_ticket_fastauth'; + const ssr_obfs_param = 'obfs.com'; + + const uuid = '23ad6b10-8d1a-40f7-8ad0-e3e35cd32291'; + + const sni = 'sni.com'; + + const SS = { + SIMPLE: { + input: { + Loon: `${name}=shadowsocks,${server},${port},${cipher},"${password}"`, + QX: `shadowsocks=${server}:${port},method=${cipher},password=${password},tag=${name}`, + Surge: `${name}=ss,${server},${port},encrypt-method=${cipher},password=${password}`, + }, + expected: { + type: 'ss', + name, server, port, cipher, password, + }, + }, + OBFS_TLS: { + input: { + Loon: `${name}=shadowsocks,${server},${port},${cipher},"${password}",obfs-name=tls,obfs-uri=${obfs_path},obfs-host=${obfs_host}`, + QX: `shadowsocks=${server}:${port},method=${cipher},password=${password},obfs=tls,obfs-host=${obfs_host},obfs-uri=${obfs_path},tag=${name}`, + Surge: `${name}=ss,${server},${port},encrypt-method=${cipher},password=${password},obfs=tls,obfs-host=${obfs_host},obfs-uri=${obfs_path}`, + }, + expected: { + type: 'ss', + name, server, port, cipher, password, + plugin: 'obfs', + 'plugin-opts': { + mode: 'tls', + path: obfs_path, + host: obfs_host, + }, + }, + }, + OBFS_HTTP: { + input: { + Loon: `${name}=shadowsocks,${server},${port},${cipher},"${password}",obfs-name=http,obfs-uri=${obfs_path},obfs-host=${obfs_host}`, + QX: `shadowsocks=${server}:${port},method=${cipher},password=${password},obfs=http,obfs-host=${obfs_host},obfs-uri=${obfs_path},tag=${name}`, + Surge: `${name}=ss,${server},${port},encrypt-method=${cipher},password=${password},obfs=http,obfs-host=${obfs_host},obfs-uri=${obfs_path}`, + }, + expected: { + type: 'ss', + name, server, port, cipher, password, + plugin: 'obfs', + 'plugin-opts': { + mode: 'http', + path: obfs_path, + host: obfs_host, + }, + }, + }, + V2RAY_PLUGIN_WS: { + input: { + QX: `shadowsocks=${server}:${port},method=${cipher},password=${password},obfs=ws,obfs-host=${obfs_host},obfs-uri=${obfs_path},tag=${name}`, + }, + expected: { + type: 'ss', + name, server, port, cipher, password, + plugin: 'v2ray-plugin', + 'plugin-opts': { + mode: 'websocket', + path: obfs_path, + host: obfs_host, + }, + }, + }, + V2RAY_PLUGIN_WSS: { + input: { + QX: `shadowsocks=${server}:${port},method=${cipher},password=${password},obfs=wss,obfs-host=${obfs_host},obfs-uri=${obfs_path},tag=${name}`, + }, + expected: { + type: 'ss', + name, server, port, cipher, password, + plugin: 'v2ray-plugin', + 'plugin-opts': { + mode: 'websocket', + path: obfs_path, + host: obfs_host, + tls: true, + }, + }, + }, + }; + const SSR = { + SIMPLE: { + input: { + QX: `shadowsocks=${server}:${port},method=${cipher},password=${password},ssr-protocol=${ssr_protocol},ssr-protocol-param=${ssr_protocol_param},obfs=${ssr_obfs},obfs-host=${ssr_obfs_param},tag=${name}`, + Loon: `${name}=shadowsocksr,${server},${port},${cipher},"${password}",protocol=${ssr_protocol},protocol-param=${ssr_protocol_param},obfs=${ssr_obfs},obfs-param=${ssr_obfs_param}`, + }, + expected: { + type: 'ssr', + name, server, port, cipher, password, + obfs: ssr_obfs, + protocol: ssr_protocol, + 'obfs-param': ssr_obfs_param, + 'protocol-param': ssr_protocol_param, + }, + }, + }; + const TROJAN = { + SIMPLE: { + input: { + QX: `trojan=${server}:${port},password=${password},tag=${name}`, + Loon: `${name}=trojan,${server},${port},"${password}"`, + Surge: `${name}=trojan,${server},${port},password=${password}`, + }, + expected: { + type: 'trojan', + name, server, port, password, + }, + }, + WS: { + input: { + QX: `trojan=${server}:${port},password=${password},obfs=ws,obfs-host=${obfs_host},obfs-uri=${obfs_path},tag=${name}`, + Loon: `${name}=trojan,${server},${port},"${password}",transport=ws,path=${obfs_path},host=${obfs_host}`, + Surge: `${name}=trojan,${server},${port},password=${password},ws=true,ws-path=${obfs_path},ws-headers=Host:${obfs_host}`, + }, + expected: { + type: 'trojan', + name, server, port, password, + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + } + , + }, + WSS: { + input: { + QX: `trojan=${server}:${port},password=${password},obfs=wss,obfs-host=${obfs_host},obfs-uri=${obfs_path},tls-verification=false,tls-host=${sni},tag=${name}`, + Loon: `${name}=trojan,${server},${port},"${password}",transport=ws,path=${obfs_path},host=${obfs_host},over-tls=true,tls-name=${sni},skip-cert-verify=true`, + Surge: `${name}=trojan,${server},${port},password=${password},ws=true,ws-path=${obfs_path},ws-headers=Host:${obfs_host},skip-cert-verify=true,sni=${sni},tls=true`, + }, + expected: { + type: 'trojan', + name, server, port, password, + network: 'ws', + tls: true, + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + 'skip-cert-verify': true, + sni, + }, + }, + }; + const VMESS = { + SIMPLE: { + input: { + QX: `vmess=${server}:${port},method=${cipher},password=${uuid},tag=${name}`, + Loon: `${name}=vmess,${server},${port},${cipher},"${uuid}"`, + Surge: `${name}=vmess,${server},${port},username=${uuid}`, + }, + expected: { + QX: { + type: 'vmess', + name, server, port, uuid, cipher, + }, + Loon: { + type: 'vmess', + name, server, port, uuid, cipher, + }, + Surge: { + type: 'vmess', + name, server, port, uuid, // Surge lacks support for specifying cipher for vmess protocol! + }, + }, + }, + AEAD: { + input: { + QX: `vmess=${server}:${port},method=${cipher},password=${uuid},aead=true,tag=${name}`, + Loon: `${name}=vmess,${server},${port},${cipher},"${uuid}",alterId=0`, + Surge: `${name}=vmess,${server},${port},username=${uuid},vmess-aead=true`, + }, + expected: { + QX: { + type: 'vmess', + name, server, port, uuid, cipher, alterId: 0, + }, + Loon: { + type: 'vmess', + name, server, port, uuid, cipher, alterId: 0, + }, + Surge: { + type: 'vmess', + name, server, port, uuid, // Surge lacks support for specifying cipher for vmess protocol! + alterId: 0, + }, + }, + }, + WS: { + input: { + QX: `vmess=${server}:${port},method=${cipher},password=${uuid},obfs=ws,obfs-host=${obfs_host},obfs-uri=${obfs_path},tag=${name}`, + Loon: `${name}=vmess,${server},${port},${cipher},"${uuid}",transport=ws,host=${obfs_host},path=${obfs_path}`, + Surge: `${name}=vmess,${server},${port},username=${uuid},ws=true,ws-path=${obfs_path},ws-headers=Host:${obfs_host}`, + }, + expected: { + QX: { + type: 'vmess', + name, server, port, uuid, cipher, + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + }, + Loon: { + type: 'vmess', + name, server, port, uuid, cipher, + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + }, + Surge: { + type: 'vmess', + name, server, port, uuid, // Surge lacks support for specifying cipher for vmess protocol! + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + }, + }, + }, + WSS: { + input: { + QX: `vmess=${server}:${port},method=${cipher},password=${uuid},obfs=wss,obfs-host=${obfs_host},obfs-uri=${obfs_path},tls-verification=false,tls-host=${sni},tag=${name}`, + Loon: `${name}=vmess,${server},${port},${cipher},"${uuid}",transport=ws,host=${obfs_host},path=${obfs_path},over-tls=true,tls-name=${sni},skip-cert-verify=true`, + Surge: `${name}=vmess,${server},${port},username=${uuid},ws=true,ws-path=${obfs_path},ws-headers=Host:${obfs_host},skip-cert-verify=true,sni=${sni},tls=true`, + }, + expected: { + QX: { + type: 'vmess', + name, server, port, uuid, cipher, + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + tls: true, + 'skip-cert-verify': true, + sni, + }, + Loon: { + type: 'vmess', + name, server, port, uuid, cipher, + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + tls: true, + 'skip-cert-verify': true, + sni, + }, + Surge: { + type: 'vmess', + name, server, port, uuid, // Surge lacks support for specifying cipher for vmess protocol! + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + tls: true, + 'skip-cert-verify': true, + sni, + }, + }, + }, + HTTP: { + input: { + QX: `vmess=${server}:${port},method=${cipher},password=${uuid},obfs=http,obfs-host=${obfs_host},obfs-uri=${obfs_path},tag=${name}`, + Loon: `${name}=vmess,${server},${port},${cipher},"${uuid}",transport=http,host=${obfs_host},path=${obfs_path}`, + }, + expected: { + QX: { + type: 'vmess', + name, server, port, uuid, cipher, + network: 'http', + 'http-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + }, + Loon: { + type: 'vmess', + name, server, port, uuid, cipher, + network: 'http', + 'http-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + }, + }, + }, + HTTP_TLS: { + input: { + Loon: `${name}=vmess,${server},${port},${cipher},"${uuid}",transport=http,host=${obfs_host},path=${obfs_path},over-tls=true,tls-name=${sni},skip-cert-verify=true`, + }, + expected: { + Loon: { + type: 'vmess', + name, server, port, uuid, cipher, + network: 'http', + 'http-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + tls: true, + 'skip-cert-verify': true, + sni, + }, + }, + }, + }; + const VLESS = { + SIMPLE: { + input: { + Loon: `${name}=vless,${server},${port},"${uuid}"`, + }, + expected: { + Loon: { + type: 'vless', + name, server, port, uuid, + }, + }, + }, + WS: { + input: { + Loon: `${name}=vless,${server},${port},"${uuid}",transport=ws,host=${obfs_host},path=${obfs_path}`, + }, + expected: { + + Loon: { + type: 'vless', + name, server, port, uuid, + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + }, + + }, + }, + WSS: { + input: { + Loon: `${name}=vless,${server},${port},"${uuid}",transport=ws,host=${obfs_host},path=${obfs_path},over-tls=true,tls-name=${sni},skip-cert-verify=true`, + }, + expected: { + + Loon: { + type: 'vless', + name, server, port, uuid, + network: 'ws', + 'ws-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + tls: true, + 'skip-cert-verify': true, + sni, + }, + + }, + }, + HTTP: { + input: { + Loon: `${name}=vless,${server},${port},"${uuid}",transport=http,host=${obfs_host},path=${obfs_path}`, + }, + expected: { + + Loon: { + type: 'vless', + name, server, port, uuid, + network: 'http', + 'http-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + }, + }, + }, + HTTP_TLS: { + input: { + Loon: `${name}=vless,${server},${port},"${uuid}",transport=http,host=${obfs_host},path=${obfs_path},over-tls=true,tls-name=${sni},skip-cert-verify=true`, + }, + expected: { + Loon: { + type: 'vless', + name, server, port, uuid, + network: 'http', + 'http-opts': { + path: obfs_path, + 'headers': { + 'Host': obfs_host, + }, + }, + tls: true, + 'skip-cert-verify': true, + sni, + }, + }, + }, + }; + const HTTP = { + SIMPLE: { + input: { + Loon: `${name}=http,${server},${port}`, + QX: `http=${server}:${port},tag=${name}`, + Surge: `${name}=http,${server},${port}`, + }, + expected: { + type: 'http', + name, server, port, + } + }, + AUTH: { + input: { + Loon: `${name}=http,${server},${port},${username},"${password}"`, + QX: `http=${server}:${port},tag=${name},username=${username},password=${password}`, + Surge: `${name}=http,${server},${port},${username},${password}`, + }, + expected: { + type: 'http', + name, server, port, username, password + } + }, + TLS: { + input: { + Loon: `${name}=https,${server},${port},${username},"${password}",tls-name=${sni},skip-cert-verify=true`, + QX: `http=${server}:${port},username=${username},password=${password},over-tls=true,tls-host=${sni},tls-verification=false,tag=${name}`, + Surge: `${name}=https,${server},${port},${username},${password},sni=${sni},skip-cert-verify=true`, + }, + expected: { + type: 'http', + name, server, port, username, password, + sni, + 'skip-cert-verify': true, + tls: true + } + } + }; + const SOCKS5 = { + SIMPLE: { + input: { + QX: `socks5=${server}:${port},tag=${name}`, + Surge: `${name}=socks5,${server},${port}`, + }, + expected: { + type: 'socks5', + name, server, port, + } + }, + AUTH: { + input: { + QX: `socks5=${server}:${port},tag=${name},username=${username},password=${password}`, + Surge: `${name}=socks5,${server},${port},${username},${password}`, + }, + expected: { + type: 'socks5', + name, server, port, username, password + } + }, + TLS: { + input: { + QX: `socks5=${server}:${port},username=${username},password=${password},over-tls=true,tls-host=${sni},tls-verification=false,tag=${name}`, + Surge: `${name}=socks5-tls,${server},${port},${username},${password},sni=${sni},skip-cert-verify=true`, + }, + expected: { + type: 'socks5', + name, server, port, username, password, + sni, + 'skip-cert-verify': true, + tls: true + } + } + }; + const SNELL = { + SIMPLE: { + input: { + Surge: `${name}=snell,${server},${port},psk=${password},version=3`, + }, + expected: { + type: 'snell', + name, server, port, psk: password, version: 3 + } + }, + OBFS_HTTP: { + input: { + Surge: `${name}=snell,${server},${port},psk=${password},version=3,obfs=http,obfs-host=${obfs_host},obfs-uri=${obfs_path}`, + }, + expected: { + type: 'snell', + name, server, port, psk: password, version: 3, + 'obfs-opts': { + mode: 'http', + host: obfs_host, + path: obfs_path, + } + } + }, + OBFS_TLS: { + input: { + Surge: `${name}=snell,${server},${port},psk=${password},version=3,obfs=tls,obfs-host=${obfs_host},obfs-uri=${obfs_path}`, + }, + expected: { + type: 'snell', + name, server, port, psk: password, version: 3, + 'obfs-opts': { + mode: 'tls', + host: obfs_host, + path: obfs_path, + } + } + }, + }; + return { + SS, SSR, VMESS, VLESS, TROJAN, HTTP, SOCKS5, SNELL, + }; +} + +export default createTestCases(); \ No newline at end of file