@subconverter/browser 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var SubConverter=(()=>{var
|
|
2
|
-
`)}};Ee.defaultYaml={explicit:!1,version:"1.2"};Ee.defaultTags={"!!":"tag:yaml.org,2002:"};function _t(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let s=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(s)}return!0}function
|
|
1
|
+
var SubConverter=(()=>{var Ss=Object.defineProperty;var An=Object.getOwnPropertyDescriptor;var On=Object.getOwnPropertyNames;var En=Object.prototype.hasOwnProperty;var ir=(e,t)=>{for(var s in t)Ss(e,s,{get:t[s],enumerable:!0})},Nn=(e,t,s,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of On(t))!En.call(e,n)&&n!==s&&Ss(e,n,{get:()=>t[n],enumerable:!(r=An(t,n))||r.enumerable});return e};var Cn=e=>Nn(Ss({},"__esModule",{value:!0}),e);var vo={};ir(vo,{default:()=>wo});var ws={};ir(ws,{createExtraSettings:()=>an,fetchSubscription:()=>In,loadNodes:()=>bo,parseSubscription:()=>bs,toClash:()=>kn,toSurge:()=>$n});var Pt=Symbol.for("yaml.alias"),Tt=Symbol.for("yaml.document"),de=Symbol.for("yaml.map"),ks=Symbol.for("yaml.pair"),ce=Symbol.for("yaml.scalar"),Re=Symbol.for("yaml.seq"),ie=Symbol.for("yaml.node.type"),he=e=>!!e&&typeof e=="object"&&e[ie]===Pt,me=e=>!!e&&typeof e=="object"&&e[ie]===Tt,ge=e=>!!e&&typeof e=="object"&&e[ie]===de,D=e=>!!e&&typeof e=="object"&&e[ie]===ks,F=e=>!!e&&typeof e=="object"&&e[ie]===ce,ye=e=>!!e&&typeof e=="object"&&e[ie]===Re;function G(e){if(e&&typeof e=="object")switch(e[ie]){case de:case Re:return!0}return!1}function B(e){if(e&&typeof e=="object")switch(e[ie]){case Pt:case de:case ce:case Re:return!0}return!1}var Lt=e=>(F(e)||G(e))&&!!e.anchor;var oe=Symbol("break visit"),or=Symbol("skip children"),Ae=Symbol("remove node");function Oe(e,t){let s=ar(t);me(e)?Xe(null,e.contents,s,Object.freeze([e]))===Ae&&(e.contents=null):Xe(null,e,s,Object.freeze([]))}Oe.BREAK=oe;Oe.SKIP=or;Oe.REMOVE=Ae;function Xe(e,t,s,r){let n=cr(e,t,s,r);if(B(n)||D(n))return lr(e,r,n),Xe(e,n,s,r);if(typeof n!="symbol"){if(G(t)){r=Object.freeze(r.concat(t));for(let i=0;i<t.items.length;++i){let o=Xe(i,t.items[i],s,r);if(typeof o=="number")i=o-1;else{if(o===oe)return oe;o===Ae&&(t.items.splice(i,1),i-=1)}}}else if(D(t)){r=Object.freeze(r.concat(t));let i=Xe("key",t.key,s,r);if(i===oe)return oe;i===Ae&&(t.key=null);let o=Xe("value",t.value,s,r);if(o===oe)return oe;o===Ae&&(t.value=null)}}return n}async function Rt(e,t){let s=ar(t);me(e)?await Qe(null,e.contents,s,Object.freeze([e]))===Ae&&(e.contents=null):await Qe(null,e,s,Object.freeze([]))}Rt.BREAK=oe;Rt.SKIP=or;Rt.REMOVE=Ae;async function Qe(e,t,s,r){let n=await cr(e,t,s,r);if(B(n)||D(n))return lr(e,r,n),Qe(e,n,s,r);if(typeof n!="symbol"){if(G(t)){r=Object.freeze(r.concat(t));for(let i=0;i<t.items.length;++i){let o=await Qe(i,t.items[i],s,r);if(typeof o=="number")i=o-1;else{if(o===oe)return oe;o===Ae&&(t.items.splice(i,1),i-=1)}}}else if(D(t)){r=Object.freeze(r.concat(t));let i=await Qe("key",t.key,s,r);if(i===oe)return oe;i===Ae&&(t.key=null);let o=await Qe("value",t.value,s,r);if(o===oe)return oe;o===Ae&&(t.value=null)}}return n}function ar(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function cr(e,t,s,r){if(typeof s=="function")return s(e,t,r);if(ge(t))return s.Map?.(e,t,r);if(ye(t))return s.Seq?.(e,t,r);if(D(t))return s.Pair?.(e,t,r);if(F(t))return s.Scalar?.(e,t,r);if(he(t))return s.Alias?.(e,t,r)}function lr(e,t,s){let r=t[t.length-1];if(G(r))r.items[e]=s;else if(D(r))e==="key"?r.key=s:r.value=s;else if(me(r))r.contents=s;else{let n=he(r)?"alias":"scalar";throw new Error(`Cannot replace node with ${n} parent`)}}var Pn={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Tn=e=>e.replace(/[!,[\]{}]/g,t=>Pn[t]),Ee=class e{constructor(t,s){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,s)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,s){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let r=t.trim().split(/[ \t]+/),n=r.shift();switch(n){case"%TAG":{if(r.length!==2&&(s(0,"%TAG directive should contain exactly two parts"),r.length<2))return!1;let[i,o]=r;return this.tags[i]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,r.length!==1)return s(0,"%YAML directive should contain exactly one part"),!1;let[i]=r;if(i==="1.1"||i==="1.2")return this.yaml.version=i,!0;{let o=/^\d+\.\d+$/.test(i);return s(6,`Unsupported YAML version ${i}`,o),!1}}default:return s(0,`Unknown directive ${n}`,!0),!1}}tagName(t,s){if(t==="!")return"!";if(t[0]!=="!")return s(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let o=t.slice(2,-1);return o==="!"||o==="!!"?(s(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&s("Verbatim tags must end with a >"),o)}let[,r,n]=t.match(/^(.*!)([^!]*)$/s);n||s(`The ${t} tag has no suffix`);let i=this.tags[r];if(i)try{return i+decodeURIComponent(n)}catch(o){return s(String(o)),null}return r==="!"?t:(s(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[s,r]of Object.entries(this.tags))if(t.startsWith(r))return s+Tn(t.substring(r.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let s=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],r=Object.entries(this.tags),n;if(t&&r.length>0&&B(t.contents)){let i={};Oe(t.contents,(o,a)=>{B(a)&&a.tag&&(i[a.tag]=!0)}),n=Object.keys(i)}else n=[];for(let[i,o]of r)i==="!!"&&o==="tag:yaml.org,2002:"||(!t||n.some(a=>a.startsWith(o)))&&s.push(`%TAG ${i} ${o}`);return s.join(`
|
|
2
|
+
`)}};Ee.defaultYaml={explicit:!1,version:"1.2"};Ee.defaultTags={"!!":"tag:yaml.org,2002:"};function _t(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let s=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(s)}return!0}function $s(e){let t=new Set;return Oe(e,{Value(s,r){r.anchor&&t.add(r.anchor)}}),t}function Is(e,t){for(let s=1;;++s){let r=`${e}${s}`;if(!t.has(r))return r}}function ur(e,t){let s=[],r=new Map,n=null;return{onAnchor:i=>{s.push(i),n??(n=$s(e));let o=Is(t,n);return n.add(o),o},setAnchors:()=>{for(let i of s){let o=r.get(i);if(typeof o=="object"&&o.anchor&&(F(o.node)||G(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=i,a}}},sourceObjects:r}}function Be(e,t,s,r){if(r&&typeof r=="object")if(Array.isArray(r))for(let n=0,i=r.length;n<i;++n){let o=r[n],a=Be(e,r,String(n),o);a===void 0?delete r[n]:a!==o&&(r[n]=a)}else if(r instanceof Map)for(let n of Array.from(r.keys())){let i=r.get(n),o=Be(e,r,n,i);o===void 0?r.delete(n):o!==i&&r.set(n,o)}else if(r instanceof Set)for(let n of Array.from(r)){let i=Be(e,r,n,n);i===void 0?r.delete(n):i!==n&&(r.delete(n),r.add(i))}else for(let[n,i]of Object.entries(r)){let o=Be(e,r,n,i);o===void 0?delete r[n]:o!==i&&(r[n]=o)}return e.call(t,s,r)}function Z(e,t,s){if(Array.isArray(e))return e.map((r,n)=>Z(r,String(n),s));if(e&&typeof e.toJSON=="function"){if(!s||!Lt(e))return e.toJSON(t,s);let r={aliasCount:0,count:1,res:void 0};s.anchors.set(e,r),s.onCreate=i=>{r.res=i,delete s.onCreate};let n=e.toJSON(t,s);return s.onCreate&&s.onCreate(n),n}return typeof e=="bigint"&&!s?.keep?Number(e):e}var je=class{constructor(t){Object.defineProperty(this,ie,{value:t})}clone(){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:s,maxAliasCount:r,onAnchor:n,reviver:i}={}){if(!me(t))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:t,keep:!0,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},a=Z(this,"",o);if(typeof n=="function")for(let{count:c,res:u}of o.anchors.values())n(u,c);return typeof i=="function"?Be(i,{"":a},"",a):a}};var _e=class extends je{constructor(t){super(Pt),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,s){if(s?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let r;s?.aliasResolveCache?r=s.aliasResolveCache:(r=[],Oe(t,{Node:(i,o)=>{(he(o)||Lt(o))&&r.push(o)}}),s&&(s.aliasResolveCache=r));let n;for(let i of r){if(i===this)break;i.anchor===this.source&&(n=i)}if(n&&s){let{anchors:i,doc:o,maxAliasCount:a}=s,c=i.get(n);if(c||(Z(n,null,s),c=i.get(n)),c?.res===void 0){let u="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(u)}if(a>=0&&(c.count+=1,c.aliasCount===0&&(c.aliasCount=Ft(o,n,i)),c.count*c.aliasCount>a)){let u="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(u)}}return n}toJSON(t,s){if(!s)return{source:this.source};let r=this.resolve(s.doc,s);if(!r){let n=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(n)}return s.anchors.get(r).res}toString(t,s,r){let n=`*${this.source}`;if(t){if(_t(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(i)}if(t.implicitKey)return`${n} `}return n}};function Ft(e,t,s){if(he(t)){let r=t.resolve(e),n=s&&r&&s.get(r);return n?n.count*n.aliasCount:0}else if(G(t)){let r=0;for(let n of t.items){let i=Ft(e,n,s);i>r&&(r=i)}return r}else if(D(t)){let r=Ft(e,t.key,s),n=Ft(e,t.value,s);return Math.max(r,n)}return 1}var Mt=e=>!e||typeof e!="function"&&typeof e!="object",C=class extends je{constructor(t){super(ce),this.value=t}toJSON(t,s){return s?.keep?this.value:Z(this.value,t,s)}toString(){return String(this.value)}};C.BLOCK_FOLDED="BLOCK_FOLDED";C.BLOCK_LITERAL="BLOCK_LITERAL";C.PLAIN="PLAIN";C.QUOTE_DOUBLE="QUOTE_DOUBLE";C.QUOTE_SINGLE="QUOTE_SINGLE";var Ln="tag:yaml.org,2002:";function Rn(e,t,s){if(t){let r=s.filter(i=>i.tag===t),n=r.find(i=>!i.format)??r[0];if(!n)throw new Error(`Tag ${t} not found`);return n}return s.find(r=>r.identify?.(e)&&!r.format)}function Fe(e,t,s){if(me(e)&&(e=e.contents),B(e))return e;if(D(e)){let f=s.schema[de].createNode?.(s.schema,null,s);return f.items.push(e),f}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:n,onTagObj:i,schema:o,sourceObjects:a}=s,c;if(r&&e&&typeof e=="object"){if(c=a.get(e),c)return c.anchor??(c.anchor=n(e)),new _e(c.anchor);c={anchor:null,node:null},a.set(e,c)}t?.startsWith("!!")&&(t=Ln+t.slice(2));let u=Rn(e,t,o.tags);if(!u){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){let f=new C(e);return c&&(c.node=f),f}u=e instanceof Map?o[de]:Symbol.iterator in Object(e)?o[Re]:o[de]}i&&(i(u),delete s.onTagObj);let p=u?.createNode?u.createNode(s.schema,e,s):typeof u?.nodeClass?.from=="function"?u.nodeClass.from(s.schema,e,s):new C(e);return t?p.tag=t:u.default||(p.tag=u.tag),c&&(c.node=p),p}function lt(e,t,s){let r=s;for(let n=t.length-1;n>=0;--n){let i=t[n];if(typeof i=="number"&&Number.isInteger(i)&&i>=0){let o=[];o[i]=r,r=o}else r=new Map([[i,r]])}return Fe(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}var Ze=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done,ze=class extends je{constructor(t,s){super(t),Object.defineProperty(this,"schema",{value:s,configurable:!0,enumerable:!1,writable:!0})}clone(t){let s=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(s.schema=t),s.items=s.items.map(r=>B(r)||D(r)?r.clone(t):r),this.range&&(s.range=this.range.slice()),s}addIn(t,s){if(Ze(t))this.add(s);else{let[r,...n]=t,i=this.get(r,!0);if(G(i))i.addIn(n,s);else if(i===void 0&&this.schema)this.set(r,lt(this.schema,n,s));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${n}`)}}deleteIn(t){let[s,...r]=t;if(r.length===0)return this.delete(s);let n=this.get(s,!0);if(G(n))return n.deleteIn(r);throw new Error(`Expected YAML collection at ${s}. Remaining path: ${r}`)}getIn(t,s){let[r,...n]=t,i=this.get(r,!0);return n.length===0?!s&&F(i)?i.value:i:G(i)?i.getIn(n,s):void 0}hasAllNullValues(t){return this.items.every(s=>{if(!D(s))return!1;let r=s.value;return r==null||t&&F(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(t){let[s,...r]=t;if(r.length===0)return this.has(s);let n=this.get(s,!0);return G(n)?n.hasIn(r):!1}setIn(t,s){let[r,...n]=t;if(n.length===0)this.set(r,s);else{let i=this.get(r,!0);if(G(i))i.setIn(n,s);else if(i===void 0&&this.schema)this.set(r,lt(this.schema,n,s));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${n}`)}}};var fr=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function fe(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var Ne=(e,t,s)=>e.endsWith(`
|
|
3
3
|
`)?fe(s,t):s.includes(`
|
|
4
4
|
`)?`
|
|
5
|
-
`+fe(s,t):(e.endsWith(" ")?"":" ")+s;var
|
|
5
|
+
`+fe(s,t):(e.endsWith(" ")?"":" ")+s;var As="flow",Dt="block",ut="quoted";function ft(e,t,s="flow",{indentAtStart:r,lineWidth:n=80,minContentWidth:i=20,onFold:o,onOverflow:a}={}){if(!n||n<0)return e;n<i&&(i=0);let c=Math.max(1+i,1+n-t.length);if(e.length<=c)return e;let u=[],p={},f=n-t.length;typeof r=="number"&&(r>n-Math.max(2,i)?u.push(0):f=n-r);let l,h,g=!1,d=-1,m=-1,v=-1;s===Dt&&(d=pr(e,d,t.length),d!==-1&&(f=d+c));for(let S;S=e[d+=1];){if(s===ut&&S==="\\"){switch(m=d,e[d+1]){case"x":d+=3;break;case"u":d+=5;break;case"U":d+=9;break;default:d+=1}v=d}if(S===`
|
|
6
6
|
`)s===Dt&&(d=pr(e,d,t.length)),f=d+t.length+c,l=void 0;else{if(S===" "&&h&&h!==" "&&h!==`
|
|
7
7
|
`&&h!==" "){let $=e[d+1];$&&$!==" "&&$!==`
|
|
8
8
|
`&&$!==" "&&(l=d)}if(d>=f)if(l)u.push(l),f=l+c,l=void 0;else if(s===ut){for(;h===" "||h===" ";)h=S,S=e[d+=1],g=!0;let $=d>v+1?d-2:m-1;if(p[$])return e;u.push($),p[$]=!0,f=$+c,l=void 0}else g=!0}h=S}if(g&&a&&a(),u.length===0)return e;o&&o();let b=e.slice(0,u[0]);for(let S=0;S<u.length;++S){let $=u[S],I=u[S+1]||e.length;$===0?b=`
|
|
@@ -12,17 +12,17 @@ ${t}${e.slice($+1,I)}`)}return b}function pr(e,t,s){let r=t,n=t+1,i=e[n];for(;i=
|
|
|
12
12
|
`){if(i-o>r)return!0;if(o=i+1,n-o<=r)return!1}return!0}function pt(e,t){let s=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return s;let{implicitKey:r}=t,n=t.options.doubleQuotedMinMultiLineLength,i=t.indent||(Kt(e)?" ":""),o="",a=0;for(let c=0,u=s[c];u;u=s[++c])if(u===" "&&s[c+1]==="\\"&&s[c+2]==="n"&&(o+=s.slice(a,c)+"\\ ",c+=1,a=c,u="\\"),u==="\\")switch(s[c+1]){case"u":{o+=s.slice(a,c);let p=s.substr(c+2,4);switch(p){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:p.substr(0,2)==="00"?o+="\\x"+p.substr(2):o+=s.substr(c,6)}c+=5,a=c+1}break;case"n":if(r||s[c+2]==='"'||s.length<n)c+=1;else{for(o+=s.slice(a,c)+`
|
|
13
13
|
|
|
14
14
|
`;s[c+2]==="\\"&&s[c+3]==="n"&&s[c+4]!=='"';)o+=`
|
|
15
|
-
`,c+=2;o+=i,s[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+s.slice(a):s,r?o:ft(o,i,ut,jt(t,!1))}function
|
|
15
|
+
`,c+=2;o+=i,s[c+2]===" "&&(o+="\\"),c+=1,a=c+1}break;default:c+=1}return o=a?o+s.slice(a):s,r?o:ft(o,i,ut,jt(t,!1))}function Os(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
|
|
16
16
|
`)||/[ \t]\n|\n[ \t]/.test(e))return pt(e,t);let s=t.indent||(Kt(e)?" ":""),r="'"+e.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
17
|
-
${s}`)+"'";return t.implicitKey?r:ft(r,s,
|
|
17
|
+
${s}`)+"'";return t.implicitKey?r:ft(r,s,As,jt(t,!1))}function xe(e,t){let{singleQuote:s}=t.options,r;if(s===!1)r=pt;else{let n=e.includes('"'),i=e.includes("'");n&&!i?r=Os:i&&!n?r=pt:r=s?Os:pt}return r(e,t)}var Es;try{Es=new RegExp(`(^|(?<!
|
|
18
18
|
))
|
|
19
19
|
+(?!
|
|
20
|
-
|$)`,"g")}catch{
|
|
20
|
+
|$)`,"g")}catch{Es=/\n+(?!\n|$)/g}function Bt({comment:e,type:t,value:s},r,n,i){let{blockQuote:o,commentString:a,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(s))return xe(s,r);let u=r.indent||(r.forceBlockIndent||Kt(s)?" ":""),p=o==="literal"?!0:o==="folded"||t===C.BLOCK_FOLDED?!1:t===C.BLOCK_LITERAL?!0:!_n(s,c,u.length);if(!s)return p?`|
|
|
21
21
|
`:`>
|
|
22
22
|
`;let f,l;for(l=s.length;l>0;--l){let I=s[l-1];if(I!==`
|
|
23
23
|
`&&I!==" "&&I!==" ")break}let h=s.substring(l),g=h.indexOf(`
|
|
24
24
|
`);g===-1?f="-":s===h||g!==h.length-1?(f="+",i&&i()):f="",h&&(s=s.slice(0,-h.length),h[h.length-1]===`
|
|
25
|
-
`&&(h=h.slice(0,-1)),h=h.replace(
|
|
25
|
+
`&&(h=h.slice(0,-1)),h=h.replace(Es,`$&${u}`));let d=!1,m,v=-1;for(m=0;m<s.length;++m){let I=s[m];if(I===" ")d=!0;else if(I===`
|
|
26
26
|
`)v=m;else break}let b=s.substring(0,v<m?v+1:m);b&&(s=s.substring(b.length),b=b.replace(/\n+/g,`$&${u}`));let $=(d?u?"2":"1":"")+f;if(e&&($+=" "+a(e.replace(/ ?[\r\n]+/g," ")),n&&n()),!p){let I=s.replace(/\n+/g,`
|
|
27
27
|
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${u}`),O=!1,E=jt(r,!0);o!=="folded"&&t!==C.BLOCK_FOLDED&&(E.onOverflow=()=>{O=!0});let A=ft(`${b}${I}${h}`,u,Dt,E);if(!O)return`>${$}
|
|
28
28
|
${u}${A}`}return s=s.replace(/\n+/g,`$&${u}`),`|${$}
|
|
@@ -30,7 +30,7 @@ ${u}${b}${s}${h}`}function Fn(e,t,s,r){let{type:n,value:i}=e,{actualString:o,imp
|
|
|
30
30
|
`)||p&&/[[\]{},]/.test(i))return xe(i,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(i))return a||p||!i.includes(`
|
|
31
31
|
`)?xe(i,t):Bt(e,t,s,r);if(!a&&!p&&n!==C.PLAIN&&i.includes(`
|
|
32
32
|
`))return Bt(e,t,s,r);if(Kt(i)){if(c==="")return t.forceBlockIndent=!0,Bt(e,t,s,r);if(a&&c===u)return xe(i,t)}let f=i.replace(/\n+/g,`$&
|
|
33
|
-
${c}`);if(o){let l=d=>d.default&&d.tag!=="tag:yaml.org,2002:str"&&d.test?.test(f),{compat:h,tags:g}=t.doc.schema;if(g.some(l)||h?.some(l))return xe(i,t)}return a?f:ft(f,c,
|
|
33
|
+
${c}`);if(o){let l=d=>d.default&&d.tag!=="tag:yaml.org,2002:str"&&d.test?.test(f),{compat:h,tags:g}=t.doc.schema;if(g.some(l)||h?.some(l))return xe(i,t)}return a?f:ft(f,c,As,jt(t,!1))}function qe(e,t,s,r){let{implicitKey:n,inFlow:i}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)}),{type:a}=e;a!==C.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=C.QUOTE_DOUBLE);let c=p=>{switch(p){case C.BLOCK_FOLDED:case C.BLOCK_LITERAL:return n||i?xe(o.value,t):Bt(o,t,s,r);case C.QUOTE_DOUBLE:return pt(o.value,t);case C.QUOTE_SINGLE:return Os(o.value,t);case C.PLAIN:return Fn(o,t,s,r);default:return null}},u=c(a);if(u===null){let{defaultKeyType:p,defaultStringType:f}=t.options,l=n&&p||f;if(u=c(l),u===null)throw new Error(`Unsupported default string type ${l}`)}return u}function Ut(e,t){let s=Object.assign({blockQuote:!0,commentString:fr,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(s.collectionStyle){case"block":r=!1;break;case"flow":r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:s.flowCollectionPadding?" ":"",indent:"",indentStep:typeof s.indent=="number"?" ".repeat(s.indent):" ",inFlow:r,options:s}}function Mn(e,t){if(t.tag){let n=e.filter(i=>i.tag===t.tag);if(n.length>0)return n.find(i=>i.format===t.format)??n[0]}let s,r;if(F(t)){r=t.value;let n=e.filter(i=>i.identify?.(r));if(n.length>1){let i=n.filter(o=>o.test);i.length>0&&(n=i)}s=n.find(i=>i.format===t.format)??n.find(i=>!i.format)}else r=t,s=e.find(n=>n.nodeClass&&r instanceof n.nodeClass);if(!s){let n=r?.constructor?.name??(r===null?"null":typeof r);throw new Error(`Tag not resolved for ${n} value`)}return s}function Dn(e,t,{anchors:s,doc:r}){if(!r.directives)return"";let n=[],i=(F(e)||G(e))&&e.anchor;i&&_t(i)&&(s.add(i),n.push(`&${i}`));let o=e.tag??(t.default?null:t.tag);return o&&n.push(r.directives.tagString(o)),n.join(" ")}function Me(e,t,s,r){if(D(e))return e.toString(t,s,r);if(he(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let n,i=B(e)?e:t.doc.createNode(e,{onTagObj:c=>n=c});n??(n=Mn(t.doc.schema.tags,i));let o=Dn(i,n,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let a=typeof n.stringify=="function"?n.stringify(i,t,s,r):F(i)?qe(i,t,s,r):i.toString(t,s,r);return o?F(i)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
34
34
|
${t.indent}${a}`:a}function dr({key:e,value:t},s,r,n){let{allNullValues:i,doc:o,indent:a,indentStep:c,options:{commentString:u,indentSeq:p,simpleKeys:f}}=s,l=B(e)&&e.comment||null;if(f){if(l)throw new Error("With simple keys, key nodes cannot have comments");if(G(e)||!B(e)&&typeof e=="object"){let E="With simple keys, collection cannot be used as a key value";throw new Error(E)}}let h=!f&&(!e||l&&t==null&&!s.inFlow||G(e)||(F(e)?e.type===C.BLOCK_FOLDED||e.type===C.BLOCK_LITERAL:typeof e=="object"));s=Object.assign({},s,{allNullValues:!1,implicitKey:!h&&(f||!i),indent:a+c});let g=!1,d=!1,m=Me(e,s,()=>g=!0,()=>d=!0);if(!h&&!s.inFlow&&m.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(s.inFlow){if(i||t==null)return g&&r&&r(),m===""?"?":h?`? ${m}`:m}else if(i&&!f||t==null&&h)return m=`? ${m}`,l&&!g?m+=Ne(m,s.indent,u(l)):d&&n&&n(),m;g&&(l=null),h?(l&&(m+=Ne(m,s.indent,u(l))),m=`? ${m}
|
|
35
35
|
${a}:`):(m=`${m}:`,l&&(m+=Ne(m,s.indent,u(l))));let v,b,S;B(t)?(v=!!t.spaceBefore,b=t.commentBefore,S=t.comment):(v=!1,b=null,S=null,t&&typeof t=="object"&&(t=o.createNode(t))),s.implicitKey=!1,!h&&!l&&F(t)&&(s.indentAtStart=m.length+1),d=!1,!p&&c.length>=2&&!s.inFlow&&!h&&ye(t)&&!t.flow&&!t.tag&&!t.anchor&&(s.indent=s.indent.substring(2));let $=!1,I=Me(t,s,()=>$=!0,()=>d=!0),O=" ";if(l||v||b){if(O=v?`
|
|
36
36
|
`:"",b){let E=u(b);O+=`
|
|
@@ -41,20 +41,20 @@ ${fe(E,s.indent)}`}I===""&&!s.inFlow?O===`
|
|
|
41
41
|
${s.indent}`}else if(!h&&G(t)){let E=I[0],A=I.indexOf(`
|
|
42
42
|
`),_=A!==-1,q=s.inFlow??t.flow??t.items.length===0;if(_||!q){let te=!1;if(_&&(E==="&"||E==="!")){let N=I.indexOf(" ");E==="&"&&N!==-1&&N<A&&I[N+1]==="!"&&(N=I.indexOf(" ",N+1)),(N===-1||A<N)&&(te=!0)}te||(O=`
|
|
43
43
|
${s.indent}`)}}else(I===""||I[0]===`
|
|
44
|
-
`)&&(O="");return m+=O+I,s.inFlow?$&&r&&r():S&&!$?m+=Ne(m,s.indent,u(S)):d&&n&&n(),m}function Gt(e,t){(e==="debug"||e==="warn")&&console.warn(t)}var
|
|
44
|
+
`)&&(O="");return m+=O+I,s.inFlow?$&&r&&r():S&&!$?m+=Ne(m,s.indent,u(S)):d&&n&&n(),m}function Gt(e,t){(e==="debug"||e==="warn")&&console.warn(t)}var Wt="<<",be={identify:e=>e===Wt||typeof e=="symbol"&&e.description===Wt,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new C(Symbol(Wt)),{addToJSMap:Cs}),stringify:()=>Wt},hr=(e,t)=>(be.identify(t)||F(t)&&(!t.type||t.type===C.PLAIN)&&be.identify(t.value))&&e?.doc.schema.tags.some(s=>s.tag===be.tag&&s.default);function Cs(e,t,s){let r=mr(e,s);if(ye(r))for(let n of r.items)Ns(e,t,n);else if(Array.isArray(r))for(let n of r)Ns(e,t,n);else Ns(e,t,r)}function Ns(e,t,s){let r=mr(e,s);if(!ge(r))throw new Error("Merge sources must be maps or map aliases");let n=r.toJSON(null,e,Map);for(let[i,o]of n)t instanceof Map?t.has(i)||t.set(i,o):t instanceof Set?t.add(i):Object.prototype.hasOwnProperty.call(t,i)||Object.defineProperty(t,i,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}function mr(e,t){return e&&he(t)?t.resolve(e.doc,e):t}function Vt(e,t,{key:s,value:r}){if(B(s)&&s.addToJSMap)s.addToJSMap(e,t,r);else if(hr(e,s))Cs(e,t,r);else{let n=Z(s,"",e);if(t instanceof Map)t.set(n,Z(r,n,e));else if(t instanceof Set)t.add(n);else{let i=Bn(s,n,e),o=Z(r,i,e);i in t?Object.defineProperty(t,i,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[i]=o}}return t}function Bn(e,t,s){if(t===null)return"";if(typeof t!="object")return String(t);if(B(e)&&s?.doc){let r=Ut(s.doc,{});r.anchors=new Set;for(let i of s.anchors.keys())r.anchors.add(i.anchor);r.inFlow=!0,r.inStringifyKey=!0;let n=e.toString(r);if(!s.mapKeyWarned){let i=JSON.stringify(n);i.length>40&&(i=i.substring(0,36)+'..."'),Gt(s.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${i}. Set mapAsMap: true to use object keys.`),s.mapKeyWarned=!0}return n}return JSON.stringify(t)}function et(e,t,s){let r=Fe(e,void 0,s),n=Fe(t,void 0,s);return new J(r,n)}var J=class e{constructor(t,s=null){Object.defineProperty(this,ie,{value:ks}),this.key=t,this.value=s}clone(t){let{key:s,value:r}=this;return B(s)&&(s=s.clone(t)),B(r)&&(r=r.clone(t)),new e(s,r)}toJSON(t,s){let r=s?.mapAsMap?new Map:{};return Vt(s,r,this)}toString(t,s,r){return t?.doc?dr(this,t,s,r):JSON.stringify(this)}};function Ht(e,t,s){return(t.inFlow??e.flow?Kn:jn)(e,t,s)}function jn({comment:e,items:t},s,{blockItemPrefix:r,flowChars:n,itemIndent:i,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:u}}=s,p=Object.assign({},s,{indent:i,type:null}),f=!1,l=[];for(let g=0;g<t.length;++g){let d=t[g],m=null;if(B(d))!f&&d.spaceBefore&&l.push(""),qt(s,l,d.commentBefore,f),d.comment&&(m=d.comment);else if(D(d)){let b=B(d.key)?d.key:null;b&&(!f&&b.spaceBefore&&l.push(""),qt(s,l,b.commentBefore,f))}f=!1;let v=Me(d,p,()=>m=null,()=>f=!0);m&&(v+=Ne(v,i,u(m))),f&&m&&(f=!1),l.push(r+v)}let h;if(l.length===0)h=n.start+n.end;else{h=l[0];for(let g=1;g<l.length;++g){let d=l[g];h+=d?`
|
|
45
45
|
${c}${d}`:`
|
|
46
46
|
`}}return e?(h+=`
|
|
47
47
|
`+fe(u(e),c),a&&a()):f&&o&&o(),h}function Kn({items:e},t,{flowChars:s,itemIndent:r}){let{indent:n,indentStep:i,flowCollectionPadding:o,options:{commentString:a}}=t;r+=i;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),u=!1,p=0,f=[];for(let g=0;g<e.length;++g){let d=e[g],m=null;if(B(d))d.spaceBefore&&f.push(""),qt(t,f,d.commentBefore,!1),d.comment&&(m=d.comment);else if(D(d)){let b=B(d.key)?d.key:null;b&&(b.spaceBefore&&f.push(""),qt(t,f,b.commentBefore,!1),b.comment&&(u=!0));let S=B(d.value)?d.value:null;S?(S.comment&&(m=S.comment),S.commentBefore&&(u=!0)):d.value==null&&b?.comment&&(m=b.comment)}m&&(u=!0);let v=Me(d,c,()=>m=null);u||(u=f.length>p||v.includes(`
|
|
48
48
|
`)),g<e.length-1?v+=",":t.options.trailingComma&&(t.options.lineWidth>0&&(u||(u=f.reduce((b,S)=>b+S.length+2,2)+(v.length+2)>t.options.lineWidth)),u&&(v+=",")),m&&(v+=Ne(v,r,a(m))),f.push(v),p=f.length}let{start:l,end:h}=s;if(f.length===0)return l+h;if(!u){let g=f.reduce((d,m)=>d+m.length+2,2);u=t.options.lineWidth>0&&g>t.options.lineWidth}if(u){let g=l;for(let d of f)g+=d?`
|
|
49
49
|
${i}${n}${d}`:`
|
|
50
50
|
`;return`${g}
|
|
51
|
-
${n}${h}`}else return`${l}${o}${f.join(" ")}${o}${h}`}function qt({indent:e,options:{commentString:t}},s,r,n){if(r&&n&&(r=r.replace(/^\n+/,"")),r){let i=fe(t(r),e);s.push(i.trimStart())}}function Ke(e,t){let s=F(t)?t.value:t;for(let r of e)if(D(r)&&(r.key===t||r.key===s||F(r.key)&&r.key.value===s))return r}var X=class extends ze{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(de,t),this.items=[]}static from(t,s,r){let{keepUndefined:n,replacer:i}=r,o=new this(t),a=(c,u)=>{if(typeof i=="function")u=i.call(s,c,u);else if(Array.isArray(i)&&!i.includes(c))return;(u!==void 0||n)&&o.items.push(et(c,u,r))};if(s instanceof Map)for(let[c,u]of s)a(c,u);else if(s&&typeof s=="object")for(let c of Object.keys(s))a(c,s[c]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,s){let r;D(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new J(t,t?.value):r=new J(t.key,t.value);let n=Ke(this.items,r.key),i=this.schema?.sortMapEntries;if(n){if(!s)throw new Error(`Key ${r.key} already set`);F(n.value)&&Mt(r.value)?n.value.value=r.value:n.value=r.value}else if(i){let o=this.items.findIndex(a=>i(r,a)<0);o===-1?this.items.push(r):this.items.splice(o,0,r)}else this.items.push(r)}delete(t){let s=Ke(this.items,t);return s?this.items.splice(this.items.indexOf(s),1).length>0:!1}get(t,s){let n=Ke(this.items,t)?.value;return(!s&&F(n)?n.value:n)??void 0}has(t){return!!Ke(this.items,t)}set(t,s){this.add(new J(t,s),!0)}toJSON(t,s,r){let n=r?new r:s?.mapAsMap?new Map:{};s?.onCreate&&s.onCreate(n);for(let i of this.items)
|
|
52
|
-
`:" ")}return qe({comment:e,type:t,value:a},r,n,i)}};function
|
|
51
|
+
${n}${h}`}else return`${l}${o}${f.join(" ")}${o}${h}`}function qt({indent:e,options:{commentString:t}},s,r,n){if(r&&n&&(r=r.replace(/^\n+/,"")),r){let i=fe(t(r),e);s.push(i.trimStart())}}function Ke(e,t){let s=F(t)?t.value:t;for(let r of e)if(D(r)&&(r.key===t||r.key===s||F(r.key)&&r.key.value===s))return r}var X=class extends ze{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(de,t),this.items=[]}static from(t,s,r){let{keepUndefined:n,replacer:i}=r,o=new this(t),a=(c,u)=>{if(typeof i=="function")u=i.call(s,c,u);else if(Array.isArray(i)&&!i.includes(c))return;(u!==void 0||n)&&o.items.push(et(c,u,r))};if(s instanceof Map)for(let[c,u]of s)a(c,u);else if(s&&typeof s=="object")for(let c of Object.keys(s))a(c,s[c]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,s){let r;D(t)?r=t:!t||typeof t!="object"||!("key"in t)?r=new J(t,t?.value):r=new J(t.key,t.value);let n=Ke(this.items,r.key),i=this.schema?.sortMapEntries;if(n){if(!s)throw new Error(`Key ${r.key} already set`);F(n.value)&&Mt(r.value)?n.value.value=r.value:n.value=r.value}else if(i){let o=this.items.findIndex(a=>i(r,a)<0);o===-1?this.items.push(r):this.items.splice(o,0,r)}else this.items.push(r)}delete(t){let s=Ke(this.items,t);return s?this.items.splice(this.items.indexOf(s),1).length>0:!1}get(t,s){let n=Ke(this.items,t)?.value;return(!s&&F(n)?n.value:n)??void 0}has(t){return!!Ke(this.items,t)}set(t,s){this.add(new J(t,s),!0)}toJSON(t,s,r){let n=r?new r:s?.mapAsMap?new Map:{};s?.onCreate&&s.onCreate(n);for(let i of this.items)Vt(s,n,i);return n}toString(t,s,r){if(!t)return JSON.stringify(this);for(let n of this.items)if(!D(n))throw new Error(`Map items must all be pairs; found ${JSON.stringify(n)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),Ht(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:r,onComment:s})}};var we={collection:"map",default:!0,nodeClass:X,tag:"tag:yaml.org,2002:map",resolve(e,t){return ge(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,s)=>X.from(e,t,s)};var se=class extends ze{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(Re,t),this.items=[]}add(t){this.items.push(t)}delete(t){let s=Yt(t);return typeof s!="number"?!1:this.items.splice(s,1).length>0}get(t,s){let r=Yt(t);if(typeof r!="number")return;let n=this.items[r];return!s&&F(n)?n.value:n}has(t){let s=Yt(t);return typeof s=="number"&&s<this.items.length}set(t,s){let r=Yt(t);if(typeof r!="number")throw new Error(`Expected a valid index, not ${t}.`);let n=this.items[r];F(n)&&Mt(s)?n.value=s:this.items[r]=s}toJSON(t,s){let r=[];s?.onCreate&&s.onCreate(r);let n=0;for(let i of this.items)r.push(Z(i,String(n++),s));return r}toString(t,s,r){return t?Ht(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:r,onComment:s}):JSON.stringify(this)}static from(t,s,r){let{replacer:n}=r,i=new this(t);if(s&&Symbol.iterator in Object(s)){let o=0;for(let a of s){if(typeof n=="function"){let c=s instanceof Set?a:String(o++);a=n.call(s,c,a)}i.items.push(Fe(a,void 0,r))}}return i}};function Yt(e){let t=F(e)?e.value:e;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}var ve={collection:"seq",default:!0,nodeClass:se,tag:"tag:yaml.org,2002:seq",resolve(e,t){return ye(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,s)=>se.from(e,t,s)};var Ue={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,s,r){return t=Object.assign({actualString:!0},t),qe(e,t,s,r)}};var He={identify:e=>e==null,createNode:()=>new C(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new C(null),stringify:({source:e},t)=>typeof e=="string"&&He.test.test(e)?e:t.options.nullStr};var dt={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new C(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},s){if(e&&dt.test.test(e)){let r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?s.options.trueStr:s.options.falseStr}};function re({format:e,minFractionDigits:t,tag:s,value:r}){if(typeof r=="bigint")return String(r);let n=typeof r=="number"?r:Number(r);if(!isFinite(n))return isNaN(n)?".nan":n<0?"-.inf":".inf";let i=Object.is(r,-0)?"-0":JSON.stringify(r);if(!e&&t&&(!s||s==="tag:yaml.org,2002:float")&&/^-?\d/.test(i)&&!i.includes("e")){let o=i.indexOf(".");o<0&&(o=i.length,i+=".");let a=t-(i.length-o-1);for(;a-- >0;)i+="0"}return i}var Jt={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:re},Xt={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():re(e)}},Qt={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new C(parseFloat(e)),s=e.indexOf(".");return s!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-s-1),t},stringify:re};var zt=e=>typeof e=="bigint"||Number.isInteger(e),Ps=(e,t,s,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),s);function gr(e,t,s){let{value:r}=e;return zt(r)&&r>=0?s+r.toString(t):re(e)}var Zt={identify:e=>zt(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,s)=>Ps(e,2,8,s),stringify:e=>gr(e,8,"0o")},xt={identify:zt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,s)=>Ps(e,0,10,s),stringify:re},es={identify:e=>zt(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,s)=>Ps(e,2,16,s),stringify:e=>gr(e,16,"0x")};var yr=[we,ve,Ue,He,dt,Zt,xt,es,Jt,Xt,Qt];function br(e){return typeof e=="bigint"||Number.isInteger(e)}var ts=({value:e})=>JSON.stringify(e),Un=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:ts},{identify:e=>e==null,createNode:()=>new C(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:ts},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:ts},{identify:br,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:s})=>s?BigInt(e):parseInt(e,10),stringify:({value:e})=>br(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:ts}],Gn={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},wr=[we,ve].concat(Un,Gn);var ht={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){let s=atob(e.replace(/[\n\r]/g,"")),r=new Uint8Array(s.length);for(let n=0;n<s.length;++n)r[n]=s.charCodeAt(n);return r}else return t("This environment does not support reading binary tags; either Buffer or atob is required"),e},stringify({comment:e,type:t,value:s},r,n,i){if(!s)return"";let o=s,a;if(typeof btoa=="function"){let c="";for(let u=0;u<o.length;++u)c+=String.fromCharCode(o[u]);a=btoa(c)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(t??(t=C.BLOCK_LITERAL),t!==C.QUOTE_DOUBLE){let c=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),u=Math.ceil(a.length/c),p=new Array(u);for(let f=0,l=0;f<u;++f,l+=c)p[f]=a.substr(l,c);a=p.join(t===C.BLOCK_LITERAL?`
|
|
52
|
+
`:" ")}return qe({comment:e,type:t,value:a},r,n,i)}};function Ts(e,t){if(ye(e))for(let s=0;s<e.items.length;++s){let r=e.items[s];if(!D(r)){if(ge(r)){r.items.length>1&&t("Each pair must have its own sequence indicator");let n=r.items[0]||new J(new C(null));if(r.commentBefore&&(n.key.commentBefore=n.key.commentBefore?`${r.commentBefore}
|
|
53
53
|
${n.key.commentBefore}`:r.commentBefore),r.comment){let i=n.value??n.key;i.comment=i.comment?`${r.comment}
|
|
54
|
-
${i.comment}`:r.comment}r=n}e.items[s]=D(r)?r:new J(r)}}else t("Expected a sequence for this tag");return e}function
|
|
54
|
+
${i.comment}`:r.comment}r=n}e.items[s]=D(r)?r:new J(r)}}else t("Expected a sequence for this tag");return e}function Ls(e,t,s){let{replacer:r}=s,n=new se(e);n.tag="tag:yaml.org,2002:pairs";let i=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof r=="function"&&(o=r.call(t,String(i++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let u=Object.keys(o);if(u.length===1)a=u[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${u.length} keys`)}else a=o;n.items.push(et(a,c,s))}return n}var mt={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Ts,createNode:Ls};var tt=class e extends se{constructor(){super(),this.add=X.prototype.add.bind(this),this.delete=X.prototype.delete.bind(this),this.get=X.prototype.get.bind(this),this.has=X.prototype.has.bind(this),this.set=X.prototype.set.bind(this),this.tag=e.tag}toJSON(t,s){if(!s)return super.toJSON(t);let r=new Map;s?.onCreate&&s.onCreate(r);for(let n of this.items){let i,o;if(D(n)?(i=Z(n.key,"",s),o=Z(n.value,i,s)):i=Z(n,"",s),r.has(i))throw new Error("Ordered maps must not include duplicate keys");r.set(i,o)}return r}static from(t,s,r){let n=Ls(t,s,r),i=new this;return i.items=n.items,i}};tt.tag="tag:yaml.org,2002:omap";var gt={collection:"seq",identify:e=>e instanceof Map,nodeClass:tt,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){let s=Ts(e,t),r=[];for(let{key:n}of s.items)F(n)&&(r.includes(n.value)?t(`Ordered maps must not include duplicate keys: ${n.value}`):r.push(n.value));return Object.assign(new tt,s)},createNode:(e,t,s)=>tt.from(e,t,s)};function vr({value:e,source:t},s){return t&&(e?Rs:_s).test.test(t)?t:e?s.options.trueStr:s.options.falseStr}var Rs={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new C(!0),stringify:vr},_s={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new C(!1),stringify:vr};var Sr={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:re},kr={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():re(e)}},$r={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new C(parseFloat(e.replace(/_/g,""))),s=e.indexOf(".");if(s!==-1){let r=e.substring(s+1).replace(/_/g,"");r[r.length-1]==="0"&&(t.minFractionDigits=r.length)}return t},stringify:re};var yt=e=>typeof e=="bigint"||Number.isInteger(e);function ss(e,t,s,{intAsBigInt:r}){let n=e[0];if((n==="-"||n==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),r){switch(s){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let o=BigInt(e);return n==="-"?BigInt(-1)*o:o}let i=parseInt(e,s);return n==="-"?-1*i:i}function Fs(e,t,s){let{value:r}=e;if(yt(r)){let n=r.toString(t);return r<0?"-"+s+n.substr(1):s+n}return re(e)}var Ir={identify:yt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,s)=>ss(e,2,2,s),stringify:e=>Fs(e,2,"0b")},Ar={identify:yt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,s)=>ss(e,1,8,s),stringify:e=>Fs(e,8,"0")},Or={identify:yt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,s)=>ss(e,0,10,s),stringify:re},Er={identify:yt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,s)=>ss(e,2,16,s),stringify:e=>Fs(e,16,"0x")};var st=class e extends X{constructor(t){super(t),this.tag=e.tag}add(t){let s;D(t)?s=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?s=new J(t.key,null):s=new J(t,null),Ke(this.items,s.key)||this.items.push(s)}get(t,s){let r=Ke(this.items,t);return!s&&D(r)?F(r.key)?r.key.value:r.key:r}set(t,s){if(typeof s!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof s}`);let r=Ke(this.items,t);r&&!s?this.items.splice(this.items.indexOf(r),1):!r&&s&&this.items.push(new J(t))}toJSON(t,s){return super.toJSON(t,s,Set)}toString(t,s,r){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),s,r);throw new Error("Set items must all have null values")}static from(t,s,r){let{replacer:n}=r,i=new this(t);if(s&&Symbol.iterator in Object(s))for(let o of s)typeof n=="function"&&(o=n.call(s,o,o)),i.items.push(et(o,null,r));return i}};st.tag="tag:yaml.org,2002:set";var bt={collection:"map",identify:e=>e instanceof Set,nodeClass:st,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,s)=>st.from(e,t,s),resolve(e,t){if(ge(e)){if(e.hasAllNullValues(!0))return Object.assign(new st,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function Ms(e,t){let s=e[0],r=s==="-"||s==="+"?e.substring(1):e,n=o=>t?BigInt(o):Number(o),i=r.replace(/_/g,"").split(":").reduce((o,a)=>o*n(60)+n(a),n(0));return s==="-"?n(-1)*i:i}function Nr(e){let{value:t}=e,s=o=>o;if(typeof t=="bigint")s=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return re(e);let r="";t<0&&(r="-",t*=s(-1));let n=s(60),i=[t%n];return t<60?i.unshift(0):(t=(t-i[0])/n,i.unshift(t%n),t>=60&&(t=(t-i[0])/n,i.unshift(t))),r+i.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var rs={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:s})=>Ms(e,s),stringify:Nr},ns={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>Ms(e,!1),stringify:Nr},rt={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){let t=e.match(rt.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,s,r,n,i,o,a]=t.map(Number),c=t[7]?Number((t[7]+"00").substr(1,3)):0,u=Date.UTC(s,r-1,n,i||0,o||0,a||0,c),p=t[8];if(p&&p!=="Z"){let f=Ms(p,!1);Math.abs(f)<30&&(f*=60),u-=6e4*f}return new Date(u)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};var Ds=[we,ve,Ue,He,Rs,_s,Ir,Ar,Or,Er,Sr,kr,$r,ht,be,gt,mt,bt,rs,ns,rt];var Cr=new Map([["core",yr],["failsafe",[we,ve,Ue]],["json",wr],["yaml11",Ds],["yaml-1.1",Ds]]),Pr={binary:ht,bool:dt,float:Qt,floatExp:Xt,floatNaN:Jt,floatTime:ns,int:xt,intHex:es,intOct:Zt,intTime:rs,map:we,merge:be,null:He,omap:gt,pairs:mt,seq:ve,set:bt,timestamp:rt},Tr={"tag:yaml.org,2002:binary":ht,"tag:yaml.org,2002:merge":be,"tag:yaml.org,2002:omap":gt,"tag:yaml.org,2002:pairs":mt,"tag:yaml.org,2002:set":bt,"tag:yaml.org,2002:timestamp":rt};function is(e,t,s){let r=Cr.get(t);if(r&&!e)return s&&!r.includes(be)?r.concat(be):r.slice();let n=r;if(!n)if(Array.isArray(e))n=[];else{let i=Array.from(Cr.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${i} or define customTags array`)}if(Array.isArray(e))for(let i of e)n=n.concat(i);else typeof e=="function"&&(n=e(n.slice()));return s&&(n=n.concat(be)),n.reduce((i,o)=>{let a=typeof o=="string"?Pr[o]:o;if(!a){let c=JSON.stringify(o),u=Object.keys(Pr).map(p=>JSON.stringify(p)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${u}`)}return i.includes(a)||i.push(a),i},[])}var Wn=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0,wt=class e{constructor({compat:t,customTags:s,merge:r,resolveKnownTags:n,schema:i,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?is(t,"compat"):t?is(null,t):null,this.name=typeof i=="string"&&i||"core",this.knownTags=n?Tr:{},this.tags=is(s,this.name,r),this.toStringOptions=a??null,Object.defineProperty(this,de,{value:we}),Object.defineProperty(this,ce,{value:Ue}),Object.defineProperty(this,Re,{value:ve}),this.sortMapEntries=typeof o=="function"?o:o===!0?Wn:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function Lr(e,t){let s=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let c=e.directives.toString(e);c?(s.push(c),r=!0):e.directives.docStart&&(r=!0)}r&&s.push("---");let n=Ut(e,t),{commentString:i}=n.options;if(e.commentBefore){s.length!==1&&s.unshift("");let c=i(e.commentBefore);s.unshift(fe(c,""))}let o=!1,a=null;if(e.contents){if(B(e.contents)){if(e.contents.spaceBefore&&r&&s.push(""),e.contents.commentBefore){let p=i(e.contents.commentBefore);s.push(fe(p,""))}n.forceBlockIndent=!!e.comment,a=e.contents.comment}let c=a?void 0:()=>o=!0,u=Me(e.contents,n,()=>a=null,c);a&&(u+=Ne(u,"",i(a))),(u[0]==="|"||u[0]===">")&&s[s.length-1]==="---"?s[s.length-1]=`--- ${u}`:s.push(u)}else s.push(Me(e.contents,n));if(e.directives?.docEnd)if(e.comment){let c=i(e.comment);c.includes(`
|
|
55
55
|
`)?(s.push("..."),s.push(fe(c,""))):s.push(`... ${c}`)}else s.push("...");else{let c=e.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&s[s.length-1]!==""&&s.push(""),s.push(fe(i(c),"")))}return s.join(`
|
|
56
56
|
`)+`
|
|
57
|
-
`}var De=class e{constructor(t,s,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,ie,{value:Tt});let n=null;typeof s=="function"||Array.isArray(s)?n=s:r===void 0&&s&&(r=s,s=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=i;let{version:o}=i;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ee({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,n,r)}clone(){let t=Object.create(e.prototype,{[ie]:{value:Tt}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=B(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){nt(this.contents)&&this.contents.add(t)}addIn(t,s){nt(this.contents)&&this.contents.addIn(t,s)}createAlias(t,s){if(!t.anchor){let r
|
|
57
|
+
`}var De=class e{constructor(t,s,r){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,ie,{value:Tt});let n=null;typeof s=="function"||Array.isArray(s)?n=s:r===void 0&&s&&(r=s,s=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},r);this.options=i;let{version:o}=i;r?._directives?(this.directives=r._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Ee({version:o}),this.setSchema(o,r),this.contents=t===void 0?null:this.createNode(t,n,r)}clone(){let t=Object.create(e.prototype,{[ie]:{value:Tt}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=B(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){nt(this.contents)&&this.contents.add(t)}addIn(t,s){nt(this.contents)&&this.contents.addIn(t,s)}createAlias(t,s){if(!t.anchor){let r=$s(this);t.anchor=!s||r.has(s)?Is(s||"a",r):s}return new _e(t.anchor)}createNode(t,s,r){let n;if(typeof s=="function")t=s.call({"":t},"",t),n=s;else if(Array.isArray(s)){let m=b=>typeof b=="number"||b instanceof String||b instanceof Number,v=s.filter(m).map(String);v.length>0&&(s=s.concat(v)),n=s}else r===void 0&&s&&(r=s,s=void 0);let{aliasDuplicateObjects:i,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:u,tag:p}=r??{},{onAnchor:f,setAnchors:l,sourceObjects:h}=ur(this,o||"a"),g={aliasDuplicateObjects:i??!0,keepUndefined:c??!1,onAnchor:f,onTagObj:u,replacer:n,schema:this.schema,sourceObjects:h},d=Fe(t,p,g);return a&&G(d)&&(d.flow=!0),l(),d}createPair(t,s,r={}){let n=this.createNode(t,null,r),i=this.createNode(s,null,r);return new J(n,i)}delete(t){return nt(this.contents)?this.contents.delete(t):!1}deleteIn(t){return Ze(t)?this.contents==null?!1:(this.contents=null,!0):nt(this.contents)?this.contents.deleteIn(t):!1}get(t,s){return G(this.contents)?this.contents.get(t,s):void 0}getIn(t,s){return Ze(t)?!s&&F(this.contents)?this.contents.value:this.contents:G(this.contents)?this.contents.getIn(t,s):void 0}has(t){return G(this.contents)?this.contents.has(t):!1}hasIn(t){return Ze(t)?this.contents!==void 0:G(this.contents)?this.contents.hasIn(t):!1}set(t,s){this.contents==null?this.contents=lt(this.schema,[t],s):nt(this.contents)&&this.contents.set(t,s)}setIn(t,s){Ze(t)?this.contents=s:this.contents==null?this.contents=lt(this.schema,Array.from(t),s):nt(this.contents)&&this.contents.setIn(t,s)}setSchema(t,s={}){typeof t=="number"&&(t=String(t));let r;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Ee({version:"1.1"}),r={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new Ee({version:t}),r={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,r=null;break;default:{let n=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${n}`)}}if(s.schema instanceof Object)this.schema=s.schema;else if(r)this.schema=new wt(Object.assign(r,s));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:s,mapAsMap:r,maxAliasCount:n,onAnchor:i,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!t,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},c=Z(this.contents,s??"",a);if(typeof i=="function")for(let{count:u,res:p}of a.anchors.values())i(p,u);return typeof o=="function"?Be(o,{"":c},"",c):c}toJSON(t,s){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:s})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){let s=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${s}`)}return Lr(this,t)}};function nt(e){if(G(e))return!0;throw new Error("Expected a YAML collection as document contents")}var vt=class extends Error{constructor(t,s,r,n){super(),this.name=t,this.code=r,this.message=n,this.pos=s}},Se=class extends vt{constructor(t,s,r){super("YAMLParseError",t,s,r)}},St=class extends vt{constructor(t,s,r){super("YAMLWarning",t,s,r)}},Bs=(e,t)=>s=>{if(s.pos[0]===-1)return;s.linePos=s.pos.map(a=>t.linePos(a));let{line:r,col:n}=s.linePos[0];s.message+=` at line ${r}, column ${n}`;let i=n-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,"");if(i>=60&&o.length>80){let a=Math.min(i-39,o.length-79);o="\u2026"+o.substring(a),i-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),r>1&&/^ *$/.test(o.substring(0,i))){let a=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
|
58
58
|
`),o=a+o}if(/[^ ]/.test(o)){let a=1,c=s.linePos[1];c?.line===r&&c.col>n&&(a=Math.max(1,Math.min(c.col-n,80-i)));let u=" ".repeat(i)+"^".repeat(a);s.message+=`:
|
|
59
59
|
|
|
60
60
|
${o}
|
|
@@ -62,11 +62,11 @@ ${u}
|
|
|
62
62
|
`}};function Ce(e,{flow:t,indicator:s,next:r,offset:n,onError:i,parentIndent:o,startOnNewline:a}){let c=!1,u=a,p=a,f="",l="",h=!1,g=!1,d=null,m=null,v=null,b=null,S=null,$=null,I=null;for(let A of e)switch(g&&(A.type!=="space"&&A.type!=="newline"&&A.type!=="comma"&&i(A.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),d&&(u&&A.type!=="comment"&&A.type!=="newline"&&i(d,"TAB_AS_INDENT","Tabs are not allowed as indentation"),d=null),A.type){case"space":!t&&(s!=="doc-start"||r?.type!=="flow-collection")&&A.source.includes(" ")&&(d=A),p=!0;break;case"comment":{p||i(A,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=A.source.substring(1)||" ";f?f+=l+_:f=_,l="",u=!1;break}case"newline":u?f?f+=A.source:(!$||s!=="seq-item-ind")&&(c=!0):l+=A.source,u=!0,h=!0,(m||v)&&(b=A),p=!0;break;case"anchor":m&&i(A,"MULTIPLE_ANCHORS","A node can have at most one anchor"),A.source.endsWith(":")&&i(A.offset+A.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),m=A,I??(I=A.offset),u=!1,p=!1,g=!0;break;case"tag":{v&&i(A,"MULTIPLE_TAGS","A node can have at most one tag"),v=A,I??(I=A.offset),u=!1,p=!1,g=!0;break}case s:(m||v)&&i(A,"BAD_PROP_ORDER",`Anchors and tags must be after the ${A.source} indicator`),$&&i(A,"UNEXPECTED_TOKEN",`Unexpected ${A.source} in ${t??"collection"}`),$=A,u=s==="seq-item-ind"||s==="explicit-key-ind",p=!1;break;case"comma":if(t){S&&i(A,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),S=A,u=!1,p=!1;break}default:i(A,"UNEXPECTED_TOKEN",`Unexpected ${A.type} token`),u=!1,p=!1}let O=e[e.length-1],E=O?O.offset+O.source.length:n;return g&&r&&r.type!=="space"&&r.type!=="newline"&&r.type!=="comma"&&(r.type!=="scalar"||r.source!=="")&&i(r.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),d&&(u&&d.indent<=o||r?.type==="block-map"||r?.type==="block-seq")&&i(d,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:S,found:$,spaceBefore:c,comment:f,hasNewline:h,anchor:m,tag:v,newlineAfterProp:b,end:E,start:I??E}}function Ge(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(`
|
|
63
63
|
`))return!0;if(e.end){for(let t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(let t of e.items){for(let s of t.start)if(s.type==="newline")return!0;if(t.sep){for(let s of t.sep)if(s.type==="newline")return!0}if(Ge(t.key)||Ge(t.value))return!0}return!1;default:return!0}}function kt(e,t,s){if(t?.type==="flow-collection"){let r=t.end[0];r.indent===e&&(r.source==="]"||r.source==="}")&&Ge(t)&&s(r,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function os(e,t,s){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let n=typeof r=="function"?r:(i,o)=>i===o||F(i)&&F(o)&&i.value===o.value;return t.some(i=>n(i.key,s))}var Rr="All mapping items must start at the same column";function _r({composeNode:e,composeEmptyNode:t},s,r,n,i){let o=i?.nodeClass??X,a=new o(s.schema);s.atRoot&&(s.atRoot=!1);let c=r.offset,u=null;for(let p of r.items){let{start:f,key:l,sep:h,value:g}=p,d=Ce(f,{indicator:"explicit-key-ind",next:l??h?.[0],offset:c,onError:n,parentIndent:r.indent,startOnNewline:!0}),m=!d.found;if(m){if(l&&(l.type==="block-seq"?n(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in l&&l.indent!==r.indent&&n(c,"BAD_INDENT",Rr)),!d.anchor&&!d.tag&&!h){u=d.end,d.comment&&(a.comment?a.comment+=`
|
|
64
64
|
`+d.comment:a.comment=d.comment);continue}(d.newlineAfterProp||Ge(l))&&n(l??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else d.found?.indent!==r.indent&&n(c,"BAD_INDENT",Rr);s.atKey=!0;let v=d.end,b=l?e(s,l,d,n):t(s,v,f,null,d,n);s.schema.compat&&kt(r.indent,l,n),s.atKey=!1,os(s,a.items,b)&&n(v,"DUPLICATE_KEY","Map keys must be unique");let S=Ce(h??[],{indicator:"map-value-ind",next:g,offset:b.range[2],onError:n,parentIndent:r.indent,startOnNewline:!l||l.type==="block-scalar"});if(c=S.end,S.found){m&&(g?.type==="block-map"&&!S.hasNewline&&n(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),s.options.strict&&d.start<S.found.offset-1024&&n(b.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let $=g?e(s,g,S,n):t(s,c,h,null,S,n);s.schema.compat&&kt(r.indent,g,n),c=$.range[2];let I=new J(b,$);s.options.keepSourceTokens&&(I.srcToken=p),a.items.push(I)}else{m&&n(b.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),S.comment&&(b.comment?b.comment+=`
|
|
65
|
-
`+S.comment:b.comment=S.comment);let $=new J(b);s.options.keepSourceTokens&&($.srcToken=p),a.items.push($)}}return u&&u<c&&n(u,"IMPOSSIBLE","Map comment with trailing content"),a.range=[r.offset,c,u??c],a}function Fr({composeNode:e,composeEmptyNode:t},s,r,n,i){let o=i?.nodeClass??se,a=new o(s.schema);s.atRoot&&(s.atRoot=!1),s.atKey&&(s.atKey=!1);let c=r.offset,u=null;for(let{start:p,value:f}of r.items){let l=Ce(p,{indicator:"seq-item-ind",next:f,offset:c,onError:n,parentIndent:r.indent,startOnNewline:!0});if(!l.found)if(l.anchor||l.tag||f)f?.type==="block-seq"?n(l.end,"BAD_INDENT","All sequence items must start at the same column"):n(c,"MISSING_CHAR","Sequence item without - indicator");else{u=l.end,l.comment&&(a.comment=l.comment);continue}let h=f?e(s,f,l,n):t(s,l.end,p,null,l,n);s.schema.compat&&kt(r.indent,f,n),c=h.range[2],a.items.push(h)}return a.range=[r.offset,c,u??c],a}function Pe(e,t,s,r){let n="";if(e){let i=!1,o="";for(let a of e){let{source:c,type:u}=a;switch(u){case"space":i=!0;break;case"comment":{s&&!i&&r(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let p=c.substring(1)||" ";n?n+=o+p:n=p,o="";break}case"newline":n&&(o+=c),i=!0;break;default:r(a,"UNEXPECTED_TOKEN",`Unexpected ${u} at node end`)}t+=c.length}}return{comment:n,offset:t}}var
|
|
65
|
+
`+S.comment:b.comment=S.comment);let $=new J(b);s.options.keepSourceTokens&&($.srcToken=p),a.items.push($)}}return u&&u<c&&n(u,"IMPOSSIBLE","Map comment with trailing content"),a.range=[r.offset,c,u??c],a}function Fr({composeNode:e,composeEmptyNode:t},s,r,n,i){let o=i?.nodeClass??se,a=new o(s.schema);s.atRoot&&(s.atRoot=!1),s.atKey&&(s.atKey=!1);let c=r.offset,u=null;for(let{start:p,value:f}of r.items){let l=Ce(p,{indicator:"seq-item-ind",next:f,offset:c,onError:n,parentIndent:r.indent,startOnNewline:!0});if(!l.found)if(l.anchor||l.tag||f)f?.type==="block-seq"?n(l.end,"BAD_INDENT","All sequence items must start at the same column"):n(c,"MISSING_CHAR","Sequence item without - indicator");else{u=l.end,l.comment&&(a.comment=l.comment);continue}let h=f?e(s,f,l,n):t(s,l.end,p,null,l,n);s.schema.compat&&kt(r.indent,f,n),c=h.range[2],a.items.push(h)}return a.range=[r.offset,c,u??c],a}function Pe(e,t,s,r){let n="";if(e){let i=!1,o="";for(let a of e){let{source:c,type:u}=a;switch(u){case"space":i=!0;break;case"comment":{s&&!i&&r(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let p=c.substring(1)||" ";n?n+=o+p:n=p,o="";break}case"newline":n&&(o+=c),i=!0;break;default:r(a,"UNEXPECTED_TOKEN",`Unexpected ${u} at node end`)}t+=c.length}}return{comment:n,offset:t}}var js="Block collections are not allowed within flow collections",Ks=e=>e&&(e.type==="block-map"||e.type==="block-seq");function Mr({composeNode:e,composeEmptyNode:t},s,r,n,i){let o=r.start.source==="{",a=o?"flow map":"flow sequence",c=i?.nodeClass??(o?X:se),u=new c(s.schema);u.flow=!0;let p=s.atRoot;p&&(s.atRoot=!1),s.atKey&&(s.atKey=!1);let f=r.offset+r.start.source.length;for(let m=0;m<r.items.length;++m){let v=r.items[m],{start:b,key:S,sep:$,value:I}=v,O=Ce(b,{flow:a,indicator:"explicit-key-ind",next:S??$?.[0],offset:f,onError:n,parentIndent:r.indent,startOnNewline:!1});if(!O.found){if(!O.anchor&&!O.tag&&!$&&!I){m===0&&O.comma?n(O.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):m<r.items.length-1&&n(O.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),O.comment&&(u.comment?u.comment+=`
|
|
66
66
|
`+O.comment:u.comment=O.comment),f=O.end;continue}!o&&s.options.strict&&Ge(S)&&n(S,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(m===0)O.comma&&n(O.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(O.comma||n(O.start,"MISSING_CHAR",`Missing , between ${a} items`),O.comment){let E="";e:for(let A of b)switch(A.type){case"comma":case"space":break;case"comment":E=A.source.substring(1);break e;default:break e}if(E){let A=u.items[u.items.length-1];D(A)&&(A=A.value??A.key),A.comment?A.comment+=`
|
|
67
|
-
`+E:A.comment=E,O.comment=O.comment.substring(E.length+1)}}if(!o&&!$&&!O.found){let E=I?e(s,I,O,n):t(s,O.end,$,null,O,n);u.items.push(E),f=E.range[2],
|
|
67
|
+
`+E:A.comment=E,O.comment=O.comment.substring(E.length+1)}}if(!o&&!$&&!O.found){let E=I?e(s,I,O,n):t(s,O.end,$,null,O,n);u.items.push(E),f=E.range[2],Ks(I)&&n(E.range,"BLOCK_IN_FLOW",js)}else{s.atKey=!0;let E=O.end,A=S?e(s,S,O,n):t(s,E,b,null,O,n);Ks(S)&&n(A.range,"BLOCK_IN_FLOW",js),s.atKey=!1;let _=Ce($??[],{flow:a,indicator:"map-value-ind",next:I,offset:A.range[2],onError:n,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!O.found&&s.options.strict){if($)for(let N of $){if(N===_.found)break;if(N.type==="newline"){n(N,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}O.start<_.found.offset-1024&&n(_.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else I&&("source"in I&&I.source?.[0]===":"?n(I,"MISSING_CHAR",`Missing space after : in ${a}`):n(_.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let q=I?e(s,I,_,n):_.found?t(s,_.end,$,null,_,n):null;q?Ks(I)&&n(q.range,"BLOCK_IN_FLOW",js):_.comment&&(A.comment?A.comment+=`
|
|
68
68
|
`+_.comment:A.comment=_.comment);let te=new J(A,q);if(s.options.keepSourceTokens&&(te.srcToken=v),o){let N=u;os(s,N.items,A)&&n(E,"DUPLICATE_KEY","Map keys must be unique"),N.items.push(te)}else{let N=new X(s.schema);N.flow=!0,N.items.push(te);let Y=(q??A).range;N.range=[A.range[0],Y[1],Y[2]],u.items.push(N)}f=q?q.range[2]:_.end}}let l=o?"}":"]",[h,...g]=r.end,d=f;if(h?.source===l)d=h.offset+h.source.length;else{let m=a[0].toUpperCase()+a.substring(1),v=p?`${m} must end with a ${l}`:`${m} in block collection must be sufficiently indented and end with a ${l}`;n(f,p?"MISSING_CHAR":"BAD_INDENT",v),h&&h.source.length!==1&&g.unshift(h)}if(g.length>0){let m=Pe(g,d,s.options.strict,n);m.comment&&(u.comment?u.comment+=`
|
|
69
|
-
`+m.comment:u.comment=m.comment),u.range=[r.offset,d,m.offset]}else u.range=[r.offset,d,d];return u}function
|
|
69
|
+
`+m.comment:u.comment=m.comment),u.range=[r.offset,d,m.offset]}else u.range=[r.offset,d,d];return u}function Us(e,t,s,r,n,i){let o=s.type==="block-map"?_r(e,t,s,r,i):s.type==="block-seq"?Fr(e,t,s,r,i):Mr(e,t,s,r,i),a=o.constructor;return n==="!"||n===a.tagName?(o.tag=a.tagName,o):(n&&(o.tag=n),o)}function Dr(e,t,s,r,n){let i=r.tag,o=i?t.directives.tagName(i.source,l=>n(i,"TAG_RESOLVE_FAILED",l)):null;if(s.type==="block-seq"){let{anchor:l,newlineAfterProp:h}=r,g=l&&i?l.offset>i.offset?l:i:l??i;g&&(!h||h.offset<g.offset)&&n(g,"MISSING_CHAR","Missing newline after block sequence props")}let a=s.type==="block-map"?"map":s.type==="block-seq"?"seq":s.start.source==="{"?"map":"seq";if(!i||!o||o==="!"||o===X.tagName&&a==="map"||o===se.tagName&&a==="seq")return Us(e,t,s,n,o);let c=t.schema.tags.find(l=>l.tag===o&&l.collection===a);if(!c){let l=t.schema.knownTags[o];if(l?.collection===a)t.schema.tags.push(Object.assign({},l,{default:!1})),c=l;else return l?n(i,"BAD_COLLECTION_TYPE",`${l.tag} used for ${a} collection, but expects ${l.collection??"scalar"}`,!0):n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),Us(e,t,s,n,o)}let u=Us(e,t,s,n,o,c),p=c.resolve?.(u,l=>n(i,"TAG_RESOLVE_FAILED",l),t.options)??u,f=B(p)?p:new C(p);return f.range=u.range,f.tag=o,c?.format&&(f.format=c.format),f}function Gs(e,t,s){let r=t.offset,n=Vn(t,e.options.strict,s);if(!n)return{value:"",type:null,comment:"",range:[r,r,r]};let i=n.mode===">"?C.BLOCK_FOLDED:C.BLOCK_LITERAL,o=t.source?qn(t.source):[],a=o.length;for(let d=o.length-1;d>=0;--d){let m=o[d][1];if(m===""||m==="\r")a=d;else break}if(a===0){let d=n.chomp==="+"&&o.length>0?`
|
|
70
70
|
`.repeat(Math.max(1,o.length-1)):"",m=r+n.length;return t.source&&(m+=t.source.length),{value:d,type:i,comment:n.comment,range:[r,m,m]}}let c=t.indent+n.indent,u=t.offset+n.length,p=0;for(let d=0;d<a;++d){let[m,v]=o[d];if(v===""||v==="\r")n.indent===0&&m.length>c&&(c=m.length);else{m.length<c&&s(u+m.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),n.indent===0&&(c=m.length),p=d,c===0&&!e.atRoot&&s(u,"BAD_INDENT","Block scalar values in collections must be indented");break}u+=m.length+v.length+1}for(let d=o.length-1;d>=a;--d)o[d][0].length>c&&(a=d+1);let f="",l="",h=!1;for(let d=0;d<p;++d)f+=o[d][0].slice(c)+`
|
|
71
71
|
`;for(let d=p;d<a;++d){let[m,v]=o[d];u+=m.length+v.length+1;let b=v[v.length-1]==="\r";if(b&&(v=v.slice(0,-1)),v&&m.length<c){let $=`Block scalar lines must not be less indented than their ${n.indent?"explicit indentation indicator":"first line"}`;s(u-v.length-(b?2:1),"BAD_INDENT",$),m=""}i===C.BLOCK_LITERAL?(f+=l+m.slice(c)+v,l=`
|
|
72
72
|
`):m.length>c||v[0]===" "?(l===" "?l=`
|
|
@@ -81,7 +81,7 @@ ${u}
|
|
|
81
81
|
`+o[d][0].slice(c);f[f.length-1]!==`
|
|
82
82
|
`&&(f+=`
|
|
83
83
|
`);break;default:f+=`
|
|
84
|
-
`}let g=r+n.length+t.source.length;return{value:f,type:i,comment:n.comment,range:[r,g,g]}}function
|
|
84
|
+
`}let g=r+n.length+t.source.length;return{value:f,type:i,comment:n.comment,range:[r,g,g]}}function Vn({offset:e,props:t},s,r){if(t[0].type!=="block-scalar-header")return r(t[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:n}=t[0],i=n[0],o=0,a="",c=-1;for(let l=1;l<n.length;++l){let h=n[l];if(!a&&(h==="-"||h==="+"))a=h;else{let g=Number(h);!o&&g?o=g:c===-1&&(c=e+l)}}c!==-1&&r(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${n}`);let u=!1,p="",f=n.length;for(let l=1;l<t.length;++l){let h=t[l];switch(h.type){case"space":u=!0;case"newline":f+=h.source.length;break;case"comment":s&&!u&&r(h,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),f+=h.source.length,p=h.source.substring(1);break;case"error":r(h,"UNEXPECTED_TOKEN",h.message),f+=h.source.length;break;default:{let g=`Unexpected token in block scalar header: ${h.type}`;r(h,"UNEXPECTED_TOKEN",g);let d=h.source;d&&typeof d=="string"&&(f+=d.length)}}}return{mode:i,indent:o,chomp:a,comment:p,length:f}}function qn(e){let t=e.split(/\n( *)/),s=t[0],r=s.match(/^( *)/),i=[r?.[1]?[r[1],s.slice(r[1].length)]:["",s]];for(let o=1;o<t.length;o+=2)i.push([t[o],t[o+1]]);return i}function Ws(e,t,s){let{offset:r,type:n,source:i,end:o}=e,a,c,u=(l,h,g)=>s(r+l,h,g);switch(n){case"scalar":a=C.PLAIN,c=Hn(i,u);break;case"single-quoted-scalar":a=C.QUOTE_SINGLE,c=Yn(i,u);break;case"double-quoted-scalar":a=C.QUOTE_DOUBLE,c=Jn(i,u);break;default:return s(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${n}`),{value:"",type:null,comment:"",range:[r,r+i.length,r+i.length]}}let p=r+i.length,f=Pe(o,p,t,s);return{value:c,type:a,comment:f.comment,range:[r,p,f.offset]}}function Hn(e,t){let s="";switch(e[0]){case" ":s="a tab character";break;case",":s="flow indicator character ,";break;case"%":s="directive indicator character %";break;case"|":case">":{s=`block scalar indicator ${e[0]}`;break}case"@":case"`":{s=`reserved character ${e[0]}`;break}}return s&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${s}`),Br(e)}function Yn(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),Br(e.slice(1,-1)).replace(/''/g,"'")}function Br(e){let t=/(.*?)\r?\n/sy,s=t.exec(e);if(!s)return e;let r,n;try{r=new RegExp("(?<![ ])[ ]+$"),n=new RegExp("^[ ]+|(?<![ ])[ ]+$","g")}catch{r=/[ \t]+$/,n=/^[ \t]+|[ \t]+$/g}let i=s[1].replace(r,""),o=" ",a=t.lastIndex;for(;s=t.exec(e);){let u=s[1].replace(n,"");u===""?o===`
|
|
85
85
|
`?i+=o:o=`
|
|
86
86
|
`:(i+=o+u,o=" "),a=t.lastIndex}let c=/[ \t]*(.*)/sy;return c.lastIndex=a,s=c.exec(e),i+o+(s?.[1]??"")}function Jn(e,t){let s="";for(let r=1;r<e.length-1;++r){let n=e[r];if(!(n==="\r"&&e[r+1]===`
|
|
87
87
|
`))if(n===`
|
|
@@ -94,23 +94,23 @@ ${u}
|
|
|
94
94
|
`);)r===`
|
|
95
95
|
`&&(s+=`
|
|
96
96
|
`),t+=1,r=e[t+1];return s||(s=" "),{fold:s,offset:t}}var Qn={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
97
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function zn(e,t,s,r){let n=e.substr(t,s),o=n.length===s&&/^[0-9a-fA-F]+$/.test(n)?parseInt(n,16):NaN;try{return String.fromCodePoint(o)}catch{let a=e.substr(t-2,s+2);return r(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}function Vs(e,t,s,r){let{value:n,type:i,comment:o,range:a}=t.type==="block-scalar"?
|
|
97
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function zn(e,t,s,r){let n=e.substr(t,s),o=n.length===s&&/^[0-9a-fA-F]+$/.test(n)?parseInt(n,16):NaN;try{return String.fromCodePoint(o)}catch{let a=e.substr(t-2,s+2);return r(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}function Vs(e,t,s,r){let{value:n,type:i,comment:o,range:a}=t.type==="block-scalar"?Gs(e,t,r):Ws(t,e.options.strict,r),c=s?e.directives.tagName(s.source,f=>r(s,"TAG_RESOLVE_FAILED",f)):null,u;e.options.stringKeys&&e.atKey?u=e.schema[ce]:c?u=Zn(e.schema,n,c,s,r):t.type==="scalar"?u=xn(e,n,t,r):u=e.schema[ce];let p;try{let f=u.resolve(n,l=>r(s??t,"TAG_RESOLVE_FAILED",l),e.options);p=F(f)?f:new C(f)}catch(f){let l=f instanceof Error?f.message:String(f);r(s??t,"TAG_RESOLVE_FAILED",l),p=new C(n)}return p.range=a,p.source=n,i&&(p.type=i),c&&(p.tag=c),u.format&&(p.format=u.format),o&&(p.comment=o),p}function Zn(e,t,s,r,n){if(s==="!")return e[ce];let i=[];for(let a of e.tags)if(!a.collection&&a.tag===s)if(a.default&&a.test)i.push(a);else return a;for(let a of i)if(a.test?.test(t))return a;let o=e.knownTags[s];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(n(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${s}`,s!=="tag:yaml.org,2002:str"),e[ce])}function xn({atKey:e,directives:t,schema:s},r,n,i){let o=s.tags.find(a=>(a.default===!0||e&&a.default==="key")&&a.test?.test(r))||s[ce];if(s.compat){let a=s.compat.find(c=>c.default&&c.test?.test(r))??s[ce];if(o.tag!==a.tag){let c=t.tagString(o.tag),u=t.tagString(a.tag),p=`Value may be parsed as either ${c} or ${u}`;i(n,"TAG_RESOLVE_FAILED",p,!0)}}return o}function jr(e,t,s){if(t){s??(s=t.length);for(let r=s-1;r>=0;--r){let n=t[r];switch(n.type){case"space":case"comment":case"newline":e-=n.source.length;continue}for(n=t[++r];n?.type==="space";)e+=n.source.length,n=t[++r];break}}return e}var ei={composeNode:qs,composeEmptyNode:as};function qs(e,t,s,r){let n=e.atKey,{spaceBefore:i,comment:o,anchor:a,tag:c}=s,u,p=!0;switch(t.type){case"alias":u=ti(e,t,r),(a||c)&&r(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":u=Vs(e,t,c,r),a&&(u.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{u=Dr(ei,e,t,s,r),a&&(u.anchor=a.source.substring(1))}catch(f){let l=f instanceof Error?f.message:String(f);r(t,"RESOURCE_EXHAUSTION",l)}break;default:{let f=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;r(t,"UNEXPECTED_TOKEN",f),p=!1}}return u??(u=as(e,t.offset,void 0,null,s,r)),a&&u.anchor===""&&r(a,"BAD_ALIAS","Anchor cannot be an empty string"),n&&e.options.stringKeys&&(!F(u)||typeof u.value!="string"||u.tag&&u.tag!=="tag:yaml.org,2002:str")&&r(c??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),i&&(u.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?u.comment=o:u.commentBefore=o),e.options.keepSourceTokens&&p&&(u.srcToken=t),u}function as(e,t,s,r,{spaceBefore:n,comment:i,anchor:o,tag:a,end:c},u){let p={type:"scalar",offset:jr(t,s,r),indent:-1,source:""},f=Vs(e,p,a,u);return o&&(f.anchor=o.source.substring(1),f.anchor===""&&u(o,"BAD_ALIAS","Anchor cannot be an empty string")),n&&(f.spaceBefore=!0),i&&(f.comment=i,f.range[2]=c),f}function ti({options:e},{offset:t,source:s,end:r},n){let i=new _e(s.substring(1));i.source===""&&n(t,"BAD_ALIAS","Alias cannot be an empty string"),i.source.endsWith(":")&&n(t+s.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=t+s.length,a=Pe(r,o,e.strict,n);return i.range=[t,o,a.offset],a.comment&&(i.comment=a.comment),i}function Kr(e,t,{offset:s,start:r,value:n,end:i},o){let a=Object.assign({_directives:t},e),c=new De(void 0,a),u={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},p=Ce(r,{indicator:"doc-start",next:n??i?.[0],offset:s,onError:o,parentIndent:0,startOnNewline:!0});p.found&&(c.directives.docStart=!0,n&&(n.type==="block-map"||n.type==="block-seq")&&!p.hasNewline&&o(p.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=n?qs(u,n,p,o):as(u,p.end,r,null,p,o);let f=c.contents.range[2],l=Pe(i,f,!1,o);return l.comment&&(c.comment=l.comment),c.range=[s,f,l.offset],c}function $t(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:s}=e;return[t,t+(typeof s=="string"?s.length:1)]}function Ur(e){let t="",s=!1,r=!1;for(let n=0;n<e.length;++n){let i=e[n];switch(i[0]){case"#":t+=(t===""?"":r?`
|
|
98
98
|
|
|
99
99
|
`:`
|
|
100
100
|
`)+(i.substring(1)||" "),s=!0,r=!1;break;case"%":e[n+1]?.[0]!=="#"&&(n+=1),s=!1;break;default:s||(r=!0),s=!1}}return{comment:t,afterEmptyLine:r}}var It=class{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(s,r,n,i)=>{let o=$t(s);i?this.warnings.push(new St(o,r,n)):this.errors.push(new Se(o,r,n))},this.directives=new Ee({version:t.version||"1.2"}),this.options=t}decorate(t,s){let{comment:r,afterEmptyLine:n}=Ur(this.prelude);if(r){let i=t.contents;if(s)t.comment=t.comment?`${t.comment}
|
|
101
101
|
${r}`:r;else if(n||t.directives.docStart||!i)t.commentBefore=r;else if(G(i)&&!i.flow&&i.items.length>0){let o=i.items[0];D(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${r}
|
|
102
102
|
${a}`:r}else{let o=i.commentBefore;i.commentBefore=o?`${r}
|
|
103
103
|
${o}`:r}}if(s){for(let i=0;i<this.errors.length;++i)t.errors.push(this.errors[i]);for(let i=0;i<this.warnings.length;++i)t.warnings.push(this.warnings[i])}else t.errors=this.errors,t.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Ur(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,s=!1,r=-1){for(let n of t)yield*this.next(n);yield*this.end(s,r)}*next(t){switch(t.type){case"directive":this.directives.add(t.source,(s,r,n)=>{let i=$t(t);i[0]+=s,this.onError(i,"BAD_DIRECTIVE",r,n)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{let s=Kr(this.options,this.directives,t,this.onError);this.atDirectives&&!s.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(s,!1),this.doc&&(yield this.doc),this.doc=s,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{let s=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,r=new Se($t(t),"UNEXPECTED_TOKEN",s);this.atDirectives||!this.doc?this.errors.push(r):this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){let r="Unexpected doc-end without preceding document";this.errors.push(new Se($t(t),"UNEXPECTED_TOKEN",r));break}this.doc.directives.docEnd=!0;let s=Pe(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),s.comment){let r=this.doc.comment;this.doc.comment=r?`${r}
|
|
104
|
-
${s.comment}`:s.comment}this.doc.range[2]=s.offset;break}default:this.errors.push(new Se($t(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,s=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){let r=Object.assign({_directives:this.directives},this.options),n=new De(void 0,r);this.atDirectives&&this.onError(s,"MISSING_CHAR","Missing directives-end indicator line"),n.range=[0,s,s],this.decorate(n,!1),yield n}}};var
|
|
104
|
+
${s.comment}`:s.comment}this.doc.range[2]=s.offset;break}default:this.errors.push(new Se($t(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,s=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){let r=Object.assign({_directives:this.directives},this.options),n=new De(void 0,r);this.atDirectives&&this.onError(s,"MISSING_CHAR","Missing directives-end indicator line"),n.range=[0,s,s],this.decorate(n,!1),yield n}}};var Hs=Symbol("break visit"),si=Symbol("skip children"),Gr=Symbol("remove item");function Ye(e,t){"type"in e&&e.type==="document"&&(e={start:e.start,value:e.value}),Wr(Object.freeze([]),e,t)}Ye.BREAK=Hs;Ye.SKIP=si;Ye.REMOVE=Gr;Ye.itemAtPath=(e,t)=>{let s=e;for(let[r,n]of t){let i=s?.[r];if(i&&"items"in i)s=i.items[n];else return}return s};Ye.parentCollection=(e,t)=>{let s=Ye.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],n=s?.[r];if(n&&"items"in n)return n;throw new Error("Parent collection not found")};function Wr(e,t,s){let r=s(t,e);if(typeof r=="symbol")return r;for(let n of["key","value"]){let i=t[n];if(i&&"items"in i){for(let o=0;o<i.items.length;++o){let a=Wr(Object.freeze(e.concat([[n,o]])),i.items[o],s);if(typeof a=="number")o=a-1;else{if(a===Hs)return Hs;a===Gr&&(i.items.splice(o,1),o-=1)}}typeof r=="function"&&n==="key"&&(r=r(t,e))}}return typeof r=="function"?r(t,e):r}var Ys="\uFEFF",Js="",Xs="",cs="";function Vr(e){switch(e){case Ys:return"byte-order-mark";case Js:return"doc-mode";case Xs:return"flow-error-end";case cs:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
105
105
|
`:case`\r
|
|
106
106
|
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function ke(e){switch(e){case void 0:case" ":case`
|
|
107
107
|
`:case"\r":case" ":return!0;default:return!1}}var qr=new Set("0123456789ABCDEFabcdef"),ni=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),ls=new Set(",[]{}"),ii=new Set(` ,[]{}
|
|
108
|
-
\r `),
|
|
108
|
+
\r `),Qs=e=>!e||ii.has(e),At=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,s=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!s;let r=this.next??"stream";for(;r&&(s||this.hasChars(1));)r=yield*this.parseNext(r)}atLineEnd(){let t=this.pos,s=this.buffer[t];for(;s===" "||s===" ";)s=this.buffer[++t];return!s||s==="#"||s===`
|
|
109
109
|
`?!0:s==="\r"?this.buffer[t+1]===`
|
|
110
110
|
`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let s=this.buffer[t];if(this.indentNext>0){let r=0;for(;s===" ";)s=this.buffer[++r+t];if(s==="\r"){let n=this.buffer[r+t+1];if(n===`
|
|
111
111
|
`||!n&&!this.atEnd)return t+r+1}return s===`
|
|
112
112
|
`||r>=this.indentNext||!s&&!this.atEnd?t+r:-1}if(s==="-"||s==="."){let r=this.buffer.substr(t,3);if((r==="---"||r==="...")&&ke(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&t<this.pos)&&(t=this.buffer.indexOf(`
|
|
113
|
-
`,this.pos),this.lineEndPos=t),t===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[t-1]==="\r"&&(t-=1),this.buffer.substring(this.pos,t))}hasChars(t){return this.pos+t<=this.buffer.length}setNext(t){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=t,null}peek(t){return this.buffer.substr(this.pos,t)}*parseNext(t){switch(t){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let t=this.getLine();if(t===null)return this.setNext("stream");if(t[0]===
|
|
113
|
+
`,this.pos),this.lineEndPos=t),t===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[t-1]==="\r"&&(t-=1),this.buffer.substring(this.pos,t))}hasChars(t){return this.pos+t<=this.buffer.length}setNext(t){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=t,null}peek(t){return this.buffer.substr(this.pos,t)}*parseNext(t){switch(t){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let t=this.getLine();if(t===null)return this.setNext("stream");if(t[0]===Ys&&(yield*this.pushCount(1),t=t.substring(1)),t[0]==="%"){let s=t.length,r=t.indexOf("#");for(;r!==-1;){let i=t[r-1];if(i===" "||i===" "){s=r-1;break}else r=t.indexOf("#",r+1)}for(;;){let i=t[s-1];if(i===" "||i===" ")s-=1;else break}let n=(yield*this.pushCount(s))+(yield*this.pushSpaces(!0));return yield*this.pushCount(t.length-n),this.pushNewline(),"stream"}if(this.atLineEnd()){let s=yield*this.pushSpaces(!0);return yield*this.pushCount(t.length-s),yield*this.pushNewline(),"stream"}return yield Js,yield*this.parseLineStart()}*parseLineStart(){let t=this.charAt(0);if(!t&&!this.atEnd)return this.setNext("line-start");if(t==="-"||t==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let s=this.peek(3);if((s==="---"||s==="...")&&ke(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,s==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!ke(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[t,s]=this.peek(2);if(!s&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&ke(s)){let r=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=r,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let t=this.getLine();if(t===null)return this.setNext("doc");let s=yield*this.pushIndicators();switch(t[s]){case"#":yield*this.pushCount(t.length-s);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Qs),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return s+=yield*this.parseBlockScalarHeader(),s+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-s),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,s,r=-1;do t=yield*this.pushNewline(),t>0?(s=yield*this.pushSpaces(!1),this.indentValue=r=s):s=0,s+=yield*this.pushSpaces(!0);while(t+s>0);let n=this.getLine();if(n===null)return this.setNext("flow");if((r!==-1&&r<this.indentNext&&n[0]!=="#"||r===0&&(n.startsWith("---")||n.startsWith("..."))&&ke(n[3]))&&!(r===this.indentNext-1&&this.flowLevel===1&&(n[0]==="]"||n[0]==="}")))return this.flowLevel=0,yield Xs,yield*this.parseLineStart();let i=0;for(;n[i]===",";)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),n[i]){case void 0:return"flow";case"#":return yield*this.pushCount(n.length-i),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(Qs),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||ke(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let t=this.charAt(0),s=this.buffer.indexOf(t,this.pos+1);if(t==="'")for(;s!==-1&&this.buffer[s+1]==="'";)s=this.buffer.indexOf("'",s+2);else for(;s!==-1;){let i=0;for(;this.buffer[s-1-i]==="\\";)i+=1;if(i%2===0)break;s=this.buffer.indexOf('"',s+1)}let r=this.buffer.substring(0,s),n=r.indexOf(`
|
|
114
114
|
`,this.pos);if(n!==-1){for(;n!==-1;){let i=this.continueScalar(n+1);if(i===-1)break;n=r.indexOf(`
|
|
115
115
|
`,i)}n!==-1&&(s=n-(r[n-1]==="\r"?2:1))}if(s===-1){if(!this.atEnd)return this.setNext("quoted-scalar");s=this.buffer.length}return yield*this.pushToIndex(s+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let t=this.pos;for(;;){let s=this.buffer[++t];if(s==="+")this.blockScalarKeep=!0;else if(s>"0"&&s<="9")this.blockScalarIndent=Number(s)-1;else if(s!=="-")break}return yield*this.pushUntil(s=>ke(s)||s==="#")}*parseBlockScalar(){let t=this.pos-1,s=0,r;e:for(let i=this.pos;r=this.buffer[i];++i)switch(r){case" ":s+=1;break;case`
|
|
116
116
|
`:t=i,s=0;break;case"\r":{let o=this.buffer[i+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
|
@@ -120,17 +120,17 @@ ${s.comment}`:s.comment}this.doc.range[2]=s.offset;break}default:this.errors.pus
|
|
|
120
120
|
`&&i>=this.pos&&i+1+s>a)t=i;else break}while(!0);return yield cs,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let t=this.flowLevel>0,s=this.pos-1,r=this.pos-1,n;for(;n=this.buffer[++r];)if(n===":"){let i=this.buffer[r+1];if(ke(i)||t&&ls.has(i))break;s=r}else if(ke(n)){let i=this.buffer[r+1];if(n==="\r"&&(i===`
|
|
121
121
|
`?(r+=1,n=`
|
|
122
122
|
`,i=this.buffer[r+1]):s=r),i==="#"||t&&ls.has(i))break;if(n===`
|
|
123
|
-
`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(t&&ls.has(n))break;s=r}return!n&&!this.atEnd?this.setNext("plain-scalar"):(yield cs,yield*this.pushToIndex(s+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,s){let r=this.buffer.slice(this.pos,t);return r?(yield r,this.pos+=r.length,r.length):(s&&(yield""),0)}*pushIndicators(){let t=0;e:for(;;){switch(this.charAt(0)){case"!":t+=yield*this.pushTag(),t+=yield*this.pushSpaces(!0);continue e;case"&":t+=yield*this.pushUntil(
|
|
123
|
+
`){let o=this.continueScalar(r+1);if(o===-1)break;r=Math.max(r,o-2)}}else{if(t&&ls.has(n))break;s=r}return!n&&!this.atEnd?this.setNext("plain-scalar"):(yield cs,yield*this.pushToIndex(s+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,s){let r=this.buffer.slice(this.pos,t);return r?(yield r,this.pos+=r.length,r.length):(s&&(yield""),0)}*pushIndicators(){let t=0;e:for(;;){switch(this.charAt(0)){case"!":t+=yield*this.pushTag(),t+=yield*this.pushSpaces(!0);continue e;case"&":t+=yield*this.pushUntil(Qs),t+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{let s=this.flowLevel>0,r=this.charAt(1);if(ke(r)||s&&ls.has(r)){s?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,t+=yield*this.pushCount(1),t+=yield*this.pushSpaces(!0);continue e}}}break e}return t}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,s=this.buffer[t];for(;!ke(s)&&s!==">";)s=this.buffer[++t];return yield*this.pushToIndex(s===">"?t+1:t,!1)}else{let t=this.pos+1,s=this.buffer[t];for(;s;)if(ni.has(s))s=this.buffer[++t];else if(s==="%"&&qr.has(this.buffer[t+1])&&qr.has(this.buffer[t+2]))s=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){let t=this.buffer[this.pos];return t===`
|
|
124
124
|
`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===`
|
|
125
|
-
`?yield*this.pushCount(2):0}*pushSpaces(t){let s=this.pos-1,r;do r=this.buffer[++s];while(r===" "||t&&r===" ");let n=s-this.pos;return n>0&&(yield this.buffer.substr(this.pos,n),this.pos=s),n}*pushUntil(t){let s=this.pos,r=this.buffer[s];for(;!t(r);)r=this.buffer[++s];return yield*this.pushToIndex(s,!1)}};var Ot=class{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let s=0,r=this.lineStarts.length;for(;s<r;){let i=s+r>>1;this.lineStarts[i]<t?s=i+1:r=i}if(this.lineStarts[s]===t)return{line:s+1,col:1};if(s===0)return{line:0,col:t};let n=this.lineStarts[s-1];return{line:s,col:t-n+1}}}};function
|
|
125
|
+
`?yield*this.pushCount(2):0}*pushSpaces(t){let s=this.pos-1,r;do r=this.buffer[++s];while(r===" "||t&&r===" ");let n=s-this.pos;return n>0&&(yield this.buffer.substr(this.pos,n),this.pos=s),n}*pushUntil(t){let s=this.pos,r=this.buffer[s];for(;!t(r);)r=this.buffer[++s];return yield*this.pushToIndex(s,!1)}};var Ot=class{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let s=0,r=this.lineStarts.length;for(;s<r;){let i=s+r>>1;this.lineStarts[i]<t?s=i+1:r=i}if(this.lineStarts[s]===t)return{line:s+1,col:1};if(s===0)return{line:0,col:t};let n=this.lineStarts[s-1];return{line:s,col:t-n+1}}}};function We(e,t){for(let s=0;s<e.length;++s)if(e[s].type===t)return!0;return!1}function Hr(e){for(let t=0;t<e.length;++t)switch(e[t].type){case"space":case"comment":case"newline":break;default:return t}return-1}function Jr(e){switch(e?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function us(e){switch(e.type){case"document":return e.start;case"block-map":{let t=e.items[e.items.length-1];return t.sep??t.start}case"block-seq":return e.items[e.items.length-1].start;default:return[]}}function it(e){if(e.length===0)return[];let t=e.length;e:for(;--t>=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;e[++t]?.type==="space";);return e.splice(t,e.length)}function fs(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let s=0;s<t.length;++s)e.push(t[s])}function Yr(e){if(e.start.type==="flow-seq-start")for(let t of e.items)t.sep&&!t.value&&!We(t.start,"explicit-key-ind")&&!We(t.sep,"map-value-ind")&&(t.key&&(t.value=t.key),delete t.key,Jr(t.value)?t.value.end?fs(t.value.end,t.sep):t.value.end=t.sep:fs(t.start,t.sep),delete t.sep)}var Et=class{constructor(t){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new At,this.onNewLine=t}*parse(t,s=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let r of this.lexer.lex(t,s))yield*this.next(r);s||(yield*this.end())}*next(t){if(this.source=t,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=t.length;return}let s=Vr(t);if(s)if(s==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=s,yield*this.step(),s){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+t.length);break;case"space":this.atNewLine&&t[0]===" "&&(this.indent+=t.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=t.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=t.length}else{let r=`Not a YAML token: ${t}`;yield*this.pop({type:"error",offset:this.offset,message:r,source:t}),this.offset+=t.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let t=this.peek(1);if(this.type==="doc-end"&&t?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){let s=t??this.stack.pop();if(!s)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield s;else{let r=this.peek(1);switch(s.type==="block-scalar"?s.indent="indent"in r?r.indent:0:s.type==="flow-collection"&&r.type==="document"&&(s.indent=0),s.type==="flow-collection"&&Yr(s),r.type){case"document":r.value=s;break;case"block-scalar":r.props.push(s);break;case"block-map":{let n=r.items[r.items.length-1];if(n.value){r.items.push({start:[],key:s,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=s;else{Object.assign(n,{key:s,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case"block-seq":{let n=r.items[r.items.length-1];n.value?r.items.push({start:[],value:s}):n.value=s;break}case"flow-collection":{let n=r.items[r.items.length-1];!n||n.value?r.items.push({start:[],key:s,sep:[]}):n.sep?n.value=s:Object.assign(n,{key:s,sep:[]});return}default:yield*this.pop(),yield*this.pop(s)}if((r.type==="document"||r.type==="block-map"||r.type==="block-seq")&&(s.type==="block-map"||s.type==="block-seq")){let n=s.items[s.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&Hr(n.start)===-1&&(s.indent===0||n.start.every(i=>i.type!=="comment"||i.indent<s.indent))&&(r.type==="document"?r.end=n.start:r.items.push({start:n.start}),s.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let t={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&t.start.push(this.sourceToken),this.stack.push(t);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(t){if(t.value)return yield*this.lineEnd(t);switch(this.type){case"doc-start":{Hr(t.start)!==-1?(yield*this.pop(),yield*this.step()):t.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":t.start.push(this.sourceToken);return}let s=this.startBlockValue(t);s?this.stack.push(s):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(t){if(this.type==="map-value-ind"){let s=us(this.peek(2)),r=it(s),n;t.end?(n=t.end,n.push(this.sourceToken),delete t.end):n=[this.sourceToken];let i={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:r,key:t,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(t)}*blockScalar(t){switch(this.type){case"space":case"comment":case"newline":t.props.push(this.sourceToken);return;case"scalar":if(t.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let s=this.source.indexOf(`
|
|
126
126
|
`)+1;for(;s!==0;)this.onNewLine(this.offset+s),s=this.source.indexOf(`
|
|
127
|
-
`,s)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let s=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,s.value){let r="end"in s.value?s.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)t.items.push({start:[this.sourceToken]});else if(s.sep)s.sep.push(this.sourceToken);else{if(this.atIndentedComment(s.start,t.indent)){let n=t.items[t.items.length-2]?.value?.end;if(Array.isArray(n)){fs(n,s.start),n.push(this.sourceToken),t.items.pop();return}}s.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let r=!this.onKeyLine&&this.indent===t.indent,n=r&&(s.sep||s.explicitKey)&&this.type!=="seq-item-ind",i=[];if(n&&s.sep&&!s.value){let o=[];for(let a=0;a<s.sep.length;++a){let c=s.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>t.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=s.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":n||s.value?(i.push(this.sourceToken),t.items.push({start:i}),this.onKeyLine=!0):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"explicit-key-ind":!s.sep&&!s.explicitKey?(s.start.push(this.sourceToken),s.explicitKey=!0):n||s.value?(i.push(this.sourceToken),t.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(s.explicitKey)if(s.sep)if(s.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(
|
|
127
|
+
`,s)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let s=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,s.value){let r="end"in s.value?s.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)t.items.push({start:[this.sourceToken]});else if(s.sep)s.sep.push(this.sourceToken);else{if(this.atIndentedComment(s.start,t.indent)){let n=t.items[t.items.length-2]?.value?.end;if(Array.isArray(n)){fs(n,s.start),n.push(this.sourceToken),t.items.pop();return}}s.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let r=!this.onKeyLine&&this.indent===t.indent,n=r&&(s.sep||s.explicitKey)&&this.type!=="seq-item-ind",i=[];if(n&&s.sep&&!s.value){let o=[];for(let a=0;a<s.sep.length;++a){let c=s.sep[a];switch(c.type){case"newline":o.push(a);break;case"space":break;case"comment":c.indent>t.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(i=s.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":n||s.value?(i.push(this.sourceToken),t.items.push({start:i}),this.onKeyLine=!0):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"explicit-key-ind":!s.sep&&!s.explicitKey?(s.start.push(this.sourceToken),s.explicitKey=!0):n||s.value?(i.push(this.sourceToken),t.items.push({start:i,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(s.explicitKey)if(s.sep)if(s.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(We(s.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Jr(s.key)&&!We(s.sep,"newline")){let o=it(s.start),a=s.key,c=s.sep;c.push(this.sourceToken),delete s.key,delete s.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]})}else i.length>0?s.sep=s.sep.concat(i,this.sourceToken):s.sep.push(this.sourceToken);else if(We(s.start,"newline"))Object.assign(s,{key:null,sep:[this.sourceToken]});else{let o=it(s.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else s.sep?s.value||n?t.items.push({start:i,key:null,sep:[this.sourceToken]}):We(s.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):s.sep.push(this.sourceToken):Object.assign(s,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);n||s.value?(t.items.push({start:i,key:o,sep:[]}),this.onKeyLine=!0):s.sep?this.stack.push(o):(Object.assign(s,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(t);if(o){if(o.type==="block-seq"){if(!s.explicitKey&&s.sep&&!We(s.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else r&&t.items.push({start:i});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let s=t.items[t.items.length-1];switch(this.type){case"newline":if(s.value){let r="end"in s.value?s.value.end:void 0;(Array.isArray(r)?r[r.length-1]:void 0)?.type==="comment"?r?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(s.start,t.indent)){let n=t.items[t.items.length-2]?.value?.end;if(Array.isArray(n)){fs(n,s.start),n.push(this.sourceToken),t.items.pop();return}}s.start.push(this.sourceToken)}return;case"anchor":case"tag":if(s.value||this.indent<=t.indent)break;s.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;s.value||We(s.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return}if(this.indent>t.indent){let r=this.startBlockValue(t);if(r){this.stack.push(r);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let s=t.items[t.items.length-1];if(this.type==="flow-error-end"){let r;do yield*this.pop(),r=this.peek(1);while(r?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!s||s.sep?t.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return;case"map-value-ind":!s||s.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):Object.assign(s,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!s||s.value?t.items.push({start:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let n=this.flowScalar(this.type);!s||s.value?t.items.push({start:[],key:n,sep:[]}):s.sep?this.stack.push(n):Object.assign(s,{key:n,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let r=this.startBlockValue(t);r?this.stack.push(r):(yield*this.pop(),yield*this.step())}else{let r=this.peek(2);if(r.type==="block-map"&&(this.type==="map-value-ind"&&r.indent===t.indent||this.type==="newline"&&!r.items[r.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&r.type!=="flow-collection"){let n=us(r),i=it(n);Yr(t);let o=t.end.splice(1,t.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:i,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let s=this.source.indexOf(`
|
|
128
128
|
`)+1;for(;s!==0;)this.onNewLine(this.offset+s),s=this.source.indexOf(`
|
|
129
|
-
`,s)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let s=us(t),r=it(s);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let s=us(t),r=it(s);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,s){return this.type!=="comment"||this.indent<=s?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};function oi(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Ot||null,prettyErrors:t}}function Xr(e,t={}){let{lineCounter:s,prettyErrors:r}=oi(t),n=new Et(s?.addNewLine),i=new It(t),o=null;for(let a of i.compose(n.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Se(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&s&&(o.errors.forEach(Ds(e,s)),o.warnings.forEach(Ds(e,s))),o}function Qs(e,t,s){let r;typeof t=="function"?r=t:s===void 0&&t&&typeof t=="object"&&(s=t);let n=Xr(e,s);if(!n)return null;if(n.warnings.forEach(i=>Gt(n.options.logLevel,i)),n.errors.length>0){if(n.options.logLevel!=="silent")throw n.errors[0];n.errors=[]}return n.toJS(Object.assign({reviver:r},s))}function zs(e,t,s){let r=null;if(typeof t=="function"||Array.isArray(t)?r=t:s===void 0&&t&&(s=t),typeof s=="string"&&(s=s.length),typeof s=="number"){let n=Math.round(s);s=n<1?void 0:n>8?{indent:8}:{indent:n}}if(e===void 0){let{keepUndefined:n}=s??t??{};if(!n)return}return me(e)&&!r?e.toString(s):new De(e,r,s).toString(s)}function nn(e){switch(e){case"ss":return"SS";case"ssr":return"SSR";case"vmess":return"VMess";case"vless":return"VLESS";case"trojan":return"Trojan";case"snell":return"Snell";case"http":return"HTTP";case"https":return"HTTPS";case"socks5":return"SOCKS5";case"wireguard":return"WireGuard";case"hysteria":return"Hysteria";case"hysteria2":return"Hysteria2";case"tuic":return"TUIC";case"anytls":return"AnyTLS";default:return"Unknown"}}var P={anytls:"AnyTLSProvider",http:"HTTPProvider",hysteria:"HysteriaProvider",hysteria2:"Hysteria2Provider",snell:"SnellProvider",socks:"SocksProvider",ss:"SSProvider",ssr:"SSRProvider",trojan:"TrojanProvider",tuic:"TUICProvider",v2ray:"V2RayProvider",wireguard:"WireGuardProvider"};function pe(){return{allowedIps:"0.0.0.0/0, ::/0",allowInsecure:void 0,alpn:[],alterId:0,authStr:"",ca:"",caStr:"",clientId:"",congestionControl:"",cwnd:0,disableMtuDiscovery:void 0,dnsServers:[],down:"",downSpeed:0,edge:"",encryptMethod:"",fakeType:"",fingerprint:"",flow:"",group:"",groupId:0,hopInterval:0,host:"",hostname:"",id:0,keepAlive:0,mtu:0,obfs:"",obfsParam:"",password:"",path:"",plugin:"",pluginOption:"",port:0,ports:"",preSharedKey:"",privateKey:"",protocol:"",protocolParam:"",publicKey:"",quicSecret:"",quicSecure:"",recvWindow:0,recvWindowConn:0,remark:"",selfIp:"",selfIpv6:"",serverName:"",shortId:"",snellVersion:0,sni:"",tcpFastOpen:void 0,testUrl:"",tls13:void 0,tlsSecure:!1,transferProtocol:"",type:"unknown",udp:void 0,underlyingProxy:"",up:"",upSpeed:0,userId:"",username:""}}var on=(e=>(e.Clash="clash",e.ClashR="clashr",e.Surge="surge",e.Surfboard="surfboard",e.QuantumultX="quanx",e.Quantumult="quan",e.Loon="loon",e.Mellow="mellow",e.V2Ray="v2ray",e.Trojan="trojan",e.SSD="ssd",e.SSC="ss",e.SSSub="sssub",e.SSR="ssr",e.SingBox="singbox",e.Mixed="mixed",e.NodeList="nodelist",e.Auto="auto",e))(on||{});function an(){return{addEmoji:!1,appendProxyType:!1,authorized:!1,autoCountry:!1,clashClassicalRuleset:!1,clashFlavor:"mihomo",clashNewFieldName:!0,clashProxiesStyle:"flow",clashProxyGroupsStyle:"flow",clashScript:!1,countryResolver:void 0,dedupe:!1,emojiArray:[],enableRuleGenerator:!0,excludeCountries:[],excludeRemarks:[],expandRulesets:!0,filterDeprecated:!1,includeCountries:[],includeRemarks:[],managedConfigPrefix:"",nameRegexArray:[],nameRemove:[],nodeList:!1,overwriteOriginalRules:!0,quanxDevId:"",removeEmoji:!1,renameArray:[],skipCertVerify:void 0,sortFlag:!1,sortScript:"",surgeSsrPath:"",templateVars:{},tfo:void 0,tls13:void 0,udp:void 0}}var xs="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var ds={};for(let e=0;e<xs.length;e+=1)ds[xs[e]]=e;ds["-"]=62;ds._=63;function ci(e){return new TextEncoder().encode(e)}function li(e){return new TextDecoder("utf-8",{fatal:!1}).decode(e)}function ui(e,t){let s=ci(e),r="";for(let n=0;n<s.length;n+=3){let i=s[n],o=n+1<s.length?s[n+1]:0,a=n+2<s.length?s[n+2]:0,c=i<<16|o<<8|a;r+=t[c>>18&63],r+=t[c>>12&63],r+=n+1<s.length?t[c>>6&63]:"=",r+=n+2<s.length?t[c&63]:"="}return r}function fi(e){let s=e.replace(/\s+/g,"").replace(/=+$/,""),r=[],n=0,i=0;for(let o of s){let a=ds[o];a!==void 0&&(n=n<<6|a,i+=6,i>=8&&(i-=8,r.push(n>>i&255)))}return Uint8Array.from(r)}function cn(e){return ui(e,xs)}function ln(e){return li(fi(e))}function ne(e){return ln(e)}function L(e){return e.replace(/^\s+|\s+$/g,"")}function W(e){if(e==null)return 0;if(typeof e=="number")return Number.isFinite(e)?Math.trunc(e):0;let t=/[+-]?\d+/.exec(e);if(!t)return 0;let s=Number.parseInt(t[0],10);return Number.isNaN(s)?0:s}function x(e,t){return e.startsWith(t)}function Qr(e,t){if(t==="")return 0;let s=0,r=e.indexOf(t);for(;r!==-1;)s+=1,r=e.indexOf(t,r+t.length);return s}function Q(e,t,s=!1){let r=e.split(t);return s?r.filter(n=>n!==""):r}function un(e){let t=e.split(".");return t.length!==4?!1:t.every(s=>/^\d{1,3}$/.test(s)&&Number(s)<=255)}function fn(e){return/^\[?[0-9A-Fa-f:]{2,}\]?$/.test(e)&&e.includes(":")}function U(e){try{return decodeURIComponent(e)}catch{return e.replace(/%([0-9A-Fa-f]{2})/g,(t,s)=>String.fromCharCode(Number.parseInt(s,16)))}}function zr(e){return e.toLowerCase().replace(/_/g,"-")}function pi(e,t){if(e==="")return[];let s=e.split("#",1)[0],r=s.indexOf("?"),n=r>=0?s.slice(r+1):s,i=n.startsWith("?")?n.slice(1):n,o=[],a=zr(t);for(let c of i.split("&")){if(c==="")continue;let u=c.indexOf("="),p=u>=0?c.slice(0,u):c;zr(U(p))===a&&o.push(U(u>=0?c.slice(u+1):""))}return o}function k(e,t){let s=pi(e,t);return s.length>0?s[s.length-1].trim():""}function di(e){let t=0xcbf29ce484222325n,s=0x100000001b3n;for(let r of e)t^=BigInt(r.codePointAt(0)),t=BigInt.asUintN(64,t*s);return t}function hi(e){return di(e).toString(16)}var sp=new Set(Object.values(on));var rp=1024**3/1e3**3;var mi=["2022-blake3-aes-128-gcm","2022-blake3-aes-256-gcm","2022-blake3-chacha20-poly1305","2022-blake3-chacha12-poly1305","2022-blake3-chacha8-poly1305","aes-128-cfb","aes-128-ctr","aes-128-gcm","aes-192-cfb","aes-192-ctr","aes-192-gcm","aes-256-cfb","aes-256-ctr","aes-256-gcm","bf-cfb","camellia-128-cfb","camellia-192-cfb","camellia-256-cfb","chacha20","chacha20-ietf","chacha20-ietf-poly1305","rc4-md5","salsa20","xchacha20-ietf-poly1305"];function pn(e){return mi.includes(e.toLowerCase())}function hs(e,t,s){return pn(e)&&(t===""||t==="plain")&&(s===""||s==="origin")}function ue(e,t,s,r,n,i,o,a,c,u,p){e.type=t,e.group=s,e.remark=r,e.hostname=n,e.underlyingProxy=p,e.port=W(i),e.udp=o,e.tcpFastOpen=a,e.allowInsecure=c,e.tls13=u}function Ie(e,t){let{add:s,aid:r=0,cipher:n="",edge:i="",group:o,host:a="",id:c="",net:u="",path:p="",port:f,remark:l,scv:h,sni:g="",tfo:d,tls:m="",tls13:v,type:b="",udp:S,underlyingProxy:$=""}=t;ue(e,"vmess",o,l,s,f,S,d,h,v,$),e.userId=c===""?"00000000-0000-0000-0000-000000000000":c,e.alterId=W(r),e.encryptMethod=n,e.transferProtocol=u===""?"tcp":u,e.edge=i,e.serverName=g,u==="quic"?(e.quicSecure=a,e.quicSecret=p):(e.host=a===""&&!un(s)&&!fn(s)?s:L(a),e.path=p===""?"/":L(p)),e.fakeType=b,e.tlsSecure=m==="tls"}function Je(e,t){ue(e,"ssr",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.password=t.password,e.encryptMethod=t.method,e.protocol=t.protocol,e.protocolParam=t.protocolParam??"",e.obfs=t.obfs,e.obfsParam=t.obfsParam??""}function ae(e,t){ue(e,"ss",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,t.tls13,t.underlyingProxy??""),e.password=t.password,e.encryptMethod=t.method,e.plugin=t.plugin??"",e.pluginOption=t.pluginOption??""}function ot(e,t){ue(e,"socks5",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.username=t.username??"",e.password=t.password??""}function at(e,t){ue(e,t.tls?"https":"http",t.group,t.remark,t.server,t.port,void 0,t.tfo,t.scv,t.tls13,t.underlyingProxy??""),e.username=t.username??"",e.password=t.password??"",e.tlsSecure=t.tls}function Nt(e,t){ue(e,"trojan",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,t.tls13,t.underlyingProxy??""),e.password=t.password,e.host=t.host??"",e.tlsSecure=t.tlsSecure??!0,e.transferProtocol=t.network===void 0||t.network===""?"tcp":t.network,e.path=t.path??"",e.serverName=t.sni??""}function ms(e,t){ue(e,"snell",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.password=t.password,e.obfs=t.obfs??"",e.host=t.host??"",e.snellVersion=t.version??0}function gs(e,t){ue(e,"anytls",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.tlsSecure=!0,e.password=t.password,e.sni=t.sni??""}function sr(e,t){ue(e,"wireguard",t.group,t.remark,t.server,t.port,t.udp,void 0,void 0,void 0,t.underlyingProxy??""),e.selfIp=t.selfIp??"",e.selfIpv6=t.selfIpv6??"",e.privateKey=t.privateKey??"",e.publicKey=t.publicKey??"",e.preSharedKey=t.preSharedKey??"",e.dnsServers=t.dnsServers??[],e.mtu=W(t.mtu),e.keepAlive=W(t.keepAlive),e.testUrl=t.testUrl??"",e.clientId=t.clientId??""}function dn(e,t){ue(e,"hysteria",t.group,t.remark,t.server,t.port,void 0,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.ports=t.ports??"",e.protocol=t.protocol??"",e.obfsParam=t.obfsProtocol??"";let s=t.up??"";s!==""&&(s.length>4&&s.endsWith("bps")?e.up=s:W(s)&&(e.upSpeed=W(s),e.up=`${s} Mbps`)),t.upSpeed&&(e.upSpeed=W(t.upSpeed));let r=t.down??"";r!==""&&(r.length>4&&r.endsWith("bps")?e.down=r:W(r)&&(e.downSpeed=W(r),e.down=`${r} Mbps`)),t.downSpeed&&(e.downSpeed=W(t.downSpeed)),e.authStr=t.authStr??"",t.auth&&(e.authStr=ln(t.auth)),e.tlsSecure=!0,e.obfs=t.obfs??"",e.sni=t.sni??"",e.fingerprint=t.fingerprint??"",e.ca=t.ca??"",e.caStr=t.caStr??"",e.recvWindowConn=W(t.recvWindowConn),e.recvWindow=W(t.recvWindow),e.disableMtuDiscovery=t.disableMtuDiscovery?t.disableMtuDiscovery==="true":void 0,e.hopInterval=W(t.hopInterval),t.alpn&&(e.alpn=[t.alpn])}function hn(e,t){ue(e,"hysteria2",t.group,t.remark,t.server,t.port,void 0,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.tlsSecure=!0,e.upSpeed=W(t.up),e.downSpeed=W(t.down),e.ports=t.ports??"",e.password=t.password??"",e.obfs=t.obfs??"",e.obfsParam=t.obfsPassword??"",e.sni=t.sni??"",e.fingerprint=t.fingerprint??"",t.alpn&&(e.alpn=[t.alpn]),e.ca=t.ca??"",e.caStr=t.caStr??"",e.cwnd=W(t.cwnd),e.hopInterval=W(t.hopInterval)}function mn(e,t){ue(e,"vless",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.userId=t.userId,e.flow=t.flow??"",e.encryptMethod=t.encryption??"none",e.transferProtocol=t.network===void 0||t.network===""?"tcp":t.network,e.tlsSecure=t.tls==="tls"||t.tls==="reality",e.serverName=t.sni??"",e.host=t.host??"",e.path=t.path??"",e.fingerprint=t.fingerprint??"",e.publicKey=t.publicKey??"",e.shortId=t.shortId??"",t.alpn&&(e.alpn=t.alpn)}function gn(e,t){ue(e,"tuic",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.tlsSecure=!0,e.userId=t.userId,e.password=t.password,e.congestionControl=t.congestionControl??"",e.serverName=t.sni??"",t.alpn&&(e.alpn=t.alpn)}function Zs(e){if(!(e==null||e===""))return String(e).toLowerCase()==="true"}function K(e){return e==null?"":String(e)}function yn(e,t){let s;try{s=JSON.parse(ne(e.slice(8)))}catch{return}if(s===null||typeof s!="object")return;let r=K(s.Type),n=K(s.Group),i=K(s.Remark),o=K(s.Hostname),a=Zs(s.EnableUDP),c=Zs(s.EnableTFO),u=Zs(s.AllowInsecure),p=K(s.Port);if(p==="0"||p==="")return;let f=K(s.EncryptMethod),l=K(s.Password);switch(i===""&&(i=`${o}:${p}`),r){case"SS":ae(t,{group:n===""?P.ss:n,method:f,password:l,plugin:K(s.Plugin),pluginOption:K(s.PluginOption),port:p,remark:i,scv:u,server:o,tfo:c,udp:a});break;case"SSR":{let h=K(s.Protocol),g=K(s.OBFS);hs(f,g,h)?ae(t,{group:n===""?P.ss:n,method:f,password:l,plugin:K(s.Plugin),pluginOption:K(s.PluginOption),port:p,remark:i,scv:u,server:o,tfo:c,udp:a}):Je(t,{group:n===""?P.ssr:n,method:f,obfs:g,obfsParam:K(s.OBFSParam),password:l,port:p,protocol:h,protocolParam:K(s.ProtocolParam),remark:i,scv:u,server:o,tfo:c,udp:a});break}case"VMess":Ie(t,{add:o,aid:K(s.AlterID),cipher:f,edge:K(s.Edge),group:n===""?P.v2ray:n,host:K(s.Host),id:K(s.UserID),net:K(s.TransferProtocol),path:K(s.Path),port:p,remark:i,scv:u,sni:K(s.ServerName),tfo:c,tls:K(s.TLSSecure),type:K(s.FakeType),udp:a});break;case"Socks5":ot(t,{group:n===""?P.socks:n,password:l,port:p,remark:i,scv:u,server:o,tfo:c,udp:a,username:K(s.Username)});break;case"HTTP":case"HTTPS":at(t,{group:n===""?P.http:n,password:l,port:p,remark:i,scv:u,server:o,tfo:c,tls:r==="HTTPS"});break;case"Trojan":Nt(t,{group:n===""?P.trojan:n,host:K(s.Host),network:K(s.TransferProtocol),password:l,path:K(s.Path),port:p,remark:i,scv:u,server:o,tfo:c,tlsSecure:K(s.TLSSecure)==="true",udp:a});break;case"Snell":ms(t,{group:n===""?P.snell:n,host:K(s.Host),obfs:K(s.OBFS),password:l,port:p,remark:i,scv:u,server:o,tfo:c,udp:a,version:W(K(s.SnellVersion))});break;default:break}}function y(e){return e==null?"":String(e)}function ps(e){return typeof e=="boolean"?e:y(e).toLowerCase()==="true"}function H(e){if(!(e==null||e===""))return ps(e)}function w(e,t){return e!==null&&typeof e=="object"?e[t]:void 0}function gi(e,t){let s=w(e,"proxies")!==void 0?"proxies":"Proxy",r=w(e,s);if(!Array.isArray(r))return;let n=t.length;for(let i of r)try{yi(i,t,n)&&(n+=1)}catch{}}function yi(e,t,s){let r=y(w(e,"type")).toLowerCase(),n=y(w(e,"name")),i=y(w(e,"server")),o=y(w(e,"port")),a=y(w(e,"underlying-proxy"));if(a===""&&(a=y(w(e,"dialer-proxy"))),o===""||o==="0")return!1;let c=H(w(e,"udp")),u=H(w(e,"fast-open")),p=H(w(e,"skip-cert-verify")),f=pe(),l="";switch(r){case"vmess":{l=P.v2ray;let h=y(w(e,"uuid")),g=y(w(e,"alterId")),d=y(w(e,"cipher")),m=w(e,"network")!==void 0?y(w(e,"network")):"tcp",v=y(w(e,"servername")),b="",S="",$="";switch(m){case"http":b=y(w(w(w(e,"http-opts"),"path"),0)),S=y(w(w(w(w(e,"http-opts"),"headers"),"Host"),0)),$="";break;case"ws":if(w(e,"ws-opts")!==void 0){let O=w(e,"ws-opts");b=w(O,"path")!==void 0?y(w(O,"path")):"/",S=y(w(w(O,"headers"),"Host")),$=y(w(w(O,"headers"),"Edge"))}else b=w(e,"ws-path")!==void 0?y(w(e,"ws-path")):"/",S=y(w(w(e,"ws-headers"),"Host")),$=y(w(w(e,"ws-headers"),"Edge"));break;case"h2":b=y(w(w(e,"h2-opts"),"path")),S=y(w(w(w(e,"h2-opts"),"host"),0)),$="";break;case"grpc":S=y(w(e,"servername")),b=y(w(w(e,"grpc-opts"),"grpc-service-name")),$="";break;default:break}let I=ps(w(e,"tls"))?"tls":"";Ie(f,{add:i,aid:g,cipher:d,edge:$,group:l,host:S,id:h,net:m,path:b,port:o,remark:n,scv:p,sni:v,tfo:u,tls:I,type:"",udp:c,underlyingProxy:a});break}case"ss":{l=P.ss;let h=y(w(e,"cipher")),g=y(w(e,"password")),d="",m="",v="",b="",S="",$="",I="";if(w(e,"plugin")!==void 0){let O=y(w(e,"plugin")).toLowerCase(),E=w(e,"plugin-opts");O==="obfs"?(d="obfs-local",v=y(w(E,"mode")),b=y(w(E,"host"))):O==="v2ray-plugin"&&(d="v2ray-plugin",v=y(w(E,"mode")),b=y(w(E,"host")),$=ps(w(E,"tls"))?"tls;":"",I=y(w(E,"path")),S=ps(w(E,"mux"))?"mux=4;":"")}else w(e,"obfs")!==void 0&&(d="obfs-local",v=y(w(e,"obfs")),b=y(w(e,"obfs-host")));d==="simple-obfs"||d==="obfs-local"?(m=`obfs=${v}`,m+=b===""?"":`;obfs-host=${b}`):d==="v2ray-plugin"&&(m=`mode=${v};${$}${S}`,b!==""&&(m+=`host=${b};`),I!==""&&(m+=`path=${I};`),S!==""&&(m+=`mux=${S};`)),h==="AEAD_CHACHA20_POLY1305"?h="chacha20-ietf-poly1305":h.includes("AEAD")&&(h=h.replace(/AEAD_/g,"").replace(/_/g,"-").toLowerCase()),ae(f,{group:l,method:h,password:g,plugin:d,pluginOption:m,port:o,remark:n,scv:p,server:i,tfo:u,udp:c,underlyingProxy:a});break}case"socks5":{l=P.socks;let h=y(w(e,"username")),g=y(w(e,"password"));ot(f,{group:l,password:g,port:o,remark:n,server:i,underlyingProxy:a,username:h});break}case"ssr":{l=P.ssr;let h=y(w(e,"cipher"));h==="dummy"&&(h="none");let g=y(w(e,"password")),d=y(w(e,"protocol")),m=y(w(e,"obfs")),v=w(e,"protocol-param")!==void 0?y(w(e,"protocol-param")):y(w(e,"protocolparam")),b=w(e,"obfs-param")!==void 0?y(w(e,"obfs-param")):y(w(e,"obfsparam"));Je(f,{group:l,method:h,obfs:m,obfsParam:b,password:g,port:o,protocol:d,protocolParam:v,remark:n,scv:p,server:i,tfo:u,udp:c,underlyingProxy:a});break}case"http":{l=P.http;let h=y(w(e,"username")),g=y(w(e,"password")),d=y(w(e,"tls"));at(f,{group:l,password:g,port:o,remark:n,scv:p,server:i,tfo:u,tls:d==="true",underlyingProxy:a,username:h});break}case"trojan":{l=P.trojan;let h=y(w(e,"password")),g=y(w(e,"sni")),d=y(w(e,"network")),m="";switch(d){case"grpc":m=y(w(w(e,"grpc-opts"),"grpc-service-name"));break;case"ws":m=y(w(w(e,"ws-opts"),"path"));break;default:d="tcp",m="";break}Nt(f,{group:l,host:g,network:d,password:h,path:m,port:o,remark:n,scv:p,server:i,tfo:u,tlsSecure:!0,udp:c,underlyingProxy:a});break}case"snell":{l=P.snell;let h=y(w(e,"psk")),g=y(w(w(e,"obfs-opts"),"mode")),d=y(w(w(e,"obfs-opts"),"host")),m=y(w(e,"version"));ms(f,{group:l,host:d,obfs:g,password:h,port:o,remark:n,scv:p,server:i,tfo:u,udp:c,underlyingProxy:a,version:W(m)});break}case"wireguard":{l=P.wireguard;let h=y(w(e,"public-key")),g=y(w(e,"private-key")),d=w(e,"dns"),m=Array.isArray(d)?d.map(I=>String(I)):d?[String(d)]:[],v=y(w(e,"mtu")),b=y(w(e,"preshared-key")),S=y(w(e,"ip")),$=y(w(e,"ipv6"));sr(f,{dnsServers:m,group:l,keepAlive:"0",mtu:v,port:o,preSharedKey:b,privateKey:g,publicKey:h,remark:n,selfIp:S,selfIpv6:$,server:i,testUrl:"",udp:c,underlyingProxy:a});break}case"hysteria":{l=P.hysteria;let h=y(w(e,"ports")),g=y(w(e,"protocol")),d=y(w(e,"obfs-protocol")),m=y(w(e,"up")),v=y(w(e,"up-speed")),b=y(w(e,"down")),S=y(w(e,"down-speed")),$=y(w(e,"auth")),I=y(w(e,"auth-str"));I===""&&(I=y(w(e,"auth_str")));let O=y(w(e,"obfs")),E=y(w(e,"sni")),A=y(w(e,"fingerprint")),_=w(e,"alpn"),q=Array.isArray(_)?y(_[0]):y(_),te=y(w(e,"ca")),N=y(w(e,"ca-str")),Y=y(w(e,"recv-window-conn")),V=y(w(e,"recv-window")),z=y(w(e,"disable-mtu-discovery"));z===""&&(z=y(w(e,"disable_mtu_discovery")));let ee=y(w(e,"hop-interval"));dn(f,{alpn:q,auth:$,authStr:I,ca:te,caStr:N,disableMtuDiscovery:z,down:b,downSpeed:S,fingerprint:A,group:l,hopInterval:ee,obfs:O,obfsProtocol:d,port:o,ports:h,protocol:g,recvWindow:V,recvWindowConn:Y,remark:n,scv:p,server:i,sni:E,tfo:u,underlyingProxy:a,up:m,upSpeed:v});break}case"hysteria2":{l=P.hysteria2;let h=y(w(e,"ports")),g=y(w(e,"up")),d=y(w(e,"down")),m=y(w(e,"password"));m===""&&(m=y(w(e,"auth")));let v=y(w(e,"obfs")),b=y(w(e,"obfs-password")),S=y(w(e,"sni")),$=y(w(e,"fingerprint")),I=w(e,"alpn"),O=Array.isArray(I)?y(I[0]):y(I),E=y(w(e,"ca")),A=y(w(e,"ca-str")),_=y(w(e,"cwnd")),q=y(w(e,"hop-interval"));hn(f,{alpn:O,ca:E,caStr:A,cwnd:_,down:d,fingerprint:$,group:l,hopInterval:q,obfs:v,obfsPassword:b,password:m,port:o,ports:h,remark:n,scv:p,server:i,sni:S,tfo:u,underlyingProxy:a,up:g});break}case"anytls":{l=P.anytls;let h=y(w(e,"password")),g=y(w(e,"sni"));gs(f,{group:l,password:h,port:o,remark:n,scv:p,server:i,sni:g,tfo:u,udp:c,underlyingProxy:a});break}case"vless":{l=P.v2ray;let h=y(w(e,"uuid")),g=y(w(e,"network")),d=y(w(e,"tls")),m="",v="";g==="ws"?(m=y(w(w(e,"ws-opts"),"path")),v=y(w(w(w(e,"ws-opts"),"headers"),"Host"))):g==="grpc"&&(m=y(w(w(e,"grpc-opts"),"grpc-service-name")));let b=w(e,"alpn");mn(f,{alpn:Array.isArray(b)?b.map(S=>String(S)):void 0,encryption:y(w(e,"encryption")),fingerprint:y(w(e,"client-fingerprint")),flow:y(w(e,"flow")),group:l,host:v,network:g,path:m,port:o,remark:n,scv:p,server:i,sni:y(w(e,"servername")),tfo:u,tls:d==="true"?"tls":"",udp:c,underlyingProxy:a,userId:h});break}case"tuic":{l=P.v2ray;let h=w(e,"alpn");gn(f,{alpn:Array.isArray(h)?h.map(g=>String(g)):void 0,congestionControl:y(w(e,"congestion-controller")),group:l,password:y(w(e,"password")),port:o,remark:n,scv:p,server:i,sni:y(w(e,"sni")),tfo:u,udp:c,underlyingProxy:a,userId:y(w(e,"uuid"))});break}default:return!1}return f.id=s,t.push(f),!0}function bi(e){let t=[],s=[],r;for(let n of e.split(/\r?\n/)){let i=n.trim(),o=/^\[(.*)\]$/.exec(i);if(o){r={lines:[],name:o[1].trim()},t.push(r);continue}i===""||i.startsWith("#")||i.startsWith(";")||(r?r.lines.push(i):s.push(i))}return s.length>0&&t.unshift({lines:s,name:"Proxy"}),t}function Zr(e,t){let s=[];for(let r of e)r.name===t&&s.push(...r.lines);return s}function wi(e,t,s){for(let r=t;r<e.length;r+=1){let n=L(e[r]),i=n.indexOf("=");i!==-1&&(s[L(n.slice(0,i))]=L(n.slice(i+1)))}}function xr(e,t){let s=e;s.includes("[Proxy]")&&(s=s.replace(/^[\s\S]*?\[/,"["));let r=bi(s),n=Zr(r,"Proxy");if(n.length===0)return!1;let i=t.length,o=t.length;for(let a of n){let c=/^(.*?)\s*=\s*(.*)$/.exec(a);if(!c)continue;let u=c[1],p=c[2],f=Q(p,",");if(f.length<3)continue;let l=pe(),h="",g="",d="",m="",v="",b="",S="",$="",I="",O="",E="tcp",A="",_="",q="",te="",N="",Y="1",V,z,ee,ws;switch(f[0].toLowerCase()){case"direct":case"reject":case"reject-tinygif":continue;case"custom":{if(f.length<5||(h=L(f[1]),g=L(f[2]),g==="0"))continue;d=L(f[3]),v=L(f[4]);for(let M=6;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="obfs"?(b="simple-obfs",$=T):R==="obfs-host"?I=T:R==="udp-relay"?V=H(T):R==="tfo"&&(z=H(T))}b!==""&&(S=`obfs=${$}`,S+=I===""?"":`;obfs-host=${I}`),ae(l,{group:P.ss,method:d,password:v,plugin:b,pluginOption:S,port:g,remark:u,scv:ee,server:h,tfo:z,udp:V});break}case"ss":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="encrypt-method"?d=T:R==="password"?v=T:R==="obfs"?(b="simple-obfs",$=T):R==="obfs-host"?I=T:R==="udp-relay"?V=H(T):R==="tfo"&&(z=H(T))}b!==""&&(S=`obfs=${$}`,S+=I===""?"":`;obfs-host=${I}`),ae(l,{group:P.ss,method:d,password:v,plugin:b,pluginOption:S,port:g,remark:u,scv:ee,server:h,tfo:z,udp:V});break}case"socks5":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;f.length>=5&&(m=L(f[3]),v=L(f[4]));for(let M=5;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="udp-relay"?V=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"&&(ee=H(T))}ot(l,{group:P.socks,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,udp:V,username:m});break}case"vmess":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;E="tcp",d="auto";for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);switch(R){case"username":O=T;break;case"ws":E=T==="true"?"ws":"tcp";break;case"tls":A=T==="true"?"tls":"";break;case"ws-path":te=T;break;case"obfs-host":_=T;break;case"ws-headers":{let Ct=Q(T,"|");for(let We of Ct){let Le=Q(L(We),":");Le.length===2&&(/host/i.test(Le[0])?_=er(Le[1]):/edge/i.test(Le[0])&&(q=er(Le[1])))}break}case"udp-relay":V=H(T);break;case"tfo":z=H(T);break;case"skip-cert-verify":ee=H(T);break;case"tls13":ws=H(T);break;case"vmess-aead":Y=T==="true"?"0":"1";break;default:break}}Ie(l,{add:h,aid:Y,cipher:d,edge:q,group:P.v2ray,host:_,id:O,net:E,path:te,port:g,remark:u,scv:ee,tfo:z,tls:A,tls13:ws,udp:V});break}case"http":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="username"?m=T:R==="password"?v=T:R==="skip-cert-verify"&&(ee=H(T))}at(l,{group:P.http,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,tls:!1,username:m});break}case"trojan":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);R==="password"?v=T:R==="sni"?_=T:R==="udp-relay"?V=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"&&(ee=H(T))}Nt(l,{group:P.trojan,host:_,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,tlsSecure:!0,udp:V});break}case"snell":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);R==="psk"?v=T:R==="obfs"?b=T:R==="obfs-host"?_=T:R==="udp-relay"?V=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"?ee=H(T):R==="version"&&(N=T)}ms(l,{group:P.snell,host:_,obfs:b,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,udp:V,version:W(N)});break}case"wireguard":{let M="",j="";for(let We=1;We<f.length;We+=1){let Le=Q(L(f[We]),"=");if(Le.length!==2)continue;let rr=L(Le[0]),nr=L(Le[1]);rr==="section-name"?M=nr:rr==="test-url"&&(j=nr)}if(M==="")continue;let R=Zr(r,`WireGuard ${M}`);if(R.length===0)continue;let T={};wi(R,0,T);let Ct=[];if(T["dns-server"])for(let We of Q(T["dns-server"],","))Ct.push(L(We));sr(l,{dnsServers:Ct,group:P.wireguard,keepAlive:T.keepalive??"",mtu:T.mtu??"",port:"0",privateKey:T["private-key"]??"",remark:u,selfIp:T["self-ip"]??"",selfIpv6:T["self-ip-v6"]??"",server:"",testUrl:j,udp:V}),Si(l,T.peer??"");break}case"anytls":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);R==="password"?v=T:R==="sni"?_=T:R==="udp-relay"?V=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"&&(ee=H(T))}gs(l,{group:P.anytls,password:v,port:g,remark:u,scv:ee,server:h,sni:_,tfo:z,udp:V});break}default:{if(!vi(u,f,l,{scv:ee,tfo:z,tls13:ws,udp:V}))continue;break}}l.id=o,t.push(l),o+=1}return t.length>i}function vi(e,t,s,r){let n=e.toLowerCase(),i=t[0],o=i.lastIndexOf(":"),a=L(i.slice(0,o)),c=L(i.slice(o+1));if(c==="0")return!1;let u="",p="",f="",l="",h="",g="",d="",m="",v="",b="",S="",$="tcp",I="",O="1",E=e,A=r.udp,_=r.tfo,q=r.scv,te=r.tls13,N={};for(let Y=1;Y<t.length;Y+=1){let V=Q(L(t[Y]),"=");V.length===2&&(N[L(V[0])]=L(V[1]))}if(n==="shadowsocks"){if(u=N.method??"",p=N.password??"",N.tag&&(E=N.tag),v=N["ssr-protocol"]??"",b=N["ssr-protocol-param"]??"",N.obfs){let V=N.obfs;V==="http"||V==="tls"?(g="simple-obfs",d=V):V==="wss"||V==="ws"?(V==="wss"&&(S="tls"),d="websocket",g="v2ray-plugin"):d=V}m=N["obfs-host"]??"",h=N["obfs-uri"]??"",E===""&&(E=`${a}:${c}`);let Y="";return g==="simple-obfs"?(Y=`obfs=${d}`,m!==""&&(Y+=`;obfs-host=${m}`)):g==="v2ray-plugin"&&(m===""&&!/^\d+(\.\d+){3}$/.test(a)&&!a.includes(":")&&(m=a),Y=`mode=${d}`,m!==""&&(Y+=`;host=${m}`),h!==""&&(Y+=`;path=${h}`),Y+=`;${S}`),v!==""?Je(s,{group:P.ssr,method:u,obfs:d,obfsParam:m,password:p,port:c,protocol:v,protocolParam:b,remark:E,scv:q,server:a,tfo:_,udp:A}):ae(s,{group:P.ss,method:u,password:p,plugin:g,pluginOption:Y,port:c,remark:E,scv:q,server:a,tfo:_,tls13:te,udp:A}),!0}if(n==="vmess"){if($="tcp",u=N.method??"",I=N.password??"",N.tag&&(E=N.tag),N.obfs){let Y=N.obfs;Y==="ws"?$="ws":Y==="over-tls"?S="tls":Y==="wss"&&($="ws",S="tls")}return l=N["obfs-host"]??"",h=N["obfs-uri"]??"",N["over-tls"]&&(S=N["over-tls"]==="true"?"tls":""),N.aead&&(O=N.aead==="true"?"0":"1"),E===""&&(E=`${a}:${c}`),Ie(s,{add:a,aid:O,cipher:u,group:P.v2ray,host:l,id:I,net:$,path:h,port:c,remark:E,scv:q,tfo:_,tls:S,tls13:te,udp:A}),!0}return n==="trojan"?(p=N.password??"",N.tag&&(E=N.tag),N["over-tls"]&&(S=N["over-tls"]),l=N["tls-host"]??"",N["tls-verification"]==="false"&&(q=!0),E===""&&(E=`${a}:${c}`),Nt(s,{group:P.trojan,host:l,password:p,port:c,remark:E,scv:q,server:a,tfo:_,tls13:te,tlsSecure:S==="true",udp:A}),!0):n==="http"?(f=N.username??"",p=N.password??"",N.tag&&(E=N.tag),N["over-tls"]&&(S=N["over-tls"]),N["tls-verification"]==="false"&&(q=!0),E===""&&(E=`${a}:${c}`),f==="none"&&(f=""),p==="none"&&(p=""),at(s,{group:P.http,password:p,port:c,remark:E,scv:q,server:a,tfo:_,tls:S==="true",tls13:te,username:f}),!0):n==="anytls"?(p=N.password??"",N.tag&&(E=N.tag),l=N.sni??"",N["tls-verification"]==="false"&&(q=!0),E===""&&(E=`${a}:${c}`),gs(s,{group:P.anytls,password:p,port:c,remark:E,scv:q,server:a,sni:l,tfo:_,udp:A}),!0):!1}function er(e){let t=L(e);return(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))&&(t=t.slice(1,-1)),t}function Si(e,t){let s=[...t.matchAll(/\((.*?)\)/g)].map(i=>i[1]);if(s.length===0)return;let n=[...s[0].matchAll(/([a-z-]+)\s?=\s?([^" ),]+|".*?"),?\s?/g)];for(let i of n){let o=i[1],a=i[2];switch(o){case"public-key":e.publicKey=a;break;case"endpoint":{let c=a.lastIndexOf(":");e.hostname=a.slice(0,c),e.port=W(a.slice(c+1));break}case"client-id":e.clientId=a;break;case"allowed-ips":e.allowedIps=er(a);break;default:break}}}function ki(e,t){try{let s=Qs(e);if(s&&typeof s=="object"&&(w(s,"Proxy")!==void 0||w(s,"proxies")!==void 0))return gi(s,t),!0}catch{return!1}return!1}function $i(e,t){if(e.includes('"version"'))Ii(e,t);else if(e.includes('"serverSubscribes"'))en(e,t);else if(e.includes('"uiItem"')||e.includes("vnext"))Oi(e,t);else if(e.includes('"proxy_apps"'))Ai(e,t);else if(e.includes('"idInUse"'))Ei(e,t);else if(e.includes('"local_address"')&&e.includes('"local_port"'))en(e,t);else if(e.includes('"ModeFileNameType"'))Ni(e,t);else return!1;return t.length>0}function Ii(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object")return;let r="version"in s&&"servers"in s?"servers":"configs";if(!(r in s))return;let n=y(s.remarks),i=s[r];if(!Array.isArray(i))return;let o=t.length;for(let a of i){let c=y(a.remarks),u=y(a.server_port);if(u==="0")continue;let p=y(a.server),f=pe();ae(f,{group:n,method:y(a.method),password:y(a.password),plugin:y(a.plugin),pluginOption:y(a.plugin_opts),port:u,remark:c===""?`${p}:${u}`:c,server:p}),f.id=o,t.push(f),o+=1}}function Ai(e,t){let s;try{s=JSON.parse(`{"nodes":${e}}`)}catch{return}if(s===null||typeof s!="object"||!Array.isArray(s.nodes))return;let r=t.length;for(let n of s.nodes){let i=y(n.server);if(i==="")continue;let o=y(n.server_port);if(o==="0"||o==="")continue;let a=y(n.remarks),c=pe();ae(c,{group:P.ss,method:y(n.method),password:y(n.password),plugin:y(n.plugin),pluginOption:y(n.plugin_opts),port:o,remark:a===""?`${i}:${o}`:a,server:i}),c.id=r,t.push(c),r+=1}}function en(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object")return;let r=t.length;if("local_port"in s&&"local_address"in s){let i=pe(),o=y(s.server),a=y(s.server_port),c=`${o}:${a}`,u=y(s.method),p=y(s.obfs),f=y(s.protocol),l=y(s.password);hs(u,p,f)?ae(i,{group:P.ss,method:u,password:l,plugin:y(s.plugin),pluginOption:y(s.plugin_opts),port:a,remark:c,server:o}):Je(i,{group:P.ssr,method:u,obfs:p,obfsParam:y(s.obfs_param),password:l,port:a,protocol:f,protocolParam:y(s.protocol_param),remark:c,server:o}),i.id=r,t.push(i);return}let n=s.configs??[];if(Array.isArray(n))for(let i of n){let o=y(i.group)===""?P.ssr:y(i.group),a=y(i.server),c=y(i.server_port);if(c==="0"||c==="")continue;let u=y(i.remarks)===""?`${a}:${c}`:y(i.remarks),p=pe();Je(p,{group:o,method:y(i.method),obfs:y(i.obfs),obfsParam:y(i.obfsparam),password:y(i.password),port:c,protocol:y(i.protocol),protocolParam:y(i.protocolparam),remark:u,server:a}),p.id=r,t.push(p),r+=1}}function Oi(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object")return;let r=t.length;if("outbounds"in s){let a=s.outbounds;if(Array.isArray(a)&&a.length>0&&a[0]?.settings?.vnext?.length>0){let c=a[0].settings.vnext[0],u=y(c.address),p=y(c.port);if(p==="0")return;let f=c.users,l=Array.isArray(f)&&f.length?y(f[0].id):"",h=Array.isArray(f)&&f.length?y(f[0].alterId):"",g=Array.isArray(f)&&f.length?y(f[0].security):"",d=a[0].streamSettings??{},m=y(d.network),v=y(d.security),b="",S="",$="",I="";if(m==="ws"){let A=d.wsSettings??{};b=y(A.path),A.headers&&(S=y(A.headers.Host),$=y(A.headers.Edge))}let O=d.tcpSettings;O&&O.header&&(I=y(O.header.type),I==="http"&&O.header.request&&(Array.isArray(O.header.request.path)&&O.header.request.path.length&&(b=y(O.header.request.path[0])),O.header.request.headers&&(S=y(O.header.request.headers.Host),$=y(O.header.request.headers.Edge))));let E=pe();Ie(E,{add:u,aid:h,cipher:g,edge:$,group:P.v2ray,host:S,id:l,net:m,path:b,port:p,remark:`${u}:${p}`,tls:v,type:I}),t.push(E)}return}let n=new Map,i=s.subItem??[];for(let a of i)n.set(y(a.id),y(a.remarks));let o=s.vmess??[];for(let a of o){if(a.address===null||a.address===void 0||a.port===null||a.id===null)continue;let c=y(a.remarks),u=y(a.address),p=y(a.port);if(p==="0"||p==="")continue;let f=y(a.subid),l="";f!==""&&(l=n.get(f)??""),c===""&&(c=`${u}:${p}`);let h=H(a.allowInsecure),g=W(a.configType),d=pe();if(g===1)Ie(d,{add:u,aid:y(a.alterId),cipher:y(a.security),group:l||P.v2ray,host:y(a.requestHost),id:y(a.id),net:y(a.network),path:y(a.path),port:p,remark:c,scv:h,sni:y(a.sni),tls:y(a.streamSecurity),type:y(a.headerType)});else if(g===3)ae(d,{group:l||P.ss,method:y(a.security),password:y(a.id),port:p,remark:c,scv:h,server:u});else if(g===4)ot(d,{group:l||P.socks,port:p,remark:c,scv:h,server:u});else continue;d.id=r,t.push(d),r+=1}}function Ei(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object"||!Array.isArray(s.configs))return;let r=t.length;for(let n of s.configs){let i=y(n.group),o=y(n.server),a=y(n.server_port);if(a==="0"||a==="")continue;let c=y(n.remarks)===""?`${o}:${a}`:y(n.remarks),u=y(n.password),p=pe(),f=W(n.type);if(f===5)ot(p,{group:i,password:u,port:a,remark:c,server:o,username:y(n.username)});else if(f===6){let l=y(n.protocol),h=y(n.obfs),g=y(n.method);hs(g,h,l)?ae(p,{group:i,method:g,password:u,port:a,remark:c,server:o}):Je(p,{group:i,method:g,obfs:h,obfsParam:y(n.obfsparam),password:u,port:a,protocol:l,protocolParam:y(n.protocolparam),remark:c,server:o})}else continue;p.id=r,t.push(p),r+=1}}function Ni(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object"||!Array.isArray(s.Server))return;let r=t.length;for(let n of s.Server){let i=pe();yn(`Netch://${cn(JSON.stringify(n))}`,i),i.id=r,t.push(i),r+=1}}function Ci(e){return e.startsWith("http://")||e.startsWith("https://")}function Te(e,t){let s=new RegExp(t).exec(e);return s?s.slice():null}function Pi(e,t){if(/^vmess:\/\/[A-Za-z0-9-_]+\?.*/.test(e)){Li(e,t);return}if(/^vmess:\/\/.*?@.*/.test(e)){Ti(e,t);return}if(/^vmess1:\/\/.*?\?.*/.test(e)){Ri(e,t);return}let s=ne(e.replace(/(vmess|vmess1):\/\//,""));if(/.*?\s=\s.*/.test(s)){_i(s,t);return}let r;try{let m=JSON.parse(s);if(m===null||typeof m!="object")return;r=m}catch{return}let n="1";r.v!==void 0&&(n=String(r.v));let i=String(r.ps??""),o=String(r.add??""),a=String(r.port??"");if(a==="0"||a==="")return;let c=String(r.type??""),u=String(r.id??""),p=String(r.aid??""),f=String(r.net??""),l=String(r.tls??""),h=String(r.host??""),g=String(r.sni??""),d="";switch(W(n)){case 1:{if(h!==""){let m=Q(h,";");m.length===2&&(h=m[0],d=m[1])}break}case 2:{d=String(r.path??"");break}default:break}o=L(o),Ie(t,{add:o,aid:p,cipher:"auto",group:P.v2ray,host:h,id:u,net:f,path:d,port:a,remark:i,sni:g,tls:l,type:c})}function Ti(e,t){let s=e.slice(8),r="",n=s.lastIndexOf("#");n!==-1&&(r=U(s.slice(n+1)),s=s.slice(0,n));let o=/^([a-z]+)(?:\+([a-z]+))?:([\da-f]{4}(?:[\da-f]{4}-){4}[\da-f]{12})-(\d+)@(.+):(\d+)(?:\/?\?(.*))?$/.exec(s);if(!o)return;let a=o[1],c=o[2]??"",u=o[3],p=o[4],f=o[5],l=o[6],h=o[7]??"",g="",d="",m="";switch(a){case"tcp":case"kcp":g=k(h,"type");break;case"http":case"ws":d=k(h,"host"),m=k(h,"path");break;case"quic":g=k(h,"security"),d=k(h,"type"),m=k(h,"key");break;default:return}r===""&&(r=`${f}:${l}`),Ie(t,{add:f,aid:p,cipher:"auto",group:P.v2ray,host:d,id:u,net:a,path:m,port:l,remark:r,tls:c,type:g})}function Li(e,t){let s=e.slice(8),r="tcp",n=s.indexOf("?"),i=n>=0?s.slice(n+1):"";s=n>=0?s.slice(0,n):s;let o=Te(ne(s),"(.*?):(.*)@(.*):(.*)");if(!o)return;let a=o[1],c=o[2],u=o[3],p=o[4];if(p==="0")return;let f=U(k(i,"remarks")),l=k(i,"obfs"),h="",g="",d="";l!==""?l==="websocket"&&(r="ws",h=k(i,"obfsParam"),g=k(i,"path")):(r=k(i,"network"),h=k(i,"wsHost"),g=k(i,"wspath"));let m=k(i,"tls")==="1"?"tls":"",v=k(i,"aid");v===""&&(v="0"),f===""&&(f=`${u}:${p}`),Ie(t,{add:u,aid:v,cipher:a,group:P.v2ray,host:h,id:c,net:r,path:g,port:p,remark:f,tls:m,type:d})}function Ri(e,t){let s=e.slice(9),r="",n="",i=s.indexOf("#");i!==-1&&(r=s.slice(i+1),s=s.slice(0,i));let o=s.indexOf("?"),a=o>=0?s.slice(o+1):"";s=o>=0?s.slice(0,o):s;let c=Te(s,"(.*?)@(.*):(.*)");if(!c)return;let u=c[1],p=c[2],f=c[3],l=f.indexOf("/");if(l!==-1&&(n=f.slice(l),f=f.slice(0,l)),f==="0")return;let h=k(a,"network"),g=k(a,"tls")==="true"?"tls":"",d=k(a,"ws.host");r===""&&(r=`${p}:${f}`),Ie(t,{add:p,aid:"0",cipher:"auto",group:P.v2ray,host:d,id:u,net:h,path:n,port:f,remark:r,tls:g,type:""})}function _i(e,t){let s=e.replace(/(.*?)\s=\s(.*)/,"$1,$2"),r=Q(s,",");if(r.length<6||r[1]!=="vmess")return;let n=L(r[0]),i=L(r[2]),o=L(r[3]);if(o==="0")return;let a=L(r[4]),c=L(r[5].replace(/"/g,"")),u=P.v2ray,p="",f="",l="",h="tcp",g="";for(let d=6;d<r.length;d+=1){let m=Q(r[d],"=");if(m.length<2)continue;let v=L(m[0]),b=L(m.slice(1).join("="));switch(v){case"group":u=b;break;case"over-tls":p=b==="true"?"tls":"";break;case"tls-host":f=b;break;case"obfs-path":l=b.replace(/"/g,"");break;case"obfs-header":{let S=Q(b.replace(/"/g,"").replace(/\[Rr\]\[Nn\]/g,"|"),"|");for(let $ of S)/Host: /i.test($)?f=$.slice(6):/Edge: /i.test($)&&(g=$.slice(6));break}case"obfs":b==="ws"&&(h="ws");break;default:break}}l===""&&(l="/"),Ie(t,{add:i,aid:"0",cipher:a,edge:g,group:u,host:f,id:c,net:h,path:l,port:o,remark:n,tls:p,type:"none"})}function Fi(e,t){let s=e.slice(5).replace(/\/\?/g,"?"),r=P.ss,n="",i="",o="",a="",c=r,u=s.indexOf("#");u!==-1&&(n=U(s.slice(u+1)),s=s.slice(0,u));let p=s.indexOf("?");if(p!==-1){i=s.slice(p+1);let d=U(k(i,"plugin")),m=d.indexOf(";");o=m===-1?d:d.slice(0,m),a=m===-1?"":d.slice(m+1);let v=k(i,"group");v!==""&&(c=ne(v)),s=s.slice(0,p)}let f="",l="",h="",g="";if(s.includes("@")){let d=Te(s,"(\\S+?)@(\\S+):(\\d+)");if(!d)return;let m=d[1];h=d[2],g=d[3];let v=U(m),b=Te(ne(v),"(\\S+?):(\\S+)"),S=Te(v,"(\\S+?):(\\S+)"),$=b&&pn(b[1])?b:S??b;if(!$)return;f=$[1],l=$[2]}else{let d=Te(ne(s),"(\\S+?):(\\S+)@(\\S+):(\\d+)");if(!d)return;f=d[1],l=d[2],h=d[3],g=d[4]}g!=="0"&&(n===""&&(n=`${h}:${g}`),ae(t,{group:c,method:f,password:l,plugin:o,pluginOption:a,port:g,remark:n,server:h}))}function Mi(e,t){let s=e.slice(6).replace(/\r/g,"");s=ne(s);let r="",n="",i="",o="",a=s.indexOf("/?");if(a!==-1){let v=s.slice(a+2);s=s.slice(0,a),r=ne(k(v,"group")),n=ne(k(v,"remarks")),i=ne(k(v,"obfsparam")).replace(/\s/g,""),o=ne(k(v,"protoparam")).replace(/\s/g,"")}let c=Te(s,"(\\S+):(\\d+?):(\\S+?):(\\S+?):(\\S+?):(\\S+)");if(!c)return;let u=c[1],p=c[2],f=c[3],l=c[4],h=c[5],g=ne(c[6]);if(p==="0")return;let d=r===""?P.ssr:r,m=n===""?`${u}:${p}`:n;hs(l,h,f)?ae(t,{group:d,method:l,password:g,port:p,remark:m,server:u}):Je(t,{group:d,method:l,obfs:h,obfsParam:i,password:g,port:p,protocol:f,protocolParam:o,remark:m,server:u})}function Di(e,t){let s=t.length,r=ne(e.slice(6)),n;try{n=JSON.parse(r)}catch{return}if(n===null||typeof n!="object"||!("servers"in n))return;let i=String(n.airport??""),o=n.servers,a;if(Array.isArray(o))a=o;else if(o!==null&&typeof o=="object")a=Object.keys(o).map(c=>o[c]);else return;for(let c of a){if(c===null||typeof c!="object")continue;let u=String(c.server??""),p=String(c.port??n.port??"");if(u===""||p===""||p==="0")continue;let f=String(c.remarks??""),l=String(c.encryption??n.encryption??""),h=String(c.password??n.password??""),g=String(c.plugin??n.plugin??""),d=String(c.plugin_options??n.plugin_options??""),m=pe();ae(m,{group:i,method:l,password:h,plugin:g,pluginOption:d,port:p,remark:f,server:u}),m.id=s,t.push(m),s+=1}}function Bi(e,t){let s="",r="",n="",i="",o="",a="";if(e.includes("socks://")){let c=e,u=c.indexOf("#");if(u!==-1&&(r=U(c.slice(u+1)),c=c.slice(0,u)),c=ne(c.slice(8)),c.includes("@")){let f=Q(c,"@");if(f.length<2)return;c=f[1];let l=Q(f[0],":");if(l.length<2)return;o=l[0],a=l[1]}let p=Q(c,":");if(p.length<2)return;n=p[0],i=p[1]}else(e.includes("https://t.me/socks")||e.includes("tg://socks"))&&(n=k(e,"server"),i=k(e,"port"),o=U(k(e,"user")),a=U(k(e,"pass")),r=U(k(e,"remarks")),s=U(k(e,"group")));s===""&&(s=P.socks),r===""&&(r=`${n}:${i}`),!(i==="0"||i==="")&&ot(t,{group:s,password:a,port:i,remark:r,server:n,username:o})}function ji(e,t){let s=k(e,"server"),r=k(e,"port"),n=U(k(e,"user")),i=U(k(e,"pass")),o=U(k(e,"remarks")),a=U(k(e,"group"));a===""&&(a=P.http),o===""&&(o=`${s}:${r}`),!(r==="0"||r==="")&&at(t,{group:a,password:i,port:r,remark:o,server:s,tls:e.includes("/https"),username:n})}function Ki(e,t){let s=e,r="",n="",i=s.includes("https://"),o=s.indexOf("?");if(o!==-1){let f=s.slice(o+1);s=s.slice(0,o),r=U(k(f,"remarks")),n=U(k(f,"group"))}s=s.slice(s.indexOf("://")+3),s=ne(s);let a="",c="",u="",p="";if(s.includes("@")){let f=Te(s,"(.*?):(.*?)@(.*):(.*)");if(!f)return;u=f[1],p=f[2],a=f[3],c=f[4]}else{let f=Te(s,"(.*):(.*)");if(!f)return;a=f[1],c=f[2]}n===""&&(n=P.http),r===""&&(r=`${a}:${c}`),c!=="0"&&at(t,{group:n,password:p,port:c,remark:r,server:a,tls:i,username:u})}function Ui(e,t){let s=e.slice(9),r="",n="",i="",o="",a="",c=s.lastIndexOf("#");c!==-1&&(r=U(s.slice(c+1)),s=s.slice(0,c));let u=s.indexOf("?");u!==-1&&(n=s.slice(u+1),s=s.slice(0,u));let p=Te(s,"(.*?)@(.*):(.*)");if(!p)return;let f=p[1],l=p[2],h=p[3];if(h==="0")return;i=k(n,"sni"),i===""&&(i=k(n,"peer"));let g=k(n,"tfo"),d=U(k(n,"group"));k(n,"ws")==="1"?(o=k(n,"wspath"),a="ws"):k(n,"type")==="ws"&&(o=k(n,"path"),o.startsWith("%2F")&&(o=U(o)),a="ws");let m=k(n,"type"),v=k(n,"sni"),b=k(n,"allowInsecure");r===""&&(r=`${l}:${h}`),Nt(t,{group:d===""?P.trojan:d,host:i,network:a,password:f,path:o,port:h,remark:r,scv:b===""?void 0:$e(b),server:l,sni:v,tfo:g===""?void 0:$e(g),tlsSecure:m!==""||!0})}function $e(e){let t=e.trim().toLowerCase();if(["1","true","yes","on"].includes(t))return!0;if(["0","false","no","off"].includes(t))return!1}function Gi(e,t){let s=e.replace(/(hysteria2|hy2):\/\//,"hysteria2://").replace(/\/\?/g,"?");/hysteria2:\/\/.*?[:].*/.test(s)&&Vi(s,t)}function Vi(e,t){let s=e.slice(12),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a="",c="",u="";if(s.includes("@")){let I=/^(.*?)@(.*)[:](\d+)$/.exec(s);if(!I)return;a=I[1],c=I[2],u=I[3]}else{if(a=k(n,"password"),a===""||!s.includes(":"))return;let I=/^(.*)[:](\d+)$/.exec(s);if(!I)return;c=I[1],u=I[2]}let p=k(n,"insecure"),f=k(n,"up"),l=k(n,"down"),h=k(n,"alpn"),g=k(n,"obfs"),d=k(n,"obfs-password"),m=k(n,"sni"),v=k(n,"pinSHA256"),b=k(n,"mport"),S=k(n,"ports"),$=S!==""?S:b!==""?b:u;r===""&&(r=`${c}:${u}`),hn(t,{alpn:h,down:l,fingerprint:v,group:P.hysteria2,obfs:g,obfsPassword:d,password:a,port:u,ports:$,remark:r,scv:p===""?void 0:$e(p),server:c,sni:m,up:f})}function Wi(e,t){let s=e.slice(9),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?)@(.*)[:](\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3];if(p==="0")return;let f=k(n,"sni"),l=k(n,"udp"),h=k(n,"insecure");r===""&&(r=`${u}:${p}`),gs(t,{group:P.anytls,password:c,port:p,remark:r,scv:h===""?void 0:$e(h),server:u,sni:f,udp:l===""?void 0:$e(l)})}function qi(e,t){let s=e.slice(8),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?)@(.*)[:](\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3];if(c===""||p===""||p==="0")return;let f=k(n,"obfs"),l=k(n,"host"),h=k(n,"version"),g=k(n,"udp"),d=k(n,"tfo"),m=k(n,"skip-cert-verify");r===""&&(r=`${u}:${p}`),ms(t,{group:P.snell,host:l,obfs:f===""?"none":f,password:c,port:p,remark:r,scv:m===""?void 0:$e(m),server:u,tfo:d===""?void 0:$e(d),udp:g===""?void 0:$e(g),version:h===""?1:W(h)})}function Hi(e,t){let s=e.slice(11),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*)[:](\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2];if(c===""||u==="0")return;let p=k(n,"auth"),f=k(n,"protocol"),l=k(n,"upmbps"),h=k(n,"downmbps"),g=k(n,"alpn"),d=k(n,"obfs"),m=k(n,"obfsParam"),v=k(n,"peer"),b=k(n,"insecure");r===""&&(r=`${c}:${u}`),dn(t,{alpn:g,authStr:p,downSpeed:h,group:P.hysteria,obfs:d,obfsProtocol:m,port:u,protocol:f===""?"udp":f,remark:r,scv:b===""?void 0:$e(b),server:c,sni:v===""?c:v,upSpeed:l})}function Yi(e,t){let r=e.replace(/^(wg|wireguard):\/\//,"wireguard://").slice(13),n="",i="",o=r.lastIndexOf("#");o!==-1&&(n=U(r.slice(o+1)),r=r.slice(0,o));let a=r.lastIndexOf("?");a!==-1&&(i=r.slice(a+1),r=r.slice(0,a));let c=/^(?:(.*)@)?\[?(.*?)]?:(\d+)$/.exec(r);if(!c)return;let u=c[2],p=c[3];if(u===""||p==="0")return;let f=k(i,"privateKey")||k(i,"privatekey"),l=k(i,"publicKey")||k(i,"publickey");if(f===""||l==="")return;let h=k(i,"presharedKey"),g=k(i,"selfIP"),d=k(i,"selfIPv6"),m=k(i,"mtu"),v=k(i,"keepAlive"),b=k(i,"dns");n===""&&(n=`${u}:${p}`),sr(t,{dnsServers:b===""?["1.1.1.1"]:b.split(",").map(S=>S.trim()),group:P.wireguard,keepAlive:v===""?25:W(v),mtu:m===""?1420:W(m),port:p,preSharedKey:h,privateKey:f,publicKey:l,remark:n,selfIp:g===""?"10.0.0.2":g,selfIpv6:d,server:u})}function Ji(e,t){let s=e.slice(8),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.indexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?)@\[?(.*?)\]?:(\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3];if(p==="0")return;let f=k(n,"type"),l=k(n,"security"),h=k(n,"host"),g=U(k(n,"path")),d=U(k(n,"serviceName")),m=g!==""?g:d,v=k(n,"sni"),b=k(n,"flow"),S=k(n,"fp"),$=k(n,"pbk"),I=k(n,"sid"),O=k(n,"alpn");r===""&&(r=`${u}:${p}`),mn(t,{alpn:O===""?void 0:O.split(","),fingerprint:S,flow:b,group:P.v2ray,host:h,network:f,path:m,port:p,publicKey:$,remark:r,scv:k(n,"allowInsecure")===""?void 0:$e(k(n,"allowInsecure")),server:u,shortId:I,sni:v,tls:l,userId:c})}function Xi(e,t){let s=e.slice(7),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.indexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?):(.*?)@\[?(.*?)\]?:(\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3],f=a[4];if(f==="0")return;let l=k(n,"congestion_control")||k(n,"congestion-controller"),h=k(n,"alpn"),g=k(n,"sni");r===""&&(r=`${p}:${f}`),gn(t,{alpn:h===""?void 0:h.split(","),congestionControl:l,group:P.v2ray,password:u,port:f,remark:r,scv:k(n,"allow_insecure")===""?void 0:$e(k(n,"allow_insecure")),server:p,sni:g,userId:c})}function Qi(e,t){x(e,"ssr://")?Mi(e,t):x(e,"vmess://")||x(e,"vmess1://")?Pi(e,t):x(e,"ss://")?Fi(e,t):x(e,"socks://")||x(e,"https://t.me/socks")||x(e,"tg://socks")?Bi(e,t):x(e,"https://t.me/http")||x(e,"tg://http")?ji(e,t):x(e,"Netch://")?yn(e,t):x(e,"trojan://")?Ui(e,t):x(e,"vless://")?Ji(e,t):x(e,"tuic://")?Xi(e,t):x(e,"snell://")?qi(e,t):x(e,"hysteria://")?Hi(e,t):x(e,"wg://")||x(e,"wireguard://")?Yi(e,t):e.includes("hysteria2://")||e.includes("hy2://")?Gi(e,t):x(e,"anytls://")?Wi(e,t):Ci(e)&&Ki(e,t)}function zi(e,t){let s=!1;if(x(e,"ssd://")&&(Di(e,t),s=!0),!s&&/"?(Proxy|proxies)"?:/.test(e)&&ki(e,t)&&(s=!0),!s&&xr(e,t)&&(s=!0),s)return;let r=ne(e);if(/(vmess|shadowsocks|http|trojan)\s*?=/.test(r)&&xr(r,t))return;let n=t.length;tn(r,t),t.length===n&&r!==e&&tn(e,t)}function tn(e,t){let s=e.replace(/\r\n/g,`
|
|
129
|
+
`,s)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let s=us(t),r=it(s);return r.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let s=us(t),r=it(s);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,s){return this.type!=="comment"||this.indent<=s?!1:t.every(r=>r.type==="newline"||r.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};function oi(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Ot||null,prettyErrors:t}}function Xr(e,t={}){let{lineCounter:s,prettyErrors:r}=oi(t),n=new Et(s?.addNewLine),i=new It(t),o=null;for(let a of i.compose(n.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Se(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return r&&s&&(o.errors.forEach(Bs(e,s)),o.warnings.forEach(Bs(e,s))),o}function ps(e,t,s){let r;typeof t=="function"?r=t:s===void 0&&t&&typeof t=="object"&&(s=t);let n=Xr(e,s);if(!n)return null;if(n.warnings.forEach(i=>Gt(n.options.logLevel,i)),n.errors.length>0){if(n.options.logLevel!=="silent")throw n.errors[0];n.errors=[]}return n.toJS(Object.assign({reviver:r},s))}function zs(e,t,s){let r=null;if(typeof t=="function"||Array.isArray(t)?r=t:s===void 0&&t&&(s=t),typeof s=="string"&&(s=s.length),typeof s=="number"){let n=Math.round(s);s=n<1?void 0:n>8?{indent:8}:{indent:n}}if(e===void 0){let{keepUndefined:n}=s??t??{};if(!n)return}return me(e)&&!r?e.toString(s):new De(e,r,s).toString(s)}function nn(e){switch(e){case"ss":return"SS";case"ssr":return"SSR";case"vmess":return"VMess";case"vless":return"VLESS";case"trojan":return"Trojan";case"snell":return"Snell";case"http":return"HTTP";case"https":return"HTTPS";case"socks5":return"SOCKS5";case"wireguard":return"WireGuard";case"hysteria":return"Hysteria";case"hysteria2":return"Hysteria2";case"tuic":return"TUIC";case"anytls":return"AnyTLS";default:return"Unknown"}}var P={anytls:"AnyTLSProvider",http:"HTTPProvider",hysteria:"HysteriaProvider",hysteria2:"Hysteria2Provider",snell:"SnellProvider",socks:"SocksProvider",ss:"SSProvider",ssr:"SSRProvider",trojan:"TrojanProvider",tuic:"TUICProvider",v2ray:"V2RayProvider",wireguard:"WireGuardProvider"};function pe(){return{allowedIps:"0.0.0.0/0, ::/0",allowInsecure:void 0,alpn:[],alterId:0,authStr:"",ca:"",caStr:"",clientId:"",congestionControl:"",cwnd:0,disableMtuDiscovery:void 0,dnsServers:[],down:"",downSpeed:0,edge:"",encryptMethod:"",fakeType:"",fingerprint:"",flow:"",group:"",groupId:0,hopInterval:0,host:"",hostname:"",id:0,keepAlive:0,mtu:0,obfs:"",obfsParam:"",password:"",path:"",plugin:"",pluginOption:"",port:0,ports:"",preSharedKey:"",privateKey:"",protocol:"",protocolParam:"",publicKey:"",quicSecret:"",quicSecure:"",recvWindow:0,recvWindowConn:0,remark:"",selfIp:"",selfIpv6:"",serverName:"",shortId:"",snellVersion:0,sni:"",tcpFastOpen:void 0,testUrl:"",tls13:void 0,tlsSecure:!1,transferProtocol:"",type:"unknown",udp:void 0,underlyingProxy:"",up:"",upSpeed:0,userId:"",username:""}}var on=(e=>(e.Clash="clash",e.ClashR="clashr",e.Surge="surge",e.Surfboard="surfboard",e.QuantumultX="quanx",e.Quantumult="quan",e.Loon="loon",e.Mellow="mellow",e.V2Ray="v2ray",e.Trojan="trojan",e.SSD="ssd",e.SSC="ss",e.SSSub="sssub",e.SSR="ssr",e.SingBox="singbox",e.Mixed="mixed",e.NodeList="nodelist",e.Auto="auto",e))(on||{});function an(){return{addEmoji:!1,appendProxyType:!1,authorized:!1,autoCountry:!1,clashClassicalRuleset:!1,clashFlavor:"mihomo",clashNewFieldName:!0,clashProxiesStyle:"flow",clashProxyGroupsStyle:"flow",clashScript:!1,countryResolver:void 0,dedupe:!1,emojiArray:[],enableRuleGenerator:!0,excludeCountries:[],excludeRemarks:[],expandRulesets:!0,filterDeprecated:!1,includeCountries:[],includeRemarks:[],managedConfigPrefix:"",nameRegexArray:[],nameRemove:[],nodeList:!1,overwriteOriginalRules:!0,quanxDevId:"",removeEmoji:!1,renameArray:[],skipCertVerify:void 0,sortFlag:!1,sortScript:"",surgeSsrPath:"",templateVars:{},tfo:void 0,tls13:void 0,udp:void 0}}var xs="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var hs={};for(let e=0;e<xs.length;e+=1)hs[xs[e]]=e;hs["-"]=62;hs._=63;function ci(e){return new TextEncoder().encode(e)}function li(e){return new TextDecoder("utf-8",{fatal:!1}).decode(e)}function ui(e,t){let s=ci(e),r="";for(let n=0;n<s.length;n+=3){let i=s[n],o=n+1<s.length?s[n+1]:0,a=n+2<s.length?s[n+2]:0,c=i<<16|o<<8|a;r+=t[c>>18&63],r+=t[c>>12&63],r+=n+1<s.length?t[c>>6&63]:"=",r+=n+2<s.length?t[c&63]:"="}return r}function fi(e){let s=e.replace(/\s+/g,"").replace(/=+$/,""),r=[],n=0,i=0;for(let o of s){let a=hs[o];a!==void 0&&(n=n<<6|a,i+=6,i>=8&&(i-=8,r.push(n>>i&255)))}return Uint8Array.from(r)}function cn(e){return ui(e,xs)}function ln(e){return li(fi(e))}function ne(e){return ln(e)}function pi(e){return e.startsWith("\uFEFF")?e.slice(1):e}function L(e){return e.replace(/^\s+|\s+$/g,"")}function V(e){if(e==null)return 0;if(typeof e=="number")return Number.isFinite(e)?Math.trunc(e):0;let t=/[+-]?\d+/.exec(e);if(!t)return 0;let s=Number.parseInt(t[0],10);return Number.isNaN(s)?0:s}function x(e,t){return e.startsWith(t)}function Qr(e,t){if(t==="")return 0;let s=0,r=e.indexOf(t);for(;r!==-1;)s+=1,r=e.indexOf(t,r+t.length);return s}function Q(e,t,s=!1){let r=e.split(t);return s?r.filter(n=>n!==""):r}function un(e){let t=e.split(".");return t.length!==4?!1:t.every(s=>/^\d{1,3}$/.test(s)&&Number(s)<=255)}function fn(e){return/^\[?[0-9A-Fa-f:]{2,}\]?$/.test(e)&&e.includes(":")}function U(e){try{return decodeURIComponent(e)}catch{return e.replace(/%([0-9A-Fa-f]{2})/g,(t,s)=>String.fromCharCode(Number.parseInt(s,16)))}}function zr(e){return e.toLowerCase().replace(/_/g,"-")}function di(e,t){if(e==="")return[];let s=e.split("#",1)[0],r=s.indexOf("?"),n=r>=0?s.slice(r+1):s,i=n.startsWith("?")?n.slice(1):n,o=[],a=zr(t);for(let c of i.split("&")){if(c==="")continue;let u=c.indexOf("="),p=u>=0?c.slice(0,u):c;zr(U(p))===a&&o.push(U(u>=0?c.slice(u+1):""))}return o}function k(e,t){let s=di(e,t);return s.length>0?s[s.length-1].trim():""}function hi(e){let t=0xcbf29ce484222325n,s=0x100000001b3n;for(let r of e)t^=BigInt(r.codePointAt(0)),t=BigInt.asUintN(64,t*s);return t}function mi(e){return hi(e).toString(16)}var rp=new Set(Object.values(on));var np=1024**3/1e3**3;var gi=["2022-blake3-aes-128-gcm","2022-blake3-aes-256-gcm","2022-blake3-chacha20-poly1305","2022-blake3-chacha12-poly1305","2022-blake3-chacha8-poly1305","aes-128-cfb","aes-128-ctr","aes-128-gcm","aes-192-cfb","aes-192-ctr","aes-192-gcm","aes-256-cfb","aes-256-ctr","aes-256-gcm","bf-cfb","camellia-128-cfb","camellia-192-cfb","camellia-256-cfb","chacha20","chacha20-ietf","chacha20-ietf-poly1305","rc4-md5","salsa20","xchacha20-ietf-poly1305"];function pn(e){return gi.includes(e.toLowerCase())}function ms(e,t,s){return pn(e)&&(t===""||t==="plain")&&(s===""||s==="origin")}function ue(e,t,s,r,n,i,o,a,c,u,p){e.type=t,e.group=s,e.remark=r,e.hostname=n,e.underlyingProxy=p,e.port=V(i),e.udp=o,e.tcpFastOpen=a,e.allowInsecure=c,e.tls13=u}function Ie(e,t){let{add:s,aid:r=0,cipher:n="",edge:i="",group:o,host:a="",id:c="",net:u="",path:p="",port:f,remark:l,scv:h,sni:g="",tfo:d,tls:m="",tls13:v,type:b="",udp:S,underlyingProxy:$=""}=t;ue(e,"vmess",o,l,s,f,S,d,h,v,$),e.userId=c===""?"00000000-0000-0000-0000-000000000000":c,e.alterId=V(r),e.encryptMethod=n,e.transferProtocol=u===""?"tcp":u,e.edge=i,e.serverName=g,u==="quic"?(e.quicSecure=a,e.quicSecret=p):(e.host=a===""&&!un(s)&&!fn(s)?s:L(a),e.path=p===""?"/":L(p)),e.fakeType=b,e.tlsSecure=m==="tls"}function Je(e,t){ue(e,"ssr",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.password=t.password,e.encryptMethod=t.method,e.protocol=t.protocol,e.protocolParam=t.protocolParam??"",e.obfs=t.obfs,e.obfsParam=t.obfsParam??""}function ae(e,t){ue(e,"ss",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,t.tls13,t.underlyingProxy??""),e.password=t.password,e.encryptMethod=t.method,e.plugin=t.plugin??"",e.pluginOption=t.pluginOption??""}function ot(e,t){ue(e,"socks5",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.username=t.username??"",e.password=t.password??""}function at(e,t){ue(e,t.tls?"https":"http",t.group,t.remark,t.server,t.port,void 0,t.tfo,t.scv,t.tls13,t.underlyingProxy??""),e.username=t.username??"",e.password=t.password??"",e.tlsSecure=t.tls}function Nt(e,t){ue(e,"trojan",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,t.tls13,t.underlyingProxy??""),e.password=t.password,e.host=t.host??"",e.tlsSecure=t.tlsSecure??!0,e.transferProtocol=t.network===void 0||t.network===""?"tcp":t.network,e.path=t.path??"",e.serverName=t.sni??""}function gs(e,t){ue(e,"snell",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.password=t.password,e.obfs=t.obfs??"",e.host=t.host??"",e.snellVersion=t.version??0}function ys(e,t){ue(e,"anytls",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.tlsSecure=!0,e.password=t.password,e.sni=t.sni??""}function sr(e,t){ue(e,"wireguard",t.group,t.remark,t.server,t.port,t.udp,void 0,void 0,void 0,t.underlyingProxy??""),e.selfIp=t.selfIp??"",e.selfIpv6=t.selfIpv6??"",e.privateKey=t.privateKey??"",e.publicKey=t.publicKey??"",e.preSharedKey=t.preSharedKey??"",e.dnsServers=t.dnsServers??[],e.mtu=V(t.mtu),e.keepAlive=V(t.keepAlive),e.testUrl=t.testUrl??"",e.clientId=t.clientId??""}function dn(e,t){ue(e,"hysteria",t.group,t.remark,t.server,t.port,void 0,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.ports=t.ports??"",e.protocol=t.protocol??"",e.obfsParam=t.obfsProtocol??"";let s=t.up??"";s!==""&&(s.length>4&&s.endsWith("bps")?e.up=s:V(s)&&(e.upSpeed=V(s),e.up=`${s} Mbps`)),t.upSpeed&&(e.upSpeed=V(t.upSpeed));let r=t.down??"";r!==""&&(r.length>4&&r.endsWith("bps")?e.down=r:V(r)&&(e.downSpeed=V(r),e.down=`${r} Mbps`)),t.downSpeed&&(e.downSpeed=V(t.downSpeed)),e.authStr=t.authStr??"",t.auth&&(e.authStr=ln(t.auth)),e.tlsSecure=!0,e.obfs=t.obfs??"",e.sni=t.sni??"",e.fingerprint=t.fingerprint??"",e.ca=t.ca??"",e.caStr=t.caStr??"",e.recvWindowConn=V(t.recvWindowConn),e.recvWindow=V(t.recvWindow),e.disableMtuDiscovery=t.disableMtuDiscovery?t.disableMtuDiscovery==="true":void 0,e.hopInterval=V(t.hopInterval),t.alpn&&(e.alpn=[t.alpn])}function hn(e,t){ue(e,"hysteria2",t.group,t.remark,t.server,t.port,void 0,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.tlsSecure=!0,e.upSpeed=V(t.up),e.downSpeed=V(t.down),e.ports=t.ports??"",e.password=t.password??"",e.obfs=t.obfs??"",e.obfsParam=t.obfsPassword??"",e.sni=t.sni??"",e.fingerprint=t.fingerprint??"",t.alpn&&(e.alpn=[t.alpn]),e.ca=t.ca??"",e.caStr=t.caStr??"",e.cwnd=V(t.cwnd),e.hopInterval=V(t.hopInterval)}function mn(e,t){ue(e,"vless",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.userId=t.userId,e.flow=t.flow??"",e.encryptMethod=t.encryption??"none",e.transferProtocol=t.network===void 0||t.network===""?"tcp":t.network,e.tlsSecure=t.tls==="tls"||t.tls==="reality",e.serverName=t.sni??"",e.host=t.host??"",e.path=t.path??"",e.fingerprint=t.fingerprint??"",e.publicKey=t.publicKey??"",e.shortId=t.shortId??"",t.alpn&&(e.alpn=t.alpn)}function gn(e,t){ue(e,"tuic",t.group,t.remark,t.server,t.port,t.udp,t.tfo,t.scv,void 0,t.underlyingProxy??""),e.tlsSecure=!0,e.userId=t.userId,e.password=t.password,e.congestionControl=t.congestionControl??"",e.serverName=t.sni??"",t.alpn&&(e.alpn=t.alpn)}function Zs(e){if(!(e==null||e===""))return String(e).toLowerCase()==="true"}function K(e){return e==null?"":String(e)}function yn(e,t){let s;try{s=JSON.parse(ne(e.slice(8)))}catch{return}if(s===null||typeof s!="object")return;let r=K(s.Type),n=K(s.Group),i=K(s.Remark),o=K(s.Hostname),a=Zs(s.EnableUDP),c=Zs(s.EnableTFO),u=Zs(s.AllowInsecure),p=K(s.Port);if(p==="0"||p==="")return;let f=K(s.EncryptMethod),l=K(s.Password);switch(i===""&&(i=`${o}:${p}`),r){case"SS":ae(t,{group:n===""?P.ss:n,method:f,password:l,plugin:K(s.Plugin),pluginOption:K(s.PluginOption),port:p,remark:i,scv:u,server:o,tfo:c,udp:a});break;case"SSR":{let h=K(s.Protocol),g=K(s.OBFS);ms(f,g,h)?ae(t,{group:n===""?P.ss:n,method:f,password:l,plugin:K(s.Plugin),pluginOption:K(s.PluginOption),port:p,remark:i,scv:u,server:o,tfo:c,udp:a}):Je(t,{group:n===""?P.ssr:n,method:f,obfs:g,obfsParam:K(s.OBFSParam),password:l,port:p,protocol:h,protocolParam:K(s.ProtocolParam),remark:i,scv:u,server:o,tfo:c,udp:a});break}case"VMess":Ie(t,{add:o,aid:K(s.AlterID),cipher:f,edge:K(s.Edge),group:n===""?P.v2ray:n,host:K(s.Host),id:K(s.UserID),net:K(s.TransferProtocol),path:K(s.Path),port:p,remark:i,scv:u,sni:K(s.ServerName),tfo:c,tls:K(s.TLSSecure),type:K(s.FakeType),udp:a});break;case"Socks5":ot(t,{group:n===""?P.socks:n,password:l,port:p,remark:i,scv:u,server:o,tfo:c,udp:a,username:K(s.Username)});break;case"HTTP":case"HTTPS":at(t,{group:n===""?P.http:n,password:l,port:p,remark:i,scv:u,server:o,tfo:c,tls:r==="HTTPS"});break;case"Trojan":Nt(t,{group:n===""?P.trojan:n,host:K(s.Host),network:K(s.TransferProtocol),password:l,path:K(s.Path),port:p,remark:i,scv:u,server:o,tfo:c,tlsSecure:K(s.TLSSecure)==="true",udp:a});break;case"Snell":gs(t,{group:n===""?P.snell:n,host:K(s.Host),obfs:K(s.OBFS),password:l,port:p,remark:i,scv:u,server:o,tfo:c,udp:a,version:V(K(s.SnellVersion))});break;default:break}}function y(e){return e==null?"":String(e)}function ds(e){return typeof e=="boolean"?e:y(e).toLowerCase()==="true"}function H(e){if(!(e==null||e===""))return ds(e)}function w(e,t){return e!==null&&typeof e=="object"?e[t]:void 0}function yi(e,t){let s=w(e,"proxies")!==void 0?"proxies":"Proxy",r=w(e,s);if(!Array.isArray(r))return;let n=t.length;for(let i of r)try{bi(i,t,n)&&(n+=1)}catch{}}function bi(e,t,s){let r=y(w(e,"type")).toLowerCase(),n=y(w(e,"name")),i=y(w(e,"server")),o=y(w(e,"port")),a=y(w(e,"underlying-proxy"));if(a===""&&(a=y(w(e,"dialer-proxy"))),o===""||o==="0")return!1;let c=H(w(e,"udp")),u=H(w(e,"fast-open")),p=H(w(e,"skip-cert-verify")),f=pe(),l="";switch(r){case"vmess":{l=P.v2ray;let h=y(w(e,"uuid")),g=y(w(e,"alterId")),d=y(w(e,"cipher")),m=w(e,"network")!==void 0?y(w(e,"network")):"tcp",v=y(w(e,"servername")),b="",S="",$="";switch(m){case"http":b=y(w(w(w(e,"http-opts"),"path"),0)),S=y(w(w(w(w(e,"http-opts"),"headers"),"Host"),0)),$="";break;case"ws":if(w(e,"ws-opts")!==void 0){let O=w(e,"ws-opts");b=w(O,"path")!==void 0?y(w(O,"path")):"/",S=y(w(w(O,"headers"),"Host")),$=y(w(w(O,"headers"),"Edge"))}else b=w(e,"ws-path")!==void 0?y(w(e,"ws-path")):"/",S=y(w(w(e,"ws-headers"),"Host")),$=y(w(w(e,"ws-headers"),"Edge"));break;case"h2":b=y(w(w(e,"h2-opts"),"path")),S=y(w(w(w(e,"h2-opts"),"host"),0)),$="";break;case"grpc":S=y(w(e,"servername")),b=y(w(w(e,"grpc-opts"),"grpc-service-name")),$="";break;default:break}let I=ds(w(e,"tls"))?"tls":"";Ie(f,{add:i,aid:g,cipher:d,edge:$,group:l,host:S,id:h,net:m,path:b,port:o,remark:n,scv:p,sni:v,tfo:u,tls:I,type:"",udp:c,underlyingProxy:a});break}case"ss":{l=P.ss;let h=y(w(e,"cipher")),g=y(w(e,"password")),d="",m="",v="",b="",S="",$="",I="";if(w(e,"plugin")!==void 0){let O=y(w(e,"plugin")).toLowerCase(),E=w(e,"plugin-opts");O==="obfs"?(d="obfs-local",v=y(w(E,"mode")),b=y(w(E,"host"))):O==="v2ray-plugin"&&(d="v2ray-plugin",v=y(w(E,"mode")),b=y(w(E,"host")),$=ds(w(E,"tls"))?"tls;":"",I=y(w(E,"path")),S=ds(w(E,"mux"))?"mux=4;":"")}else w(e,"obfs")!==void 0&&(d="obfs-local",v=y(w(e,"obfs")),b=y(w(e,"obfs-host")));d==="simple-obfs"||d==="obfs-local"?(m=`obfs=${v}`,m+=b===""?"":`;obfs-host=${b}`):d==="v2ray-plugin"&&(m=`mode=${v};${$}${S}`,b!==""&&(m+=`host=${b};`),I!==""&&(m+=`path=${I};`),S!==""&&(m+=`mux=${S};`)),h==="AEAD_CHACHA20_POLY1305"?h="chacha20-ietf-poly1305":h.includes("AEAD")&&(h=h.replace(/AEAD_/g,"").replace(/_/g,"-").toLowerCase()),ae(f,{group:l,method:h,password:g,plugin:d,pluginOption:m,port:o,remark:n,scv:p,server:i,tfo:u,udp:c,underlyingProxy:a});break}case"socks5":{l=P.socks;let h=y(w(e,"username")),g=y(w(e,"password"));ot(f,{group:l,password:g,port:o,remark:n,server:i,underlyingProxy:a,username:h});break}case"ssr":{l=P.ssr;let h=y(w(e,"cipher"));h==="dummy"&&(h="none");let g=y(w(e,"password")),d=y(w(e,"protocol")),m=y(w(e,"obfs")),v=w(e,"protocol-param")!==void 0?y(w(e,"protocol-param")):y(w(e,"protocolparam")),b=w(e,"obfs-param")!==void 0?y(w(e,"obfs-param")):y(w(e,"obfsparam"));Je(f,{group:l,method:h,obfs:m,obfsParam:b,password:g,port:o,protocol:d,protocolParam:v,remark:n,scv:p,server:i,tfo:u,udp:c,underlyingProxy:a});break}case"http":{l=P.http;let h=y(w(e,"username")),g=y(w(e,"password")),d=y(w(e,"tls"));at(f,{group:l,password:g,port:o,remark:n,scv:p,server:i,tfo:u,tls:d==="true",underlyingProxy:a,username:h});break}case"trojan":{l=P.trojan;let h=y(w(e,"password")),g=y(w(e,"sni")),d=y(w(e,"network")),m="";switch(d){case"grpc":m=y(w(w(e,"grpc-opts"),"grpc-service-name"));break;case"ws":m=y(w(w(e,"ws-opts"),"path"));break;default:d="tcp",m="";break}Nt(f,{group:l,host:g,network:d,password:h,path:m,port:o,remark:n,scv:p,server:i,tfo:u,tlsSecure:!0,udp:c,underlyingProxy:a});break}case"snell":{l=P.snell;let h=y(w(e,"psk")),g=y(w(w(e,"obfs-opts"),"mode")),d=y(w(w(e,"obfs-opts"),"host")),m=y(w(e,"version"));gs(f,{group:l,host:d,obfs:g,password:h,port:o,remark:n,scv:p,server:i,tfo:u,udp:c,underlyingProxy:a,version:V(m)});break}case"wireguard":{l=P.wireguard;let h=y(w(e,"public-key")),g=y(w(e,"private-key")),d=w(e,"dns"),m=Array.isArray(d)?d.map(I=>String(I)):d?[String(d)]:[],v=y(w(e,"mtu")),b=y(w(e,"preshared-key")),S=y(w(e,"ip")),$=y(w(e,"ipv6"));sr(f,{dnsServers:m,group:l,keepAlive:"0",mtu:v,port:o,preSharedKey:b,privateKey:g,publicKey:h,remark:n,selfIp:S,selfIpv6:$,server:i,testUrl:"",udp:c,underlyingProxy:a});break}case"hysteria":{l=P.hysteria;let h=y(w(e,"ports")),g=y(w(e,"protocol")),d=y(w(e,"obfs-protocol")),m=y(w(e,"up")),v=y(w(e,"up-speed")),b=y(w(e,"down")),S=y(w(e,"down-speed")),$=y(w(e,"auth")),I=y(w(e,"auth-str"));I===""&&(I=y(w(e,"auth_str")));let O=y(w(e,"obfs")),E=y(w(e,"sni")),A=y(w(e,"fingerprint")),_=w(e,"alpn"),q=Array.isArray(_)?y(_[0]):y(_),te=y(w(e,"ca")),N=y(w(e,"ca-str")),Y=y(w(e,"recv-window-conn")),W=y(w(e,"recv-window")),z=y(w(e,"disable-mtu-discovery"));z===""&&(z=y(w(e,"disable_mtu_discovery")));let ee=y(w(e,"hop-interval"));dn(f,{alpn:q,auth:$,authStr:I,ca:te,caStr:N,disableMtuDiscovery:z,down:b,downSpeed:S,fingerprint:A,group:l,hopInterval:ee,obfs:O,obfsProtocol:d,port:o,ports:h,protocol:g,recvWindow:W,recvWindowConn:Y,remark:n,scv:p,server:i,sni:E,tfo:u,underlyingProxy:a,up:m,upSpeed:v});break}case"hysteria2":{l=P.hysteria2;let h=y(w(e,"ports")),g=y(w(e,"up")),d=y(w(e,"down")),m=y(w(e,"password"));m===""&&(m=y(w(e,"auth")));let v=y(w(e,"obfs")),b=y(w(e,"obfs-password")),S=y(w(e,"sni")),$=y(w(e,"fingerprint")),I=w(e,"alpn"),O=Array.isArray(I)?y(I[0]):y(I),E=y(w(e,"ca")),A=y(w(e,"ca-str")),_=y(w(e,"cwnd")),q=y(w(e,"hop-interval"));hn(f,{alpn:O,ca:E,caStr:A,cwnd:_,down:d,fingerprint:$,group:l,hopInterval:q,obfs:v,obfsPassword:b,password:m,port:o,ports:h,remark:n,scv:p,server:i,sni:S,tfo:u,underlyingProxy:a,up:g});break}case"anytls":{l=P.anytls;let h=y(w(e,"password")),g=y(w(e,"sni"));ys(f,{group:l,password:h,port:o,remark:n,scv:p,server:i,sni:g,tfo:u,udp:c,underlyingProxy:a});break}case"vless":{l=P.v2ray;let h=y(w(e,"uuid")),g=y(w(e,"network")),d=y(w(e,"tls")),m="",v="";g==="ws"?(m=y(w(w(e,"ws-opts"),"path")),v=y(w(w(w(e,"ws-opts"),"headers"),"Host"))):g==="grpc"&&(m=y(w(w(e,"grpc-opts"),"grpc-service-name")));let b=w(e,"alpn");mn(f,{alpn:Array.isArray(b)?b.map(S=>String(S)):void 0,encryption:y(w(e,"encryption")),fingerprint:y(w(e,"client-fingerprint")),flow:y(w(e,"flow")),group:l,host:v,network:g,path:m,port:o,remark:n,scv:p,server:i,sni:y(w(e,"servername")),tfo:u,tls:d==="true"?"tls":"",udp:c,underlyingProxy:a,userId:h});break}case"tuic":{l=P.v2ray;let h=w(e,"alpn");gn(f,{alpn:Array.isArray(h)?h.map(g=>String(g)):void 0,congestionControl:y(w(e,"congestion-controller")),group:l,password:y(w(e,"password")),port:o,remark:n,scv:p,server:i,sni:y(w(e,"sni")),tfo:u,udp:c,underlyingProxy:a,userId:y(w(e,"uuid"))});break}default:return!1}return f.id=s,t.push(f),!0}function wi(e){let t=[],s=[],r;for(let n of e.split(/\r?\n/)){let i=n.trim(),o=/^\[(.*)\]$/.exec(i);if(o){r={lines:[],name:o[1].trim()},t.push(r);continue}i===""||i.startsWith("#")||i.startsWith(";")||(r?r.lines.push(i):s.push(i))}return s.length>0&&t.unshift({lines:s,name:"Proxy"}),t}function Zr(e,t){let s=[];for(let r of e)r.name===t&&s.push(...r.lines);return s}function vi(e,t,s){for(let r=t;r<e.length;r+=1){let n=L(e[r]),i=n.indexOf("=");i!==-1&&(s[L(n.slice(0,i))]=L(n.slice(i+1)))}}function xr(e,t){let s=e;s.includes("[Proxy]")&&(s=s.replace(/^[\s\S]*?\[/,"["));let r=wi(s),n=Zr(r,"Proxy");if(n.length===0)return!1;let i=t.length,o=t.length;for(let a of n){let c=/^(.*?)\s*=\s*(.*)$/.exec(a);if(!c)continue;let u=c[1],p=c[2],f=Q(p,",");if(f.length<3)continue;let l=pe(),h="",g="",d="",m="",v="",b="",S="",$="",I="",O="",E="tcp",A="",_="",q="",te="",N="",Y="1",W,z,ee,vs;switch(f[0].toLowerCase()){case"direct":case"reject":case"reject-tinygif":continue;case"custom":{if(f.length<5||(h=L(f[1]),g=L(f[2]),g==="0"))continue;d=L(f[3]),v=L(f[4]);for(let M=6;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="obfs"?(b="simple-obfs",$=T):R==="obfs-host"?I=T:R==="udp-relay"?W=H(T):R==="tfo"&&(z=H(T))}b!==""&&(S=`obfs=${$}`,S+=I===""?"":`;obfs-host=${I}`),ae(l,{group:P.ss,method:d,password:v,plugin:b,pluginOption:S,port:g,remark:u,scv:ee,server:h,tfo:z,udp:W});break}case"ss":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="encrypt-method"?d=T:R==="password"?v=T:R==="obfs"?(b="simple-obfs",$=T):R==="obfs-host"?I=T:R==="udp-relay"?W=H(T):R==="tfo"&&(z=H(T))}b!==""&&(S=`obfs=${$}`,S+=I===""?"":`;obfs-host=${I}`),ae(l,{group:P.ss,method:d,password:v,plugin:b,pluginOption:S,port:g,remark:u,scv:ee,server:h,tfo:z,udp:W});break}case"socks5":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;f.length>=5&&(m=L(f[3]),v=L(f[4]));for(let M=5;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="udp-relay"?W=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"&&(ee=H(T))}ot(l,{group:P.socks,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,udp:W,username:m});break}case"vmess":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;E="tcp",d="auto";for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);switch(R){case"username":O=T;break;case"ws":E=T==="true"?"ws":"tcp";break;case"tls":A=T==="true"?"tls":"";break;case"ws-path":te=T;break;case"obfs-host":_=T;break;case"ws-headers":{let Ct=Q(T,"|");for(let Ve of Ct){let Le=Q(L(Ve),":");Le.length===2&&(/host/i.test(Le[0])?_=er(Le[1]):/edge/i.test(Le[0])&&(q=er(Le[1])))}break}case"udp-relay":W=H(T);break;case"tfo":z=H(T);break;case"skip-cert-verify":ee=H(T);break;case"tls13":vs=H(T);break;case"vmess-aead":Y=T==="true"?"0":"1";break;default:break}}Ie(l,{add:h,aid:Y,cipher:d,edge:q,group:P.v2ray,host:_,id:O,net:E,path:te,port:g,remark:u,scv:ee,tfo:z,tls:A,tls13:vs,udp:W});break}case"http":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length<2)continue;let R=L(j[0]),T=L(j[1]);R==="username"?m=T:R==="password"?v=T:R==="skip-cert-verify"&&(ee=H(T))}at(l,{group:P.http,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,tls:!1,username:m});break}case"trojan":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);R==="password"?v=T:R==="sni"?_=T:R==="udp-relay"?W=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"&&(ee=H(T))}Nt(l,{group:P.trojan,host:_,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,tlsSecure:!0,udp:W});break}case"snell":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);R==="psk"?v=T:R==="obfs"?b=T:R==="obfs-host"?_=T:R==="udp-relay"?W=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"?ee=H(T):R==="version"&&(N=T)}gs(l,{group:P.snell,host:_,obfs:b,password:v,port:g,remark:u,scv:ee,server:h,tfo:z,udp:W,version:V(N)});break}case"wireguard":{let M="",j="";for(let Ve=1;Ve<f.length;Ve+=1){let Le=Q(L(f[Ve]),"=");if(Le.length!==2)continue;let rr=L(Le[0]),nr=L(Le[1]);rr==="section-name"?M=nr:rr==="test-url"&&(j=nr)}if(M==="")continue;let R=Zr(r,`WireGuard ${M}`);if(R.length===0)continue;let T={};vi(R,0,T);let Ct=[];if(T["dns-server"])for(let Ve of Q(T["dns-server"],","))Ct.push(L(Ve));sr(l,{dnsServers:Ct,group:P.wireguard,keepAlive:T.keepalive??"",mtu:T.mtu??"",port:"0",privateKey:T["private-key"]??"",remark:u,selfIp:T["self-ip"]??"",selfIpv6:T["self-ip-v6"]??"",server:"",testUrl:j,udp:W}),ki(l,T.peer??"");break}case"anytls":{if(h=L(f[1]),g=L(f[2]),g==="0")continue;for(let M=3;M<f.length;M+=1){let j=Q(f[M],"=");if(j.length!==2)continue;let R=L(j[0]),T=L(j[1]);R==="password"?v=T:R==="sni"?_=T:R==="udp-relay"?W=H(T):R==="tfo"?z=H(T):R==="skip-cert-verify"&&(ee=H(T))}ys(l,{group:P.anytls,password:v,port:g,remark:u,scv:ee,server:h,sni:_,tfo:z,udp:W});break}default:{if(!Si(u,f,l,{scv:ee,tfo:z,tls13:vs,udp:W}))continue;break}}l.id=o,t.push(l),o+=1}return t.length>i}function Si(e,t,s,r){let n=e.toLowerCase(),i=t[0],o=i.lastIndexOf(":"),a=L(i.slice(0,o)),c=L(i.slice(o+1));if(c==="0")return!1;let u="",p="",f="",l="",h="",g="",d="",m="",v="",b="",S="",$="tcp",I="",O="1",E=e,A=r.udp,_=r.tfo,q=r.scv,te=r.tls13,N={};for(let Y=1;Y<t.length;Y+=1){let W=Q(L(t[Y]),"=");W.length===2&&(N[L(W[0])]=L(W[1]))}if(n==="shadowsocks"){if(u=N.method??"",p=N.password??"",N.tag&&(E=N.tag),v=N["ssr-protocol"]??"",b=N["ssr-protocol-param"]??"",N.obfs){let W=N.obfs;W==="http"||W==="tls"?(g="simple-obfs",d=W):W==="wss"||W==="ws"?(W==="wss"&&(S="tls"),d="websocket",g="v2ray-plugin"):d=W}m=N["obfs-host"]??"",h=N["obfs-uri"]??"",E===""&&(E=`${a}:${c}`);let Y="";return g==="simple-obfs"?(Y=`obfs=${d}`,m!==""&&(Y+=`;obfs-host=${m}`)):g==="v2ray-plugin"&&(m===""&&!/^\d+(\.\d+){3}$/.test(a)&&!a.includes(":")&&(m=a),Y=`mode=${d}`,m!==""&&(Y+=`;host=${m}`),h!==""&&(Y+=`;path=${h}`),Y+=`;${S}`),v!==""?Je(s,{group:P.ssr,method:u,obfs:d,obfsParam:m,password:p,port:c,protocol:v,protocolParam:b,remark:E,scv:q,server:a,tfo:_,udp:A}):ae(s,{group:P.ss,method:u,password:p,plugin:g,pluginOption:Y,port:c,remark:E,scv:q,server:a,tfo:_,tls13:te,udp:A}),!0}if(n==="vmess"){if($="tcp",u=N.method??"",I=N.password??"",N.tag&&(E=N.tag),N.obfs){let Y=N.obfs;Y==="ws"?$="ws":Y==="over-tls"?S="tls":Y==="wss"&&($="ws",S="tls")}return l=N["obfs-host"]??"",h=N["obfs-uri"]??"",N["over-tls"]&&(S=N["over-tls"]==="true"?"tls":""),N.aead&&(O=N.aead==="true"?"0":"1"),E===""&&(E=`${a}:${c}`),Ie(s,{add:a,aid:O,cipher:u,group:P.v2ray,host:l,id:I,net:$,path:h,port:c,remark:E,scv:q,tfo:_,tls:S,tls13:te,udp:A}),!0}return n==="trojan"?(p=N.password??"",N.tag&&(E=N.tag),N["over-tls"]&&(S=N["over-tls"]),l=N["tls-host"]??"",N["tls-verification"]==="false"&&(q=!0),E===""&&(E=`${a}:${c}`),Nt(s,{group:P.trojan,host:l,password:p,port:c,remark:E,scv:q,server:a,tfo:_,tls13:te,tlsSecure:S==="true",udp:A}),!0):n==="http"?(f=N.username??"",p=N.password??"",N.tag&&(E=N.tag),N["over-tls"]&&(S=N["over-tls"]),N["tls-verification"]==="false"&&(q=!0),E===""&&(E=`${a}:${c}`),f==="none"&&(f=""),p==="none"&&(p=""),at(s,{group:P.http,password:p,port:c,remark:E,scv:q,server:a,tfo:_,tls:S==="true",tls13:te,username:f}),!0):n==="anytls"?(p=N.password??"",N.tag&&(E=N.tag),l=N.sni??"",N["tls-verification"]==="false"&&(q=!0),E===""&&(E=`${a}:${c}`),ys(s,{group:P.anytls,password:p,port:c,remark:E,scv:q,server:a,sni:l,tfo:_,udp:A}),!0):!1}function er(e){let t=L(e);return(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))&&(t=t.slice(1,-1)),t}function ki(e,t){let s=[...t.matchAll(/\((.*?)\)/g)].map(i=>i[1]);if(s.length===0)return;let n=[...s[0].matchAll(/([a-z-]+)\s?=\s?([^" ),]+|".*?"),?\s?/g)];for(let i of n){let o=i[1],a=i[2];switch(o){case"public-key":e.publicKey=a;break;case"endpoint":{let c=a.lastIndexOf(":");e.hostname=a.slice(0,c),e.port=V(a.slice(c+1));break}case"client-id":e.clientId=a;break;case"allowed-ips":e.allowedIps=er(a);break;default:break}}}function $i(e,t){try{let s=ps(e);if(s&&typeof s=="object"&&(w(s,"Proxy")!==void 0||w(s,"proxies")!==void 0))return yi(s,t),!0}catch{return!1}return!1}function Ii(e,t){if(e.includes('"version"'))Ai(e,t);else if(e.includes('"serverSubscribes"'))en(e,t);else if(e.includes('"uiItem"')||e.includes("vnext"))Ei(e,t);else if(e.includes('"proxy_apps"'))Oi(e,t);else if(e.includes('"idInUse"'))Ni(e,t);else if(e.includes('"local_address"')&&e.includes('"local_port"'))en(e,t);else if(e.includes('"ModeFileNameType"'))Ci(e,t);else return!1;return t.length>0}function Ai(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object")return;let r="version"in s&&"servers"in s?"servers":"configs";if(!(r in s))return;let n=y(s.remarks),i=s[r];if(!Array.isArray(i))return;let o=t.length;for(let a of i){let c=y(a.remarks),u=y(a.server_port);if(u==="0")continue;let p=y(a.server),f=pe();ae(f,{group:n,method:y(a.method),password:y(a.password),plugin:y(a.plugin),pluginOption:y(a.plugin_opts),port:u,remark:c===""?`${p}:${u}`:c,server:p}),f.id=o,t.push(f),o+=1}}function Oi(e,t){let s;try{s=JSON.parse(`{"nodes":${e}}`)}catch{return}if(s===null||typeof s!="object"||!Array.isArray(s.nodes))return;let r=t.length;for(let n of s.nodes){let i=y(n.server);if(i==="")continue;let o=y(n.server_port);if(o==="0"||o==="")continue;let a=y(n.remarks),c=pe();ae(c,{group:P.ss,method:y(n.method),password:y(n.password),plugin:y(n.plugin),pluginOption:y(n.plugin_opts),port:o,remark:a===""?`${i}:${o}`:a,server:i}),c.id=r,t.push(c),r+=1}}function en(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object")return;let r=t.length;if("local_port"in s&&"local_address"in s){let i=pe(),o=y(s.server),a=y(s.server_port),c=`${o}:${a}`,u=y(s.method),p=y(s.obfs),f=y(s.protocol),l=y(s.password);ms(u,p,f)?ae(i,{group:P.ss,method:u,password:l,plugin:y(s.plugin),pluginOption:y(s.plugin_opts),port:a,remark:c,server:o}):Je(i,{group:P.ssr,method:u,obfs:p,obfsParam:y(s.obfs_param),password:l,port:a,protocol:f,protocolParam:y(s.protocol_param),remark:c,server:o}),i.id=r,t.push(i);return}let n=s.configs??[];if(Array.isArray(n))for(let i of n){let o=y(i.group)===""?P.ssr:y(i.group),a=y(i.server),c=y(i.server_port);if(c==="0"||c==="")continue;let u=y(i.remarks)===""?`${a}:${c}`:y(i.remarks),p=pe();Je(p,{group:o,method:y(i.method),obfs:y(i.obfs),obfsParam:y(i.obfsparam),password:y(i.password),port:c,protocol:y(i.protocol),protocolParam:y(i.protocolparam),remark:u,server:a}),p.id=r,t.push(p),r+=1}}function Ei(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object")return;let r=t.length;if("outbounds"in s){let a=s.outbounds;if(Array.isArray(a)&&a.length>0&&a[0]?.settings?.vnext?.length>0){let c=a[0].settings.vnext[0],u=y(c.address),p=y(c.port);if(p==="0")return;let f=c.users,l=Array.isArray(f)&&f.length?y(f[0].id):"",h=Array.isArray(f)&&f.length?y(f[0].alterId):"",g=Array.isArray(f)&&f.length?y(f[0].security):"",d=a[0].streamSettings??{},m=y(d.network),v=y(d.security),b="",S="",$="",I="";if(m==="ws"){let A=d.wsSettings??{};b=y(A.path),A.headers&&(S=y(A.headers.Host),$=y(A.headers.Edge))}let O=d.tcpSettings;O&&O.header&&(I=y(O.header.type),I==="http"&&O.header.request&&(Array.isArray(O.header.request.path)&&O.header.request.path.length&&(b=y(O.header.request.path[0])),O.header.request.headers&&(S=y(O.header.request.headers.Host),$=y(O.header.request.headers.Edge))));let E=pe();Ie(E,{add:u,aid:h,cipher:g,edge:$,group:P.v2ray,host:S,id:l,net:m,path:b,port:p,remark:`${u}:${p}`,tls:v,type:I}),t.push(E)}return}let n=new Map,i=s.subItem??[];for(let a of i)n.set(y(a.id),y(a.remarks));let o=s.vmess??[];for(let a of o){if(a.address===null||a.address===void 0||a.port===null||a.id===null)continue;let c=y(a.remarks),u=y(a.address),p=y(a.port);if(p==="0"||p==="")continue;let f=y(a.subid),l="";f!==""&&(l=n.get(f)??""),c===""&&(c=`${u}:${p}`);let h=H(a.allowInsecure),g=V(a.configType),d=pe();if(g===1)Ie(d,{add:u,aid:y(a.alterId),cipher:y(a.security),group:l||P.v2ray,host:y(a.requestHost),id:y(a.id),net:y(a.network),path:y(a.path),port:p,remark:c,scv:h,sni:y(a.sni),tls:y(a.streamSecurity),type:y(a.headerType)});else if(g===3)ae(d,{group:l||P.ss,method:y(a.security),password:y(a.id),port:p,remark:c,scv:h,server:u});else if(g===4)ot(d,{group:l||P.socks,port:p,remark:c,scv:h,server:u});else continue;d.id=r,t.push(d),r+=1}}function Ni(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object"||!Array.isArray(s.configs))return;let r=t.length;for(let n of s.configs){let i=y(n.group),o=y(n.server),a=y(n.server_port);if(a==="0"||a==="")continue;let c=y(n.remarks)===""?`${o}:${a}`:y(n.remarks),u=y(n.password),p=pe(),f=V(n.type);if(f===5)ot(p,{group:i,password:u,port:a,remark:c,server:o,username:y(n.username)});else if(f===6){let l=y(n.protocol),h=y(n.obfs),g=y(n.method);ms(g,h,l)?ae(p,{group:i,method:g,password:u,port:a,remark:c,server:o}):Je(p,{group:i,method:g,obfs:h,obfsParam:y(n.obfsparam),password:u,port:a,protocol:l,protocolParam:y(n.protocolparam),remark:c,server:o})}else continue;p.id=r,t.push(p),r+=1}}function Ci(e,t){let s;try{s=JSON.parse(e)}catch{return}if(s===null||typeof s!="object"||!Array.isArray(s.Server))return;let r=t.length;for(let n of s.Server){let i=pe();yn(`Netch://${cn(JSON.stringify(n))}`,i),i.id=r,t.push(i),r+=1}}function Pi(e){return e.startsWith("http://")||e.startsWith("https://")}function Te(e,t){let s=new RegExp(t).exec(e);return s?s.slice():null}function Ti(e,t){if(/^vmess:\/\/[A-Za-z0-9-_]+\?.*/.test(e)){Ri(e,t);return}if(/^vmess:\/\/.*?@.*/.test(e)){Li(e,t);return}if(/^vmess1:\/\/.*?\?.*/.test(e)){_i(e,t);return}let s=ne(e.replace(/(vmess|vmess1):\/\//,""));if(/.*?\s=\s.*/.test(s)){Fi(s,t);return}let r;try{let m=JSON.parse(s);if(m===null||typeof m!="object")return;r=m}catch{return}let n="1";r.v!==void 0&&(n=String(r.v));let i=String(r.ps??""),o=String(r.add??""),a=String(r.port??"");if(a==="0"||a==="")return;let c=String(r.type??""),u=String(r.id??""),p=String(r.aid??""),f=String(r.net??""),l=String(r.tls??""),h=String(r.host??""),g=String(r.sni??""),d="";switch(V(n)){case 1:{if(h!==""){let m=Q(h,";");m.length===2&&(h=m[0],d=m[1])}break}case 2:{d=String(r.path??"");break}default:break}o=L(o),Ie(t,{add:o,aid:p,cipher:"auto",group:P.v2ray,host:h,id:u,net:f,path:d,port:a,remark:i,sni:g,tls:l,type:c})}function Li(e,t){let s=e.slice(8),r="",n=s.lastIndexOf("#");n!==-1&&(r=U(s.slice(n+1)),s=s.slice(0,n));let o=/^([a-z]+)(?:\+([a-z]+))?:([\da-f]{4}(?:[\da-f]{4}-){4}[\da-f]{12})-(\d+)@(.+):(\d+)(?:\/?\?(.*))?$/.exec(s);if(!o)return;let a=o[1],c=o[2]??"",u=o[3],p=o[4],f=o[5],l=o[6],h=o[7]??"",g="",d="",m="";switch(a){case"tcp":case"kcp":g=k(h,"type");break;case"http":case"ws":d=k(h,"host"),m=k(h,"path");break;case"quic":g=k(h,"security"),d=k(h,"type"),m=k(h,"key");break;default:return}r===""&&(r=`${f}:${l}`),Ie(t,{add:f,aid:p,cipher:"auto",group:P.v2ray,host:d,id:u,net:a,path:m,port:l,remark:r,tls:c,type:g})}function Ri(e,t){let s=e.slice(8),r="tcp",n=s.indexOf("?"),i=n>=0?s.slice(n+1):"";s=n>=0?s.slice(0,n):s;let o=Te(ne(s),"(.*?):(.*)@(.*):(.*)");if(!o)return;let a=o[1],c=o[2],u=o[3],p=o[4];if(p==="0")return;let f=U(k(i,"remarks")),l=k(i,"obfs"),h="",g="",d="";l!==""?l==="websocket"&&(r="ws",h=k(i,"obfsParam"),g=k(i,"path")):(r=k(i,"network"),h=k(i,"wsHost"),g=k(i,"wspath"));let m=k(i,"tls")==="1"?"tls":"",v=k(i,"aid");v===""&&(v="0"),f===""&&(f=`${u}:${p}`),Ie(t,{add:u,aid:v,cipher:a,group:P.v2ray,host:h,id:c,net:r,path:g,port:p,remark:f,tls:m,type:d})}function _i(e,t){let s=e.slice(9),r="",n="",i=s.indexOf("#");i!==-1&&(r=s.slice(i+1),s=s.slice(0,i));let o=s.indexOf("?"),a=o>=0?s.slice(o+1):"";s=o>=0?s.slice(0,o):s;let c=Te(s,"(.*?)@(.*):(.*)");if(!c)return;let u=c[1],p=c[2],f=c[3],l=f.indexOf("/");if(l!==-1&&(n=f.slice(l),f=f.slice(0,l)),f==="0")return;let h=k(a,"network"),g=k(a,"tls")==="true"?"tls":"",d=k(a,"ws.host");r===""&&(r=`${p}:${f}`),Ie(t,{add:p,aid:"0",cipher:"auto",group:P.v2ray,host:d,id:u,net:h,path:n,port:f,remark:r,tls:g,type:""})}function Fi(e,t){let s=e.replace(/(.*?)\s=\s(.*)/,"$1,$2"),r=Q(s,",");if(r.length<6||r[1]!=="vmess")return;let n=L(r[0]),i=L(r[2]),o=L(r[3]);if(o==="0")return;let a=L(r[4]),c=L(r[5].replace(/"/g,"")),u=P.v2ray,p="",f="",l="",h="tcp",g="";for(let d=6;d<r.length;d+=1){let m=Q(r[d],"=");if(m.length<2)continue;let v=L(m[0]),b=L(m.slice(1).join("="));switch(v){case"group":u=b;break;case"over-tls":p=b==="true"?"tls":"";break;case"tls-host":f=b;break;case"obfs-path":l=b.replace(/"/g,"");break;case"obfs-header":{let S=Q(b.replace(/"/g,"").replace(/\[Rr\]\[Nn\]/g,"|"),"|");for(let $ of S)/Host: /i.test($)?f=$.slice(6):/Edge: /i.test($)&&(g=$.slice(6));break}case"obfs":b==="ws"&&(h="ws");break;default:break}}l===""&&(l="/"),Ie(t,{add:i,aid:"0",cipher:a,edge:g,group:u,host:f,id:c,net:h,path:l,port:o,remark:n,tls:p,type:"none"})}function Mi(e,t){let s=e.slice(5).replace(/\/\?/g,"?"),r=P.ss,n="",i="",o="",a="",c=r,u=s.indexOf("#");u!==-1&&(n=U(s.slice(u+1)),s=s.slice(0,u));let p=s.indexOf("?");if(p!==-1){i=s.slice(p+1);let d=U(k(i,"plugin")),m=d.indexOf(";");o=m===-1?d:d.slice(0,m),a=m===-1?"":d.slice(m+1);let v=k(i,"group");v!==""&&(c=ne(v)),s=s.slice(0,p)}let f="",l="",h="",g="";if(s.includes("@")){let d=Te(s,"(\\S+?)@(\\S+):(\\d+)");if(!d)return;let m=d[1];h=d[2],g=d[3];let v=U(m),b=Te(ne(v),"(\\S+?):(\\S+)"),S=Te(v,"(\\S+?):(\\S+)"),$=b&&pn(b[1])?b:S??b;if(!$)return;f=$[1],l=$[2]}else{let d=Te(ne(s),"(\\S+?):(\\S+)@(\\S+):(\\d+)");if(!d)return;f=d[1],l=d[2],h=d[3],g=d[4]}g!=="0"&&(n===""&&(n=`${h}:${g}`),ae(t,{group:c,method:f,password:l,plugin:o,pluginOption:a,port:g,remark:n,server:h}))}function Di(e,t){let s=e.slice(6).replace(/\r/g,"");s=ne(s);let r="",n="",i="",o="",a=s.indexOf("/?");if(a!==-1){let v=s.slice(a+2);s=s.slice(0,a),r=ne(k(v,"group")),n=ne(k(v,"remarks")),i=ne(k(v,"obfsparam")).replace(/\s/g,""),o=ne(k(v,"protoparam")).replace(/\s/g,"")}let c=Te(s,"(\\S+):(\\d+?):(\\S+?):(\\S+?):(\\S+?):(\\S+)");if(!c)return;let u=c[1],p=c[2],f=c[3],l=c[4],h=c[5],g=ne(c[6]);if(p==="0")return;let d=r===""?P.ssr:r,m=n===""?`${u}:${p}`:n;ms(l,h,f)?ae(t,{group:d,method:l,password:g,port:p,remark:m,server:u}):Je(t,{group:d,method:l,obfs:h,obfsParam:i,password:g,port:p,protocol:f,protocolParam:o,remark:m,server:u})}function Bi(e,t){let s=t.length,r=ne(e.slice(6)),n;try{n=JSON.parse(r)}catch{return}if(n===null||typeof n!="object"||!("servers"in n))return;let i=String(n.airport??""),o=n.servers,a;if(Array.isArray(o))a=o;else if(o!==null&&typeof o=="object")a=Object.keys(o).map(c=>o[c]);else return;for(let c of a){if(c===null||typeof c!="object")continue;let u=String(c.server??""),p=String(c.port??n.port??"");if(u===""||p===""||p==="0")continue;let f=String(c.remarks??""),l=String(c.encryption??n.encryption??""),h=String(c.password??n.password??""),g=String(c.plugin??n.plugin??""),d=String(c.plugin_options??n.plugin_options??""),m=pe();ae(m,{group:i,method:l,password:h,plugin:g,pluginOption:d,port:p,remark:f,server:u}),m.id=s,t.push(m),s+=1}}function ji(e,t){let s="",r="",n="",i="",o="",a="";if(e.includes("socks://")){let c=e,u=c.indexOf("#");if(u!==-1&&(r=U(c.slice(u+1)),c=c.slice(0,u)),c=ne(c.slice(8)),c.includes("@")){let f=Q(c,"@");if(f.length<2)return;c=f[1];let l=Q(f[0],":");if(l.length<2)return;o=l[0],a=l[1]}let p=Q(c,":");if(p.length<2)return;n=p[0],i=p[1]}else(e.includes("https://t.me/socks")||e.includes("tg://socks"))&&(n=k(e,"server"),i=k(e,"port"),o=U(k(e,"user")),a=U(k(e,"pass")),r=U(k(e,"remarks")),s=U(k(e,"group")));s===""&&(s=P.socks),r===""&&(r=`${n}:${i}`),!(i==="0"||i==="")&&ot(t,{group:s,password:a,port:i,remark:r,server:n,username:o})}function Ki(e,t){let s=k(e,"server"),r=k(e,"port"),n=U(k(e,"user")),i=U(k(e,"pass")),o=U(k(e,"remarks")),a=U(k(e,"group"));a===""&&(a=P.http),o===""&&(o=`${s}:${r}`),!(r==="0"||r==="")&&at(t,{group:a,password:i,port:r,remark:o,server:s,tls:e.includes("/https"),username:n})}function Ui(e,t){let s=e,r="",n="",i=s.includes("https://"),o=s.indexOf("?");if(o!==-1){let f=s.slice(o+1);s=s.slice(0,o),r=U(k(f,"remarks")),n=U(k(f,"group"))}s=s.slice(s.indexOf("://")+3),s=ne(s);let a="",c="",u="",p="";if(s.includes("@")){let f=Te(s,"(.*?):(.*?)@(.*):(.*)");if(!f)return;u=f[1],p=f[2],a=f[3],c=f[4]}else{let f=Te(s,"(.*):(.*)");if(!f)return;a=f[1],c=f[2]}n===""&&(n=P.http),r===""&&(r=`${a}:${c}`),c!=="0"&&at(t,{group:n,password:p,port:c,remark:r,server:a,tls:i,username:u})}function Gi(e,t){let s=e.slice(9),r="",n="",i="",o="",a="",c=s.lastIndexOf("#");c!==-1&&(r=U(s.slice(c+1)),s=s.slice(0,c));let u=s.indexOf("?");u!==-1&&(n=s.slice(u+1),s=s.slice(0,u));let p=Te(s,"(.*?)@(.*):(.*)");if(!p)return;let f=p[1],l=p[2],h=p[3];if(h==="0")return;i=k(n,"sni"),i===""&&(i=k(n,"peer"));let g=k(n,"tfo"),d=U(k(n,"group"));k(n,"ws")==="1"?(o=k(n,"wspath"),a="ws"):k(n,"type")==="ws"&&(o=k(n,"path"),o.startsWith("%2F")&&(o=U(o)),a="ws");let m=k(n,"type"),v=k(n,"sni"),b=k(n,"allowInsecure");r===""&&(r=`${l}:${h}`),Nt(t,{group:d===""?P.trojan:d,host:i,network:a,password:f,path:o,port:h,remark:r,scv:b===""?void 0:$e(b),server:l,sni:v,tfo:g===""?void 0:$e(g),tlsSecure:m!==""||!0})}function $e(e){let t=e.trim().toLowerCase();if(["1","true","yes","on"].includes(t))return!0;if(["0","false","no","off"].includes(t))return!1}function Wi(e,t){let s=e.replace(/(hysteria2|hy2):\/\//,"hysteria2://").replace(/\/\?/g,"?");/hysteria2:\/\/.*?[:].*/.test(s)&&Vi(s,t)}function Vi(e,t){let s=e.slice(12),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a="",c="",u="";if(s.includes("@")){let I=/^(.*?)@(.*)[:](\d+)$/.exec(s);if(!I)return;a=I[1],c=I[2],u=I[3]}else{if(a=k(n,"password"),a===""||!s.includes(":"))return;let I=/^(.*)[:](\d+)$/.exec(s);if(!I)return;c=I[1],u=I[2]}let p=k(n,"insecure"),f=k(n,"up"),l=k(n,"down"),h=k(n,"alpn"),g=k(n,"obfs"),d=k(n,"obfs-password"),m=k(n,"sni"),v=k(n,"pinSHA256"),b=k(n,"mport"),S=k(n,"ports"),$=S!==""?S:b!==""?b:u;r===""&&(r=`${c}:${u}`),hn(t,{alpn:h,down:l,fingerprint:v,group:P.hysteria2,obfs:g,obfsPassword:d,password:a,port:u,ports:$,remark:r,scv:p===""?void 0:$e(p),server:c,sni:m,up:f})}function qi(e,t){let s=e.slice(9),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?)@(.*)[:](\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3];if(p==="0")return;let f=k(n,"sni"),l=k(n,"udp"),h=k(n,"insecure");r===""&&(r=`${u}:${p}`),ys(t,{group:P.anytls,password:c,port:p,remark:r,scv:h===""?void 0:$e(h),server:u,sni:f,udp:l===""?void 0:$e(l)})}function Hi(e,t){let s=e.slice(8),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?)@(.*)[:](\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3];if(c===""||p===""||p==="0")return;let f=k(n,"obfs"),l=k(n,"host"),h=k(n,"version"),g=k(n,"udp"),d=k(n,"tfo"),m=k(n,"skip-cert-verify");r===""&&(r=`${u}:${p}`),gs(t,{group:P.snell,host:l,obfs:f===""?"none":f,password:c,port:p,remark:r,scv:m===""?void 0:$e(m),server:u,tfo:d===""?void 0:$e(d),udp:g===""?void 0:$e(g),version:h===""?1:V(h)})}function Yi(e,t){let s=e.slice(11),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.lastIndexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*)[:](\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2];if(c===""||u==="0")return;let p=k(n,"auth"),f=k(n,"protocol"),l=k(n,"upmbps"),h=k(n,"downmbps"),g=k(n,"alpn"),d=k(n,"obfs"),m=k(n,"obfsParam"),v=k(n,"peer"),b=k(n,"insecure");r===""&&(r=`${c}:${u}`),dn(t,{alpn:g,authStr:p,downSpeed:h,group:P.hysteria,obfs:d,obfsProtocol:m,port:u,protocol:f===""?"udp":f,remark:r,scv:b===""?void 0:$e(b),server:c,sni:v===""?c:v,upSpeed:l})}function Ji(e,t){let r=e.replace(/^(wg|wireguard):\/\//,"wireguard://").slice(13),n="",i="",o=r.lastIndexOf("#");o!==-1&&(n=U(r.slice(o+1)),r=r.slice(0,o));let a=r.lastIndexOf("?");a!==-1&&(i=r.slice(a+1),r=r.slice(0,a));let c=/^(?:(.*)@)?\[?(.*?)]?:(\d+)$/.exec(r);if(!c)return;let u=c[2],p=c[3];if(u===""||p==="0")return;let f=k(i,"privateKey")||k(i,"privatekey"),l=k(i,"publicKey")||k(i,"publickey");if(f===""||l==="")return;let h=k(i,"presharedKey"),g=k(i,"selfIP"),d=k(i,"selfIPv6"),m=k(i,"mtu"),v=k(i,"keepAlive"),b=k(i,"dns");n===""&&(n=`${u}:${p}`),sr(t,{dnsServers:b===""?["1.1.1.1"]:b.split(",").map(S=>S.trim()),group:P.wireguard,keepAlive:v===""?25:V(v),mtu:m===""?1420:V(m),port:p,preSharedKey:h,privateKey:f,publicKey:l,remark:n,selfIp:g===""?"10.0.0.2":g,selfIpv6:d,server:u})}function Xi(e,t){let s=e.slice(8),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.indexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?)@\[?(.*?)\]?:(\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3];if(p==="0")return;let f=k(n,"type"),l=k(n,"security"),h=k(n,"host"),g=U(k(n,"path")),d=U(k(n,"serviceName")),m=g!==""?g:d,v=k(n,"sni"),b=k(n,"flow"),S=k(n,"fp"),$=k(n,"pbk"),I=k(n,"sid"),O=k(n,"alpn");r===""&&(r=`${u}:${p}`),mn(t,{alpn:O===""?void 0:O.split(","),fingerprint:S,flow:b,group:P.v2ray,host:h,network:f,path:m,port:p,publicKey:$,remark:r,scv:k(n,"allowInsecure")===""?void 0:$e(k(n,"allowInsecure")),server:u,shortId:I,sni:v,tls:l,userId:c})}function Qi(e,t){let s=e.slice(7),r="",n="",i=s.lastIndexOf("#");i!==-1&&(r=U(s.slice(i+1)),s=s.slice(0,i));let o=s.indexOf("?");o!==-1&&(n=s.slice(o+1),s=s.slice(0,o));let a=/^(.*?):(.*?)@\[?(.*?)\]?:(\d+)$/.exec(s);if(!a)return;let c=a[1],u=a[2],p=a[3],f=a[4];if(f==="0")return;let l=k(n,"congestion_control")||k(n,"congestion-controller"),h=k(n,"alpn"),g=k(n,"sni");r===""&&(r=`${p}:${f}`),gn(t,{alpn:h===""?void 0:h.split(","),congestionControl:l,group:P.v2ray,password:u,port:f,remark:r,scv:k(n,"allow_insecure")===""?void 0:$e(k(n,"allow_insecure")),server:p,sni:g,userId:c})}function zi(e,t){x(e,"ssr://")?Di(e,t):x(e,"vmess://")||x(e,"vmess1://")?Ti(e,t):x(e,"ss://")?Mi(e,t):x(e,"socks://")||x(e,"https://t.me/socks")||x(e,"tg://socks")?ji(e,t):x(e,"https://t.me/http")||x(e,"tg://http")?Ki(e,t):x(e,"Netch://")?yn(e,t):x(e,"trojan://")?Gi(e,t):x(e,"vless://")?Xi(e,t):x(e,"tuic://")?Qi(e,t):x(e,"snell://")?Hi(e,t):x(e,"hysteria://")?Yi(e,t):x(e,"wg://")||x(e,"wireguard://")?Ji(e,t):e.includes("hysteria2://")||e.includes("hy2://")?Wi(e,t):x(e,"anytls://")?qi(e,t):Pi(e)&&Ui(e,t)}function Zi(e,t){let s=!1;if(x(e,"ssd://")&&(Bi(e,t),s=!0),!s&&/"?(Proxy|proxies)"?:/.test(e)&&$i(e,t)&&(s=!0),!s&&xr(e,t)&&(s=!0),s)return;let r=ne(e);if(/(vmess|shadowsocks|http|trojan)\s*?=/.test(r)&&xr(r,t))return;let n=t.length;tn(r,t),t.length===n&&r!==e&&tn(e,t)}function tn(e,t){let s=e.replace(/\r\n/g,`
|
|
130
130
|
`),r=Qr(s,`
|
|
131
131
|
`)<1?Qr(s,"\r")<1?" ":"\r":`
|
|
132
|
-
`;for(let n of s.split(r)){let i=n.replace(/\r/g,"");if(i==="")continue;let o=pe();Qi(i,o),o.type!=="unknown"&&t.push(o)}}function ys(e){let t=[];return $i(e,t)||zi(e,t),t}var Zi=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],op=new Set(Zi);function bn(e){try{return new RegExp(e)}catch{return/$^/}}function tr(e,t){return bn(t).test(e)}function xi(e,t){let s=bn(t).exec(e);return s!==null&&s[0]===e}var eo={anytls:"ANYTLS",http:"HTTP",https:"HTTPS",hysteria:"HYSTERIA",hysteria2:"HYSTERIA2",ss:"SS",ssr:"SSR",snell:"SNELL",socks5:"SOCKS5",trojan:"TROJAN",tuic:"TUIC",vless:"VLESS",vmess:"VMESS",wireguard:"WIREGUARD"};function sn(e,t){let s=e.split(","),r=!1;for(let n of s)if(/^-?\d+$/.test(n))Number.parseInt(n,10)===t&&(r=!0);else if(/^(\d+)-(\d+)$/.test(n)){let i=/^(\d+)-(\d+)$/.exec(n),o=Number.parseInt(i[1],10),a=Number.parseInt(i[2],10);t>=o&&t<=a&&(r=!0)}else if(/^!-?(\d+)$/.test(n)){r=!0;let i=/^!-?(\d+)$/.exec(n);Number.parseInt(i[1],10)===t&&(r=!1)}else if(/^!(\d+)-(\d+)$/.test(n)){r=!0;let i=/^!(\d+)-(\d+)$/.exec(n),o=Number.parseInt(i[1],10),a=Number.parseInt(i[2],10);t>=o&&t<=a&&(r=!1)}else if(/^(\d+)-$/.test(n)){let i=/^(\d+)-$/.exec(n);Number.parseInt(i[1],10)>=t&&(r=!0)}else if(/^(\d+)\+$/.test(n)){let i=/^(\d+)\+$/.exec(n);Number.parseInt(i[1],10)<=t&&(r=!0)}return r}function to(e,t){if(e.startsWith("!!GROUP=")){let s=/^!!(?:GROUP)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";return{matched:tr(t.group,r),realRule:n}}if(e.startsWith("!!GROUPID=")||e.startsWith("!!INSERT=")){let s=/^!!(?:GROUPID|INSERT)=([\d\-+!,]+)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"",i=e.startsWith("!!INSERT=")?-1:1;return{matched:sn(r,i*t.groupId),realRule:n}}if(e.startsWith("!!TYPE=")){let s=/^!!(?:TYPE)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";if(t.type==="unknown")return{matched:!1,realRule:n};let i=eo[t.type]??"";return{matched:xi(i,r),realRule:n}}if(e.startsWith("!!PORT=")){let s=/^!!(?:PORT)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";return{matched:sn(r,t.port),realRule:n}}if(e.startsWith("!!SERVER=")){let s=/^!!(?:SERVER)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";return{matched:tr(t.hostname,r),realRule:n}}return{matched:!0,realRule:e}}function wn(e,t,s=!0){let r=e.replace(/=/g,"-");s&&r.includes(",")&&(r=`"${r}"`);let n=r,i=2;for(;t.includes(n);)n=`${r} ${i}`,i+=1;return n}function vn(e,t,s,r){if(e.startsWith("[]")&&r){s.push(e.slice(2));return}for(let n of t){let{matched:i,realRule:o}=to(e,n);i&&(o===""||tr(n.remark,o))&&!s.includes(n.remark)&&s.push(n.remark)}}var so=["origin","auth_sha1_v4","auth_aes128_md5","auth_aes128_sha1","auth_chain_a","auth_chain_b"],ro=["plain","http_simple","http_post","random_head","tls1.2_ticket_auth","tls1.2_ticket_fastauth"],no=["rc4-md5","aes-128-ctr","aes-192-ctr","aes-256-ctr","aes-128-cfb","aes-192-cfb","aes-256-cfb","chacha20-ietf","xchacha20","none"];function io(e){return e.replace(/^\[+/,"").replace(/\]+$/,"")}var oo=new Set(["ss","ssr","vmess","trojan","snell","http","https","socks5","wireguard","hysteria","hysteria2","vless","anytls","tuic"]),Sn=new Set(["ss","ssr","vmess","trojan","snell","http","https","socks5","wireguard"]),ao=new Set([...Sn,"hysteria","hysteria2","vless","tuic"]);function co(e){return e==="premium"?{clientFingerprint:!1,protocols:Sn,reality:!1}:e==="stash"?{clientFingerprint:!1,protocols:ao,reality:!0}:{clientFingerprint:!0,protocols:oo,reality:!0}}function lo(e,t,s,r,n,i){let o={name:r,port:e.port,server:io(e.hostname)},a=co(t.clashFlavor);if(a.protocols.has(e.type)){switch(e.type){case"ss":{if(t.filterDeprecated&&e.encryptMethod==="chacha20")return;o.type="ss",o.cipher=e.encryptMethod,o.password=e.password;let c=e.pluginOption.replace(/;/g,"&");if(e.plugin==="simple-obfs"||e.plugin==="obfs-local")o.plugin="obfs",o["plugin-opts"]={host:U(k(c,"obfs-host")),mode:U(k(c,"obfs"))};else if(e.plugin==="v2ray-plugin"){o.plugin="v2ray-plugin";let u={host:k(c,"host"),mode:k(c,"mode"),mux:c.includes("mux"),path:k(c,"path"),tls:c.includes("tls")};n!==void 0&&(u["skip-cert-verify"]=n),o["plugin-opts"]=u}break}case"vmess":{switch(o.type="vmess",o.uuid=e.userId,o.alterId=e.alterId,o.cipher=e.encryptMethod,o.tls=e.tlsSecure,n!==void 0&&(o["skip-cert-verify"]=n),e.serverName!==""&&(o.servername=e.serverName),e.transferProtocol){case"tcp":break;case"ws":o.network=e.transferProtocol,t.clashNewFieldName?o["ws-opts"]={...e.host!==""||e.edge!==""?{headers:{...e.edge!==""?{Edge:e.edge}:{},...e.host!==""?{Host:e.host}:{}}}:{},path:e.path}:(o["ws-path"]=e.path,(e.host!==""||e.edge!=="")&&(o["ws-headers"]={...e.edge!==""?{Edge:e.edge}:{},...e.host!==""?{Host:e.host}:{}}));break;case"http":o.network=e.transferProtocol,o["http-opts"]={...e.host!==""||e.edge!==""?{headers:{...e.edge!==""?{Edge:[e.edge]}:{},...e.host!==""?{Host:[e.host]}:{}}}:{},method:"GET",path:[e.path]};break;case"h2":o.network=e.transferProtocol,o["h2-opts"]={...e.host!==""?{host:[e.host]}:{},path:e.path};break;case"grpc":o.network=e.transferProtocol,o.servername=e.host,o["grpc-opts"]={"grpc-service-name":e.path};break;default:return}break}case"ssr":{if(t.filterDeprecated&&(!s&&!no.includes(e.encryptMethod)||!so.includes(e.protocol)||!ro.includes(e.obfs)))return;o.type="ssr",o.cipher=e.encryptMethod==="none"?"dummy":e.encryptMethod,o.password=e.password,o.protocol=e.protocol,o.obfs=e.obfs,s?(o.protocolparam=e.protocolParam,o.obfsparam=e.obfsParam):(o["protocol-param"]=e.protocolParam,o["obfs-param"]=e.obfsParam);break}case"socks5":o.type="socks5",e.username!==""&&(o.username=e.username),e.password!==""&&(o.password=e.password),n!==void 0&&(o["skip-cert-verify"]=n);break;case"http":case"https":o.type="http",e.username!==""&&(o.username=e.username),e.password!==""&&(o.password=e.password),o.tls=e.tlsSecure,n!==void 0&&(o["skip-cert-verify"]=n);break;case"trojan":switch(o.type="trojan",o.password=e.password,e.host!==""&&(o.sni=e.host),n!==void 0&&(o["skip-cert-verify"]=n),e.transferProtocol){case"tcp":break;case"grpc":o.network=e.transferProtocol,e.path!==""&&(o["grpc-opts"]={"grpc-service-name":e.path});break;case"ws":o.network=e.transferProtocol,o["ws-opts"]={...e.host!==""?{headers:{Host:e.host}}:{},path:e.path};break;default:break}break;case"snell":if(e.snellVersion>=4)return;o.type="snell",o.psk=e.password,e.snellVersion!==0&&(o.version=e.snellVersion),e.obfs!==""&&(o["obfs-opts"]={...e.host!==""?{host:e.host}:{},mode:e.obfs});break;case"wireguard":o.type="wireguard",o["public-key"]=e.publicKey,o["private-key"]=e.privateKey,o.ip=e.selfIp,e.selfIpv6!==""&&(o.ipv6=e.selfIpv6),e.preSharedKey!==""&&(o["preshared-key"]=e.preSharedKey),e.dnsServers.length>0&&(o.dns=e.dnsServers),e.mtu>0&&(o.mtu=e.mtu);break;case"hysteria":{o.type="hysteria",e.ports!==""&&(o.ports=e.ports),e.protocol!==""&&(o.protocol=e.protocol),e.obfsParam!==""&&(o["obfs-protocol"]=e.obfsParam),e.up!==""&&(o.up=e.up),e.upSpeed&&(o["up-speed"]=e.upSpeed),e.down!==""&&(o.down=e.down),e.downSpeed&&(o["down-speed"]=e.downSpeed),e.authStr!==""&&(o["auth-str"]=e.authStr,o.auth=cn(e.authStr)),e.obfs!==""&&(o.obfs=e.obfs),e.sni!==""&&(o.sni=e.sni),n!==void 0&&(o["skip-cert-verify"]=n),e.fingerprint!==""&&a.clientFingerprint&&(o.fingerprint=e.fingerprint),e.alpn.length>0&&(o.alpn=e.alpn),e.ca!==""&&(o.ca=e.ca),e.caStr!==""&&(o["ca-str"]=e.caStr),e.recvWindowConn&&(o["recv-window-conn"]=e.recvWindowConn),e.recvWindow&&(o["recv-window"]=e.recvWindow),e.disableMtuDiscovery!==void 0&&(o["disable-mtu-discovery"]=e.disableMtuDiscovery),e.tcpFastOpen!==void 0&&(o["fast-open"]=e.tcpFastOpen),e.hopInterval&&(o["hop-interval"]=e.hopInterval);break}case"hysteria2":o.type="hysteria2",e.ports!==""&&(o.ports=e.ports),e.upSpeed&&(o.up=e.upSpeed),e.downSpeed&&(o.down=e.downSpeed),e.password!==""&&(o.password=e.password),e.obfs!==""&&(o.obfs=e.obfs),e.obfsParam!==""&&(o["obfs-password"]=e.obfsParam),e.sni!==""&&(o.sni=e.sni),n!==void 0&&(o["skip-cert-verify"]=n),e.fingerprint!==""&&a.clientFingerprint&&(o.fingerprint=e.fingerprint),e.alpn.length>0&&(o.alpn=e.alpn),e.ca!==""&&(o.ca=e.ca),e.caStr!==""&&(o["ca-str"]=e.caStr),e.cwnd&&(o.cwnd=e.cwnd),e.hopInterval&&(o["hop-interval"]=e.hopInterval);break;case"anytls":o.type="anytls",o.password=e.password,e.sni!==""&&(o.sni=e.sni),n!==void 0&&(o["skip-cert-verify"]=n);break;case"vless":if(o.type="vless",o.uuid=e.userId,e.flow!==""&&(o.flow=e.flow),o.tls=e.tlsSecure,e.serverName!==""&&(o.servername=e.serverName),e.fingerprint!==""&&a.clientFingerprint&&(o["client-fingerprint"]=e.fingerprint),e.publicKey!==""||e.shortId!==""){if(!a.reality)return;let c={};e.publicKey!==""&&(c["public-key"]=e.publicKey),c["short-id"]=e.shortId,o["reality-opts"]=c}switch(e.alpn.length>0&&(o.alpn=e.alpn),n!==void 0&&(o["skip-cert-verify"]=n),e.transferProtocol){case"tcp":break;case"ws":o.network=e.transferProtocol,o["ws-opts"]={...e.host!==""?{headers:{Host:e.host}}:{},path:e.path};break;case"grpc":o.network=e.transferProtocol,o["grpc-opts"]={"grpc-service-name":e.path};break;default:break}break;case"tuic":o.type="tuic",o.uuid=e.userId,o.password=e.password,e.congestionControl!==""&&(o["congestion-controller"]=e.congestionControl),e.alpn.length>0&&(o.alpn=e.alpn),e.serverName!==""&&(o.sni=e.serverName),n!==void 0&&(o["skip-cert-verify"]=n);break;default:return}return uo(e,t)&&e.type!=="snell"&&(o.udp=!0),i!==void 0&&(o.tfo=i),t.clashNewFieldName&&e.underlyingProxy!==""&&(o["dialer-proxy"]=e.underlyingProxy),o}}function uo(e,t){return e.udp!==void 0?e.udp:t.udp===!0}function fo(e,t,s,r=!1){let n=[],i=[],o=[];for(let u of e){let p=nn(u.type);s.appendProxyType&&(u.remark=`[${p}] ${u.remark}`);let f=wn(u.remark,o,!1);u.remark=f;let l=u.allowInsecure!==void 0?u.allowInsecure:s.skipCertVerify,h=u.tcpFastOpen!==void 0?u.tcpFastOpen:s.tfo,g=lo(u,s,r,f,l,h);g&&(n.push(g),o.push(f),i.push(u))}if(s.nodeList)return{doc:{proxies:n},nodeList:i};let a=[];for(let u of t){let p={name:u.name,type:u.type==="smart"?"url-test":u.type};switch(u.type){case"select":case"relay":break;case"load-balance":p.strategy=u.strategy,p.lazy=u.lazy,p.url=u.url,u.interval>0&&(p.interval=u.interval),u.tolerance>0&&(p.tolerance=u.tolerance);break;case"smart":case"url-test":u.lazy!==void 0&&(p.lazy=u.lazy),p.url=u.url,u.interval>0&&(p.interval=u.interval),u.tolerance>0&&(p.tolerance=u.tolerance);break;case"fallback":p.url=u.url,u.interval>0&&(p.interval=u.interval),u.tolerance>0&&(p.tolerance=u.tolerance);break;default:continue}u.disableUdp!==void 0&&(p["disable-udp"]=u.disableUdp);let f=[];for(let l of u.proxies)vn(l,i,f,!0);u.usingProvider.length>0?p.use=u.usingProvider:(f.length===0&&f.push("DIRECT"),p.proxies=f),a.push(p)}let c={};return s.clashNewFieldName?(c.proxies=n,a.length>0&&(c["proxy-groups"]=a)):(c.Proxy=n,a.length>0&&(c["Proxy Group"]=a)),{doc:c,nodeList:i}}function po(e){return zs(e,{aliasDuplicateObjects:!1,lineWidth:0})}function kn(e,t,s,r=!1){let{doc:n}=fo(e,t,s,r);return po(n)}function ho(e){let t=[],s;for(let r of e.split(/\r?\n/)){let n=r,i=/^\[(.*)\]$/.exec(n.trim());if(i){s={lines:[],name:i[1].trim()},t.push(s);continue}n.trim()!==""&&s&&s.lines.push(n)}return t}function le(e){return e?"true":"false"}function rn(e,t){let s=`http, ${e.hostname}, ${e.port}`;return e.username!==""&&(s+=`, username=${e.username}`),e.password!==""&&(s+=`, password=${e.password}`),s+=`, tls=${le(e.tlsSecure)}`,t!==void 0&&(s+=`, skip-cert-verify=${le(t)}`),s}function mo(e,t=!1){let s=`public-key = ${e.publicKey}`;return s+=`, endpoint = ${e.hostname}:${e.port}`,e.preSharedKey!==""&&(s+=`, preshared-key = ${e.preSharedKey}`),e.allowedIps!==""&&(s+=`, allowed-ips = "${e.allowedIps}"`),e.keepAlive>0&&(s+=`, keepalive = ${e.keepAlive}`),e.clientId!==""&&(s+=t?`, reserved = [${e.clientId}]`:`, client-id = ${e.clientId}`),s}function go(e,t,s,r){let n=r.version,i=[],o=[],a=[],c=new Map,u=[],p=1080;for(let l of e){s.appendProxyType&&(l.remark=`[${nn(l.type)}] ${l.remark}`);let h=wn(l.remark,i);l.remark=h;let g=l.udp!==void 0?l.udp:s.udp,d=l.tcpFastOpen!==void 0?l.tcpFastOpen:s.tfo,m=l.allowInsecure!==void 0?l.allowInsecure:s.skipCertVerify,v=l.tls13!==void 0?l.tls13:s.tls13,b="";switch(l.type){case"ss":if(n>=3||n===-3?b=`ss, ${l.hostname}, ${l.port}, encrypt-method=${l.encryptMethod}, password=${l.password}`:b=`custom, ${l.hostname}, ${l.port}, ${l.encryptMethod}, ${l.password}, https://github.com/pobizhe/SSEncrypt/raw/master/SSEncrypt.module`,l.plugin!=="")if(l.plugin==="simple-obfs"||l.plugin==="obfs-local")l.pluginOption!==""&&(b+=`,${l.pluginOption.replace(/;/g,",")}`);else continue;break;case"vmess":{if(n<4&&n!==-3)continue;b=`vmess, ${l.hostname}, ${l.port}, username=${l.userId}, tls=${le(l.tlsSecure)}, vmess-aead=${l.alterId===0?"true":"false"}`,l.tlsSecure&&v!==void 0&&(b+=`, tls13=${le(v)}`);let S=[];switch(l.transferProtocol){case"tcp":break;case"ws":{l.host===""?b+=`, ws=true, ws-path=${l.path}, sni=${l.hostname}`:b+=`, ws=true, ws-path=${l.path}, sni=${l.host}`,l.host!==""&&S.push(`Host:${l.host}`),l.edge!==""&&S.push(`Edge:${l.edge}`),S.length>0&&(b+=`, ws-headers=${S.join("|")}`);break}default:continue}m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break}case"ssr":{if(s.surgeSsrPath===""||n<2)continue;let S=["-l",String(p),"-s",l.hostname,"-p",String(l.port),"-m",l.encryptMethod,"-k",l.password,"-o",l.obfs,"-O",l.protocol];l.obfsParam!==""&&S.push("-g",l.obfsParam),l.protocolParam!==""&&S.push("-G",l.protocolParam),b=`external, exec="${s.surgeSsrPath}", args="${S.join('", args="')}", local-port=${p}`,(un(l.hostname)||fn(l.hostname))&&(b+=`, addresses=${l.hostname}`),p+=1;break}case"socks5":b=`socks5, ${l.hostname}, ${l.port}`,l.username!==""&&(b+=`, username=${l.username}`),l.password!==""&&(b+=`, password=${l.password}`),m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break;case"https":if(n===-3){b=`https, ${l.hostname}, ${l.port}, ${l.username}, ${l.password}`,m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break}b=rn(l,m);break;case"http":b=rn(l,m);break;case"trojan":if(n<4&&n!==-3)continue;if(b=`trojan, ${l.hostname}, ${l.port}, password=${l.password}`,l.snellVersion!==0&&(b+=`, version=${l.snellVersion}`),l.host!==""&&(b+=`, sni=${l.host}`),l.transferProtocol==="ws"){b+=", ws=true",l.path!==""&&(b+=`, ws-path=${l.path}`);let S=l.host!==""?l.host:l.hostname;b+=`, ws-headers=Host:"${S}"`}m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break;case"snell":b=`snell, ${l.hostname}, ${l.port}, psk=${l.password}`,l.obfs!==""&&(b+=`, obfs=${l.obfs}`,l.host!==""&&(b+=`, obfs-host=${l.host}`)),l.snellVersion!==0&&(b+=`, version=${l.snellVersion}`);break;case"wireguard":{if(n<4&&n!==-3)continue;let S=hi(l.remark).slice(0,5);b=`wireguard, section-name=${S}`,l.testUrl!==""&&(b+=`, test-url=${l.testUrl}`);let $=[`private-key = ${l.privateKey}`,`self-ip = ${l.selfIp}`];l.selfIpv6!==""&&$.push(`self-ip-v6 = ${l.selfIpv6}`),l.dnsServers.length>0&&$.push(`dns-server = ${l.dnsServers.join(",")}`),l.mtu>0&&$.push(`mtu = ${l.mtu}`),$.push(`peer = (${mo(l)})`);let I=`WireGuard ${S}`;c.set(I,$),u.push(I);break}case"hysteria2":if(n<4)continue;b=`hysteria2, ${l.hostname}, ${l.port}, password=${l.password}`,l.downSpeed&&(b+=`, download-bandwidth=${l.downSpeed}`),m!==void 0&&(b+=`,skip-cert-verify=${le(m)}`),l.fingerprint!==""&&(b+=`,server-cert-fingerprint-sha256=${l.fingerprint}`),l.sni!==""&&(b+=`,sni=${l.sni}`);break;case"anytls":if(n<4&&n!==-3)continue;b=`anytls, ${l.hostname}, ${l.port}, password=${l.password}`,l.sni!==""&&(b+=`,sni=${l.sni}`);break;default:continue}d!==void 0&&(b+=`, tfo=${le(d)}`),g!==void 0&&(b+=`, udp-relay=${le(g)}`),l.underlyingProxy!==""&&(b+=`, underlying-proxy=${l.underlyingProxy}`),o.push(`${h} = ${b}`),i.push(h),a.push(l)}if(r.nodeList)return{extraSections:c,groups:[],proxies:o,sectionOrder:u};let f=[];for(let l of t){let h=[],g="";switch(l.type){case"select":case"smart":case"url-test":case"fallback":break;case"load-balance":if(n<1&&n!==-3)continue;break;case"ssid":{let d=l.proxies.slice(1).join(","),m=`${l.type},default=${l.proxies[0]??""},${d}`;f.push(`${l.name} = ${m}`);continue}default:continue}for(let d of l.proxies)vn(d,a,h,!0);if(h.length===0&&h.push("DIRECT"),h.length===1){let d=h[0].toLowerCase();if(d==="direct"||d==="reject"||d==="reject-tinygif"){o.push(`${l.name} = ${d}`);continue}}g=`${l.type},${h.join(",")}`,(l.type==="url-test"||l.type==="fallback"||l.type==="load-balance")&&(g+=`,url=${l.url},interval=${l.interval}`,l.tolerance>0&&(g+=`,tolerance=${l.tolerance}`),l.timeout>0&&(g+=`,timeout=${l.timeout}`),l.persistent!==void 0&&(g+=`,persistent=${le(l.persistent)}`),l.evaluateBeforeUse!==void 0&&(g+=`,evaluate-before-use=${le(l.evaluateBeforeUse)}`)),f.push(`${l.name} = ${g}`)}return{extraSections:c,groups:f,proxies:o,sectionOrder:u}}function $n(e,t,s,r){let n=go(e,t,s,r);if(r.nodeList)return n.proxies.join(`
|
|
133
|
-
`);let i=r.baseConf===""?[]:
|
|
132
|
+
`;for(let n of s.split(r)){let i=n.replace(/\r/g,"");if(i==="")continue;let o=pe();zi(i,o),o.type!=="unknown"&&t.push(o)}}function bs(e){let t=[],s=pi(e);return Ii(s,t)||Zi(s,t),t}var xi=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],ap=new Set(xi);function bn(e){try{return new RegExp(e)}catch{return/$^/}}function tr(e,t){return bn(t).test(e)}function eo(e,t){let s=bn(t).exec(e);return s!==null&&s[0]===e}var to={anytls:"ANYTLS",http:"HTTP",https:"HTTPS",hysteria:"HYSTERIA",hysteria2:"HYSTERIA2",ss:"SS",ssr:"SSR",snell:"SNELL",socks5:"SOCKS5",trojan:"TROJAN",tuic:"TUIC",vless:"VLESS",vmess:"VMESS",wireguard:"WIREGUARD"};function sn(e,t){let s=e.split(","),r=!1;for(let n of s)if(/^-?\d+$/.test(n))Number.parseInt(n,10)===t&&(r=!0);else if(/^(\d+)-(\d+)$/.test(n)){let i=/^(\d+)-(\d+)$/.exec(n),o=Number.parseInt(i[1],10),a=Number.parseInt(i[2],10);t>=o&&t<=a&&(r=!0)}else if(/^!-?(\d+)$/.test(n)){r=!0;let i=/^!-?(\d+)$/.exec(n);Number.parseInt(i[1],10)===t&&(r=!1)}else if(/^!(\d+)-(\d+)$/.test(n)){r=!0;let i=/^!(\d+)-(\d+)$/.exec(n),o=Number.parseInt(i[1],10),a=Number.parseInt(i[2],10);t>=o&&t<=a&&(r=!1)}else if(/^(\d+)-$/.test(n)){let i=/^(\d+)-$/.exec(n);Number.parseInt(i[1],10)>=t&&(r=!0)}else if(/^(\d+)\+$/.test(n)){let i=/^(\d+)\+$/.exec(n);Number.parseInt(i[1],10)<=t&&(r=!0)}return r}function so(e,t){if(e.startsWith("!!GROUP=")){let s=/^!!(?:GROUP)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";return{matched:tr(t.group,r),realRule:n}}if(e.startsWith("!!GROUPID=")||e.startsWith("!!INSERT=")){let s=/^!!(?:GROUPID|INSERT)=([\d\-+!,]+)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"",i=e.startsWith("!!INSERT=")?-1:1;return{matched:sn(r,i*t.groupId),realRule:n}}if(e.startsWith("!!TYPE=")){let s=/^!!(?:TYPE)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";if(t.type==="unknown")return{matched:!1,realRule:n};let i=to[t.type]??"";return{matched:eo(i,r),realRule:n}}if(e.startsWith("!!PORT=")){let s=/^!!(?:PORT)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";return{matched:sn(r,t.port),realRule:n}}if(e.startsWith("!!SERVER=")){let s=/^!!(?:SERVER)=(.+?)(?:!!(.*))?$/.exec(e),r=s?.[1]??"",n=s?.[2]??"";return{matched:tr(t.hostname,r),realRule:n}}return{matched:!0,realRule:e}}function wn(e,t,s=!0){let r=e.replace(/=/g,"-").replace(/[\r\n]+/g," ");s&&r.includes(",")&&(r=`"${r.replace(/"/g,"'")}"`);let n=r,i=2;for(;t.includes(n);)n=`${r} ${i}`,i+=1;return n}function vn(e,t,s,r){if(e.startsWith("[]")&&r){s.push(e.slice(2));return}for(let n of t){let{matched:i,realRule:o}=so(e,n);i&&(o===""||tr(n.remark,o))&&!s.includes(n.remark)&&s.push(n.remark)}}var ro=["origin","auth_sha1_v4","auth_aes128_md5","auth_aes128_sha1","auth_chain_a","auth_chain_b"],no=["plain","http_simple","http_post","random_head","tls1.2_ticket_auth","tls1.2_ticket_fastauth"],io=["rc4-md5","aes-128-ctr","aes-192-ctr","aes-256-ctr","aes-128-cfb","aes-192-cfb","aes-256-cfb","chacha20-ietf","xchacha20","none"];function oo(e){return e.replace(/^\[+/,"").replace(/\]+$/,"")}var ao=new Set(["ss","ssr","vmess","trojan","snell","http","https","socks5","wireguard","hysteria","hysteria2","vless","anytls","tuic"]),Sn=new Set(["ss","ssr","vmess","trojan","snell","http","https","socks5","wireguard"]),co=new Set([...Sn,"hysteria","hysteria2","vless","tuic"]);function lo(e){return e==="premium"?{clientFingerprint:!1,protocols:Sn,reality:!1}:e==="stash"?{clientFingerprint:!1,protocols:co,reality:!0}:{clientFingerprint:!0,protocols:ao,reality:!0}}function uo(e,t,s,r,n,i){let o={name:r,port:e.port,server:oo(e.hostname)},a=lo(t.clashFlavor);if(a.protocols.has(e.type)){switch(e.type){case"ss":{if(t.filterDeprecated&&e.encryptMethod==="chacha20")return;o.type="ss",o.cipher=e.encryptMethod,o.password=e.password;let c=e.pluginOption.replace(/;/g,"&");if(e.plugin==="simple-obfs"||e.plugin==="obfs-local")o.plugin="obfs",o["plugin-opts"]={host:U(k(c,"obfs-host")),mode:U(k(c,"obfs"))};else if(e.plugin==="v2ray-plugin"){o.plugin="v2ray-plugin";let u={host:k(c,"host"),mode:k(c,"mode"),mux:c.includes("mux"),path:k(c,"path"),tls:c.includes("tls")};n!==void 0&&(u["skip-cert-verify"]=n),o["plugin-opts"]=u}break}case"vmess":{switch(o.type="vmess",o.uuid=e.userId,o.alterId=e.alterId,o.cipher=e.encryptMethod,o.tls=e.tlsSecure,n!==void 0&&(o["skip-cert-verify"]=n),e.serverName!==""&&(o.servername=e.serverName),e.transferProtocol){case"tcp":break;case"ws":o.network=e.transferProtocol,t.clashNewFieldName?o["ws-opts"]={...e.host!==""||e.edge!==""?{headers:{...e.edge!==""?{Edge:e.edge}:{},...e.host!==""?{Host:e.host}:{}}}:{},path:e.path}:(o["ws-path"]=e.path,(e.host!==""||e.edge!=="")&&(o["ws-headers"]={...e.edge!==""?{Edge:e.edge}:{},...e.host!==""?{Host:e.host}:{}}));break;case"http":o.network=e.transferProtocol,o["http-opts"]={...e.host!==""||e.edge!==""?{headers:{...e.edge!==""?{Edge:[e.edge]}:{},...e.host!==""?{Host:[e.host]}:{}}}:{},method:"GET",path:[e.path]};break;case"h2":o.network=e.transferProtocol,o["h2-opts"]={...e.host!==""?{host:[e.host]}:{},path:e.path};break;case"grpc":o.network=e.transferProtocol,o.servername=e.host,o["grpc-opts"]={"grpc-service-name":e.path};break;default:return}break}case"ssr":{if(t.filterDeprecated&&(!s&&!io.includes(e.encryptMethod)||!ro.includes(e.protocol)||!no.includes(e.obfs)))return;o.type="ssr",o.cipher=e.encryptMethod==="none"?"dummy":e.encryptMethod,o.password=e.password,o.protocol=e.protocol,o.obfs=e.obfs,s?(o.protocolparam=e.protocolParam,o.obfsparam=e.obfsParam):(o["protocol-param"]=e.protocolParam,o["obfs-param"]=e.obfsParam);break}case"socks5":o.type="socks5",e.username!==""&&(o.username=e.username),e.password!==""&&(o.password=e.password),n!==void 0&&(o["skip-cert-verify"]=n);break;case"http":case"https":o.type="http",e.username!==""&&(o.username=e.username),e.password!==""&&(o.password=e.password),o.tls=e.tlsSecure,n!==void 0&&(o["skip-cert-verify"]=n);break;case"trojan":switch(o.type="trojan",o.password=e.password,e.host!==""&&(o.sni=e.host),n!==void 0&&(o["skip-cert-verify"]=n),e.transferProtocol){case"tcp":break;case"grpc":o.network=e.transferProtocol,e.path!==""&&(o["grpc-opts"]={"grpc-service-name":e.path});break;case"ws":o.network=e.transferProtocol,o["ws-opts"]={...e.host!==""?{headers:{Host:e.host}}:{},path:e.path};break;default:break}break;case"snell":if(e.snellVersion>=4)return;o.type="snell",o.psk=e.password,e.snellVersion!==0&&(o.version=e.snellVersion),e.obfs!==""&&(o["obfs-opts"]={...e.host!==""?{host:e.host}:{},mode:e.obfs});break;case"wireguard":o.type="wireguard",o["public-key"]=e.publicKey,o["private-key"]=e.privateKey,o.ip=e.selfIp,e.selfIpv6!==""&&(o.ipv6=e.selfIpv6),e.preSharedKey!==""&&(o["preshared-key"]=e.preSharedKey),e.dnsServers.length>0&&(o.dns=e.dnsServers),e.mtu>0&&(o.mtu=e.mtu);break;case"hysteria":{o.type="hysteria",e.ports!==""&&(o.ports=e.ports),e.protocol!==""&&(o.protocol=e.protocol),e.obfsParam!==""&&(o["obfs-protocol"]=e.obfsParam),e.up!==""&&(o.up=e.up),e.upSpeed&&(o["up-speed"]=e.upSpeed),e.down!==""&&(o.down=e.down),e.downSpeed&&(o["down-speed"]=e.downSpeed),e.authStr!==""&&(o["auth-str"]=e.authStr,o.auth=cn(e.authStr)),e.obfs!==""&&(o.obfs=e.obfs),e.sni!==""&&(o.sni=e.sni),n!==void 0&&(o["skip-cert-verify"]=n),e.fingerprint!==""&&a.clientFingerprint&&(o.fingerprint=e.fingerprint),e.alpn.length>0&&(o.alpn=e.alpn),e.ca!==""&&(o.ca=e.ca),e.caStr!==""&&(o["ca-str"]=e.caStr),e.recvWindowConn&&(o["recv-window-conn"]=e.recvWindowConn),e.recvWindow&&(o["recv-window"]=e.recvWindow),e.disableMtuDiscovery!==void 0&&(o["disable-mtu-discovery"]=e.disableMtuDiscovery),e.tcpFastOpen!==void 0&&(o["fast-open"]=e.tcpFastOpen),e.hopInterval&&(o["hop-interval"]=e.hopInterval);break}case"hysteria2":o.type="hysteria2",e.ports!==""&&(o.ports=e.ports),e.upSpeed&&(o.up=e.upSpeed),e.downSpeed&&(o.down=e.downSpeed),e.password!==""&&(o.password=e.password),e.obfs!==""&&(o.obfs=e.obfs),e.obfsParam!==""&&(o["obfs-password"]=e.obfsParam),e.sni!==""&&(o.sni=e.sni),n!==void 0&&(o["skip-cert-verify"]=n),e.fingerprint!==""&&a.clientFingerprint&&(o.fingerprint=e.fingerprint),e.alpn.length>0&&(o.alpn=e.alpn),e.ca!==""&&(o.ca=e.ca),e.caStr!==""&&(o["ca-str"]=e.caStr),e.cwnd&&(o.cwnd=e.cwnd),e.hopInterval&&(o["hop-interval"]=e.hopInterval);break;case"anytls":o.type="anytls",o.password=e.password,e.sni!==""&&(o.sni=e.sni),n!==void 0&&(o["skip-cert-verify"]=n);break;case"vless":if(o.type="vless",o.uuid=e.userId,e.flow!==""&&(o.flow=e.flow),o.tls=e.tlsSecure,e.serverName!==""&&(o.servername=e.serverName),e.fingerprint!==""&&a.clientFingerprint&&(o["client-fingerprint"]=e.fingerprint),e.publicKey!==""||e.shortId!==""){if(!a.reality)return;let c={};e.publicKey!==""&&(c["public-key"]=e.publicKey),c["short-id"]=e.shortId,o["reality-opts"]=c}switch(e.alpn.length>0&&(o.alpn=e.alpn),n!==void 0&&(o["skip-cert-verify"]=n),e.transferProtocol){case"tcp":break;case"ws":o.network=e.transferProtocol,o["ws-opts"]={...e.host!==""?{headers:{Host:e.host}}:{},path:e.path};break;case"grpc":o.network=e.transferProtocol,o["grpc-opts"]={"grpc-service-name":e.path};break;default:break}break;case"tuic":o.type="tuic",o.uuid=e.userId,o.password=e.password,e.congestionControl!==""&&(o["congestion-controller"]=e.congestionControl),e.alpn.length>0&&(o.alpn=e.alpn),e.serverName!==""&&(o.sni=e.serverName),n!==void 0&&(o["skip-cert-verify"]=n);break;default:return}return fo(e,t)&&e.type!=="snell"&&(o.udp=!0),i!==void 0&&(o.tfo=i),t.clashNewFieldName&&e.underlyingProxy!==""&&(o["dialer-proxy"]=e.underlyingProxy),o}}function fo(e,t){return e.udp!==void 0?e.udp:t.udp===!0}function po(e,t,s,r=!1){let n=[],i=[],o=[];for(let u of e){let p=nn(u.type);s.appendProxyType&&(u.remark=`[${p}] ${u.remark}`);let f=wn(u.remark,o,!1);u.remark=f;let l=u.allowInsecure!==void 0?u.allowInsecure:s.skipCertVerify,h=u.tcpFastOpen!==void 0?u.tcpFastOpen:s.tfo,g=uo(u,s,r,f,l,h);g&&(n.push(g),o.push(f),i.push(u))}if(s.nodeList)return{doc:{proxies:n},nodeList:i};let a=[];for(let u of t){let p={name:u.name,type:u.type==="smart"?"url-test":u.type};switch(u.type){case"select":case"relay":break;case"load-balance":p.strategy=u.strategy,p.lazy=u.lazy,p.url=u.url,u.interval>0&&(p.interval=u.interval),u.tolerance>0&&(p.tolerance=u.tolerance);break;case"smart":case"url-test":u.lazy!==void 0&&(p.lazy=u.lazy),p.url=u.url,u.interval>0&&(p.interval=u.interval),u.tolerance>0&&(p.tolerance=u.tolerance);break;case"fallback":p.url=u.url,u.interval>0&&(p.interval=u.interval),u.tolerance>0&&(p.tolerance=u.tolerance);break;default:continue}u.disableUdp!==void 0&&(p["disable-udp"]=u.disableUdp);let f=[];for(let l of u.proxies)vn(l,i,f,!0);u.usingProvider.length>0?p.use=u.usingProvider:(f.length===0&&f.push("DIRECT"),p.proxies=f),a.push(p)}let c={};return s.clashNewFieldName?(c.proxies=n,a.length>0&&(c["proxy-groups"]=a)):(c.Proxy=n,a.length>0&&(c["Proxy Group"]=a)),{doc:c,nodeList:i}}function ho(e){return zs(e,{aliasDuplicateObjects:!1,lineWidth:0})}function kn(e,t,s,r=!1){let{doc:n}=po(e,t,s,r);return ho(n)}function mo(e){let t=[],s;for(let r of e.split(/\r?\n/)){let n=r,i=/^\[(.*)\]$/.exec(n.trim());if(i){s={lines:[],name:i[1].trim()},t.push(s);continue}n.trim()!==""&&s&&s.lines.push(n)}return t}function le(e){return e?"true":"false"}function rn(e,t){let s=`http, ${e.hostname}, ${e.port}`;return e.username!==""&&(s+=`, username=${e.username}`),e.password!==""&&(s+=`, password=${e.password}`),s+=`, tls=${le(e.tlsSecure)}`,t!==void 0&&(s+=`, skip-cert-verify=${le(t)}`),s}function go(e,t=!1){let s=`public-key = ${e.publicKey}`;return s+=`, endpoint = ${e.hostname}:${e.port}`,e.preSharedKey!==""&&(s+=`, preshared-key = ${e.preSharedKey}`),e.allowedIps!==""&&(s+=`, allowed-ips = "${e.allowedIps}"`),e.keepAlive>0&&(s+=`, keepalive = ${e.keepAlive}`),e.clientId!==""&&(s+=t?`, reserved = [${e.clientId}]`:`, client-id = ${e.clientId}`),s}function yo(e,t,s,r){let n=r.version,i=[],o=[],a=[],c=new Map,u=[],p=1080;for(let l of e){s.appendProxyType&&(l.remark=`[${nn(l.type)}] ${l.remark}`);let h=wn(l.remark,i);l.remark=h;let g=l.udp!==void 0?l.udp:s.udp,d=l.tcpFastOpen!==void 0?l.tcpFastOpen:s.tfo,m=l.allowInsecure!==void 0?l.allowInsecure:s.skipCertVerify,v=l.tls13!==void 0?l.tls13:s.tls13,b="";switch(l.type){case"ss":if(n>=3||n===-3?b=`ss, ${l.hostname}, ${l.port}, encrypt-method=${l.encryptMethod}, password=${l.password}`:b=`custom, ${l.hostname}, ${l.port}, ${l.encryptMethod}, ${l.password}, https://github.com/pobizhe/SSEncrypt/raw/master/SSEncrypt.module`,l.plugin!=="")if(l.plugin==="simple-obfs"||l.plugin==="obfs-local")l.pluginOption!==""&&(b+=`,${l.pluginOption.replace(/;/g,",")}`);else continue;break;case"vmess":{if(n<4&&n!==-3)continue;b=`vmess, ${l.hostname}, ${l.port}, username=${l.userId}, tls=${le(l.tlsSecure)}, vmess-aead=${l.alterId===0?"true":"false"}`,l.tlsSecure&&v!==void 0&&(b+=`, tls13=${le(v)}`);let S=[];switch(l.transferProtocol){case"tcp":break;case"ws":{l.host===""?b+=`, ws=true, ws-path=${l.path}, sni=${l.hostname}`:b+=`, ws=true, ws-path=${l.path}, sni=${l.host}`,l.host!==""&&S.push(`Host:${l.host}`),l.edge!==""&&S.push(`Edge:${l.edge}`),S.length>0&&(b+=`, ws-headers=${S.join("|")}`);break}default:continue}m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break}case"ssr":{if(s.surgeSsrPath===""||n<2)continue;let S=["-l",String(p),"-s",l.hostname,"-p",String(l.port),"-m",l.encryptMethod,"-k",l.password,"-o",l.obfs,"-O",l.protocol];l.obfsParam!==""&&S.push("-g",l.obfsParam),l.protocolParam!==""&&S.push("-G",l.protocolParam),b=`external, exec="${s.surgeSsrPath}", args="${S.join('", args="')}", local-port=${p}`,(un(l.hostname)||fn(l.hostname))&&(b+=`, addresses=${l.hostname}`),p+=1;break}case"socks5":b=`socks5, ${l.hostname}, ${l.port}`,l.username!==""&&(b+=`, username=${l.username}`),l.password!==""&&(b+=`, password=${l.password}`),m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break;case"https":if(n===-3){b=`https, ${l.hostname}, ${l.port}, ${l.username}, ${l.password}`,m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break}b=rn(l,m);break;case"http":b=rn(l,m);break;case"trojan":if(n<4&&n!==-3)continue;if(b=`trojan, ${l.hostname}, ${l.port}, password=${l.password}`,l.snellVersion!==0&&(b+=`, version=${l.snellVersion}`),l.host!==""&&(b+=`, sni=${l.host}`),l.transferProtocol==="ws"){b+=", ws=true",l.path!==""&&(b+=`, ws-path=${l.path}`);let S=l.host!==""?l.host:l.hostname;b+=`, ws-headers=Host:"${S}"`}m!==void 0&&(b+=`, skip-cert-verify=${le(m)}`);break;case"snell":b=`snell, ${l.hostname}, ${l.port}, psk=${l.password}`,l.obfs!==""&&(b+=`, obfs=${l.obfs}`,l.host!==""&&(b+=`, obfs-host=${l.host}`)),l.snellVersion!==0&&(b+=`, version=${l.snellVersion}`);break;case"wireguard":{if(n<4&&n!==-3)continue;let S=mi(l.remark).slice(0,5);b=`wireguard, section-name=${S}`,l.testUrl!==""&&(b+=`, test-url=${l.testUrl}`);let $=[`private-key = ${l.privateKey}`,`self-ip = ${l.selfIp}`];l.selfIpv6!==""&&$.push(`self-ip-v6 = ${l.selfIpv6}`),l.dnsServers.length>0&&$.push(`dns-server = ${l.dnsServers.join(",")}`),l.mtu>0&&$.push(`mtu = ${l.mtu}`),$.push(`peer = (${go(l)})`);let I=`WireGuard ${S}`;c.set(I,$),u.push(I);break}case"hysteria2":if(n<4)continue;b=`hysteria2, ${l.hostname}, ${l.port}, password=${l.password}`,l.downSpeed&&(b+=`, download-bandwidth=${l.downSpeed}`),m!==void 0&&(b+=`,skip-cert-verify=${le(m)}`),l.fingerprint!==""&&(b+=`,server-cert-fingerprint-sha256=${l.fingerprint}`),l.sni!==""&&(b+=`,sni=${l.sni}`);break;case"anytls":if(n<4&&n!==-3)continue;b=`anytls, ${l.hostname}, ${l.port}, password=${l.password}`,l.sni!==""&&(b+=`,sni=${l.sni}`);break;default:continue}d!==void 0&&(b+=`, tfo=${le(d)}`),g!==void 0&&(b+=`, udp-relay=${le(g)}`),l.underlyingProxy!==""&&(b+=`, underlying-proxy=${l.underlyingProxy}`),o.push(`${h} = ${b}`),i.push(h),a.push(l)}if(r.nodeList)return{extraSections:c,groups:[],proxies:o,sectionOrder:u};let f=[];for(let l of t){let h=[],g="";switch(l.type){case"select":case"smart":case"url-test":case"fallback":break;case"load-balance":if(n<1&&n!==-3)continue;break;case"ssid":{let d=l.proxies.slice(1).join(","),m=`${l.type},default=${l.proxies[0]??""},${d}`;f.push(`${l.name} = ${m}`);continue}default:continue}for(let d of l.proxies)vn(d,a,h,!0);if(h.length===0&&h.push("DIRECT"),h.length===1){let d=h[0].toLowerCase();if(d==="direct"||d==="reject"||d==="reject-tinygif"){o.push(`${l.name} = ${d}`);continue}}g=`${l.type},${h.join(",")}`,(l.type==="url-test"||l.type==="fallback"||l.type==="load-balance")&&(g+=`,url=${l.url},interval=${l.interval}`,l.tolerance>0&&(g+=`,tolerance=${l.tolerance}`),l.timeout>0&&(g+=`,timeout=${l.timeout}`),l.persistent!==void 0&&(g+=`,persistent=${le(l.persistent)}`),l.evaluateBeforeUse!==void 0&&(g+=`,evaluate-before-use=${le(l.evaluateBeforeUse)}`)),f.push(`${l.name} = ${g}`)}return{extraSections:c,groups:f,proxies:o,sectionOrder:u}}function $n(e,t,s,r){let n=yo(e,t,s,r);if(r.nodeList)return n.proxies.join(`
|
|
133
|
+
`);let i=r.baseConf===""?[]:mo(r.baseConf),o=new Map,a=[];for(let p of i)o.set(p.name,p),a.push(p.name);let c=(p,f)=>{o.has(p)||a.push(p),o.set(p,{lines:f,name:p})};c("Proxy",["DIRECT = direct",...n.proxies]),n.groups.length>0&&c("Proxy Group",n.groups);for(let p of n.sectionOrder)c(p,n.extraSections.get(p));r.rules&&r.rules.lines.length>0&&c(r.rules.section,r.rules.lines);let u=[];for(let p of a){let f=o.get(p);f&&(u.push(`[${p}]`),u.push(...f.lines),u.push(""))}return u.join(`
|
|
134
134
|
`).trimEnd()+`
|
|
135
|
-
`}var ct=["DOMAIN","DOMAIN-SUFFIX","DOMAIN-KEYWORD","IP-CIDR","SRC-IP-CIDR","GEOIP","MATCH","FINAL"],
|
|
135
|
+
`}var ct=["DOMAIN","DOMAIN-SUFFIX","DOMAIN-KEYWORD","IP-CIDR","SRC-IP-CIDR","GEOIP","MATCH","FINAL"],cp=[...ct,"IP-CIDR6","SRC-PORT","DST-PORT","PROCESS-NAME"],lp=[...ct,"IP-CIDR6","USER-AGENT","URL-REGEX","PROCESS-NAME","IN-PORT","DEST-PORT","SRC-IP"],up=[...ct,"IP-CIDR6","USER-AGENT","URL-REGEX","AND","OR","NOT","PROCESS-NAME","IN-PORT","DEST-PORT","SRC-IP"],fp=[...ct,"USER-AGENT","HOST","HOST-SUFFIX","HOST-KEYWORD"],pp=[...ct,"IP-CIDR6","PROCESS-NAME","IN-PORT","DEST-PORT","SRC-IP"];var dp=[...ct,"IP-VERSION","INBOUND","PROTOCOL","NETWORK","GEOSITE","SRC-GEOIP","DOMAIN-REGEX","PROCESS-NAME","PROCESS-PATH","PACKAGE-NAME","PORT","PORT-RANGE","SRC-PORT","SRC-PORT-RANGE","USER","USER-ID"];async function In(e,t){let s=await fetch(e,t);if(!s.ok)throw new Error(`Failed to fetch ${e}: ${s.status} ${s.statusText}`);return s.text()}async function bo(e,t){return bs(await In(e,t))}typeof globalThis<"u"&&(globalThis.SubConverter=ws);var wo=ws;return Cn(vo);})();
|
|
136
136
|
//# sourceMappingURL=subconverter.global.js.map
|