diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js index e501aea..7ff6251 100644 --- a/.obsidian/plugins/obsidian-git/main.js +++ b/.obsidian/plugins/obsidian-git/main.js @@ -3,28 +3,28 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git) */ -var FD=Object.create;var pc=Object.defineProperty;var ID=Object.getOwnPropertyDescriptor;var OD=Object.getOwnPropertyNames;var MD=Object.getPrototypeOf,DD=Object.prototype.hasOwnProperty;var Nb=t=>{throw TypeError(t)};var LD=(t,e,r)=>e in t?pc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var BD=(t,e)=>()=>(t&&(e=t(t=0)),e);var F=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ND=(t,e)=>{for(var r in e)pc(t,r,{get:e[r],enumerable:!0})},Hb=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of OD(e))!DD.call(t,n)&&n!==r&&pc(t,n,{get:()=>e[n],enumerable:!(i=ID(e,n))||i.enumerable});return t};var Mt=(t,e,r)=>(r=t!=null?FD(MD(t)):{},Hb(e||!t||!t.__esModule?pc(r,"default",{value:t,enumerable:!0}):r,t)),HD=t=>Hb(pc({},"__esModule",{value:!0}),t);var ze=(t,e,r)=>LD(t,typeof e!="symbol"?e+"":e,r),Tm=(t,e,r)=>e.has(t)||Nb("Cannot "+r);var $=(t,e,r)=>(Tm(t,e,"read from private field"),r?r.call(t):e.get(t)),pe=(t,e,r)=>e.has(t)?Nb("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),fe=(t,e,r,i)=>(Tm(t,e,"write to private field"),i?i.call(t,r):e.set(t,r),r),bt=(t,e,r)=>(Tm(t,e,"access private method"),r);var jb=F(Tf=>{"use strict";p();Tf.byteLength=GD;Tf.toByteArray=qD;Tf.fromByteArray=WD;var Qi=[],fi=[],UD=typeof Uint8Array!="undefined"?Uint8Array:Array,Cm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(oa=0,Ub=Cm.length;oa0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var i=r===e?0:4-r%4;return[r,i]}function GD(t){var e=Gb(t),r=e[0],i=e[1];return(r+i)*3/4-i}function jD(t,e,r){return(e+r)*3/4-r}function qD(t){var e,r=Gb(t),i=r[0],n=r[1],s=new UD(jD(t,i,n)),a=0,o=n>0?i-4:i,l;for(l=0;l>16&255,s[a++]=e>>8&255,s[a++]=e&255;return n===2&&(e=fi[t.charCodeAt(l)]<<2|fi[t.charCodeAt(l+1)]>>4,s[a++]=e&255),n===1&&(e=fi[t.charCodeAt(l)]<<10|fi[t.charCodeAt(l+1)]<<4|fi[t.charCodeAt(l+2)]>>2,s[a++]=e>>8&255,s[a++]=e&255),s}function zD(t){return Qi[t>>18&63]+Qi[t>>12&63]+Qi[t>>6&63]+Qi[t&63]}function VD(t,e,r){for(var i,n=[],s=e;so?o:a+s));return i===1?(e=t[r-1],n.push(Qi[e>>2]+Qi[e<<4&63]+"==")):i===2&&(e=(t[r-2]<<8)+t[r-1],n.push(Qi[e>>10]+Qi[e>>4&63]+Qi[e<<2&63]+"=")),n.join("")}});var qb=F(Pm=>{p();Pm.read=function(t,e,r,i,n){var s,a,o=n*8-i-1,l=(1<>1,u=-7,f=r?n-1:0,d=r?-1:1,h=t[e+f];for(f+=d,s=h&(1<<-u)-1,h>>=-u,u+=o;u>0;s=s*256+t[e+f],f+=d,u-=8);for(a=s&(1<<-u)-1,s>>=-u,u+=i;u>0;a=a*256+t[e+f],f+=d,u-=8);if(s===0)s=1-c;else{if(s===l)return a?NaN:(h?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-c}return(h?-1:1)*a*Math.pow(2,s-i)};Pm.write=function(t,e,r,i,n,s){var a,o,l,c=s*8-n-1,u=(1<>1,d=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=i?0:s-1,m=i?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=u):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(a++,l/=2),a+f>=u?(o=0,a=u):a+f>=1?(o=(e*l-1)*Math.pow(2,n),a=a+f):(o=e*Math.pow(2,f-1)*Math.pow(2,n),a=0));n>=8;t[r+h]=o&255,h+=m,o/=256,n-=8);for(a=a<0;t[r+h]=a&255,h+=m,a/=256,c-=8);t[r+h-m]|=g*128}});var Bm=F(Ao=>{"use strict";p();var Rm=jb(),Eo=qb(),zb=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ao.Buffer=I;Ao.SlowBuffer=JD;Ao.INSPECT_MAX_BYTES=50;var Cf=2147483647;Ao.kMaxLength=Cf;I.TYPED_ARRAY_SUPPORT=YD();!I.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function YD(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch(t){return!1}}Object.defineProperty(I.prototype,"parent",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.buffer}});Object.defineProperty(I.prototype,"offset",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.byteOffset}});function Ln(t){if(t>Cf)throw new RangeError('The value "'+t+'" is invalid for option "size"');let e=new Uint8Array(t);return Object.setPrototypeOf(e,I.prototype),e}function I(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return Om(t)}return Xb(t,e,r)}I.poolSize=8192;function Xb(t,e,r){if(typeof t=="string")return ZD(t,e);if(ArrayBuffer.isView(t))return KD(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(Ji(t,ArrayBuffer)||t&&Ji(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(Ji(t,SharedArrayBuffer)||t&&Ji(t.buffer,SharedArrayBuffer)))return Fm(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let i=t.valueOf&&t.valueOf();if(i!=null&&i!==t)return I.from(i,e,r);let n=QD(t);if(n)return n;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return I.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}I.from=function(t,e,r){return Xb(t,e,r)};Object.setPrototypeOf(I.prototype,Uint8Array.prototype);Object.setPrototypeOf(I,Uint8Array);function Zb(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function XD(t,e,r){return Zb(t),t<=0?Ln(t):e!==void 0?typeof r=="string"?Ln(t).fill(e,r):Ln(t).fill(e):Ln(t)}I.alloc=function(t,e,r){return XD(t,e,r)};function Om(t){return Zb(t),Ln(t<0?0:Mm(t)|0)}I.allocUnsafe=function(t){return Om(t)};I.allocUnsafeSlow=function(t){return Om(t)};function ZD(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!I.isEncoding(e))throw new TypeError("Unknown encoding: "+e);let r=Kb(t,e)|0,i=Ln(r),n=i.write(t,e);return n!==r&&(i=i.slice(0,n)),i}function $m(t){let e=t.length<0?0:Mm(t.length)|0,r=Ln(e);for(let i=0;i=Cf)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Cf.toString(16)+" bytes");return t|0}function JD(t){return+t!=t&&(t=0),I.alloc(+t)}I.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==I.prototype};I.compare=function(e,r){if(Ji(e,Uint8Array)&&(e=I.from(e,e.offset,e.byteLength)),Ji(r,Uint8Array)&&(r=I.from(r,r.offset,r.byteLength)),!I.isBuffer(e)||!I.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===r)return 0;let i=e.length,n=r.length;for(let s=0,a=Math.min(i,n);sn.length?(I.isBuffer(a)||(a=I.from(a)),a.copy(n,s)):Uint8Array.prototype.set.call(n,a,s);else if(I.isBuffer(a))a.copy(n,s);else throw new TypeError('"list" argument must be an Array of Buffers');s+=a.length}return n};function Kb(t,e){if(I.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||Ji(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);let r=t.length,i=arguments.length>2&&arguments[2]===!0;if(!i&&r===0)return 0;let n=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Im(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return a_(t).length;default:if(n)return i?-1:Im(t).length;e=(""+e).toLowerCase(),n=!0}}I.byteLength=Kb;function eL(t,e,r){let i=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return uL(this,e,r);case"utf8":case"utf-8":return Jb(this,e,r);case"ascii":return lL(this,e,r);case"latin1":case"binary":return cL(this,e,r);case"base64":return aL(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return fL(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}I.prototype._isBuffer=!0;function la(t,e,r){let i=t[e];t[e]=t[r],t[r]=i}I.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;rr&&(e+=" ... "),""};zb&&(I.prototype[zb]=I.prototype.inspect);I.prototype.compare=function(e,r,i,n,s){if(Ji(e,Uint8Array)&&(e=I.from(e,e.offset,e.byteLength)),!I.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(r===void 0&&(r=0),i===void 0&&(i=e?e.length:0),n===void 0&&(n=0),s===void 0&&(s=this.length),r<0||i>e.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&r>=i)return 0;if(n>=s)return-1;if(r>=i)return 1;if(r>>>=0,i>>>=0,n>>>=0,s>>>=0,this===e)return 0;let a=s-n,o=i-r,l=Math.min(a,o),c=this.slice(n,s),u=e.slice(r,i);for(let f=0;f2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,Lm(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0)if(n)r=0;else return-1;if(typeof e=="string"&&(e=I.from(e,i)),I.isBuffer(e))return e.length===0?-1:Vb(t,e,r,i,n);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Vb(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function Vb(t,e,r,i,n){let s=1,a=t.length,o=e.length;if(i!==void 0&&(i=String(i).toLowerCase(),i==="ucs2"||i==="ucs-2"||i==="utf16le"||i==="utf-16le")){if(t.length<2||e.length<2)return-1;s=2,a/=2,o/=2,r/=2}function l(u,f){return s===1?u[f]:u.readUInt16BE(f*s)}let c;if(n){let u=-1;for(c=r;ca&&(r=a-o),c=r;c>=0;c--){let u=!0;for(let f=0;fn&&(i=n)):i=n;let s=e.length;i>s/2&&(i=s/2);let a;for(a=0;a>>0,isFinite(i)?(i=i>>>0,n===void 0&&(n="utf8")):(n=i,i=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let s=this.length-r;if((i===void 0||i>s)&&(i=s),e.length>0&&(i<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let a=!1;for(;;)switch(n){case"hex":return tL(this,e,r,i);case"utf8":case"utf-8":return rL(this,e,r,i);case"ascii":case"latin1":case"binary":return iL(this,e,r,i);case"base64":return nL(this,e,r,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return sL(this,e,r,i);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}};I.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function aL(t,e,r){return e===0&&r===t.length?Rm.fromByteArray(t):Rm.fromByteArray(t.slice(e,r))}function Jb(t,e,r){r=Math.min(t.length,r);let i=[],n=e;for(;n239?4:s>223?3:s>191?2:1;if(n+o<=r){let l,c,u,f;switch(o){case 1:s<128&&(a=s);break;case 2:l=t[n+1],(l&192)===128&&(f=(s&31)<<6|l&63,f>127&&(a=f));break;case 3:l=t[n+1],c=t[n+2],(l&192)===128&&(c&192)===128&&(f=(s&15)<<12|(l&63)<<6|c&63,f>2047&&(f<55296||f>57343)&&(a=f));break;case 4:l=t[n+1],c=t[n+2],u=t[n+3],(l&192)===128&&(c&192)===128&&(u&192)===128&&(f=(s&15)<<18|(l&63)<<12|(c&63)<<6|u&63,f>65535&&f<1114112&&(a=f))}}a===null?(a=65533,o=1):a>65535&&(a-=65536,i.push(a>>>10&1023|55296),a=56320|a&1023),i.push(a),n+=o}return oL(i)}var Wb=4096;function oL(t){let e=t.length;if(e<=Wb)return String.fromCharCode.apply(String,t);let r="",i=0;for(;ii)&&(r=i);let n="";for(let s=e;si&&(e=i),r<0?(r+=i,r<0&&(r=0)):r>i&&(r=i),rr)throw new RangeError("Trying to access beyond buffer length")}I.prototype.readUintLE=I.prototype.readUIntLE=function(e,r,i){e=e>>>0,r=r>>>0,i||Dt(e,r,this.length);let n=this[e],s=1,a=0;for(;++a>>0,r=r>>>0,i||Dt(e,r,this.length);let n=this[e+--r],s=1;for(;r>0&&(s*=256);)n+=this[e+--r]*s;return n};I.prototype.readUint8=I.prototype.readUInt8=function(e,r){return e=e>>>0,r||Dt(e,1,this.length),this[e]};I.prototype.readUint16LE=I.prototype.readUInt16LE=function(e,r){return e=e>>>0,r||Dt(e,2,this.length),this[e]|this[e+1]<<8};I.prototype.readUint16BE=I.prototype.readUInt16BE=function(e,r){return e=e>>>0,r||Dt(e,2,this.length),this[e]<<8|this[e+1]};I.prototype.readUint32LE=I.prototype.readUInt32LE=function(e,r){return e=e>>>0,r||Dt(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};I.prototype.readUint32BE=I.prototype.readUInt32BE=function(e,r){return e=e>>>0,r||Dt(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};I.prototype.readBigUInt64LE=ws(function(e){e=e>>>0,ko(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&mc(e,this.length-8);let n=r+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,s=this[++e]+this[++e]*2**8+this[++e]*2**16+i*2**24;return BigInt(n)+(BigInt(s)<>>0,ko(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&mc(e,this.length-8);let n=r*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],s=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+i;return(BigInt(n)<>>0,r=r>>>0,i||Dt(e,r,this.length);let n=this[e],s=1,a=0;for(;++a=s&&(n-=Math.pow(2,8*r)),n};I.prototype.readIntBE=function(e,r,i){e=e>>>0,r=r>>>0,i||Dt(e,r,this.length);let n=r,s=1,a=this[e+--n];for(;n>0&&(s*=256);)a+=this[e+--n]*s;return s*=128,a>=s&&(a-=Math.pow(2,8*r)),a};I.prototype.readInt8=function(e,r){return e=e>>>0,r||Dt(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};I.prototype.readInt16LE=function(e,r){e=e>>>0,r||Dt(e,2,this.length);let i=this[e]|this[e+1]<<8;return i&32768?i|4294901760:i};I.prototype.readInt16BE=function(e,r){e=e>>>0,r||Dt(e,2,this.length);let i=this[e+1]|this[e]<<8;return i&32768?i|4294901760:i};I.prototype.readInt32LE=function(e,r){return e=e>>>0,r||Dt(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};I.prototype.readInt32BE=function(e,r){return e=e>>>0,r||Dt(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};I.prototype.readBigInt64LE=ws(function(e){e=e>>>0,ko(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&mc(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(i<<24);return(BigInt(n)<>>0,ko(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&mc(e,this.length-8);let n=(r<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,r||Dt(e,4,this.length),Eo.read(this,e,!0,23,4)};I.prototype.readFloatBE=function(e,r){return e=e>>>0,r||Dt(e,4,this.length),Eo.read(this,e,!1,23,4)};I.prototype.readDoubleLE=function(e,r){return e=e>>>0,r||Dt(e,8,this.length),Eo.read(this,e,!0,52,8)};I.prototype.readDoubleBE=function(e,r){return e=e>>>0,r||Dt(e,8,this.length),Eo.read(this,e,!1,52,8)};function br(t,e,r,i,n,s){if(!I.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}I.prototype.writeUintLE=I.prototype.writeUIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,i=i>>>0,!n){let o=Math.pow(2,8*i)-1;br(this,e,r,i,o,0)}let s=1,a=0;for(this[r]=e&255;++a>>0,i=i>>>0,!n){let o=Math.pow(2,8*i)-1;br(this,e,r,i,o,0)}let s=i-1,a=1;for(this[r+s]=e&255;--s>=0&&(a*=256);)this[r+s]=e/a&255;return r+i};I.prototype.writeUint8=I.prototype.writeUInt8=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,1,255,0),this[r]=e&255,r+1};I.prototype.writeUint16LE=I.prototype.writeUInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,2,65535,0),this[r]=e&255,this[r+1]=e>>>8,r+2};I.prototype.writeUint16BE=I.prototype.writeUInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,2,65535,0),this[r]=e>>>8,this[r+1]=e&255,r+2};I.prototype.writeUint32LE=I.prototype.writeUInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,4,4294967295,0),this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255,r+4};I.prototype.writeUint32BE=I.prototype.writeUInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,4,4294967295,0),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};function e_(t,e,r,i,n){s_(e,i,n,t,r,7);let s=Number(e&BigInt(4294967295));t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a,r}function t_(t,e,r,i,n){s_(e,i,n,t,r,7);let s=Number(e&BigInt(4294967295));t[r+7]=s,s=s>>8,t[r+6]=s,s=s>>8,t[r+5]=s,s=s>>8,t[r+4]=s;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=a,a=a>>8,t[r+2]=a,a=a>>8,t[r+1]=a,a=a>>8,t[r]=a,r+8}I.prototype.writeBigUInt64LE=ws(function(e,r=0){return e_(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});I.prototype.writeBigUInt64BE=ws(function(e,r=0){return t_(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});I.prototype.writeIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){let l=Math.pow(2,8*i-1);br(this,e,r,i,l-1,-l)}let s=0,a=1,o=0;for(this[r]=e&255;++s>0)-o&255;return r+i};I.prototype.writeIntBE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){let l=Math.pow(2,8*i-1);br(this,e,r,i,l-1,-l)}let s=i-1,a=1,o=0;for(this[r+s]=e&255;--s>=0&&(a*=256);)e<0&&o===0&&this[r+s+1]!==0&&(o=1),this[r+s]=(e/a>>0)-o&255;return r+i};I.prototype.writeInt8=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,1,127,-128),e<0&&(e=255+e+1),this[r]=e&255,r+1};I.prototype.writeInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,2,32767,-32768),this[r]=e&255,this[r+1]=e>>>8,r+2};I.prototype.writeInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,2,32767,-32768),this[r]=e>>>8,this[r+1]=e&255,r+2};I.prototype.writeInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,4,2147483647,-2147483648),this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24,r+4};I.prototype.writeInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||br(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};I.prototype.writeBigInt64LE=ws(function(e,r=0){return e_(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});I.prototype.writeBigInt64BE=ws(function(e,r=0){return t_(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function r_(t,e,r,i,n,s){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function i_(t,e,r,i,n){return e=+e,r=r>>>0,n||r_(t,e,r,4,34028234663852886e22,-34028234663852886e22),Eo.write(t,e,r,i,23,4),r+4}I.prototype.writeFloatLE=function(e,r,i){return i_(this,e,r,!0,i)};I.prototype.writeFloatBE=function(e,r,i){return i_(this,e,r,!1,i)};function n_(t,e,r,i,n){return e=+e,r=r>>>0,n||r_(t,e,r,8,17976931348623157e292,-17976931348623157e292),Eo.write(t,e,r,i,52,8),r+8}I.prototype.writeDoubleLE=function(e,r,i){return n_(this,e,r,!0,i)};I.prototype.writeDoubleBE=function(e,r,i){return n_(this,e,r,!1,i)};I.prototype.copy=function(e,r,i,n){if(!I.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),!n&&n!==0&&(n=this.length),r>=e.length&&(r=e.length),r||(r=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-r>>0,i=i===void 0?this.length:i>>>0,e||(e=0);let s;if(typeof e=="number")for(s=r;s2**32?n=Yb(String(r)):typeof r=="bigint"&&(n=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(n=Yb(n)),n+="n"),i+=` It must be ${e}. Received ${n}`,i},RangeError);function Yb(t){let e="",r=t.length,i=t[0]==="-"?1:0;for(;r>=i+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function dL(t,e,r){ko(e,"offset"),(t[e]===void 0||t[e+r]===void 0)&&mc(e,t.length-(r+1))}function s_(t,e,r,i,n,s){if(t>r||t3?e===0||e===BigInt(0)?o=`>= 0${a} and < 2${a} ** ${(s+1)*8}${a}`:o=`>= -(2${a} ** ${(s+1)*8-1}${a}) and < 2 ** ${(s+1)*8-1}${a}`:o=`>= ${e}${a} and <= ${r}${a}`,new So.ERR_OUT_OF_RANGE("value",o,t)}dL(i,n,s)}function ko(t,e){if(typeof t!="number")throw new So.ERR_INVALID_ARG_TYPE(e,"number",t)}function mc(t,e,r){throw Math.floor(t)!==t?(ko(t,r),new So.ERR_OUT_OF_RANGE(r||"offset","an integer",t)):e<0?new So.ERR_BUFFER_OUT_OF_BOUNDS:new So.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}var hL=/[^+/0-9A-Za-z-_]/g;function pL(t){if(t=t.split("=")[0],t=t.trim().replace(hL,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function Im(t,e){e=e||1/0;let r,i=t.length,n=null,s=[];for(let a=0;a55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(a+1===i){(e-=3)>-1&&s.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&s.push(239,191,189),n=r;continue}r=(n-55296<<10|r-56320)+65536}else n&&(e-=3)>-1&&s.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;s.push(r)}else if(r<2048){if((e-=2)<0)break;s.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;s.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return s}function mL(t){let e=[];for(let r=0;r>8,n=r%256,s.push(n),s.push(i);return s}function a_(t){return Rm.toByteArray(pL(t))}function Pf(t,e,r,i){let n;for(n=0;n=e.length||n>=t.length);++n)e[n+r]=t[n];return n}function Ji(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function Lm(t){return t!==t}var vL=function(){let t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){let i=r*16;for(let n=0;n<16;++n)e[i+n]=t[r]+t[n]}return e}();function ws(t){return typeof BigInt=="undefined"?wL:t}function wL(){throw new Error("BigInt not supported")}});var o_,Nm,Buffer,p=BD(()=>{o_=require("obsidian");o_.Platform.isMobileApp?Nm=Bm().Buffer:Nm=global.Buffer;Buffer=Nm});var c_=F((c7,l_)=>{"use strict";p();var Yr=function(t){if(t=t||{},this.Promise=t.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=t.domainReentrant||!1,this.domainReentrant){if(typeof process=="undefined"||typeof process.domain=="undefined")throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=t.timeout||Yr.DEFAULT_TIMEOUT,this.maxOccupationTime=t.maxOccupationTime||Yr.DEFAULT_MAX_OCCUPATION_TIME,this.maxExecutionTime=t.maxExecutionTime||Yr.DEFAULT_MAX_EXECUTION_TIME,t.maxPending===1/0||Number.isInteger(t.maxPending)&&t.maxPending>=0?this.maxPending=t.maxPending:this.maxPending=Yr.DEFAULT_MAX_PENDING};Yr.DEFAULT_TIMEOUT=0;Yr.DEFAULT_MAX_OCCUPATION_TIME=0;Yr.DEFAULT_MAX_EXECUTION_TIME=0;Yr.DEFAULT_MAX_PENDING=1e3;Yr.prototype.acquire=function(t,e,r,i){if(Array.isArray(t))return this._acquireBatch(t,e,r,i);if(typeof e!="function")throw new Error("You must pass a function to execute");var n=null,s=null,a=null;typeof r!="function"&&(i=r,r=null,a=new this.Promise(function(b,k){n=b,s=k})),i=i||{};var o=!1,l=null,c=null,u=null,f=this,d=function(b,k,x){c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),b&&(f.queues[t]&&f.queues[t].length===0&&delete f.queues[t],f.domainReentrant&&delete f.domains[t]),o||(a?k?s(k):n(x):typeof r=="function"&&r(k,x),o=!0),b&&f.queues[t]&&f.queues[t].length>0&&f.queues[t].shift()()},h=function(b){if(o)return d(b);l&&(clearTimeout(l),l=null),f.domainReentrant&&b&&(f.domains[t]=process.domain);var k=i.maxExecutionTime||f.maxExecutionTime;if(k&&(u=setTimeout(function(){f.queues[t]&&d(b,new Error("Maximum execution time is exceeded "+t))},k)),e.length===1){var x=!1;try{e(function(E,A){x||(x=!0,d(b,E,A))})}catch(E){x||(x=!0,d(b,E))}}else f._promiseTry(function(){return e()}).then(function(E){d(b,void 0,E)},function(E){d(b,E)})};f.domainReentrant&&process.domain&&(h=process.domain.bind(h));var m=i.maxPending||f.maxPending;if(!f.queues[t])f.queues[t]=[],h(!0);else if(f.domainReentrant&&process.domain&&process.domain===f.domains[t])h(!1);else if(f.queues[t].length>=m)d(!1,new Error("Too many pending tasks in queue "+t));else{var g=function(){h(!0)};i.skipQueue?f.queues[t].unshift(g):f.queues[t].push(g);var v=i.timeout||f.timeout;v&&(l=setTimeout(function(){l=null,d(!1,new Error("async-lock timed out in queue "+t))},v))}var w=i.maxOccupationTime||f.maxOccupationTime;if(w&&(c=setTimeout(function(){f.queues[t]&&d(!1,new Error("Maximum occupation time is exceeded in queue "+t))},w)),a)return a};Yr.prototype._acquireBatch=function(t,e,r,i){typeof r!="function"&&(i=r,r=null);var n=this,s=function(o,l){return function(c){n.acquire(o,l,c,i)}},a=t.reduceRight(function(o,l){return s(l,o)},e);if(typeof r=="function")a(r);else return new this.Promise(function(o,l){a.length===1?a(function(c,u){c?l(c):o(u)}):o(a())})};Yr.prototype.isBusy=function(t){return t?!!this.queues[t]:Object.keys(this.queues).length>0};Yr.prototype._promiseTry=function(t){try{return this.Promise.resolve(t())}catch(e){return this.Promise.reject(e)}};l_.exports=Yr});var f_=F((f7,u_)=>{"use strict";p();u_.exports=c_()});var d_=F((h7,Hm)=>{p();typeof Object.create=="function"?Hm.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Hm.exports=function(e,r){if(r){e.super_=r;var i=function(){};i.prototype=r.prototype,e.prototype=new i,e.prototype.constructor=e}}});var $f=F((Um,p_)=>{p();var Rf=Bm(),en=Rf.Buffer;function h_(t,e){for(var r in t)e[r]=t[r]}en.from&&en.alloc&&en.allocUnsafe&&en.allocUnsafeSlow?p_.exports=Rf:(h_(Rf,Um),Um.Buffer=ca);function ca(t,e,r){return en(t,e,r)}ca.prototype=Object.create(en.prototype);h_(en,ca);ca.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return en(t,e,r)};ca.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var i=en(t);return e!==void 0?typeof r=="string"?i.fill(e,r):i.fill(e):i.fill(0),i};ca.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return en(t)};ca.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Rf.SlowBuffer(t)}});var Ff=F((g7,m_)=>{p();var yL={}.toString;m_.exports=Array.isArray||function(t){return yL.call(t)=="[object Array]"}});var _r=F((w7,g_)=>{"use strict";p();g_.exports=TypeError});var If=F((b7,v_)=>{"use strict";p();v_.exports=Object});var Gm=F((x7,w_)=>{"use strict";p();w_.exports=Error});var b_=F((E7,y_)=>{"use strict";p();y_.exports=EvalError});var x_=F((A7,__)=>{"use strict";p();__.exports=RangeError});var E_=F((C7,S_)=>{"use strict";p();S_.exports=ReferenceError});var Of=F((R7,k_)=>{"use strict";p();k_.exports=SyntaxError});var T_=F((F7,A_)=>{"use strict";p();A_.exports=URIError});var P_=F((O7,C_)=>{"use strict";p();C_.exports=Math.abs});var $_=F((D7,R_)=>{"use strict";p();R_.exports=Math.floor});var I_=F((B7,F_)=>{"use strict";p();F_.exports=Math.max});var M_=F((H7,O_)=>{"use strict";p();O_.exports=Math.min});var L_=F((G7,D_)=>{"use strict";p();D_.exports=Math.pow});var N_=F((q7,B_)=>{"use strict";p();B_.exports=Math.round});var U_=F((V7,H_)=>{"use strict";p();H_.exports=Number.isNaN||function(e){return e!==e}});var j_=F((Y7,G_)=>{"use strict";p();var bL=U_();G_.exports=function(e){return bL(e)||e===0?e:e<0?-1:1}});var z_=F((Z7,q_)=>{"use strict";p();q_.exports=Object.getOwnPropertyDescriptor});var ys=F((Q7,V_)=>{"use strict";p();var Mf=z_();if(Mf)try{Mf([],"length")}catch(t){Mf=null}V_.exports=Mf});var gc=F((eY,W_)=>{"use strict";p();var Df=Object.defineProperty||!1;if(Df)try{Df({},"a",{value:1})}catch(t){Df=!1}W_.exports=Df});var vc=F((rY,Y_)=>{"use strict";p();Y_.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),i=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(i)!=="[object Symbol]")return!1;var n=42;e[r]=n;for(var s in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==n||o.enumerable!==!0)return!1}return!0}});var Lf=F((nY,Z_)=>{"use strict";p();var X_=typeof Symbol!="undefined"&&Symbol,_L=vc();Z_.exports=function(){return typeof X_!="function"||typeof Symbol!="function"||typeof X_("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:_L()}});var jm=F((aY,K_)=>{"use strict";p();K_.exports=typeof Reflect!="undefined"&&Reflect.getPrototypeOf||null});var qm=F((lY,Q_)=>{"use strict";p();var xL=If();Q_.exports=xL.getPrototypeOf||null});var tx=F((uY,ex)=>{"use strict";p();var SL="Function.prototype.bind called on incompatible ",EL=Object.prototype.toString,kL=Math.max,AL="[object Function]",J_=function(e,r){for(var i=[],n=0;n{"use strict";p();var PL=tx();rx.exports=Function.prototype.bind||PL});var Bf=F((pY,ix)=>{"use strict";p();ix.exports=Function.prototype.call});var Nf=F((gY,nx)=>{"use strict";p();nx.exports=Function.prototype.apply});var ax=F((wY,sx)=>{"use strict";p();sx.exports=typeof Reflect!="undefined"&&Reflect&&Reflect.apply});var zm=F((bY,ox)=>{"use strict";p();var RL=To(),$L=Nf(),FL=Bf(),IL=ax();ox.exports=IL||RL.call(FL,$L)});var Hf=F((xY,lx)=>{"use strict";p();var OL=To(),ML=_r(),DL=Bf(),LL=zm();lx.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new ML("a function is required");return LL(OL,DL,e)}});var px=F((EY,hx)=>{"use strict";p();var BL=Hf(),cx=ys(),fx;try{fx=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var Vm=!!fx&&cx&&cx(Object.prototype,"__proto__"),dx=Object,ux=dx.getPrototypeOf;hx.exports=Vm&&typeof Vm.get=="function"?BL([Vm.get]):typeof ux=="function"?function(e){return ux(e==null?e:dx(e))}:!1});var Uf=F((AY,wx)=>{"use strict";p();var mx=jm(),gx=qm(),vx=px();wx.exports=mx?function(e){return mx(e)}:gx?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return gx(e)}:vx?function(e){return vx(e)}:null});var Gf=F((CY,yx)=>{"use strict";p();var NL=Function.prototype.call,HL=Object.prototype.hasOwnProperty,UL=To();yx.exports=UL.call(NL,HL)});var tn=F((RY,kx)=>{"use strict";p();var Ee,GL=If(),jL=Gm(),qL=b_(),zL=x_(),VL=E_(),$o=Of(),Ro=_r(),WL=T_(),YL=P_(),XL=$_(),ZL=I_(),KL=M_(),QL=L_(),JL=N_(),eB=j_(),Sx=Function,Wm=function(t){try{return Sx('"use strict"; return ('+t+").constructor;")()}catch(e){}},wc=ys(),tB=gc(),Ym=function(){throw new Ro},rB=wc?function(){try{return arguments.callee,Ym}catch(t){try{return wc(arguments,"callee").get}catch(e){return Ym}}}():Ym,Co=Lf()(),Lt=Uf(),iB=qm(),nB=jm(),Ex=Nf(),yc=Bf(),Po={},sB=typeof Uint8Array=="undefined"||!Lt?Ee:Lt(Uint8Array),ua={__proto__:null,"%AggregateError%":typeof AggregateError=="undefined"?Ee:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?Ee:ArrayBuffer,"%ArrayIteratorPrototype%":Co&&Lt?Lt([][Symbol.iterator]()):Ee,"%AsyncFromSyncIteratorPrototype%":Ee,"%AsyncFunction%":Po,"%AsyncGenerator%":Po,"%AsyncGeneratorFunction%":Po,"%AsyncIteratorPrototype%":Po,"%Atomics%":typeof Atomics=="undefined"?Ee:Atomics,"%BigInt%":typeof BigInt=="undefined"?Ee:BigInt,"%BigInt64Array%":typeof BigInt64Array=="undefined"?Ee:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array=="undefined"?Ee:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?Ee:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":jL,"%eval%":eval,"%EvalError%":qL,"%Float16Array%":typeof Float16Array=="undefined"?Ee:Float16Array,"%Float32Array%":typeof Float32Array=="undefined"?Ee:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?Ee:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?Ee:FinalizationRegistry,"%Function%":Sx,"%GeneratorFunction%":Po,"%Int8Array%":typeof Int8Array=="undefined"?Ee:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?Ee:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?Ee:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Co&&Lt?Lt(Lt([][Symbol.iterator]())):Ee,"%JSON%":typeof JSON=="object"?JSON:Ee,"%Map%":typeof Map=="undefined"?Ee:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!Co||!Lt?Ee:Lt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":GL,"%Object.getOwnPropertyDescriptor%":wc,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?Ee:Promise,"%Proxy%":typeof Proxy=="undefined"?Ee:Proxy,"%RangeError%":zL,"%ReferenceError%":VL,"%Reflect%":typeof Reflect=="undefined"?Ee:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?Ee:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!Co||!Lt?Ee:Lt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?Ee:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Co&&Lt?Lt(""[Symbol.iterator]()):Ee,"%Symbol%":Co?Symbol:Ee,"%SyntaxError%":$o,"%ThrowTypeError%":rB,"%TypedArray%":sB,"%TypeError%":Ro,"%Uint8Array%":typeof Uint8Array=="undefined"?Ee:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?Ee:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?Ee:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?Ee:Uint32Array,"%URIError%":WL,"%WeakMap%":typeof WeakMap=="undefined"?Ee:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?Ee:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?Ee:WeakSet,"%Function.prototype.call%":yc,"%Function.prototype.apply%":Ex,"%Object.defineProperty%":tB,"%Object.getPrototypeOf%":iB,"%Math.abs%":YL,"%Math.floor%":XL,"%Math.max%":ZL,"%Math.min%":KL,"%Math.pow%":QL,"%Math.round%":JL,"%Math.sign%":eB,"%Reflect.getPrototypeOf%":nB};if(Lt)try{null.error}catch(t){bx=Lt(Lt(t)),ua["%Error.prototype%"]=bx}var bx,aB=function t(e){var r;if(e==="%AsyncFunction%")r=Wm("async function () {}");else if(e==="%GeneratorFunction%")r=Wm("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=Wm("async function* () {}");else if(e==="%AsyncGenerator%"){var i=t("%AsyncGeneratorFunction%");i&&(r=i.prototype)}else if(e==="%AsyncIteratorPrototype%"){var n=t("%AsyncGenerator%");n&&Lt&&(r=Lt(n.prototype))}return ua[e]=r,r},_x={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bc=To(),jf=Gf(),oB=bc.call(yc,Array.prototype.concat),lB=bc.call(Ex,Array.prototype.splice),xx=bc.call(yc,String.prototype.replace),qf=bc.call(yc,String.prototype.slice),cB=bc.call(yc,RegExp.prototype.exec),uB=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,fB=/\\(\\)?/g,dB=function(e){var r=qf(e,0,1),i=qf(e,-1);if(r==="%"&&i!=="%")throw new $o("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&r!=="%")throw new $o("invalid intrinsic syntax, expected opening `%`");var n=[];return xx(e,uB,function(s,a,o,l){n[n.length]=o?xx(l,fB,"$1"):a||s}),n},hB=function(e,r){var i=e,n;if(jf(_x,i)&&(n=_x[i],i="%"+n[0]+"%"),jf(ua,i)){var s=ua[i];if(s===Po&&(s=aB(i)),typeof s=="undefined"&&!r)throw new Ro("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:i,value:s}}throw new $o("intrinsic "+e+" does not exist!")};kx.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new Ro("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Ro('"allowMissing" argument must be a boolean');if(cB(/^%?[^%]*%?$/,e)===null)throw new $o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=dB(e),n=i.length>0?i[0]:"",s=hB("%"+n+"%",r),a=s.name,o=s.value,l=!1,c=s.alias;c&&(n=c[0],lB(i,oB([0,1],c)));for(var u=1,f=!0;u=i.length){var g=wc(o,d);f=!!g,f&&"get"in g&&!("originalValue"in g.get)?o=g.get:o=o[d]}else f=jf(o,d),o=o[d];f&&!l&&(ua[a]=o)}}return o}});var Bt=F((FY,Cx)=>{"use strict";p();var Ax=tn(),Tx=Hf(),pB=Tx([Ax("%String.prototype.indexOf%")]);Cx.exports=function(e,r){var i=Ax(e,!!r);return typeof i=="function"&&pB(e,".prototype.")>-1?Tx([i]):i}});var Fx=F((OY,$x)=>{"use strict";p();var Rx=Function.prototype.toString,Fo=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,Zm,zf;if(typeof Fo=="function"&&typeof Object.defineProperty=="function")try{Zm=Object.defineProperty({},"length",{get:function(){throw zf}}),zf={},Fo(function(){throw 42},null,Zm)}catch(t){t!==zf&&(Fo=null)}else Fo=null;var mB=/^\s*class\b/,Km=function(e){try{var r=Rx.call(e);return mB.test(r)}catch(i){return!1}},Xm=function(e){try{return Km(e)?!1:(Rx.call(e),!0)}catch(r){return!1}},Vf=Object.prototype.toString,gB="[object Object]",vB="[object Function]",wB="[object GeneratorFunction]",yB="[object HTMLAllCollection]",bB="[object HTML document.all class]",_B="[object HTMLCollection]",xB=typeof Symbol=="function"&&!!Symbol.toStringTag,SB=!(0 in[,]),Qm=function(){return!1};typeof document=="object"&&(Px=document.all,Vf.call(Px)===Vf.call(document.all)&&(Qm=function(e){if((SB||!e)&&(typeof e=="undefined"||typeof e=="object"))try{var r=Vf.call(e);return(r===yB||r===bB||r===_B||r===gB)&&e("")==null}catch(i){}return!1}));var Px;$x.exports=Fo?function(e){if(Qm(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;try{Fo(e,null,Zm)}catch(r){if(r!==zf)return!1}return!Km(e)&&Xm(e)}:function(e){if(Qm(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;if(xB)return Xm(e);if(Km(e))return!1;var r=Vf.call(e);return r!==vB&&r!==wB&&!/^\[object HTML/.test(r)?!1:Xm(e)}});var Mx=F((DY,Ox)=>{"use strict";p();var EB=Fx(),kB=Object.prototype.toString,Ix=Object.prototype.hasOwnProperty,AB=function(e,r,i){for(var n=0,s=e.length;n=3&&(n=i),PB(e)?AB(e,r,n):typeof e=="string"?TB(e,r,n):CB(e,r,n)}});var Lx=F((BY,Dx)=>{"use strict";p();Dx.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]});var Nx=F((HY,Bx)=>{"use strict";p();var Jm=Lx(),RB=typeof globalThis=="undefined"?global:globalThis;Bx.exports=function(){for(var e=[],r=0;r{"use strict";p();var Hx=gc(),$B=Of(),Io=_r(),Ux=ys();Gx.exports=function(e,r,i){if(!e||typeof e!="object"&&typeof e!="function")throw new Io("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new Io("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Io("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Io("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Io("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Io("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,s=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,o=arguments.length>6?arguments[6]:!1,l=!!Ux&&Ux(e,r);if(Hx)Hx(e,r,{configurable:a===null&&l?l.configurable:!a,enumerable:n===null&&l?l.enumerable:!n,value:i,writable:s===null&&l?l.writable:!s});else if(o||!n&&!s&&!a)e[r]=i;else throw new $B("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var Yf=F((qY,qx)=>{"use strict";p();var eg=gc(),jx=function(){return!!eg};jx.hasArrayLengthDefineBug=function(){if(!eg)return null;try{return eg([],"length",{value:1}).length!==1}catch(e){return!0}};qx.exports=jx});var Xx=F((VY,Yx)=>{"use strict";p();var FB=tn(),zx=Wf(),IB=Yf()(),Vx=ys(),Wx=_r(),OB=FB("%Math.floor%");Yx.exports=function(e,r){if(typeof e!="function")throw new Wx("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||OB(r)!==r)throw new Wx("`length` must be a positive 32-bit integer");var i=arguments.length>2&&!!arguments[2],n=!0,s=!0;if("length"in e&&Vx){var a=Vx(e,"length");a&&!a.configurable&&(n=!1),a&&!a.writable&&(s=!1)}return(n||s||!i)&&(IB?zx(e,"length",r,!0,!0):zx(e,"length",r)),e}});var Kx=F((YY,Zx)=>{"use strict";p();var MB=To(),DB=Nf(),LB=zm();Zx.exports=function(){return LB(MB,DB,arguments)}});var fa=F((ZY,Xf)=>{"use strict";p();var BB=Xx(),Qx=gc(),NB=Hf(),Jx=Kx();Xf.exports=function(e){var r=NB(arguments),i=e.length-(arguments.length-1);return BB(r,1+(i>0?i:0),!0)};Qx?Qx(Xf.exports,"apply",{value:Jx}):Xf.exports.apply=Jx});var bs=F((QY,e1)=>{"use strict";p();var HB=vc();e1.exports=function(){return HB()&&!!Symbol.toStringTag}});var ng=F((eX,n1)=>{"use strict";p();var Qf=Mx(),UB=Nx(),t1=fa(),rg=Bt(),Kf=ys(),Zf=Uf(),GB=rg("Object.prototype.toString"),i1=bs()(),r1=typeof globalThis=="undefined"?global:globalThis,tg=UB(),ig=rg("String.prototype.slice"),jB=rg("Array.prototype.indexOf",!0)||function(e,r){for(var i=0;i-1?r:r!=="Object"?!1:zB(e)}return Kf?qB(e):null}});var a1=F((rX,s1)=>{"use strict";p();var VB=ng();s1.exports=function(e){return!!VB(e)}});var l1=F((nX,o1)=>{"use strict";p();var WB=_r(),YB=Bt(),XB=YB("TypedArray.prototype.buffer",!0),ZB=a1();o1.exports=XB||function(e){if(!ZB(e))throw new WB("Not a Typed Array");return e.buffer}});var f1=F((aX,u1)=>{"use strict";p();var Ci=$f().Buffer,KB=Ff(),QB=l1(),JB=ArrayBuffer.isView||function(e){try{return QB(e),!0}catch(r){return!1}},eN=typeof Uint8Array!="undefined",c1=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined",tN=c1&&(Ci.prototype instanceof Uint8Array||Ci.TYPED_ARRAY_SUPPORT);u1.exports=function(e,r){if(Ci.isBuffer(e))return e.constructor&&!("isBuffer"in e)?Ci.from(e):e;if(typeof e=="string")return Ci.from(e,r);if(c1&&JB(e)){if(e.byteLength===0)return Ci.alloc(0);if(tN){var i=Ci.from(e.buffer,e.byteOffset,e.byteLength);if(i.byteLength===e.byteLength)return i}var n=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),s=Ci.from(n);if(s.length===e.byteLength)return s}if(eN&&e instanceof Uint8Array)return Ci.from(e);var a=KB(e);if(a)for(var o=0;o255||~~l!==l)throw new RangeError("Array items must be numbers in the range 0-255.")}if(a||Ci.isBuffer(e)&&e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e))return Ci.from(e);throw new TypeError('The "data" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}});var h1=F((lX,d1)=>{"use strict";p();var rN=$f().Buffer,iN=f1();function td(t,e){this._block=rN.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}td.prototype.update=function(t,e){t=iN(t,e||"utf8");for(var r=this._block,i=this._blockSize,n=t.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var i=(r&4294967295)>>>0,n=(r-i)/4294967296;this._block.writeUInt32BE(n,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var s=this._hash();return t?s.toString(t):s};td.prototype._update=function(){throw new Error("_update must be implemented by subclass")};d1.exports=td});var g1=F((uX,m1)=>{"use strict";p();var nN=d_(),p1=h1(),sN=$f().Buffer,aN=[1518500249,1859775393,-1894007588,-899497514],oN=new Array(80);function _c(){this.init(),this._w=oN,p1.call(this,64,56)}nN(_c,p1);_c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function lN(t){return t<<1|t>>>31}function cN(t){return t<<5|t>>>27}function uN(t){return t<<30|t>>>2}function fN(t,e,r,i){return t===0?e&r|~e&i:t===2?e&r|e&i|r&i:e^r^i}_c.prototype._update=function(t){for(var e=this._w,r=this._a|0,i=this._b|0,n=this._c|0,s=this._d|0,a=this._e|0,o=0;o<16;++o)e[o]=t.readInt32BE(o*4);for(;o<80;++o)e[o]=lN(e[o-3]^e[o-8]^e[o-14]^e[o-16]);for(var l=0;l<80;++l){var c=~~(l/20),u=cN(r)+fN(c,i,n,s)+a+e[l]+aN[c]|0;a=s,s=n,n=uN(i),i=r,r=u}this._a=r+this._a|0,this._b=i+this._b|0,this._c=n+this._c|0,this._d=s+this._d|0,this._e=a+this._e|0};_c.prototype._hash=function(){var t=sN.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};m1.exports=_c});var w1=F(sg=>{p();var v1;(function(t){typeof DO_NOT_EXPORT_CRC=="undefined"?typeof sg=="object"?t(sg):typeof define=="function"&&define.amd?define(function(){var e={};return t(e),e}):t(v1={}):t(v1={})})(function(t){t.version="1.2.2";function e(){for(var y=0,S=new Array(256),_=0;_!=256;++_)y=_,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,S[_]=y;return typeof Int32Array!="undefined"?new Int32Array(S):S}var r=e();function i(y){var S=0,_=0,T=0,P=typeof Int32Array!="undefined"?new Int32Array(4096):new Array(4096);for(T=0;T!=256;++T)P[T]=y[T];for(T=0;T!=256;++T)for(_=y[T],S=256+T;S<4096;S+=256)_=P[S]=_>>>8^y[_&255];var D=[];for(T=1;T!=16;++T)D[T-1]=typeof Int32Array!="undefined"?P.subarray(T*256,T*256+256):P.slice(T*256,T*256+256);return D}var n=i(r),s=n[0],a=n[1],o=n[2],l=n[3],c=n[4],u=n[5],f=n[6],d=n[7],h=n[8],m=n[9],g=n[10],v=n[11],w=n[12],b=n[13],k=n[14];function x(y,S){for(var _=S^-1,T=0,P=y.length;T>>8^r[(_^y.charCodeAt(T++))&255];return~_}function E(y,S){for(var _=S^-1,T=y.length-15,P=0;P>8&255]^w[y[P++]^_>>16&255]^v[y[P++]^_>>>24]^g[y[P++]]^m[y[P++]]^h[y[P++]]^d[y[P++]]^f[y[P++]]^u[y[P++]]^c[y[P++]]^l[y[P++]]^o[y[P++]]^a[y[P++]]^s[y[P++]]^r[y[P++]];for(T+=15;P>>8^r[(_^y[P++])&255];return~_}function A(y,S){for(var _=S^-1,T=0,P=y.length,D=0,B=0;T>>8^r[(_^D)&255]:D<2048?(_=_>>>8^r[(_^(192|D>>6&31))&255],_=_>>>8^r[(_^(128|D&63))&255]):D>=55296&&D<57344?(D=(D&1023)+64,B=y.charCodeAt(T++)&1023,_=_>>>8^r[(_^(240|D>>8&7))&255],_=_>>>8^r[(_^(128|D>>2&63))&255],_=_>>>8^r[(_^(128|B>>6&15|(D&3)<<4))&255],_=_>>>8^r[(_^(128|B&63))&255]):(_=_>>>8^r[(_^(224|D>>12&15))&255],_=_>>>8^r[(_^(128|D>>6&63))&255],_=_>>>8^r[(_^(128|D&63))&255]);return~_}t.table=r,t.bstr=x,t.buf=E,t.str=A})});var Bn=F(fr=>{"use strict";p();var dN=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function hN(t,e){return Object.prototype.hasOwnProperty.call(t,e)}fr.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(var i in r)hN(r,i)&&(t[i]=r[i])}}return t};fr.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var pN={arraySet:function(t,e,r,i,n){if(e.subarray&&t.subarray){t.set(e.subarray(r,r+i),n);return}for(var s=0;s{"use strict";p();var gN=Bn(),vN=4,y1=0,b1=1,wN=2;function Mo(t){for(var e=t.length;--e>=0;)t[e]=0}var yN=0,A1=1,bN=2,_N=3,xN=258,dg=29,Tc=256,Sc=Tc+1+dg,Oo=30,hg=19,T1=2*Sc+1,da=15,ag=16,SN=7,pg=256,C1=16,P1=17,R1=18,ug=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],rd=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],EN=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],$1=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],kN=512,Nn=new Array((Sc+2)*2);Mo(Nn);var xc=new Array(Oo*2);Mo(xc);var Ec=new Array(kN);Mo(Ec);var kc=new Array(xN-_N+1);Mo(kc);var mg=new Array(dg);Mo(mg);var id=new Array(Oo);Mo(id);function og(t,e,r,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}var F1,I1,O1;function lg(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function M1(t){return t<256?Ec[t]:Ec[256+(t>>>7)]}function Ac(t,e){t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255}function xr(t,e,r){t.bi_valid>ag-r?(t.bi_buf|=e<>ag-t.bi_valid,t.bi_valid+=r-ag):(t.bi_buf|=e<>>=1,r<<=1;while(--e>0);return r>>>1}function AN(t){t.bi_valid===16?(Ac(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)}function TN(t,e){var r=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,s=e.stat_desc.has_stree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length,c,u,f,d,h,m,g=0;for(d=0;d<=da;d++)t.bl_count[d]=0;for(r[t.heap[t.heap_max]*2+1]=0,c=t.heap_max+1;cl&&(d=l,g++),r[u*2+1]=d,!(u>i)&&(t.bl_count[d]++,h=0,u>=o&&(h=a[u-o]),m=r[u*2],t.opt_len+=m*(d+h),s&&(t.static_len+=m*(n[u*2+1]+h)));if(g!==0){do{for(d=l-1;t.bl_count[d]===0;)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[l]--,g-=2}while(g>0);for(d=l;d!==0;d--)for(u=t.bl_count[d];u!==0;)f=t.heap[--c],!(f>i)&&(r[f*2+1]!==d&&(t.opt_len+=(d-r[f*2+1])*r[f*2],r[f*2+1]=d),u--)}}function L1(t,e,r){var i=new Array(da+1),n=0,s,a;for(s=1;s<=da;s++)i[s]=n=n+r[s-1]<<1;for(a=0;a<=e;a++){var o=t[a*2+1];o!==0&&(t[a*2]=D1(i[o]++,o))}}function CN(){var t,e,r,i,n,s=new Array(da+1);for(r=0,i=0;i>=7;i8?Ac(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function PN(t,e,r,i){N1(t),i&&(Ac(t,r),Ac(t,~r)),gN.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}function _1(t,e,r,i){var n=e*2,s=r*2;return t[n]>1;a>=1;a--)cg(t,r,a);c=s;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],cg(t,r,1),o=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=o,r[c*2]=r[a*2]+r[o*2],t.depth[c]=(t.depth[a]>=t.depth[o]?t.depth[a]:t.depth[o])+1,r[a*2+1]=r[o*2+1]=c,t.heap[1]=c++,cg(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],TN(t,e),L1(r,l,t.bl_count)}function S1(t,e,r){var i,n=-1,s,a=e[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),e[(r+1)*2+1]=65535,i=0;i<=r;i++)s=a,a=e[(i+1)*2+1],!(++o=3&&t.bl_tree[$1[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e}function $N(t,e,r,i){var n;for(xr(t,e-257,5),xr(t,r-1,5),xr(t,i-4,4),n=0;n>>=1)if(e&1&&t.dyn_ltree[r*2]!==0)return y1;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return b1;for(r=32;r0?(t.strm.data_type===wN&&(t.strm.data_type=FN(t)),fg(t,t.l_desc),fg(t,t.d_desc),a=RN(t),n=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=n&&(n=s)):n=s=r+5,r+4<=n&&e!==-1?H1(t,e,r,i):t.strategy===vN||s===n?(xr(t,(A1<<1)+(i?1:0),3),x1(t,Nn,xc)):(xr(t,(bN<<1)+(i?1:0),3),$N(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),x1(t,t.dyn_ltree,t.dyn_dtree)),B1(t),i&&N1(t)}function DN(t,e,r){return t.pending_buf[t.d_buf+t.last_lit*2]=e>>>8&255,t.pending_buf[t.d_buf+t.last_lit*2+1]=e&255,t.pending_buf[t.l_buf+t.last_lit]=r&255,t.last_lit++,e===0?t.dyn_ltree[r*2]++:(t.matches++,e--,t.dyn_ltree[(kc[r]+Tc+1)*2]++,t.dyn_dtree[M1(e)*2]++),t.last_lit===t.lit_bufsize-1}Do._tr_init=IN;Do._tr_stored_block=H1;Do._tr_flush_block=MN;Do._tr_tally=DN;Do._tr_align=ON});var gg=F((wX,G1)=>{"use strict";p();function LN(t,e,r,i){for(var n=t&65535|0,s=t>>>16&65535|0,a=0;r!==0;){a=r>2e3?2e3:r,r-=a;do n=n+e[i++]|0,s=s+n|0;while(--a);n%=65521,s%=65521}return n|s<<16|0}G1.exports=LN});var vg=F((bX,j1)=>{"use strict";p();function BN(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;e[r]=t}return e}var NN=BN();function HN(t,e,r,i){var n=NN,s=i+r;t^=-1;for(var a=i;a>>8^n[(t^e[a])&255];return t^-1}j1.exports=HN});var nd=F((xX,q1)=>{"use strict";p();q1.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var J1=F(an=>{"use strict";p();var dr=Bn(),di=U1(),Y1=gg(),_s=vg(),UN=nd(),ga=0,GN=1,jN=3,As=4,z1=5,sn=0,V1=1,hi=-2,qN=-3,wg=-5,zN=-1,VN=1,sd=2,WN=3,YN=4,XN=0,ZN=2,cd=8,KN=9,QN=15,JN=8,eH=29,tH=256,bg=tH+1+eH,rH=30,iH=19,nH=2*bg+1,sH=15,Ce=3,Es=258,Pi=Es+Ce+1,aH=32,ud=42,_g=69,ad=73,od=91,ld=103,ha=113,Pc=666,Ct=1,Rc=2,pa=3,No=4,oH=3;function ks(t,e){return t.msg=UN[e],e}function W1(t){return(t<<1)-(t>4?9:0)}function Ss(t){for(var e=t.length;--e>=0;)t[e]=0}function xs(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),r!==0&&(dr.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,e.pending===0&&(e.pending_out=0))}function qt(t,e){di._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,xs(t.strm)}function Ie(t,e){t.pending_buf[t.pending++]=e}function Cc(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255}function lH(t,e,r,i){var n=t.avail_in;return n>i&&(n=i),n===0?0:(t.avail_in-=n,dr.arraySet(e,t.input,t.next_in,n,r),t.state.wrap===1?t.adler=Y1(t.adler,e,n,r):t.state.wrap===2&&(t.adler=_s(t.adler,e,n,r)),t.next_in+=n,t.total_in+=n,n)}function X1(t,e){var r=t.max_chain_length,i=t.strstart,n,s,a=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-Pi?t.strstart-(t.w_size-Pi):0,c=t.window,u=t.w_mask,f=t.prev,d=t.strstart+Es,h=c[i+a-1],m=c[i+a];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do if(n=e,!(c[n+a]!==m||c[n+a-1]!==h||c[n]!==c[i]||c[++n]!==c[i+1])){i+=2,n++;do;while(c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&c[++i]===c[++n]&&ia){if(t.match_start=e,a=s,s>=o)break;h=c[i+a-1],m=c[i+a]}}while((e=f[e&u])>l&&--r!==0);return a<=t.lookahead?a:t.lookahead}function ma(t){var e=t.w_size,r,i,n,s,a;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Pi)){dr.arraySet(t.window,t.window,e,e,0),t.match_start-=e,t.strstart-=e,t.block_start-=e,i=t.hash_size,r=i;do n=t.head[--r],t.head[r]=n>=e?n-e:0;while(--i);i=e,r=i;do n=t.prev[--r],t.prev[r]=n>=e?n-e:0;while(--i);s+=e}if(t.strm.avail_in===0)break;if(i=lH(t.strm,t.window,t.strstart+t.lookahead,s),t.lookahead+=i,t.lookahead+t.insert>=Ce)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(ma(t),t.lookahead===0&&e===ga)return Ct;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((t.strstart===0||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,qt(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-Pi&&(qt(t,!1),t.strm.avail_out===0))return Ct}return t.insert=0,e===As?(qt(t,!0),t.strm.avail_out===0?pa:No):(t.strstart>t.block_start&&(qt(t,!1),t.strm.avail_out===0),Ct)}function yg(t,e){for(var r,i;;){if(t.lookahead=Ce&&(t.ins_h=(t.ins_h<=Ce)if(i=di._tr_tally(t,t.strstart-t.match_start,t.match_length-Ce),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=Ce){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<=Ce&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=Ce-1)),t.prev_length>=Ce&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-Ce,i=di._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-Ce),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=n&&(t.ins_h=(t.ins_h<=Ce&&t.strstart>0&&(n=t.strstart-1,i=a[n],i===a[++n]&&i===a[++n]&&i===a[++n])){s=t.strstart+Es;do;while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=Ce?(r=di._tr_tally(t,1,t.match_length-Ce),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=di._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(qt(t,!1),t.strm.avail_out===0))return Ct}return t.insert=0,e===As?(qt(t,!0),t.strm.avail_out===0?pa:No):t.last_lit&&(qt(t,!1),t.strm.avail_out===0)?Ct:Rc}function fH(t,e){for(var r;;){if(t.lookahead===0&&(ma(t),t.lookahead===0)){if(e===ga)return Ct;break}if(t.match_length=0,r=di._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(qt(t,!1),t.strm.avail_out===0))return Ct}return t.insert=0,e===As?(qt(t,!0),t.strm.avail_out===0?pa:No):t.last_lit&&(qt(t,!1),t.strm.avail_out===0)?Ct:Rc}function nn(t,e,r,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=i,this.func=n}var Bo;Bo=[new nn(0,0,0,0,cH),new nn(4,4,8,4,yg),new nn(4,5,16,8,yg),new nn(4,6,32,32,yg),new nn(4,4,16,16,Lo),new nn(8,16,32,32,Lo),new nn(8,16,128,128,Lo),new nn(8,32,128,256,Lo),new nn(32,128,258,1024,Lo),new nn(32,258,258,4096,Lo)];function dH(t){t.window_size=2*t.w_size,Ss(t.head),t.max_lazy_match=Bo[t.level].max_lazy,t.good_match=Bo[t.level].good_length,t.nice_match=Bo[t.level].nice_length,t.max_chain_length=Bo[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Ce-1,t.match_available=0,t.ins_h=0}function hH(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=cd,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new dr.Buf16(nH*2),this.dyn_dtree=new dr.Buf16((2*rH+1)*2),this.bl_tree=new dr.Buf16((2*iH+1)*2),Ss(this.dyn_ltree),Ss(this.dyn_dtree),Ss(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new dr.Buf16(sH+1),this.heap=new dr.Buf16(2*bg+1),Ss(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new dr.Buf16(2*bg+1),Ss(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Z1(t){var e;return!t||!t.state?ks(t,hi):(t.total_in=t.total_out=0,t.data_type=ZN,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ud:ha,t.adler=e.wrap===2?0:1,e.last_flush=ga,di._tr_init(e),sn)}function K1(t){var e=Z1(t);return e===sn&&dH(t.state),e}function pH(t,e){return!t||!t.state||t.state.wrap!==2?hi:(t.state.gzhead=e,sn)}function Q1(t,e,r,i,n,s){if(!t)return hi;var a=1;if(e===zN&&(e=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),n<1||n>KN||r!==cd||i<8||i>15||e<0||e>9||s<0||s>YN)return ks(t,hi);i===8&&(i=9);var o=new hH;return t.state=o,o.strm=t,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<z1||e<0)return t?ks(t,hi):hi;if(i=t.state,!t.output||!t.input&&t.avail_in!==0||i.status===Pc&&e!==As)return ks(t,t.avail_out===0?wg:hi);if(i.strm=t,r=i.last_flush,i.last_flush=e,i.status===ud)if(i.wrap===2)t.adler=0,Ie(i,31),Ie(i,139),Ie(i,8),i.gzhead?(Ie(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Ie(i,i.gzhead.time&255),Ie(i,i.gzhead.time>>8&255),Ie(i,i.gzhead.time>>16&255),Ie(i,i.gzhead.time>>24&255),Ie(i,i.level===9?2:i.strategy>=sd||i.level<2?4:0),Ie(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(Ie(i,i.gzhead.extra.length&255),Ie(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=_s(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=_g):(Ie(i,0),Ie(i,0),Ie(i,0),Ie(i,0),Ie(i,0),Ie(i,i.level===9?2:i.strategy>=sd||i.level<2?4:0),Ie(i,oH),i.status=ha);else{var a=cd+(i.w_bits-8<<4)<<8,o=-1;i.strategy>=sd||i.level<2?o=0:i.level<6?o=1:i.level===6?o=2:o=3,a|=o<<6,i.strstart!==0&&(a|=aH),a+=31-a%31,i.status=ha,Cc(i,a),i.strstart!==0&&(Cc(i,t.adler>>>16),Cc(i,t.adler&65535)),t.adler=1}if(i.status===_g)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(i.gzhead.extra.length&65535)&&!(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=_s(t.adler,i.pending_buf,i.pending-n,n)),xs(t),n=i.pending,i.pending===i.pending_buf_size));)Ie(i,i.gzhead.extra[i.gzindex]&255),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=_s(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=ad)}else i.status=ad;if(i.status===ad)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=_s(t.adler,i.pending_buf,i.pending-n,n)),xs(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}i.gzindexn&&(t.adler=_s(t.adler,i.pending_buf,i.pending-n,n)),s===0&&(i.gzindex=0,i.status=od)}else i.status=od;if(i.status===od)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=_s(t.adler,i.pending_buf,i.pending-n,n)),xs(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}i.gzindexn&&(t.adler=_s(t.adler,i.pending_buf,i.pending-n,n)),s===0&&(i.status=ld)}else i.status=ld;if(i.status===ld&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&xs(t),i.pending+2<=i.pending_buf_size&&(Ie(i,t.adler&255),Ie(i,t.adler>>8&255),t.adler=0,i.status=ha)):i.status=ha),i.pending!==0){if(xs(t),t.avail_out===0)return i.last_flush=-1,sn}else if(t.avail_in===0&&W1(e)<=W1(r)&&e!==As)return ks(t,wg);if(i.status===Pc&&t.avail_in!==0)return ks(t,wg);if(t.avail_in!==0||i.lookahead!==0||e!==ga&&i.status!==Pc){var l=i.strategy===sd?fH(i,e):i.strategy===WN?uH(i,e):Bo[i.level].func(i,e);if((l===pa||l===No)&&(i.status=Pc),l===Ct||l===pa)return t.avail_out===0&&(i.last_flush=-1),sn;if(l===Rc&&(e===GN?di._tr_align(i):e!==z1&&(di._tr_stored_block(i,0,0,!1),e===jN&&(Ss(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),xs(t),t.avail_out===0))return i.last_flush=-1,sn}return e!==As?sn:i.wrap<=0?V1:(i.wrap===2?(Ie(i,t.adler&255),Ie(i,t.adler>>8&255),Ie(i,t.adler>>16&255),Ie(i,t.adler>>24&255),Ie(i,t.total_in&255),Ie(i,t.total_in>>8&255),Ie(i,t.total_in>>16&255),Ie(i,t.total_in>>24&255)):(Cc(i,t.adler>>>16),Cc(i,t.adler&65535)),xs(t),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?sn:V1)}function vH(t){var e;return!t||!t.state?hi:(e=t.state.status,e!==ud&&e!==_g&&e!==ad&&e!==od&&e!==ld&&e!==ha&&e!==Pc?ks(t,hi):(t.state=null,e===ha?ks(t,qN):sn))}function wH(t,e){var r=e.length,i,n,s,a,o,l,c,u;if(!t||!t.state||(i=t.state,a=i.wrap,a===2||a===1&&i.status!==ud||i.lookahead))return hi;for(a===1&&(t.adler=Y1(t.adler,e,r,0)),i.wrap=0,r>=i.w_size&&(a===0&&(Ss(i.head),i.strstart=0,i.block_start=0,i.insert=0),u=new dr.Buf8(i.w_size),dr.arraySet(u,e,r-i.w_size,i.w_size,0),e=u,r=i.w_size),o=t.avail_in,l=t.next_in,c=t.input,t.avail_in=r,t.next_in=0,t.input=e,ma(i);i.lookahead>=Ce;){n=i.strstart,s=i.lookahead-(Ce-1);do i.ins_h=(i.ins_h<{"use strict";p();var fd=Bn(),eS=!0,tS=!0;try{String.fromCharCode.apply(null,[0])}catch(t){eS=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){tS=!1}var $c=new fd.Buf8(256);for(Hn=0;Hn<256;Hn++)$c[Hn]=Hn>=252?6:Hn>=248?5:Hn>=240?4:Hn>=224?3:Hn>=192?2:1;var Hn;$c[254]=$c[254]=1;Ho.string2buf=function(t){var e,r,i,n,s,a=t.length,o=0;for(n=0;n>>6,e[s++]=128|r&63):r<65536?(e[s++]=224|r>>>12,e[s++]=128|r>>>6&63,e[s++]=128|r&63):(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63,e[s++]=128|r>>>6&63,e[s++]=128|r&63);return e};function rS(t,e){if(e<65534&&(t.subarray&&tS||!t.subarray&&eS))return String.fromCharCode.apply(null,fd.shrinkBuf(t,e));for(var r="",i=0;i4){o[i++]=65533,r+=s-1;continue}for(n&=s===2?31:s===3?15:7;s>1&&r1){o[i++]=65533;continue}n<65536?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|n&1023)}return rS(o,i)};Ho.utf8border=function(t,e){var r;for(e=e||t.length,e>t.length&&(e=t.length),r=e-1;r>=0&&(t[r]&192)===128;)r--;return r<0||r===0?e:r+$c[t[r]]>e?r:e}});var Sg=F((CX,iS)=>{"use strict";p();function yH(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}iS.exports=yH});var oS=F(Oc=>{"use strict";p();var Fc=J1(),Ic=Bn(),kg=xg(),Ag=nd(),bH=Sg(),aS=Object.prototype.toString,_H=0,Eg=4,Uo=0,nS=1,sS=2,xH=-1,SH=0,EH=8;function va(t){if(!(this instanceof va))return new va(t);this.options=Ic.assign({level:xH,method:EH,chunkSize:16384,windowBits:15,memLevel:8,strategy:SH,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new bH,this.strm.avail_out=0;var r=Fc.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(r!==Uo)throw new Error(Ag[r]);if(e.header&&Fc.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(typeof e.dictionary=="string"?i=kg.string2buf(e.dictionary):aS.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,r=Fc.deflateSetDictionary(this.strm,i),r!==Uo)throw new Error(Ag[r]);this._dict_set=!0}}va.prototype.push=function(t,e){var r=this.strm,i=this.options.chunkSize,n,s;if(this.ended)return!1;s=e===~~e?e:e===!0?Eg:_H,typeof t=="string"?r.input=kg.string2buf(t):aS.call(t)==="[object ArrayBuffer]"?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Ic.Buf8(i),r.next_out=0,r.avail_out=i),n=Fc.deflate(r,s),n!==nS&&n!==Uo)return this.onEnd(n),this.ended=!0,!1;(r.avail_out===0||r.avail_in===0&&(s===Eg||s===sS))&&(this.options.to==="string"?this.onData(kg.buf2binstring(Ic.shrinkBuf(r.output,r.next_out))):this.onData(Ic.shrinkBuf(r.output,r.next_out)))}while((r.avail_in>0||r.avail_out===0)&&n!==nS);return s===Eg?(n=Fc.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Uo):(s===sS&&(this.onEnd(Uo),r.avail_out=0),!0)};va.prototype.onData=function(t){this.chunks.push(t)};va.prototype.onEnd=function(t){t===Uo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ic.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Tg(t,e){var r=new va(e);if(r.push(t,!0),r.err)throw r.msg||Ag[r.err];return r.result}function kH(t,e){return e=e||{},e.raw=!0,Tg(t,e)}function AH(t,e){return e=e||{},e.gzip=!0,Tg(t,e)}Oc.Deflate=va;Oc.deflate=Tg;Oc.deflateRaw=kH;Oc.gzip=AH});var cS=F((FX,lS)=>{"use strict";p();var dd=30,TH=12;lS.exports=function(e,r){var i,n,s,a,o,l,c,u,f,d,h,m,g,v,w,b,k,x,E,A,y,S,_,T,P;i=e.state,n=e.next_in,T=e.input,s=n+(e.avail_in-5),a=e.next_out,P=e.output,o=a-(r-e.avail_out),l=a+(e.avail_out-257),c=i.dmax,u=i.wsize,f=i.whave,d=i.wnext,h=i.window,m=i.hold,g=i.bits,v=i.lencode,w=i.distcode,b=(1<>>24,m>>>=E,g-=E,E=x>>>16&255,E===0)P[a++]=x&65535;else if(E&16){A=x&65535,E&=15,E&&(g>>=E,g-=E),g<15&&(m+=T[n++]<>>24,m>>>=E,g-=E,E=x>>>16&255,E&16){if(y=x&65535,E&=15,gc){e.msg="invalid distance too far back",i.mode=dd;break e}if(m>>>=E,g-=E,E=a-o,y>E){if(E=y-E,E>f&&i.sane){e.msg="invalid distance too far back",i.mode=dd;break e}if(S=0,_=h,d===0){if(S+=u-E,E2;)P[a++]=_[S++],P[a++]=_[S++],P[a++]=_[S++],A-=3;A&&(P[a++]=_[S++],A>1&&(P[a++]=_[S++]))}else{S=a-y;do P[a++]=P[S++],P[a++]=P[S++],P[a++]=P[S++],A-=3;while(A>2);A&&(P[a++]=P[S++],A>1&&(P[a++]=P[S++]))}}else if(E&64){e.msg="invalid distance code",i.mode=dd;break e}else{x=w[(x&65535)+(m&(1<>3,n-=A,g-=A<<3,m&=(1<{"use strict";p();var uS=Bn(),Go=15,fS=852,dS=592,hS=0,Cg=1,pS=2,CH=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],PH=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],RH=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],$H=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];mS.exports=function(e,r,i,n,s,a,o,l){var c=l.bits,u=0,f=0,d=0,h=0,m=0,g=0,v=0,w=0,b=0,k=0,x,E,A,y,S,_=null,T=0,P,D=new uS.Buf16(Go+1),B=new uS.Buf16(Go+1),N=null,ce=0,Pe,ve,se;for(u=0;u<=Go;u++)D[u]=0;for(f=0;f=1&&D[h]===0;h--);if(m>h&&(m=h),h===0)return s[a++]=1<<24|64<<16|0,s[a++]=1<<24|64<<16|0,l.bits=1,0;for(d=1;d0&&(e===hS||h!==1))return-1;for(B[1]=0,u=1;ufS||e===pS&&b>dS)return 1;for(;;){Pe=u-v,o[f]P?(ve=N[ce+o[f]],se=_[T+o[f]]):(ve=96,se=0),x=1<>v)+E]=Pe<<24|ve<<16|se|0;while(E!==0);for(x=1<>=1;if(x!==0?(k&=x-1,k+=x):k=0,f++,--D[u]===0){if(u===h)break;u=r[i+o[f]]}if(u>m&&(k&y)!==A){for(v===0&&(v=m),S+=d,g=u-v,w=1<fS||e===pS&&b>dS)return 1;A=k&y,s[A]=m<<24|g<<16|S-a|0}}return k!==0&&(s[S+k]=u-v<<24|64<<16|0),l.bits=m,0}});var KS=F(Ri=>{"use strict";p();var Xr=Bn(),Og=gg(),on=vg(),FH=cS(),Mc=gS(),IH=0,GS=1,jS=2,vS=4,OH=5,hd=6,wa=0,MH=1,DH=2,pi=-2,qS=-3,Mg=-4,LH=-5,wS=8,zS=1,yS=2,bS=3,_S=4,xS=5,SS=6,ES=7,kS=8,AS=9,TS=10,gd=11,Un=12,Pg=13,CS=14,Rg=15,PS=16,RS=17,$S=18,FS=19,pd=20,md=21,IS=22,OS=23,MS=24,DS=25,LS=26,$g=27,BS=28,NS=29,tt=30,Dg=31,BH=32,NH=852,HH=592,UH=15,GH=UH;function HS(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function jH(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Xr.Buf16(320),this.work=new Xr.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function VS(t){var e;return!t||!t.state?pi:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=zS,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Xr.Buf32(NH),e.distcode=e.distdyn=new Xr.Buf32(HH),e.sane=1,e.back=-1,wa)}function WS(t){var e;return!t||!t.state?pi:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,VS(t))}function YS(t,e){var r,i;return!t||!t.state||(i=t.state,e<0?(r=0,e=-e):(r=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?pi:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=r,i.wbits=e,WS(t))}function XS(t,e){var r,i;return t?(i=new jH,t.state=i,i.window=null,r=YS(t,e),r!==wa&&(t.state=null),r):pi}function qH(t){return XS(t,GH)}var US=!0,Fg,Ig;function zH(t){if(US){var e;for(Fg=new Xr.Buf32(512),Ig=new Xr.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Mc(GS,t.lens,0,288,Fg,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Mc(jS,t.lens,0,32,Ig,0,t.work,{bits:5}),US=!1}t.lencode=Fg,t.lenbits=9,t.distcode=Ig,t.distbits=5}function ZS(t,e,r,i){var n,s=t.state;return s.window===null&&(s.wsize=1<=s.wsize?(Xr.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),Xr.arraySet(s.window,e,r-i,n,s.wnext),i-=n,i?(Xr.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=on(r.check,_,2,0),c=0,u=0,r.mode=yS;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((c&255)<<8)+(c>>8))%31){t.msg="incorrect header check",r.mode=tt;break}if((c&15)!==wS){t.msg="unknown compression method",r.mode=tt;break}if(c>>>=4,u-=4,y=(c&15)+8,r.wbits===0)r.wbits=y;else if(y>r.wbits){t.msg="invalid window size",r.mode=tt;break}r.dmax=1<>8&1),r.flags&512&&(_[0]=c&255,_[1]=c>>>8&255,r.check=on(r.check,_,2,0)),c=0,u=0,r.mode=bS;case bS:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>8&255,_[2]=c>>>16&255,_[3]=c>>>24&255,r.check=on(r.check,_,4,0)),c=0,u=0,r.mode=_S;case _S:for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>8),r.flags&512&&(_[0]=c&255,_[1]=c>>>8&255,r.check=on(r.check,_,2,0)),c=0,u=0,r.mode=xS;case xS:if(r.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,r.check=on(r.check,_,2,0)),c=0,u=0}else r.head&&(r.head.extra=null);r.mode=SS;case SS:if(r.flags&1024&&(h=r.length,h>o&&(h=o),h&&(r.head&&(y=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),Xr.arraySet(r.head.extra,i,s,h,y)),r.flags&512&&(r.check=on(r.check,i,h,s)),o-=h,s+=h,r.length-=h),r.length))break e;r.length=0,r.mode=ES;case ES:if(r.flags&2048){if(o===0)break e;h=0;do y=i[s+h++],r.head&&y&&r.length<65536&&(r.head.name+=String.fromCharCode(y));while(y&&h>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=Un;break;case TS:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>=u&7,u-=u&7,r.mode=$g;break}for(;u<3;){if(o===0)break e;o--,c+=i[s++]<>>=1,u-=1,c&3){case 0:r.mode=CS;break;case 1:if(zH(r),r.mode=pd,e===hd){c>>>=2,u-=2;break e}break;case 2:r.mode=RS;break;case 3:t.msg="invalid block type",r.mode=tt}c>>>=2,u-=2;break;case CS:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=tt;break}if(r.length=c&65535,c=0,u=0,r.mode=Rg,e===hd)break e;case Rg:r.mode=PS;case PS:if(h=r.length,h){if(h>o&&(h=o),h>l&&(h=l),h===0)break e;Xr.arraySet(n,i,s,h,a),o-=h,s+=h,l-=h,a+=h,r.length-=h;break}r.mode=Un;break;case RS:for(;u<14;){if(o===0)break e;o--,c+=i[s++]<>>=5,u-=5,r.ndist=(c&31)+1,c>>>=5,u-=5,r.ncode=(c&15)+4,c>>>=4,u-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=tt;break}r.have=0,r.mode=$S;case $S:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[D[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,T={bits:r.lenbits},S=Mc(IH,r.lens,0,19,r.lencode,0,r.work,T),r.lenbits=T.bits,S){t.msg="invalid code lengths set",r.mode=tt;break}r.have=0,r.mode=FS;case FS:for(;r.have>>24,b=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=w,u-=w,r.lens[r.have++]=k;else{if(k===16){for(P=w+2;u>>=w,u-=w,r.have===0){t.msg="invalid bit length repeat",r.mode=tt;break}y=r.lens[r.have-1],h=3+(c&3),c>>>=2,u-=2}else if(k===17){for(P=w+3;u>>=w,u-=w,y=0,h=3+(c&7),c>>>=3,u-=3}else{for(P=w+7;u>>=w,u-=w,y=0,h=11+(c&127),c>>>=7,u-=7}if(r.have+h>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=tt;break}for(;h--;)r.lens[r.have++]=y}}if(r.mode===tt)break;if(r.lens[256]===0){t.msg="invalid code -- missing end-of-block",r.mode=tt;break}if(r.lenbits=9,T={bits:r.lenbits},S=Mc(GS,r.lens,0,r.nlen,r.lencode,0,r.work,T),r.lenbits=T.bits,S){t.msg="invalid literal/lengths set",r.mode=tt;break}if(r.distbits=6,r.distcode=r.distdyn,T={bits:r.distbits},S=Mc(jS,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,T),r.distbits=T.bits,S){t.msg="invalid distances set",r.mode=tt;break}if(r.mode=pd,e===hd)break e;case pd:r.mode=md;case md:if(o>=6&&l>=258){t.next_out=a,t.avail_out=l,t.next_in=s,t.avail_in=o,r.hold=c,r.bits=u,FH(t,d),a=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,c=r.hold,u=r.bits,r.mode===Un&&(r.back=-1);break}for(r.back=0;v=r.lencode[c&(1<>>24,b=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],w=v>>>24,b=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,r.back+=x}if(c>>>=w,u-=w,r.back+=w,r.length=k,b===0){r.mode=LS;break}if(b&32){r.back=-1,r.mode=Un;break}if(b&64){t.msg="invalid literal/length code",r.mode=tt;break}r.extra=b&15,r.mode=IS;case IS:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=OS;case OS:for(;v=r.distcode[c&(1<>>24,b=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],w=v>>>24,b=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,r.back+=x}if(c>>>=w,u-=w,r.back+=w,b&64){t.msg="invalid distance code",r.mode=tt;break}r.offset=k,r.extra=b&15,r.mode=MS;case MS:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=tt;break}r.mode=DS;case DS:if(l===0)break e;if(h=d-l,r.offset>h){if(h=r.offset-h,h>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=tt;break}h>r.wnext?(h-=r.wnext,m=r.wsize-h):m=r.wnext-h,h>r.length&&(h=r.length),g=r.window}else g=n,m=a-r.offset,h=r.length;h>l&&(h=l),l-=h,r.length-=h;do n[a++]=g[m++];while(--h);r.length===0&&(r.mode=md);break;case LS:if(l===0)break e;n[a++]=r.length,l--,r.mode=md;break;case $g:if(r.wrap){for(;u<32;){if(o===0)break e;o--,c|=i[s++]<{"use strict";p();QS.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var eE=F((HX,JS)=>{"use strict";p();function ZH(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}JS.exports=ZH});var rE=F(Lc=>{"use strict";p();var jo=KS(),Dc=Bn(),vd=xg(),pt=Lg(),Bg=nd(),KH=Sg(),QH=eE(),tE=Object.prototype.toString;function ya(t){if(!(this instanceof ya))return new ya(t);this.options=Dc.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new KH,this.strm.avail_out=0;var r=jo.inflateInit2(this.strm,e.windowBits);if(r!==pt.Z_OK)throw new Error(Bg[r]);if(this.header=new QH,jo.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=vd.string2buf(e.dictionary):tE.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=jo.inflateSetDictionary(this.strm,e.dictionary),r!==pt.Z_OK)))throw new Error(Bg[r])}ya.prototype.push=function(t,e){var r=this.strm,i=this.options.chunkSize,n=this.options.dictionary,s,a,o,l,c,u=!1;if(this.ended)return!1;a=e===~~e?e:e===!0?pt.Z_FINISH:pt.Z_NO_FLUSH,typeof t=="string"?r.input=vd.binstring2buf(t):tE.call(t)==="[object ArrayBuffer]"?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Dc.Buf8(i),r.next_out=0,r.avail_out=i),s=jo.inflate(r,pt.Z_NO_FLUSH),s===pt.Z_NEED_DICT&&n&&(s=jo.inflateSetDictionary(this.strm,n)),s===pt.Z_BUF_ERROR&&u===!0&&(s=pt.Z_OK,u=!1),s!==pt.Z_STREAM_END&&s!==pt.Z_OK)return this.onEnd(s),this.ended=!0,!1;r.next_out&&(r.avail_out===0||s===pt.Z_STREAM_END||r.avail_in===0&&(a===pt.Z_FINISH||a===pt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=vd.utf8border(r.output,r.next_out),l=r.next_out-o,c=vd.buf2string(r.output,o),r.next_out=l,r.avail_out=i-l,l&&Dc.arraySet(r.output,r.output,o,l,0),this.onData(c)):this.onData(Dc.shrinkBuf(r.output,r.next_out))),r.avail_in===0&&r.avail_out===0&&(u=!0)}while((r.avail_in>0||r.avail_out===0)&&s!==pt.Z_STREAM_END);return s===pt.Z_STREAM_END&&(a=pt.Z_FINISH),a===pt.Z_FINISH?(s=jo.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===pt.Z_OK):(a===pt.Z_SYNC_FLUSH&&(this.onEnd(pt.Z_OK),r.avail_out=0),!0)};ya.prototype.onData=function(t){this.chunks.push(t)};ya.prototype.onEnd=function(t){t===pt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Dc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Ng(t,e){var r=new ya(e);if(r.push(t,!0),r.err)throw r.msg||Bg[r.err];return r.result}function JH(t,e){return e=e||{},e.raw=!0,Ng(t,e)}Lc.Inflate=ya;Lc.inflate=Ng;Lc.inflateRaw=JH;Lc.ungzip=Ng});var sE=F((qX,nE)=>{"use strict";p();var e3=Bn().assign,t3=oS(),r3=rE(),i3=Lg(),iE={};e3(iE,t3,r3,i3);nE.exports=iE});var lE=F((VX,oE)=>{"use strict";p();var aE=(t,e)=>function(...r){let i=e.promiseModule;return new i((n,s)=>{e.multiArgs?r.push((...a)=>{e.errorFirst?a[0]?s(a):(a.shift(),n(a)):n(a)}):e.errorFirst?r.push((a,o)=>{a?s(a):n(o)}):r.push(n),t.apply(this,r)})};oE.exports=(t,e)=>{e=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},e);let r=typeof t;if(!(t!==null&&(r==="object"||r==="function")))throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${t===null?"null":r}\``);let i=s=>{let a=o=>typeof o=="string"?s===o:o.test(s);return e.include?e.include.some(a):!e.exclude.some(a)},n;r==="function"?n=function(...s){return e.excludeMain?t(...s):aE(t,e).apply(this,s)}:n=Object.create(Object.getPrototypeOf(t));for(let s in t){let a=t[s];n[s]=typeof a=="function"&&i(s)?aE(a,e):a}return n}});var vE=F((YX,gE)=>{p();function cE(t){return Array.isArray(t)?t:[t]}var Gg="",uE=" ",Hg="\\",n3=/^\s+$/,s3=/(?:[^\\]|^)\\$/,a3=/^\\!/,o3=/^\\#/,l3=/\r?\n/g,c3=/^\.*\/|^\.+$/,Ug="/",hE="node-ignore";typeof Symbol!="undefined"&&(hE=Symbol.for("node-ignore"));var fE=hE,u3=(t,e,r)=>Object.defineProperty(t,e,{value:r}),f3=/([0-z])-([0-z])/g,pE=()=>!1,d3=t=>t.replace(f3,(e,r,i)=>r.charCodeAt(0)<=i.charCodeAt(0)?e:Gg),h3=t=>{let{length:e}=t;return t.slice(0,e-e%2)},p3=[[/^\uFEFF/,()=>Gg],[/((?:\\\\)*?)(\\?\s+)$/,(t,e,r)=>e+(r.indexOf("\\")===0?uE:Gg)],[/(\\+?)\s/g,(t,e)=>{let{length:r}=e;return e.slice(0,r-r%2)+uE}],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6{let i=r.replace(/\\\*/g,"[^\\/]*");return e+i}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Hg],[/\\\\/g,()=>Hg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,r,i,n)=>e===Hg?`\\[${r}${h3(i)}${n}`:n==="]"&&i.length%2===0?`[${d3(r)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],dE=Object.create(null),m3=(t,e)=>{let r=dE[t];return r||(r=p3.reduce((i,[n,s])=>i.replace(n,s.bind(t)),t),dE[t]=r),e?new RegExp(r,"i"):new RegExp(r)},zg=t=>typeof t=="string",g3=t=>t&&zg(t)&&!n3.test(t)&&!s3.test(t)&&t.indexOf("#")!==0,v3=t=>t.split(l3),jg=class{constructor(e,r,i,n){this.origin=e,this.pattern=r,this.negative=i,this.regex=n}},w3=(t,e)=>{let r=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(a3,"!").replace(o3,"#");let n=m3(t,e);return new jg(r,t,i,n)},y3=(t,e)=>{throw new e(t)},Gn=(t,e,r)=>zg(t)?t?Gn.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),mE=t=>c3.test(t);Gn.isNotRelative=mE;Gn.convert=t=>t;var qg=class{constructor({ignorecase:e=!0,ignoreCase:r=e,allowRelativePaths:i=!1}={}){u3(this,fE,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=i,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[fE]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(g3(e)){let r=w3(e,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,cE(zg(e)?v3(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:a}=s;if(n===a&&i!==n||a&&!i&&!n&&!r)return;s.regex.test(e)&&(i=!a,n=a)}),{ignored:i,unignored:n}}_test(e,r,i,n){let s=e&&Gn.convert(e);return Gn(s,e,this._allowRelativePaths?pE:y3),this._t(s,r,i,n)}_t(e,r,i,n){if(e in r)return r[e];if(n||(n=e.split(Ug)),n.pop(),!n.length)return r[e]=this._testOne(e,i);let s=this._t(n.join(Ug)+Ug,r,i,n);return r[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return cE(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},wd=t=>new qg(t),b3=t=>Gn(t&&Gn.convert(t),t,pE);wd.isPathValid=b3;wd.default=wd;gE.exports=wd;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");Gn.convert=t;let e=/^[a-z]:\//i;Gn.isNotRelative=r=>e.test(r)||mE(r)}});var yE=F((ZX,wE)=>{"use strict";p();function _3(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ln(t,e,r){return e=e instanceof RegExp?e:new RegExp(_3(e),"g"),t.replace(e,r)}var x3={clean:function(e){if(typeof e!="string")throw new Error("Expected a string, received: "+e);return e=ln(e,"./","/"),e=ln(e,"..","."),e=ln(e," ","-"),e=ln(e,/^[~^:?*\\\-]/g,""),e=ln(e,/[~^:?*\\]/g,"-"),e=ln(e,/[~^:?*\\\-]$/g,""),e=ln(e,"@{","-"),e=ln(e,/\.$/g,""),e=ln(e,/\/$/g,""),e=ln(e,/\.lock$/g,""),e}};wE.exports=x3});var _E=F((QX,bE)=>{p();bE.exports=function(t,e){var r=t,i=e,n=r.length,s=i.length,a=!1,o=null,l=n+1,c=[],u=[],f=[],d="",h=-1,m=0,g=1,v,w,b=function(){n>=s&&(v=r,w=n,r=i,i=v,n=s,s=w,a=!0,l=n+1)},k=function(y,S,_){return{x:y,y:S,k:_}},x=function(y,S){return{elem:y,t:S}},E=function(y,S,_){var T,P,D;for(S>_?T=c[y-1+l]:T=c[y+1+l],D=Math.max(S,_),P=D-y;P=0;--D)for(;TP-T?(a?f[f.length]=new x(i[P],h):f[f.length]=new x(i[P],g),++_,++P):y[D].y-y[D].x=y+1;--N)_[N+l]=E(N,_[N-1+l]+1,_[N+1+l]);_[y+l]=E(y,_[y-1+l]+1,_[y+1+l])}while(_[y+l]!==s);for(o=y+2*T,P=c[y+l],D=[];P!==-1;)D[D.length]=new k(u[P].x,u[P].y,null),P=u[P].k;A(D)}}}});var EE=F((eZ,SE)=>{p();var S3=_E();function E3(t,e){var r=new S3(t,e);r.compose();for(var i=r.getses(),n,s,a=t.length-1,o=e.length-1,l=i.length-1;l>=0;--l)i[l].t===r.SES_COMMON?(s?(s.chain={file1index:a,file2index:o,chain:null},s=s.chain):(n={file1index:a,file2index:o,chain:null},s=n),a--,o--):i[l].t===r.SES_DELETE?a--:i[l].t===r.SES_ADD&&o--;var c={file1index:-1,file2index:-1,chain:null};return s?(s.chain=c,n):c}function xE(t,e){for(var r=[],i=t.length,n=e.length,s=E3(t,e);s!==null;s=s.chain){var a=i-s.file1index-1,o=n-s.file2index-1;i=s.file1index,n=s.file2index,(a||o)&&r.push({file1:[i+1,a],file2:[n+1,o]})}return r.reverse(),r}function k3(t,e,r){var i,n=xE(e,t),s=xE(e,r),a=[];function o(B,N){a.push([B.file1[0],N,B.file1[1],B.file2[0],B.file2[1]])}for(i=0;ic&&(l.push([1,c,B-c]),c=B)}for(var f=0;fg)break;g=Math.max(g,w+v[2]),f++}if(u(m),d==f)h[4]>0&&l.push([h[1],h[3],h[4]]);else{var b={0:[t.length,-1,e.length,-1],2:[r.length,-1,e.length,-1]};for(i=d;i<=f;i++){h=a[i];var k=h[1],x=b[k],E=h[0],A=E+h[2],y=h[3],S=y+h[4];x[0]=Math.min(y,x[0]),x[1]=Math.max(S,x[1]),x[2]=Math.min(E,x[2]),x[3]=Math.max(A,x[3])}var _=b[0][0]+(m-b[0][2]),T=b[0][1]+(g-b[0][3]),P=b[2][0]+(m-b[2][2]),D=b[2][1]+(g-b[2][3]);l.push([-1,_,T-_,m,g-m,P,D-P])}c=g}return u(e.length),l}function A3(t,e,r){var i=[],n=[t,e,r],s=k3(t,e,r),a=[];function o(){a.length&&i.push({ok:a}),a=[]}function l(h){for(var m=0;m{"use strict";p();Object.defineProperty(X,"__esModule",{value:!0});function Ms(t){return t&&typeof t=="object"&&"default"in t?t.default:t}var Nc=Ms(f_()),WE=Ms(g1()),T3=Ms(w1()),gv=Ms(sE()),yd=Ms(lE()),C3=Ms(vE()),Hc=Ms(yE()),P3=Ms(EE()),Re=class t extends Error{constructor(e){super(e),this.caller=""}toJSON(){return{code:this.code,data:this.data,caller:this.caller,message:this.message,stack:this.stack}}fromJSON(e){let r=new t(e.message);return r.code=e.code,r.data=e.data,r.caller=e.caller,r.stack=e.stack,r}get isIsomorphicGitError(){return!0}},Uc=class t extends Re{constructor(e){super(`Modifying the index is not possible because you have unmerged files: ${e.toString}. Fix them up in the work tree, and then use 'git add/rm as appropriate to mark resolution and make a commit.`),this.code=this.name=t.code,this.data={filepaths:e}}};Uc.code="UnmergedPathsError";var he=class t extends Re{constructor(e){super(`An internal error caused this command to fail. +var VD=Object.create;var bc=Object.defineProperty;var YD=Object.getOwnPropertyDescriptor;var XD=Object.getOwnPropertyNames;var ZD=Object.getPrototypeOf,KD=Object.prototype.hasOwnProperty;var Yb=t=>{throw TypeError(t)};var QD=(t,e,r)=>e in t?bc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var JD=(t,e)=>()=>(t&&(e=t(t=0)),e);var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),eL=(t,e)=>{for(var r in e)bc(t,r,{get:e[r],enumerable:!0})},Xb=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of XD(e))!KD.call(t,i)&&i!==r&&bc(t,i,{get:()=>e[i],enumerable:!(n=YD(e,i))||n.enumerable});return t};var Ct=(t,e,r)=>(r=t!=null?VD(ZD(t)):{},Xb(e||!t||!t.__esModule?bc(r,"default",{value:t,enumerable:!0}):r,t)),tL=t=>Xb(bc({},"__esModule",{value:!0}),t);var qe=(t,e,r)=>QD(t,typeof e!="symbol"?e+"":e,r),Fm=(t,e,r)=>e.has(t)||Yb("Cannot "+r);var $=(t,e,r)=>(Fm(t,e,"read from private field"),r?r.call(t):e.get(t)),me=(t,e,r)=>e.has(t)?Yb("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),de=(t,e,r,n)=>(Fm(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),wt=(t,e,r)=>(Fm(t,e,"access private method"),r);var Qb=I(Ff=>{"use strict";p();Ff.byteLength=nL;Ff.toByteArray=sL;Ff.fromByteArray=lL;var ri=[],fn=[],rL=typeof Uint8Array!="undefined"?Uint8Array:Array,Om="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(la=0,Zb=Om.length;la0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function nL(t){var e=Kb(t),r=e[0],n=e[1];return(r+n)*3/4-n}function iL(t,e,r){return(e+r)*3/4-r}function sL(t){var e,r=Kb(t),n=r[0],i=r[1],s=new rL(iL(t,n,i)),a=0,o=i>0?n-4:n,l;for(l=0;l>16&255,s[a++]=e>>8&255,s[a++]=e&255;return i===2&&(e=fn[t.charCodeAt(l)]<<2|fn[t.charCodeAt(l+1)]>>4,s[a++]=e&255),i===1&&(e=fn[t.charCodeAt(l)]<<10|fn[t.charCodeAt(l+1)]<<4|fn[t.charCodeAt(l+2)]>>2,s[a++]=e>>8&255,s[a++]=e&255),s}function aL(t){return ri[t>>18&63]+ri[t>>12&63]+ri[t>>6&63]+ri[t&63]}function oL(t,e,r){for(var n,i=[],s=e;so?o:a+s));return n===1?(e=t[r-1],i.push(ri[e>>2]+ri[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(ri[e>>10]+ri[e>>4&63]+ri[e<<2&63]+"=")),i.join("")}});var Jb=I(Mm=>{p();Mm.read=function(t,e,r,n,i){var s,a,o=i*8-n-1,l=(1<>1,u=-7,f=r?i-1:0,d=r?-1:1,h=t[e+f];for(f+=d,s=h&(1<<-u)-1,h>>=-u,u+=o;u>0;s=s*256+t[e+f],f+=d,u-=8);for(a=s&(1<<-u)-1,s>>=-u,u+=n;u>0;a=a*256+t[e+f],f+=d,u-=8);if(s===0)s=1-c;else{if(s===l)return a?NaN:(h?-1:1)*(1/0);a=a+Math.pow(2,n),s=s-c}return(h?-1:1)*a*Math.pow(2,s-n)};Mm.write=function(t,e,r,n,i,s){var a,o,l,c=s*8-i-1,u=(1<>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:s-1,m=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=u):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(a++,l/=2),a+f>=u?(o=0,a=u):a+f>=1?(o=(e*l-1)*Math.pow(2,i),a=a+f):(o=e*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;t[r+h]=o&255,h+=m,o/=256,i-=8);for(a=a<0;t[r+h]=a&255,h+=m,a/=256,c-=8);t[r+h-m]|=g*128}});var qm=I(Co=>{"use strict";p();var Dm=Qb(),ko=Jb(),e_=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Co.Buffer=F;Co.SlowBuffer=pL;Co.INSPECT_MAX_BYTES=50;var Of=2147483647;Co.kMaxLength=Of;F.TYPED_ARRAY_SUPPORT=cL();!F.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function cL(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch(t){return!1}}Object.defineProperty(F.prototype,"parent",{enumerable:!0,get:function(){if(F.isBuffer(this))return this.buffer}});Object.defineProperty(F.prototype,"offset",{enumerable:!0,get:function(){if(F.isBuffer(this))return this.byteOffset}});function Bi(t){if(t>Of)throw new RangeError('The value "'+t+'" is invalid for option "size"');let e=new Uint8Array(t);return Object.setPrototypeOf(e,F.prototype),e}function F(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return Hm(t)}return i_(t,e,r)}F.poolSize=8192;function i_(t,e,r){if(typeof t=="string")return fL(t,e);if(ArrayBuffer.isView(t))return dL(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(ni(t,ArrayBuffer)||t&&ni(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(ni(t,SharedArrayBuffer)||t&&ni(t.buffer,SharedArrayBuffer)))return Nm(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=t.valueOf&&t.valueOf();if(n!=null&&n!==t)return F.from(n,e,r);let i=hL(t);if(i)return i;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return F.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}F.from=function(t,e,r){return i_(t,e,r)};Object.setPrototypeOf(F.prototype,Uint8Array.prototype);Object.setPrototypeOf(F,Uint8Array);function s_(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function uL(t,e,r){return s_(t),t<=0?Bi(t):e!==void 0?typeof r=="string"?Bi(t).fill(e,r):Bi(t).fill(e):Bi(t)}F.alloc=function(t,e,r){return uL(t,e,r)};function Hm(t){return s_(t),Bi(t<0?0:Um(t)|0)}F.allocUnsafe=function(t){return Hm(t)};F.allocUnsafeSlow=function(t){return Hm(t)};function fL(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!F.isEncoding(e))throw new TypeError("Unknown encoding: "+e);let r=a_(t,e)|0,n=Bi(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}function Lm(t){let e=t.length<0?0:Um(t.length)|0,r=Bi(e);for(let n=0;n=Of)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Of.toString(16)+" bytes");return t|0}function pL(t){return+t!=t&&(t=0),F.alloc(+t)}F.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==F.prototype};F.compare=function(e,r){if(ni(e,Uint8Array)&&(e=F.from(e,e.offset,e.byteLength)),ni(r,Uint8Array)&&(r=F.from(r,r.offset,r.byteLength)),!F.isBuffer(e)||!F.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===r)return 0;let n=e.length,i=r.length;for(let s=0,a=Math.min(n,i);si.length?(F.isBuffer(a)||(a=F.from(a)),a.copy(i,s)):Uint8Array.prototype.set.call(i,a,s);else if(F.isBuffer(a))a.copy(i,s);else throw new TypeError('"list" argument must be an Array of Buffers');s+=a.length}return i};function a_(t,e){if(F.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||ni(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);let r=t.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Bm(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return m_(t).length;default:if(i)return n?-1:Bm(t).length;e=(""+e).toLowerCase(),i=!0}}F.byteLength=a_;function mL(t,e,r){let n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return kL(this,e,r);case"utf8":case"utf-8":return l_(this,e,r);case"ascii":return SL(this,e,r);case"latin1":case"binary":return EL(this,e,r);case"base64":return _L(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return AL(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}F.prototype._isBuffer=!0;function ca(t,e,r){let n=t[e];t[e]=t[r],t[r]=n}F.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;rr&&(e+=" ... "),""};e_&&(F.prototype[e_]=F.prototype.inspect);F.prototype.compare=function(e,r,n,i,s){if(ni(e,Uint8Array)&&(e=F.from(e,e.offset,e.byteLength)),!F.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(r===void 0&&(r=0),n===void 0&&(n=e?e.length:0),i===void 0&&(i=0),s===void 0&&(s=this.length),r<0||n>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&r>=n)return 0;if(i>=s)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,s>>>=0,this===e)return 0;let a=s-i,o=n-r,l=Math.min(a,o),c=this.slice(i,s),u=e.slice(r,n);for(let f=0;f2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,jm(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof e=="string"&&(e=F.from(e,n)),F.isBuffer(e))return e.length===0?-1:t_(t,e,r,n,i);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):t_(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function t_(t,e,r,n,i){let s=1,a=t.length,o=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(t.length<2||e.length<2)return-1;s=2,a/=2,o/=2,r/=2}function l(u,f){return s===1?u[f]:u.readUInt16BE(f*s)}let c;if(i){let u=-1;for(c=r;ca&&(r=a-o),c=r;c>=0;c--){let u=!0;for(let f=0;fi&&(n=i)):n=i;let s=e.length;n>s/2&&(n=s/2);let a;for(a=0;a>>0,isFinite(n)?(n=n>>>0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let s=this.length-r;if((n===void 0||n>s)&&(n=s),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let a=!1;for(;;)switch(i){case"hex":return gL(this,e,r,n);case"utf8":case"utf-8":return vL(this,e,r,n);case"ascii":case"latin1":case"binary":return wL(this,e,r,n);case"base64":return yL(this,e,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return bL(this,e,r,n);default:if(a)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),a=!0}};F.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function _L(t,e,r){return e===0&&r===t.length?Dm.fromByteArray(t):Dm.fromByteArray(t.slice(e,r))}function l_(t,e,r){r=Math.min(t.length,r);let n=[],i=e;for(;i239?4:s>223?3:s>191?2:1;if(i+o<=r){let l,c,u,f;switch(o){case 1:s<128&&(a=s);break;case 2:l=t[i+1],(l&192)===128&&(f=(s&31)<<6|l&63,f>127&&(a=f));break;case 3:l=t[i+1],c=t[i+2],(l&192)===128&&(c&192)===128&&(f=(s&15)<<12|(l&63)<<6|c&63,f>2047&&(f<55296||f>57343)&&(a=f));break;case 4:l=t[i+1],c=t[i+2],u=t[i+3],(l&192)===128&&(c&192)===128&&(u&192)===128&&(f=(s&15)<<18|(l&63)<<12|(c&63)<<6|u&63,f>65535&&f<1114112&&(a=f))}}a===null?(a=65533,o=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|a&1023),n.push(a),i+=o}return xL(n)}var r_=4096;function xL(t){let e=t.length;if(e<=r_)return String.fromCharCode.apply(String,t);let r="",n=0;for(;nn)&&(r=n);let i="";for(let s=e;sn&&(e=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),rr)throw new RangeError("Trying to access beyond buffer length")}F.prototype.readUintLE=F.prototype.readUIntLE=function(e,r,n){e=e>>>0,r=r>>>0,n||Mt(e,r,this.length);let i=this[e],s=1,a=0;for(;++a>>0,r=r>>>0,n||Mt(e,r,this.length);let i=this[e+--r],s=1;for(;r>0&&(s*=256);)i+=this[e+--r]*s;return i};F.prototype.readUint8=F.prototype.readUInt8=function(e,r){return e=e>>>0,r||Mt(e,1,this.length),this[e]};F.prototype.readUint16LE=F.prototype.readUInt16LE=function(e,r){return e=e>>>0,r||Mt(e,2,this.length),this[e]|this[e+1]<<8};F.prototype.readUint16BE=F.prototype.readUInt16BE=function(e,r){return e=e>>>0,r||Mt(e,2,this.length),this[e]<<8|this[e+1]};F.prototype.readUint32LE=F.prototype.readUInt32LE=function(e,r){return e=e>>>0,r||Mt(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};F.prototype.readUint32BE=F.prototype.readUInt32BE=function(e,r){return e=e>>>0,r||Mt(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};F.prototype.readBigUInt64LE=ys(function(e){e=e>>>0,Ao(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&_c(e,this.length-8);let i=r+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,s=this[++e]+this[++e]*2**8+this[++e]*2**16+n*2**24;return BigInt(i)+(BigInt(s)<>>0,Ao(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&_c(e,this.length-8);let i=r*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],s=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n;return(BigInt(i)<>>0,r=r>>>0,n||Mt(e,r,this.length);let i=this[e],s=1,a=0;for(;++a=s&&(i-=Math.pow(2,8*r)),i};F.prototype.readIntBE=function(e,r,n){e=e>>>0,r=r>>>0,n||Mt(e,r,this.length);let i=r,s=1,a=this[e+--i];for(;i>0&&(s*=256);)a+=this[e+--i]*s;return s*=128,a>=s&&(a-=Math.pow(2,8*r)),a};F.prototype.readInt8=function(e,r){return e=e>>>0,r||Mt(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};F.prototype.readInt16LE=function(e,r){e=e>>>0,r||Mt(e,2,this.length);let n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};F.prototype.readInt16BE=function(e,r){e=e>>>0,r||Mt(e,2,this.length);let n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};F.prototype.readInt32LE=function(e,r){return e=e>>>0,r||Mt(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};F.prototype.readInt32BE=function(e,r){return e=e>>>0,r||Mt(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};F.prototype.readBigInt64LE=ys(function(e){e=e>>>0,Ao(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&_c(e,this.length-8);let i=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(n<<24);return(BigInt(i)<>>0,Ao(e,"offset");let r=this[e],n=this[e+7];(r===void 0||n===void 0)&&_c(e,this.length-8);let i=(r<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(i)<>>0,r||Mt(e,4,this.length),ko.read(this,e,!0,23,4)};F.prototype.readFloatBE=function(e,r){return e=e>>>0,r||Mt(e,4,this.length),ko.read(this,e,!1,23,4)};F.prototype.readDoubleLE=function(e,r){return e=e>>>0,r||Mt(e,8,this.length),ko.read(this,e,!0,52,8)};F.prototype.readDoubleBE=function(e,r){return e=e>>>0,r||Mt(e,8,this.length),ko.read(this,e,!1,52,8)};function br(t,e,r,n,i,s){if(!F.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}F.prototype.writeUintLE=F.prototype.writeUIntLE=function(e,r,n,i){if(e=+e,r=r>>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;br(this,e,r,n,o,0)}let s=1,a=0;for(this[r]=e&255;++a>>0,n=n>>>0,!i){let o=Math.pow(2,8*n)-1;br(this,e,r,n,o,0)}let s=n-1,a=1;for(this[r+s]=e&255;--s>=0&&(a*=256);)this[r+s]=e/a&255;return r+n};F.prototype.writeUint8=F.prototype.writeUInt8=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,1,255,0),this[r]=e&255,r+1};F.prototype.writeUint16LE=F.prototype.writeUInt16LE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,2,65535,0),this[r]=e&255,this[r+1]=e>>>8,r+2};F.prototype.writeUint16BE=F.prototype.writeUInt16BE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,2,65535,0),this[r]=e>>>8,this[r+1]=e&255,r+2};F.prototype.writeUint32LE=F.prototype.writeUInt32LE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,4,4294967295,0),this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255,r+4};F.prototype.writeUint32BE=F.prototype.writeUInt32BE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,4,4294967295,0),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};function c_(t,e,r,n,i){p_(e,n,i,t,r,7);let s=Number(e&BigInt(4294967295));t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a,a=a>>8,t[r++]=a,r}function u_(t,e,r,n,i){p_(e,n,i,t,r,7);let s=Number(e&BigInt(4294967295));t[r+7]=s,s=s>>8,t[r+6]=s,s=s>>8,t[r+5]=s,s=s>>8,t[r+4]=s;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=a,a=a>>8,t[r+2]=a,a=a>>8,t[r+1]=a,a=a>>8,t[r]=a,r+8}F.prototype.writeBigUInt64LE=ys(function(e,r=0){return c_(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});F.prototype.writeBigUInt64BE=ys(function(e,r=0){return u_(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});F.prototype.writeIntLE=function(e,r,n,i){if(e=+e,r=r>>>0,!i){let l=Math.pow(2,8*n-1);br(this,e,r,n,l-1,-l)}let s=0,a=1,o=0;for(this[r]=e&255;++s>0)-o&255;return r+n};F.prototype.writeIntBE=function(e,r,n,i){if(e=+e,r=r>>>0,!i){let l=Math.pow(2,8*n-1);br(this,e,r,n,l-1,-l)}let s=n-1,a=1,o=0;for(this[r+s]=e&255;--s>=0&&(a*=256);)e<0&&o===0&&this[r+s+1]!==0&&(o=1),this[r+s]=(e/a>>0)-o&255;return r+n};F.prototype.writeInt8=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,1,127,-128),e<0&&(e=255+e+1),this[r]=e&255,r+1};F.prototype.writeInt16LE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,2,32767,-32768),this[r]=e&255,this[r+1]=e>>>8,r+2};F.prototype.writeInt16BE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,2,32767,-32768),this[r]=e>>>8,this[r+1]=e&255,r+2};F.prototype.writeInt32LE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,4,2147483647,-2147483648),this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24,r+4};F.prototype.writeInt32BE=function(e,r,n){return e=+e,r=r>>>0,n||br(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};F.prototype.writeBigInt64LE=ys(function(e,r=0){return c_(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});F.prototype.writeBigInt64BE=ys(function(e,r=0){return u_(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function f_(t,e,r,n,i,s){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function d_(t,e,r,n,i){return e=+e,r=r>>>0,i||f_(t,e,r,4,34028234663852886e22,-34028234663852886e22),ko.write(t,e,r,n,23,4),r+4}F.prototype.writeFloatLE=function(e,r,n){return d_(this,e,r,!0,n)};F.prototype.writeFloatBE=function(e,r,n){return d_(this,e,r,!1,n)};function h_(t,e,r,n,i){return e=+e,r=r>>>0,i||f_(t,e,r,8,17976931348623157e292,-17976931348623157e292),ko.write(t,e,r,n,52,8),r+8}F.prototype.writeDoubleLE=function(e,r,n){return h_(this,e,r,!0,n)};F.prototype.writeDoubleBE=function(e,r,n){return h_(this,e,r,!1,n)};F.prototype.copy=function(e,r,n,i){if(!F.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),!i&&i!==0&&(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-r>>0,n=n===void 0?this.length:n>>>0,e||(e=0);let s;if(typeof e=="number")for(s=r;s2**32?i=n_(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=n_(i)),i+="n"),n+=` It must be ${e}. Received ${i}`,n},RangeError);function n_(t){let e="",r=t.length,n=t[0]==="-"?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function CL(t,e,r){Ao(e,"offset"),(t[e]===void 0||t[e+r]===void 0)&&_c(e,t.length-(r+1))}function p_(t,e,r,n,i,s){if(t>r||t3?e===0||e===BigInt(0)?o=`>= 0${a} and < 2${a} ** ${(s+1)*8}${a}`:o=`>= -(2${a} ** ${(s+1)*8-1}${a}) and < 2 ** ${(s+1)*8-1}${a}`:o=`>= ${e}${a} and <= ${r}${a}`,new Eo.ERR_OUT_OF_RANGE("value",o,t)}CL(n,i,s)}function Ao(t,e){if(typeof t!="number")throw new Eo.ERR_INVALID_ARG_TYPE(e,"number",t)}function _c(t,e,r){throw Math.floor(t)!==t?(Ao(t,r),new Eo.ERR_OUT_OF_RANGE(r||"offset","an integer",t)):e<0?new Eo.ERR_BUFFER_OUT_OF_BOUNDS:new Eo.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}var TL=/[^+/0-9A-Za-z-_]/g;function PL(t){if(t=t.split("=")[0],t=t.trim().replace(TL,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function Bm(t,e){e=e||1/0;let r,n=t.length,i=null,s=[];for(let a=0;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&s.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(e-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;s.push(r)}else if(r<2048){if((e-=2)<0)break;s.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;s.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return s}function RL(t){let e=[];for(let r=0;r>8,i=r%256,s.push(i),s.push(n);return s}function m_(t){return Dm.toByteArray(PL(t))}function Mf(t,e,r,n){let i;for(i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function ni(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function jm(t){return t!==t}var IL=function(){let t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function ys(t){return typeof BigInt=="undefined"?FL:t}function FL(){throw new Error("BigInt not supported")}});var g_,Wm,Buffer,p=JD(()=>{g_=require("obsidian");g_.Platform.isMobileApp?Wm=qm().Buffer:Wm=global.Buffer;Buffer=Wm});var w_=I((Z7,v_)=>{"use strict";p();var Vr=function(t){if(t=t||{},this.Promise=t.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=t.domainReentrant||!1,this.domainReentrant){if(typeof process=="undefined"||typeof process.domain=="undefined")throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=t.timeout||Vr.DEFAULT_TIMEOUT,this.maxOccupationTime=t.maxOccupationTime||Vr.DEFAULT_MAX_OCCUPATION_TIME,this.maxExecutionTime=t.maxExecutionTime||Vr.DEFAULT_MAX_EXECUTION_TIME,t.maxPending===1/0||Number.isInteger(t.maxPending)&&t.maxPending>=0?this.maxPending=t.maxPending:this.maxPending=Vr.DEFAULT_MAX_PENDING};Vr.DEFAULT_TIMEOUT=0;Vr.DEFAULT_MAX_OCCUPATION_TIME=0;Vr.DEFAULT_MAX_EXECUTION_TIME=0;Vr.DEFAULT_MAX_PENDING=1e3;Vr.prototype.acquire=function(t,e,r,n){if(Array.isArray(t))return this._acquireBatch(t,e,r,n);if(typeof e!="function")throw new Error("You must pass a function to execute");var i=null,s=null,a=null;typeof r!="function"&&(n=r,r=null,a=new this.Promise(function(b,k){i=b,s=k})),n=n||{};var o=!1,l=null,c=null,u=null,f=this,d=function(b,k,x){c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),b&&(f.queues[t]&&f.queues[t].length===0&&delete f.queues[t],f.domainReentrant&&delete f.domains[t]),o||(a?k?s(k):i(x):typeof r=="function"&&r(k,x),o=!0),b&&f.queues[t]&&f.queues[t].length>0&&f.queues[t].shift()()},h=function(b){if(o)return d(b);l&&(clearTimeout(l),l=null),f.domainReentrant&&b&&(f.domains[t]=process.domain);var k=n.maxExecutionTime||f.maxExecutionTime;if(k&&(u=setTimeout(function(){f.queues[t]&&d(b,new Error("Maximum execution time is exceeded "+t))},k)),e.length===1){var x=!1;try{e(function(E,A){x||(x=!0,d(b,E,A))})}catch(E){x||(x=!0,d(b,E))}}else f._promiseTry(function(){return e()}).then(function(E){d(b,void 0,E)},function(E){d(b,E)})};f.domainReentrant&&process.domain&&(h=process.domain.bind(h));var m=n.maxPending||f.maxPending;if(!f.queues[t])f.queues[t]=[],h(!0);else if(f.domainReentrant&&process.domain&&process.domain===f.domains[t])h(!1);else if(f.queues[t].length>=m)d(!1,new Error("Too many pending tasks in queue "+t));else{var g=function(){h(!0)};n.skipQueue?f.queues[t].unshift(g):f.queues[t].push(g);var v=n.timeout||f.timeout;v&&(l=setTimeout(function(){l=null,d(!1,new Error("async-lock timed out in queue "+t))},v))}var w=n.maxOccupationTime||f.maxOccupationTime;if(w&&(c=setTimeout(function(){f.queues[t]&&d(!1,new Error("Maximum occupation time is exceeded in queue "+t))},w)),a)return a};Vr.prototype._acquireBatch=function(t,e,r,n){typeof r!="function"&&(n=r,r=null);var i=this,s=function(o,l){return function(c){i.acquire(o,l,c,n)}},a=t.reduceRight(function(o,l){return s(l,o)},e);if(typeof r=="function")a(r);else return new this.Promise(function(o,l){a.length===1?a(function(c,u){c?l(c):o(u)}):o(a())})};Vr.prototype.isBusy=function(t){return t?!!this.queues[t]:Object.keys(this.queues).length>0};Vr.prototype._promiseTry=function(t){try{return this.Promise.resolve(t())}catch(e){return this.Promise.reject(e)}};v_.exports=Vr});var b_=I((Q7,y_)=>{"use strict";p();y_.exports=w_()});var __=I((eY,zm)=>{p();typeof Object.create=="function"?zm.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:zm.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}});var Lf=I((Vm,S_)=>{p();var Df=qm(),ii=Df.Buffer;function x_(t,e){for(var r in t)e[r]=t[r]}ii.from&&ii.alloc&&ii.allocUnsafe&&ii.allocUnsafeSlow?S_.exports=Df:(x_(Df,Vm),Vm.Buffer=ua);function ua(t,e,r){return ii(t,e,r)}ua.prototype=Object.create(ii.prototype);x_(ii,ua);ua.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return ii(t,e,r)};ua.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=ii(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};ua.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ii(t)};ua.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Df.SlowBuffer(t)}});var Nf=I((nY,E_)=>{p();var OL={}.toString;E_.exports=Array.isArray||function(t){return OL.call(t)=="[object Array]"}});var _r=I((sY,k_)=>{"use strict";p();k_.exports=TypeError});var Bf=I((oY,A_)=>{"use strict";p();A_.exports=Object});var Ym=I((cY,C_)=>{"use strict";p();C_.exports=Error});var P_=I((fY,T_)=>{"use strict";p();T_.exports=EvalError});var $_=I((hY,R_)=>{"use strict";p();R_.exports=RangeError});var F_=I((mY,I_)=>{"use strict";p();I_.exports=ReferenceError});var Hf=I((vY,O_)=>{"use strict";p();O_.exports=SyntaxError});var D_=I((yY,M_)=>{"use strict";p();M_.exports=URIError});var N_=I((_Y,L_)=>{"use strict";p();L_.exports=Math.abs});var H_=I((SY,B_)=>{"use strict";p();B_.exports=Math.floor});var G_=I((kY,U_)=>{"use strict";p();U_.exports=Math.max});var q_=I((CY,j_)=>{"use strict";p();j_.exports=Math.min});var z_=I((PY,W_)=>{"use strict";p();W_.exports=Math.pow});var Y_=I(($Y,V_)=>{"use strict";p();V_.exports=Math.round});var Z_=I((FY,X_)=>{"use strict";p();X_.exports=Number.isNaN||function(e){return e!==e}});var Q_=I((MY,K_)=>{"use strict";p();var ML=Z_();K_.exports=function(e){return ML(e)||e===0?e:e<0?-1:1}});var ex=I((LY,J_)=>{"use strict";p();J_.exports=Object.getOwnPropertyDescriptor});var bs=I((BY,tx)=>{"use strict";p();var Uf=ex();if(Uf)try{Uf([],"length")}catch(t){Uf=null}tx.exports=Uf});var xc=I((UY,rx)=>{"use strict";p();var Gf=Object.defineProperty||!1;if(Gf)try{Gf({},"a",{value:1})}catch(t){Gf=!1}rx.exports=Gf});var Sc=I((jY,nx)=>{"use strict";p();nx.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;e[r]=i;for(var s in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==i||o.enumerable!==!0)return!1}return!0}});var jf=I((WY,sx)=>{"use strict";p();var ix=typeof Symbol!="undefined"&&Symbol,DL=Sc();sx.exports=function(){return typeof ix!="function"||typeof Symbol!="function"||typeof ix("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:DL()}});var Xm=I((VY,ax)=>{"use strict";p();ax.exports=typeof Reflect!="undefined"&&Reflect.getPrototypeOf||null});var Zm=I((XY,ox)=>{"use strict";p();var LL=Bf();ox.exports=LL.getPrototypeOf||null});var ux=I((KY,cx)=>{"use strict";p();var NL="Function.prototype.bind called on incompatible ",BL=Object.prototype.toString,HL=Math.max,UL="[object Function]",lx=function(e,r){for(var n=[],i=0;i{"use strict";p();var qL=ux();fx.exports=Function.prototype.bind||qL});var qf=I((tX,dx)=>{"use strict";p();dx.exports=Function.prototype.call});var Wf=I((nX,hx)=>{"use strict";p();hx.exports=Function.prototype.apply});var mx=I((sX,px)=>{"use strict";p();px.exports=typeof Reflect!="undefined"&&Reflect&&Reflect.apply});var Km=I((oX,gx)=>{"use strict";p();var WL=To(),zL=Wf(),VL=qf(),YL=mx();gx.exports=YL||WL.call(VL,zL)});var zf=I((cX,vx)=>{"use strict";p();var XL=To(),ZL=_r(),KL=qf(),QL=Km();vx.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new ZL("a function is required");return QL(XL,KL,e)}});var Sx=I((fX,xx)=>{"use strict";p();var JL=zf(),wx=bs(),bx;try{bx=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var Qm=!!bx&&wx&&wx(Object.prototype,"__proto__"),_x=Object,yx=_x.getPrototypeOf;xx.exports=Qm&&typeof Qm.get=="function"?JL([Qm.get]):typeof yx=="function"?function(e){return yx(e==null?e:_x(e))}:!1});var Vf=I((hX,Cx)=>{"use strict";p();var Ex=Xm(),kx=Zm(),Ax=Sx();Cx.exports=Ex?function(e){return Ex(e)}:kx?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return kx(e)}:Ax?function(e){return Ax(e)}:null});var Yf=I((mX,Tx)=>{"use strict";p();var eN=Function.prototype.call,tN=Object.prototype.hasOwnProperty,rN=To();Tx.exports=rN.call(eN,tN)});var si=I((vX,Ox)=>{"use strict";p();var Ee,nN=Bf(),iN=Ym(),sN=P_(),aN=$_(),oN=F_(),Io=Hf(),$o=_r(),lN=D_(),cN=N_(),uN=H_(),fN=G_(),dN=q_(),hN=z_(),pN=Y_(),mN=Q_(),Ix=Function,Jm=function(t){try{return Ix('"use strict"; return ('+t+").constructor;")()}catch(e){}},Ec=bs(),gN=xc(),eg=function(){throw new $o},vN=Ec?function(){try{return arguments.callee,eg}catch(t){try{return Ec(arguments,"callee").get}catch(e){return eg}}}():eg,Po=jf()(),Dt=Vf(),wN=Zm(),yN=Xm(),Fx=Wf(),kc=qf(),Ro={},bN=typeof Uint8Array=="undefined"||!Dt?Ee:Dt(Uint8Array),fa={__proto__:null,"%AggregateError%":typeof AggregateError=="undefined"?Ee:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?Ee:ArrayBuffer,"%ArrayIteratorPrototype%":Po&&Dt?Dt([][Symbol.iterator]()):Ee,"%AsyncFromSyncIteratorPrototype%":Ee,"%AsyncFunction%":Ro,"%AsyncGenerator%":Ro,"%AsyncGeneratorFunction%":Ro,"%AsyncIteratorPrototype%":Ro,"%Atomics%":typeof Atomics=="undefined"?Ee:Atomics,"%BigInt%":typeof BigInt=="undefined"?Ee:BigInt,"%BigInt64Array%":typeof BigInt64Array=="undefined"?Ee:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array=="undefined"?Ee:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?Ee:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":iN,"%eval%":eval,"%EvalError%":sN,"%Float16Array%":typeof Float16Array=="undefined"?Ee:Float16Array,"%Float32Array%":typeof Float32Array=="undefined"?Ee:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?Ee:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?Ee:FinalizationRegistry,"%Function%":Ix,"%GeneratorFunction%":Ro,"%Int8Array%":typeof Int8Array=="undefined"?Ee:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?Ee:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?Ee:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Po&&Dt?Dt(Dt([][Symbol.iterator]())):Ee,"%JSON%":typeof JSON=="object"?JSON:Ee,"%Map%":typeof Map=="undefined"?Ee:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!Po||!Dt?Ee:Dt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":nN,"%Object.getOwnPropertyDescriptor%":Ec,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?Ee:Promise,"%Proxy%":typeof Proxy=="undefined"?Ee:Proxy,"%RangeError%":aN,"%ReferenceError%":oN,"%Reflect%":typeof Reflect=="undefined"?Ee:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?Ee:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!Po||!Dt?Ee:Dt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?Ee:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Po&&Dt?Dt(""[Symbol.iterator]()):Ee,"%Symbol%":Po?Symbol:Ee,"%SyntaxError%":Io,"%ThrowTypeError%":vN,"%TypedArray%":bN,"%TypeError%":$o,"%Uint8Array%":typeof Uint8Array=="undefined"?Ee:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?Ee:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?Ee:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?Ee:Uint32Array,"%URIError%":lN,"%WeakMap%":typeof WeakMap=="undefined"?Ee:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?Ee:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?Ee:WeakSet,"%Function.prototype.call%":kc,"%Function.prototype.apply%":Fx,"%Object.defineProperty%":gN,"%Object.getPrototypeOf%":wN,"%Math.abs%":cN,"%Math.floor%":uN,"%Math.max%":fN,"%Math.min%":dN,"%Math.pow%":hN,"%Math.round%":pN,"%Math.sign%":mN,"%Reflect.getPrototypeOf%":yN};if(Dt)try{null.error}catch(t){Px=Dt(Dt(t)),fa["%Error.prototype%"]=Px}var Px,_N=function t(e){var r;if(e==="%AsyncFunction%")r=Jm("async function () {}");else if(e==="%GeneratorFunction%")r=Jm("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=Jm("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&Dt&&(r=Dt(i.prototype))}return fa[e]=r,r},Rx={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Ac=To(),Xf=Yf(),xN=Ac.call(kc,Array.prototype.concat),SN=Ac.call(Fx,Array.prototype.splice),$x=Ac.call(kc,String.prototype.replace),Zf=Ac.call(kc,String.prototype.slice),EN=Ac.call(kc,RegExp.prototype.exec),kN=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,AN=/\\(\\)?/g,CN=function(e){var r=Zf(e,0,1),n=Zf(e,-1);if(r==="%"&&n!=="%")throw new Io("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Io("invalid intrinsic syntax, expected opening `%`");var i=[];return $x(e,kN,function(s,a,o,l){i[i.length]=o?$x(l,AN,"$1"):a||s}),i},TN=function(e,r){var n=e,i;if(Xf(Rx,n)&&(i=Rx[n],n="%"+i[0]+"%"),Xf(fa,n)){var s=fa[n];if(s===Ro&&(s=_N(n)),typeof s=="undefined"&&!r)throw new $o("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:s}}throw new Io("intrinsic "+e+" does not exist!")};Ox.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new $o("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new $o('"allowMissing" argument must be a boolean');if(EN(/^%?[^%]*%?$/,e)===null)throw new Io("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=CN(e),i=n.length>0?n[0]:"",s=TN("%"+i+"%",r),a=s.name,o=s.value,l=!1,c=s.alias;c&&(i=c[0],SN(n,xN([0,1],c)));for(var u=1,f=!0;u=n.length){var g=Ec(o,d);f=!!g,f&&"get"in g&&!("originalValue"in g.get)?o=g.get:o=o[d]}else f=Xf(o,d),o=o[d];f&&!l&&(fa[a]=o)}}return o}});var Lt=I((yX,Lx)=>{"use strict";p();var Mx=si(),Dx=zf(),PN=Dx([Mx("%String.prototype.indexOf%")]);Lx.exports=function(e,r){var n=Mx(e,!!r);return typeof n=="function"&&PN(e,".prototype.")>-1?Dx([n]):n}});var Ux=I((_X,Hx)=>{"use strict";p();var Bx=Function.prototype.toString,Fo=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,rg,Kf;if(typeof Fo=="function"&&typeof Object.defineProperty=="function")try{rg=Object.defineProperty({},"length",{get:function(){throw Kf}}),Kf={},Fo(function(){throw 42},null,rg)}catch(t){t!==Kf&&(Fo=null)}else Fo=null;var RN=/^\s*class\b/,ng=function(e){try{var r=Bx.call(e);return RN.test(r)}catch(n){return!1}},tg=function(e){try{return ng(e)?!1:(Bx.call(e),!0)}catch(r){return!1}},Qf=Object.prototype.toString,$N="[object Object]",IN="[object Function]",FN="[object GeneratorFunction]",ON="[object HTMLAllCollection]",MN="[object HTML document.all class]",DN="[object HTMLCollection]",LN=typeof Symbol=="function"&&!!Symbol.toStringTag,NN=!(0 in[,]),ig=function(){return!1};typeof document=="object"&&(Nx=document.all,Qf.call(Nx)===Qf.call(document.all)&&(ig=function(e){if((NN||!e)&&(typeof e=="undefined"||typeof e=="object"))try{var r=Qf.call(e);return(r===ON||r===MN||r===DN||r===$N)&&e("")==null}catch(n){}return!1}));var Nx;Hx.exports=Fo?function(e){if(ig(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;try{Fo(e,null,rg)}catch(r){if(r!==Kf)return!1}return!ng(e)&&tg(e)}:function(e){if(ig(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;if(LN)return tg(e);if(ng(e))return!1;var r=Qf.call(e);return r!==IN&&r!==FN&&!/^\[object HTML/.test(r)?!1:tg(e)}});var qx=I((SX,jx)=>{"use strict";p();var BN=Ux(),HN=Object.prototype.toString,Gx=Object.prototype.hasOwnProperty,UN=function(e,r,n){for(var i=0,s=e.length;i=3&&(i=n),qN(e)?UN(e,r,i):typeof e=="string"?GN(e,r,i):jN(e,r,i)}});var zx=I((kX,Wx)=>{"use strict";p();Wx.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]});var Yx=I((CX,Vx)=>{"use strict";p();var sg=zx(),WN=typeof globalThis=="undefined"?global:globalThis;Vx.exports=function(){for(var e=[],r=0;r{"use strict";p();var Xx=xc(),zN=Hf(),Oo=_r(),Zx=bs();Kx.exports=function(e,r,n){if(!e||typeof e!="object"&&typeof e!="function")throw new Oo("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new Oo("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Oo("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Oo("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Oo("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Oo("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,s=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,o=arguments.length>6?arguments[6]:!1,l=!!Zx&&Zx(e,r);if(Xx)Xx(e,r,{configurable:a===null&&l?l.configurable:!a,enumerable:i===null&&l?l.enumerable:!i,value:n,writable:s===null&&l?l.writable:!s});else if(o||!i&&!s&&!a)e[r]=n;else throw new zN("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var td=I(($X,Jx)=>{"use strict";p();var ag=xc(),Qx=function(){return!!ag};Qx.hasArrayLengthDefineBug=function(){if(!ag)return null;try{return ag([],"length",{value:1}).length!==1}catch(e){return!0}};Jx.exports=Qx});var i1=I((FX,n1)=>{"use strict";p();var VN=si(),e1=Jf(),YN=td()(),t1=bs(),r1=_r(),XN=VN("%Math.floor%");n1.exports=function(e,r){if(typeof e!="function")throw new r1("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||XN(r)!==r)throw new r1("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,s=!0;if("length"in e&&t1){var a=t1(e,"length");a&&!a.configurable&&(i=!1),a&&!a.writable&&(s=!1)}return(i||s||!n)&&(YN?e1(e,"length",r,!0,!0):e1(e,"length",r)),e}});var a1=I((MX,s1)=>{"use strict";p();var ZN=To(),KN=Wf(),QN=Km();s1.exports=function(){return QN(ZN,KN,arguments)}});var da=I((LX,rd)=>{"use strict";p();var JN=i1(),o1=xc(),eB=zf(),l1=a1();rd.exports=function(e){var r=eB(arguments),n=e.length-(arguments.length-1);return JN(r,1+(n>0?n:0),!0)};o1?o1(rd.exports,"apply",{value:l1}):rd.exports.apply=l1});var _s=I((BX,c1)=>{"use strict";p();var tB=Sc();c1.exports=function(){return tB()&&!!Symbol.toStringTag}});var ug=I((UX,h1)=>{"use strict";p();var sd=qx(),rB=Yx(),u1=da(),lg=Lt(),id=bs(),nd=Vf(),nB=lg("Object.prototype.toString"),d1=_s()(),f1=typeof globalThis=="undefined"?global:globalThis,og=rB(),cg=lg("String.prototype.slice"),iB=lg("Array.prototype.indexOf",!0)||function(e,r){for(var n=0;n-1?r:r!=="Object"?!1:aB(e)}return id?sB(e):null}});var m1=I((jX,p1)=>{"use strict";p();var oB=ug();p1.exports=function(e){return!!oB(e)}});var v1=I((WX,g1)=>{"use strict";p();var lB=_r(),cB=Lt(),uB=cB("TypedArray.prototype.buffer",!0),fB=m1();g1.exports=uB||function(e){if(!fB(e))throw new lB("Not a Typed Array");return e.buffer}});var b1=I((VX,y1)=>{"use strict";p();var In=Lf().Buffer,dB=Nf(),hB=v1(),pB=ArrayBuffer.isView||function(e){try{return hB(e),!0}catch(r){return!1}},mB=typeof Uint8Array!="undefined",w1=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined",gB=w1&&(In.prototype instanceof Uint8Array||In.TYPED_ARRAY_SUPPORT);y1.exports=function(e,r){if(In.isBuffer(e))return e.constructor&&!("isBuffer"in e)?In.from(e):e;if(typeof e=="string")return In.from(e,r);if(w1&&pB(e)){if(e.byteLength===0)return In.alloc(0);if(gB){var n=In.from(e.buffer,e.byteOffset,e.byteLength);if(n.byteLength===e.byteLength)return n}var i=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),s=In.from(i);if(s.length===e.byteLength)return s}if(mB&&e instanceof Uint8Array)return In.from(e);var a=dB(e);if(a)for(var o=0;o255||~~l!==l)throw new RangeError("Array items must be numbers in the range 0-255.")}if(a||In.isBuffer(e)&&e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e))return In.from(e);throw new TypeError('The "data" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}});var x1=I((XX,_1)=>{"use strict";p();var vB=Lf().Buffer,wB=b1();function od(t,e){this._block=vB.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}od.prototype.update=function(t,e){t=wB(t,e||"utf8");for(var r=this._block,n=this._blockSize,i=t.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return t?s.toString(t):s};od.prototype._update=function(){throw new Error("_update must be implemented by subclass")};_1.exports=od});var k1=I((KX,E1)=>{"use strict";p();var yB=__(),S1=x1(),bB=Lf().Buffer,_B=[1518500249,1859775393,-1894007588,-899497514],xB=new Array(80);function Cc(){this.init(),this._w=xB,S1.call(this,64,56)}yB(Cc,S1);Cc.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function SB(t){return t<<1|t>>>31}function EB(t){return t<<5|t>>>27}function kB(t){return t<<30|t>>>2}function AB(t,e,r,n){return t===0?e&r|~e&n:t===2?e&r|e&n|r&n:e^r^n}Cc.prototype._update=function(t){for(var e=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,a=this._e|0,o=0;o<16;++o)e[o]=t.readInt32BE(o*4);for(;o<80;++o)e[o]=SB(e[o-3]^e[o-8]^e[o-14]^e[o-16]);for(var l=0;l<80;++l){var c=~~(l/20),u=EB(r)+AB(c,n,i,s)+a+e[l]+_B[c]|0;a=s,s=i,i=kB(n),n=r,r=u}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=a+this._e|0};Cc.prototype._hash=function(){var t=bB.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};E1.exports=Cc});var C1=I(fg=>{p();var A1;(function(t){typeof DO_NOT_EXPORT_CRC=="undefined"?typeof fg=="object"?t(fg):typeof define=="function"&&define.amd?define(function(){var e={};return t(e),e}):t(A1={}):t(A1={})})(function(t){t.version="1.2.2";function e(){for(var y=0,S=new Array(256),_=0;_!=256;++_)y=_,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,y=y&1?-306674912^y>>>1:y>>>1,S[_]=y;return typeof Int32Array!="undefined"?new Int32Array(S):S}var r=e();function n(y){var S=0,_=0,C=0,P=typeof Int32Array!="undefined"?new Int32Array(4096):new Array(4096);for(C=0;C!=256;++C)P[C]=y[C];for(C=0;C!=256;++C)for(_=y[C],S=256+C;S<4096;S+=256)_=P[S]=_>>>8^y[_&255];var N=[];for(C=1;C!=16;++C)N[C-1]=typeof Int32Array!="undefined"?P.subarray(C*256,C*256+256):P.slice(C*256,C*256+256);return N}var i=n(r),s=i[0],a=i[1],o=i[2],l=i[3],c=i[4],u=i[5],f=i[6],d=i[7],h=i[8],m=i[9],g=i[10],v=i[11],w=i[12],b=i[13],k=i[14];function x(y,S){for(var _=S^-1,C=0,P=y.length;C>>8^r[(_^y.charCodeAt(C++))&255];return~_}function E(y,S){for(var _=S^-1,C=y.length-15,P=0;P>8&255]^w[y[P++]^_>>16&255]^v[y[P++]^_>>>24]^g[y[P++]]^m[y[P++]]^h[y[P++]]^d[y[P++]]^f[y[P++]]^u[y[P++]]^c[y[P++]]^l[y[P++]]^o[y[P++]]^a[y[P++]]^s[y[P++]]^r[y[P++]];for(C+=15;P>>8^r[(_^y[P++])&255];return~_}function A(y,S){for(var _=S^-1,C=0,P=y.length,N=0,B=0;C>>8^r[(_^N)&255]:N<2048?(_=_>>>8^r[(_^(192|N>>6&31))&255],_=_>>>8^r[(_^(128|N&63))&255]):N>=55296&&N<57344?(N=(N&1023)+64,B=y.charCodeAt(C++)&1023,_=_>>>8^r[(_^(240|N>>8&7))&255],_=_>>>8^r[(_^(128|N>>2&63))&255],_=_>>>8^r[(_^(128|B>>6&15|(N&3)<<4))&255],_=_>>>8^r[(_^(128|B&63))&255]):(_=_>>>8^r[(_^(224|N>>12&15))&255],_=_>>>8^r[(_^(128|N>>6&63))&255],_=_>>>8^r[(_^(128|N&63))&255]);return~_}t.table=r,t.bstr=x,t.buf=E,t.str=A})});var Hi=I(cr=>{"use strict";p();var CB=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function TB(t,e){return Object.prototype.hasOwnProperty.call(t,e)}cr.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var r=e.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(var n in r)TB(r,n)&&(t[n]=r[n])}}return t};cr.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var PB={arraySet:function(t,e,r,n,i){if(e.subarray&&t.subarray){t.set(e.subarray(r,r+n),i);return}for(var s=0;s{"use strict";p();var $B=Hi(),IB=4,T1=0,P1=1,FB=2;function Do(t){for(var e=t.length;--e>=0;)t[e]=0}var OB=0,M1=1,MB=2,DB=3,LB=258,wg=29,Fc=256,Pc=Fc+1+wg,Mo=30,yg=19,D1=2*Pc+1,ha=15,dg=16,NB=7,bg=256,L1=16,N1=17,B1=18,gg=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ld=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],BB=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],H1=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],HB=512,Ui=new Array((Pc+2)*2);Do(Ui);var Tc=new Array(Mo*2);Do(Tc);var Rc=new Array(HB);Do(Rc);var $c=new Array(LB-DB+1);Do($c);var _g=new Array(wg);Do(_g);var cd=new Array(Mo);Do(cd);function hg(t,e,r,n,i){this.static_tree=t,this.extra_bits=e,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=t&&t.length}var U1,G1,j1;function pg(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function q1(t){return t<256?Rc[t]:Rc[256+(t>>>7)]}function Ic(t,e){t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255}function xr(t,e,r){t.bi_valid>dg-r?(t.bi_buf|=e<>dg-t.bi_valid,t.bi_valid+=r-dg):(t.bi_buf|=e<>>=1,r<<=1;while(--e>0);return r>>>1}function UB(t){t.bi_valid===16?(Ic(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)}function GB(t,e){var r=e.dyn_tree,n=e.max_code,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length,c,u,f,d,h,m,g=0;for(d=0;d<=ha;d++)t.bl_count[d]=0;for(r[t.heap[t.heap_max]*2+1]=0,c=t.heap_max+1;cl&&(d=l,g++),r[u*2+1]=d,!(u>n)&&(t.bl_count[d]++,h=0,u>=o&&(h=a[u-o]),m=r[u*2],t.opt_len+=m*(d+h),s&&(t.static_len+=m*(i[u*2+1]+h)));if(g!==0){do{for(d=l-1;t.bl_count[d]===0;)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[l]--,g-=2}while(g>0);for(d=l;d!==0;d--)for(u=t.bl_count[d];u!==0;)f=t.heap[--c],!(f>n)&&(r[f*2+1]!==d&&(t.opt_len+=(d-r[f*2+1])*r[f*2],r[f*2+1]=d),u--)}}function z1(t,e,r){var n=new Array(ha+1),i=0,s,a;for(s=1;s<=ha;s++)n[s]=i=i+r[s-1]<<1;for(a=0;a<=e;a++){var o=t[a*2+1];o!==0&&(t[a*2]=W1(n[o]++,o))}}function jB(){var t,e,r,n,i,s=new Array(ha+1);for(r=0,n=0;n>=7;n8?Ic(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function qB(t,e,r,n){Y1(t),n&&(Ic(t,r),Ic(t,~r)),$B.arraySet(t.pending_buf,t.window,e,r,t.pending),t.pending+=r}function R1(t,e,r,n){var i=e*2,s=r*2;return t[i]>1;a>=1;a--)mg(t,r,a);c=s;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],mg(t,r,1),o=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=o,r[c*2]=r[a*2]+r[o*2],t.depth[c]=(t.depth[a]>=t.depth[o]?t.depth[a]:t.depth[o])+1,r[a*2+1]=r[o*2+1]=c,t.heap[1]=c++,mg(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],GB(t,e),z1(r,l,t.bl_count)}function I1(t,e,r){var n,i=-1,s,a=e[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),e[(r+1)*2+1]=65535,n=0;n<=r;n++)s=a,a=e[(n+1)*2+1],!(++o=3&&t.bl_tree[H1[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e}function zB(t,e,r,n){var i;for(xr(t,e-257,5),xr(t,r-1,5),xr(t,n-4,4),i=0;i>>=1)if(e&1&&t.dyn_ltree[r*2]!==0)return T1;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return P1;for(r=32;r0?(t.strm.data_type===FB&&(t.strm.data_type=VB(t)),vg(t,t.l_desc),vg(t,t.d_desc),a=WB(t),i=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=i&&(i=s)):i=s=r+5,r+4<=i&&e!==-1?X1(t,e,r,n):t.strategy===IB||s===i?(xr(t,(M1<<1)+(n?1:0),3),$1(t,Ui,Tc)):(xr(t,(MB<<1)+(n?1:0),3),zB(t,t.l_desc.max_code+1,t.d_desc.max_code+1,a+1),$1(t,t.dyn_ltree,t.dyn_dtree)),V1(t),n&&Y1(t)}function KB(t,e,r){return t.pending_buf[t.d_buf+t.last_lit*2]=e>>>8&255,t.pending_buf[t.d_buf+t.last_lit*2+1]=e&255,t.pending_buf[t.l_buf+t.last_lit]=r&255,t.last_lit++,e===0?t.dyn_ltree[r*2]++:(t.matches++,e--,t.dyn_ltree[($c[r]+Fc+1)*2]++,t.dyn_dtree[q1(e)*2]++),t.last_lit===t.lit_bufsize-1}Lo._tr_init=YB;Lo._tr_stored_block=X1;Lo._tr_flush_block=ZB;Lo._tr_tally=KB;Lo._tr_align=XB});var xg=I((sZ,K1)=>{"use strict";p();function QB(t,e,r,n){for(var i=t&65535|0,s=t>>>16&65535|0,a=0;r!==0;){a=r>2e3?2e3:r,r-=a;do i=i+e[n++]|0,s=s+i|0;while(--a);i%=65521,s%=65521}return i|s<<16|0}K1.exports=QB});var Sg=I((oZ,Q1)=>{"use strict";p();function JB(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;e[r]=t}return e}var eH=JB();function tH(t,e,r,n){var i=eH,s=n+r;t^=-1;for(var a=n;a>>8^i[(t^e[a])&255];return t^-1}Q1.exports=tH});var ud=I((cZ,J1)=>{"use strict";p();J1.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var lS=I(ci=>{"use strict";p();var ur=Hi(),dn=Z1(),nS=xg(),xs=Sg(),rH=ud(),va=0,nH=1,iH=3,Cs=4,eS=5,li=0,tS=1,hn=-2,sH=-3,Eg=-5,aH=-1,oH=1,fd=2,lH=3,cH=4,uH=0,fH=2,md=8,dH=9,hH=15,pH=8,mH=29,gH=256,Ag=gH+1+mH,vH=30,wH=19,yH=2*Ag+1,bH=15,Te=3,ks=258,Fn=ks+Te+1,_H=32,gd=42,Cg=69,dd=73,hd=91,pd=103,pa=113,Mc=666,Tt=1,Dc=2,ma=3,Ho=4,xH=3;function As(t,e){return t.msg=rH[e],e}function rS(t){return(t<<1)-(t>4?9:0)}function Es(t){for(var e=t.length;--e>=0;)t[e]=0}function Ss(t){var e=t.state,r=e.pending;r>t.avail_out&&(r=t.avail_out),r!==0&&(ur.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,e.pending===0&&(e.pending_out=0))}function Gt(t,e){dn._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Ss(t.strm)}function Fe(t,e){t.pending_buf[t.pending++]=e}function Oc(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255}function SH(t,e,r,n){var i=t.avail_in;return i>n&&(i=n),i===0?0:(t.avail_in-=i,ur.arraySet(e,t.input,t.next_in,i,r),t.state.wrap===1?t.adler=nS(t.adler,e,i,r):t.state.wrap===2&&(t.adler=xs(t.adler,e,i,r)),t.next_in+=i,t.total_in+=i,i)}function iS(t,e){var r=t.max_chain_length,n=t.strstart,i,s,a=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-Fn?t.strstart-(t.w_size-Fn):0,c=t.window,u=t.w_mask,f=t.prev,d=t.strstart+ks,h=c[n+a-1],m=c[n+a];t.prev_length>=t.good_match&&(r>>=2),o>t.lookahead&&(o=t.lookahead);do if(i=e,!(c[i+a]!==m||c[i+a-1]!==h||c[i]!==c[n]||c[++i]!==c[n+1])){n+=2,i++;do;while(c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&c[++n]===c[++i]&&na){if(t.match_start=e,a=s,s>=o)break;h=c[n+a-1],m=c[n+a]}}while((e=f[e&u])>l&&--r!==0);return a<=t.lookahead?a:t.lookahead}function ga(t){var e=t.w_size,r,n,i,s,a;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-Fn)){ur.arraySet(t.window,t.window,e,e,0),t.match_start-=e,t.strstart-=e,t.block_start-=e,n=t.hash_size,r=n;do i=t.head[--r],t.head[r]=i>=e?i-e:0;while(--n);n=e,r=n;do i=t.prev[--r],t.prev[r]=i>=e?i-e:0;while(--n);s+=e}if(t.strm.avail_in===0)break;if(n=SH(t.strm,t.window,t.strstart+t.lookahead,s),t.lookahead+=n,t.lookahead+t.insert>=Te)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(ga(t),t.lookahead===0&&e===va)return Tt;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+r;if((t.strstart===0||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,Gt(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-Fn&&(Gt(t,!1),t.strm.avail_out===0))return Tt}return t.insert=0,e===Cs?(Gt(t,!0),t.strm.avail_out===0?ma:Ho):(t.strstart>t.block_start&&(Gt(t,!1),t.strm.avail_out===0),Tt)}function kg(t,e){for(var r,n;;){if(t.lookahead=Te&&(t.ins_h=(t.ins_h<=Te)if(n=dn._tr_tally(t,t.strstart-t.match_start,t.match_length-Te),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=Te){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<=Te&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=Te-1)),t.prev_length>=Te&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-Te,n=dn._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-Te),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<=Te&&t.strstart>0&&(i=t.strstart-1,n=a[i],n===a[++i]&&n===a[++i]&&n===a[++i])){s=t.strstart+ks;do;while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=Te?(r=dn._tr_tally(t,1,t.match_length-Te),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=dn._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(Gt(t,!1),t.strm.avail_out===0))return Tt}return t.insert=0,e===Cs?(Gt(t,!0),t.strm.avail_out===0?ma:Ho):t.last_lit&&(Gt(t,!1),t.strm.avail_out===0)?Tt:Dc}function AH(t,e){for(var r;;){if(t.lookahead===0&&(ga(t),t.lookahead===0)){if(e===va)return Tt;break}if(t.match_length=0,r=dn._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(Gt(t,!1),t.strm.avail_out===0))return Tt}return t.insert=0,e===Cs?(Gt(t,!0),t.strm.avail_out===0?ma:Ho):t.last_lit&&(Gt(t,!1),t.strm.avail_out===0)?Tt:Dc}function oi(t,e,r,n,i){this.good_length=t,this.max_lazy=e,this.nice_length=r,this.max_chain=n,this.func=i}var Bo;Bo=[new oi(0,0,0,0,EH),new oi(4,4,8,4,kg),new oi(4,5,16,8,kg),new oi(4,6,32,32,kg),new oi(4,4,16,16,No),new oi(8,16,32,32,No),new oi(8,16,128,128,No),new oi(8,32,128,256,No),new oi(32,128,258,1024,No),new oi(32,258,258,4096,No)];function CH(t){t.window_size=2*t.w_size,Es(t.head),t.max_lazy_match=Bo[t.level].max_lazy,t.good_match=Bo[t.level].good_length,t.nice_match=Bo[t.level].nice_length,t.max_chain_length=Bo[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=Te-1,t.match_available=0,t.ins_h=0}function TH(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=md,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new ur.Buf16(yH*2),this.dyn_dtree=new ur.Buf16((2*vH+1)*2),this.bl_tree=new ur.Buf16((2*wH+1)*2),Es(this.dyn_ltree),Es(this.dyn_dtree),Es(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new ur.Buf16(bH+1),this.heap=new ur.Buf16(2*Ag+1),Es(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new ur.Buf16(2*Ag+1),Es(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function sS(t){var e;return!t||!t.state?As(t,hn):(t.total_in=t.total_out=0,t.data_type=fH,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?gd:pa,t.adler=e.wrap===2?0:1,e.last_flush=va,dn._tr_init(e),li)}function aS(t){var e=sS(t);return e===li&&CH(t.state),e}function PH(t,e){return!t||!t.state||t.state.wrap!==2?hn:(t.state.gzhead=e,li)}function oS(t,e,r,n,i,s){if(!t)return hn;var a=1;if(e===aH&&(e=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),i<1||i>dH||r!==md||n<8||n>15||e<0||e>9||s<0||s>cH)return As(t,hn);n===8&&(n=9);var o=new TH;return t.state=o,o.strm=t,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<eS||e<0)return t?As(t,hn):hn;if(n=t.state,!t.output||!t.input&&t.avail_in!==0||n.status===Mc&&e!==Cs)return As(t,t.avail_out===0?Eg:hn);if(n.strm=t,r=n.last_flush,n.last_flush=e,n.status===gd)if(n.wrap===2)t.adler=0,Fe(n,31),Fe(n,139),Fe(n,8),n.gzhead?(Fe(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Fe(n,n.gzhead.time&255),Fe(n,n.gzhead.time>>8&255),Fe(n,n.gzhead.time>>16&255),Fe(n,n.gzhead.time>>24&255),Fe(n,n.level===9?2:n.strategy>=fd||n.level<2?4:0),Fe(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Fe(n,n.gzhead.extra.length&255),Fe(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=xs(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=Cg):(Fe(n,0),Fe(n,0),Fe(n,0),Fe(n,0),Fe(n,0),Fe(n,n.level===9?2:n.strategy>=fd||n.level<2?4:0),Fe(n,xH),n.status=pa);else{var a=md+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=fd||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,a|=o<<6,n.strstart!==0&&(a|=_H),a+=31-a%31,n.status=pa,Oc(n,a),n.strstart!==0&&(Oc(n,t.adler>>>16),Oc(n,t.adler&65535)),t.adler=1}if(n.status===Cg)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=xs(t.adler,n.pending_buf,n.pending-i,i)),Ss(t),i=n.pending,n.pending===n.pending_buf_size));)Fe(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(t.adler=xs(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=dd)}else n.status=dd;if(n.status===dd)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=xs(t.adler,n.pending_buf,n.pending-i,i)),Ss(t),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}n.gzindexi&&(t.adler=xs(t.adler,n.pending_buf,n.pending-i,i)),s===0&&(n.gzindex=0,n.status=hd)}else n.status=hd;if(n.status===hd)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(t.adler=xs(t.adler,n.pending_buf,n.pending-i,i)),Ss(t),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}n.gzindexi&&(t.adler=xs(t.adler,n.pending_buf,n.pending-i,i)),s===0&&(n.status=pd)}else n.status=pd;if(n.status===pd&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Ss(t),n.pending+2<=n.pending_buf_size&&(Fe(n,t.adler&255),Fe(n,t.adler>>8&255),t.adler=0,n.status=pa)):n.status=pa),n.pending!==0){if(Ss(t),t.avail_out===0)return n.last_flush=-1,li}else if(t.avail_in===0&&rS(e)<=rS(r)&&e!==Cs)return As(t,Eg);if(n.status===Mc&&t.avail_in!==0)return As(t,Eg);if(t.avail_in!==0||n.lookahead!==0||e!==va&&n.status!==Mc){var l=n.strategy===fd?AH(n,e):n.strategy===lH?kH(n,e):Bo[n.level].func(n,e);if((l===ma||l===Ho)&&(n.status=Mc),l===Tt||l===ma)return t.avail_out===0&&(n.last_flush=-1),li;if(l===Dc&&(e===nH?dn._tr_align(n):e!==eS&&(dn._tr_stored_block(n,0,0,!1),e===iH&&(Es(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ss(t),t.avail_out===0))return n.last_flush=-1,li}return e!==Cs?li:n.wrap<=0?tS:(n.wrap===2?(Fe(n,t.adler&255),Fe(n,t.adler>>8&255),Fe(n,t.adler>>16&255),Fe(n,t.adler>>24&255),Fe(n,t.total_in&255),Fe(n,t.total_in>>8&255),Fe(n,t.total_in>>16&255),Fe(n,t.total_in>>24&255)):(Oc(n,t.adler>>>16),Oc(n,t.adler&65535)),Ss(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?li:tS)}function IH(t){var e;return!t||!t.state?hn:(e=t.state.status,e!==gd&&e!==Cg&&e!==dd&&e!==hd&&e!==pd&&e!==pa&&e!==Mc?As(t,hn):(t.state=null,e===pa?As(t,sH):li))}function FH(t,e){var r=e.length,n,i,s,a,o,l,c,u;if(!t||!t.state||(n=t.state,a=n.wrap,a===2||a===1&&n.status!==gd||n.lookahead))return hn;for(a===1&&(t.adler=nS(t.adler,e,r,0)),n.wrap=0,r>=n.w_size&&(a===0&&(Es(n.head),n.strstart=0,n.block_start=0,n.insert=0),u=new ur.Buf8(n.w_size),ur.arraySet(u,e,r-n.w_size,n.w_size,0),e=u,r=n.w_size),o=t.avail_in,l=t.next_in,c=t.input,t.avail_in=r,t.next_in=0,t.input=e,ga(n);n.lookahead>=Te;){i=n.strstart,s=n.lookahead-(Te-1);do n.ins_h=(n.ins_h<{"use strict";p();var vd=Hi(),cS=!0,uS=!0;try{String.fromCharCode.apply(null,[0])}catch(t){cS=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){uS=!1}var Lc=new vd.Buf8(256);for(Gi=0;Gi<256;Gi++)Lc[Gi]=Gi>=252?6:Gi>=248?5:Gi>=240?4:Gi>=224?3:Gi>=192?2:1;var Gi;Lc[254]=Lc[254]=1;Uo.string2buf=function(t){var e,r,n,i,s,a=t.length,o=0;for(i=0;i>>6,e[s++]=128|r&63):r<65536?(e[s++]=224|r>>>12,e[s++]=128|r>>>6&63,e[s++]=128|r&63):(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63,e[s++]=128|r>>>6&63,e[s++]=128|r&63);return e};function fS(t,e){if(e<65534&&(t.subarray&&uS||!t.subarray&&cS))return String.fromCharCode.apply(null,vd.shrinkBuf(t,e));for(var r="",n=0;n4){o[n++]=65533,r+=s-1;continue}for(i&=s===2?31:s===3?15:7;s>1&&r1){o[n++]=65533;continue}i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|i&1023)}return fS(o,n)};Uo.utf8border=function(t,e){var r;for(e=e||t.length,e>t.length&&(e=t.length),r=e-1;r>=0&&(t[r]&192)===128;)r--;return r<0||r===0?e:r+Lc[t[r]]>e?r:e}});var Pg=I((mZ,dS)=>{"use strict";p();function OH(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}dS.exports=OH});var gS=I(Hc=>{"use strict";p();var Nc=lS(),Bc=Hi(),$g=Tg(),Ig=ud(),MH=Pg(),mS=Object.prototype.toString,DH=0,Rg=4,Go=0,hS=1,pS=2,LH=-1,NH=0,BH=8;function wa(t){if(!(this instanceof wa))return new wa(t);this.options=Bc.assign({level:LH,method:BH,chunkSize:16384,windowBits:15,memLevel:8,strategy:NH,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MH,this.strm.avail_out=0;var r=Nc.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(r!==Go)throw new Error(Ig[r]);if(e.header&&Nc.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(typeof e.dictionary=="string"?n=$g.string2buf(e.dictionary):mS.call(e.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(e.dictionary):n=e.dictionary,r=Nc.deflateSetDictionary(this.strm,n),r!==Go)throw new Error(Ig[r]);this._dict_set=!0}}wa.prototype.push=function(t,e){var r=this.strm,n=this.options.chunkSize,i,s;if(this.ended)return!1;s=e===~~e?e:e===!0?Rg:DH,typeof t=="string"?r.input=$g.string2buf(t):mS.call(t)==="[object ArrayBuffer]"?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Bc.Buf8(n),r.next_out=0,r.avail_out=n),i=Nc.deflate(r,s),i!==hS&&i!==Go)return this.onEnd(i),this.ended=!0,!1;(r.avail_out===0||r.avail_in===0&&(s===Rg||s===pS))&&(this.options.to==="string"?this.onData($g.buf2binstring(Bc.shrinkBuf(r.output,r.next_out))):this.onData(Bc.shrinkBuf(r.output,r.next_out)))}while((r.avail_in>0||r.avail_out===0)&&i!==hS);return s===Rg?(i=Nc.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Go):(s===pS&&(this.onEnd(Go),r.avail_out=0),!0)};wa.prototype.onData=function(t){this.chunks.push(t)};wa.prototype.onEnd=function(t){t===Go&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Bc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Fg(t,e){var r=new wa(e);if(r.push(t,!0),r.err)throw r.msg||Ig[r.err];return r.result}function HH(t,e){return e=e||{},e.raw=!0,Fg(t,e)}function UH(t,e){return e=e||{},e.gzip=!0,Fg(t,e)}Hc.Deflate=wa;Hc.deflate=Fg;Hc.deflateRaw=HH;Hc.gzip=UH});var wS=I((yZ,vS)=>{"use strict";p();var wd=30,GH=12;vS.exports=function(e,r){var n,i,s,a,o,l,c,u,f,d,h,m,g,v,w,b,k,x,E,A,y,S,_,C,P;n=e.state,i=e.next_in,C=e.input,s=i+(e.avail_in-5),a=e.next_out,P=e.output,o=a-(r-e.avail_out),l=a+(e.avail_out-257),c=n.dmax,u=n.wsize,f=n.whave,d=n.wnext,h=n.window,m=n.hold,g=n.bits,v=n.lencode,w=n.distcode,b=(1<>>24,m>>>=E,g-=E,E=x>>>16&255,E===0)P[a++]=x&65535;else if(E&16){A=x&65535,E&=15,E&&(g>>=E,g-=E),g<15&&(m+=C[i++]<>>24,m>>>=E,g-=E,E=x>>>16&255,E&16){if(y=x&65535,E&=15,gc){e.msg="invalid distance too far back",n.mode=wd;break e}if(m>>>=E,g-=E,E=a-o,y>E){if(E=y-E,E>f&&n.sane){e.msg="invalid distance too far back",n.mode=wd;break e}if(S=0,_=h,d===0){if(S+=u-E,E2;)P[a++]=_[S++],P[a++]=_[S++],P[a++]=_[S++],A-=3;A&&(P[a++]=_[S++],A>1&&(P[a++]=_[S++]))}else{S=a-y;do P[a++]=P[S++],P[a++]=P[S++],P[a++]=P[S++],A-=3;while(A>2);A&&(P[a++]=P[S++],A>1&&(P[a++]=P[S++]))}}else if(E&64){e.msg="invalid distance code",n.mode=wd;break e}else{x=w[(x&65535)+(m&(1<>3,i-=A,g-=A<<3,m&=(1<{"use strict";p();var yS=Hi(),jo=15,bS=852,_S=592,xS=0,Og=1,SS=2,jH=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],qH=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],WH=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],zH=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];ES.exports=function(e,r,n,i,s,a,o,l){var c=l.bits,u=0,f=0,d=0,h=0,m=0,g=0,v=0,w=0,b=0,k=0,x,E,A,y,S,_=null,C=0,P,N=new yS.Buf16(jo+1),B=new yS.Buf16(jo+1),H=null,ce=0,Pe,ve,ie;for(u=0;u<=jo;u++)N[u]=0;for(f=0;f=1&&N[h]===0;h--);if(m>h&&(m=h),h===0)return s[a++]=1<<24|64<<16|0,s[a++]=1<<24|64<<16|0,l.bits=1,0;for(d=1;d0&&(e===xS||h!==1))return-1;for(B[1]=0,u=1;ubS||e===SS&&b>_S)return 1;for(;;){Pe=u-v,o[f]P?(ve=H[ce+o[f]],ie=_[C+o[f]]):(ve=96,ie=0),x=1<>v)+E]=Pe<<24|ve<<16|ie|0;while(E!==0);for(x=1<>=1;if(x!==0?(k&=x-1,k+=x):k=0,f++,--N[u]===0){if(u===h)break;u=r[n+o[f]]}if(u>m&&(k&y)!==A){for(v===0&&(v=m),S+=d,g=u-v,w=1<bS||e===SS&&b>_S)return 1;A=k&y,s[A]=m<<24|g<<16|S-a|0}}return k!==0&&(s[S+k]=u-v<<24|64<<16|0),l.bits=m,0}});var aE=I(On=>{"use strict";p();var Yr=Hi(),Hg=xg(),ui=Sg(),VH=wS(),Uc=kS(),YH=0,KS=1,QS=2,AS=4,XH=5,yd=6,ya=0,ZH=1,KH=2,pn=-2,JS=-3,Ug=-4,QH=-5,CS=8,eE=1,TS=2,PS=3,RS=4,$S=5,IS=6,FS=7,OS=8,MS=9,DS=10,xd=11,ji=12,Mg=13,LS=14,Dg=15,NS=16,BS=17,HS=18,US=19,bd=20,_d=21,GS=22,jS=23,qS=24,WS=25,zS=26,Lg=27,VS=28,YS=29,Je=30,Gg=31,JH=32,e3=852,t3=592,r3=15,n3=r3;function XS(t){return(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24)}function i3(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Yr.Buf16(320),this.work=new Yr.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function tE(t){var e;return!t||!t.state?pn:(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=eE,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Yr.Buf32(e3),e.distcode=e.distdyn=new Yr.Buf32(t3),e.sane=1,e.back=-1,ya)}function rE(t){var e;return!t||!t.state?pn:(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,tE(t))}function nE(t,e){var r,n;return!t||!t.state||(n=t.state,e<0?(r=0,e=-e):(r=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?pn:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,rE(t))}function iE(t,e){var r,n;return t?(n=new i3,t.state=n,n.window=null,r=nE(t,e),r!==ya&&(t.state=null),r):pn}function s3(t){return iE(t,n3)}var ZS=!0,Ng,Bg;function a3(t){if(ZS){var e;for(Ng=new Yr.Buf32(512),Bg=new Yr.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Uc(KS,t.lens,0,288,Ng,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Uc(QS,t.lens,0,32,Bg,0,t.work,{bits:5}),ZS=!1}t.lencode=Ng,t.lenbits=9,t.distcode=Bg,t.distbits=5}function sE(t,e,r,n){var i,s=t.state;return s.window===null&&(s.wsize=1<=s.wsize?(Yr.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>n&&(i=n),Yr.arraySet(s.window,e,r-n,i,s.wnext),n-=i,n?(Yr.arraySet(s.window,e,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=ui(r.check,_,2,0),c=0,u=0,r.mode=TS;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((c&255)<<8)+(c>>8))%31){t.msg="incorrect header check",r.mode=Je;break}if((c&15)!==CS){t.msg="unknown compression method",r.mode=Je;break}if(c>>>=4,u-=4,y=(c&15)+8,r.wbits===0)r.wbits=y;else if(y>r.wbits){t.msg="invalid window size",r.mode=Je;break}r.dmax=1<>8&1),r.flags&512&&(_[0]=c&255,_[1]=c>>>8&255,r.check=ui(r.check,_,2,0)),c=0,u=0,r.mode=PS;case PS:for(;u<32;){if(o===0)break e;o--,c+=n[s++]<>>8&255,_[2]=c>>>16&255,_[3]=c>>>24&255,r.check=ui(r.check,_,4,0)),c=0,u=0,r.mode=RS;case RS:for(;u<16;){if(o===0)break e;o--,c+=n[s++]<>8),r.flags&512&&(_[0]=c&255,_[1]=c>>>8&255,r.check=ui(r.check,_,2,0)),c=0,u=0,r.mode=$S;case $S:if(r.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=n[s++]<>>8&255,r.check=ui(r.check,_,2,0)),c=0,u=0}else r.head&&(r.head.extra=null);r.mode=IS;case IS:if(r.flags&1024&&(h=r.length,h>o&&(h=o),h&&(r.head&&(y=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),Yr.arraySet(r.head.extra,n,s,h,y)),r.flags&512&&(r.check=ui(r.check,n,h,s)),o-=h,s+=h,r.length-=h),r.length))break e;r.length=0,r.mode=FS;case FS:if(r.flags&2048){if(o===0)break e;h=0;do y=n[s+h++],r.head&&y&&r.length<65536&&(r.head.name+=String.fromCharCode(y));while(y&&h>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=ji;break;case DS:for(;u<32;){if(o===0)break e;o--,c+=n[s++]<>>=u&7,u-=u&7,r.mode=Lg;break}for(;u<3;){if(o===0)break e;o--,c+=n[s++]<>>=1,u-=1,c&3){case 0:r.mode=LS;break;case 1:if(a3(r),r.mode=bd,e===yd){c>>>=2,u-=2;break e}break;case 2:r.mode=BS;break;case 3:t.msg="invalid block type",r.mode=Je}c>>>=2,u-=2;break;case LS:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=n[s++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=Je;break}if(r.length=c&65535,c=0,u=0,r.mode=Dg,e===yd)break e;case Dg:r.mode=NS;case NS:if(h=r.length,h){if(h>o&&(h=o),h>l&&(h=l),h===0)break e;Yr.arraySet(i,n,s,h,a),o-=h,s+=h,l-=h,a+=h,r.length-=h;break}r.mode=ji;break;case BS:for(;u<14;){if(o===0)break e;o--,c+=n[s++]<>>=5,u-=5,r.ndist=(c&31)+1,c>>>=5,u-=5,r.ncode=(c&15)+4,c>>>=4,u-=4,r.nlen>286||r.ndist>30){t.msg="too many length or distance symbols",r.mode=Je;break}r.have=0,r.mode=HS;case HS:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[N[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,C={bits:r.lenbits},S=Uc(YH,r.lens,0,19,r.lencode,0,r.work,C),r.lenbits=C.bits,S){t.msg="invalid code lengths set",r.mode=Je;break}r.have=0,r.mode=US;case US:for(;r.have>>24,b=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=n[s++]<>>=w,u-=w,r.lens[r.have++]=k;else{if(k===16){for(P=w+2;u>>=w,u-=w,r.have===0){t.msg="invalid bit length repeat",r.mode=Je;break}y=r.lens[r.have-1],h=3+(c&3),c>>>=2,u-=2}else if(k===17){for(P=w+3;u>>=w,u-=w,y=0,h=3+(c&7),c>>>=3,u-=3}else{for(P=w+7;u>>=w,u-=w,y=0,h=11+(c&127),c>>>=7,u-=7}if(r.have+h>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=Je;break}for(;h--;)r.lens[r.have++]=y}}if(r.mode===Je)break;if(r.lens[256]===0){t.msg="invalid code -- missing end-of-block",r.mode=Je;break}if(r.lenbits=9,C={bits:r.lenbits},S=Uc(KS,r.lens,0,r.nlen,r.lencode,0,r.work,C),r.lenbits=C.bits,S){t.msg="invalid literal/lengths set",r.mode=Je;break}if(r.distbits=6,r.distcode=r.distdyn,C={bits:r.distbits},S=Uc(QS,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,C),r.distbits=C.bits,S){t.msg="invalid distances set",r.mode=Je;break}if(r.mode=bd,e===yd)break e;case bd:r.mode=_d;case _d:if(o>=6&&l>=258){t.next_out=a,t.avail_out=l,t.next_in=s,t.avail_in=o,r.hold=c,r.bits=u,VH(t,d),a=t.next_out,i=t.output,l=t.avail_out,s=t.next_in,n=t.input,o=t.avail_in,c=r.hold,u=r.bits,r.mode===ji&&(r.back=-1);break}for(r.back=0;v=r.lencode[c&(1<>>24,b=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=n[s++]<>x)],w=v>>>24,b=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=n[s++]<>>=x,u-=x,r.back+=x}if(c>>>=w,u-=w,r.back+=w,r.length=k,b===0){r.mode=zS;break}if(b&32){r.back=-1,r.mode=ji;break}if(b&64){t.msg="invalid literal/length code",r.mode=Je;break}r.extra=b&15,r.mode=GS;case GS:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=jS;case jS:for(;v=r.distcode[c&(1<>>24,b=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=n[s++]<>x)],w=v>>>24,b=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=n[s++]<>>=x,u-=x,r.back+=x}if(c>>>=w,u-=w,r.back+=w,b&64){t.msg="invalid distance code",r.mode=Je;break}r.offset=k,r.extra=b&15,r.mode=qS;case qS:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=Je;break}r.mode=WS;case WS:if(l===0)break e;if(h=d-l,r.offset>h){if(h=r.offset-h,h>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=Je;break}h>r.wnext?(h-=r.wnext,m=r.wsize-h):m=r.wnext-h,h>r.length&&(h=r.length),g=r.window}else g=i,m=a-r.offset,h=r.length;h>l&&(h=l),l-=h,r.length-=h;do i[a++]=g[m++];while(--h);r.length===0&&(r.mode=_d);break;case zS:if(l===0)break e;i[a++]=r.length,l--,r.mode=_d;break;case Lg:if(r.wrap){for(;u<32;){if(o===0)break e;o--,c|=n[s++]<{"use strict";p();oE.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var cE=I((CZ,lE)=>{"use strict";p();function f3(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}lE.exports=f3});var fE=I(jc=>{"use strict";p();var qo=aE(),Gc=Hi(),Sd=Tg(),dt=jg(),qg=ud(),d3=Pg(),h3=cE(),uE=Object.prototype.toString;function ba(t){if(!(this instanceof ba))return new ba(t);this.options=Gc.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new d3,this.strm.avail_out=0;var r=qo.inflateInit2(this.strm,e.windowBits);if(r!==dt.Z_OK)throw new Error(qg[r]);if(this.header=new h3,qo.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Sd.string2buf(e.dictionary):uE.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=qo.inflateSetDictionary(this.strm,e.dictionary),r!==dt.Z_OK)))throw new Error(qg[r])}ba.prototype.push=function(t,e){var r=this.strm,n=this.options.chunkSize,i=this.options.dictionary,s,a,o,l,c,u=!1;if(this.ended)return!1;a=e===~~e?e:e===!0?dt.Z_FINISH:dt.Z_NO_FLUSH,typeof t=="string"?r.input=Sd.binstring2buf(t):uE.call(t)==="[object ArrayBuffer]"?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;do{if(r.avail_out===0&&(r.output=new Gc.Buf8(n),r.next_out=0,r.avail_out=n),s=qo.inflate(r,dt.Z_NO_FLUSH),s===dt.Z_NEED_DICT&&i&&(s=qo.inflateSetDictionary(this.strm,i)),s===dt.Z_BUF_ERROR&&u===!0&&(s=dt.Z_OK,u=!1),s!==dt.Z_STREAM_END&&s!==dt.Z_OK)return this.onEnd(s),this.ended=!0,!1;r.next_out&&(r.avail_out===0||s===dt.Z_STREAM_END||r.avail_in===0&&(a===dt.Z_FINISH||a===dt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=Sd.utf8border(r.output,r.next_out),l=r.next_out-o,c=Sd.buf2string(r.output,o),r.next_out=l,r.avail_out=n-l,l&&Gc.arraySet(r.output,r.output,o,l,0),this.onData(c)):this.onData(Gc.shrinkBuf(r.output,r.next_out))),r.avail_in===0&&r.avail_out===0&&(u=!0)}while((r.avail_in>0||r.avail_out===0)&&s!==dt.Z_STREAM_END);return s===dt.Z_STREAM_END&&(a=dt.Z_FINISH),a===dt.Z_FINISH?(s=qo.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===dt.Z_OK):(a===dt.Z_SYNC_FLUSH&&(this.onEnd(dt.Z_OK),r.avail_out=0),!0)};ba.prototype.onData=function(t){this.chunks.push(t)};ba.prototype.onEnd=function(t){t===dt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Gc.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function Wg(t,e){var r=new ba(e);if(r.push(t,!0),r.err)throw r.msg||qg[r.err];return r.result}function p3(t,e){return e=e||{},e.raw=!0,Wg(t,e)}jc.Inflate=ba;jc.inflate=Wg;jc.inflateRaw=p3;jc.ungzip=Wg});var pE=I(($Z,hE)=>{"use strict";p();var m3=Hi().assign,g3=gS(),v3=fE(),w3=jg(),dE={};m3(dE,g3,v3,w3);hE.exports=dE});var vE=I((FZ,gE)=>{"use strict";p();var mE=(t,e)=>function(...r){let n=e.promiseModule;return new n((i,s)=>{e.multiArgs?r.push((...a)=>{e.errorFirst?a[0]?s(a):(a.shift(),i(a)):i(a)}):e.errorFirst?r.push((a,o)=>{a?s(a):i(o)}):r.push(i),t.apply(this,r)})};gE.exports=(t,e)=>{e=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},e);let r=typeof t;if(!(t!==null&&(r==="object"||r==="function")))throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${t===null?"null":r}\``);let n=s=>{let a=o=>typeof o=="string"?s===o:o.test(s);return e.include?e.include.some(a):!e.exclude.some(a)},i;r==="function"?i=function(...s){return e.excludeMain?t(...s):mE(t,e).apply(this,s)}:i=Object.create(Object.getPrototypeOf(t));for(let s in t){let a=t[s];i[s]=typeof a=="function"&&n(s)?mE(a,e):a}return i}});var AE=I((MZ,kE)=>{p();function wE(t){return Array.isArray(t)?t:[t]}var Yg="",yE=" ",zg="\\",y3=/^\s+$/,b3=/(?:[^\\]|^)\\$/,_3=/^\\!/,x3=/^\\#/,S3=/\r?\n/g,E3=/^\.*\/|^\.+$/,Vg="/",xE="node-ignore";typeof Symbol!="undefined"&&(xE=Symbol.for("node-ignore"));var bE=xE,k3=(t,e,r)=>Object.defineProperty(t,e,{value:r}),A3=/([0-z])-([0-z])/g,SE=()=>!1,C3=t=>t.replace(A3,(e,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?e:Yg),T3=t=>{let{length:e}=t;return t.slice(0,e-e%2)},P3=[[/^\uFEFF/,()=>Yg],[/((?:\\\\)*?)(\\?\s+)$/,(t,e,r)=>e+(r.indexOf("\\")===0?yE:Yg)],[/(\\+?)\s/g,(t,e)=>{let{length:r}=e;return e.slice(0,r-r%2)+yE}],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6{let n=r.replace(/\\\*/g,"[^\\/]*");return e+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>zg],[/\\\\/g,()=>zg],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,r,n,i)=>e===zg?`\\[${r}${T3(n)}${i}`:i==="]"&&n.length%2===0?`[${C3(r)}${n}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],_E=Object.create(null),R3=(t,e)=>{let r=_E[t];return r||(r=P3.reduce((n,[i,s])=>n.replace(i,s.bind(t)),t),_E[t]=r),e?new RegExp(r,"i"):new RegExp(r)},Kg=t=>typeof t=="string",$3=t=>t&&Kg(t)&&!y3.test(t)&&!b3.test(t)&&t.indexOf("#")!==0,I3=t=>t.split(S3),Xg=class{constructor(e,r,n,i){this.origin=e,this.pattern=r,this.negative=n,this.regex=i}},F3=(t,e)=>{let r=t,n=!1;t.indexOf("!")===0&&(n=!0,t=t.substr(1)),t=t.replace(_3,"!").replace(x3,"#");let i=R3(t,e);return new Xg(r,t,n,i)},O3=(t,e)=>{throw new e(t)},qi=(t,e,r)=>Kg(t)?t?qi.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),EE=t=>E3.test(t);qi.isNotRelative=EE;qi.convert=t=>t;var Zg=class{constructor({ignorecase:e=!0,ignoreCase:r=e,allowRelativePaths:n=!1}={}){k3(this,bE,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[bE]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if($3(e)){let r=F3(e,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,wE(Kg(e)?I3(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let n=!1,i=!1;return this._rules.forEach(s=>{let{negative:a}=s;if(i===a&&n!==i||a&&!n&&!i&&!r)return;s.regex.test(e)&&(n=!a,i=a)}),{ignored:n,unignored:i}}_test(e,r,n,i){let s=e&&qi.convert(e);return qi(s,e,this._allowRelativePaths?SE:O3),this._t(s,r,n,i)}_t(e,r,n,i){if(e in r)return r[e];if(i||(i=e.split(Vg)),i.pop(),!i.length)return r[e]=this._testOne(e,n);let s=this._t(i.join(Vg)+Vg,r,n,i);return r[e]=s.ignored?s:this._testOne(e,n)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return wE(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},Ed=t=>new Zg(t),M3=t=>qi(t&&qi.convert(t),t,SE);Ed.isPathValid=M3;Ed.default=Ed;kE.exports=Ed;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");qi.convert=t;let e=/^[a-z]:\//i;qi.isNotRelative=r=>e.test(r)||EE(r)}});var TE=I((LZ,CE)=>{"use strict";p();function D3(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function fi(t,e,r){return e=e instanceof RegExp?e:new RegExp(D3(e),"g"),t.replace(e,r)}var L3={clean:function(e){if(typeof e!="string")throw new Error("Expected a string, received: "+e);return e=fi(e,"./","/"),e=fi(e,"..","."),e=fi(e," ","-"),e=fi(e,/^[~^:?*\\\-]/g,""),e=fi(e,/[~^:?*\\]/g,"-"),e=fi(e,/[~^:?*\\\-]$/g,""),e=fi(e,"@{","-"),e=fi(e,/\.$/g,""),e=fi(e,/\/$/g,""),e=fi(e,/\.lock$/g,""),e}};CE.exports=L3});var RE=I((BZ,PE)=>{p();PE.exports=function(t,e){var r=t,n=e,i=r.length,s=n.length,a=!1,o=null,l=i+1,c=[],u=[],f=[],d="",h=-1,m=0,g=1,v,w,b=function(){i>=s&&(v=r,w=i,r=n,n=v,i=s,s=w,a=!0,l=i+1)},k=function(y,S,_){return{x:y,y:S,k:_}},x=function(y,S){return{elem:y,t:S}},E=function(y,S,_){var C,P,N;for(S>_?C=c[y-1+l]:C=c[y+1+l],N=Math.max(S,_),P=N-y;P=0;--N)for(;CP-C?(a?f[f.length]=new x(n[P],h):f[f.length]=new x(n[P],g),++_,++P):y[N].y-y[N].x=y+1;--H)_[H+l]=E(H,_[H-1+l]+1,_[H+1+l]);_[y+l]=E(y,_[y-1+l]+1,_[y+1+l])}while(_[y+l]!==s);for(o=y+2*C,P=c[y+l],N=[];P!==-1;)N[N.length]=new k(u[P].x,u[P].y,null),P=u[P].k;A(N)}}}});var FE=I((UZ,IE)=>{p();var N3=RE();function B3(t,e){var r=new N3(t,e);r.compose();for(var n=r.getses(),i,s,a=t.length-1,o=e.length-1,l=n.length-1;l>=0;--l)n[l].t===r.SES_COMMON?(s?(s.chain={file1index:a,file2index:o,chain:null},s=s.chain):(i={file1index:a,file2index:o,chain:null},s=i),a--,o--):n[l].t===r.SES_DELETE?a--:n[l].t===r.SES_ADD&&o--;var c={file1index:-1,file2index:-1,chain:null};return s?(s.chain=c,i):c}function $E(t,e){for(var r=[],n=t.length,i=e.length,s=B3(t,e);s!==null;s=s.chain){var a=n-s.file1index-1,o=i-s.file2index-1;n=s.file1index,i=s.file2index,(a||o)&&r.push({file1:[n+1,a],file2:[i+1,o]})}return r.reverse(),r}function H3(t,e,r){var n,i=$E(e,t),s=$E(e,r),a=[];function o(B,H){a.push([B.file1[0],H,B.file1[1],B.file2[0],B.file2[1]])}for(n=0;nc&&(l.push([1,c,B-c]),c=B)}for(var f=0;fg)break;g=Math.max(g,w+v[2]),f++}if(u(m),d==f)h[4]>0&&l.push([h[1],h[3],h[4]]);else{var b={0:[t.length,-1,e.length,-1],2:[r.length,-1,e.length,-1]};for(n=d;n<=f;n++){h=a[n];var k=h[1],x=b[k],E=h[0],A=E+h[2],y=h[3],S=y+h[4];x[0]=Math.min(y,x[0]),x[1]=Math.max(S,x[1]),x[2]=Math.min(E,x[2]),x[3]=Math.max(A,x[3])}var _=b[0][0]+(m-b[0][2]),C=b[0][1]+(g-b[0][3]),P=b[2][0]+(m-b[2][2]),N=b[2][1]+(g-b[2][3]);l.push([-1,_,C-_,m,g-m,P,N-P])}c=g}return u(e.length),l}function U3(t,e,r){var n=[],i=[t,e,r],s=H3(t,e,r),a=[];function o(){a.length&&n.push({ok:a}),a=[]}function l(h){for(var m=0;m{"use strict";p();Object.defineProperty(Y,"__esModule",{value:!0});function Ds(t){return t&&typeof t=="object"&&"default"in t?t.default:t}var Wc=Ds(b_()),rk=Ds(k1()),G3=Ds(C1()),xv=Ds(pE()),kd=Ds(vE()),j3=Ds(AE()),zc=Ds(TE()),q3=Ds(FE()),Re=class t extends Error{constructor(e){super(e),this.caller=""}toJSON(){return{code:this.code,data:this.data,caller:this.caller,message:this.message,stack:this.stack}}fromJSON(e){let r=new t(e.message);return r.code=e.code,r.data=e.data,r.caller=e.caller,r.stack=e.stack,r}get isIsomorphicGitError(){return!0}},Vc=class t extends Re{constructor(e){super(`Modifying the index is not possible because you have unmerged files: ${e.toString}. Fix them up in the work tree, and then use 'git add/rm as appropriate to mark resolution and make a commit.`),this.code=this.name=t.code,this.data={filepaths:e}}};Vc.code="UnmergedPathsError";var he=class t extends Re{constructor(e){super(`An internal error caused this command to fail. If you're not a developer, report the bug to the developers of the application you're using. If this is a bug in isomorphic-git then you should create a proper bug yourselves. The bug should include a minimal reproduction and details about the version and environment. -Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${e}`),this.code=this.name=t.code,this.data={message:e}}};he.code="InternalError";var zo=class t extends Re{constructor(e){super(`The filepath "${e}" contains unsafe character sequences`),this.code=this.name=t.code,this.data={filepath:e}}};zo.code="UnsafeFilepathError";var mi=class{constructor(e){this.buffer=e,this._start=0}eof(){return this._start>=this.buffer.length}tell(){return this._start}seek(e){this._start=e}slice(e){let r=this.buffer.slice(this._start,this._start+e);return this._start+=e,r}toString(e,r){let i=this.buffer.toString(e,this._start,this._start+r);return this._start+=r,i}write(e,r,i){let n=this.buffer.write(e,this._start,r,i);return this._start+=r,n}copy(e,r,i){let n=e.copy(this.buffer,this._start,r,i);return this._start+=n,n}readUInt8(){let e=this.buffer.readUInt8(this._start);return this._start+=1,e}writeUInt8(e){let r=this.buffer.writeUInt8(e,this._start);return this._start+=1,r}readUInt16BE(){let e=this.buffer.readUInt16BE(this._start);return this._start+=2,e}writeUInt16BE(e){let r=this.buffer.writeUInt16BE(e,this._start);return this._start+=2,r}readUInt32BE(){let e=this.buffer.readUInt32BE(this._start);return this._start+=4,e}writeUInt32BE(e){let r=this.buffer.writeUInt32BE(e,this._start);return this._start+=4,r}};function Fd(t,e){return-(te)}function YE(t,e){return Fd(t.path,e.path)}function XE(t){let e=t>0?t>>12:0;e!==4&&e!==8&&e!==10&&e!==14&&(e=8);let r=t&511;return r&73?r=493:r=420,e!==8&&(r=0),(e<<12)+r}var cn=2**32;function kE(t,e,r,i){if(t!==void 0&&e!==void 0)return[t,e];r===void 0&&(r=i.valueOf());let n=Math.floor(r/1e3),s=(r-n*1e3)*1e6;return[n,s]}function Vo(t){let[e,r]=kE(t.ctimeSeconds,t.ctimeNanoseconds,t.ctimeMs,t.ctime),[i,n]=kE(t.mtimeSeconds,t.mtimeNanoseconds,t.mtimeMs,t.mtime);return{ctimeSeconds:e%cn,ctimeNanoseconds:r%cn,mtimeSeconds:i%cn,mtimeNanoseconds:n%cn,dev:t.dev%cn,ino:t.ino%cn,mode:XE(t.mode%cn),uid:t.uid%cn,gid:t.gid%cn,size:t.size>-1?t.size%cn:0}}function R3(t){let e="";for(let r of new Uint8Array(t))r<16&&(e+="0"),e+=r.toString(16);return e}var Vg=null;async function qn(t){return Vg===null&&(Vg=await F3()),Vg?ZE(t):$3(t)}function $3(t){return new WE().update(t).digest("hex")}async function ZE(t){let e=await crypto.subtle.digest("SHA-1",t);return R3(e)}async function F3(){try{return await ZE(new Uint8Array([]))==="da39a3ee5e6b4b0d3255bfef95601890afd80709"}catch(t){}return!1}function I3(t){return{assumeValid:!!(t&32768),extended:!!(t&16384),stage:(t&12288)>>12,nameLength:t&4095}}function O3(t){let e=t.flags;return e.extended=!1,e.nameLength=Math.min(Buffer.from(t.path).length,4095),(e.assumeValid?32768:0)+(e.extended?16384:0)+((e.stage&3)<<12)+(e.nameLength&4095)}var nv=class t{constructor(e,r){this._dirty=!1,this._unmergedPaths=r||new Set,this._entries=e||new Map}_addEntry(e){if(e.flags.stage===0)e.stages=[e],this._entries.set(e.path,e),this._unmergedPaths.delete(e.path);else{let r=this._entries.get(e.path);r||(this._entries.set(e.path,e),r=e),r.stages[e.flags.stage]=e,this._unmergedPaths.add(e.path)}}static async from(e){if(Buffer.isBuffer(e))return t.fromBuffer(e);if(e===null)return new t(null);throw new he("invalid type passed to GitIndex.from")}static async fromBuffer(e){if(e.length===0)throw new he("Index file is empty (.git/index)");let r=new t,i=new mi(e),n=i.toString("utf8",4);if(n!=="DIRC")throw new he(`Invalid dircache magic file number: ${n}`);let s=await qn(e.slice(0,-20)),a=e.slice(-20).toString("hex");if(a!==s)throw new he(`Invalid checksum in GitIndex buffer: expected ${a} but saw ${s}`);let o=i.readUInt32BE();if(o!==2)throw new he(`Unsupported dircache version: ${o}`);let l=i.readUInt32BE(),c=0;for(;!i.eof()&&ce.stages.length>1?e.stages.filter(r=>r):e)}*[Symbol.iterator](){for(let e of this.entries)yield e}insert({filepath:e,stats:r,oid:i,stage:n=0}){r||(r={ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,mode:0,uid:0,gid:0,size:0}),r=Vo(r);let s=Buffer.from(e),a={ctimeSeconds:r.ctimeSeconds,ctimeNanoseconds:r.ctimeNanoseconds,mtimeSeconds:r.mtimeSeconds,mtimeNanoseconds:r.mtimeNanoseconds,dev:r.dev,ino:r.ino,mode:r.mode||33188,uid:r.uid,gid:r.gid,size:r.size,path:e,oid:i,flags:{assumeValid:!1,extended:!1,stage:n,nameLength:s.length<4095?s.length:4095},stages:[]};this._addEntry(a),this._dirty=!0}delete({filepath:e}){if(this._entries.has(e))this._entries.delete(e);else for(let r of this._entries.keys())r.startsWith(e+"/")&&this._entries.delete(r);this._unmergedPaths.has(e)&&this._unmergedPaths.delete(e),this._dirty=!0}clear(){this._entries.clear(),this._dirty=!0}has({filepath:e}){return this._entries.has(e)}render(){return this.entries.map(e=>`${e.mode.toString(8)} ${e.oid} ${e.path}`).join(` -`)}static async _entryToBuffer(e){let r=Buffer.from(e.path),i=Math.ceil((62+r.length+1)/8)*8,n=Buffer.alloc(i),s=new mi(n),a=Vo(e);return s.writeUInt32BE(a.ctimeSeconds),s.writeUInt32BE(a.ctimeNanoseconds),s.writeUInt32BE(a.mtimeSeconds),s.writeUInt32BE(a.mtimeNanoseconds),s.writeUInt32BE(a.dev),s.writeUInt32BE(a.ino),s.writeUInt32BE(a.mode),s.writeUInt32BE(a.uid),s.writeUInt32BE(a.gid),s.writeUInt32BE(a.size),s.write(e.oid,20,"hex"),s.writeUInt16BE(O3(e)),s.write(e.path,r.length,"utf8"),n}async toObject(){let e=Buffer.alloc(12),r=new mi(e);r.write("DIRC",4,"utf8"),r.writeUInt32BE(2),r.writeUInt32BE(this.entriesFlat.length);let i=[];for(let o of this.entries)if(i.push(t._entryToBuffer(o)),o.stages.length>1)for(let l of o.stages)l&&l!==o&&i.push(t._entryToBuffer(l));i=await Promise.all(i);let n=Buffer.concat(i),s=Buffer.concat([e,n]),a=await qn(s);return Buffer.concat([s,Buffer.from(a,"hex")])}};function xd(t,e,r=!0,i=!0){let n=Vo(t),s=Vo(e);return r&&n.mode!==s.mode||n.mtimeSeconds!==s.mtimeSeconds||n.ctimeSeconds!==s.ctimeSeconds||n.uid!==s.uid||n.gid!==s.gid||i&&n.ino!==s.ino||n.size!==s.size}var Wg=null,Yg=Symbol("IndexCache");function M3(){return{map:new Map,stats:new Map}}async function D3(t,e,r){let[i,n]=await Promise.all([t.lstat(e),t.read(e)]),s=await nv.from(n);r.map.set(e,s),r.stats.set(e,i)}async function L3(t,e,r){let i=r.stats.get(e);if(i===void 0)return!0;if(i===null)return!1;let n=await t.lstat(e);return n===null?!1:xd(i,n)}var mt=class{static async acquire({fs:e,gitdir:r,cache:i,allowUnmerged:n=!0},s){i[Yg]||(i[Yg]=M3());let a=`${r}/index`;Wg===null&&(Wg=new Nc({maxPending:1/0}));let o,l=[];return await Wg.acquire(a,async()=>{let c=i[Yg];await L3(e,a,c)&&await D3(e,a,c);let u=c.map.get(a);if(l=u.unmergedPaths,l.length&&!n)throw new Uc(l);if(o=await s(u),u._dirty){let f=await u.toObject();await e.write(a,f),c.stats.set(a,await e.lstat(a)),u._dirty=!1}}),o}};function Sd(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e>-1&&(t=t.slice(e+1)),t}function xa(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e===-1?".":e===0?"/":t.slice(0,e)}function KE(t){let e=new Map,r=function(n){if(!e.has(n)){let s={type:"tree",fullpath:n,basename:Sd(n),metadata:{},children:[]};e.set(n,s),s.parent=r(xa(n)),s.parent&&s.parent!==s&&s.parent.children.push(s)}return e.get(n)},i=function(n,s){if(!e.has(n)){let a={type:"blob",fullpath:n,basename:Sd(n),metadata:s,parent:r(xa(n)),children:[]};a.parent&&a.parent.children.push(a),e.set(n,a)}return e.get(n)};r(".");for(let n of t)i(n.path,n);return e}function B3(t){switch(t){case 16384:return"tree";case 33188:return"blob";case 33261:return"blob";case 40960:return"blob";case 57344:return"commit"}throw new he(`Unexpected GitTree entry mode: ${t.toString(8)}`)}var sv=class{constructor({fs:e,gitdir:r,cache:i}){this.treePromise=mt.acquire({fs:e,gitdir:r,cache:i},async function(s){return KE(s.entries)});let n=this;this.ConstructEntry=class{constructor(a){this._fullpath=a,this._type=!1,this._mode=!1,this._stat=!1,this._oid=!1}async type(){return n.type(this)}async mode(){return n.mode(this)}async stat(){return n.stat(this)}async content(){return n.content(this)}async oid(){return n.oid(this)}}}async readdir(e){let r=e._fullpath,n=(await this.treePromise).get(r);if(!n||n.type==="blob")return null;if(n.type!=="tree")throw new Error(`ENOTDIR: not a directory, scandir '${r}'`);let s=n.children.map(a=>a.fullpath);return s.sort(Fd),s}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let i=(await this.treePromise).get(e._fullpath);if(!i)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let n=i.type==="tree"?{}:Vo(i.metadata);e._type=i.type==="tree"?"tree":B3(n.mode),e._mode=n.mode,i.type==="tree"?e._stat=void 0:e._stat=n}return e._stat}async content(e){}async oid(e){if(e._oid===!1){let i=(await this.treePromise).get(e._fullpath);e._oid=i.metadata.oid}return e._oid}},Id=Symbol("GitWalkSymbol");function Aa(){let t=Object.create(null);return Object.defineProperty(t,Id,{value:function({fs:e,gitdir:r,cache:i}){return new sv({fs:e,gitdir:r,cache:i})}}),Object.freeze(t),t}var He=class t extends Re{constructor(e){super(`Could not find ${e}.`),this.code=this.name=t.code,this.data={what:e}}};He.code="NotFoundError";var hr=class t extends Re{constructor(e,r,i,n){super(`Object ${e} ${n?`at ${n}`:""}was anticipated to be a ${i} but it is a ${r}.`),this.code=this.name=t.code,this.data={oid:e,actual:r,expected:i,filepath:n}}};hr.code="ObjectTypeError";var Ps=class t extends Re{constructor(e){super(`Expected a 40-char hex object id but saw "${e}".`),this.code=this.name=t.code,this.data={value:e}}};Ps.code="InvalidOidError";var Gc=class t extends Re{constructor(e){super(`Could not find a fetch refspec for remote "${e}". Make sure the config file has an entry like the following: +Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${e}`),this.code=this.name=t.code,this.data={message:e}}};he.code="InternalError";var zo=class t extends Re{constructor(e){super(`The filepath "${e}" contains unsafe character sequences`),this.code=this.name=t.code,this.data={filepath:e}}};zo.code="UnsafeFilepathError";var mn=class{constructor(e){this.buffer=e,this._start=0}eof(){return this._start>=this.buffer.length}tell(){return this._start}seek(e){this._start=e}slice(e){let r=this.buffer.slice(this._start,this._start+e);return this._start+=e,r}toString(e,r){let n=this.buffer.toString(e,this._start,this._start+r);return this._start+=r,n}write(e,r,n){let i=this.buffer.write(e,this._start,r,n);return this._start+=r,i}copy(e,r,n){let i=e.copy(this.buffer,this._start,r,n);return this._start+=i,i}readUInt8(){let e=this.buffer.readUInt8(this._start);return this._start+=1,e}writeUInt8(e){let r=this.buffer.writeUInt8(e,this._start);return this._start+=1,r}readUInt16BE(){let e=this.buffer.readUInt16BE(this._start);return this._start+=2,e}writeUInt16BE(e){let r=this.buffer.writeUInt16BE(e,this._start);return this._start+=2,r}readUInt32BE(){let e=this.buffer.readUInt32BE(this._start);return this._start+=4,e}writeUInt32BE(e){let r=this.buffer.writeUInt32BE(e,this._start);return this._start+=4,r}};function Nd(t,e){return-(te)}function nk(t,e){return Nd(t.path,e.path)}function ik(t){let e=t>0?t>>12:0;e!==4&&e!==8&&e!==10&&e!==14&&(e=8);let r=t&511;return r&73?r=493:r=420,e!==8&&(r=0),(e<<12)+r}var di=2**32;function OE(t,e,r,n){if(t!==void 0&&e!==void 0)return[t,e];r===void 0&&(r=n.valueOf());let i=Math.floor(r/1e3),s=(r-i*1e3)*1e6;return[i,s]}function Vo(t){let[e,r]=OE(t.ctimeSeconds,t.ctimeNanoseconds,t.ctimeMs,t.ctime),[n,i]=OE(t.mtimeSeconds,t.mtimeNanoseconds,t.mtimeMs,t.mtime);return{ctimeSeconds:e%di,ctimeNanoseconds:r%di,mtimeSeconds:n%di,mtimeNanoseconds:i%di,dev:t.dev%di,ino:t.ino%di,mode:ik(t.mode%di),uid:t.uid%di,gid:t.gid%di,size:t.size>-1?t.size%di:0}}function W3(t){let e="";for(let r of new Uint8Array(t))r<16&&(e+="0"),e+=r.toString(16);return e}var Qg=null;async function zi(t){return Qg===null&&(Qg=await V3()),Qg?sk(t):z3(t)}function z3(t){return new rk().update(t).digest("hex")}async function sk(t){let e=await crypto.subtle.digest("SHA-1",t);return W3(e)}async function V3(){try{return await sk(new Uint8Array([]))==="da39a3ee5e6b4b0d3255bfef95601890afd80709"}catch(t){}return!1}function Y3(t){return{assumeValid:!!(t&32768),extended:!!(t&16384),stage:(t&12288)>>12,nameLength:t&4095}}function X3(t){let e=t.flags;return e.extended=!1,e.nameLength=Math.min(Buffer.from(t.path).length,4095),(e.assumeValid?32768:0)+(e.extended?16384:0)+((e.stage&3)<<12)+(e.nameLength&4095)}var uv=class t{constructor(e,r){this._dirty=!1,this._unmergedPaths=r||new Set,this._entries=e||new Map}_addEntry(e){if(e.flags.stage===0)e.stages=[e],this._entries.set(e.path,e),this._unmergedPaths.delete(e.path);else{let r=this._entries.get(e.path);r||(this._entries.set(e.path,e),r=e),r.stages[e.flags.stage]=e,this._unmergedPaths.add(e.path)}}static async from(e){if(Buffer.isBuffer(e))return t.fromBuffer(e);if(e===null)return new t(null);throw new he("invalid type passed to GitIndex.from")}static async fromBuffer(e){if(e.length===0)throw new he("Index file is empty (.git/index)");let r=new t,n=new mn(e),i=n.toString("utf8",4);if(i!=="DIRC")throw new he(`Invalid dircache magic file number: ${i}`);let s=await zi(e.slice(0,-20)),a=e.slice(-20).toString("hex");if(a!==s)throw new he(`Invalid checksum in GitIndex buffer: expected ${a} but saw ${s}`);let o=n.readUInt32BE();if(o!==2)throw new he(`Unsupported dircache version: ${o}`);let l=n.readUInt32BE(),c=0;for(;!n.eof()&&ce.stages.length>1?e.stages.filter(r=>r):e)}*[Symbol.iterator](){for(let e of this.entries)yield e}insert({filepath:e,stats:r,oid:n,stage:i=0}){r||(r={ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,mode:0,uid:0,gid:0,size:0}),r=Vo(r);let s=Buffer.from(e),a={ctimeSeconds:r.ctimeSeconds,ctimeNanoseconds:r.ctimeNanoseconds,mtimeSeconds:r.mtimeSeconds,mtimeNanoseconds:r.mtimeNanoseconds,dev:r.dev,ino:r.ino,mode:r.mode||33188,uid:r.uid,gid:r.gid,size:r.size,path:e,oid:n,flags:{assumeValid:!1,extended:!1,stage:i,nameLength:s.length<4095?s.length:4095},stages:[]};this._addEntry(a),this._dirty=!0}delete({filepath:e}){if(this._entries.has(e))this._entries.delete(e);else for(let r of this._entries.keys())r.startsWith(e+"/")&&this._entries.delete(r);this._unmergedPaths.has(e)&&this._unmergedPaths.delete(e),this._dirty=!0}clear(){this._entries.clear(),this._dirty=!0}has({filepath:e}){return this._entries.has(e)}render(){return this.entries.map(e=>`${e.mode.toString(8)} ${e.oid} ${e.path}`).join(` +`)}static async _entryToBuffer(e){let r=Buffer.from(e.path),n=Math.ceil((62+r.length+1)/8)*8,i=Buffer.alloc(n),s=new mn(i),a=Vo(e);return s.writeUInt32BE(a.ctimeSeconds),s.writeUInt32BE(a.ctimeNanoseconds),s.writeUInt32BE(a.mtimeSeconds),s.writeUInt32BE(a.mtimeNanoseconds),s.writeUInt32BE(a.dev),s.writeUInt32BE(a.ino),s.writeUInt32BE(a.mode),s.writeUInt32BE(a.uid),s.writeUInt32BE(a.gid),s.writeUInt32BE(a.size),s.write(e.oid,20,"hex"),s.writeUInt16BE(X3(e)),s.write(e.path,r.length,"utf8"),i}async toObject(){let e=Buffer.alloc(12),r=new mn(e);r.write("DIRC",4,"utf8"),r.writeUInt32BE(2),r.writeUInt32BE(this.entriesFlat.length);let n=[];for(let o of this.entries)if(n.push(t._entryToBuffer(o)),o.stages.length>1)for(let l of o.stages)l&&l!==o&&n.push(t._entryToBuffer(l));n=await Promise.all(n);let i=Buffer.concat(n),s=Buffer.concat([e,i]),a=await zi(s);return Buffer.concat([s,Buffer.from(a,"hex")])}};function Td(t,e,r=!0,n=!0){let i=Vo(t),s=Vo(e);return r&&i.mode!==s.mode||i.mtimeSeconds!==s.mtimeSeconds||i.ctimeSeconds!==s.ctimeSeconds||i.uid!==s.uid||i.gid!==s.gid||n&&i.ino!==s.ino||i.size!==s.size}var Jg=null,ev=Symbol("IndexCache");function Z3(){return{map:new Map,stats:new Map}}async function K3(t,e,r){let[n,i]=await Promise.all([t.lstat(e),t.read(e)]),s=await uv.from(i);r.map.set(e,s),r.stats.set(e,n)}async function Q3(t,e,r){let n=r.stats.get(e);if(n===void 0)return!0;if(n===null)return!1;let i=await t.lstat(e);return i===null?!1:Td(n,i)}var ht=class{static async acquire({fs:e,gitdir:r,cache:n,allowUnmerged:i=!0},s){n[ev]||(n[ev]=Z3());let a=`${r}/index`;Jg===null&&(Jg=new Wc({maxPending:1/0}));let o,l=[];return await Jg.acquire(a,async()=>{let c=n[ev];await Q3(e,a,c)&&await K3(e,a,c);let u=c.map.get(a);if(l=u.unmergedPaths,l.length&&!i)throw new Vc(l);if(o=await s(u),u._dirty){let f=await u.toObject();await e.write(a,f),c.stats.set(a,await e.lstat(a)),u._dirty=!1}}),o}};function Pd(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e>-1&&(t=t.slice(e+1)),t}function Sa(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e===-1?".":e===0?"/":t.slice(0,e)}function ak(t){let e=new Map,r=function(i){if(!e.has(i)){let s={type:"tree",fullpath:i,basename:Pd(i),metadata:{},children:[]};e.set(i,s),s.parent=r(Sa(i)),s.parent&&s.parent!==s&&s.parent.children.push(s)}return e.get(i)},n=function(i,s){if(!e.has(i)){let a={type:"blob",fullpath:i,basename:Pd(i),metadata:s,parent:r(Sa(i)),children:[]};a.parent&&a.parent.children.push(a),e.set(i,a)}return e.get(i)};r(".");for(let i of t)n(i.path,i);return e}function J3(t){switch(t){case 16384:return"tree";case 33188:return"blob";case 33261:return"blob";case 40960:return"blob";case 57344:return"commit"}throw new he(`Unexpected GitTree entry mode: ${t.toString(8)}`)}var fv=class{constructor({fs:e,gitdir:r,cache:n}){this.treePromise=ht.acquire({fs:e,gitdir:r,cache:n},async function(s){return ak(s.entries)});let i=this;this.ConstructEntry=class{constructor(a){this._fullpath=a,this._type=!1,this._mode=!1,this._stat=!1,this._oid=!1}async type(){return i.type(this)}async mode(){return i.mode(this)}async stat(){return i.stat(this)}async content(){return i.content(this)}async oid(){return i.oid(this)}}}async readdir(e){let r=e._fullpath,i=(await this.treePromise).get(r);if(!i||i.type==="blob")return null;if(i.type!=="tree")throw new Error(`ENOTDIR: not a directory, scandir '${r}'`);let s=i.children.map(a=>a.fullpath);return s.sort(Nd),s}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let n=(await this.treePromise).get(e._fullpath);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let i=n.type==="tree"?{}:Vo(n.metadata);e._type=n.type==="tree"?"tree":J3(i.mode),e._mode=i.mode,n.type==="tree"?e._stat=void 0:e._stat=i}return e._stat}async content(e){}async oid(e){if(e._oid===!1){let n=(await this.treePromise).get(e._fullpath);e._oid=n.metadata.oid}return e._oid}},Bd=Symbol("GitWalkSymbol");function Ca(){let t=Object.create(null);return Object.defineProperty(t,Bd,{value:function({fs:e,gitdir:r,cache:n}){return new fv({fs:e,gitdir:r,cache:n})}}),Object.freeze(t),t}var Be=class t extends Re{constructor(e){super(`Could not find ${e}.`),this.code=this.name=t.code,this.data={what:e}}};Be.code="NotFoundError";var fr=class t extends Re{constructor(e,r,n,i){super(`Object ${e} ${i?`at ${i}`:""}was anticipated to be a ${n} but it is a ${r}.`),this.code=this.name=t.code,this.data={oid:e,actual:r,expected:n,filepath:i}}};fr.code="ObjectTypeError";var Rs=class t extends Re{constructor(e){super(`Expected a 40-char hex object id but saw "${e}".`),this.code=this.name=t.code,this.data={value:e}}};Rs.code="InvalidOidError";var Yc=class t extends Re{constructor(e){super(`Could not find a fetch refspec for remote "${e}". Make sure the config file has an entry like the following: [remote "${e}"] fetch = +refs/heads/*:refs/remotes/origin/* -`),this.code=this.name=t.code,this.data={remote:e}}};Gc.code="NoRefspecError";var Ed=class t{constructor(e){if(this.refs=new Map,this.parsedConfig=[],e){let r=null;this.parsedConfig=e.trim().split(` -`).map(i=>{if(/^\s*#/.test(i))return{line:i,comment:!0};let n=i.indexOf(" ");if(i.startsWith("^")){let s=i.slice(1);return this.refs.set(r+"^{}",s),{line:i,ref:r,peeled:s}}else{let s=i.slice(0,n);return r=i.slice(n+1),this.refs.set(r,s),{line:i,ref:r,oid:s}}})}return this}static from(e){return new t(e)}delete(e){this.parsedConfig=this.parsedConfig.filter(r=>r.ref!==e),this.refs.delete(e)}toString(){return this.parsedConfig.map(({line:e})=>e).join(` +`),this.code=this.name=t.code,this.data={remote:e}}};Yc.code="NoRefspecError";var Rd=class t{constructor(e){if(this.refs=new Map,this.parsedConfig=[],e){let r=null;this.parsedConfig=e.trim().split(` +`).map(n=>{if(/^\s*#/.test(n))return{line:n,comment:!0};let i=n.indexOf(" ");if(n.startsWith("^")){let s=n.slice(1);return this.refs.set(r+"^{}",s),{line:n,ref:r,peeled:s}}else{let s=n.slice(0,i);return r=n.slice(i+1),this.refs.set(r,s),{line:n,ref:r,oid:s}}})}return this}static from(e){return new t(e)}delete(e){this.parsedConfig=this.parsedConfig.filter(r=>r.ref!==e),this.refs.delete(e)}toString(){return this.parsedConfig.map(({line:e})=>e).join(` `)+` -`}},kd=class t{constructor({remotePath:e,localPath:r,force:i,matchPrefix:n}){Object.assign(this,{remotePath:e,localPath:r,force:i,matchPrefix:n})}static from(e){let[r,i,n,s,a]=e.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1),o=r==="+",l=n==="*";if(l!==(a==="*"))throw new he("Invalid refspec");return new t({remotePath:i,localPath:s,force:o,matchPrefix:l})}translate(e){if(this.matchPrefix){if(e.startsWith(this.remotePath))return this.localPath+e.replace(this.remotePath,"")}else if(e===this.remotePath)return this.localPath;return null}reverseTranslate(e){if(this.matchPrefix){if(e.startsWith(this.localPath))return this.remotePath+e.replace(this.localPath,"")}else if(e===this.localPath)return this.remotePath;return null}},av=class t{constructor(e=[]){this.rules=e}static from(e){let r=[];for(let i of e)r.push(kd.from(i));return new t(r)}add(e){let r=kd.from(e);this.rules.push(r)}translate(e){let r=[];for(let i of this.rules)for(let n of e){let s=i.translate(n);s&&r.push([n,s])}return r}translateOne(e){let r=null;for(let i of this.rules){let n=i.translate(e);n&&(r=n)}return r}localNamespaces(){return this.rules.filter(e=>e.matchPrefix).map(e=>e.localPath.replace(/\/$/,""))}};function N3(t,e){let r=t.replace(/\^\{\}$/,""),i=e.replace(/\^\{\}$/,""),n=-(ri);return n===0?t.endsWith("^{}")?1:-1:n}function H3(t,e){let r="",i=0,n=-1,s=0,a="\0";for(let o=0;o<=t.length;++o){if(o2){let l=r.lastIndexOf("/");l===-1?(r="",i=0):(r=r.slice(0,l),i=r.length-1-r.lastIndexOf("/")),n=o,s=0;continue}else if(r.length!==0){r="",i=0,n=o,s=0;continue}}e&&(r+=r.length>0?"/..":"..",i=2)}else r.length>0?r+="/"+t.slice(n+1,o):r=t.slice(n+1,o),i=o-n-1;n=o,s=0}else a==="."&&s!==-1?++s:s=-1}return r}function U3(t){if(!t.length)return".";let e=t[0]==="/",r=t.at(-1)==="/";return t=H3(t,!e),t.length?(r&&(t+="/"),e?`/${t}`:t):e?"/":r?"./":"."}function O(...t){if(t.length===0)return".";let e;for(let r=0;r0&&(e===void 0?e=i:e+="/"+i)}return e===void 0?".":U3(e)}var G3=t=>{if(typeof t=="number")return t;t=t.toLowerCase();let e=parseInt(t);return t.endsWith("k")&&(e*=1024),t.endsWith("m")&&(e*=1024*1024),t.endsWith("g")&&(e*=1024*1024*1024),e},Bc=t=>{if(typeof t=="boolean")return t;if(t=t.trim().toLowerCase(),t==="true"||t==="yes"||t==="on")return!0;if(t==="false"||t==="no"||t==="off")return!1;throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${t}`)},AE={core:{filemode:Bc,bare:Bc,logallrefupdates:Bc,symlinks:Bc,ignorecase:Bc,bigFileThreshold:G3}},j3=/^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/,q3=/^[A-Za-z0-9-.]+$/,z3=/^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/,V3=/^[A-Za-z][A-Za-z-]*$/,W3=/^(.*?)( *[#;].*)$/,Y3=t=>{let e=j3.exec(t);if(e!=null){let[r,i]=e.slice(1);return[r,i]}return null},X3=t=>{let e=z3.exec(t);if(e!=null){let[r,i="true"]=e.slice(1),n=Z3(i),s=K3(n);return[r,s]}return null},Z3=t=>{let e=W3.exec(t);if(e==null)return t;let[r,i]=e.slice(1);return TE(r)&&TE(i)?`${r}${i}`:r},TE=t=>(t.match(/(?:^|[^\\])"/g)||[]).length%2!==0,K3=t=>t.split("").reduce((e,r,i,n)=>{let s=r==='"'&&n[i-1]!=="\\",a=r==="\\"&&n[i+1]==='"';return s||a?e:e+r},""),CE=t=>t!=null?t.toLowerCase():null,ov=(t,e,r)=>[CE(t),e,CE(r)].filter(i=>i!=null).join("."),PE=t=>{let e=t.split("."),r=e.shift(),i=e.pop(),n=e.length?e.join("."):void 0;return{section:r,subsection:n,name:i,path:ov(r,n,i),sectionPath:ov(r,n,null),isSection:!!r}},Q3=(t,e)=>t.reduce((r,i,n)=>e(i)?n:r,-1),lv=class t{constructor(e){let r=null,i=null;this.parsedConfig=e?e.split(` -`).map(n=>{let s=null,a=null,o=n.trim(),l=Y3(o),c=l!=null;if(c)[r,i]=l;else{let f=X3(o);f!=null&&([s,a]=f)}let u=ov(r,i,s);return{line:n,isSection:c,section:r,subsection:i,name:s,value:a,path:u}}):[]}static from(e){return new t(e)}async get(e,r=!1){let i=PE(e).path,n=this.parsedConfig.filter(s=>s.path===i).map(({section:s,name:a,value:o})=>{let l=AE[s]&&AE[s][a];return l?l(o):o});return r?n:n.pop()}async getall(e){return this.get(e,!0)}async getSubsections(e){return this.parsedConfig.filter(r=>r.isSection&&r.section===e).map(r=>r.subsection)}async deleteSection(e,r){this.parsedConfig=this.parsedConfig.filter(i=>!(i.section===e&&i.subsection===r))}async append(e,r){return this.set(e,r,!0)}async set(e,r,i=!1){let{section:n,subsection:s,name:a,path:o,sectionPath:l,isSection:c}=PE(e),u=Q3(this.parsedConfig,f=>f.path===o);if(r==null)u!==-1&&this.parsedConfig.splice(u,1);else if(u!==-1){let f=this.parsedConfig[u],d=Object.assign({},f,{name:a,value:r,modified:!0});i?this.parsedConfig.splice(u+1,0,d):this.parsedConfig[u]=d}else{let f=this.parsedConfig.findIndex(h=>h.path===l),d={section:n,subsection:s,name:a,value:r,modified:!0,path:o};if(q3.test(n)&&V3.test(a))if(f>=0)this.parsedConfig.splice(f+1,0,d);else{let h={isSection:c,section:n,subsection:s,modified:!0,path:l};this.parsedConfig.push(h,d)}}}toString(){return this.parsedConfig.map(({line:e,section:r,subsection:i,name:n,value:s,modified:a=!1})=>a?n!=null&&s!=null?typeof s=="string"&&/[#;]/.test(s)?` ${n} = "${s}"`:` ${n} = ${s}`:i!=null?`[${r} "${i}"]`:`[${r}]`:e).join(` -`)}},ct=class{static async get({fs:e,gitdir:r}){let i=await e.read(`${r}/config`,{encoding:"utf8"});return lv.from(i)}static async save({fs:e,gitdir:r,config:i}){await e.write(`${r}/config`,i.toString(),{encoding:"utf8"})}},bd=t=>[`${t}`,`refs/${t}`,`refs/tags/${t}`,`refs/heads/${t}`,`refs/remotes/${t}`,`refs/remotes/${t}/HEAD`],J3=["config","description","index","shallow","commondir"],Xg;async function Ts(t,e){return Xg===void 0&&(Xg=new Nc),Xg.acquire(t,e)}var W=class t{static async updateRemoteRefs({fs:e,gitdir:r,remote:i,refs:n,symrefs:s,tags:a,refspecs:o=void 0,prune:l=!1,pruneTags:c=!1}){for(let v of n.values())if(!v.match(/[0-9a-f]{40}/))throw new Ps(v);let u=await ct.get({fs:e,gitdir:r});if(!o){if(o=await u.getall(`remote.${i}.fetch`),o.length===0)throw new Gc(i);o.unshift(`+HEAD:refs/remotes/${i}/HEAD`)}let f=av.from(o),d=new Map;if(c){let v=await t.listRefs({fs:e,gitdir:r,filepath:"refs/tags"});await t.deleteRefs({fs:e,gitdir:r,refs:v.map(w=>`refs/tags/${w}`)})}if(a){for(let v of n.keys())if(v.startsWith("refs/tags")&&!v.endsWith("^{}")&&!await t.exists({fs:e,gitdir:r,ref:v})){let w=n.get(v);d.set(v,w)}}let h=f.translate([...n.keys()]);for(let[v,w]of h){let b=n.get(v);d.set(w,b)}let m=f.translate([...s.keys()]);for(let[v,w]of m){let b=s.get(v),k=f.translateOne(b);k&&d.set(w,`ref: ${k}`)}let g=[];if(l){for(let v of f.localNamespaces()){let w=(await t.listRefs({fs:e,gitdir:r,filepath:v})).map(b=>`${v}/${b}`);for(let b of w)d.has(b)||g.push(b)}g.length>0&&await t.deleteRefs({fs:e,gitdir:r,refs:g})}for(let[v,w]of d)await Ts(v,async()=>e.write(O(r,v),`${w.trim()} -`,"utf8"));return{pruned:g}}static async writeRef({fs:e,gitdir:r,ref:i,value:n}){if(!n.match(/[0-9a-f]{40}/))throw new Ps(n);await Ts(i,async()=>e.write(O(r,i),`${n.trim()} -`,"utf8"))}static async writeSymbolicRef({fs:e,gitdir:r,ref:i,value:n}){await Ts(i,async()=>e.write(O(r,i),`ref: ${n.trim()} -`,"utf8"))}static async deleteRef({fs:e,gitdir:r,ref:i}){return t.deleteRefs({fs:e,gitdir:r,refs:[i]})}static async deleteRefs({fs:e,gitdir:r,refs:i}){await Promise.all(i.map(o=>e.rm(O(r,o))));let n=await Ts("packed-refs",async()=>e.read(`${r}/packed-refs`,{encoding:"utf8"})),s=Ed.from(n),a=s.refs.size;for(let o of i)s.refs.has(o)&&s.delete(o);s.refs.sizee.write(`${r}/packed-refs`,n,{encoding:"utf8"})))}static async resolve({fs:e,gitdir:r,ref:i,depth:n=void 0}){if(n!==void 0&&(n--,n===-1))return i;if(i.startsWith("ref: "))return i=i.slice(5),t.resolve({fs:e,gitdir:r,ref:i,depth:n});if(i.length===40&&/[0-9a-f]{40}/.test(i))return i;let s=await t.packedRefs({fs:e,gitdir:r}),a=bd(i).filter(o=>!J3.includes(o));for(let o of a){let l=await Ts(o,async()=>await e.read(`${r}/${o}`,{encoding:"utf8"})||s.get(o));if(l)return t.resolve({fs:e,gitdir:r,ref:l.trim(),depth:n})}throw new He(i)}static async exists({fs:e,gitdir:r,ref:i}){try{return await t.expand({fs:e,gitdir:r,ref:i}),!0}catch(n){return!1}}static async expand({fs:e,gitdir:r,ref:i}){if(i.length===40&&/[0-9a-f]{40}/.test(i))return i;let n=await t.packedRefs({fs:e,gitdir:r}),s=bd(i);for(let a of s)if(await Ts(a,async()=>e.exists(`${r}/${a}`))||n.has(a))return a;throw new He(i)}static async expandAgainstMap({ref:e,map:r}){let i=bd(e);for(let n of i)if(await r.has(n))return n;throw new He(e)}static resolveAgainstMap({ref:e,fullref:r=e,depth:i=void 0,map:n}){if(i!==void 0&&(i--,i===-1))return{fullref:r,oid:e};if(e.startsWith("ref: "))return e=e.slice(5),t.resolveAgainstMap({ref:e,fullref:r,depth:i,map:n});if(e.length===40&&/[0-9a-f]{40}/.test(e))return{fullref:r,oid:e};let s=bd(e);for(let a of s){let o=n.get(a);if(o)return t.resolveAgainstMap({ref:o.trim(),fullref:a,depth:i,map:n})}throw new He(e)}static async packedRefs({fs:e,gitdir:r}){let i=await Ts("packed-refs",async()=>e.read(`${r}/packed-refs`,{encoding:"utf8"}));return Ed.from(i).refs}static async listRefs({fs:e,gitdir:r,filepath:i}){let n=t.packedRefs({fs:e,gitdir:r}),s=null;try{s=await e.readdirDeep(`${r}/${i}`),s=s.map(a=>a.replace(`${r}/${i}/`,""))}catch(a){s=[]}for(let a of(await n).keys())a.startsWith(i)&&(a=a.replace(i+"/",""),s.includes(a)||s.push(a));return s.sort(N3),s}static async listBranches({fs:e,gitdir:r,remote:i}){return i?t.listRefs({fs:e,gitdir:r,filepath:`refs/remotes/${i}`}):t.listRefs({fs:e,gitdir:r,filepath:"refs/heads"})}static async listTags({fs:e,gitdir:r}){return(await t.listRefs({fs:e,gitdir:r,filepath:"refs/tags"})).filter(n=>!n.endsWith("^{}"))}};function e8(t,e){return Fd(RE(t),RE(e))}function RE(t){return t.mode==="040000"?t.path+"/":t.path}function QE(t){switch(t){case"040000":return"tree";case"100644":return"blob";case"100755":return"blob";case"120000":return"blob";case"160000":return"commit"}throw new he(`Unexpected GitTree entry mode: ${t}`)}function t8(t){let e=[],r=0;for(;r`${e.mode} ${e.type} ${e.oid} ${e.path}`).join(` -`)}toObject(){let e=[...this._entries];return e.sort(e8),Buffer.concat(e.map(r=>{let i=Buffer.from(r.mode.replace(/^0/,"")),n=Buffer.from(" "),s=Buffer.from(r.path,"utf8"),a=Buffer.from([0]),o=Buffer.from(r.oid,"hex");return Buffer.concat([i,n,s,a,o])}))}entries(){return this._entries}*[Symbol.iterator](){for(let e of this._entries)yield e}},Rs=class{static wrap({type:e,object:r}){let i=`${e} ${r.length}\0`,n=i.length,s=n+r.length,a=new Uint8Array(s);for(let o=0;o>=1,n+=8;return i}function IE(t,e){let r=t.readUInt8(),i=128,n=15,s=112;if(r&i){let a=FE(t,r&n,4),o=FE(t,(r&s)>>4,3);return o===0&&(o=65536),e.slice(a,a+o)}else return t.slice(r)}function s8(t){let e=[t];return{next(){return Promise.resolve({done:e.length===0,value:e.pop()})},return(){return e=[],{}},[Symbol.asyncIterator](){return this}}}function ek(t){return t[Symbol.asyncIterator]?t[Symbol.asyncIterator]():t[Symbol.iterator]?t[Symbol.iterator]():t.next?t:s8(t)}var Ad=class{constructor(e){if(typeof Buffer=="undefined")throw new Error("Missing Buffer dependency");this.stream=ek(e),this.buffer=null,this.cursor=0,this.undoCursor=0,this.started=!1,this._ended=!1,this._discardedBytes=0}eof(){return this._ended&&this.cursor===this.buffer.length}tell(){return this._discardedBytes+this.cursor}async byte(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(1),this.buffer[this.undoCursor]}async chunk(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(this.buffer.length),this.buffer.slice(this.undoCursor,this.cursor)}async read(e){if(!this.eof())return this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e),this.buffer.slice(this.undoCursor,this.cursor)}async skip(e){this.eof()||(this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e))}async undo(){this.cursor=this.undoCursor}async _next(){this.started=!0;let{done:e,value:r}=await this.stream.next();return e&&(this._ended=!0,!r)?Buffer.alloc(0):(r&&(r=Buffer.from(r)),r)}_trim(){this.buffer=this.buffer.slice(this.undoCursor),this.cursor-=this.undoCursor,this._discardedBytes+=this.undoCursor,this.undoCursor=0}_moveCursor(e){this.undoCursor=this.cursor,this.cursor+=e,this.cursor>this.buffer.length&&(this.cursor=this.buffer.length)}async _accumulate(e){if(this._ended)return;let r=[this.buffer];for(;this.cursor+e>a8(r);){let i=await this._next();if(this._ended)break;r.push(i)}this.buffer=Buffer.concat(r)}async _loadnext(){this._discardedBytes+=this.buffer.length,this.undoCursor=0,this.cursor=0,this.buffer=await this._next()}async _init(){this.buffer=await this._next()}};function a8(t){return t.reduce((e,r)=>e+r.length,0)}async function o8(t,e){let r=new Ad(t),i=await r.read(4);if(i=i.toString("utf8"),i!=="PACK")throw new he(`Invalid PACK header '${i}'`);let n=await r.read(4);if(n=n.readUInt32BE(0),n!==2)throw new he(`Invalid packfile version: ${n}`);let s=await r.read(4);if(s=s.readUInt32BE(0),!(s<1))for(;!r.eof()&&s--;){let a=r.tell(),{type:o,length:l,ofs:c,reference:u}=await l8(r),f=new gv.Inflate;for(;!f.result;){let d=await r.chunk();if(!d)break;if(f.push(d,!1),f.err)throw new he(`Pako error: ${f.msg}`);if(f.result){if(f.result.length!==l)throw new he("Inflated object size is different from that stated in packfile.");await r.undo(),await r.read(d.length-f.strm.avail_in);let h=r.tell();await e({data:f.result,type:o,num:s,offset:a,end:h,reference:u,ofs:c})}}}}async function l8(t){let e=await t.byte(),r=e>>4&7,i=e&15;if(e&128){let a=4;do e=await t.byte(),i|=(e&127)<n+1<<7|s,-1)}function d8(t,e){let r=e,i=4,n=null;do n=t.readUInt8(),r|=(n&127)<2048*1024*1024)throw new he("To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.");i.seek(i.tell()+4*255);let a=i.readUInt32BE(),o=[];for(let u=0;u{u===null&&(u=x);let E=Math.floor((u-x)*100/u);E!==f&&i&&await i({phase:"Receiving objects",loaded:u-x,total:u}),f=E,w=n[w],["commit","tree","blob","tag"].includes(w)?s[k]={type:w,offset:k}:w==="ofs-delta"?s[k]={type:w,offset:k}:w==="ref-delta"&&(s[k]={type:w,offset:k})});let d=Object.keys(s).map(Number);for(let[v,w]of d.entries()){let b=v+1===d.length?e.byteLength-20:d[v+1],k=s[w],x=T3.buf(e.slice(w,b))>>>0;k.end=b,k.crc=x}let h=new t({pack:Promise.resolve(e),packfileSha:a,crcs:l,hashes:o,offsets:c,getExternalRefDelta:r});f=null;let m=0,g=[0,0,0,0,0,0,0,0,0,0,0,0];for(let v in s){v=Number(v);let w=Math.floor(m*100/u);w!==f&&i&&await i({phase:"Resolving deltas",loaded:m,total:u}),m++,f=w;let b=s[v];if(!b.oid)try{h.readDepth=0,h.externalReadDepth=0;let{type:k,object:x}=await h.readSlice({start:v});g[h.readDepth]+=1;let E=await qn(Rs.wrap({type:k,object:x}));b.oid=E,o.push(E),c.set(E,v),l[E]=b.crc}catch(k){continue}}return o.sort(),h}async toBuffer(){let e=[],r=(c,u)=>{e.push(Buffer.from(c,u))};r("ff744f63","hex"),r("00000002","hex");let i=new mi(Buffer.alloc(256*4));for(let c=0;c<256;c++){let u=0;for(let f of this.hashes)parseInt(f.slice(0,2),16)<=c&&u++;i.writeUInt32BE(u)}e.push(i.buffer);for(let c of this.hashes)r(c,"hex");let n=new mi(Buffer.alloc(this.hashes.length*4));for(let c of this.hashes)n.writeUInt32BE(this.crcs[c]);e.push(n.buffer);let s=new mi(Buffer.alloc(this.hashes.length*4));for(let c of this.hashes)s.writeUInt32BE(this.offsets.get(c));e.push(s.buffer),r(this.packfileSha,"hex");let a=Buffer.concat(e),o=await qn(a),l=Buffer.alloc(20);return l.write(o,"hex"),Buffer.concat([a,l])}async load({pack:e}){this.pack=e}async unload(){this.pack=null}async read({oid:e}){if(!this.offsets.get(e)){if(this.getExternalRefDelta)return this.externalReadDepth++,this.getExternalRefDelta(e);throw new he(`Could not read object ${e} from packfile`)}let r=this.offsets.get(e);return this.readSlice({start:r})}async readSlice({start:e}){if(this.offsetCache[e])return Object.assign({},this.offsetCache[e]);this.readDepth++;let r={16:"commit",32:"tree",48:"blob",64:"tag",96:"ofs_delta",112:"ref_delta"};if(!this.pack)throw new he("Tried to read from a GitPackIndex with no packfile loaded into memory");let i=(await this.pack).slice(e),n=new mi(i),s=n.readUInt8(),a=s&112,o=r[a];if(o===void 0)throw new he("Unrecognized type: 0b"+a.toString(2));let l=s&15,c=l;s&128&&(c=d8(n,l));let f=null,d=null;if(o==="ofs_delta"){let m=f8(n),g=e-m;({object:f,type:o}=await this.readSlice({start:g}))}if(o==="ref_delta"){let m=n.slice(20).toString("hex");({object:f,type:o}=await this.read({oid:m}))}let h=i.slice(n.tell());if(d=Buffer.from(await tk(h)),d.byteLength!==c)throw new he(`Packfile told us object would have length ${c} but it had length ${d.byteLength}`);return f&&(d=Buffer.from(n8(d,f))),this.readDepth>3&&(this.offsetCache[e]={type:o,object:d}),{type:o,format:"content",object:d}}},_d=Symbol("PackfileCache");async function h8({fs:t,filename:e,getExternalRefDelta:r,emitter:i,emitterPrefix:n}){let s=await t.read(e);return jc.fromIdx({idx:s,getExternalRefDelta:r})}function vv({fs:t,cache:e,filename:r,getExternalRefDelta:i,emitter:n,emitterPrefix:s}){e[_d]||(e[_d]=new Map);let a=e[_d].get(r);return a||(a=h8({fs:t,filename:r,getExternalRefDelta:i,emitter:n,emitterPrefix:s}),e[_d].set(r,a)),a}async function p8({fs:t,cache:e,gitdir:r,oid:i,format:n="content",getExternalRefDelta:s}){let a=await t.readdir(O(r,"objects/pack"));a=a.filter(o=>o.endsWith(".idx"));for(let o of a){let l=`${r}/objects/pack/${o}`,c=await vv({fs:t,cache:e,filename:l,getExternalRefDelta:s});if(c.error)throw new he(c.error);if(c.offsets.has(i)){if(!c.pack){let f=l.replace(/idx$/,"pack");c.pack=t.read(f)}let u=await c.read({oid:i,getExternalRefDelta:s});return u.format="content",u.source=`objects/pack/${o.replace(/idx$/,"pack")}`,u}}return null}async function Ke({fs:t,cache:e,gitdir:r,oid:i,format:n="content"}){let s=u=>Ke({fs:t,cache:e,gitdir:r,oid:u}),a;if(i==="4b825dc642cb6eb9a060e54bf8d69288fbee4904"&&(a={format:"wrapped",object:Buffer.from("tree 0\0")}),a||(a=await JE({fs:t,gitdir:r,oid:i})),!a){if(a=await p8({fs:t,cache:e,gitdir:r,oid:i,getExternalRefDelta:s}),!a)throw new He(i);return a}if(n==="deflated"||(a.format==="deflated"&&(a.object=Buffer.from(await tk(a.object)),a.format="wrapped"),n==="wrapped"))return a;let o=await qn(a.object);if(o!==i)throw new he(`SHA check failed! Expected ${i}, computed ${o}`);let{object:l,type:c}=Rs.unwrap(a.object);if(a.type=c,a.object=l,a.format="content",n==="content")return a;throw new he(`invalid requested format "${n}"`)}var $i=class t extends Re{constructor(e,r,i=!0){super(`Failed to create ${e} at ${r} because it already exists.${i?` (Hint: use 'force: true' parameter to overwrite existing ${e}.)`:""}`),this.code=this.name=t.code,this.data={noun:e,where:r,canForce:i}}};$i.code="AlreadyExistsError";var qc=class t extends Re{constructor(e,r,i){super(`Found multiple ${e} matching "${r}" (${i.join(", ")}). Use a longer abbreviation length to disambiguate them.`),this.code=this.name=t.code,this.data={nouns:e,short:r,matches:i}}};qc.code="AmbiguousError";var zc=class t extends Re{constructor(e){super(`Your local changes to the following files would be overwritten by checkout: ${e.join(", ")}`),this.code=this.name=t.code,this.data={filepaths:e}}};zc.code="CheckoutConflictError";var Vc=class t extends Re{constructor(e,r){super(`Failed to checkout "${e}" because commit ${r} is not available locally. Do a git fetch to make the branch available locally.`),this.code=this.name=t.code,this.data={ref:e,oid:r}}};Vc.code="CommitNotFetchedError";var Wc=class t extends Re{constructor(){super("Empty response from git server."),this.code=this.name=t.code,this.data={}}};Wc.code="EmptyServerResponseError";var Yc=class t extends Re{constructor(){super("A simple fast-forward merge was not possible."),this.code=this.name=t.code,this.data={}}};Yc.code="FastForwardError";var Xc=class t extends Re{constructor(e,r){super(`One or more branches were not updated: ${e}`),this.code=this.name=t.code,this.data={prettyDetails:e,result:r}}};Xc.code="GitPushError";var Wo=class t extends Re{constructor(e,r,i){super(`HTTP Error: ${e} ${r}`),this.code=this.name=t.code,this.data={statusCode:e,statusMessage:r,response:i}}};Wo.code="HttpError";var $s=class t extends Re{constructor(e){let r="invalid filepath";e==="leading-slash"||e==="trailing-slash"?r='"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.':e==="directory"&&(r='"filepath" should not be a directory.'),super(r),this.code=this.name=t.code,this.data={reason:e}}};$s.code="InvalidFilepathError";var Fi=class t extends Re{constructor(e,r){super(`"${e}" would be an invalid git reference. (Hint: a valid alternative would be "${r}".)`),this.code=this.name=t.code,this.data={ref:e,suggestion:r}}};Fi.code="InvalidRefNameError";var Zc=class t extends Re{constructor(e){super(`Maximum search depth of ${e} exceeded.`),this.code=this.name=t.code,this.data={depth:e}}};Zc.code="MaxDepthError";var Yo=class t extends Re{constructor(){super("Merges with conflicts are not supported yet."),this.code=this.name=t.code,this.data={}}};Yo.code="MergeNotSupportedError";var Xo=class t extends Re{constructor(e,r,i,n){super(`Automatic merge failed with one or more merge conflicts in the following files: ${e.toString()}. Fix conflicts then commit the result.`),this.code=this.name=t.code,this.data={filepaths:e,bothModified:r,deleteByUs:i,deleteByTheirs:n}}};Xo.code="MergeConflictError";var Jt=class t extends Re{constructor(e){super(`No name was provided for ${e} in the argument or in the .git/config file.`),this.code=this.name=t.code,this.data={role:e}}};Jt.code="MissingNameError";var Sr=class t extends Re{constructor(e){super(`The function requires a "${e}" parameter but none was provided.`),this.code=this.name=t.code,this.data={parameter:e}}};Sr.code="MissingParameterError";var Kc=class t extends Re{constructor(e){super('There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more'),this.code=this.name=t.code,this.data={errors:e},this.errors=e}};Kc.code="MultipleGitError";var Sa=class t extends Re{constructor(e,r){super(`Expected "${e}" but received "${r}".`),this.code=this.name=t.code,this.data={expected:e,actual:r}}};Sa.code="ParseError";var Zo=class t extends Re{constructor(e){let r="";e==="not-fast-forward"?r=" because it was not a simple fast-forward":e==="tag-exists"&&(r=" because tag already exists"),super(`Push rejected${r}. Use "force: true" to override.`),this.code=this.name=t.code,this.data={reason:e}}};Zo.code="PushRejectedError";var Cs=class t extends Re{constructor(e,r){super(`Remote does not support the "${e}" so the "${r}" parameter cannot be used.`),this.code=this.name=t.code,this.data={capability:e,parameter:r}}};Cs.code="RemoteCapabilityError";var Qc=class t extends Re{constructor(e,r){super(`Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${e}`),this.code=this.name=t.code,this.data={preview:e,response:r}}};Qc.code="SmartHttpError";var Jc=class t extends Re{constructor(e,r,i){super(`Git remote "${e}" uses an unrecognized transport protocol: "${r}"`),this.code=this.name=t.code,this.data={url:e,transport:r,suggestion:i}}};Jc.code="UnknownTransportError";var eu=class t extends Re{constructor(e){super(`Cannot parse remote URL: "${e}"`),this.code=this.name=t.code,this.data={url:e}}};eu.code="UrlParseError";var Ko=class t extends Re{constructor(){super("The operation was canceled."),this.code=this.name=t.code,this.data={}}};Ko.code="UserCanceledError";var tu=class t extends Re{constructor(e){super(`Could not merge index: Entry for '${e}' is not up to date. Either reset the index entry to HEAD, or stage your unstaged changes.`),this.code=this.name=t.code,this.data={filepath:e}}};tu.code="IndexResetError";var ru=class t extends Re{constructor(e){super(`"${e}" does not point to any commit. You're maybe working on a repository with no commits yet. `),this.code=this.name=t.code,this.data={ref:e}}};ru.code="NoCommitError";var rk=Object.freeze({__proto__:null,AlreadyExistsError:$i,AmbiguousError:qc,CheckoutConflictError:zc,CommitNotFetchedError:Vc,EmptyServerResponseError:Wc,FastForwardError:Yc,GitPushError:Xc,HttpError:Wo,InternalError:he,InvalidFilepathError:$s,InvalidOidError:Ps,InvalidRefNameError:Fi,MaxDepthError:Zc,MergeNotSupportedError:Yo,MergeConflictError:Xo,MissingNameError:Jt,MissingParameterError:Sr,MultipleGitError:Kc,NoRefspecError:Gc,NotFoundError:He,ObjectTypeError:hr,ParseError:Sa,PushRejectedError:Zo,RemoteCapabilityError:Cs,SmartHttpError:Qc,UnknownTransportError:Jc,UnsafeFilepathError:zo,UrlParseError:eu,UserCanceledError:Ko,UnmergedPathsError:Uc,IndexResetError:tu,NoCommitError:ru});function cv({name:t,email:e,timestamp:r,timezoneOffset:i}){return i=m8(i),`${t} <${e}> ${r} ${i}`}function m8(t){let e=g8(v8(t));t=Math.abs(t);let r=Math.floor(t/60);t-=r*60;let i=String(r),n=String(t);return i.length<2&&(i="0"+i),n.length<2&&(n="0"+n),(e===-1?"-":"+")+i+n}function g8(t){return Math.sign(t)||(Object.is(t,-0)?-1:1)}function v8(t){return t===0?t:-t}function jn(t){return t=t.replace(/\r/g,""),t=t.replace(/^\n+/,""),t=t.replace(/\n+$/,"")+` -`,t}function Td(t){let[,e,r,i,n]=t.match(/^(.*) <(.*)> (.*) (.*)$/);return{name:e,email:r,timestamp:Number(i),timezoneOffset:w8(n)}}function w8(t){let[,e,r,i]=t.match(/(\+|-)(\d\d)(\d\d)/);return i=(e==="+"?1:-1)*(Number(r)*60+Number(i)),y8(i)}function y8(t){return t===0?t:-t}var Kr=class t{constructor(e){if(typeof e=="string")this._tag=e;else if(Buffer.isBuffer(e))this._tag=e.toString("utf8");else if(typeof e=="object")this._tag=t.render(e);else throw new he("invalid type passed to GitAnnotatedTag constructor")}static from(e){return new t(e)}static render(e){return`object ${e.object} +`}},$d=class t{constructor({remotePath:e,localPath:r,force:n,matchPrefix:i}){Object.assign(this,{remotePath:e,localPath:r,force:n,matchPrefix:i})}static from(e){let[r,n,i,s,a]=e.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1),o=r==="+",l=i==="*";if(l!==(a==="*"))throw new he("Invalid refspec");return new t({remotePath:n,localPath:s,force:o,matchPrefix:l})}translate(e){if(this.matchPrefix){if(e.startsWith(this.remotePath))return this.localPath+e.replace(this.remotePath,"")}else if(e===this.remotePath)return this.localPath;return null}reverseTranslate(e){if(this.matchPrefix){if(e.startsWith(this.localPath))return this.remotePath+e.replace(this.localPath,"")}else if(e===this.localPath)return this.remotePath;return null}},dv=class t{constructor(e=[]){this.rules=e}static from(e){let r=[];for(let n of e)r.push($d.from(n));return new t(r)}add(e){let r=$d.from(e);this.rules.push(r)}translate(e){let r=[];for(let n of this.rules)for(let i of e){let s=n.translate(i);s&&r.push([i,s])}return r}translateOne(e){let r=null;for(let n of this.rules){let i=n.translate(e);i&&(r=i)}return r}localNamespaces(){return this.rules.filter(e=>e.matchPrefix).map(e=>e.localPath.replace(/\/$/,""))}};function e8(t,e){let r=t.replace(/\^\{\}$/,""),n=e.replace(/\^\{\}$/,""),i=-(rn);return i===0?t.endsWith("^{}")?1:-1:i}function t8(t,e){let r="",n=0,i=-1,s=0,a="\0";for(let o=0;o<=t.length;++o){if(o2){let l=r.lastIndexOf("/");l===-1?(r="",n=0):(r=r.slice(0,l),n=r.length-1-r.lastIndexOf("/")),i=o,s=0;continue}else if(r.length!==0){r="",n=0,i=o,s=0;continue}}e&&(r+=r.length>0?"/..":"..",n=2)}else r.length>0?r+="/"+t.slice(i+1,o):r=t.slice(i+1,o),n=o-i-1;i=o,s=0}else a==="."&&s!==-1?++s:s=-1}return r}function r8(t){if(!t.length)return".";let e=t[0]==="/",r=t.at(-1)==="/";return t=t8(t,!e),t.length?(r&&(t+="/"),e?`/${t}`:t):e?"/":r?"./":"."}function D(...t){if(t.length===0)return".";let e;for(let r=0;r0&&(e===void 0?e=n:e+="/"+n)}return e===void 0?".":r8(e)}var n8=t=>{if(typeof t=="number")return t;t=t.toLowerCase();let e=parseInt(t);return t.endsWith("k")&&(e*=1024),t.endsWith("m")&&(e*=1024*1024),t.endsWith("g")&&(e*=1024*1024*1024),e},qc=t=>{if(typeof t=="boolean")return t;if(t=t.trim().toLowerCase(),t==="true"||t==="yes"||t==="on")return!0;if(t==="false"||t==="no"||t==="off")return!1;throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${t}`)},ME={core:{filemode:qc,bare:qc,logallrefupdates:qc,symlinks:qc,ignorecase:qc,bigFileThreshold:n8}},i8=/^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/,s8=/^[A-Za-z0-9-.]+$/,a8=/^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/,o8=/^[A-Za-z][A-Za-z-]*$/,l8=/^(.*?)( *[#;].*)$/,c8=t=>{let e=i8.exec(t);if(e!=null){let[r,n]=e.slice(1);return[r,n]}return null},u8=t=>{let e=a8.exec(t);if(e!=null){let[r,n="true"]=e.slice(1),i=f8(n),s=d8(i);return[r,s]}return null},f8=t=>{let e=l8.exec(t);if(e==null)return t;let[r,n]=e.slice(1);return DE(r)&&DE(n)?`${r}${n}`:r},DE=t=>(t.match(/(?:^|[^\\])"/g)||[]).length%2!==0,d8=t=>t.split("").reduce((e,r,n,i)=>{let s=r==='"'&&i[n-1]!=="\\",a=r==="\\"&&i[n+1]==='"';return s||a?e:e+r},""),LE=t=>t!=null?t.toLowerCase():null,hv=(t,e,r)=>[LE(t),e,LE(r)].filter(n=>n!=null).join("."),NE=t=>{let e=t.split("."),r=e.shift(),n=e.pop(),i=e.length?e.join("."):void 0;return{section:r,subsection:i,name:n,path:hv(r,i,n),sectionPath:hv(r,i,null),isSection:!!r}},h8=(t,e)=>t.reduce((r,n,i)=>e(n)?i:r,-1),pv=class t{constructor(e){let r=null,n=null;this.parsedConfig=e?e.split(` +`).map(i=>{let s=null,a=null,o=i.trim(),l=c8(o),c=l!=null;if(c)[r,n]=l;else{let f=u8(o);f!=null&&([s,a]=f)}let u=hv(r,n,s);return{line:i,isSection:c,section:r,subsection:n,name:s,value:a,path:u}}):[]}static from(e){return new t(e)}async get(e,r=!1){let n=NE(e).path,i=this.parsedConfig.filter(s=>s.path===n).map(({section:s,name:a,value:o})=>{let l=ME[s]&&ME[s][a];return l?l(o):o});return r?i:i.pop()}async getall(e){return this.get(e,!0)}async getSubsections(e){return this.parsedConfig.filter(r=>r.isSection&&r.section===e).map(r=>r.subsection)}async deleteSection(e,r){this.parsedConfig=this.parsedConfig.filter(n=>!(n.section===e&&n.subsection===r))}async append(e,r){return this.set(e,r,!0)}async set(e,r,n=!1){let{section:i,subsection:s,name:a,path:o,sectionPath:l,isSection:c}=NE(e),u=h8(this.parsedConfig,f=>f.path===o);if(r==null)u!==-1&&this.parsedConfig.splice(u,1);else if(u!==-1){let f=this.parsedConfig[u],d=Object.assign({},f,{name:a,value:r,modified:!0});n?this.parsedConfig.splice(u+1,0,d):this.parsedConfig[u]=d}else{let f=this.parsedConfig.findIndex(h=>h.path===l),d={section:i,subsection:s,name:a,value:r,modified:!0,path:o};if(s8.test(i)&&o8.test(a))if(f>=0)this.parsedConfig.splice(f+1,0,d);else{let h={isSection:c,section:i,subsection:s,modified:!0,path:l};this.parsedConfig.push(h,d)}}}toString(){return this.parsedConfig.map(({line:e,section:r,subsection:n,name:i,value:s,modified:a=!1})=>a?i!=null&&s!=null?typeof s=="string"&&/[#;]/.test(s)?` ${i} = "${s}"`:` ${i} = ${s}`:n!=null?`[${r} "${n}"]`:`[${r}]`:e).join(` +`)}},lt=class{static async get({fs:e,gitdir:r}){let n=await e.read(`${r}/config`,{encoding:"utf8"});return pv.from(n)}static async save({fs:e,gitdir:r,config:n}){await e.write(`${r}/config`,n.toString(),{encoding:"utf8"})}},Ad=t=>[`${t}`,`refs/${t}`,`refs/tags/${t}`,`refs/heads/${t}`,`refs/remotes/${t}`,`refs/remotes/${t}/HEAD`],p8=["config","description","index","shallow","commondir"],tv;async function Ts(t,e){return tv===void 0&&(tv=new Wc),tv.acquire(t,e)}var z=class t{static async updateRemoteRefs({fs:e,gitdir:r,remote:n,refs:i,symrefs:s,tags:a,refspecs:o=void 0,prune:l=!1,pruneTags:c=!1}){for(let v of i.values())if(!v.match(/[0-9a-f]{40}/))throw new Rs(v);let u=await lt.get({fs:e,gitdir:r});if(!o){if(o=await u.getall(`remote.${n}.fetch`),o.length===0)throw new Yc(n);o.unshift(`+HEAD:refs/remotes/${n}/HEAD`)}let f=dv.from(o),d=new Map;if(c){let v=await t.listRefs({fs:e,gitdir:r,filepath:"refs/tags"});await t.deleteRefs({fs:e,gitdir:r,refs:v.map(w=>`refs/tags/${w}`)})}if(a){for(let v of i.keys())if(v.startsWith("refs/tags")&&!v.endsWith("^{}")&&!await t.exists({fs:e,gitdir:r,ref:v})){let w=i.get(v);d.set(v,w)}}let h=f.translate([...i.keys()]);for(let[v,w]of h){let b=i.get(v);d.set(w,b)}let m=f.translate([...s.keys()]);for(let[v,w]of m){let b=s.get(v),k=f.translateOne(b);k&&d.set(w,`ref: ${k}`)}let g=[];if(l){for(let v of f.localNamespaces()){let w=(await t.listRefs({fs:e,gitdir:r,filepath:v})).map(b=>`${v}/${b}`);for(let b of w)d.has(b)||g.push(b)}g.length>0&&await t.deleteRefs({fs:e,gitdir:r,refs:g})}for(let[v,w]of d)await Ts(v,async()=>e.write(D(r,v),`${w.trim()} +`,"utf8"));return{pruned:g}}static async writeRef({fs:e,gitdir:r,ref:n,value:i}){if(!i.match(/[0-9a-f]{40}/))throw new Rs(i);await Ts(n,async()=>e.write(D(r,n),`${i.trim()} +`,"utf8"))}static async writeSymbolicRef({fs:e,gitdir:r,ref:n,value:i}){await Ts(n,async()=>e.write(D(r,n),`ref: ${i.trim()} +`,"utf8"))}static async deleteRef({fs:e,gitdir:r,ref:n}){return t.deleteRefs({fs:e,gitdir:r,refs:[n]})}static async deleteRefs({fs:e,gitdir:r,refs:n}){await Promise.all(n.map(o=>e.rm(D(r,o))));let i=await Ts("packed-refs",async()=>e.read(`${r}/packed-refs`,{encoding:"utf8"})),s=Rd.from(i),a=s.refs.size;for(let o of n)s.refs.has(o)&&s.delete(o);s.refs.sizee.write(`${r}/packed-refs`,i,{encoding:"utf8"})))}static async resolve({fs:e,gitdir:r,ref:n,depth:i=void 0}){if(i!==void 0&&(i--,i===-1))return n;if(n.startsWith("ref: "))return n=n.slice(5),t.resolve({fs:e,gitdir:r,ref:n,depth:i});if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let s=await t.packedRefs({fs:e,gitdir:r}),a=Ad(n).filter(o=>!p8.includes(o));for(let o of a){let l=await Ts(o,async()=>await e.read(`${r}/${o}`,{encoding:"utf8"})||s.get(o));if(l)return t.resolve({fs:e,gitdir:r,ref:l.trim(),depth:i})}throw new Be(n)}static async exists({fs:e,gitdir:r,ref:n}){try{return await t.expand({fs:e,gitdir:r,ref:n}),!0}catch(i){return!1}}static async expand({fs:e,gitdir:r,ref:n}){if(n.length===40&&/[0-9a-f]{40}/.test(n))return n;let i=await t.packedRefs({fs:e,gitdir:r}),s=Ad(n);for(let a of s)if(await Ts(a,async()=>e.exists(`${r}/${a}`))||i.has(a))return a;throw new Be(n)}static async expandAgainstMap({ref:e,map:r}){let n=Ad(e);for(let i of n)if(await r.has(i))return i;throw new Be(e)}static resolveAgainstMap({ref:e,fullref:r=e,depth:n=void 0,map:i}){if(n!==void 0&&(n--,n===-1))return{fullref:r,oid:e};if(e.startsWith("ref: "))return e=e.slice(5),t.resolveAgainstMap({ref:e,fullref:r,depth:n,map:i});if(e.length===40&&/[0-9a-f]{40}/.test(e))return{fullref:r,oid:e};let s=Ad(e);for(let a of s){let o=i.get(a);if(o)return t.resolveAgainstMap({ref:o.trim(),fullref:a,depth:n,map:i})}throw new Be(e)}static async packedRefs({fs:e,gitdir:r}){let n=await Ts("packed-refs",async()=>e.read(`${r}/packed-refs`,{encoding:"utf8"}));return Rd.from(n).refs}static async listRefs({fs:e,gitdir:r,filepath:n}){let i=t.packedRefs({fs:e,gitdir:r}),s=null;try{s=await e.readdirDeep(`${r}/${n}`),s=s.map(a=>a.replace(`${r}/${n}/`,""))}catch(a){s=[]}for(let a of(await i).keys())a.startsWith(n)&&(a=a.replace(n+"/",""),s.includes(a)||s.push(a));return s.sort(e8),s}static async listBranches({fs:e,gitdir:r,remote:n}){return n?t.listRefs({fs:e,gitdir:r,filepath:`refs/remotes/${n}`}):t.listRefs({fs:e,gitdir:r,filepath:"refs/heads"})}static async listTags({fs:e,gitdir:r}){return(await t.listRefs({fs:e,gitdir:r,filepath:"refs/tags"})).filter(i=>!i.endsWith("^{}"))}};function m8(t,e){return Nd(BE(t),BE(e))}function BE(t){return t.mode==="040000"?t.path+"/":t.path}function ok(t){switch(t){case"040000":return"tree";case"100644":return"blob";case"100755":return"blob";case"120000":return"blob";case"160000":return"commit"}throw new he(`Unexpected GitTree entry mode: ${t}`)}function g8(t){let e=[],r=0;for(;r`${e.mode} ${e.type} ${e.oid} ${e.path}`).join(` +`)}toObject(){let e=[...this._entries];return e.sort(m8),Buffer.concat(e.map(r=>{let n=Buffer.from(r.mode.replace(/^0/,"")),i=Buffer.from(" "),s=Buffer.from(r.path,"utf8"),a=Buffer.from([0]),o=Buffer.from(r.oid,"hex");return Buffer.concat([n,i,s,a,o])}))}entries(){return this._entries}*[Symbol.iterator](){for(let e of this._entries)yield e}},$s=class{static wrap({type:e,object:r}){let n=`${e} ${r.length}\0`,i=n.length,s=i+r.length,a=new Uint8Array(s);for(let o=0;o>=1,i+=8;return n}function GE(t,e){let r=t.readUInt8(),n=128,i=15,s=112;if(r&n){let a=UE(t,r&i,4),o=UE(t,(r&s)>>4,3);return o===0&&(o=65536),e.slice(a,a+o)}else return t.slice(r)}function b8(t){let e=[t];return{next(){return Promise.resolve({done:e.length===0,value:e.pop()})},return(){return e=[],{}},[Symbol.asyncIterator](){return this}}}function ck(t){return t[Symbol.asyncIterator]?t[Symbol.asyncIterator]():t[Symbol.iterator]?t[Symbol.iterator]():t.next?t:b8(t)}var Id=class{constructor(e){if(typeof Buffer=="undefined")throw new Error("Missing Buffer dependency");this.stream=ck(e),this.buffer=null,this.cursor=0,this.undoCursor=0,this.started=!1,this._ended=!1,this._discardedBytes=0}eof(){return this._ended&&this.cursor===this.buffer.length}tell(){return this._discardedBytes+this.cursor}async byte(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(1),this.buffer[this.undoCursor]}async chunk(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(this.buffer.length),this.buffer.slice(this.undoCursor,this.cursor)}async read(e){if(!this.eof())return this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e),this.buffer.slice(this.undoCursor,this.cursor)}async skip(e){this.eof()||(this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e))}async undo(){this.cursor=this.undoCursor}async _next(){this.started=!0;let{done:e,value:r}=await this.stream.next();return e&&(this._ended=!0,!r)?Buffer.alloc(0):(r&&(r=Buffer.from(r)),r)}_trim(){this.buffer=this.buffer.slice(this.undoCursor),this.cursor-=this.undoCursor,this._discardedBytes+=this.undoCursor,this.undoCursor=0}_moveCursor(e){this.undoCursor=this.cursor,this.cursor+=e,this.cursor>this.buffer.length&&(this.cursor=this.buffer.length)}async _accumulate(e){if(this._ended)return;let r=[this.buffer];for(;this.cursor+e>_8(r);){let n=await this._next();if(this._ended)break;r.push(n)}this.buffer=Buffer.concat(r)}async _loadnext(){this._discardedBytes+=this.buffer.length,this.undoCursor=0,this.cursor=0,this.buffer=await this._next()}async _init(){this.buffer=await this._next()}};function _8(t){return t.reduce((e,r)=>e+r.length,0)}async function x8(t,e){let r=new Id(t),n=await r.read(4);if(n=n.toString("utf8"),n!=="PACK")throw new he(`Invalid PACK header '${n}'`);let i=await r.read(4);if(i=i.readUInt32BE(0),i!==2)throw new he(`Invalid packfile version: ${i}`);let s=await r.read(4);if(s=s.readUInt32BE(0),!(s<1))for(;!r.eof()&&s--;){let a=r.tell(),{type:o,length:l,ofs:c,reference:u}=await S8(r),f=new xv.Inflate;for(;!f.result;){let d=await r.chunk();if(!d)break;if(f.push(d,!1),f.err)throw new he(`Pako error: ${f.msg}`);if(f.result){if(f.result.length!==l)throw new he("Inflated object size is different from that stated in packfile.");await r.undo(),await r.read(d.length-f.strm.avail_in);let h=r.tell();await e({data:f.result,type:o,num:s,offset:a,end:h,reference:u,ofs:c})}}}}async function S8(t){let e=await t.byte(),r=e>>4&7,n=e&15;if(e&128){let a=4;do e=await t.byte(),n|=(e&127)<i+1<<7|s,-1)}function C8(t,e){let r=e,n=4,i=null;do i=t.readUInt8(),r|=(i&127)<2048*1024*1024)throw new he("To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.");n.seek(n.tell()+4*255);let a=n.readUInt32BE(),o=[];for(let u=0;u{u===null&&(u=x);let E=Math.floor((u-x)*100/u);E!==f&&n&&await n({phase:"Receiving objects",loaded:u-x,total:u}),f=E,w=i[w],["commit","tree","blob","tag"].includes(w)?s[k]={type:w,offset:k}:w==="ofs-delta"?s[k]={type:w,offset:k}:w==="ref-delta"&&(s[k]={type:w,offset:k})});let d=Object.keys(s).map(Number);for(let[v,w]of d.entries()){let b=v+1===d.length?e.byteLength-20:d[v+1],k=s[w],x=G3.buf(e.slice(w,b))>>>0;k.end=b,k.crc=x}let h=new t({pack:Promise.resolve(e),packfileSha:a,crcs:l,hashes:o,offsets:c,getExternalRefDelta:r});f=null;let m=0,g=[0,0,0,0,0,0,0,0,0,0,0,0];for(let v in s){v=Number(v);let w=Math.floor(m*100/u);w!==f&&n&&await n({phase:"Resolving deltas",loaded:m,total:u}),m++,f=w;let b=s[v];if(!b.oid)try{h.readDepth=0,h.externalReadDepth=0;let{type:k,object:x}=await h.readSlice({start:v});g[h.readDepth]+=1;let E=await zi($s.wrap({type:k,object:x}));b.oid=E,o.push(E),c.set(E,v),l[E]=b.crc}catch(k){continue}}return o.sort(),h}async toBuffer(){let e=[],r=(c,u)=>{e.push(Buffer.from(c,u))};r("ff744f63","hex"),r("00000002","hex");let n=new mn(Buffer.alloc(256*4));for(let c=0;c<256;c++){let u=0;for(let f of this.hashes)parseInt(f.slice(0,2),16)<=c&&u++;n.writeUInt32BE(u)}e.push(n.buffer);for(let c of this.hashes)r(c,"hex");let i=new mn(Buffer.alloc(this.hashes.length*4));for(let c of this.hashes)i.writeUInt32BE(this.crcs[c]);e.push(i.buffer);let s=new mn(Buffer.alloc(this.hashes.length*4));for(let c of this.hashes)s.writeUInt32BE(this.offsets.get(c));e.push(s.buffer),r(this.packfileSha,"hex");let a=Buffer.concat(e),o=await zi(a),l=Buffer.alloc(20);return l.write(o,"hex"),Buffer.concat([a,l])}async load({pack:e}){this.pack=e}async unload(){this.pack=null}async read({oid:e}){if(!this.offsets.get(e)){if(this.getExternalRefDelta)return this.externalReadDepth++,this.getExternalRefDelta(e);throw new he(`Could not read object ${e} from packfile`)}let r=this.offsets.get(e);return this.readSlice({start:r})}async readSlice({start:e}){if(this.offsetCache[e])return Object.assign({},this.offsetCache[e]);this.readDepth++;let r={16:"commit",32:"tree",48:"blob",64:"tag",96:"ofs_delta",112:"ref_delta"};if(!this.pack)throw new he("Tried to read from a GitPackIndex with no packfile loaded into memory");let n=(await this.pack).slice(e),i=new mn(n),s=i.readUInt8(),a=s&112,o=r[a];if(o===void 0)throw new he("Unrecognized type: 0b"+a.toString(2));let l=s&15,c=l;s&128&&(c=C8(i,l));let f=null,d=null;if(o==="ofs_delta"){let m=A8(i),g=e-m;({object:f,type:o}=await this.readSlice({start:g}))}if(o==="ref_delta"){let m=i.slice(20).toString("hex");({object:f,type:o}=await this.read({oid:m}))}let h=n.slice(i.tell());if(d=Buffer.from(await uk(h)),d.byteLength!==c)throw new he(`Packfile told us object would have length ${c} but it had length ${d.byteLength}`);return f&&(d=Buffer.from(y8(d,f))),this.readDepth>3&&(this.offsetCache[e]={type:o,object:d}),{type:o,format:"content",object:d}}},Cd=Symbol("PackfileCache");async function T8({fs:t,filename:e,getExternalRefDelta:r,emitter:n,emitterPrefix:i}){let s=await t.read(e);return Xc.fromIdx({idx:s,getExternalRefDelta:r})}function Sv({fs:t,cache:e,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:s}){e[Cd]||(e[Cd]=new Map);let a=e[Cd].get(r);return a||(a=T8({fs:t,filename:r,getExternalRefDelta:n,emitter:i,emitterPrefix:s}),e[Cd].set(r,a)),a}async function P8({fs:t,cache:e,gitdir:r,oid:n,format:i="content",getExternalRefDelta:s}){let a=await t.readdir(D(r,"objects/pack"));a=a.filter(o=>o.endsWith(".idx"));for(let o of a){let l=`${r}/objects/pack/${o}`,c=await Sv({fs:t,cache:e,filename:l,getExternalRefDelta:s});if(c.error)throw new he(c.error);if(c.offsets.has(n)){if(!c.pack){let f=l.replace(/idx$/,"pack");c.pack=t.read(f)}let u=await c.read({oid:n,getExternalRefDelta:s});return u.format="content",u.source=`objects/pack/${o.replace(/idx$/,"pack")}`,u}}return null}async function Xe({fs:t,cache:e,gitdir:r,oid:n,format:i="content"}){let s=u=>Xe({fs:t,cache:e,gitdir:r,oid:u}),a;if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904"&&(a={format:"wrapped",object:Buffer.from("tree 0\0")}),a||(a=await lk({fs:t,gitdir:r,oid:n})),!a){if(a=await P8({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:s}),!a)throw new Be(n);return a}if(i==="deflated"||(a.format==="deflated"&&(a.object=Buffer.from(await uk(a.object)),a.format="wrapped"),i==="wrapped"))return a;let o=await zi(a.object);if(o!==n)throw new he(`SHA check failed! Expected ${n}, computed ${o}`);let{object:l,type:c}=$s.unwrap(a.object);if(a.type=c,a.object=l,a.format="content",i==="content")return a;throw new he(`invalid requested format "${i}"`)}var Mn=class t extends Re{constructor(e,r,n=!0){super(`Failed to create ${e} at ${r} because it already exists.${n?` (Hint: use 'force: true' parameter to overwrite existing ${e}.)`:""}`),this.code=this.name=t.code,this.data={noun:e,where:r,canForce:n}}};Mn.code="AlreadyExistsError";var Zc=class t extends Re{constructor(e,r,n){super(`Found multiple ${e} matching "${r}" (${n.join(", ")}). Use a longer abbreviation length to disambiguate them.`),this.code=this.name=t.code,this.data={nouns:e,short:r,matches:n}}};Zc.code="AmbiguousError";var Kc=class t extends Re{constructor(e){super(`Your local changes to the following files would be overwritten by checkout: ${e.join(", ")}`),this.code=this.name=t.code,this.data={filepaths:e}}};Kc.code="CheckoutConflictError";var Qc=class t extends Re{constructor(e,r){super(`Failed to checkout "${e}" because commit ${r} is not available locally. Do a git fetch to make the branch available locally.`),this.code=this.name=t.code,this.data={ref:e,oid:r}}};Qc.code="CommitNotFetchedError";var Jc=class t extends Re{constructor(){super("Empty response from git server."),this.code=this.name=t.code,this.data={}}};Jc.code="EmptyServerResponseError";var eu=class t extends Re{constructor(){super("A simple fast-forward merge was not possible."),this.code=this.name=t.code,this.data={}}};eu.code="FastForwardError";var tu=class t extends Re{constructor(e,r){super(`One or more branches were not updated: ${e}`),this.code=this.name=t.code,this.data={prettyDetails:e,result:r}}};tu.code="GitPushError";var Yo=class t extends Re{constructor(e,r,n){super(`HTTP Error: ${e} ${r}`),this.code=this.name=t.code,this.data={statusCode:e,statusMessage:r,response:n}}};Yo.code="HttpError";var Is=class t extends Re{constructor(e){let r="invalid filepath";e==="leading-slash"||e==="trailing-slash"?r='"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.':e==="directory"&&(r='"filepath" should not be a directory.'),super(r),this.code=this.name=t.code,this.data={reason:e}}};Is.code="InvalidFilepathError";var Dn=class t extends Re{constructor(e,r){super(`"${e}" would be an invalid git reference. (Hint: a valid alternative would be "${r}".)`),this.code=this.name=t.code,this.data={ref:e,suggestion:r}}};Dn.code="InvalidRefNameError";var ru=class t extends Re{constructor(e){super(`Maximum search depth of ${e} exceeded.`),this.code=this.name=t.code,this.data={depth:e}}};ru.code="MaxDepthError";var Xo=class t extends Re{constructor(){super("Merges with conflicts are not supported yet."),this.code=this.name=t.code,this.data={}}};Xo.code="MergeNotSupportedError";var Zo=class t extends Re{constructor(e,r,n,i){super(`Automatic merge failed with one or more merge conflicts in the following files: ${e.toString()}. Fix conflicts then commit the result.`),this.code=this.name=t.code,this.data={filepaths:e,bothModified:r,deleteByUs:n,deleteByTheirs:i}}};Zo.code="MergeConflictError";var Kt=class t extends Re{constructor(e){super(`No name was provided for ${e} in the argument or in the .git/config file.`),this.code=this.name=t.code,this.data={role:e}}};Kt.code="MissingNameError";var Sr=class t extends Re{constructor(e){super(`The function requires a "${e}" parameter but none was provided.`),this.code=this.name=t.code,this.data={parameter:e}}};Sr.code="MissingParameterError";var nu=class t extends Re{constructor(e){super('There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more'),this.code=this.name=t.code,this.data={errors:e},this.errors=e}};nu.code="MultipleGitError";var Ea=class t extends Re{constructor(e,r){super(`Expected "${e}" but received "${r}".`),this.code=this.name=t.code,this.data={expected:e,actual:r}}};Ea.code="ParseError";var Ko=class t extends Re{constructor(e){let r="";e==="not-fast-forward"?r=" because it was not a simple fast-forward":e==="tag-exists"&&(r=" because tag already exists"),super(`Push rejected${r}. Use "force: true" to override.`),this.code=this.name=t.code,this.data={reason:e}}};Ko.code="PushRejectedError";var Ps=class t extends Re{constructor(e,r){super(`Remote does not support the "${e}" so the "${r}" parameter cannot be used.`),this.code=this.name=t.code,this.data={capability:e,parameter:r}}};Ps.code="RemoteCapabilityError";var iu=class t extends Re{constructor(e,r){super(`Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${e}`),this.code=this.name=t.code,this.data={preview:e,response:r}}};iu.code="SmartHttpError";var su=class t extends Re{constructor(e,r,n){super(`Git remote "${e}" uses an unrecognized transport protocol: "${r}"`),this.code=this.name=t.code,this.data={url:e,transport:r,suggestion:n}}};su.code="UnknownTransportError";var au=class t extends Re{constructor(e){super(`Cannot parse remote URL: "${e}"`),this.code=this.name=t.code,this.data={url:e}}};au.code="UrlParseError";var Qo=class t extends Re{constructor(){super("The operation was canceled."),this.code=this.name=t.code,this.data={}}};Qo.code="UserCanceledError";var ou=class t extends Re{constructor(e){super(`Could not merge index: Entry for '${e}' is not up to date. Either reset the index entry to HEAD, or stage your unstaged changes.`),this.code=this.name=t.code,this.data={filepath:e}}};ou.code="IndexResetError";var lu=class t extends Re{constructor(e){super(`"${e}" does not point to any commit. You're maybe working on a repository with no commits yet. `),this.code=this.name=t.code,this.data={ref:e}}};lu.code="NoCommitError";var fk=Object.freeze({__proto__:null,AlreadyExistsError:Mn,AmbiguousError:Zc,CheckoutConflictError:Kc,CommitNotFetchedError:Qc,EmptyServerResponseError:Jc,FastForwardError:eu,GitPushError:tu,HttpError:Yo,InternalError:he,InvalidFilepathError:Is,InvalidOidError:Rs,InvalidRefNameError:Dn,MaxDepthError:ru,MergeNotSupportedError:Xo,MergeConflictError:Zo,MissingNameError:Kt,MissingParameterError:Sr,MultipleGitError:nu,NoRefspecError:Yc,NotFoundError:Be,ObjectTypeError:fr,ParseError:Ea,PushRejectedError:Ko,RemoteCapabilityError:Ps,SmartHttpError:iu,UnknownTransportError:su,UnsafeFilepathError:zo,UrlParseError:au,UserCanceledError:Qo,UnmergedPathsError:Vc,IndexResetError:ou,NoCommitError:lu});function mv({name:t,email:e,timestamp:r,timezoneOffset:n}){return n=R8(n),`${t} <${e}> ${r} ${n}`}function R8(t){let e=$8(I8(t));t=Math.abs(t);let r=Math.floor(t/60);t-=r*60;let n=String(r),i=String(t);return n.length<2&&(n="0"+n),i.length<2&&(i="0"+i),(e===-1?"-":"+")+n+i}function $8(t){return Math.sign(t)||(Object.is(t,-0)?-1:1)}function I8(t){return t===0?t:-t}function Wi(t){return t=t.replace(/\r/g,""),t=t.replace(/^\n+/,""),t=t.replace(/\n+$/,"")+` +`,t}function Fd(t){let[,e,r,n,i]=t.match(/^(.*) <(.*)> (.*) (.*)$/);return{name:e,email:r,timestamp:Number(n),timezoneOffset:F8(i)}}function F8(t){let[,e,r,n]=t.match(/(\+|-)(\d\d)(\d\d)/);return n=(e==="+"?1:-1)*(Number(r)*60+Number(n)),O8(n)}function O8(t){return t===0?t:-t}var Zr=class t{constructor(e){if(typeof e=="string")this._tag=e;else if(Buffer.isBuffer(e))this._tag=e.toString("utf8");else if(typeof e=="object")this._tag=t.render(e);else throw new he("invalid type passed to GitAnnotatedTag constructor")}static from(e){return new t(e)}static render(e){return`object ${e.object} type ${e.type} tag ${e.tag} -tagger ${cv(e.tagger)} +tagger ${mv(e.tagger)} ${e.message} ${e.gpgsig?e.gpgsig:""}`}justHeaders(){return this._tag.slice(0,this._tag.indexOf(` @@ -32,80 +32,80 @@ ${e.gpgsig?e.gpgsig:""}`}justHeaders(){return this._tag.slice(0,this._tag.indexO `))}message(){let e=this.withoutSignature();return e.slice(e.indexOf(` `)+2)}parse(){return Object.assign(this.headers(),{message:this.message(),gpgsig:this.gpgsig()})}render(){return this._tag}headers(){let e=this.justHeaders().split(` -`),r=[];for(let n of e)n[0]===" "?r[r.length-1]+=` -`+n.slice(1):r.push(n);let i={};for(let n of r){let s=n.slice(0,n.indexOf(" ")),a=n.slice(n.indexOf(" ")+1);Array.isArray(i[s])?i[s].push(a):i[s]=a}return i.tagger&&(i.tagger=Td(i.tagger)),i.committer&&(i.committer=Td(i.committer)),i}withoutSignature(){let e=jn(this._tag);return e.indexOf(` +`),r=[];for(let i of e)i[0]===" "?r[r.length-1]+=` +`+i.slice(1):r.push(i);let n={};for(let i of r){let s=i.slice(0,i.indexOf(" ")),a=i.slice(i.indexOf(" ")+1);Array.isArray(n[s])?n[s].push(a):n[s]=a}return n.tagger&&(n.tagger=Fd(n.tagger)),n.committer&&(n.committer=Fd(n.committer)),n}withoutSignature(){let e=Wi(this._tag);return e.indexOf(` -----BEGIN PGP SIGNATURE-----`)===-1?e:e.slice(0,e.lastIndexOf(` -----BEGIN PGP SIGNATURE-----`))}gpgsig(){if(this._tag.indexOf(` ------BEGIN PGP SIGNATURE-----`)===-1)return;let e=this._tag.slice(this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"),this._tag.indexOf("-----END PGP SIGNATURE-----")+27);return jn(e)}payload(){return this.withoutSignature()+` -`}toObject(){return Buffer.from(this._tag,"utf8")}static async sign(e,r,i){let n=e.payload(),{signature:s}=await r({payload:n,secretKey:i});s=jn(s);let a=n+s;return t.from(a)}};function Kg(t){return t.trim().split(` +-----BEGIN PGP SIGNATURE-----`)===-1)return;let e=this._tag.slice(this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"),this._tag.indexOf("-----END PGP SIGNATURE-----")+27);return Wi(e)}payload(){return this.withoutSignature()+` +`}toObject(){return Buffer.from(this._tag,"utf8")}static async sign(e,r,n){let i=e.payload(),{signature:s}=await r({payload:i,secretKey:n});s=Wi(s);let a=i+s;return t.from(a)}};function nv(t){return t.trim().split(` `).map(e=>" "+e).join(` `)+` -`}function b8(t){return t.split(` +`}function M8(t){return t.split(` `).map(e=>e.replace(/^ /,"")).join(` -`)}var kr=class t{constructor(e){if(typeof e=="string")this._commit=e;else if(Buffer.isBuffer(e))this._commit=e.toString("utf8");else if(typeof e=="object")this._commit=t.render(e);else throw new he("invalid type passed to GitCommit constructor")}static fromPayloadSignature({payload:e,signature:r}){let i=t.justHeaders(e),n=t.justMessage(e),s=jn(i+` -gpgsig`+Kg(r)+` -`+n);return new t(s)}static from(e){return new t(e)}toObject(){return Buffer.from(this._commit,"utf8")}headers(){return this.parseHeaders()}message(){return t.justMessage(this._commit)}parse(){return Object.assign({message:this.message()},this.headers())}static justMessage(e){return jn(e.slice(e.indexOf(` +`)}var kr=class t{constructor(e){if(typeof e=="string")this._commit=e;else if(Buffer.isBuffer(e))this._commit=e.toString("utf8");else if(typeof e=="object")this._commit=t.render(e);else throw new he("invalid type passed to GitCommit constructor")}static fromPayloadSignature({payload:e,signature:r}){let n=t.justHeaders(e),i=t.justMessage(e),s=Wi(n+` +gpgsig`+nv(r)+` +`+i);return new t(s)}static from(e){return new t(e)}toObject(){return Buffer.from(this._commit,"utf8")}headers(){return this.parseHeaders()}message(){return t.justMessage(this._commit)}parse(){return Object.assign({message:this.message()},this.headers())}static justMessage(e){return Wi(e.slice(e.indexOf(` `)+2))}static justHeaders(e){return e.slice(0,e.indexOf(` `))}parseHeaders(){let e=t.justHeaders(this._commit).split(` -`),r=[];for(let n of e)n[0]===" "?r[r.length-1]+=` -`+n.slice(1):r.push(n);let i={parent:[]};for(let n of r){let s=n.slice(0,n.indexOf(" ")),a=n.slice(n.indexOf(" ")+1);Array.isArray(i[s])?i[s].push(a):i[s]=a}return i.author&&(i.author=Td(i.author)),i.committer&&(i.committer=Td(i.committer)),i}static renderHeaders(e){let r="";if(e.tree?r+=`tree ${e.tree} +`),r=[];for(let i of e)i[0]===" "?r[r.length-1]+=` +`+i.slice(1):r.push(i);let n={parent:[]};for(let i of r){let s=i.slice(0,i.indexOf(" ")),a=i.slice(i.indexOf(" ")+1);Array.isArray(n[s])?n[s].push(a):n[s]=a}return n.author&&(n.author=Fd(n.author)),n.committer&&(n.committer=Fd(n.committer)),n}static renderHeaders(e){let r="";if(e.tree?r+=`tree ${e.tree} `:r+=`tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 `,e.parent){if(e.parent.length===void 0)throw new he("commit 'parent' property should be an array");for(let s of e.parent)r+=`parent ${s} -`}let i=e.author;r+=`author ${cv(i)} -`;let n=e.committer||e.author;return r+=`committer ${cv(n)} -`,e.gpgsig&&(r+="gpgsig"+Kg(e.gpgsig)),r}static render(e){return t.renderHeaders(e)+` -`+jn(e.message)}render(){return this._commit}withoutSignature(){let e=jn(this._commit);if(e.indexOf(` +`}let n=e.author;r+=`author ${mv(n)} +`;let i=e.committer||e.author;return r+=`committer ${mv(i)} +`,e.gpgsig&&(r+="gpgsig"+nv(e.gpgsig)),r}static render(e){return t.renderHeaders(e)+` +`+Wi(e.message)}render(){return this._commit}withoutSignature(){let e=Wi(this._commit);if(e.indexOf(` gpgsig`)===-1)return e;let r=e.slice(0,e.indexOf(` -gpgsig`)),i=e.slice(e.indexOf(`-----END PGP SIGNATURE----- -`)+28);return jn(r+` -`+i)}isolateSignature(){let e=this._commit.slice(this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"),this._commit.indexOf("-----END PGP SIGNATURE-----")+27);return b8(e)}static async sign(e,r,i){let n=e.withoutSignature(),s=t.justMessage(e._commit),{signature:a}=await r({payload:n,secretKey:i});a=jn(a);let l=t.justHeaders(e._commit)+` -gpgsig`+Kg(a)+` -`+s;return t.from(l)}};async function Qo({fs:t,cache:e,gitdir:r,oid:i}){if(i==="4b825dc642cb6eb9a060e54bf8d69288fbee4904")return{tree:Er.from([]),oid:i};let{type:n,object:s}=await Ke({fs:t,cache:e,gitdir:r,oid:i});if(n==="tag")return i=Kr.from(s).parse().object,Qo({fs:t,cache:e,gitdir:r,oid:i});if(n==="commit")return i=kr.from(s).parse().tree,Qo({fs:t,cache:e,gitdir:r,oid:i});if(n!=="tree")throw new hr(i,n,"tree");return{tree:Er.from(s),oid:i}}var uv=class{constructor({fs:e,gitdir:r,ref:i,cache:n}){this.fs=e,this.cache=n,this.gitdir=r,this.mapPromise=(async()=>{let a=new Map,o;try{o=await W.resolve({fs:e,gitdir:r,ref:i})}catch(c){c instanceof He&&(o="4b825dc642cb6eb9a060e54bf8d69288fbee4904")}let l=await Qo({fs:e,cache:this.cache,gitdir:r,oid:o});return l.type="tree",l.mode="40000",a.set(".",l),a})();let s=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return s.type(this)}async mode(){return s.mode(this)}async stat(){return s.stat(this)}async content(){return s.content(this)}async oid(){return s.oid(this)}}}async readdir(e){let r=e._fullpath,{fs:i,cache:n,gitdir:s}=this,a=await this.mapPromise,o=a.get(r);if(!o)throw new Error(`No obj for ${r}`);let l=o.oid;if(!l)throw new Error(`No oid for obj ${JSON.stringify(o)}`);if(o.type!=="tree")return null;let{type:c,object:u}=await Ke({fs:i,cache:n,gitdir:s,oid:l});if(c!==o.type)throw new hr(l,c,o.type);let f=Er.from(u);for(let d of f)a.set(O(r,d.path),d);return f.entries().map(d=>O(r,d.path))}async type(e){if(e._type===!1){let r=await this.mapPromise,{type:i}=r.get(e._fullpath);e._type=i}return e._type}async mode(e){if(e._mode===!1){let r=await this.mapPromise,{mode:i}=r.get(e._fullpath);e._mode=XE(parseInt(i,8))}return e._mode}async stat(e){}async content(e){if(e._content===!1){let r=await this.mapPromise,{fs:i,cache:n,gitdir:s}=this,o=r.get(e._fullpath).oid,{type:l,object:c}=await Ke({fs:i,cache:n,gitdir:s,oid:o});l!=="blob"?e._content=void 0:e._content=new Uint8Array(c)}return e._content}async oid(e){if(e._oid===!1){let i=(await this.mapPromise).get(e._fullpath);e._oid=i.oid}return e._oid}};function Zr({ref:t="HEAD"}={}){let e=Object.create(null);return Object.defineProperty(e,Id,{value:function({fs:r,gitdir:i,cache:n}){return new uv({fs:r,gitdir:i,ref:t,cache:n})}}),Object.freeze(e),e}var fv=class{constructor({fs:e,dir:r,gitdir:i,cache:n}){this.fs=e,this.cache=n,this.dir=r,this.gitdir=i,this.config=null;let s=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return s.type(this)}async mode(){return s.mode(this)}async stat(){return s.stat(this)}async content(){return s.content(this)}async oid(){return s.oid(this)}}}async readdir(e){let r=e._fullpath,{fs:i,dir:n}=this,s=await i.readdir(O(n,r));return s===null?null:s.map(a=>O(r,a))}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let{fs:r,dir:i}=this,n=await r.lstat(`${i}/${e._fullpath}`);if(!n)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let s=n.isDirectory()?"tree":"blob";s==="blob"&&!n.isFile()&&!n.isSymbolicLink()&&(s="special"),e._type=s,n=Vo(n),e._mode=n.mode,n.size===-1&&e._actualSize&&(n.size=e._actualSize),e._stat=n}return e._stat}async content(e){if(e._content===!1){let{fs:r,dir:i,gitdir:n}=this;if(await e.type()==="tree")e._content=void 0;else{let s;if(await e.mode()>>12===10)s=await r.readlink(`${i}/${e._fullpath}`);else{let o=await(await this._getGitConfig(r,n)).get("core.autocrlf");s=await r.read(`${i}/${e._fullpath}`,{autocrlf:o})}e._actualSize=s.length,e._stat&&e._stat.size===-1&&(e._stat.size=e._actualSize),e._content=new Uint8Array(s)}}return e._content}async oid(e){if(e._oid===!1){let r=this,{fs:i,gitdir:n,cache:s}=this,a;await mt.acquire({fs:i,gitdir:n,cache:s},async function(o){let l=o.entriesMap.get(e._fullpath),c=await e.stat(),f=await(await r._getGitConfig(i,n)).get("core.filemode"),d=typeof process!="undefined"?process.platform!=="win32":!0;if(!l||xd(c,l,f,d)){let h=await e.content();h===void 0?a=void 0:(a=await qn(Rs.wrap({type:"blob",object:h})),l&&a===l.oid&&(!f||c.mode===l.mode)&&xd(c,l,f,d)&&o.insert({filepath:e._fullpath,stats:c,oid:a}))}else a=l.oid}),e._oid=a}return e._oid}async _getGitConfig(e,r){return this.config?this.config:(this.config=await ct.get({fs:e,gitdir:r}),this.config)}};function nl(){let t=Object.create(null);return Object.defineProperty(t,Id,{value:function({fs:e,dir:r,gitdir:i,cache:n}){return new fv({fs:e,dir:r,gitdir:i,cache:n})}}),Object.freeze(t),t}function _8(t,e){let r=e-t;return Array.from({length:r},(i,n)=>t+n)}var ik=typeof Array.prototype.flat=="undefined"?t=>t.reduce((e,r)=>e.concat(r),[]):t=>t.flat(),dv=class{constructor(){this.value=null}consider(e){e!=null&&(this.value===null?this.value=e:ec,reduce:a=async(l,c)=>{let u=ik(c);return l!==void 0&&u.unshift(l),u},iterate:o=(l,c)=>Promise.all([...c].map(l))}){let l=n.map(h=>h[Id]({fs:t,dir:r,gitdir:i,cache:e})),c=new Array(l.length).fill("."),u=_8(0,l.length),f=async h=>{u.forEach(v=>{let w=h[v];h[v]=w&&new l[v].ConstructEntry(w)});let g=(await Promise.all(u.map(v=>{let w=h[v];return w?l[v].readdir(w):[]}))).map(v=>(v===null?[]:v)[Symbol.iterator]());return{entries:h,children:x8(g)}},d=async h=>{let{entries:m,children:g}=await f(h),v=m.find(b=>b&&b._fullpath)._fullpath,w=await s(v,m);if(w!==null){let b=await o(d,g);return b=b.filter(k=>k!==void 0),a(w,b)}};return d(c)}async function hv(t,e){let r=await t.readdir(e);r==null?await t.rm(e):r.length?await Promise.all(r.map(i=>{let n=O(e,i);return t.lstat(n).then(s=>{if(s)return s.isDirectory()?hv(t,n):t.rm(n)})})).then(()=>t.rmdir(e)):await t.rmdir(e)}function S8(t){return E8(t)&&OE(t.then)&&OE(t.catch)}function E8(t){return t&&typeof t=="object"}function OE(t){return typeof t=="function"}function ME(t){return S8((r=>{try{return r.readFile().catch(i=>i)}catch(i){return i}})(t))}var DE=["readFile","writeFile","mkdir","rmdir","unlink","stat","lstat","readdir","readlink","symlink"];function LE(t,e){if(ME(e))for(let r of DE)t[`_${r}`]=e[r].bind(e);else for(let r of DE)t[`_${r}`]=yd(e[r].bind(e));ME(e)?(e.cp&&(t._cp=e.cp.bind(e)),e.rm?t._rm=e.rm.bind(e):e.rmdir.length>1?t._rm=e.rmdir.bind(e):t._rm=hv.bind(null,t)):(e.cp&&(t._cp=yd(e.cp.bind(e))),e.rm?t._rm=yd(e.rm.bind(e)):e.rmdir.length>2?t._rm=yd(e.rmdir.bind(e)):t._rm=hv.bind(null,t))}var J=class{constructor(e){if(typeof e._original_unwrapped_fs!="undefined")return e;let r=Object.getOwnPropertyDescriptor(e,"promises");r&&r.enumerable?LE(this,e.promises):LE(this,e),this._original_unwrapped_fs=e}async exists(e,r={}){try{return await this._stat(e),!0}catch(i){if(i.code==="ENOENT"||i.code==="ENOTDIR"||(i.code||"").includes("ENS"))return!1;throw console.log('Unhandled error in "FileSystem.exists()" function',i),i}}async read(e,r={}){try{let i=await this._readFile(e,r);if(r.autocrlf==="true")try{i=new TextDecoder("utf8",{fatal:!0}).decode(i),i=i.replace(/\r\n/g,` -`),i=new TextEncoder().encode(i)}catch(n){}return typeof i!="string"&&(i=Buffer.from(i)),i}catch(i){return null}}async write(e,r,i={}){try{await this._writeFile(e,r,i)}catch(n){await this.mkdir(xa(e)),await this._writeFile(e,r,i)}}async mkdir(e,r=!1){try{await this._mkdir(e)}catch(i){if(i===null||i.code==="EEXIST")return;if(r)throw i;if(i.code==="ENOENT"){let n=xa(e);if(n==="."||n==="/"||n===e)throw i;await this.mkdir(n),await this.mkdir(e,!0)}}}async rm(e){try{await this._unlink(e)}catch(r){if(r.code!=="ENOENT")throw r}}async rmdir(e,r){try{r&&r.recursive?await this._rm(e,r):await this._rmdir(e)}catch(i){if(i.code!=="ENOENT")throw i}}async readdir(e){try{let r=await this._readdir(e);return r.sort(Fd),r}catch(r){return r.code==="ENOTDIR"?null:[]}}async readdirDeep(e){let r=await this._readdir(e);return(await Promise.all(r.map(async n=>{let s=e+"/"+n;return(await this._stat(s)).isDirectory()?this.readdirDeep(s):s}))).reduce((n,s)=>n.concat(s),[])}async lstat(e){try{return await this._lstat(e)}catch(r){if(r.code==="ENOENT"||(r.code||"").includes("ENS"))return null;throw r}}async readlink(e,r={encoding:"buffer"}){try{let i=await this._readlink(e,r);return Buffer.isBuffer(i)?i:Buffer.from(i)}catch(i){if(i.code==="ENOENT"||(i.code||"").includes("ENS"))return null;throw i}}async writelink(e,r){return this._symlink(r.toString("utf8"),e)}};function C(t,e){if(e===void 0)throw new Sr(t)}async function ee({fsp:t,dotgit:e}){C("fsp",t),C("dotgit",e);let r=await t._stat(e).catch(()=>({isFile:()=>!1,isDirectory:()=>!1}));return r.isDirectory()?e:r.isFile()?t._readFile(e,"utf8").then(i=>i.trimRight().substr(8)).then(i=>O(xa(e),i)):e}async function Cd(t,e){return!t&&!e?!1:t&&!e||!t&&e?!0:!(await t.type()==="tree"&&await e.type()==="tree"||await t.type()===await e.type()&&await t.mode()===await e.mode()&&await t.oid()===await e.oid())}async function nk({fs:t,dir:e,gitdir:r=O(e,".git"),commit:i="HEAD",cache:n={}}){try{C("fs",t),C("dir",e),C("gitdir",r);let s=new J(t),a=[Zr({ref:i}),nl(),Aa()],o=[],l=await ee({fsp:s,dotgit:r});await mt.acquire({fs:s,gitdir:l,cache:n},async function(u){o=u.unmergedPaths});let c=await Fs({fs:s,cache:n,dir:e,gitdir:l,trees:a,map:async function(u,[f,d,h]){let m=!await Cd(d,h),g=o.includes(u),v=!await Cd(h,f);if(m||g)return f?{path:u,mode:await f.mode(),oid:await f.oid(),type:await f.type(),content:await f.content()}:void 0;if(v)return!1;throw new tu(u)}});await mt.acquire({fs:s,gitdir:l,cache:n},async function(u){for(let f of c)if(f!==!1){if(!f){await s.rmdir(`${e}/${f.path}`,{recursive:!0}),u.delete({filepath:f.path});continue}if(f.type==="blob"){let d=new TextDecoder().decode(f.content);await s.write(`${e}/${f.path}`,d,{mode:f.mode}),u.insert({filepath:f.path,oid:f.oid,stage:0})}}})}catch(s){throw s.caller="git.abortMerge",s}}var Is=class{static async isIgnored({fs:e,dir:r,gitdir:i=O(r,".git"),filepath:n}){if(Sd(n)===".git")return!0;if(n===".")return!1;let s="",a=O(i,"info","exclude");await e.exists(a)&&(s=await e.read(a,"utf8"));let o=[{gitignore:O(r,".gitignore"),filepath:n}],l=n.split("/").filter(Boolean);for(let u=1;u{let f=await(await ct.get({fs:o,gitdir:l})).get("core.autocrlf");return pv({dir:e,gitdir:l,fs:o,filepath:i,index:c,force:s,parallel:a,autocrlf:f})})}catch(o){throw o.caller="git.add",o}}async function pv({dir:t,gitdir:e,fs:r,filepath:i,index:n,force:s,parallel:a,autocrlf:o}){i=Array.isArray(i)?i:[i];let l=i.map(async d=>{if(!s&&await Is.isIgnored({fs:r,dir:t,gitdir:e,filepath:d}))return;let h=await r.lstat(O(t,d));if(!h)throw new He(d);if(h.isDirectory()){let m=await r.readdir(O(t,d));if(a){let g=m.map(v=>pv({dir:t,gitdir:e,fs:r,filepath:[O(d,v)],index:n,force:s,parallel:a,autocrlf:o}));await Promise.all(g)}else for(let g of m)await pv({dir:t,gitdir:e,fs:r,filepath:[O(d,g)],index:n,force:s,parallel:a,autocrlf:o})}else{let m=h.isSymbolicLink()?await r.readlink(O(t,d)).then(ak):await r.read(O(t,d),{autocrlf:o});if(m===null)throw new He(d);let g=await Ar({fs:r,gitdir:e,type:"blob",object:m});n.insert({filepath:d,stats:h,oid:g})}}),c=await Promise.allSettled(l),u=c.filter(d=>d.status==="rejected").map(d=>d.reason);if(u.length>1)throw new Kc(u);if(u.length===1)throw u[0];return c.filter(d=>d.status==="fulfilled"&&d.value).map(d=>d.value)}async function iu({fs:t,gitdir:e,path:r}){return(await ct.get({fs:t,gitdir:e})).get(r)}function lk(t,...e){for(let r of e)if(r)for(let i of Object.keys(r)){let n=r[i];n!==void 0&&(t[i]=n)}return t}async function Os({fs:t,gitdir:e,author:r,commit:i}){let n=Math.floor(Date.now()/1e3),s={name:await iu({fs:t,gitdir:e,path:"user.name"}),email:await iu({fs:t,gitdir:e,path:"user.email"})||"",timestamp:n,timezoneOffset:new Date(n*1e3).getTimezoneOffset()},a=lk({},s,i?i.author:void 0,r);if(a.name!==void 0)return a}async function Jo({fs:t,gitdir:e,author:r,committer:i,commit:n}){let s=Math.floor(Date.now()/1e3),a={name:await iu({fs:t,gitdir:e,path:"user.name"}),email:await iu({fs:t,gitdir:e,path:"user.email"})||"",timestamp:s,timezoneOffset:new Date(s*1e3).getTimezoneOffset()},o=lk({},a,n?n.committer:void 0,r,i);if(o.name!==void 0)return o}async function ck({fs:t,cache:e,gitdir:r,oid:i}){let{type:n,object:s}=await Ke({fs:t,cache:e,gitdir:r,oid:i});if(n==="tag")return i=Kr.from(s).parse().object,ck({fs:t,cache:e,gitdir:r,oid:i});if(n!=="commit")throw new hr(i,n,"commit");return{commit:kr.from(s),oid:i}}async function el({fs:t,cache:e,gitdir:r,oid:i}){let{commit:n,oid:s}=await ck({fs:t,cache:e,gitdir:r,oid:i});return{oid:s,commit:n.parse(),payload:n.withoutSignature()}}async function Od({fs:t,cache:e,onSign:r,gitdir:i,message:n,author:s,committer:a,signingKey:o,amend:l=!1,dryRun:c=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h}){let m=!1,g=!1;f||(g=!(await t.read(`${i}/HEAD`,{encoding:"utf8"})).startsWith("ref:"),f=await W.resolve({fs:t,gitdir:i,ref:"HEAD",depth:2}));let v,w;try{v=await W.resolve({fs:t,gitdir:i,ref:f}),w=await el({fs:t,gitdir:i,oid:v,cache:{}})}catch(x){m=!0}if(l&&m)throw new ru(f);let b=l?await Os({fs:t,gitdir:i,author:s,commit:w.commit}):await Os({fs:t,gitdir:i,author:s});if(!b)throw new Jt("author");let k=l?await Jo({fs:t,gitdir:i,author:b,committer:a,commit:w.commit}):await Jo({fs:t,gitdir:i,author:b,committer:a});if(!k)throw new Jt("committer");return mt.acquire({fs:t,gitdir:i,cache:e,allowUnmerged:!1},async function(x){let A=KE(x.entries).get(".");if(h||(h=await uk({fs:t,gitdir:i,inode:A,dryRun:c})),d?d=await Promise.all(d.map(_=>W.resolve({fs:t,gitdir:i,ref:_}))):l?d=w.commit.parent:d=v?[v]:[],!n)if(l)n=w.commit.message;else throw new Sr("message");let y=kr.from({tree:h,parent:d,author:b,committer:k,message:n});o&&(y=await kr.sign(y,r,o));let S=await Ar({fs:t,gitdir:i,type:"commit",object:y.toObject(),dryRun:c});return!u&&!c&&await W.writeRef({fs:t,gitdir:i,ref:g?"HEAD":f,value:S}),S})}async function uk({fs:t,gitdir:e,inode:r,dryRun:i}){let n=r.children;for(let l of n)l.type==="tree"&&(l.metadata.mode="040000",l.metadata.oid=await uk({fs:t,gitdir:e,inode:l,dryRun:i}));let s=n.map(l=>({mode:l.metadata.mode,path:l.basename,oid:l.metadata.oid,type:l.type})),a=Er.from(s);return await Ar({fs:t,gitdir:e,type:"tree",object:a.toObject(),dryRun:i})}async function su({fs:t,cache:e,gitdir:r,oid:i,filepath:n}){if(n.startsWith("/"))throw new $s("leading-slash");if(n.endsWith("/"))throw new $s("trailing-slash");let s=i,a=await Qo({fs:t,cache:e,gitdir:r,oid:i}),o=a.tree;if(n==="")i=a.oid;else{let l=n.split("/");i=await fk({fs:t,cache:e,gitdir:r,tree:o,pathArray:l,oid:s,filepath:n})}return i}async function fk({fs:t,cache:e,gitdir:r,tree:i,pathArray:n,oid:s,filepath:a}){let o=n.shift();for(let l of i)if(l.path===o){if(n.length===0)return l.oid;{let{type:c,object:u}=await Ke({fs:t,cache:e,gitdir:r,oid:l.oid});if(c!=="tree")throw new hr(s,c,"tree",a);return i=Er.from(u),fk({fs:t,cache:e,gitdir:r,tree:i,pathArray:n,oid:s,filepath:a})}}throw new He(`file or directory found at "${s}:${a}"`)}async function sl({fs:t,cache:e,gitdir:r,oid:i,filepath:n=void 0}){n!==void 0&&(i=await su({fs:t,cache:e,gitdir:r,oid:i,filepath:n}));let{tree:s,oid:a}=await Qo({fs:t,cache:e,gitdir:r,oid:i});return{oid:a,tree:s.entries()}}async function au({fs:t,gitdir:e,tree:r}){let i=Er.from(r).toObject();return await Ar({fs:t,gitdir:e,type:"tree",object:i,format:"content"})}async function C8({fs:t,cache:e,onSign:r,gitdir:i,ref:n,oid:s,note:a,force:o,author:l,committer:c,signingKey:u}){let f;try{f=await W.resolve({gitdir:i,fs:t,ref:n})}catch(w){if(!(w instanceof He))throw w}let h=(await sl({fs:t,cache:e,gitdir:i,oid:f||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;if(o)h=h.filter(w=>w.path!==s);else for(let w of h)if(w.path===s)throw new $i("note",s);typeof a=="string"&&(a=Buffer.from(a,"utf8"));let m=await Ar({fs:t,gitdir:i,type:"blob",object:a,format:"content"});h.push({mode:"100644",path:s,oid:m,type:"blob"});let g=await au({fs:t,gitdir:i,tree:h});return await Od({fs:t,cache:e,onSign:r,gitdir:i,ref:n,tree:g,parent:f&&[f],message:`Note added by 'isomorphic-git addNote' -`,author:l,committer:c,signingKey:u})}async function dk({fs:t,onSign:e,dir:r,gitdir:i=O(r,".git"),ref:n="refs/notes/commits",oid:s,note:a,force:o,author:l,committer:c,signingKey:u,cache:f={}}){try{C("fs",t),C("gitdir",i),C("oid",s),C("note",a),u&&C("onSign",e);let d=new J(t),h=await Os({fs:d,gitdir:i,author:l});if(!h)throw new Jt("author");let m=await Jo({fs:d,gitdir:i,author:h,committer:c});if(!m)throw new Jt("committer");let g=await ee({fsp:d,dotgit:i});return await C8({fs:d,cache:f,onSign:e,gitdir:g,ref:n,oid:s,note:a,force:o,author:h,committer:m,signingKey:u})}catch(d){throw d.caller="git.addNote",d}}var P8=/(^|[/.])([/.]|$)|^@$|@{|[\x00-\x20\x7f~^:?*[\\]|\.lock(\/|$)/;function nu(t,e){if(typeof t!="string")throw new TypeError("Reference name must be a string");return!P8.test(t)&&(!!e||t.includes("/"))}async function hk({fs:t,gitdir:e,remote:r,url:i,force:n}){if(!nu(r,!0))throw new Fi(r,Hc.clean(r));let s=await ct.get({fs:t,gitdir:e});if(!n&&(await s.getSubsections("remote")).includes(r)&&i!==await s.get(`remote.${r}.url`))throw new $i("remote",r);await s.set(`remote.${r}.url`,i),await s.set(`remote.${r}.fetch`,`+refs/heads/*:refs/remotes/${r}/*`),await ct.save({fs:t,gitdir:e,config:s})}async function pk({fs:t,dir:e,gitdir:r=O(e,".git"),remote:i,url:n,force:s=!1}){try{C("fs",t),C("gitdir",r),C("remote",i),C("url",n);let a=new J(t),o=await ee({fsp:a,dotgit:r});return await hk({fs:a,gitdir:o,remote:i,url:n,force:s})}catch(a){throw a.caller="git.addRemote",a}}async function R8({fs:t,cache:e,onSign:r,gitdir:i,ref:n,tagger:s,message:a=n,gpgsig:o,object:l,signingKey:c,force:u=!1}){if(n=n.startsWith("refs/tags/")?n:`refs/tags/${n}`,!u&&await W.exists({fs:t,gitdir:i,ref:n}))throw new $i("tag",n);let f=await W.resolve({fs:t,gitdir:i,ref:l||"HEAD"}),{type:d}=await Ke({fs:t,cache:e,gitdir:i,oid:f}),h=Kr.from({object:f,type:d,tag:n.replace("refs/tags/",""),tagger:s,message:a,gpgsig:o});c&&(h=await Kr.sign(h,r,c));let m=await Ar({fs:t,gitdir:i,type:"tag",object:h.toObject()});await W.writeRef({fs:t,gitdir:i,ref:n,value:m})}async function mk({fs:t,onSign:e,dir:r,gitdir:i=O(r,".git"),ref:n,tagger:s,message:a=n,gpgsig:o,object:l,signingKey:c,force:u=!1,cache:f={}}){try{C("fs",t),C("gitdir",i),C("ref",n),c&&C("onSign",e);let d=new J(t),h=await ee({fsp:d,dotgit:i}),m=await Os({fs:d,gitdir:h,author:s});if(!m)throw new Jt("tagger");return await R8({fs:d,cache:f,onSign:e,gitdir:h,ref:n,tagger:m,message:a,gpgsig:o,object:l,signingKey:c,force:u})}catch(d){throw d.caller="git.annotatedTag",d}}async function $8({fs:t,gitdir:e,ref:r,object:i,checkout:n=!1,force:s=!1}){if(!nu(r,!0))throw new Fi(r,Hc.clean(r));let a=`refs/heads/${r}`;if(!s&&await W.exists({fs:t,gitdir:e,ref:a}))throw new $i("branch",r,!1);let o;try{o=await W.resolve({fs:t,gitdir:e,ref:i||"HEAD"})}catch(l){}o&&await W.writeRef({fs:t,gitdir:e,ref:a,value:o}),n&&await W.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:a})}async function gk({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i,object:n,checkout:s=!1,force:a=!1}){try{C("fs",t),C("gitdir",r),C("ref",i);let o=new J(t),l=await ee({fsp:o,dotgit:r});return await $8({fs:o,gitdir:l,ref:i,object:n,checkout:s,force:a})}catch(o){throw o.caller="git.branch",o}}var vk=(t,e)=>t==="."||e==null||e.length===0||e==="."?!0:e.length>=t.length?e.startsWith(t):t.startsWith(e);async function wv({fs:t,cache:e,onProgress:r,onPostCheckout:i,dir:n,gitdir:s,remote:a,ref:o,filepaths:l,noCheckout:c,noUpdateHead:u,dryRun:f,force:d,track:h=!0,nonBlocking:m=!1,batchSize:g=100}){let v;if(i)try{v=await W.resolve({fs:t,gitdir:s,ref:"HEAD"})}catch(b){v="0000000000000000000000000000000000000000"}let w;try{w=await W.resolve({fs:t,gitdir:s,ref:o})}catch(b){if(o==="HEAD")throw b;let k=`${a}/${o}`;if(w=await W.resolve({fs:t,gitdir:s,ref:k}),h){let x=await ct.get({fs:t,gitdir:s});await x.set(`branch.${o}.remote`,a),await x.set(`branch.${o}.merge`,`refs/heads/${o}`),await ct.save({fs:t,gitdir:s,config:x})}await W.writeRef({fs:t,gitdir:s,ref:`refs/heads/${o}`,value:w})}if(!c){let b;try{b=await F8({fs:t,cache:e,onProgress:r,dir:n,gitdir:s,ref:o,force:d,filepaths:l})}catch(y){throw y instanceof He&&y.data.what===w?new Vc(o,w):y}let k=b.filter(([y])=>y==="conflict").map(([y,S])=>S);if(k.length>0)throw new zc(k);let x=b.filter(([y])=>y==="error").map(([y,S])=>S);if(x.length>0)throw new he(x.join(", "));if(f){i&&await i({previousHead:v,newHead:w,type:l!=null&&l.length>0?"file":"branch"});return}let E=0,A=b.length;if(await mt.acquire({fs:t,gitdir:s,cache:e},async function(y){await Promise.all(b.filter(([S])=>S==="delete"||S==="delete-index").map(async function([S,_]){let T=`${n}/${_}`;S==="delete"&&await t.rm(T),y.delete({filepath:_}),r&&await r({phase:"Updating workdir",loaded:++E,total:A})}))}),await mt.acquire({fs:t,gitdir:s,cache:e},async function(y){for(let[S,_]of b)if(S==="rmdir"||S==="rmdir-index"){let T=`${n}/${_}`;try{S==="rmdir"&&await t.rmdir(T),y.delete({filepath:_}),r&&await r({phase:"Updating workdir",loaded:++E,total:A})}catch(P){if(P.code==="ENOTEMPTY")console.log(`Did not delete ${_} because directory is not empty`);else throw P}}}),await Promise.all(b.filter(([y])=>y==="mkdir"||y==="mkdir-index").map(async function([y,S]){let _=`${n}/${S}`;await t.mkdir(_),r&&await r({phase:"Updating workdir",loaded:++E,total:A})})),m){let y=b.filter(([_])=>_==="create"||_==="create-index"||_==="update"||_==="mkdir-index"),S=await BE("Update Working Dir",y.map(([_,T,P,D,B])=>()=>O8({fs:t,cache:e,gitdir:s,dir:n},[_,T,P,D,B])),r,g);await mt.acquire({fs:t,gitdir:s,cache:e,allowUnmerged:!0},async function(_){await BE("Update Index",S.map(([T,P,D])=>()=>I8({index:_,fullpath:T,oid:P,stats:D})),r,g)})}else await mt.acquire({fs:t,gitdir:s,cache:e,allowUnmerged:!0},async function(y){await Promise.all(b.filter(([S])=>S==="create"||S==="create-index"||S==="update"||S==="mkdir-index").map(async function([S,_,T,P,D]){let B=`${n}/${_}`;try{if(S!=="create-index"&&S!=="mkdir-index"){let{object:ce}=await Ke({fs:t,cache:e,gitdir:s,oid:T});if(D&&await t.rm(B),P===33188)await t.write(B,ce);else if(P===33261)await t.write(B,ce,{mode:511});else if(P===40960)await t.writelink(B,ce);else throw new he(`Invalid mode 0o${P.toString(8)} detected in blob ${T}`)}let N=await t.lstat(B);P===33261&&(N.mode=493),S==="mkdir-index"&&(N.mode=57344),y.insert({filepath:_,stats:N,oid:T}),r&&await r({phase:"Updating workdir",loaded:++E,total:A})}catch(N){console.log(N)}}))});i&&await i({previousHead:v,newHead:w,type:l!=null&&l.length>0?"file":"branch"})}if(!u){let b=await W.expand({fs:t,gitdir:s,ref:o});b.startsWith("refs/heads")?await W.writeSymbolicRef({fs:t,gitdir:s,ref:"HEAD",value:b}):await W.writeRef({fs:t,gitdir:s,ref:"HEAD",value:w})}}async function F8({fs:t,cache:e,onProgress:r,dir:i,gitdir:n,ref:s,force:a,filepaths:o}){let l=0;return Fs({fs:t,cache:e,dir:i,gitdir:n,trees:[Zr({ref:s}),nl(),Aa()],map:async function(c,[u,f,d]){if(c===".")return;if(o&&!o.some(m=>vk(c,m)))return null;switch(r&&await r({phase:"Analyzing workdir",loaded:++l}),[!!d,!!u,!!f].map(Number).join("")){case"000":return;case"001":return a&&o&&o.includes(c)?["delete",c]:void 0;case"010":switch(await u.type()){case"tree":return["mkdir",c];case"blob":return["create",c,await u.oid(),await u.mode()];case"commit":return["mkdir-index",c,await u.oid(),await u.mode()];default:return["error",`new entry Unhandled type ${await u.type()}`]}case"011":switch(`${await u.type()}-${await f.type()}`){case"tree-tree":return;case"tree-blob":case"blob-tree":return["conflict",c];case"blob-blob":return await u.oid()!==await f.oid()?a?["update",c,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",c]:await u.mode()!==await f.mode()?a?["update",c,await u.oid(),await u.mode(),!0]:["conflict",c]:["create-index",c,await u.oid(),await u.mode()];case"commit-tree":return;case"commit-blob":return["conflict",c];default:return["error",`new entry Unhandled type ${u.type}`]}case"100":return["delete-index",c];case"101":switch(await d.type()){case"tree":return["rmdir-index",c];case"blob":return await d.oid()!==await f.oid()?a?["delete",c]:["conflict",c]:["delete",c];case"commit":return["rmdir-index",c];default:return["error",`delete entry Unhandled type ${await d.type()}`]}case"110":case"111":switch(`${await d.type()}-${await u.type()}`){case"tree-tree":return;case"blob-blob":{if(await d.oid()===await u.oid()&&await d.mode()===await u.mode()&&!a)return;if(f){if(await f.oid()!==await d.oid()&&await f.oid()!==await u.oid())return a?["update",c,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",c]}else if(a)return["update",c,await u.oid(),await u.mode(),await u.mode()!==await d.mode()];return await u.mode()!==await d.mode()?["update",c,await u.oid(),await u.mode(),!0]:await u.oid()!==await d.oid()?["update",c,await u.oid(),await u.mode(),!1]:void 0}case"tree-blob":return["update-dir-to-blob",c,await u.oid()];case"blob-tree":return["update-blob-to-tree",c];case"commit-commit":return["mkdir-index",c,await u.oid(),await u.mode()];default:return["error",`update entry Unhandled type ${await d.type()}-${await u.type()}`]}}},reduce:async function(c,u){return u=ik(u),c?c&&c[0]==="rmdir"?(u.push(c),u):(u.unshift(c),u):u}})}async function I8({index:t,fullpath:e,stats:r,oid:i}){try{t.insert({filepath:e,stats:r,oid:i})}catch(n){console.warn(`Error inserting ${e} into index:`,n)}}async function O8({fs:t,cache:e,gitdir:r,dir:i},[n,s,a,o,l]){let c=`${i}/${s}`;if(n!=="create-index"&&n!=="mkdir-index"){let{object:f}=await Ke({fs:t,cache:e,gitdir:r,oid:a});if(l&&await t.rm(c),o===33188)await t.write(c,f);else if(o===33261)await t.write(c,f,{mode:511});else if(o===40960)await t.writelink(c,f);else throw new he(`Invalid mode 0o${o.toString(8)} detected in blob ${a}`)}let u=await t.lstat(c);return o===33261&&(u.mode=493),n==="mkdir-index"&&(u.mode=57344),[s,a,u]}async function BE(t,e,r,i){let n=[];try{for(let s=0;sl());(await Promise.allSettled(a)).forEach(l=>{l.status==="fulfilled"&&n.push(l.value)}),r&&await r({phase:"Updating workdir",loaded:s+a.length,total:e.length})}return n}catch(s){console.error(`Error during ${t}: ${s}`)}return n}async function yv({fs:t,onProgress:e,onPostCheckout:r,dir:i,gitdir:n=O(i,".git"),remote:s="origin",ref:a,filepaths:o,noCheckout:l=!1,noUpdateHead:c=a===void 0,dryRun:u=!1,force:f=!1,track:d=!0,cache:h={},nonBlocking:m=!1,batchSize:g=100}){try{C("fs",t),C("dir",i),C("gitdir",n);let v=a||"HEAD",w=new J(t),b=await ee({fsp:w,dotgit:n});return await wv({fs:w,cache:h,onProgress:e,onPostCheckout:r,dir:i,gitdir:b,remote:s,ref:v,filepaths:o,noCheckout:l,noUpdateHead:c,dryRun:u,force:f,track:d,nonBlocking:m,batchSize:g})}catch(v){throw v.caller="git.checkout",v}}var M8=/^refs\/(heads\/|tags\/|remotes\/)?(.*)/;function _a(t){let e=M8.exec(t);return e?e[1]==="remotes/"&&t.endsWith("/HEAD")?e[2].slice(0,-5):e[2]:t}async function Ds({fs:t,gitdir:e,fullname:r=!1,test:i=!1}){let n=await W.resolve({fs:t,gitdir:e,ref:"HEAD",depth:2});if(i)try{await W.resolve({fs:t,gitdir:e,ref:n})}catch(s){return}if(n.startsWith("refs/"))return r?n:_a(n)}function D8(t){return t=t.replace(/^git@([^:]+):/,"https://$1/"),t=t.replace(/^ssh:\/\//,"https://"),t}function wk({username:t="",password:e=""}){return`Basic ${Buffer.from(`${t}:${e}`).toString("base64")}`}async function ou(t,e){let r=ek(t);for(;;){let{value:i,done:n}=await r.next();if(i&&await e(i),n)break}r.return&&r.return()}async function Pd(t){let e=0,r=[];await ou(t,s=>{r.push(s),e+=s.byteLength});let i=new Uint8Array(e),n=0;for(let s of r)i.set(s,n),n+=s.byteLength;return i}function NE(t){let e=t.match(/^https?:\/\/([^/]+)@/);if(e==null)return{url:t,auth:{}};e=e[1];let[r,i]=e.split(":");return t=t.replace(`${e}@`,""),{url:t,auth:{username:r,password:i}}}function mv(t,e){let r=e.toString(16);return"0".repeat(t-r.length)+r}var at=class{static flush(){return Buffer.from("0000","utf8")}static delim(){return Buffer.from("0001","utf8")}static encode(e){typeof e=="string"&&(e=Buffer.from(e));let r=e.length+4,i=mv(4,r);return Buffer.concat([Buffer.from(i,"utf8"),e])}static streamReader(e){let r=new Ad(e);return async function(){try{let n=await r.read(4);if(n==null)return!0;if(n=parseInt(n.toString("utf8"),16),n===0||n===1)return null;let s=await r.read(n-4);return s==null?!0:s}catch(n){return e.error=n,!0}}}};async function HE(t){let e={},r;for(;r=await t(),r!==!0;){if(r===null)continue;r=r.toString("utf8").replace(/\n$/,"");let i=r.indexOf("=");if(i>-1){let n=r.slice(0,i),s=r.slice(i+1);e[n]=s}else e[r]=!0}return{protocolVersion:2,capabilities2:e}}async function UE(t,{service:e}){let r=new Set,i=new Map,n=new Map,s=at.streamReader(t),a=await s();for(;a===null;)a=await s();if(a===!0)throw new Wc;if(a.includes("version 2"))return HE(s);if(a.toString("utf8").replace(/\n$/,"")!==`# service=${e}`)throw new Sa(`# service=${e}\\n`,a.toString("utf8"));let o=await s();for(;o===null;)o=await s();if(o===!0)return{capabilities:r,refs:i,symrefs:n};if(o=o.toString("utf8"),o.includes("version 2"))return HE(s);let[l,c]=Jg(o,"\0","\\x00");if(c.split(" ").map(u=>r.add(u)),l!=="0000000000000000000000000000000000000000 capabilities^{}"){let[u,f]=Jg(l," "," ");for(i.set(f,u);;){let d=await s();if(d===!0)break;if(d!==null){let[h,m]=Jg(d.toString("utf8")," "," ");i.set(m,h)}}}for(let u of r)if(u.startsWith("symref=")){let f=u.match(/symref=([^:]+):(.*)/);f.length===3&&n.set(f[1],f[2])}return{protocolVersion:1,capabilities:r,refs:i,symrefs:n}}function Jg(t,e,r){let i=t.trim().split(e);if(i.length!==2)throw new Sa(`Two strings separated by '${r}'`,t.toString("utf8"));return i}var GE=(t,e)=>t.endsWith("?")?`${t}${e}`:`${t}/${e.replace(/^https?:\/\//,"")}`,jE=(t,e)=>{(e.username||e.password)&&(t.Authorization=wk(e)),e.headers&&Object.assign(t,e.headers)},ev=async t=>{try{let e=Buffer.from(await Pd(t.body)),r=e.toString("utf8");return{preview:r.length<256?r:r.slice(0,256)+"...",response:r,data:e}}catch(e){return{}}},tl=class{static async capabilities(){return["discover","connect"]}static async discover({http:e,onProgress:r,onAuth:i,onAuthSuccess:n,onAuthFailure:s,corsProxy:a,service:o,url:l,headers:c,protocolVersion:u}){let{url:f,auth:d}=NE(l),h=a?GE(a,f):f;(d.username||d.password)&&(c.Authorization=wk(d)),u===2&&(c["Git-Protocol"]="version=2");let m,g,v=!1;do if(m=await e.request({onProgress:r,method:"GET",url:`${h}/info/refs?service=${o}`,headers:c}),g=!1,m.statusCode===401||m.statusCode===203){let w=v?s:i;if(w){if(d=await w(f,{...d,headers:{...c}}),d&&d.cancel)throw new Ko;d&&(jE(c,d),v=!0,g=!0)}}else m.statusCode===200&&v&&n&&await n(f,d);while(g);if(m.statusCode!==200){let{response:w}=await ev(m);throw new Wo(m.statusCode,m.statusMessage,w)}if(m.headers["content-type"]===`application/x-${o}-advertisement`){let w=await UE(m.body,{service:o});return w.auth=d,w}else{let{preview:w,response:b,data:k}=await ev(m);try{let x=await UE([k],{service:o});return x.auth=d,x}catch(x){throw new Qc(w,b)}}}static async connect({http:e,onProgress:r,corsProxy:i,service:n,url:s,auth:a,body:o,headers:l}){let c=NE(s);c&&(s=c.url),i&&(s=GE(i,s)),l["content-type"]=`application/x-${n}-request`,l.accept=`application/x-${n}-result`,jE(l,a);let u=await e.request({onProgress:r,method:"POST",url:`${s}/${n}`,body:o,headers:l});if(u.statusCode!==200){let{response:f}=ev(u);throw new Wo(u.statusCode,u.statusMessage,f)}return u}},rl=class{static getRemoteHelperFor({url:e}){let r=new Map;r.set("http",tl),r.set("https",tl);let i=L8({url:e});if(!i)throw new eu(e);if(r.has(i.transport))return r.get(i.transport);throw new Jc(e,i.transport,i.transport==="ssh"?D8(e):void 0)}};function L8({url:t}){if(t.startsWith("git@"))return{transport:"ssh",address:t};let e=t.match(/(\w+)(:\/\/|::)(.*)/);if(e!==null){if(e[2]==="://")return{transport:e[1],address:e[0]};if(e[2]==="::")return{transport:e[1],address:e[3]}}}var ba=null,Ea=class{static async read({fs:e,gitdir:r}){ba===null&&(ba=new Nc);let i=O(r,"shallow"),n=new Set;return await ba.acquire(i,async function(){let s=await e.read(i,{encoding:"utf8"});if(s===null||s.trim()==="")return n;s.trim().split(` -`).map(a=>n.add(a))}),n}static async write({fs:e,gitdir:r,oids:i}){ba===null&&(ba=new Nc);let n=O(r,"shallow");if(i.size>0){let s=[...i].join(` +gpgsig`)),n=e.slice(e.indexOf(`-----END PGP SIGNATURE----- +`)+28);return Wi(r+` +`+n)}isolateSignature(){let e=this._commit.slice(this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"),this._commit.indexOf("-----END PGP SIGNATURE-----")+27);return M8(e)}static async sign(e,r,n){let i=e.withoutSignature(),s=t.justMessage(e._commit),{signature:a}=await r({payload:i,secretKey:n});a=Wi(a);let l=t.justHeaders(e._commit)+` +gpgsig`+nv(a)+` +`+s;return t.from(l)}};async function Jo({fs:t,cache:e,gitdir:r,oid:n}){if(n==="4b825dc642cb6eb9a060e54bf8d69288fbee4904")return{tree:Er.from([]),oid:n};let{type:i,object:s}=await Xe({fs:t,cache:e,gitdir:r,oid:n});if(i==="tag")return n=Zr.from(s).parse().object,Jo({fs:t,cache:e,gitdir:r,oid:n});if(i==="commit")return n=kr.from(s).parse().tree,Jo({fs:t,cache:e,gitdir:r,oid:n});if(i!=="tree")throw new fr(n,i,"tree");return{tree:Er.from(s),oid:n}}var gv=class{constructor({fs:e,gitdir:r,ref:n,cache:i}){this.fs=e,this.cache=i,this.gitdir=r,this.mapPromise=(async()=>{let a=new Map,o;try{o=await z.resolve({fs:e,gitdir:r,ref:n})}catch(c){c instanceof Be&&(o="4b825dc642cb6eb9a060e54bf8d69288fbee4904")}let l=await Jo({fs:e,cache:this.cache,gitdir:r,oid:o});return l.type="tree",l.mode="40000",a.set(".",l),a})();let s=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return s.type(this)}async mode(){return s.mode(this)}async stat(){return s.stat(this)}async content(){return s.content(this)}async oid(){return s.oid(this)}}}async readdir(e){let r=e._fullpath,{fs:n,cache:i,gitdir:s}=this,a=await this.mapPromise,o=a.get(r);if(!o)throw new Error(`No obj for ${r}`);let l=o.oid;if(!l)throw new Error(`No oid for obj ${JSON.stringify(o)}`);if(o.type!=="tree")return null;let{type:c,object:u}=await Xe({fs:n,cache:i,gitdir:s,oid:l});if(c!==o.type)throw new fr(l,c,o.type);let f=Er.from(u);for(let d of f)a.set(D(r,d.path),d);return f.entries().map(d=>D(r,d.path))}async type(e){if(e._type===!1){let r=await this.mapPromise,{type:n}=r.get(e._fullpath);e._type=n}return e._type}async mode(e){if(e._mode===!1){let r=await this.mapPromise,{mode:n}=r.get(e._fullpath);e._mode=ik(parseInt(n,8))}return e._mode}async stat(e){}async content(e){if(e._content===!1){let r=await this.mapPromise,{fs:n,cache:i,gitdir:s}=this,o=r.get(e._fullpath).oid,{type:l,object:c}=await Xe({fs:n,cache:i,gitdir:s,oid:o});l!=="blob"?e._content=void 0:e._content=new Uint8Array(c)}return e._content}async oid(e){if(e._oid===!1){let n=(await this.mapPromise).get(e._fullpath);e._oid=n.oid}return e._oid}};function Xr({ref:t="HEAD"}={}){let e=Object.create(null);return Object.defineProperty(e,Bd,{value:function({fs:r,gitdir:n,cache:i}){return new gv({fs:r,gitdir:n,ref:t,cache:i})}}),Object.freeze(e),e}var vv=class{constructor({fs:e,dir:r,gitdir:n,cache:i}){this.fs=e,this.cache=i,this.dir=r,this.gitdir=n,this.config=null;let s=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return s.type(this)}async mode(){return s.mode(this)}async stat(){return s.stat(this)}async content(){return s.content(this)}async oid(){return s.oid(this)}}}async readdir(e){let r=e._fullpath,{fs:n,dir:i}=this,s=await n.readdir(D(i,r));return s===null?null:s.map(a=>D(r,a))}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let{fs:r,dir:n}=this,i=await r.lstat(`${n}/${e._fullpath}`);if(!i)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let s=i.isDirectory()?"tree":"blob";s==="blob"&&!i.isFile()&&!i.isSymbolicLink()&&(s="special"),e._type=s,i=Vo(i),e._mode=i.mode,i.size===-1&&e._actualSize&&(i.size=e._actualSize),e._stat=i}return e._stat}async content(e){if(e._content===!1){let{fs:r,dir:n,gitdir:i}=this;if(await e.type()==="tree")e._content=void 0;else{let s;if(await e.mode()>>12===10)s=await r.readlink(`${n}/${e._fullpath}`);else{let o=await(await this._getGitConfig(r,i)).get("core.autocrlf");s=await r.read(`${n}/${e._fullpath}`,{autocrlf:o})}e._actualSize=s.length,e._stat&&e._stat.size===-1&&(e._stat.size=e._actualSize),e._content=new Uint8Array(s)}}return e._content}async oid(e){if(e._oid===!1){let r=this,{fs:n,gitdir:i,cache:s}=this,a;await ht.acquire({fs:n,gitdir:i,cache:s},async function(o){let l=o.entriesMap.get(e._fullpath),c=await e.stat(),f=await(await r._getGitConfig(n,i)).get("core.filemode"),d=typeof process!="undefined"?process.platform!=="win32":!0;if(!l||Td(c,l,f,d)){let h=await e.content();h===void 0?a=void 0:(a=await zi($s.wrap({type:"blob",object:h})),l&&a===l.oid&&(!f||c.mode===l.mode)&&Td(c,l,f,d)&&o.insert({filepath:e._fullpath,stats:c,oid:a}))}else a=l.oid}),e._oid=a}return e._oid}async _getGitConfig(e,r){return this.config?this.config:(this.config=await lt.get({fs:e,gitdir:r}),this.config)}};function sl(){let t=Object.create(null);return Object.defineProperty(t,Bd,{value:function({fs:e,dir:r,gitdir:n,cache:i}){return new vv({fs:e,dir:r,gitdir:n,cache:i})}}),Object.freeze(t),t}function D8(t,e){let r=e-t;return Array.from({length:r},(n,i)=>t+i)}var dk=typeof Array.prototype.flat=="undefined"?t=>t.reduce((e,r)=>e.concat(r),[]):t=>t.flat(),wv=class{constructor(){this.value=null}consider(e){e!=null&&(this.value===null?this.value=e:ec,reduce:a=async(l,c)=>{let u=dk(c);return l!==void 0&&u.unshift(l),u},iterate:o=(l,c)=>Promise.all([...c].map(l))}){let l=i.map(h=>h[Bd]({fs:t,dir:r,gitdir:n,cache:e})),c=new Array(l.length).fill("."),u=D8(0,l.length),f=async h=>{u.forEach(v=>{let w=h[v];h[v]=w&&new l[v].ConstructEntry(w)});let g=(await Promise.all(u.map(v=>{let w=h[v];return w?l[v].readdir(w):[]}))).map(v=>(v===null?[]:v)[Symbol.iterator]());return{entries:h,children:L8(g)}},d=async h=>{let{entries:m,children:g}=await f(h),v=m.find(b=>b&&b._fullpath)._fullpath,w=await s(v,m);if(w!==null){let b=await o(d,g);return b=b.filter(k=>k!==void 0),a(w,b)}};return d(c)}async function yv(t,e){let r=await t.readdir(e);r==null?await t.rm(e):r.length?await Promise.all(r.map(n=>{let i=D(e,n);return t.lstat(i).then(s=>{if(s)return s.isDirectory()?yv(t,i):t.rm(i)})})).then(()=>t.rmdir(e)):await t.rmdir(e)}function N8(t){return B8(t)&&jE(t.then)&&jE(t.catch)}function B8(t){return t&&typeof t=="object"}function jE(t){return typeof t=="function"}function qE(t){return N8((r=>{try{return r.readFile().catch(n=>n)}catch(n){return n}})(t))}var WE=["readFile","writeFile","mkdir","rmdir","unlink","stat","lstat","readdir","readlink","symlink"];function zE(t,e){if(qE(e))for(let r of WE)t[`_${r}`]=e[r].bind(e);else for(let r of WE)t[`_${r}`]=kd(e[r].bind(e));qE(e)?(e.cp&&(t._cp=e.cp.bind(e)),e.rm?t._rm=e.rm.bind(e):e.rmdir.length>1?t._rm=e.rmdir.bind(e):t._rm=yv.bind(null,t)):(e.cp&&(t._cp=kd(e.cp.bind(e))),e.rm?t._rm=kd(e.rm.bind(e)):e.rmdir.length>2?t._rm=kd(e.rmdir.bind(e)):t._rm=yv.bind(null,t))}var Q=class{constructor(e){if(typeof e._original_unwrapped_fs!="undefined")return e;let r=Object.getOwnPropertyDescriptor(e,"promises");r&&r.enumerable?zE(this,e.promises):zE(this,e),this._original_unwrapped_fs=e}async exists(e,r={}){try{return await this._stat(e),!0}catch(n){if(n.code==="ENOENT"||n.code==="ENOTDIR"||(n.code||"").includes("ENS"))return!1;throw console.log('Unhandled error in "FileSystem.exists()" function',n),n}}async read(e,r={}){try{let n=await this._readFile(e,r);if(r.autocrlf==="true")try{n=new TextDecoder("utf8",{fatal:!0}).decode(n),n=n.replace(/\r\n/g,` +`),n=new TextEncoder().encode(n)}catch(i){}return typeof n!="string"&&(n=Buffer.from(n)),n}catch(n){return null}}async write(e,r,n={}){try{await this._writeFile(e,r,n)}catch(i){await this.mkdir(Sa(e)),await this._writeFile(e,r,n)}}async mkdir(e,r=!1){try{await this._mkdir(e)}catch(n){if(n===null||n.code==="EEXIST")return;if(r)throw n;if(n.code==="ENOENT"){let i=Sa(e);if(i==="."||i==="/"||i===e)throw n;await this.mkdir(i),await this.mkdir(e,!0)}}}async rm(e){try{await this._unlink(e)}catch(r){if(r.code!=="ENOENT")throw r}}async rmdir(e,r){try{r&&r.recursive?await this._rm(e,r):await this._rmdir(e)}catch(n){if(n.code!=="ENOENT")throw n}}async readdir(e){try{let r=await this._readdir(e);return r.sort(Nd),r}catch(r){return r.code==="ENOTDIR"?null:[]}}async readdirDeep(e){let r=await this._readdir(e);return(await Promise.all(r.map(async i=>{let s=e+"/"+i;return(await this._stat(s)).isDirectory()?this.readdirDeep(s):s}))).reduce((i,s)=>i.concat(s),[])}async lstat(e){try{return await this._lstat(e)}catch(r){if(r.code==="ENOENT"||(r.code||"").includes("ENS"))return null;throw r}}async readlink(e,r={encoding:"buffer"}){try{let n=await this._readlink(e,r);return Buffer.isBuffer(n)?n:Buffer.from(n)}catch(n){if(n.code==="ENOENT"||(n.code||"").includes("ENS"))return null;throw n}}async writelink(e,r){return this._symlink(r.toString("utf8"),e)}};function T(t,e){if(e===void 0)throw new Sr(t)}async function J({fsp:t,dotgit:e}){T("fsp",t),T("dotgit",e);let r=await t._stat(e).catch(()=>({isFile:()=>!1,isDirectory:()=>!1}));return r.isDirectory()?e:r.isFile()?t._readFile(e,"utf8").then(n=>n.trimRight().substr(8)).then(n=>D(Sa(e),n)):e}async function Od(t,e){return!t&&!e?!1:t&&!e||!t&&e?!0:!(await t.type()==="tree"&&await e.type()==="tree"||await t.type()===await e.type()&&await t.mode()===await e.mode()&&await t.oid()===await e.oid())}async function hk({fs:t,dir:e,gitdir:r=D(e,".git"),commit:n="HEAD",cache:i={}}){try{T("fs",t),T("dir",e),T("gitdir",r);let s=new Q(t),a=[Xr({ref:n}),sl(),Ca()],o=[],l=await J({fsp:s,dotgit:r});await ht.acquire({fs:s,gitdir:l,cache:i},async function(u){o=u.unmergedPaths});let c=await Fs({fs:s,cache:i,dir:e,gitdir:l,trees:a,map:async function(u,[f,d,h]){let m=!await Od(d,h),g=o.includes(u),v=!await Od(h,f);if(m||g)return f?{path:u,mode:await f.mode(),oid:await f.oid(),type:await f.type(),content:await f.content()}:void 0;if(v)return!1;throw new ou(u)}});await ht.acquire({fs:s,gitdir:l,cache:i},async function(u){for(let f of c)if(f!==!1){if(!f){await s.rmdir(`${e}/${f.path}`,{recursive:!0}),u.delete({filepath:f.path});continue}if(f.type==="blob"){let d=new TextDecoder().decode(f.content);await s.write(`${e}/${f.path}`,d,{mode:f.mode}),u.insert({filepath:f.path,oid:f.oid,stage:0})}}})}catch(s){throw s.caller="git.abortMerge",s}}var Os=class{static async isIgnored({fs:e,dir:r,gitdir:n=D(r,".git"),filepath:i}){if(Pd(i)===".git")return!0;if(i===".")return!1;let s="",a=D(n,"info","exclude");await e.exists(a)&&(s=await e.read(a,"utf8"));let o=[{gitignore:D(r,".gitignore"),filepath:i}],l=i.split("/").filter(Boolean);for(let u=1;u{let f=await(await lt.get({fs:o,gitdir:l})).get("core.autocrlf");return bv({dir:e,gitdir:l,fs:o,filepath:n,index:c,force:s,parallel:a,autocrlf:f})})}catch(o){throw o.caller="git.add",o}}async function bv({dir:t,gitdir:e,fs:r,filepath:n,index:i,force:s,parallel:a,autocrlf:o}){n=Array.isArray(n)?n:[n];let l=n.map(async d=>{if(!s&&await Os.isIgnored({fs:r,dir:t,gitdir:e,filepath:d}))return;let h=await r.lstat(D(t,d));if(!h)throw new Be(d);if(h.isDirectory()){let m=await r.readdir(D(t,d));if(a){let g=m.map(v=>bv({dir:t,gitdir:e,fs:r,filepath:[D(d,v)],index:i,force:s,parallel:a,autocrlf:o}));await Promise.all(g)}else for(let g of m)await bv({dir:t,gitdir:e,fs:r,filepath:[D(d,g)],index:i,force:s,parallel:a,autocrlf:o})}else{let m=h.isSymbolicLink()?await r.readlink(D(t,d)).then(mk):await r.read(D(t,d),{autocrlf:o});if(m===null)throw new Be(d);let g=await Ar({fs:r,gitdir:e,type:"blob",object:m});i.insert({filepath:d,stats:h,oid:g})}}),c=await Promise.allSettled(l),u=c.filter(d=>d.status==="rejected").map(d=>d.reason);if(u.length>1)throw new nu(u);if(u.length===1)throw u[0];return c.filter(d=>d.status==="fulfilled"&&d.value).map(d=>d.value)}async function cu({fs:t,gitdir:e,path:r}){return(await lt.get({fs:t,gitdir:e})).get(r)}function vk(t,...e){for(let r of e)if(r)for(let n of Object.keys(r)){let i=r[n];i!==void 0&&(t[n]=i)}return t}async function Ms({fs:t,gitdir:e,author:r,commit:n}){let i=Math.floor(Date.now()/1e3),s={name:await cu({fs:t,gitdir:e,path:"user.name"}),email:await cu({fs:t,gitdir:e,path:"user.email"})||"",timestamp:i,timezoneOffset:new Date(i*1e3).getTimezoneOffset()},a=vk({},s,n?n.author:void 0,r);if(a.name!==void 0)return a}async function el({fs:t,gitdir:e,author:r,committer:n,commit:i}){let s=Math.floor(Date.now()/1e3),a={name:await cu({fs:t,gitdir:e,path:"user.name"}),email:await cu({fs:t,gitdir:e,path:"user.email"})||"",timestamp:s,timezoneOffset:new Date(s*1e3).getTimezoneOffset()},o=vk({},a,i?i.committer:void 0,r,n);if(o.name!==void 0)return o}async function wk({fs:t,cache:e,gitdir:r,oid:n}){let{type:i,object:s}=await Xe({fs:t,cache:e,gitdir:r,oid:n});if(i==="tag")return n=Zr.from(s).parse().object,wk({fs:t,cache:e,gitdir:r,oid:n});if(i!=="commit")throw new fr(n,i,"commit");return{commit:kr.from(s),oid:n}}async function tl({fs:t,cache:e,gitdir:r,oid:n}){let{commit:i,oid:s}=await wk({fs:t,cache:e,gitdir:r,oid:n});return{oid:s,commit:i.parse(),payload:i.withoutSignature()}}async function Hd({fs:t,cache:e,onSign:r,gitdir:n,message:i,author:s,committer:a,signingKey:o,amend:l=!1,dryRun:c=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h}){let m=!1,g=!1;f||(g=!(await t.read(`${n}/HEAD`,{encoding:"utf8"})).startsWith("ref:"),f=await z.resolve({fs:t,gitdir:n,ref:"HEAD",depth:2}));let v,w;try{v=await z.resolve({fs:t,gitdir:n,ref:f}),w=await tl({fs:t,gitdir:n,oid:v,cache:{}})}catch(x){m=!0}if(l&&m)throw new lu(f);let b=l?await Ms({fs:t,gitdir:n,author:s,commit:w.commit}):await Ms({fs:t,gitdir:n,author:s});if(!b)throw new Kt("author");let k=l?await el({fs:t,gitdir:n,author:b,committer:a,commit:w.commit}):await el({fs:t,gitdir:n,author:b,committer:a});if(!k)throw new Kt("committer");return ht.acquire({fs:t,gitdir:n,cache:e,allowUnmerged:!1},async function(x){let A=ak(x.entries).get(".");if(h||(h=await yk({fs:t,gitdir:n,inode:A,dryRun:c})),d?d=await Promise.all(d.map(_=>z.resolve({fs:t,gitdir:n,ref:_}))):l?d=w.commit.parent:d=v?[v]:[],!i)if(l)i=w.commit.message;else throw new Sr("message");let y=kr.from({tree:h,parent:d,author:b,committer:k,message:i});o&&(y=await kr.sign(y,r,o));let S=await Ar({fs:t,gitdir:n,type:"commit",object:y.toObject(),dryRun:c});return!u&&!c&&await z.writeRef({fs:t,gitdir:n,ref:g?"HEAD":f,value:S}),S})}async function yk({fs:t,gitdir:e,inode:r,dryRun:n}){let i=r.children;for(let l of i)l.type==="tree"&&(l.metadata.mode="040000",l.metadata.oid=await yk({fs:t,gitdir:e,inode:l,dryRun:n}));let s=i.map(l=>({mode:l.metadata.mode,path:l.basename,oid:l.metadata.oid,type:l.type})),a=Er.from(s);return await Ar({fs:t,gitdir:e,type:"tree",object:a.toObject(),dryRun:n})}async function fu({fs:t,cache:e,gitdir:r,oid:n,filepath:i}){if(i.startsWith("/"))throw new Is("leading-slash");if(i.endsWith("/"))throw new Is("trailing-slash");let s=n,a=await Jo({fs:t,cache:e,gitdir:r,oid:n}),o=a.tree;if(i==="")n=a.oid;else{let l=i.split("/");n=await bk({fs:t,cache:e,gitdir:r,tree:o,pathArray:l,oid:s,filepath:i})}return n}async function bk({fs:t,cache:e,gitdir:r,tree:n,pathArray:i,oid:s,filepath:a}){let o=i.shift();for(let l of n)if(l.path===o){if(i.length===0)return l.oid;{let{type:c,object:u}=await Xe({fs:t,cache:e,gitdir:r,oid:l.oid});if(c!=="tree")throw new fr(s,c,"tree",a);return n=Er.from(u),bk({fs:t,cache:e,gitdir:r,tree:n,pathArray:i,oid:s,filepath:a})}}throw new Be(`file or directory found at "${s}:${a}"`)}async function al({fs:t,cache:e,gitdir:r,oid:n,filepath:i=void 0}){i!==void 0&&(n=await fu({fs:t,cache:e,gitdir:r,oid:n,filepath:i}));let{tree:s,oid:a}=await Jo({fs:t,cache:e,gitdir:r,oid:n});return{oid:a,tree:s.entries()}}async function du({fs:t,gitdir:e,tree:r}){let n=Er.from(r).toObject();return await Ar({fs:t,gitdir:e,type:"tree",object:n,format:"content"})}async function j8({fs:t,cache:e,onSign:r,gitdir:n,ref:i,oid:s,note:a,force:o,author:l,committer:c,signingKey:u}){let f;try{f=await z.resolve({gitdir:n,fs:t,ref:i})}catch(w){if(!(w instanceof Be))throw w}let h=(await al({fs:t,cache:e,gitdir:n,oid:f||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;if(o)h=h.filter(w=>w.path!==s);else for(let w of h)if(w.path===s)throw new Mn("note",s);typeof a=="string"&&(a=Buffer.from(a,"utf8"));let m=await Ar({fs:t,gitdir:n,type:"blob",object:a,format:"content"});h.push({mode:"100644",path:s,oid:m,type:"blob"});let g=await du({fs:t,gitdir:n,tree:h});return await Hd({fs:t,cache:e,onSign:r,gitdir:n,ref:i,tree:g,parent:f&&[f],message:`Note added by 'isomorphic-git addNote' +`,author:l,committer:c,signingKey:u})}async function _k({fs:t,onSign:e,dir:r,gitdir:n=D(r,".git"),ref:i="refs/notes/commits",oid:s,note:a,force:o,author:l,committer:c,signingKey:u,cache:f={}}){try{T("fs",t),T("gitdir",n),T("oid",s),T("note",a),u&&T("onSign",e);let d=new Q(t),h=await Ms({fs:d,gitdir:n,author:l});if(!h)throw new Kt("author");let m=await el({fs:d,gitdir:n,author:h,committer:c});if(!m)throw new Kt("committer");let g=await J({fsp:d,dotgit:n});return await j8({fs:d,cache:f,onSign:e,gitdir:g,ref:i,oid:s,note:a,force:o,author:h,committer:m,signingKey:u})}catch(d){throw d.caller="git.addNote",d}}var q8=/(^|[/.])([/.]|$)|^@$|@{|[\x00-\x20\x7f~^:?*[\\]|\.lock(\/|$)/;function uu(t,e){if(typeof t!="string")throw new TypeError("Reference name must be a string");return!q8.test(t)&&(!!e||t.includes("/"))}async function xk({fs:t,gitdir:e,remote:r,url:n,force:i}){if(!uu(r,!0))throw new Dn(r,zc.clean(r));let s=await lt.get({fs:t,gitdir:e});if(!i&&(await s.getSubsections("remote")).includes(r)&&n!==await s.get(`remote.${r}.url`))throw new Mn("remote",r);await s.set(`remote.${r}.url`,n),await s.set(`remote.${r}.fetch`,`+refs/heads/*:refs/remotes/${r}/*`),await lt.save({fs:t,gitdir:e,config:s})}async function Sk({fs:t,dir:e,gitdir:r=D(e,".git"),remote:n,url:i,force:s=!1}){try{T("fs",t),T("gitdir",r),T("remote",n),T("url",i);let a=new Q(t),o=await J({fsp:a,dotgit:r});return await xk({fs:a,gitdir:o,remote:n,url:i,force:s})}catch(a){throw a.caller="git.addRemote",a}}async function W8({fs:t,cache:e,onSign:r,gitdir:n,ref:i,tagger:s,message:a=i,gpgsig:o,object:l,signingKey:c,force:u=!1}){if(i=i.startsWith("refs/tags/")?i:`refs/tags/${i}`,!u&&await z.exists({fs:t,gitdir:n,ref:i}))throw new Mn("tag",i);let f=await z.resolve({fs:t,gitdir:n,ref:l||"HEAD"}),{type:d}=await Xe({fs:t,cache:e,gitdir:n,oid:f}),h=Zr.from({object:f,type:d,tag:i.replace("refs/tags/",""),tagger:s,message:a,gpgsig:o});c&&(h=await Zr.sign(h,r,c));let m=await Ar({fs:t,gitdir:n,type:"tag",object:h.toObject()});await z.writeRef({fs:t,gitdir:n,ref:i,value:m})}async function Ek({fs:t,onSign:e,dir:r,gitdir:n=D(r,".git"),ref:i,tagger:s,message:a=i,gpgsig:o,object:l,signingKey:c,force:u=!1,cache:f={}}){try{T("fs",t),T("gitdir",n),T("ref",i),c&&T("onSign",e);let d=new Q(t),h=await J({fsp:d,dotgit:n}),m=await Ms({fs:d,gitdir:h,author:s});if(!m)throw new Kt("tagger");return await W8({fs:d,cache:f,onSign:e,gitdir:h,ref:i,tagger:m,message:a,gpgsig:o,object:l,signingKey:c,force:u})}catch(d){throw d.caller="git.annotatedTag",d}}async function z8({fs:t,gitdir:e,ref:r,object:n,checkout:i=!1,force:s=!1}){if(!uu(r,!0))throw new Dn(r,zc.clean(r));let a=`refs/heads/${r}`;if(!s&&await z.exists({fs:t,gitdir:e,ref:a}))throw new Mn("branch",r,!1);let o;try{o=await z.resolve({fs:t,gitdir:e,ref:n||"HEAD"})}catch(l){}o&&await z.writeRef({fs:t,gitdir:e,ref:a,value:o}),i&&await z.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:a})}async function kk({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n,object:i,checkout:s=!1,force:a=!1}){try{T("fs",t),T("gitdir",r),T("ref",n);let o=new Q(t),l=await J({fsp:o,dotgit:r});return await z8({fs:o,gitdir:l,ref:n,object:i,checkout:s,force:a})}catch(o){throw o.caller="git.branch",o}}var Ak=(t,e)=>t==="."||e==null||e.length===0||e==="."?!0:e.length>=t.length?e.startsWith(t):t.startsWith(e);async function Ev({fs:t,cache:e,onProgress:r,onPostCheckout:n,dir:i,gitdir:s,remote:a,ref:o,filepaths:l,noCheckout:c,noUpdateHead:u,dryRun:f,force:d,track:h=!0,nonBlocking:m=!1,batchSize:g=100}){let v;if(n)try{v=await z.resolve({fs:t,gitdir:s,ref:"HEAD"})}catch(b){v="0000000000000000000000000000000000000000"}let w;try{w=await z.resolve({fs:t,gitdir:s,ref:o})}catch(b){if(o==="HEAD")throw b;let k=`${a}/${o}`;if(w=await z.resolve({fs:t,gitdir:s,ref:k}),h){let x=await lt.get({fs:t,gitdir:s});await x.set(`branch.${o}.remote`,a),await x.set(`branch.${o}.merge`,`refs/heads/${o}`),await lt.save({fs:t,gitdir:s,config:x})}await z.writeRef({fs:t,gitdir:s,ref:`refs/heads/${o}`,value:w})}if(!c){let b;try{b=await V8({fs:t,cache:e,onProgress:r,dir:i,gitdir:s,ref:o,force:d,filepaths:l})}catch(y){throw y instanceof Be&&y.data.what===w?new Qc(o,w):y}let k=b.filter(([y])=>y==="conflict").map(([y,S])=>S);if(k.length>0)throw new Kc(k);let x=b.filter(([y])=>y==="error").map(([y,S])=>S);if(x.length>0)throw new he(x.join(", "));if(f){n&&await n({previousHead:v,newHead:w,type:l!=null&&l.length>0?"file":"branch"});return}let E=0,A=b.length;if(await ht.acquire({fs:t,gitdir:s,cache:e},async function(y){await Promise.all(b.filter(([S])=>S==="delete"||S==="delete-index").map(async function([S,_]){let C=`${i}/${_}`;S==="delete"&&await t.rm(C),y.delete({filepath:_}),r&&await r({phase:"Updating workdir",loaded:++E,total:A})}))}),await ht.acquire({fs:t,gitdir:s,cache:e},async function(y){for(let[S,_]of b)if(S==="rmdir"||S==="rmdir-index"){let C=`${i}/${_}`;try{S==="rmdir"&&await t.rmdir(C),y.delete({filepath:_}),r&&await r({phase:"Updating workdir",loaded:++E,total:A})}catch(P){if(P.code==="ENOTEMPTY")console.log(`Did not delete ${_} because directory is not empty`);else throw P}}}),await Promise.all(b.filter(([y])=>y==="mkdir"||y==="mkdir-index").map(async function([y,S]){let _=`${i}/${S}`;await t.mkdir(_),r&&await r({phase:"Updating workdir",loaded:++E,total:A})})),m){let y=b.filter(([_])=>_==="create"||_==="create-index"||_==="update"||_==="mkdir-index"),S=await VE("Update Working Dir",y.map(([_,C,P,N,B])=>()=>X8({fs:t,cache:e,gitdir:s,dir:i},[_,C,P,N,B])),r,g);await ht.acquire({fs:t,gitdir:s,cache:e,allowUnmerged:!0},async function(_){await VE("Update Index",S.map(([C,P,N])=>()=>Y8({index:_,fullpath:C,oid:P,stats:N})),r,g)})}else await ht.acquire({fs:t,gitdir:s,cache:e,allowUnmerged:!0},async function(y){await Promise.all(b.filter(([S])=>S==="create"||S==="create-index"||S==="update"||S==="mkdir-index").map(async function([S,_,C,P,N]){let B=`${i}/${_}`;try{if(S!=="create-index"&&S!=="mkdir-index"){let{object:ce}=await Xe({fs:t,cache:e,gitdir:s,oid:C});if(N&&await t.rm(B),P===33188)await t.write(B,ce);else if(P===33261)await t.write(B,ce,{mode:511});else if(P===40960)await t.writelink(B,ce);else throw new he(`Invalid mode 0o${P.toString(8)} detected in blob ${C}`)}let H=await t.lstat(B);P===33261&&(H.mode=493),S==="mkdir-index"&&(H.mode=57344),y.insert({filepath:_,stats:H,oid:C}),r&&await r({phase:"Updating workdir",loaded:++E,total:A})}catch(H){console.log(H)}}))});n&&await n({previousHead:v,newHead:w,type:l!=null&&l.length>0?"file":"branch"})}if(!u){let b=await z.expand({fs:t,gitdir:s,ref:o});b.startsWith("refs/heads")?await z.writeSymbolicRef({fs:t,gitdir:s,ref:"HEAD",value:b}):await z.writeRef({fs:t,gitdir:s,ref:"HEAD",value:w})}}async function V8({fs:t,cache:e,onProgress:r,dir:n,gitdir:i,ref:s,force:a,filepaths:o}){let l=0;return Fs({fs:t,cache:e,dir:n,gitdir:i,trees:[Xr({ref:s}),sl(),Ca()],map:async function(c,[u,f,d]){if(c===".")return;if(o&&!o.some(m=>Ak(c,m)))return null;switch(r&&await r({phase:"Analyzing workdir",loaded:++l}),[!!d,!!u,!!f].map(Number).join("")){case"000":return;case"001":return a&&o&&o.includes(c)?["delete",c]:void 0;case"010":switch(await u.type()){case"tree":return["mkdir",c];case"blob":return["create",c,await u.oid(),await u.mode()];case"commit":return["mkdir-index",c,await u.oid(),await u.mode()];default:return["error",`new entry Unhandled type ${await u.type()}`]}case"011":switch(`${await u.type()}-${await f.type()}`){case"tree-tree":return;case"tree-blob":case"blob-tree":return["conflict",c];case"blob-blob":return await u.oid()!==await f.oid()?a?["update",c,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",c]:await u.mode()!==await f.mode()?a?["update",c,await u.oid(),await u.mode(),!0]:["conflict",c]:["create-index",c,await u.oid(),await u.mode()];case"commit-tree":return;case"commit-blob":return["conflict",c];default:return["error",`new entry Unhandled type ${u.type}`]}case"100":return["delete-index",c];case"101":switch(await d.type()){case"tree":return["rmdir-index",c];case"blob":return await d.oid()!==await f.oid()?a?["delete",c]:["conflict",c]:["delete",c];case"commit":return["rmdir-index",c];default:return["error",`delete entry Unhandled type ${await d.type()}`]}case"110":case"111":switch(`${await d.type()}-${await u.type()}`){case"tree-tree":return;case"blob-blob":{if(await d.oid()===await u.oid()&&await d.mode()===await u.mode()&&!a)return;if(f){if(await f.oid()!==await d.oid()&&await f.oid()!==await u.oid())return a?["update",c,await u.oid(),await u.mode(),await u.mode()!==await f.mode()]:["conflict",c]}else if(a)return["update",c,await u.oid(),await u.mode(),await u.mode()!==await d.mode()];return await u.mode()!==await d.mode()?["update",c,await u.oid(),await u.mode(),!0]:await u.oid()!==await d.oid()?["update",c,await u.oid(),await u.mode(),!1]:void 0}case"tree-blob":return["update-dir-to-blob",c,await u.oid()];case"blob-tree":return["update-blob-to-tree",c];case"commit-commit":return["mkdir-index",c,await u.oid(),await u.mode()];default:return["error",`update entry Unhandled type ${await d.type()}-${await u.type()}`]}}},reduce:async function(c,u){return u=dk(u),c?c&&c[0]==="rmdir"?(u.push(c),u):(u.unshift(c),u):u}})}async function Y8({index:t,fullpath:e,stats:r,oid:n}){try{t.insert({filepath:e,stats:r,oid:n})}catch(i){console.warn(`Error inserting ${e} into index:`,i)}}async function X8({fs:t,cache:e,gitdir:r,dir:n},[i,s,a,o,l]){let c=`${n}/${s}`;if(i!=="create-index"&&i!=="mkdir-index"){let{object:f}=await Xe({fs:t,cache:e,gitdir:r,oid:a});if(l&&await t.rm(c),o===33188)await t.write(c,f);else if(o===33261)await t.write(c,f,{mode:511});else if(o===40960)await t.writelink(c,f);else throw new he(`Invalid mode 0o${o.toString(8)} detected in blob ${a}`)}let u=await t.lstat(c);return o===33261&&(u.mode=493),i==="mkdir-index"&&(u.mode=57344),[s,a,u]}async function VE(t,e,r,n){let i=[];try{for(let s=0;sl());(await Promise.allSettled(a)).forEach(l=>{l.status==="fulfilled"&&i.push(l.value)}),r&&await r({phase:"Updating workdir",loaded:s+a.length,total:e.length})}return i}catch(s){console.error(`Error during ${t}: ${s}`)}return i}async function kv({fs:t,onProgress:e,onPostCheckout:r,dir:n,gitdir:i=D(n,".git"),remote:s="origin",ref:a,filepaths:o,noCheckout:l=!1,noUpdateHead:c=a===void 0,dryRun:u=!1,force:f=!1,track:d=!0,cache:h={},nonBlocking:m=!1,batchSize:g=100}){try{T("fs",t),T("dir",n),T("gitdir",i);let v=a||"HEAD",w=new Q(t),b=await J({fsp:w,dotgit:i});return await Ev({fs:w,cache:h,onProgress:e,onPostCheckout:r,dir:n,gitdir:b,remote:s,ref:v,filepaths:o,noCheckout:l,noUpdateHead:c,dryRun:u,force:f,track:d,nonBlocking:m,batchSize:g})}catch(v){throw v.caller="git.checkout",v}}var Z8=/^refs\/(heads\/|tags\/|remotes\/)?(.*)/;function xa(t){let e=Z8.exec(t);return e?e[1]==="remotes/"&&t.endsWith("/HEAD")?e[2].slice(0,-5):e[2]:t}async function Ls({fs:t,gitdir:e,fullname:r=!1,test:n=!1}){let i=await z.resolve({fs:t,gitdir:e,ref:"HEAD",depth:2});if(n)try{await z.resolve({fs:t,gitdir:e,ref:i})}catch(s){return}if(i.startsWith("refs/"))return r?i:xa(i)}function K8(t){return t=t.replace(/^git@([^:]+):/,"https://$1/"),t=t.replace(/^ssh:\/\//,"https://"),t}function Ck({username:t="",password:e=""}){return`Basic ${Buffer.from(`${t}:${e}`).toString("base64")}`}async function hu(t,e){let r=ck(t);for(;;){let{value:n,done:i}=await r.next();if(n&&await e(n),i)break}r.return&&r.return()}async function Md(t){let e=0,r=[];await hu(t,s=>{r.push(s),e+=s.byteLength});let n=new Uint8Array(e),i=0;for(let s of r)n.set(s,i),i+=s.byteLength;return n}function YE(t){let e=t.match(/^https?:\/\/([^/]+)@/);if(e==null)return{url:t,auth:{}};e=e[1];let[r,n]=e.split(":");return t=t.replace(`${e}@`,""),{url:t,auth:{username:r,password:n}}}function _v(t,e){let r=e.toString(16);return"0".repeat(t-r.length)+r}var st=class{static flush(){return Buffer.from("0000","utf8")}static delim(){return Buffer.from("0001","utf8")}static encode(e){typeof e=="string"&&(e=Buffer.from(e));let r=e.length+4,n=_v(4,r);return Buffer.concat([Buffer.from(n,"utf8"),e])}static streamReader(e){let r=new Id(e);return async function(){try{let i=await r.read(4);if(i==null)return!0;if(i=parseInt(i.toString("utf8"),16),i===0||i===1)return null;let s=await r.read(i-4);return s==null?!0:s}catch(i){return e.error=i,!0}}}};async function XE(t){let e={},r;for(;r=await t(),r!==!0;){if(r===null)continue;r=r.toString("utf8").replace(/\n$/,"");let n=r.indexOf("=");if(n>-1){let i=r.slice(0,n),s=r.slice(n+1);e[i]=s}else e[r]=!0}return{protocolVersion:2,capabilities2:e}}async function ZE(t,{service:e}){let r=new Set,n=new Map,i=new Map,s=st.streamReader(t),a=await s();for(;a===null;)a=await s();if(a===!0)throw new Jc;if(a.includes("version 2"))return XE(s);if(a.toString("utf8").replace(/\n$/,"")!==`# service=${e}`)throw new Ea(`# service=${e}\\n`,a.toString("utf8"));let o=await s();for(;o===null;)o=await s();if(o===!0)return{capabilities:r,refs:n,symrefs:i};if(o=o.toString("utf8"),o.includes("version 2"))return XE(s);let[l,c]=sv(o,"\0","\\x00");if(c.split(" ").map(u=>r.add(u)),l!=="0000000000000000000000000000000000000000 capabilities^{}"){let[u,f]=sv(l," "," ");for(n.set(f,u);;){let d=await s();if(d===!0)break;if(d!==null){let[h,m]=sv(d.toString("utf8")," "," ");n.set(m,h)}}}for(let u of r)if(u.startsWith("symref=")){let f=u.match(/symref=([^:]+):(.*)/);f.length===3&&i.set(f[1],f[2])}return{protocolVersion:1,capabilities:r,refs:n,symrefs:i}}function sv(t,e,r){let n=t.trim().split(e);if(n.length!==2)throw new Ea(`Two strings separated by '${r}'`,t.toString("utf8"));return n}var KE=(t,e)=>t.endsWith("?")?`${t}${e}`:`${t}/${e.replace(/^https?:\/\//,"")}`,QE=(t,e)=>{(e.username||e.password)&&(t.Authorization=Ck(e)),e.headers&&Object.assign(t,e.headers)},av=async t=>{try{let e=Buffer.from(await Md(t.body)),r=e.toString("utf8");return{preview:r.length<256?r:r.slice(0,256)+"...",response:r,data:e}}catch(e){return{}}},rl=class{static async capabilities(){return["discover","connect"]}static async discover({http:e,onProgress:r,onAuth:n,onAuthSuccess:i,onAuthFailure:s,corsProxy:a,service:o,url:l,headers:c,protocolVersion:u}){let{url:f,auth:d}=YE(l),h=a?KE(a,f):f;(d.username||d.password)&&(c.Authorization=Ck(d)),u===2&&(c["Git-Protocol"]="version=2");let m,g,v=!1;do if(m=await e.request({onProgress:r,method:"GET",url:`${h}/info/refs?service=${o}`,headers:c}),g=!1,m.statusCode===401||m.statusCode===203){let w=v?s:n;if(w){if(d=await w(f,{...d,headers:{...c}}),d&&d.cancel)throw new Qo;d&&(QE(c,d),v=!0,g=!0)}}else m.statusCode===200&&v&&i&&await i(f,d);while(g);if(m.statusCode!==200){let{response:w}=await av(m);throw new Yo(m.statusCode,m.statusMessage,w)}if(m.headers["content-type"]===`application/x-${o}-advertisement`){let w=await ZE(m.body,{service:o});return w.auth=d,w}else{let{preview:w,response:b,data:k}=await av(m);try{let x=await ZE([k],{service:o});return x.auth=d,x}catch(x){throw new iu(w,b)}}}static async connect({http:e,onProgress:r,corsProxy:n,service:i,url:s,auth:a,body:o,headers:l}){let c=YE(s);c&&(s=c.url),n&&(s=KE(n,s)),l["content-type"]=`application/x-${i}-request`,l.accept=`application/x-${i}-result`,QE(l,a);let u=await e.request({onProgress:r,method:"POST",url:`${s}/${i}`,body:o,headers:l});if(u.statusCode!==200){let{response:f}=av(u);throw new Yo(u.statusCode,u.statusMessage,f)}return u}},nl=class{static getRemoteHelperFor({url:e}){let r=new Map;r.set("http",rl),r.set("https",rl);let n=Q8({url:e});if(!n)throw new au(e);if(r.has(n.transport))return r.get(n.transport);throw new su(e,n.transport,n.transport==="ssh"?K8(e):void 0)}};function Q8({url:t}){if(t.startsWith("git@"))return{transport:"ssh",address:t};let e=t.match(/(\w+)(:\/\/|::)(.*)/);if(e!==null){if(e[2]==="://")return{transport:e[1],address:e[0]};if(e[2]==="::")return{transport:e[1],address:e[3]}}}var _a=null,ka=class{static async read({fs:e,gitdir:r}){_a===null&&(_a=new Wc);let n=D(r,"shallow"),i=new Set;return await _a.acquire(n,async function(){let s=await e.read(n,{encoding:"utf8"});if(s===null||s.trim()==="")return i;s.trim().split(` +`).map(a=>i.add(a))}),i}static async write({fs:e,gitdir:r,oids:n}){_a===null&&(_a=new Wc);let i=D(r,"shallow");if(n.size>0){let s=[...n].join(` `)+` -`;await ba.acquire(n,async function(){await e.write(n,s,{encoding:"utf8"})})}else await ba.acquire(n,async function(){await e.rm(n)})}};async function B8({fs:t,gitdir:e,oid:r}){let i=`objects/${r.slice(0,2)}/${r.slice(2)}`;return t.exists(`${e}/${i}`)}async function N8({fs:t,cache:e,gitdir:r,oid:i,getExternalRefDelta:n}){let s=await t.readdir(O(r,"objects/pack"));s=s.filter(a=>a.endsWith(".idx"));for(let a of s){let o=`${r}/objects/pack/${a}`,l=await vv({fs:t,cache:e,filename:o,getExternalRefDelta:n});if(l.error)throw new he(l.error);if(l.offsets.has(i))return!0}return!1}async function qE({fs:t,cache:e,gitdir:r,oid:i,format:n="content"}){let s=o=>Ke({fs:t,cache:e,gitdir:r,oid:o}),a=await B8({fs:t,gitdir:r,oid:i});return a||(a=await N8({fs:t,cache:e,gitdir:r,oid:i,getExternalRefDelta:s})),a}function H8(t){let n="5041434b"+"00000002"+"00000000";return t.slice(0,12).toString("hex")===n}function yk(t,e){let r=t.map(i=>i.split("=",1)[0]);return e.filter(i=>{let n=i.split("=",1)[0];return r.includes(n)})}var Md={name:"isomorphic-git",version:"1.36.3",agent:"git/isomorphic-git@1.36.3"},qo=class{constructor(){this._queue=[]}write(e){if(this._ended)throw Error("You cannot write to a FIFO that has already been ended!");if(this._waiting){let r=this._waiting;this._waiting=null,r({value:e})}else this._queue.push(e)}end(){if(this._ended=!0,this._waiting){let e=this._waiting;this._waiting=null,e({done:!0})}}destroy(e){this.error=e,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error("You cannot call read until the previous call to read has returned!");return new Promise(e=>{this._waiting=e})}};function U8(t){let e=t.indexOf("\r"),r=t.indexOf(` -`);return e===-1&&r===-1?-1:e===-1?r+1:r===-1?e+1:r===e+1?r+1:Math.min(e,r)+1}function bk(t){let e=new qo,r="";return(async()=>(await ou(t,i=>{for(i=i.toString("utf8"),r+=i;;){let n=U8(r);if(n===-1)break;e.write(r.slice(0,n)),r=r.slice(n)}}),r.length>0&&e.write(r),e.end()))(),e}var Rd=class{static demux(e){let r=at.streamReader(e),i=new qo,n=new qo,s=new qo,a=async function(){let o=await r();if(o===null)return a();if(o===!0){i.end(),s.end(),e.error?n.destroy(e.error):n.end();return}switch(o[0]){case 1:{n.write(o.slice(1));break}case 2:{s.write(o.slice(1));break}case 3:{let l=o.slice(1);s.write(l),i.end(),s.end(),n.destroy(new Error(l.toString("utf8")));return}default:i.write(o)}a()};return a(),{packetlines:i,packfile:n,progress:s}}};async function G8(t){let{packetlines:e,packfile:r,progress:i}=Rd.demux(t),n=[],s=[],a=[],o=!1,l=!1;return new Promise((c,u)=>{ou(e,f=>{let d=f.toString("utf8").trim();if(d.startsWith("shallow")){let h=d.slice(-41).trim();h.length!==40&&u(new Ps(h)),n.push(h)}else if(d.startsWith("unshallow")){let h=d.slice(-41).trim();h.length!==40&&u(new Ps(h)),s.push(h)}else if(d.startsWith("ACK")){let[,h,m]=d.split(" ");a.push({oid:h,status:m}),m||(l=!0)}else d.startsWith("NAK")?(o=!0,l=!0):(l=!0,o=!0);l&&(t.error?u(t.error):c({shallows:n,unshallows:s,acks:a,nak:o,packfile:r,progress:i}))}).finally(()=>{l||(t.error?u(t.error):c({shallows:n,unshallows:s,acks:a,nak:o,packfile:r,progress:i}))})})}function j8({capabilities:t=[],wants:e=[],haves:r=[],shallows:i=[],depth:n=null,since:s=null,exclude:a=[]}){let o=[];e=[...new Set(e)];let l=` ${t.join(" ")}`;for(let c of e)o.push(at.encode(`want ${c}${l} -`)),l="";for(let c of i)o.push(at.encode(`shallow ${c} -`));n!==null&&o.push(at.encode(`deepen ${n} -`)),s!==null&&o.push(at.encode(`deepen-since ${Math.floor(s.valueOf()/1e3)} -`));for(let c of a)o.push(at.encode(`deepen-not ${c} -`));o.push(at.flush());for(let c of r)o.push(at.encode(`have ${c} -`));return o.push(at.encode(`done -`)),o}async function bv({fs:t,cache:e,http:r,onProgress:i,onMessage:n,onAuth:s,onAuthSuccess:a,onAuthFailure:o,gitdir:l,ref:c,remoteRef:u,remote:f,url:d,corsProxy:h,depth:m=null,since:g=null,exclude:v=[],relative:w=!1,tags:b=!1,singleBranch:k=!1,headers:x={},prune:E=!1,pruneTags:A=!1}){let y=c||await Ds({fs:t,gitdir:l,test:!0}),S=await ct.get({fs:t,gitdir:l}),_=f||y&&await S.get(`branch.${y}.remote`)||"origin",T=d||await S.get(`remote.${_}.url`);if(typeof T=="undefined")throw new Sr("remote OR url");let P=u||y&&await S.get(`branch.${y}.merge`)||c||"HEAD";h===void 0&&(h=await S.get("http.corsProxy"));let D=rl.getRemoteHelperFor({url:T}),B=await D.discover({http:r,onAuth:s,onAuthSuccess:a,onAuthFailure:o,corsProxy:h,service:"git-upload-pack",url:T,headers:x,protocolVersion:1}),N=B.auth,ce=B.refs;if(ce.size===0)return{defaultBranch:null,fetchHead:null,fetchHeadDescription:null};if(m!==null&&!B.capabilities.has("shallow"))throw new Cs("shallow","depth");if(g!==null&&!B.capabilities.has("deepen-since"))throw new Cs("deepen-since","since");if(v.length>0&&!B.capabilities.has("deepen-not"))throw new Cs("deepen-not","exclude");if(w===!0&&!B.capabilities.has("deepen-relative"))throw new Cs("deepen-relative","relative");let{oid:Pe,fullref:ve}=W.resolveAgainstMap({ref:P,map:ce});for(let q of ce.keys())q===ve||q==="HEAD"||q.startsWith("refs/heads/")||b&&q.startsWith("refs/tags/")||ce.delete(q);let se=yk([...B.capabilities],["multi_ack_detailed","no-done","side-band-64k","ofs-delta",`agent=${Md.agent}`]);w&&se.push("deepen-relative");let xe=k?[Pe]:ce.values(),we=k?[y]:await W.listRefs({fs:t,gitdir:l,filepath:"refs"}),z=[];for(let q of we)try{q=await W.expand({fs:t,gitdir:l,ref:q});let Z=await W.resolve({fs:t,gitdir:l,ref:q});await qE({fs:t,cache:e,gitdir:l,oid:Z})&&z.push(Z)}catch(Z){}z=[...new Set(z)];let Q=await Ea.read({fs:t,gitdir:l}),j=B.capabilities.has("shallow")?[...Q]:[],Le=j8({capabilities:se,wants:xe,haves:z,shallows:j,depth:m,since:g,exclude:v}),lr=Buffer.from(await Pd(Le)),It=await D.connect({http:r,onProgress:i,corsProxy:h,service:"git-upload-pack",url:T,auth:N,body:[lr],headers:x}),Fe=await G8(It.body);It.headers&&(Fe.headers=It.headers);for(let q of Fe.shallows)if(!Q.has(q))try{let{object:Z}=await Ke({fs:t,cache:e,gitdir:l,oid:q}),L=new kr(Z),V=await Promise.all(L.headers().parent.map(qe=>qE({fs:t,cache:e,gitdir:l,oid:qe})));V.length===0||V.every(qe=>qe)||Q.add(q)}catch(Z){Q.add(q)}for(let q of Fe.unshallows)Q.delete(q);if(await Ea.write({fs:t,gitdir:l,oids:Q}),k){let q=new Map([[ve,Pe]]),Z=new Map,L=10,V=ve;for(;L--;){let Ot=B.symrefs.get(V);if(Ot===void 0)break;Z.set(V,Ot),V=Ot}let Te=ce.get(V);Te&&q.set(V,Te);let{pruned:qe}=await W.updateRemoteRefs({fs:t,gitdir:l,remote:_,refs:q,symrefs:Z,tags:b,prune:E});E&&(Fe.pruned=qe)}else{let{pruned:q}=await W.updateRemoteRefs({fs:t,gitdir:l,remote:_,refs:ce,symrefs:B.symrefs,tags:b,prune:E,pruneTags:A});E&&(Fe.pruned=q)}if(Fe.HEAD=B.symrefs.get("HEAD"),Fe.HEAD===void 0){let{oid:q}=W.resolveAgainstMap({ref:"HEAD",map:ce});for(let[Z,L]of ce.entries())if(Z!=="HEAD"&&L===q){Fe.HEAD=Z;break}}let At=ve.startsWith("refs/tags")?"tag":"branch";if(Fe.FETCH_HEAD={oid:Pe,description:`${At} '${_a(ve)}' of ${T}`},i||n){let q=bk(Fe.progress);ou(q,async Z=>{if(n&&await n(Z),i){let L=Z.match(/([^:]*).*\((\d+?)\/(\d+?)\)/);L&&await i({phase:L[1].trim(),loaded:parseInt(L[2],10),total:parseInt(L[3],10)})}})}let Tt=Buffer.from(await Pd(Fe.packfile));if(It.body.error)throw It.body.error;let jt=Tt.slice(-20).toString("hex"),Ze={defaultBranch:Fe.HEAD,fetchHead:Fe.FETCH_HEAD.oid,fetchHeadDescription:Fe.FETCH_HEAD.description};if(Fe.headers&&(Ze.headers=Fe.headers),E&&(Ze.pruned=Fe.pruned),jt!==""&&!H8(Tt)){Ze.packfile=`objects/pack/pack-${jt}.pack`;let q=O(l,Ze.packfile);await t.write(q,Tt);let Z=V=>Ke({fs:t,cache:e,gitdir:l,oid:V}),L=await jc.fromPack({pack:Tt,getExternalRefDelta:Z,onProgress:i});await t.write(q.replace(/\.pack$/,".idx"),await L.toBuffer())}return Ze}async function _k({fs:t,bare:e=!1,dir:r,gitdir:i=e?r:O(r,".git"),defaultBranch:n="master"}){if(await t.exists(i+"/config"))return;let s=["hooks","info","objects/info","objects/pack","refs/heads","refs/tags"];s=s.map(a=>i+"/"+a);for(let a of s)await t.mkdir(a);await t.write(i+"/config",`[core] +`;await _a.acquire(i,async function(){await e.write(i,s,{encoding:"utf8"})})}else await _a.acquire(i,async function(){await e.rm(i)})}};async function J8({fs:t,gitdir:e,oid:r}){let n=`objects/${r.slice(0,2)}/${r.slice(2)}`;return t.exists(`${e}/${n}`)}async function e6({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:i}){let s=await t.readdir(D(r,"objects/pack"));s=s.filter(a=>a.endsWith(".idx"));for(let a of s){let o=`${r}/objects/pack/${a}`,l=await Sv({fs:t,cache:e,filename:o,getExternalRefDelta:i});if(l.error)throw new he(l.error);if(l.offsets.has(n))return!0}return!1}async function JE({fs:t,cache:e,gitdir:r,oid:n,format:i="content"}){let s=o=>Xe({fs:t,cache:e,gitdir:r,oid:o}),a=await J8({fs:t,gitdir:r,oid:n});return a||(a=await e6({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:s})),a}function t6(t){let i="5041434b"+"00000002"+"00000000";return t.slice(0,12).toString("hex")===i}function Tk(t,e){let r=t.map(n=>n.split("=",1)[0]);return e.filter(n=>{let i=n.split("=",1)[0];return r.includes(i)})}var Ud={name:"isomorphic-git",version:"1.36.3",agent:"git/isomorphic-git@1.36.3"},Wo=class{constructor(){this._queue=[]}write(e){if(this._ended)throw Error("You cannot write to a FIFO that has already been ended!");if(this._waiting){let r=this._waiting;this._waiting=null,r({value:e})}else this._queue.push(e)}end(){if(this._ended=!0,this._waiting){let e=this._waiting;this._waiting=null,e({done:!0})}}destroy(e){this.error=e,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error("You cannot call read until the previous call to read has returned!");return new Promise(e=>{this._waiting=e})}};function r6(t){let e=t.indexOf("\r"),r=t.indexOf(` +`);return e===-1&&r===-1?-1:e===-1?r+1:r===-1?e+1:r===e+1?r+1:Math.min(e,r)+1}function Pk(t){let e=new Wo,r="";return(async()=>(await hu(t,n=>{for(n=n.toString("utf8"),r+=n;;){let i=r6(r);if(i===-1)break;e.write(r.slice(0,i)),r=r.slice(i)}}),r.length>0&&e.write(r),e.end()))(),e}var Dd=class{static demux(e){let r=st.streamReader(e),n=new Wo,i=new Wo,s=new Wo,a=async function(){let o=await r();if(o===null)return a();if(o===!0){n.end(),s.end(),e.error?i.destroy(e.error):i.end();return}switch(o[0]){case 1:{i.write(o.slice(1));break}case 2:{s.write(o.slice(1));break}case 3:{let l=o.slice(1);s.write(l),n.end(),s.end(),i.destroy(new Error(l.toString("utf8")));return}default:n.write(o)}a()};return a(),{packetlines:n,packfile:i,progress:s}}};async function n6(t){let{packetlines:e,packfile:r,progress:n}=Dd.demux(t),i=[],s=[],a=[],o=!1,l=!1;return new Promise((c,u)=>{hu(e,f=>{let d=f.toString("utf8").trim();if(d.startsWith("shallow")){let h=d.slice(-41).trim();h.length!==40&&u(new Rs(h)),i.push(h)}else if(d.startsWith("unshallow")){let h=d.slice(-41).trim();h.length!==40&&u(new Rs(h)),s.push(h)}else if(d.startsWith("ACK")){let[,h,m]=d.split(" ");a.push({oid:h,status:m}),m||(l=!0)}else d.startsWith("NAK")?(o=!0,l=!0):(l=!0,o=!0);l&&(t.error?u(t.error):c({shallows:i,unshallows:s,acks:a,nak:o,packfile:r,progress:n}))}).finally(()=>{l||(t.error?u(t.error):c({shallows:i,unshallows:s,acks:a,nak:o,packfile:r,progress:n}))})})}function i6({capabilities:t=[],wants:e=[],haves:r=[],shallows:n=[],depth:i=null,since:s=null,exclude:a=[]}){let o=[];e=[...new Set(e)];let l=` ${t.join(" ")}`;for(let c of e)o.push(st.encode(`want ${c}${l} +`)),l="";for(let c of n)o.push(st.encode(`shallow ${c} +`));i!==null&&o.push(st.encode(`deepen ${i} +`)),s!==null&&o.push(st.encode(`deepen-since ${Math.floor(s.valueOf()/1e3)} +`));for(let c of a)o.push(st.encode(`deepen-not ${c} +`));o.push(st.flush());for(let c of r)o.push(st.encode(`have ${c} +`));return o.push(st.encode(`done +`)),o}async function Av({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:s,onAuthSuccess:a,onAuthFailure:o,gitdir:l,ref:c,remoteRef:u,remote:f,url:d,corsProxy:h,depth:m=null,since:g=null,exclude:v=[],relative:w=!1,tags:b=!1,singleBranch:k=!1,headers:x={},prune:E=!1,pruneTags:A=!1}){let y=c||await Ls({fs:t,gitdir:l,test:!0}),S=await lt.get({fs:t,gitdir:l}),_=f||y&&await S.get(`branch.${y}.remote`)||"origin",C=d||await S.get(`remote.${_}.url`);if(typeof C=="undefined")throw new Sr("remote OR url");let P=u||y&&await S.get(`branch.${y}.merge`)||c||"HEAD";h===void 0&&(h=await S.get("http.corsProxy"));let N=nl.getRemoteHelperFor({url:C}),B=await N.discover({http:r,onAuth:s,onAuthSuccess:a,onAuthFailure:o,corsProxy:h,service:"git-upload-pack",url:C,headers:x,protocolVersion:1}),H=B.auth,ce=B.refs;if(ce.size===0)return{defaultBranch:null,fetchHead:null,fetchHeadDescription:null};if(m!==null&&!B.capabilities.has("shallow"))throw new Ps("shallow","depth");if(g!==null&&!B.capabilities.has("deepen-since"))throw new Ps("deepen-since","since");if(v.length>0&&!B.capabilities.has("deepen-not"))throw new Ps("deepen-not","exclude");if(w===!0&&!B.capabilities.has("deepen-relative"))throw new Ps("deepen-relative","relative");let{oid:Pe,fullref:ve}=z.resolveAgainstMap({ref:P,map:ce});for(let M of ce.keys())M===ve||M==="HEAD"||M.startsWith("refs/heads/")||b&&M.startsWith("refs/tags/")||ce.delete(M);let ie=Tk([...B.capabilities],["multi_ack_detailed","no-done","side-band-64k","ofs-delta",`agent=${Ud.agent}`]);w&&ie.push("deepen-relative");let xe=k?[Pe]:ce.values(),we=k?[y]:await z.listRefs({fs:t,gitdir:l,filepath:"refs"}),W=[];for(let M of we)try{M=await z.expand({fs:t,gitdir:l,ref:M});let O=await z.resolve({fs:t,gitdir:l,ref:M});await JE({fs:t,cache:e,gitdir:l,oid:O})&&W.push(O)}catch(O){}W=[...new Set(W)];let X=await ka.read({fs:t,gitdir:l}),q=B.capabilities.has("shallow")?[...X]:[],De=i6({capabilities:ie,wants:xe,haves:W,shallows:q,depth:m,since:g,exclude:v}),ar=Buffer.from(await Md(De)),Ft=await N.connect({http:r,onProgress:n,corsProxy:h,service:"git-upload-pack",url:C,auth:H,body:[ar],headers:x}),Ie=await n6(Ft.body);Ft.headers&&(Ie.headers=Ft.headers);for(let M of Ie.shallows)if(!X.has(M))try{let{object:O}=await Xe({fs:t,cache:e,gitdir:l,oid:M}),oe=new kr(O),Ce=await Promise.all(oe.headers().parent.map(wr=>JE({fs:t,cache:e,gitdir:l,oid:wr})));Ce.length===0||Ce.every(wr=>wr)||X.add(M)}catch(O){X.add(M)}for(let M of Ie.unshallows)X.delete(M);if(await ka.write({fs:t,gitdir:l,oids:X}),k){let M=new Map([[ve,Pe]]),O=new Map,oe=10,Ce=ve;for(;oe--;){let bo=B.symrefs.get(Ce);if(bo===void 0)break;O.set(Ce,bo),Ce=bo}let Ot=ce.get(Ce);Ot&&M.set(Ce,Ot);let{pruned:wr}=await z.updateRemoteRefs({fs:t,gitdir:l,remote:_,refs:M,symrefs:O,tags:b,prune:E});E&&(Ie.pruned=wr)}else{let{pruned:M}=await z.updateRemoteRefs({fs:t,gitdir:l,remote:_,refs:ce,symrefs:B.symrefs,tags:b,prune:E,pruneTags:A});E&&(Ie.pruned=M)}if(Ie.HEAD=B.symrefs.get("HEAD"),Ie.HEAD===void 0){let{oid:M}=z.resolveAgainstMap({ref:"HEAD",map:ce});for(let[O,oe]of ce.entries())if(O!=="HEAD"&&oe===M){Ie.HEAD=O;break}}let kt=ve.startsWith("refs/tags")?"tag":"branch";if(Ie.FETCH_HEAD={oid:Pe,description:`${kt} '${xa(ve)}' of ${C}`},n||i){let M=Pk(Ie.progress);hu(M,async O=>{if(i&&await i(O),n){let oe=O.match(/([^:]*).*\((\d+?)\/(\d+?)\)/);oe&&await n({phase:oe[1].trim(),loaded:parseInt(oe[2],10),total:parseInt(oe[3],10)})}})}let At=Buffer.from(await Md(Ie.packfile));if(Ft.body.error)throw Ft.body.error;let je=At.slice(-20).toString("hex"),Z={defaultBranch:Ie.HEAD,fetchHead:Ie.FETCH_HEAD.oid,fetchHeadDescription:Ie.FETCH_HEAD.description};if(Ie.headers&&(Z.headers=Ie.headers),E&&(Z.pruned=Ie.pruned),je!==""&&!t6(At)){Z.packfile=`objects/pack/pack-${je}.pack`;let M=D(l,Z.packfile);await t.write(M,At);let O=Ce=>Xe({fs:t,cache:e,gitdir:l,oid:Ce}),oe=await Xc.fromPack({pack:At,getExternalRefDelta:O,onProgress:n});await t.write(M.replace(/\.pack$/,".idx"),await oe.toBuffer())}return Z}async function Rk({fs:t,bare:e=!1,dir:r,gitdir:n=e?r:D(r,".git"),defaultBranch:i="master"}){if(await t.exists(n+"/config"))return;let s=["hooks","info","objects/info","objects/pack","refs/heads","refs/tags"];s=s.map(a=>n+"/"+a);for(let a of s)await t.mkdir(a);await t.write(n+"/config",`[core] repositoryformatversion = 0 filemode = false bare = ${e} `+(e?"":` logallrefupdates = true `)+` symlinks = false ignorecase = true -`),await t.write(i+"/HEAD",`ref: refs/heads/${n} -`)}async function q8({fs:t,cache:e,http:r,onProgress:i,onMessage:n,onAuth:s,onAuthSuccess:a,onAuthFailure:o,onPostCheckout:l,dir:c,gitdir:u,url:f,corsProxy:d,ref:h,remote:m,depth:g,since:v,exclude:w,relative:b,singleBranch:k,noCheckout:x,noTags:E,headers:A,nonBlocking:y,batchSize:S=100}){try{if(await _k({fs:t,gitdir:u}),await hk({fs:t,gitdir:u,remote:m,url:f,force:!1}),d){let P=await ct.get({fs:t,gitdir:u});await P.set("http.corsProxy",d),await ct.save({fs:t,gitdir:u,config:P})}let{defaultBranch:_,fetchHead:T}=await bv({fs:t,cache:e,http:r,onProgress:i,onMessage:n,onAuth:s,onAuthSuccess:a,onAuthFailure:o,gitdir:u,ref:h,remote:m,corsProxy:d,depth:g,since:v,exclude:w,relative:b,singleBranch:k,headers:A,tags:!E});if(T===null)return;h=h||_,h=h.replace("refs/heads/",""),await wv({fs:t,cache:e,onProgress:i,onPostCheckout:l,dir:c,gitdir:u,ref:h,remote:m,noCheckout:x,nonBlocking:y,batchSize:S})}catch(_){throw await t.rmdir(u,{recursive:!0,maxRetries:10}).catch(()=>{}),_}}async function xk({fs:t,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,onPostCheckout:o,dir:l,gitdir:c=O(l,".git"),url:u,corsProxy:f=void 0,ref:d=void 0,remote:h="origin",depth:m=void 0,since:g=void 0,exclude:v=[],relative:w=!1,singleBranch:b=!1,noCheckout:k=!1,noTags:x=!1,headers:E={},cache:A={},nonBlocking:y=!1,batchSize:S=100}){try{C("fs",t),C("http",e),C("gitdir",c),k||C("dir",l),C("url",u);let _=new J(t),T=await ee({fsp:_,dotgit:c});return await q8({fs:_,cache:A,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,onPostCheckout:o,dir:l,gitdir:T,url:u,corsProxy:f,ref:d,remote:h,depth:m,since:g,exclude:v,relative:w,singleBranch:b,noCheckout:k,noTags:x,headers:E,nonBlocking:y,batchSize:S})}catch(_){throw _.caller="git.clone",_}}async function Sk({fs:t,onSign:e,dir:r,gitdir:i=O(r,".git"),message:n,author:s,committer:a,signingKey:o,amend:l=!1,dryRun:c=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h,cache:m={}}){try{C("fs",t),l||C("message",n),o&&C("onSign",e);let g=new J(t),v=await ee({fsp:g,dotgit:i});return await Od({fs:g,cache:m,onSign:e,gitdir:v,message:n,author:s,committer:a,signingKey:o,amend:l,dryRun:c,noUpdateBranch:u,ref:f,parent:d,tree:h})}catch(g){throw g.caller="git.commit",g}}async function Ek({fs:t,dir:e,gitdir:r=O(e,".git"),fullname:i=!1,test:n=!1}){try{C("fs",t),C("gitdir",r);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await Ds({fs:s,gitdir:a,fullname:i,test:n})}catch(s){throw s.caller="git.currentBranch",s}}async function z8({fs:t,gitdir:e,ref:r}){if(r=r.startsWith("refs/heads/")?r:`refs/heads/${r}`,!await W.exists({fs:t,gitdir:e,ref:r}))throw new He(r);let n=await W.expand({fs:t,gitdir:e,ref:r}),s=await Ds({fs:t,gitdir:e,fullname:!0});if(n===s){let l=await W.resolve({fs:t,gitdir:e,ref:n});await W.writeRef({fs:t,gitdir:e,ref:"HEAD",value:l})}await W.deleteRef({fs:t,gitdir:e,ref:n});let a=_a(r),o=await ct.get({fs:t,gitdir:e});await o.deleteSection("branch",a),await ct.save({fs:t,gitdir:e,config:o})}async function kk({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i}){try{C("fs",t),C("ref",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await z8({fs:n,gitdir:s,ref:i})}catch(n){throw n.caller="git.deleteBranch",n}}async function Ak({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i}){try{C("fs",t),C("ref",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});await W.deleteRef({fs:n,gitdir:s,ref:i})}catch(n){throw n.caller="git.deleteRef",n}}async function V8({fs:t,gitdir:e,remote:r}){let i=await ct.get({fs:t,gitdir:e});await i.deleteSection("remote",r),await ct.save({fs:t,gitdir:e,config:i})}async function Tk({fs:t,dir:e,gitdir:r=O(e,".git"),remote:i}){try{C("fs",t),C("remote",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await V8({fs:n,gitdir:s,remote:i})}catch(n){throw n.caller="git.deleteRemote",n}}async function W8({fs:t,gitdir:e,ref:r}){r=r.startsWith("refs/tags/")?r:`refs/tags/${r}`,await W.deleteRef({fs:t,gitdir:e,ref:r})}async function Ck({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i}){try{C("fs",t),C("ref",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await W8({fs:n,gitdir:s,ref:i})}catch(n){throw n.caller="git.deleteTag",n}}async function Y8({fs:t,gitdir:e,oid:r}){let i=r.slice(0,2);return(await t.readdir(`${e}/objects/${i}`)).map(s=>`${i}${s}`).filter(s=>s.startsWith(r))}async function X8({fs:t,cache:e,gitdir:r,oid:i,getExternalRefDelta:n}){let s=[],a=await t.readdir(O(r,"objects/pack"));a=a.filter(o=>o.endsWith(".idx"));for(let o of a){let l=`${r}/objects/pack/${o}`,c=await vv({fs:t,cache:e,filename:l,getExternalRefDelta:n});if(c.error)throw new he(c.error);for(let u of c.offsets.keys())u.startsWith(i)&&s.push(u)}return s}async function Z8({fs:t,cache:e,gitdir:r,oid:i}){let n=o=>Ke({fs:t,cache:e,gitdir:r,oid:o}),s=await Y8({fs:t,gitdir:r,oid:i}),a=await X8({fs:t,cache:e,gitdir:r,oid:i,getExternalRefDelta:n});for(let o of a)s.indexOf(o)===-1&&s.push(o);if(s.length===1)return s[0];throw s.length>1?new qc("oids",i,s):new He(`an object matching "${i}"`)}async function Pk({fs:t,dir:e,gitdir:r=O(e,".git"),oid:i,cache:n={}}){try{C("fs",t),C("gitdir",r),C("oid",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await Z8({fs:s,cache:n,gitdir:a,oid:i})}catch(s){throw s.caller="git.expandOid",s}}async function Rk({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i}){try{C("fs",t),C("gitdir",r),C("ref",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await W.expand({fs:n,gitdir:s,ref:i})}catch(n){throw n.caller="git.expandRef",n}}async function _v({fs:t,cache:e,gitdir:r,oids:i}){let n={},s=i.length,a=i.map((o,l)=>({index:l,oid:o}));for(;a.length;){let o=new Set;for(let{oid:c,index:u}of a)n[c]||(n[c]=new Set),n[c].add(u),n[c].size===s&&o.add(c);if(o.size>0)return[...o];let l=new Map;for(let{oid:c,index:u}of a)try{let{object:f}=await Ke({fs:t,cache:e,gitdir:r,oid:c}),d=kr.from(f),{parent:h}=d.parseHeaders();for(let m of h)(!n[m]||!n[m].has(u))&&l.set(m+":"+u,{oid:m,index:u})}catch(f){}a=Array.from(l.values())}return[]}var tv=/^.*(\r?\n|$)/gm;function K8({branches:t,contents:e}){let r=t[1],i=t[2],n=e[0],s=e[1],a=e[2],o=s.match(tv),l=n.match(tv),c=a.match(tv),u=P3(o,l,c),f=7,d="",h=!0;for(let m of u)m.ok&&(d+=m.ok.join("")),m.conflict&&(h=!1,d+=`${"<".repeat(f)} ${r} +`),await t.write(n+"/HEAD",`ref: refs/heads/${i} +`)}async function s6({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:s,onAuthSuccess:a,onAuthFailure:o,onPostCheckout:l,dir:c,gitdir:u,url:f,corsProxy:d,ref:h,remote:m,depth:g,since:v,exclude:w,relative:b,singleBranch:k,noCheckout:x,noTags:E,headers:A,nonBlocking:y,batchSize:S=100}){try{if(await Rk({fs:t,gitdir:u}),await xk({fs:t,gitdir:u,remote:m,url:f,force:!1}),d){let P=await lt.get({fs:t,gitdir:u});await P.set("http.corsProxy",d),await lt.save({fs:t,gitdir:u,config:P})}let{defaultBranch:_,fetchHead:C}=await Av({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:s,onAuthSuccess:a,onAuthFailure:o,gitdir:u,ref:h,remote:m,corsProxy:d,depth:g,since:v,exclude:w,relative:b,singleBranch:k,headers:A,tags:!E});if(C===null)return;h=h||_,h=h.replace("refs/heads/",""),await Ev({fs:t,cache:e,onProgress:n,onPostCheckout:l,dir:c,gitdir:u,ref:h,remote:m,noCheckout:x,nonBlocking:y,batchSize:S})}catch(_){throw await t.rmdir(u,{recursive:!0,maxRetries:10}).catch(()=>{}),_}}async function $k({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,onPostCheckout:o,dir:l,gitdir:c=D(l,".git"),url:u,corsProxy:f=void 0,ref:d=void 0,remote:h="origin",depth:m=void 0,since:g=void 0,exclude:v=[],relative:w=!1,singleBranch:b=!1,noCheckout:k=!1,noTags:x=!1,headers:E={},cache:A={},nonBlocking:y=!1,batchSize:S=100}){try{T("fs",t),T("http",e),T("gitdir",c),k||T("dir",l),T("url",u);let _=new Q(t),C=await J({fsp:_,dotgit:c});return await s6({fs:_,cache:A,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,onPostCheckout:o,dir:l,gitdir:C,url:u,corsProxy:f,ref:d,remote:h,depth:m,since:g,exclude:v,relative:w,singleBranch:b,noCheckout:k,noTags:x,headers:E,nonBlocking:y,batchSize:S})}catch(_){throw _.caller="git.clone",_}}async function Ik({fs:t,onSign:e,dir:r,gitdir:n=D(r,".git"),message:i,author:s,committer:a,signingKey:o,amend:l=!1,dryRun:c=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h,cache:m={}}){try{T("fs",t),l||T("message",i),o&&T("onSign",e);let g=new Q(t),v=await J({fsp:g,dotgit:n});return await Hd({fs:g,cache:m,onSign:e,gitdir:v,message:i,author:s,committer:a,signingKey:o,amend:l,dryRun:c,noUpdateBranch:u,ref:f,parent:d,tree:h})}catch(g){throw g.caller="git.commit",g}}async function Fk({fs:t,dir:e,gitdir:r=D(e,".git"),fullname:n=!1,test:i=!1}){try{T("fs",t),T("gitdir",r);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await Ls({fs:s,gitdir:a,fullname:n,test:i})}catch(s){throw s.caller="git.currentBranch",s}}async function a6({fs:t,gitdir:e,ref:r}){if(r=r.startsWith("refs/heads/")?r:`refs/heads/${r}`,!await z.exists({fs:t,gitdir:e,ref:r}))throw new Be(r);let i=await z.expand({fs:t,gitdir:e,ref:r}),s=await Ls({fs:t,gitdir:e,fullname:!0});if(i===s){let l=await z.resolve({fs:t,gitdir:e,ref:i});await z.writeRef({fs:t,gitdir:e,ref:"HEAD",value:l})}await z.deleteRef({fs:t,gitdir:e,ref:i});let a=xa(r),o=await lt.get({fs:t,gitdir:e});await o.deleteSection("branch",a),await lt.save({fs:t,gitdir:e,config:o})}async function Ok({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n}){try{T("fs",t),T("ref",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await a6({fs:i,gitdir:s,ref:n})}catch(i){throw i.caller="git.deleteBranch",i}}async function Mk({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n}){try{T("fs",t),T("ref",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});await z.deleteRef({fs:i,gitdir:s,ref:n})}catch(i){throw i.caller="git.deleteRef",i}}async function o6({fs:t,gitdir:e,remote:r}){let n=await lt.get({fs:t,gitdir:e});await n.deleteSection("remote",r),await lt.save({fs:t,gitdir:e,config:n})}async function Dk({fs:t,dir:e,gitdir:r=D(e,".git"),remote:n}){try{T("fs",t),T("remote",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await o6({fs:i,gitdir:s,remote:n})}catch(i){throw i.caller="git.deleteRemote",i}}async function l6({fs:t,gitdir:e,ref:r}){r=r.startsWith("refs/tags/")?r:`refs/tags/${r}`,await z.deleteRef({fs:t,gitdir:e,ref:r})}async function Lk({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n}){try{T("fs",t),T("ref",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await l6({fs:i,gitdir:s,ref:n})}catch(i){throw i.caller="git.deleteTag",i}}async function c6({fs:t,gitdir:e,oid:r}){let n=r.slice(0,2);return(await t.readdir(`${e}/objects/${n}`)).map(s=>`${n}${s}`).filter(s=>s.startsWith(r))}async function u6({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:i}){let s=[],a=await t.readdir(D(r,"objects/pack"));a=a.filter(o=>o.endsWith(".idx"));for(let o of a){let l=`${r}/objects/pack/${o}`,c=await Sv({fs:t,cache:e,filename:l,getExternalRefDelta:i});if(c.error)throw new he(c.error);for(let u of c.offsets.keys())u.startsWith(n)&&s.push(u)}return s}async function f6({fs:t,cache:e,gitdir:r,oid:n}){let i=o=>Xe({fs:t,cache:e,gitdir:r,oid:o}),s=await c6({fs:t,gitdir:r,oid:n}),a=await u6({fs:t,cache:e,gitdir:r,oid:n,getExternalRefDelta:i});for(let o of a)s.indexOf(o)===-1&&s.push(o);if(s.length===1)return s[0];throw s.length>1?new Zc("oids",n,s):new Be(`an object matching "${n}"`)}async function Nk({fs:t,dir:e,gitdir:r=D(e,".git"),oid:n,cache:i={}}){try{T("fs",t),T("gitdir",r),T("oid",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await f6({fs:s,cache:i,gitdir:a,oid:n})}catch(s){throw s.caller="git.expandOid",s}}async function Bk({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n}){try{T("fs",t),T("gitdir",r),T("ref",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await z.expand({fs:i,gitdir:s,ref:n})}catch(i){throw i.caller="git.expandRef",i}}async function Cv({fs:t,cache:e,gitdir:r,oids:n}){let i={},s=n.length,a=n.map((o,l)=>({index:l,oid:o}));for(;a.length;){let o=new Set;for(let{oid:c,index:u}of a)i[c]||(i[c]=new Set),i[c].add(u),i[c].size===s&&o.add(c);if(o.size>0)return[...o];let l=new Map;for(let{oid:c,index:u}of a)try{let{object:f}=await Xe({fs:t,cache:e,gitdir:r,oid:c}),d=kr.from(f),{parent:h}=d.parseHeaders();for(let m of h)(!i[m]||!i[m].has(u))&&l.set(m+":"+u,{oid:m,index:u})}catch(f){}a=Array.from(l.values())}return[]}var ov=/^.*(\r?\n|$)/gm;function d6({branches:t,contents:e}){let r=t[1],n=t[2],i=e[0],s=e[1],a=e[2],o=s.match(ov),l=i.match(ov),c=a.match(ov),u=q3(o,l,c),f=7,d="",h=!0;for(let m of u)m.ok&&(d+=m.ok.join("")),m.conflict&&(h=!1,d+=`${"<".repeat(f)} ${r} `,d+=m.conflict.a.join(""),d+=`${"=".repeat(f)} -`,d+=m.conflict.b.join(""),d+=`${">".repeat(f)} ${i} -`);return{cleanMerge:h,mergedText:d}}async function Q8({fs:t,cache:e,dir:r,gitdir:i=O(r,".git"),index:n,ourOid:s,baseOid:a,theirOid:o,ourName:l="ours",baseName:c="base",theirName:u="theirs",dryRun:f=!1,abortOnConflict:d=!0,mergeDriver:h}){let m=Zr({ref:s}),g=Zr({ref:a}),v=Zr({ref:o}),w=[],b=[],k=[],x=[],E=await Fs({fs:t,cache:e,dir:r,gitdir:i,trees:[m,g,v],map:async function(A,[y,S,_]){let T=Sd(A),P=await Cd(y,S),D=await Cd(_,S);switch(`${P}-${D}`){case"false-false":return{mode:await S.mode(),path:T,oid:await S.oid(),type:await S.type()};case"false-true":return!_&&await y.type()==="tree"?{mode:await y.mode(),path:T,oid:await y.oid(),type:await y.type()}:_?{mode:await _.mode(),path:T,oid:await _.oid(),type:await _.type()}:void 0;case"true-false":return!y&&await _.type()==="tree"?{mode:await _.mode(),path:T,oid:await _.oid(),type:await _.type()}:y?{mode:await y.mode(),path:T,oid:await y.oid(),type:await y.type()}:void 0;case"true-true":{if(y&&_&&await y.type()==="tree"&&await _.type()==="tree")return{mode:await y.mode(),path:T,oid:await y.oid(),type:"tree"};if(y&&_&&await y.type()==="blob"&&await _.type()==="blob")return J8({fs:t,gitdir:i,path:T,ours:y,base:S,theirs:_,ourName:l,baseName:c,theirName:u,mergeDriver:h}).then(async B=>{if(B.cleanMerge)d||n.insert({filepath:A,oid:B.mergeResult.oid,stage:0});else if(w.push(A),b.push(A),!d){let N="";S&&await S.type()==="blob"&&(N=await S.oid());let ce=await y.oid(),Pe=await _.oid();n.delete({filepath:A}),N&&n.insert({filepath:A,oid:N,stage:1}),n.insert({filepath:A,oid:ce,stage:2}),n.insert({filepath:A,oid:Pe,stage:3})}return B.mergeResult});if(S&&!y&&_&&await S.type()==="blob"&&await _.type()==="blob"){if(w.push(A),k.push(A),!d){let B=await S.oid(),N=await _.oid();n.delete({filepath:A}),n.insert({filepath:A,oid:B,stage:1}),n.insert({filepath:A,oid:N,stage:3})}return{mode:await _.mode(),oid:await _.oid(),type:"blob",path:T}}if(S&&y&&!_&&await S.type()==="blob"&&await y.type()==="blob"){if(w.push(A),x.push(A),!d){let B=await S.oid(),N=await y.oid();n.delete({filepath:A}),n.insert({filepath:A,oid:B,stage:1}),n.insert({filepath:A,oid:N,stage:2})}return{mode:await y.mode(),oid:await y.oid(),type:"blob",path:T}}if(S&&!y&&!_&&(await S.type()==="blob"||await S.type()==="tree"))return;throw new Yo}}},reduce:w.length!==0&&(!r||d)?void 0:async(A,y)=>{let S=y.filter(Boolean);if(A&&!(A&&A.type==="tree"&&S.length===0&&A.path!==".")){if(S.length>0||A.path==="."&&S.length===0){let T=new Er(S).toObject(),P=await Ar({fs:t,gitdir:i,type:"tree",object:T,dryRun:f});A.oid=P}return A}}});return w.length!==0?(r&&!d&&await Fs({fs:t,cache:e,dir:r,gitdir:i,trees:[Zr({ref:E.oid})],map:async function(A,[y]){let S=`${r}/${A}`;if(await y.type()==="blob"){let _=await y.mode(),T=new TextDecoder().decode(await y.content());await t.write(S,T,{mode:_})}return!0}}),new Xo(w,b,k,x)):E.oid}async function J8({fs:t,gitdir:e,path:r,ours:i,base:n,theirs:s,ourName:a,theirName:o,baseName:l,dryRun:c,mergeDriver:u=K8}){let f="blob",d="100755",h="",m="";n&&await n.type()==="blob"&&(d=await n.mode(),h=await n.oid(),m=Buffer.from(await n.content()).toString("utf8"));let g=d===await i.mode()?await s.mode():await i.mode();if(await i.oid()===await s.oid())return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await i.oid(),type:f}};if(await i.oid()===h)return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await s.oid(),type:f}};if(await s.oid()===h)return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await i.oid(),type:f}};let v=Buffer.from(await i.content()).toString("utf8"),w=Buffer.from(await s.content()).toString("utf8"),{mergedText:b,cleanMerge:k}=await u({branches:[l,a,o],contents:[m,v,w],path:r}),x=await Ar({fs:t,gitdir:e,type:"blob",object:Buffer.from(b,"utf8"),dryRun:c});return{cleanMerge:k,mergeResult:{mode:g,path:r,oid:x,type:f}}}async function $k({fs:t,cache:e,dir:r,gitdir:i,ours:n,theirs:s,fastForward:a=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:m,onSign:g,mergeDriver:v,allowUnrelatedHistories:w=!1}){n===void 0&&(n=await Ds({fs:t,gitdir:i,fullname:!0})),n=await W.expand({fs:t,gitdir:i,ref:n}),s=await W.expand({fs:t,gitdir:i,ref:s});let b=await W.resolve({fs:t,gitdir:i,ref:n}),k=await W.resolve({fs:t,gitdir:i,ref:s}),x=await _v({fs:t,cache:e,gitdir:i,oids:[b,k]});if(x.length!==1)if(x.length===0&&w)x.push("4b825dc642cb6eb9a060e54bf8d69288fbee4904");else throw new Yo;let E=x[0];if(E===k)return{oid:b,alreadyMerged:!0};if(a&&E===b)return!l&&!c&&await W.writeRef({fs:t,gitdir:i,ref:n,value:k}),{oid:k,fastForward:!0};{if(o)throw new Yc;let A=await mt.acquire({fs:t,gitdir:i,cache:e,allowUnmerged:!1},async S=>Q8({fs:t,cache:e,dir:r,gitdir:i,index:S,ourOid:b,theirOid:k,baseOid:E,ourName:_a(n),baseName:"base",theirName:_a(s),dryRun:l,abortOnConflict:u,mergeDriver:v}));if(A instanceof Xo)throw A;return f||(f=`Merge branch '${_a(s)}' into ${_a(n)}`),{oid:await Od({fs:t,cache:e,gitdir:i,message:f,ref:n,tree:A,parent:[b,k],author:d,committer:h,signingKey:m,onSign:g,dryRun:l,noUpdateBranch:c}),tree:A,mergeCommit:!0}}}async function Fk({fs:t,cache:e,http:r,onProgress:i,onMessage:n,onAuth:s,onAuthSuccess:a,onAuthFailure:o,dir:l,gitdir:c,ref:u,url:f,remote:d,remoteRef:h,prune:m,pruneTags:g,fastForward:v,fastForwardOnly:w,corsProxy:b,singleBranch:k,headers:x,author:E,committer:A,signingKey:y}){try{if(!u){let T=await Ds({fs:t,gitdir:c});if(!T)throw new Sr("ref");u=T}let{fetchHead:S,fetchHeadDescription:_}=await bv({fs:t,cache:e,http:r,onProgress:i,onMessage:n,onAuth:s,onAuthSuccess:a,onAuthFailure:o,gitdir:c,corsProxy:b,ref:u,url:f,remote:d,remoteRef:h,singleBranch:k,headers:x,prune:m,pruneTags:g});await $k({fs:t,cache:e,gitdir:c,ours:u,theirs:S,fastForward:v,fastForwardOnly:w,message:`Merge ${_}`,author:E,committer:A,signingKey:y,dryRun:!1,noUpdateBranch:!1}),await wv({fs:t,cache:e,onProgress:i,dir:l,gitdir:c,ref:u,remote:d,noCheckout:!1})}catch(S){throw S.caller="git.pull",S}}async function Ik({fs:t,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:l=O(o,".git"),ref:c,url:u,remote:f,remoteRef:d,corsProxy:h,singleBranch:m,headers:g={},cache:v={}}){try{C("fs",t),C("http",e),C("gitdir",l);let w={name:"",email:"",timestamp:Date.now(),timezoneOffset:0},b=new J(t),k=await ee({fsp:b,dotgit:l});return await Fk({fs:b,cache:v,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:k,ref:c,url:u,remote:f,remoteRef:d,fastForwardOnly:!0,corsProxy:h,singleBranch:m,headers:g,author:w,committer:w})}catch(w){throw w.caller="git.fastForward",w}}async function Ok({fs:t,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:l=O(o,".git"),ref:c,remote:u,remoteRef:f,url:d,corsProxy:h,depth:m=null,since:g=null,exclude:v=[],relative:w=!1,tags:b=!1,singleBranch:k=!1,headers:x={},prune:E=!1,pruneTags:A=!1,cache:y={}}){try{C("fs",t),C("http",e),C("gitdir",l);let S=new J(t),_=await ee({fsp:S,dotgit:l});return await bv({fs:S,cache:y,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,gitdir:_,ref:c,remote:u,remoteRef:f,url:d,corsProxy:h,depth:m,since:g,exclude:v,relative:w,tags:b,singleBranch:k,headers:x,prune:E,pruneTags:A})}catch(S){throw S.caller="git.fetch",S}}async function Mk({fs:t,dir:e,gitdir:r=O(e,".git"),oids:i,cache:n={}}){try{C("fs",t),C("gitdir",r),C("oids",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await _v({fs:s,cache:n,gitdir:a,oids:i})}catch(s){throw s.caller="git.findMergeBase",s}}async function Dk({fs:t,filepath:e}){if(await t.exists(O(e,".git")))return e;{let r=xa(e);if(r===e)throw new He(`git root for ${e}`);return Dk({fs:t,filepath:r})}}async function Lk({fs:t,filepath:e}){try{return C("fs",t),C("filepath",e),await Dk({fs:new J(t),filepath:e})}catch(r){throw r.caller="git.findRoot",r}}async function Bk({fs:t,dir:e,gitdir:r=O(e,".git"),path:i}){try{C("fs",t),C("gitdir",r),C("path",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await iu({fs:n,gitdir:s,path:i})}catch(n){throw n.caller="git.getConfig",n}}async function e6({fs:t,gitdir:e,path:r}){return(await ct.get({fs:t,gitdir:e})).getall(r)}async function Nk({fs:t,dir:e,gitdir:r=O(e,".git"),path:i}){try{C("fs",t),C("gitdir",r),C("path",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await e6({fs:n,gitdir:s,path:i})}catch(n){throw n.caller="git.getConfigAll",n}}async function Hk({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:i,corsProxy:n,url:s,headers:a={},forPush:o=!1}){try{C("http",t),C("url",s);let c=await rl.getRemoteHelperFor({url:s}).discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:i,corsProxy:n,service:o?"git-receive-pack":"git-upload-pack",url:s,headers:a,protocolVersion:1}),u={capabilities:[...c.capabilities]};for(let[f,d]of c.refs){let h=f.split("/"),m=h.pop(),g=u;for(let v of h)g[v]=g[v]||{},g=g[v];g[m]=d}for(let[f,d]of c.symrefs){let h=f.split("/"),m=h.pop(),g=u;for(let v of h)g[v]=g[v]||{},g=g[v];g[m]=d}return u}catch(l){throw l.caller="git.getRemoteInfo",l}}function Uk(t,e,r,i){let n=[];for(let[s,a]of t.refs){if(e&&!s.startsWith(e))continue;if(s.endsWith("^{}")){if(i){let l=s.replace("^{}",""),c=n[n.length-1],u=c.ref===l?c:n.find(f=>f.ref===l);if(u===void 0)throw new Error("I did not expect this to happen");u.peeled=a}continue}let o={ref:s,oid:a};r&&t.symrefs.has(s)&&(o.target=t.symrefs.get(s)),n.push(o)}return n}async function Gk({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:i,corsProxy:n,url:s,headers:a={},forPush:o=!1,protocolVersion:l=2}){try{C("http",t),C("url",s);let u=await rl.getRemoteHelperFor({url:s}).discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:i,corsProxy:n,service:o?"git-receive-pack":"git-upload-pack",url:s,headers:a,protocolVersion:l});if(u.protocolVersion===2)return{protocolVersion:u.protocolVersion,capabilities:u.capabilities2};let f={};for(let d of u.capabilities){let[h,m]=d.split("=");m?f[h]=m:f[h]=!0}return{protocolVersion:1,capabilities:f,refs:Uk(u,void 0,!0,!0)}}catch(c){throw c.caller="git.getRemoteInfo2",c}}async function t6({type:t,object:e,format:r="content",oid:i=void 0}){return r!=="deflated"&&(r!=="wrapped"&&(e=Rs.wrap({type:t,object:e})),i=await qn(e)),{oid:i,object:e}}async function jk({object:t}){try{C("object",t),typeof t=="string"?t=Buffer.from(t,"utf8"):t instanceof Uint8Array||(t=new Uint8Array(t));let e="blob",{oid:r,object:i}=await t6({type:e,format:"content",object:t});return{oid:r,type:e,object:i,format:"wrapped"}}catch(e){throw e.caller="git.hashBlob",e}}async function r6({fs:t,cache:e,onProgress:r,dir:i,gitdir:n,filepath:s}){try{s=O(i,s);let a=await t.read(s),o=c=>Ke({fs:t,cache:e,gitdir:n,oid:c}),l=await jc.fromPack({pack:a,getExternalRefDelta:o,onProgress:r});return await t.write(s.replace(/\.pack$/,".idx"),await l.toBuffer()),{oids:[...l.hashes]}}catch(a){throw a.caller="git.indexPack",a}}async function qk({fs:t,onProgress:e,dir:r,gitdir:i=O(r,".git"),filepath:n,cache:s={}}){try{C("fs",t),C("dir",r),C("gitdir",r),C("filepath",n);let a=new J(t),o=await ee({fsp:a,dotgit:i});return await r6({fs:a,cache:s,onProgress:e,dir:r,gitdir:o,filepath:n})}catch(a){throw a.caller="git.indexPack",a}}async function zk({fs:t,bare:e=!1,dir:r,gitdir:i=e?r:O(r,".git"),defaultBranch:n="master"}){try{C("fs",t),C("gitdir",i),e||C("dir",r);let s=new J(t),a=await ee({fsp:s,dotgit:i});return await _k({fs:s,bare:e,dir:r,gitdir:a,defaultBranch:n})}catch(s){throw s.caller="git.init",s}}async function Vk({fs:t,cache:e,gitdir:r,oid:i,ancestor:n,depth:s}){let a=await Ea.read({fs:t,gitdir:r});if(!i)throw new Sr("oid");if(!n)throw new Sr("ancestor");if(i===n)return!1;let o=[i],l=new Set,c=0;for(;o.length;){if(c++===s)throw new Zc(s);let u=o.shift(),{type:f,object:d}=await Ke({fs:t,cache:e,gitdir:r,oid:u});if(f!=="commit")throw new hr(u,f,"commit");let h=kr.from(d).parse();for(let m of h.parent)if(m===n)return!0;if(!a.has(u))for(let m of h.parent)l.has(m)||(o.push(m),l.add(m))}return!1}async function Wk({fs:t,dir:e,gitdir:r=O(e,".git"),oid:i,ancestor:n,depth:s=-1,cache:a={}}){try{C("fs",t),C("gitdir",r),C("oid",i),C("ancestor",n);let o=new J(t),l=await ee({fsp:o,dotgit:r});return await Vk({fs:o,cache:a,gitdir:l,oid:i,ancestor:n,depth:s})}catch(o){throw o.caller="git.isDescendent",o}}async function Yk({fs:t,dir:e,gitdir:r=O(e,".git"),filepath:i}){try{C("fs",t),C("dir",e),C("gitdir",r),C("filepath",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return Is.isIgnored({fs:n,dir:e,gitdir:s,filepath:i})}catch(n){throw n.caller="git.isIgnored",n}}async function Xk({fs:t,dir:e,gitdir:r=O(e,".git"),remote:i}){try{C("fs",t),C("gitdir",r);let n=new J(t),s=await ee({fsp:n,dotgit:r});return W.listBranches({fs:n,gitdir:s,remote:i})}catch(n){throw n.caller="git.listBranches",n}}async function i6({fs:t,gitdir:e,ref:r,cache:i}){if(r){let n=await W.resolve({gitdir:e,fs:t,ref:r}),s=[];return await Zk({fs:t,cache:i,gitdir:e,oid:n,filenames:s,prefix:""}),s}else return mt.acquire({fs:t,gitdir:e,cache:i},async function(n){return n.entries.map(s=>s.path)})}async function Zk({fs:t,cache:e,gitdir:r,oid:i,filenames:n,prefix:s}){let{tree:a}=await sl({fs:t,cache:e,gitdir:r,oid:i});for(let o of a)o.type==="tree"?await Zk({fs:t,cache:e,gitdir:r,oid:o.oid,filenames:n,prefix:O(s,o.path)}):n.push(O(s,o.path))}async function Kk({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i,cache:n={}}){try{C("fs",t),C("gitdir",r);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await i6({fs:s,cache:n,gitdir:a,ref:i})}catch(s){throw s.caller="git.listFiles",s}}async function n6({fs:t,cache:e,gitdir:r,ref:i}){let n;try{n=await W.resolve({gitdir:r,fs:t,ref:i})}catch(o){if(o instanceof He)return[]}return(await sl({fs:t,cache:e,gitdir:r,oid:n})).tree.map(o=>({target:o.path,note:o.oid}))}async function Qk({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i="refs/notes/commits",cache:n={}}){try{C("fs",t),C("gitdir",r),C("ref",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await n6({fs:s,cache:n,gitdir:a,ref:i})}catch(s){throw s.caller="git.listNotes",s}}async function Jk({fs:t,dir:e,gitdir:r=O(e,".git"),filepath:i}){try{C("fs",t),C("gitdir",r);let n=new J(t),s=await ee({fsp:n,dotgit:r});return W.listRefs({fs:n,gitdir:s,filepath:i})}catch(n){throw n.caller="git.listRefs",n}}async function s6({fs:t,gitdir:e}){let r=await ct.get({fs:t,gitdir:e}),i=await r.getSubsections("remote");return Promise.all(i.map(async s=>{let a=await r.get(`remote.${s}.url`);return{remote:s,url:a}}))}async function eA({fs:t,dir:e,gitdir:r=O(e,".git")}){try{C("fs",t),C("gitdir",r);let i=new J(t),n=await ee({fsp:i,dotgit:r});return await s6({fs:i,gitdir:n})}catch(i){throw i.caller="git.listRemotes",i}}async function a6(t){let e=at.streamReader(t),r=[],i;for(;i=await e(),i!==!0;){if(i===null)continue;i=i.toString("utf8").replace(/\n$/,"");let[n,s,...a]=i.split(" "),o={ref:s,oid:n};for(let l of a){let[c,u]=l.split(":");c==="symref-target"?o.target=u:c==="peeled"&&(o.peeled=u)}r.push(o)}return r}async function o6({prefix:t,symrefs:e,peelTags:r}){let i=[];return i.push(at.encode(`command=ls-refs -`)),i.push(at.encode(`agent=${Md.agent} -`)),(r||e||t)&&i.push(at.delim()),r&&i.push(at.encode("peel")),e&&i.push(at.encode("symrefs")),t&&i.push(at.encode(`ref-prefix ${t}`)),i.push(at.flush()),i}async function tA({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:i,corsProxy:n,url:s,headers:a={},forPush:o=!1,protocolVersion:l=2,prefix:c,symrefs:u,peelTags:f}){try{C("http",t),C("url",s);let d=await tl.discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:i,corsProxy:n,service:o?"git-receive-pack":"git-upload-pack",url:s,headers:a,protocolVersion:l});if(d.protocolVersion===1)return Uk(d,c,u,f);let h=await o6({prefix:c,symrefs:u,peelTags:f}),m=await tl.connect({http:t,auth:d.auth,headers:a,corsProxy:n,service:o?"git-receive-pack":"git-upload-pack",url:s,body:h});return a6(m.body)}catch(d){throw d.caller="git.listServerRefs",d}}async function rA({fs:t,dir:e,gitdir:r=O(e,".git")}){try{C("fs",t),C("gitdir",r);let i=new J(t),n=await ee({fsp:i,dotgit:r});return W.listTags({fs:i,gitdir:n})}catch(i){throw i.caller="git.listTags",i}}function l6(t,e){return t.committer.timestamp-e.committer.timestamp}var c6="e69de29bb2d1d6434b8b29ae775ad8c2e48c5391";async function zE({fs:t,cache:e,gitdir:r,oid:i,fileId:n}){if(n===c6)return;let s=i,a,o=await Qo({fs:t,cache:e,gitdir:r,oid:i}),l=o.tree;return n===o.oid?a=o.path:(a=await iA({fs:t,cache:e,gitdir:r,tree:l,fileId:n,oid:s}),Array.isArray(a)&&(a.length===0?a=void 0:a.length===1&&(a=a[0]))),a}async function iA({fs:t,cache:e,gitdir:r,tree:i,fileId:n,oid:s,filepaths:a=[],parentPath:o=""}){let l=i.entries().map(function(c){let u;return c.oid===n?(u=O(o,c.path),a.push(u)):c.type==="tree"&&(u=Ke({fs:t,cache:e,gitdir:r,oid:c.oid}).then(function({object:f}){return iA({fs:t,cache:e,gitdir:r,tree:Er.from(f),fileId:n,oid:s,filepaths:a,parentPath:O(o,c.path)})})),u});return await Promise.all(l),a}async function u6({fs:t,cache:e,gitdir:r,filepath:i,ref:n,depth:s,since:a,force:o,follow:l}){let c=typeof a=="undefined"?void 0:Math.floor(a.valueOf()/1e3),u=[],f=await Ea.read({fs:t,gitdir:r}),d=await W.resolve({fs:t,gitdir:r,ref:n}),h=[await el({fs:t,cache:e,gitdir:r,oid:d})],m,g,v;function w(b){v&&i&&u.push(b)}for(;h.length>0;){let b=h.pop();if(c!==void 0&&b.commit.committer.timestamp<=c)break;if(i){let k;try{k=await su({fs:t,cache:e,gitdir:r,oid:b.commit.tree,filepath:i}),g&&m!==k&&u.push(g),m=k,g=b,v=!0}catch(x){if(x instanceof He){let E=l&&m;if(E&&(E=await zE({fs:t,cache:e,gitdir:r,oid:b.commit.tree,fileId:m}),E))if(Array.isArray(E)){if(g){let A=await zE({fs:t,cache:e,gitdir:r,oid:g.commit.tree,fileId:m});if(Array.isArray(A))if(E=E.filter(y=>A.indexOf(y)===-1),E.length===1)E=E[0],i=E,g&&u.push(g);else{E=!1,g&&u.push(g);break}}}else i=E,g&&u.push(g);if(!E){if(v&&m&&(u.push(g),!o))break;if(!o&&!l)throw x}g=b,v=!1}else throw x}}else u.push(b);if(s!==void 0&&u.length===s){w(b);break}if(!f.has(b.oid))for(let k of b.commit.parent){let x=await el({fs:t,cache:e,gitdir:r,oid:k});h.map(E=>E.oid).includes(x.oid)||h.push(x)}h.length===0&&w(b),h.sort((k,x)=>l6(k.commit,x.commit))}return u}async function nA({fs:t,dir:e,gitdir:r=O(e,".git"),filepath:i,ref:n="HEAD",depth:s,since:a,force:o,follow:l,cache:c={}}){try{C("fs",t),C("gitdir",r),C("ref",n);let u=new J(t),f=await ee({fsp:u,dotgit:r});return await u6({fs:u,cache:c,gitdir:f,filepath:i,ref:n,depth:s,since:a,force:o,follow:l})}catch(u){throw u.caller="git.log",u}}async function sA({fs:t,onSign:e,dir:r,gitdir:i=O(r,".git"),ours:n,theirs:s,fastForward:a=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:m,cache:g={},mergeDriver:v,allowUnrelatedHistories:w=!1}){try{C("fs",t),m&&C("onSign",e);let b=new J(t),k=await ee({fsp:b,dotgit:i}),x=await Os({fs:b,gitdir:k,author:d});if(!x&&(!o||!a))throw new Jt("author");let E=await Jo({fs:b,gitdir:k,author:x,committer:h});if(!E&&(!o||!a))throw new Jt("committer");return await $k({fs:b,cache:g,dir:r,gitdir:k,ours:n,theirs:s,fastForward:a,fastForwardOnly:o,dryRun:l,noUpdateBranch:c,abortOnConflict:u,message:f,author:x,committer:E,signingKey:m,onSign:e,mergeDriver:v,allowUnrelatedHistories:w})}catch(b){throw b.caller="git.merge",b}}var f6={commit:16,tree:32,blob:48,tag:64,ofs_delta:96,ref_delta:112};async function aA({fs:t,cache:e,dir:r,gitdir:i=O(r,".git"),oids:n}){let s=new WE,a=[];function o(u,f){let d=Buffer.from(u,f);a.push(d),s.update(d)}async function l({stype:u,object:f}){let d=f6[u],h=f.length,m=h>15?128:0,g=h&15;h=h>>>4;let v=(m|d|g).toString(16);for(o(v,"hex");m;)m=h>127?128:0,v=m|h&127,o(mv(2,v),"hex"),h=h>>>7;o(Buffer.from(await sk(f)))}o("PACK"),o("00000002","hex"),o(mv(8,n.length),"hex");for(let u of n){let{type:f,object:d}=await Ke({fs:t,cache:e,gitdir:i,oid:u});await l({write:o,object:d,stype:f})}let c=s.digest();return a.push(c),a}async function d6({fs:t,cache:e,gitdir:r,oids:i,write:n}){let s=await aA({fs:t,cache:e,gitdir:r,oids:i}),a=Buffer.from(await Pd(s)),l=`pack-${a.slice(-20).toString("hex")}.pack`;return n?(await t.write(O(r,`objects/pack/${l}`),a),{filename:l}):{filename:l,packfile:new Uint8Array(a)}}async function oA({fs:t,dir:e,gitdir:r=O(e,".git"),oids:i,write:n=!1,cache:s={}}){try{C("fs",t),C("gitdir",r),C("oids",i);let a=new J(t),o=await ee({fsp:a,dotgit:r});return await d6({fs:a,cache:s,gitdir:o,oids:i,write:n})}catch(a){throw a.caller="git.packObjects",a}}async function lA({fs:t,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:l=O(o,".git"),ref:c,url:u,remote:f,remoteRef:d,prune:h=!1,pruneTags:m=!1,fastForward:g=!0,fastForwardOnly:v=!1,corsProxy:w,singleBranch:b,headers:k={},author:x,committer:E,signingKey:A,cache:y={}}){try{C("fs",t),C("gitdir",l);let S=new J(t),_=await ee({fsp:S,dotgit:l}),T=await Os({fs:S,gitdir:_,author:x});if(!T)throw new Jt("author");let P=await Jo({fs:S,gitdir:_,author:T,committer:E});if(!P)throw new Jt("committer");return await Fk({fs:S,cache:y,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:_,ref:c,url:u,remote:f,remoteRef:d,fastForward:g,fastForwardOnly:v,corsProxy:w,singleBranch:b,headers:k,author:T,committer:P,signingKey:A,prune:h,pruneTags:m})}catch(S){throw S.caller="git.pull",S}}async function h6({fs:t,cache:e,dir:r,gitdir:i=O(r,".git"),start:n,finish:s}){let a=await Ea.read({fs:t,gitdir:i}),o=new Set,l=new Set;for(let f of n)o.add(await W.resolve({fs:t,gitdir:i,ref:f}));for(let f of s)try{let d=await W.resolve({fs:t,gitdir:i,ref:f});l.add(d)}catch(d){}let c=new Set;async function u(f){c.add(f);let{type:d,object:h}=await Ke({fs:t,cache:e,gitdir:i,oid:f});if(d==="tag"){let g=Kr.from(h).headers().object;return u(g)}if(d!=="commit")throw new hr(f,d,"commit");if(!a.has(f)){let g=kr.from(h).headers().parent;for(f of g)!l.has(f)&&!c.has(f)&&await u(f)}}for(let f of o)await u(f);return c}async function rv({fs:t,cache:e,dir:r,gitdir:i=O(r,".git"),oids:n}){let s=new Set;async function a(o){if(s.has(o))return;s.add(o);let{type:l,object:c}=await Ke({fs:t,cache:e,gitdir:i,oid:o});if(l==="tag"){let f=Kr.from(c).headers().object;await a(f)}else if(l==="commit"){let f=kr.from(c).headers().tree;await a(f)}else if(l==="tree"){let u=Er.from(c);for(let f of u)f.type==="blob"&&s.add(f.oid),f.type==="tree"&&await a(f.oid)}}for(let o of n)await a(o);return s}async function p6(t){let e={},r="",i=at.streamReader(t),n=await i();for(;n!==!0;)n!==null&&(r+=n.toString("utf8")+` -`),n=await i();let s=r.toString("utf8").split(` -`);if(n=s.shift(),!n.startsWith("unpack "))throw new Sa('unpack ok" or "unpack [error message]',n);e.ok=n==="unpack ok",e.ok||(e.error=n.slice(7)),e.refs={};for(let a of s){if(a.trim()==="")continue;let o=a.slice(0,2),l=a.slice(3),c=l.indexOf(" ");c===-1&&(c=l.length);let u=l.slice(0,c),f=l.slice(c+1);e.refs[u]={ok:o==="ok",error:f}}return e}async function m6({capabilities:t=[],triplets:e=[]}){let r=[],i=`\0 ${t.join(" ")}`;for(let n of e)r.push(at.encode(`${n.oldoid} ${n.oid} ${n.fullRef}${i} -`)),i="";return r.push(at.flush()),r}async function g6({fs:t,cache:e,http:r,onProgress:i,onMessage:n,onAuth:s,onAuthSuccess:a,onAuthFailure:o,onPrePush:l,gitdir:c,ref:u,remoteRef:f,remote:d,url:h,force:m=!1,delete:g=!1,corsProxy:v,headers:w={}}){let b=u||await Ds({fs:t,gitdir:c});if(typeof b=="undefined")throw new Sr("ref");let k=await ct.get({fs:t,gitdir:c});d=d||await k.get(`branch.${b}.pushRemote`)||await k.get("remote.pushDefault")||await k.get(`branch.${b}.remote`)||"origin";let x=h||await k.get(`remote.${d}.pushurl`)||await k.get(`remote.${d}.url`);if(typeof x=="undefined")throw new Sr("remote OR url");let E=f||await k.get(`branch.${b}.merge`);if(typeof x=="undefined")throw new Sr("remoteRef");v===void 0&&(v=await k.get("http.corsProxy"));let A=await W.expand({fs:t,gitdir:c,ref:b}),y=g?"0000000000000000000000000000000000000000":await W.resolve({fs:t,gitdir:c,ref:A}),S=rl.getRemoteHelperFor({url:x}),_=await S.discover({http:r,onAuth:s,onAuthSuccess:a,onAuthFailure:o,corsProxy:v,service:"git-receive-pack",url:x,headers:w,protocolVersion:1}),T=_.auth,P;if(!E)P=A;else try{P=await W.expandAgainstMap({ref:E,map:_.refs})}catch(Q){if(Q instanceof He)P=E.startsWith("refs/")?E:`refs/heads/${E}`;else throw Q}let D=_.refs.get(P)||"0000000000000000000000000000000000000000";if(l&&!await l({remote:d,url:x,localRef:{ref:g?"(delete)":A,oid:y},remoteRef:{ref:P,oid:D}}))throw new Ko;let B=!_.capabilities.has("no-thin"),N=new Set;if(!g){let Q=[..._.refs.values()],j=new Set;if(D!=="0000000000000000000000000000000000000000"){let Le=await _v({fs:t,cache:e,gitdir:c,oids:[y,D]});for(let lr of Le)Q.push(lr);B&&(j=await rv({fs:t,cache:e,gitdir:c,oids:Le}))}if(!Q.includes(y)){let Le=await h6({fs:t,cache:e,gitdir:c,start:[y],finish:Q});N=await rv({fs:t,cache:e,gitdir:c,oids:Le})}if(B){try{let Le=await W.resolve({fs:t,gitdir:c,ref:`refs/remotes/${d}/HEAD`,depth:2}),{oid:lr}=await W.resolveAgainstMap({ref:Le.replace(`refs/remotes/${d}/`,""),fullref:Le,map:_.refs}),It=[lr];for(let Fe of await rv({fs:t,cache:e,gitdir:c,oids:It}))j.add(Fe)}catch(Le){}for(let Le of j)N.delete(Le)}if(y===D&&(m=!0),!m){if(A.startsWith("refs/tags")&&D!=="0000000000000000000000000000000000000000")throw new Zo("tag-exists");if(y!=="0000000000000000000000000000000000000000"&&D!=="0000000000000000000000000000000000000000"&&!await Vk({fs:t,cache:e,gitdir:c,oid:y,ancestor:D,depth:-1}))throw new Zo("not-fast-forward")}}let ce=yk([..._.capabilities],["report-status","side-band-64k",`agent=${Md.agent}`]),Pe=await m6({capabilities:ce,triplets:[{oldoid:D,oid:y,fullRef:P}]}),ve=g?[]:await aA({fs:t,cache:e,gitdir:c,oids:[...N]}),se=await S.connect({http:r,onProgress:i,corsProxy:v,service:"git-receive-pack",url:x,auth:T,headers:w,body:[...Pe,...ve]}),{packfile:xe,progress:we}=await Rd.demux(se.body);if(n){let Q=bk(we);ou(Q,async j=>{await n(j)})}let z=await p6(xe);if(se.headers&&(z.headers=se.headers),d&&z.ok&&z.refs[P].ok&&!A.startsWith("refs/tags")){let Q=`refs/remotes/${d}/${P.replace("refs/heads","")}`;g?await W.deleteRef({fs:t,gitdir:c,ref:Q}):await W.writeRef({fs:t,gitdir:c,ref:Q,value:y})}if(z.ok&&Object.values(z.refs).every(Q=>Q.ok))return z;{let Q=Object.entries(z.refs).filter(([j,Le])=>!Le.ok).map(([j,Le])=>` - - ${j}: ${Le.error}`).join("");throw new Xc(Q,z)}}async function cA({fs:t,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,onPrePush:o,dir:l,gitdir:c=O(l,".git"),ref:u,remoteRef:f,remote:d="origin",url:h,force:m=!1,delete:g=!1,corsProxy:v,headers:w={},cache:b={}}){try{C("fs",t),C("http",e),C("gitdir",c);let k=new J(t),x=await ee({fsp:k,dotgit:c});return await g6({fs:k,cache:b,http:e,onProgress:r,onMessage:i,onAuth:n,onAuthSuccess:s,onAuthFailure:a,onPrePush:o,gitdir:x,ref:u,remoteRef:f,remote:d,url:h,force:m,delete:g,corsProxy:v,headers:w})}catch(k){throw k.caller="git.push",k}}async function uA({fs:t,cache:e,gitdir:r,oid:i}){let{type:n,object:s}=await Ke({fs:t,cache:e,gitdir:r,oid:i});if(n==="tag")return i=Kr.from(s).parse().object,uA({fs:t,cache:e,gitdir:r,oid:i});if(n!=="blob")throw new hr(i,n,"blob");return{oid:i,blob:new Uint8Array(s)}}async function fA({fs:t,cache:e,gitdir:r,oid:i,filepath:n=void 0}){return n!==void 0&&(i=await su({fs:t,cache:e,gitdir:r,oid:i,filepath:n})),await uA({fs:t,cache:e,gitdir:r,oid:i})}async function dA({fs:t,dir:e,gitdir:r=O(e,".git"),oid:i,filepath:n,cache:s={}}){try{C("fs",t),C("gitdir",r),C("oid",i);let a=new J(t),o=await ee({fsp:a,dotgit:r});return await fA({fs:a,cache:s,gitdir:o,oid:i,filepath:n})}catch(a){throw a.caller="git.readBlob",a}}async function xv({fs:t,dir:e,gitdir:r=O(e,".git"),oid:i,cache:n={}}){try{C("fs",t),C("gitdir",r),C("oid",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await el({fs:s,cache:n,gitdir:a,oid:i})}catch(s){throw s.caller="git.readCommit",s}}async function v6({fs:t,cache:e,gitdir:r,ref:i="refs/notes/commits",oid:n}){let s=await W.resolve({gitdir:r,fs:t,ref:i}),{blob:a}=await fA({fs:t,cache:e,gitdir:r,oid:s,filepath:n});return a}async function hA({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i="refs/notes/commits",oid:n,cache:s={}}){try{C("fs",t),C("gitdir",r),C("ref",i),C("oid",n);let a=new J(t),o=await ee({fsp:a,dotgit:r});return await v6({fs:a,cache:s,gitdir:o,ref:i,oid:n})}catch(a){throw a.caller="git.readNote",a}}async function pA({fs:t,dir:e,gitdir:r=O(e,".git"),oid:i,format:n="parsed",filepath:s=void 0,encoding:a=void 0,cache:o={}}){try{C("fs",t),C("gitdir",r),C("oid",i);let l=new J(t),c=await ee({fsp:l,dotgit:r});s!==void 0&&(i=await su({fs:l,cache:o,gitdir:c,oid:i,filepath:s}));let f=await Ke({fs:l,cache:o,gitdir:c,oid:i,format:n==="parsed"?"content":n});if(f.oid=i,n==="parsed")switch(f.format="parsed",f.type){case"commit":f.object=kr.from(f.object).parse();break;case"tree":f.object=Er.from(f.object).entries();break;case"blob":a?f.object=f.object.toString(a):(f.object=new Uint8Array(f.object),f.format="content");break;case"tag":f.object=Kr.from(f.object).parse();break;default:throw new hr(f.oid,f.type,"blob|commit|tag|tree")}else(f.format==="deflated"||f.format==="wrapped")&&(f.type=f.format);return f}catch(l){throw l.caller="git.readObject",l}}async function w6({fs:t,cache:e,gitdir:r,oid:i}){let{type:n,object:s}=await Ke({fs:t,cache:e,gitdir:r,oid:i,format:"content"});if(n!=="tag")throw new hr(i,n,"tag");let a=Kr.from(s);return{oid:i,tag:a.parse(),payload:a.payload()}}async function mA({fs:t,dir:e,gitdir:r=O(e,".git"),oid:i,cache:n={}}){try{C("fs",t),C("gitdir",r),C("oid",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await w6({fs:s,cache:n,gitdir:a,oid:i})}catch(s){throw s.caller="git.readTag",s}}async function gA({fs:t,dir:e,gitdir:r=O(e,".git"),oid:i,filepath:n=void 0,cache:s={}}){try{C("fs",t),C("gitdir",r),C("oid",i);let a=new J(t),o=await ee({fsp:a,dotgit:r});return await sl({fs:a,cache:s,gitdir:o,oid:i,filepath:n})}catch(a){throw a.caller="git.readTree",a}}async function vA({fs:t,dir:e,gitdir:r=O(e,".git"),filepath:i,cache:n={}}){try{C("fs",t),C("gitdir",r),C("filepath",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});await mt.acquire({fs:s,gitdir:a,cache:n},async function(o){o.delete({filepath:i})})}catch(s){throw s.caller="git.remove",s}}async function y6({fs:t,cache:e,onSign:r,gitdir:i,ref:n="refs/notes/commits",oid:s,author:a,committer:o,signingKey:l}){let c;try{c=await W.resolve({gitdir:i,fs:t,ref:n})}catch(m){if(!(m instanceof He))throw m}let f=(await sl({fs:t,cache:e,gitdir:i,oid:c||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;f=f.filter(m=>m.path!==s);let d=await au({fs:t,gitdir:i,tree:f});return await Od({fs:t,cache:e,onSign:r,gitdir:i,ref:n,tree:d,parent:c&&[c],message:`Note removed by 'isomorphic-git removeNote' -`,author:a,committer:o,signingKey:l})}async function wA({fs:t,onSign:e,dir:r,gitdir:i=O(r,".git"),ref:n="refs/notes/commits",oid:s,author:a,committer:o,signingKey:l,cache:c={}}){try{C("fs",t),C("gitdir",i),C("oid",s);let u=new J(t),f=await ee({fsp:u,dotgit:i}),d=await Os({fs:u,gitdir:f,author:a});if(!d)throw new Jt("author");let h=await Jo({fs:u,gitdir:f,author:d,committer:o});if(!h)throw new Jt("committer");return await y6({fs:u,cache:c,onSign:e,gitdir:f,ref:n,oid:s,author:d,committer:h,signingKey:l})}catch(u){throw u.caller="git.removeNote",u}}async function b6({fs:t,gitdir:e,oldref:r,ref:i,checkout:n=!1}){if(!nu(i,!0))throw new Fi(i,Hc.clean(i));if(!nu(r,!0))throw new Fi(r,Hc.clean(r));let s=`refs/heads/${r}`,a=`refs/heads/${i}`;if(await W.exists({fs:t,gitdir:e,ref:a}))throw new $i("branch",i,!1);let l=await W.resolve({fs:t,gitdir:e,ref:s,depth:1});await W.writeRef({fs:t,gitdir:e,ref:a,value:l}),await W.deleteRef({fs:t,gitdir:e,ref:s});let u=await Ds({fs:t,gitdir:e,fullname:!0})===s;(n||u)&&await W.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:a})}async function yA({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i,oldref:n,checkout:s=!1}){try{C("fs",t),C("gitdir",r),C("ref",i),C("oldref",n);let a=new J(t),o=await ee({fsp:a,dotgit:r});return await b6({fs:a,gitdir:o,ref:i,oldref:n,checkout:s})}catch(a){throw a.caller="git.renameBranch",a}}async function bA({gitdir:t,type:e,object:r}){return qn(Rs.wrap({type:e,object:r}))}async function _A({fs:t,dir:e,gitdir:r=O(e,".git"),filepath:i,ref:n,cache:s={}}){try{C("fs",t),C("gitdir",r),C("filepath",i);let a=new J(t),o=await ee({fsp:a,dotgit:r}),l,c;try{l=await W.resolve({fs:a,gitdir:o,ref:n||"HEAD"})}catch(d){if(n)throw d}if(l)try{l=await su({fs:a,cache:s,gitdir:o,oid:l,filepath:i})}catch(d){l=null}let u={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:0,uid:0,gid:0,size:0},f=e&&await a.read(O(e,i));f&&(c=await bA({gitdir:o,type:"blob",object:f}),l===c&&(u=await a.lstat(O(e,i)))),await mt.acquire({fs:a,gitdir:o,cache:s},async function(d){d.delete({filepath:i}),l&&d.insert({filepath:i,stats:u,oid:l})})}catch(a){throw a.caller="git.reset",a}}async function xA({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i,depth:n}){try{C("fs",t),C("gitdir",r),C("ref",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});return await W.resolve({fs:s,gitdir:a,ref:i,depth:n})}catch(s){throw s.caller="git.resolveRef",s}}async function SA({fs:t,dir:e,gitdir:r=O(e,".git"),path:i,value:n,append:s=!1}){try{C("fs",t),C("gitdir",r),C("path",i);let a=new J(t),o=await ee({fsp:a,dotgit:r}),l=await ct.get({fs:a,gitdir:o});s?await l.append(i,n):await l.set(i,n),await ct.save({fs:a,gitdir:o,config:l})}catch(a){throw a.caller="git.setConfig",a}}async function EA({fs:t,gitdir:e,commit:r}){let i=kr.from(r).toObject();return await Ar({fs:t,gitdir:e,type:"commit",object:i,format:"content"})}var $d=class t{static get timezoneOffsetForRefLogEntry(){let e=new Date().getTimezoneOffset(),r=Math.abs(Math.floor(e/60)),i=Math.abs(e%60).toString().padStart(2,"0");return`${e>0?"-":"+"}${r.toString().padStart(2,"0")}${i}`}static createStashReflogEntry(e,r,i){let n=e.name.replace(/\s/g,""),s="0000000000000000000000000000000000000000",a=Math.floor(Date.now()/1e3),o=t.timezoneOffsetForRefLogEntry;return`${s} ${r} ${n} ${e.email} ${a} ${o} ${i} +`,d+=m.conflict.b.join(""),d+=`${">".repeat(f)} ${n} +`);return{cleanMerge:h,mergedText:d}}async function h6({fs:t,cache:e,dir:r,gitdir:n=D(r,".git"),index:i,ourOid:s,baseOid:a,theirOid:o,ourName:l="ours",baseName:c="base",theirName:u="theirs",dryRun:f=!1,abortOnConflict:d=!0,mergeDriver:h}){let m=Xr({ref:s}),g=Xr({ref:a}),v=Xr({ref:o}),w=[],b=[],k=[],x=[],E=await Fs({fs:t,cache:e,dir:r,gitdir:n,trees:[m,g,v],map:async function(A,[y,S,_]){let C=Pd(A),P=await Od(y,S),N=await Od(_,S);switch(`${P}-${N}`){case"false-false":return{mode:await S.mode(),path:C,oid:await S.oid(),type:await S.type()};case"false-true":return!_&&await y.type()==="tree"?{mode:await y.mode(),path:C,oid:await y.oid(),type:await y.type()}:_?{mode:await _.mode(),path:C,oid:await _.oid(),type:await _.type()}:void 0;case"true-false":return!y&&await _.type()==="tree"?{mode:await _.mode(),path:C,oid:await _.oid(),type:await _.type()}:y?{mode:await y.mode(),path:C,oid:await y.oid(),type:await y.type()}:void 0;case"true-true":{if(y&&_&&await y.type()==="tree"&&await _.type()==="tree")return{mode:await y.mode(),path:C,oid:await y.oid(),type:"tree"};if(y&&_&&await y.type()==="blob"&&await _.type()==="blob")return p6({fs:t,gitdir:n,path:C,ours:y,base:S,theirs:_,ourName:l,baseName:c,theirName:u,mergeDriver:h}).then(async B=>{if(B.cleanMerge)d||i.insert({filepath:A,oid:B.mergeResult.oid,stage:0});else if(w.push(A),b.push(A),!d){let H="";S&&await S.type()==="blob"&&(H=await S.oid());let ce=await y.oid(),Pe=await _.oid();i.delete({filepath:A}),H&&i.insert({filepath:A,oid:H,stage:1}),i.insert({filepath:A,oid:ce,stage:2}),i.insert({filepath:A,oid:Pe,stage:3})}return B.mergeResult});if(S&&!y&&_&&await S.type()==="blob"&&await _.type()==="blob"){if(w.push(A),k.push(A),!d){let B=await S.oid(),H=await _.oid();i.delete({filepath:A}),i.insert({filepath:A,oid:B,stage:1}),i.insert({filepath:A,oid:H,stage:3})}return{mode:await _.mode(),oid:await _.oid(),type:"blob",path:C}}if(S&&y&&!_&&await S.type()==="blob"&&await y.type()==="blob"){if(w.push(A),x.push(A),!d){let B=await S.oid(),H=await y.oid();i.delete({filepath:A}),i.insert({filepath:A,oid:B,stage:1}),i.insert({filepath:A,oid:H,stage:2})}return{mode:await y.mode(),oid:await y.oid(),type:"blob",path:C}}if(S&&!y&&!_&&(await S.type()==="blob"||await S.type()==="tree"))return;throw new Xo}}},reduce:w.length!==0&&(!r||d)?void 0:async(A,y)=>{let S=y.filter(Boolean);if(A&&!(A&&A.type==="tree"&&S.length===0&&A.path!==".")){if(S.length>0||A.path==="."&&S.length===0){let C=new Er(S).toObject(),P=await Ar({fs:t,gitdir:n,type:"tree",object:C,dryRun:f});A.oid=P}return A}}});return w.length!==0?(r&&!d&&await Fs({fs:t,cache:e,dir:r,gitdir:n,trees:[Xr({ref:E.oid})],map:async function(A,[y]){let S=`${r}/${A}`;if(await y.type()==="blob"){let _=await y.mode(),C=new TextDecoder().decode(await y.content());await t.write(S,C,{mode:_})}return!0}}),new Zo(w,b,k,x)):E.oid}async function p6({fs:t,gitdir:e,path:r,ours:n,base:i,theirs:s,ourName:a,theirName:o,baseName:l,dryRun:c,mergeDriver:u=d6}){let f="blob",d="100755",h="",m="";i&&await i.type()==="blob"&&(d=await i.mode(),h=await i.oid(),m=Buffer.from(await i.content()).toString("utf8"));let g=d===await n.mode()?await s.mode():await n.mode();if(await n.oid()===await s.oid())return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await n.oid(),type:f}};if(await n.oid()===h)return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await s.oid(),type:f}};if(await s.oid()===h)return{cleanMerge:!0,mergeResult:{mode:g,path:r,oid:await n.oid(),type:f}};let v=Buffer.from(await n.content()).toString("utf8"),w=Buffer.from(await s.content()).toString("utf8"),{mergedText:b,cleanMerge:k}=await u({branches:[l,a,o],contents:[m,v,w],path:r}),x=await Ar({fs:t,gitdir:e,type:"blob",object:Buffer.from(b,"utf8"),dryRun:c});return{cleanMerge:k,mergeResult:{mode:g,path:r,oid:x,type:f}}}async function Hk({fs:t,cache:e,dir:r,gitdir:n,ours:i,theirs:s,fastForward:a=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:m,onSign:g,mergeDriver:v,allowUnrelatedHistories:w=!1}){i===void 0&&(i=await Ls({fs:t,gitdir:n,fullname:!0})),i=await z.expand({fs:t,gitdir:n,ref:i}),s=await z.expand({fs:t,gitdir:n,ref:s});let b=await z.resolve({fs:t,gitdir:n,ref:i}),k=await z.resolve({fs:t,gitdir:n,ref:s}),x=await Cv({fs:t,cache:e,gitdir:n,oids:[b,k]});if(x.length!==1)if(x.length===0&&w)x.push("4b825dc642cb6eb9a060e54bf8d69288fbee4904");else throw new Xo;let E=x[0];if(E===k)return{oid:b,alreadyMerged:!0};if(a&&E===b)return!l&&!c&&await z.writeRef({fs:t,gitdir:n,ref:i,value:k}),{oid:k,fastForward:!0};{if(o)throw new eu;let A=await ht.acquire({fs:t,gitdir:n,cache:e,allowUnmerged:!1},async S=>h6({fs:t,cache:e,dir:r,gitdir:n,index:S,ourOid:b,theirOid:k,baseOid:E,ourName:xa(i),baseName:"base",theirName:xa(s),dryRun:l,abortOnConflict:u,mergeDriver:v}));if(A instanceof Zo)throw A;return f||(f=`Merge branch '${xa(s)}' into ${xa(i)}`),{oid:await Hd({fs:t,cache:e,gitdir:n,message:f,ref:i,tree:A,parent:[b,k],author:d,committer:h,signingKey:m,onSign:g,dryRun:l,noUpdateBranch:c}),tree:A,mergeCommit:!0}}}async function Uk({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:s,onAuthSuccess:a,onAuthFailure:o,dir:l,gitdir:c,ref:u,url:f,remote:d,remoteRef:h,prune:m,pruneTags:g,fastForward:v,fastForwardOnly:w,corsProxy:b,singleBranch:k,headers:x,author:E,committer:A,signingKey:y}){try{if(!u){let C=await Ls({fs:t,gitdir:c});if(!C)throw new Sr("ref");u=C}let{fetchHead:S,fetchHeadDescription:_}=await Av({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:s,onAuthSuccess:a,onAuthFailure:o,gitdir:c,corsProxy:b,ref:u,url:f,remote:d,remoteRef:h,singleBranch:k,headers:x,prune:m,pruneTags:g});await Hk({fs:t,cache:e,gitdir:c,ours:u,theirs:S,fastForward:v,fastForwardOnly:w,message:`Merge ${_}`,author:E,committer:A,signingKey:y,dryRun:!1,noUpdateBranch:!1}),await Ev({fs:t,cache:e,onProgress:n,dir:l,gitdir:c,ref:u,remote:d,noCheckout:!1})}catch(S){throw S.caller="git.pull",S}}async function Gk({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:l=D(o,".git"),ref:c,url:u,remote:f,remoteRef:d,corsProxy:h,singleBranch:m,headers:g={},cache:v={}}){try{T("fs",t),T("http",e),T("gitdir",l);let w={name:"",email:"",timestamp:Date.now(),timezoneOffset:0},b=new Q(t),k=await J({fsp:b,dotgit:l});return await Uk({fs:b,cache:v,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:k,ref:c,url:u,remote:f,remoteRef:d,fastForwardOnly:!0,corsProxy:h,singleBranch:m,headers:g,author:w,committer:w})}catch(w){throw w.caller="git.fastForward",w}}async function jk({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:l=D(o,".git"),ref:c,remote:u,remoteRef:f,url:d,corsProxy:h,depth:m=null,since:g=null,exclude:v=[],relative:w=!1,tags:b=!1,singleBranch:k=!1,headers:x={},prune:E=!1,pruneTags:A=!1,cache:y={}}){try{T("fs",t),T("http",e),T("gitdir",l);let S=new Q(t),_=await J({fsp:S,dotgit:l});return await Av({fs:S,cache:y,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,gitdir:_,ref:c,remote:u,remoteRef:f,url:d,corsProxy:h,depth:m,since:g,exclude:v,relative:w,tags:b,singleBranch:k,headers:x,prune:E,pruneTags:A})}catch(S){throw S.caller="git.fetch",S}}async function qk({fs:t,dir:e,gitdir:r=D(e,".git"),oids:n,cache:i={}}){try{T("fs",t),T("gitdir",r),T("oids",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await Cv({fs:s,cache:i,gitdir:a,oids:n})}catch(s){throw s.caller="git.findMergeBase",s}}async function Wk({fs:t,filepath:e}){if(await t.exists(D(e,".git")))return e;{let r=Sa(e);if(r===e)throw new Be(`git root for ${e}`);return Wk({fs:t,filepath:r})}}async function zk({fs:t,filepath:e}){try{return T("fs",t),T("filepath",e),await Wk({fs:new Q(t),filepath:e})}catch(r){throw r.caller="git.findRoot",r}}async function Vk({fs:t,dir:e,gitdir:r=D(e,".git"),path:n}){try{T("fs",t),T("gitdir",r),T("path",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await cu({fs:i,gitdir:s,path:n})}catch(i){throw i.caller="git.getConfig",i}}async function m6({fs:t,gitdir:e,path:r}){return(await lt.get({fs:t,gitdir:e})).getall(r)}async function Yk({fs:t,dir:e,gitdir:r=D(e,".git"),path:n}){try{T("fs",t),T("gitdir",r),T("path",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await m6({fs:i,gitdir:s,path:n})}catch(i){throw i.caller="git.getConfigAll",i}}async function Xk({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:s,headers:a={},forPush:o=!1}){try{T("http",t),T("url",s);let c=await nl.getRemoteHelperFor({url:s}).discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:s,headers:a,protocolVersion:1}),u={capabilities:[...c.capabilities]};for(let[f,d]of c.refs){let h=f.split("/"),m=h.pop(),g=u;for(let v of h)g[v]=g[v]||{},g=g[v];g[m]=d}for(let[f,d]of c.symrefs){let h=f.split("/"),m=h.pop(),g=u;for(let v of h)g[v]=g[v]||{},g=g[v];g[m]=d}return u}catch(l){throw l.caller="git.getRemoteInfo",l}}function Zk(t,e,r,n){let i=[];for(let[s,a]of t.refs){if(e&&!s.startsWith(e))continue;if(s.endsWith("^{}")){if(n){let l=s.replace("^{}",""),c=i[i.length-1],u=c.ref===l?c:i.find(f=>f.ref===l);if(u===void 0)throw new Error("I did not expect this to happen");u.peeled=a}continue}let o={ref:s,oid:a};r&&t.symrefs.has(s)&&(o.target=t.symrefs.get(s)),i.push(o)}return i}async function Kk({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:s,headers:a={},forPush:o=!1,protocolVersion:l=2}){try{T("http",t),T("url",s);let u=await nl.getRemoteHelperFor({url:s}).discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:s,headers:a,protocolVersion:l});if(u.protocolVersion===2)return{protocolVersion:u.protocolVersion,capabilities:u.capabilities2};let f={};for(let d of u.capabilities){let[h,m]=d.split("=");m?f[h]=m:f[h]=!0}return{protocolVersion:1,capabilities:f,refs:Zk(u,void 0,!0,!0)}}catch(c){throw c.caller="git.getRemoteInfo2",c}}async function g6({type:t,object:e,format:r="content",oid:n=void 0}){return r!=="deflated"&&(r!=="wrapped"&&(e=$s.wrap({type:t,object:e})),n=await zi(e)),{oid:n,object:e}}async function Qk({object:t}){try{T("object",t),typeof t=="string"?t=Buffer.from(t,"utf8"):t instanceof Uint8Array||(t=new Uint8Array(t));let e="blob",{oid:r,object:n}=await g6({type:e,format:"content",object:t});return{oid:r,type:e,object:n,format:"wrapped"}}catch(e){throw e.caller="git.hashBlob",e}}async function v6({fs:t,cache:e,onProgress:r,dir:n,gitdir:i,filepath:s}){try{s=D(n,s);let a=await t.read(s),o=c=>Xe({fs:t,cache:e,gitdir:i,oid:c}),l=await Xc.fromPack({pack:a,getExternalRefDelta:o,onProgress:r});return await t.write(s.replace(/\.pack$/,".idx"),await l.toBuffer()),{oids:[...l.hashes]}}catch(a){throw a.caller="git.indexPack",a}}async function Jk({fs:t,onProgress:e,dir:r,gitdir:n=D(r,".git"),filepath:i,cache:s={}}){try{T("fs",t),T("dir",r),T("gitdir",r),T("filepath",i);let a=new Q(t),o=await J({fsp:a,dotgit:n});return await v6({fs:a,cache:s,onProgress:e,dir:r,gitdir:o,filepath:i})}catch(a){throw a.caller="git.indexPack",a}}async function eA({fs:t,bare:e=!1,dir:r,gitdir:n=e?r:D(r,".git"),defaultBranch:i="master"}){try{T("fs",t),T("gitdir",n),e||T("dir",r);let s=new Q(t),a=await J({fsp:s,dotgit:n});return await Rk({fs:s,bare:e,dir:r,gitdir:a,defaultBranch:i})}catch(s){throw s.caller="git.init",s}}async function tA({fs:t,cache:e,gitdir:r,oid:n,ancestor:i,depth:s}){let a=await ka.read({fs:t,gitdir:r});if(!n)throw new Sr("oid");if(!i)throw new Sr("ancestor");if(n===i)return!1;let o=[n],l=new Set,c=0;for(;o.length;){if(c++===s)throw new ru(s);let u=o.shift(),{type:f,object:d}=await Xe({fs:t,cache:e,gitdir:r,oid:u});if(f!=="commit")throw new fr(u,f,"commit");let h=kr.from(d).parse();for(let m of h.parent)if(m===i)return!0;if(!a.has(u))for(let m of h.parent)l.has(m)||(o.push(m),l.add(m))}return!1}async function rA({fs:t,dir:e,gitdir:r=D(e,".git"),oid:n,ancestor:i,depth:s=-1,cache:a={}}){try{T("fs",t),T("gitdir",r),T("oid",n),T("ancestor",i);let o=new Q(t),l=await J({fsp:o,dotgit:r});return await tA({fs:o,cache:a,gitdir:l,oid:n,ancestor:i,depth:s})}catch(o){throw o.caller="git.isDescendent",o}}async function nA({fs:t,dir:e,gitdir:r=D(e,".git"),filepath:n}){try{T("fs",t),T("dir",e),T("gitdir",r),T("filepath",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return Os.isIgnored({fs:i,dir:e,gitdir:s,filepath:n})}catch(i){throw i.caller="git.isIgnored",i}}async function iA({fs:t,dir:e,gitdir:r=D(e,".git"),remote:n}){try{T("fs",t),T("gitdir",r);let i=new Q(t),s=await J({fsp:i,dotgit:r});return z.listBranches({fs:i,gitdir:s,remote:n})}catch(i){throw i.caller="git.listBranches",i}}async function w6({fs:t,gitdir:e,ref:r,cache:n}){if(r){let i=await z.resolve({gitdir:e,fs:t,ref:r}),s=[];return await sA({fs:t,cache:n,gitdir:e,oid:i,filenames:s,prefix:""}),s}else return ht.acquire({fs:t,gitdir:e,cache:n},async function(i){return i.entries.map(s=>s.path)})}async function sA({fs:t,cache:e,gitdir:r,oid:n,filenames:i,prefix:s}){let{tree:a}=await al({fs:t,cache:e,gitdir:r,oid:n});for(let o of a)o.type==="tree"?await sA({fs:t,cache:e,gitdir:r,oid:o.oid,filenames:i,prefix:D(s,o.path)}):i.push(D(s,o.path))}async function aA({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n,cache:i={}}){try{T("fs",t),T("gitdir",r);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await w6({fs:s,cache:i,gitdir:a,ref:n})}catch(s){throw s.caller="git.listFiles",s}}async function y6({fs:t,cache:e,gitdir:r,ref:n}){let i;try{i=await z.resolve({gitdir:r,fs:t,ref:n})}catch(o){if(o instanceof Be)return[]}return(await al({fs:t,cache:e,gitdir:r,oid:i})).tree.map(o=>({target:o.path,note:o.oid}))}async function oA({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n="refs/notes/commits",cache:i={}}){try{T("fs",t),T("gitdir",r),T("ref",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await y6({fs:s,cache:i,gitdir:a,ref:n})}catch(s){throw s.caller="git.listNotes",s}}async function lA({fs:t,dir:e,gitdir:r=D(e,".git"),filepath:n}){try{T("fs",t),T("gitdir",r);let i=new Q(t),s=await J({fsp:i,dotgit:r});return z.listRefs({fs:i,gitdir:s,filepath:n})}catch(i){throw i.caller="git.listRefs",i}}async function b6({fs:t,gitdir:e}){let r=await lt.get({fs:t,gitdir:e}),n=await r.getSubsections("remote");return Promise.all(n.map(async s=>{let a=await r.get(`remote.${s}.url`);return{remote:s,url:a}}))}async function cA({fs:t,dir:e,gitdir:r=D(e,".git")}){try{T("fs",t),T("gitdir",r);let n=new Q(t),i=await J({fsp:n,dotgit:r});return await b6({fs:n,gitdir:i})}catch(n){throw n.caller="git.listRemotes",n}}async function _6(t){let e=st.streamReader(t),r=[],n;for(;n=await e(),n!==!0;){if(n===null)continue;n=n.toString("utf8").replace(/\n$/,"");let[i,s,...a]=n.split(" "),o={ref:s,oid:i};for(let l of a){let[c,u]=l.split(":");c==="symref-target"?o.target=u:c==="peeled"&&(o.peeled=u)}r.push(o)}return r}async function x6({prefix:t,symrefs:e,peelTags:r}){let n=[];return n.push(st.encode(`command=ls-refs +`)),n.push(st.encode(`agent=${Ud.agent} +`)),(r||e||t)&&n.push(st.delim()),r&&n.push(st.encode("peel")),e&&n.push(st.encode("symrefs")),t&&n.push(st.encode(`ref-prefix ${t}`)),n.push(st.flush()),n}async function uA({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,url:s,headers:a={},forPush:o=!1,protocolVersion:l=2,prefix:c,symrefs:u,peelTags:f}){try{T("http",t),T("url",s);let d=await rl.discover({http:t,onAuth:e,onAuthSuccess:r,onAuthFailure:n,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:s,headers:a,protocolVersion:l});if(d.protocolVersion===1)return Zk(d,c,u,f);let h=await x6({prefix:c,symrefs:u,peelTags:f}),m=await rl.connect({http:t,auth:d.auth,headers:a,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:s,body:h});return _6(m.body)}catch(d){throw d.caller="git.listServerRefs",d}}async function fA({fs:t,dir:e,gitdir:r=D(e,".git")}){try{T("fs",t),T("gitdir",r);let n=new Q(t),i=await J({fsp:n,dotgit:r});return z.listTags({fs:n,gitdir:i})}catch(n){throw n.caller="git.listTags",n}}function S6(t,e){return t.committer.timestamp-e.committer.timestamp}var E6="e69de29bb2d1d6434b8b29ae775ad8c2e48c5391";async function ek({fs:t,cache:e,gitdir:r,oid:n,fileId:i}){if(i===E6)return;let s=n,a,o=await Jo({fs:t,cache:e,gitdir:r,oid:n}),l=o.tree;return i===o.oid?a=o.path:(a=await dA({fs:t,cache:e,gitdir:r,tree:l,fileId:i,oid:s}),Array.isArray(a)&&(a.length===0?a=void 0:a.length===1&&(a=a[0]))),a}async function dA({fs:t,cache:e,gitdir:r,tree:n,fileId:i,oid:s,filepaths:a=[],parentPath:o=""}){let l=n.entries().map(function(c){let u;return c.oid===i?(u=D(o,c.path),a.push(u)):c.type==="tree"&&(u=Xe({fs:t,cache:e,gitdir:r,oid:c.oid}).then(function({object:f}){return dA({fs:t,cache:e,gitdir:r,tree:Er.from(f),fileId:i,oid:s,filepaths:a,parentPath:D(o,c.path)})})),u});return await Promise.all(l),a}async function k6({fs:t,cache:e,gitdir:r,filepath:n,ref:i,depth:s,since:a,force:o,follow:l}){let c=typeof a=="undefined"?void 0:Math.floor(a.valueOf()/1e3),u=[],f=await ka.read({fs:t,gitdir:r}),d=await z.resolve({fs:t,gitdir:r,ref:i}),h=[await tl({fs:t,cache:e,gitdir:r,oid:d})],m,g,v;function w(b){v&&n&&u.push(b)}for(;h.length>0;){let b=h.pop();if(c!==void 0&&b.commit.committer.timestamp<=c)break;if(n){let k;try{k=await fu({fs:t,cache:e,gitdir:r,oid:b.commit.tree,filepath:n}),g&&m!==k&&u.push(g),m=k,g=b,v=!0}catch(x){if(x instanceof Be){let E=l&&m;if(E&&(E=await ek({fs:t,cache:e,gitdir:r,oid:b.commit.tree,fileId:m}),E))if(Array.isArray(E)){if(g){let A=await ek({fs:t,cache:e,gitdir:r,oid:g.commit.tree,fileId:m});if(Array.isArray(A))if(E=E.filter(y=>A.indexOf(y)===-1),E.length===1)E=E[0],n=E,g&&u.push(g);else{E=!1,g&&u.push(g);break}}}else n=E,g&&u.push(g);if(!E){if(v&&m&&(u.push(g),!o))break;if(!o&&!l)throw x}g=b,v=!1}else throw x}}else u.push(b);if(s!==void 0&&u.length===s){w(b);break}if(!f.has(b.oid))for(let k of b.commit.parent){let x=await tl({fs:t,cache:e,gitdir:r,oid:k});h.map(E=>E.oid).includes(x.oid)||h.push(x)}h.length===0&&w(b),h.sort((k,x)=>S6(k.commit,x.commit))}return u}async function hA({fs:t,dir:e,gitdir:r=D(e,".git"),filepath:n,ref:i="HEAD",depth:s,since:a,force:o,follow:l,cache:c={}}){try{T("fs",t),T("gitdir",r),T("ref",i);let u=new Q(t),f=await J({fsp:u,dotgit:r});return await k6({fs:u,cache:c,gitdir:f,filepath:n,ref:i,depth:s,since:a,force:o,follow:l})}catch(u){throw u.caller="git.log",u}}async function pA({fs:t,onSign:e,dir:r,gitdir:n=D(r,".git"),ours:i,theirs:s,fastForward:a=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:m,cache:g={},mergeDriver:v,allowUnrelatedHistories:w=!1}){try{T("fs",t),m&&T("onSign",e);let b=new Q(t),k=await J({fsp:b,dotgit:n}),x=await Ms({fs:b,gitdir:k,author:d});if(!x&&(!o||!a))throw new Kt("author");let E=await el({fs:b,gitdir:k,author:x,committer:h});if(!E&&(!o||!a))throw new Kt("committer");return await Hk({fs:b,cache:g,dir:r,gitdir:k,ours:i,theirs:s,fastForward:a,fastForwardOnly:o,dryRun:l,noUpdateBranch:c,abortOnConflict:u,message:f,author:x,committer:E,signingKey:m,onSign:e,mergeDriver:v,allowUnrelatedHistories:w})}catch(b){throw b.caller="git.merge",b}}var A6={commit:16,tree:32,blob:48,tag:64,ofs_delta:96,ref_delta:112};async function mA({fs:t,cache:e,dir:r,gitdir:n=D(r,".git"),oids:i}){let s=new rk,a=[];function o(u,f){let d=Buffer.from(u,f);a.push(d),s.update(d)}async function l({stype:u,object:f}){let d=A6[u],h=f.length,m=h>15?128:0,g=h&15;h=h>>>4;let v=(m|d|g).toString(16);for(o(v,"hex");m;)m=h>127?128:0,v=m|h&127,o(_v(2,v),"hex"),h=h>>>7;o(Buffer.from(await pk(f)))}o("PACK"),o("00000002","hex"),o(_v(8,i.length),"hex");for(let u of i){let{type:f,object:d}=await Xe({fs:t,cache:e,gitdir:n,oid:u});await l({write:o,object:d,stype:f})}let c=s.digest();return a.push(c),a}async function C6({fs:t,cache:e,gitdir:r,oids:n,write:i}){let s=await mA({fs:t,cache:e,gitdir:r,oids:n}),a=Buffer.from(await Md(s)),l=`pack-${a.slice(-20).toString("hex")}.pack`;return i?(await t.write(D(r,`objects/pack/${l}`),a),{filename:l}):{filename:l,packfile:new Uint8Array(a)}}async function gA({fs:t,dir:e,gitdir:r=D(e,".git"),oids:n,write:i=!1,cache:s={}}){try{T("fs",t),T("gitdir",r),T("oids",n);let a=new Q(t),o=await J({fsp:a,dotgit:r});return await C6({fs:a,cache:s,gitdir:o,oids:n,write:i})}catch(a){throw a.caller="git.packObjects",a}}async function vA({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:l=D(o,".git"),ref:c,url:u,remote:f,remoteRef:d,prune:h=!1,pruneTags:m=!1,fastForward:g=!0,fastForwardOnly:v=!1,corsProxy:w,singleBranch:b,headers:k={},author:x,committer:E,signingKey:A,cache:y={}}){try{T("fs",t),T("gitdir",l);let S=new Q(t),_=await J({fsp:S,dotgit:l}),C=await Ms({fs:S,gitdir:_,author:x});if(!C)throw new Kt("author");let P=await el({fs:S,gitdir:_,author:C,committer:E});if(!P)throw new Kt("committer");return await Uk({fs:S,cache:y,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,dir:o,gitdir:_,ref:c,url:u,remote:f,remoteRef:d,fastForward:g,fastForwardOnly:v,corsProxy:w,singleBranch:b,headers:k,author:C,committer:P,signingKey:A,prune:h,pruneTags:m})}catch(S){throw S.caller="git.pull",S}}async function T6({fs:t,cache:e,dir:r,gitdir:n=D(r,".git"),start:i,finish:s}){let a=await ka.read({fs:t,gitdir:n}),o=new Set,l=new Set;for(let f of i)o.add(await z.resolve({fs:t,gitdir:n,ref:f}));for(let f of s)try{let d=await z.resolve({fs:t,gitdir:n,ref:f});l.add(d)}catch(d){}let c=new Set;async function u(f){c.add(f);let{type:d,object:h}=await Xe({fs:t,cache:e,gitdir:n,oid:f});if(d==="tag"){let g=Zr.from(h).headers().object;return u(g)}if(d!=="commit")throw new fr(f,d,"commit");if(!a.has(f)){let g=kr.from(h).headers().parent;for(f of g)!l.has(f)&&!c.has(f)&&await u(f)}}for(let f of o)await u(f);return c}async function lv({fs:t,cache:e,dir:r,gitdir:n=D(r,".git"),oids:i}){let s=new Set;async function a(o){if(s.has(o))return;s.add(o);let{type:l,object:c}=await Xe({fs:t,cache:e,gitdir:n,oid:o});if(l==="tag"){let f=Zr.from(c).headers().object;await a(f)}else if(l==="commit"){let f=kr.from(c).headers().tree;await a(f)}else if(l==="tree"){let u=Er.from(c);for(let f of u)f.type==="blob"&&s.add(f.oid),f.type==="tree"&&await a(f.oid)}}for(let o of i)await a(o);return s}async function P6(t){let e={},r="",n=st.streamReader(t),i=await n();for(;i!==!0;)i!==null&&(r+=i.toString("utf8")+` +`),i=await n();let s=r.toString("utf8").split(` +`);if(i=s.shift(),!i.startsWith("unpack "))throw new Ea('unpack ok" or "unpack [error message]',i);e.ok=i==="unpack ok",e.ok||(e.error=i.slice(7)),e.refs={};for(let a of s){if(a.trim()==="")continue;let o=a.slice(0,2),l=a.slice(3),c=l.indexOf(" ");c===-1&&(c=l.length);let u=l.slice(0,c),f=l.slice(c+1);e.refs[u]={ok:o==="ok",error:f}}return e}async function R6({capabilities:t=[],triplets:e=[]}){let r=[],n=`\0 ${t.join(" ")}`;for(let i of e)r.push(st.encode(`${i.oldoid} ${i.oid} ${i.fullRef}${n} +`)),n="";return r.push(st.flush()),r}async function $6({fs:t,cache:e,http:r,onProgress:n,onMessage:i,onAuth:s,onAuthSuccess:a,onAuthFailure:o,onPrePush:l,gitdir:c,ref:u,remoteRef:f,remote:d,url:h,force:m=!1,delete:g=!1,corsProxy:v,headers:w={}}){let b=u||await Ls({fs:t,gitdir:c});if(typeof b=="undefined")throw new Sr("ref");let k=await lt.get({fs:t,gitdir:c});d=d||await k.get(`branch.${b}.pushRemote`)||await k.get("remote.pushDefault")||await k.get(`branch.${b}.remote`)||"origin";let x=h||await k.get(`remote.${d}.pushurl`)||await k.get(`remote.${d}.url`);if(typeof x=="undefined")throw new Sr("remote OR url");let E=f||await k.get(`branch.${b}.merge`);if(typeof x=="undefined")throw new Sr("remoteRef");v===void 0&&(v=await k.get("http.corsProxy"));let A=await z.expand({fs:t,gitdir:c,ref:b}),y=g?"0000000000000000000000000000000000000000":await z.resolve({fs:t,gitdir:c,ref:A}),S=nl.getRemoteHelperFor({url:x}),_=await S.discover({http:r,onAuth:s,onAuthSuccess:a,onAuthFailure:o,corsProxy:v,service:"git-receive-pack",url:x,headers:w,protocolVersion:1}),C=_.auth,P;if(!E)P=A;else try{P=await z.expandAgainstMap({ref:E,map:_.refs})}catch(X){if(X instanceof Be)P=E.startsWith("refs/")?E:`refs/heads/${E}`;else throw X}let N=_.refs.get(P)||"0000000000000000000000000000000000000000";if(l&&!await l({remote:d,url:x,localRef:{ref:g?"(delete)":A,oid:y},remoteRef:{ref:P,oid:N}}))throw new Qo;let B=!_.capabilities.has("no-thin"),H=new Set;if(!g){let X=[..._.refs.values()],q=new Set;if(N!=="0000000000000000000000000000000000000000"){let De=await Cv({fs:t,cache:e,gitdir:c,oids:[y,N]});for(let ar of De)X.push(ar);B&&(q=await lv({fs:t,cache:e,gitdir:c,oids:De}))}if(!X.includes(y)){let De=await T6({fs:t,cache:e,gitdir:c,start:[y],finish:X});H=await lv({fs:t,cache:e,gitdir:c,oids:De})}if(B){try{let De=await z.resolve({fs:t,gitdir:c,ref:`refs/remotes/${d}/HEAD`,depth:2}),{oid:ar}=await z.resolveAgainstMap({ref:De.replace(`refs/remotes/${d}/`,""),fullref:De,map:_.refs}),Ft=[ar];for(let Ie of await lv({fs:t,cache:e,gitdir:c,oids:Ft}))q.add(Ie)}catch(De){}for(let De of q)H.delete(De)}if(y===N&&(m=!0),!m){if(A.startsWith("refs/tags")&&N!=="0000000000000000000000000000000000000000")throw new Ko("tag-exists");if(y!=="0000000000000000000000000000000000000000"&&N!=="0000000000000000000000000000000000000000"&&!await tA({fs:t,cache:e,gitdir:c,oid:y,ancestor:N,depth:-1}))throw new Ko("not-fast-forward")}}let ce=Tk([..._.capabilities],["report-status","side-band-64k",`agent=${Ud.agent}`]),Pe=await R6({capabilities:ce,triplets:[{oldoid:N,oid:y,fullRef:P}]}),ve=g?[]:await mA({fs:t,cache:e,gitdir:c,oids:[...H]}),ie=await S.connect({http:r,onProgress:n,corsProxy:v,service:"git-receive-pack",url:x,auth:C,headers:w,body:[...Pe,...ve]}),{packfile:xe,progress:we}=await Dd.demux(ie.body);if(i){let X=Pk(we);hu(X,async q=>{await i(q)})}let W=await P6(xe);if(ie.headers&&(W.headers=ie.headers),d&&W.ok&&W.refs[P].ok&&!A.startsWith("refs/tags")){let X=`refs/remotes/${d}/${P.replace("refs/heads","")}`;g?await z.deleteRef({fs:t,gitdir:c,ref:X}):await z.writeRef({fs:t,gitdir:c,ref:X,value:y})}if(W.ok&&Object.values(W.refs).every(X=>X.ok))return W;{let X=Object.entries(W.refs).filter(([q,De])=>!De.ok).map(([q,De])=>` + - ${q}: ${De.error}`).join("");throw new tu(X,W)}}async function wA({fs:t,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,onPrePush:o,dir:l,gitdir:c=D(l,".git"),ref:u,remoteRef:f,remote:d="origin",url:h,force:m=!1,delete:g=!1,corsProxy:v,headers:w={},cache:b={}}){try{T("fs",t),T("http",e),T("gitdir",c);let k=new Q(t),x=await J({fsp:k,dotgit:c});return await $6({fs:k,cache:b,http:e,onProgress:r,onMessage:n,onAuth:i,onAuthSuccess:s,onAuthFailure:a,onPrePush:o,gitdir:x,ref:u,remoteRef:f,remote:d,url:h,force:m,delete:g,corsProxy:v,headers:w})}catch(k){throw k.caller="git.push",k}}async function yA({fs:t,cache:e,gitdir:r,oid:n}){let{type:i,object:s}=await Xe({fs:t,cache:e,gitdir:r,oid:n});if(i==="tag")return n=Zr.from(s).parse().object,yA({fs:t,cache:e,gitdir:r,oid:n});if(i!=="blob")throw new fr(n,i,"blob");return{oid:n,blob:new Uint8Array(s)}}async function bA({fs:t,cache:e,gitdir:r,oid:n,filepath:i=void 0}){return i!==void 0&&(n=await fu({fs:t,cache:e,gitdir:r,oid:n,filepath:i})),await yA({fs:t,cache:e,gitdir:r,oid:n})}async function _A({fs:t,dir:e,gitdir:r=D(e,".git"),oid:n,filepath:i,cache:s={}}){try{T("fs",t),T("gitdir",r),T("oid",n);let a=new Q(t),o=await J({fsp:a,dotgit:r});return await bA({fs:a,cache:s,gitdir:o,oid:n,filepath:i})}catch(a){throw a.caller="git.readBlob",a}}async function Tv({fs:t,dir:e,gitdir:r=D(e,".git"),oid:n,cache:i={}}){try{T("fs",t),T("gitdir",r),T("oid",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await tl({fs:s,cache:i,gitdir:a,oid:n})}catch(s){throw s.caller="git.readCommit",s}}async function I6({fs:t,cache:e,gitdir:r,ref:n="refs/notes/commits",oid:i}){let s=await z.resolve({gitdir:r,fs:t,ref:n}),{blob:a}=await bA({fs:t,cache:e,gitdir:r,oid:s,filepath:i});return a}async function xA({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n="refs/notes/commits",oid:i,cache:s={}}){try{T("fs",t),T("gitdir",r),T("ref",n),T("oid",i);let a=new Q(t),o=await J({fsp:a,dotgit:r});return await I6({fs:a,cache:s,gitdir:o,ref:n,oid:i})}catch(a){throw a.caller="git.readNote",a}}async function SA({fs:t,dir:e,gitdir:r=D(e,".git"),oid:n,format:i="parsed",filepath:s=void 0,encoding:a=void 0,cache:o={}}){try{T("fs",t),T("gitdir",r),T("oid",n);let l=new Q(t),c=await J({fsp:l,dotgit:r});s!==void 0&&(n=await fu({fs:l,cache:o,gitdir:c,oid:n,filepath:s}));let f=await Xe({fs:l,cache:o,gitdir:c,oid:n,format:i==="parsed"?"content":i});if(f.oid=n,i==="parsed")switch(f.format="parsed",f.type){case"commit":f.object=kr.from(f.object).parse();break;case"tree":f.object=Er.from(f.object).entries();break;case"blob":a?f.object=f.object.toString(a):(f.object=new Uint8Array(f.object),f.format="content");break;case"tag":f.object=Zr.from(f.object).parse();break;default:throw new fr(f.oid,f.type,"blob|commit|tag|tree")}else(f.format==="deflated"||f.format==="wrapped")&&(f.type=f.format);return f}catch(l){throw l.caller="git.readObject",l}}async function F6({fs:t,cache:e,gitdir:r,oid:n}){let{type:i,object:s}=await Xe({fs:t,cache:e,gitdir:r,oid:n,format:"content"});if(i!=="tag")throw new fr(n,i,"tag");let a=Zr.from(s);return{oid:n,tag:a.parse(),payload:a.payload()}}async function EA({fs:t,dir:e,gitdir:r=D(e,".git"),oid:n,cache:i={}}){try{T("fs",t),T("gitdir",r),T("oid",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await F6({fs:s,cache:i,gitdir:a,oid:n})}catch(s){throw s.caller="git.readTag",s}}async function kA({fs:t,dir:e,gitdir:r=D(e,".git"),oid:n,filepath:i=void 0,cache:s={}}){try{T("fs",t),T("gitdir",r),T("oid",n);let a=new Q(t),o=await J({fsp:a,dotgit:r});return await al({fs:a,cache:s,gitdir:o,oid:n,filepath:i})}catch(a){throw a.caller="git.readTree",a}}async function AA({fs:t,dir:e,gitdir:r=D(e,".git"),filepath:n,cache:i={}}){try{T("fs",t),T("gitdir",r),T("filepath",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});await ht.acquire({fs:s,gitdir:a,cache:i},async function(o){o.delete({filepath:n})})}catch(s){throw s.caller="git.remove",s}}async function O6({fs:t,cache:e,onSign:r,gitdir:n,ref:i="refs/notes/commits",oid:s,author:a,committer:o,signingKey:l}){let c;try{c=await z.resolve({gitdir:n,fs:t,ref:i})}catch(m){if(!(m instanceof Be))throw m}let f=(await al({fs:t,cache:e,gitdir:n,oid:c||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;f=f.filter(m=>m.path!==s);let d=await du({fs:t,gitdir:n,tree:f});return await Hd({fs:t,cache:e,onSign:r,gitdir:n,ref:i,tree:d,parent:c&&[c],message:`Note removed by 'isomorphic-git removeNote' +`,author:a,committer:o,signingKey:l})}async function CA({fs:t,onSign:e,dir:r,gitdir:n=D(r,".git"),ref:i="refs/notes/commits",oid:s,author:a,committer:o,signingKey:l,cache:c={}}){try{T("fs",t),T("gitdir",n),T("oid",s);let u=new Q(t),f=await J({fsp:u,dotgit:n}),d=await Ms({fs:u,gitdir:f,author:a});if(!d)throw new Kt("author");let h=await el({fs:u,gitdir:f,author:d,committer:o});if(!h)throw new Kt("committer");return await O6({fs:u,cache:c,onSign:e,gitdir:f,ref:i,oid:s,author:d,committer:h,signingKey:l})}catch(u){throw u.caller="git.removeNote",u}}async function M6({fs:t,gitdir:e,oldref:r,ref:n,checkout:i=!1}){if(!uu(n,!0))throw new Dn(n,zc.clean(n));if(!uu(r,!0))throw new Dn(r,zc.clean(r));let s=`refs/heads/${r}`,a=`refs/heads/${n}`;if(await z.exists({fs:t,gitdir:e,ref:a}))throw new Mn("branch",n,!1);let l=await z.resolve({fs:t,gitdir:e,ref:s,depth:1});await z.writeRef({fs:t,gitdir:e,ref:a,value:l}),await z.deleteRef({fs:t,gitdir:e,ref:s});let u=await Ls({fs:t,gitdir:e,fullname:!0})===s;(i||u)&&await z.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:a})}async function TA({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n,oldref:i,checkout:s=!1}){try{T("fs",t),T("gitdir",r),T("ref",n),T("oldref",i);let a=new Q(t),o=await J({fsp:a,dotgit:r});return await M6({fs:a,gitdir:o,ref:n,oldref:i,checkout:s})}catch(a){throw a.caller="git.renameBranch",a}}async function PA({gitdir:t,type:e,object:r}){return zi($s.wrap({type:e,object:r}))}async function RA({fs:t,dir:e,gitdir:r=D(e,".git"),filepath:n,ref:i,cache:s={}}){try{T("fs",t),T("gitdir",r),T("filepath",n);let a=new Q(t),o=await J({fsp:a,dotgit:r}),l,c;try{l=await z.resolve({fs:a,gitdir:o,ref:i||"HEAD"})}catch(d){if(i)throw d}if(l)try{l=await fu({fs:a,cache:s,gitdir:o,oid:l,filepath:n})}catch(d){l=null}let u={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:0,uid:0,gid:0,size:0},f=e&&await a.read(D(e,n));f&&(c=await PA({gitdir:o,type:"blob",object:f}),l===c&&(u=await a.lstat(D(e,n)))),await ht.acquire({fs:a,gitdir:o,cache:s},async function(d){d.delete({filepath:n}),l&&d.insert({filepath:n,stats:u,oid:l})})}catch(a){throw a.caller="git.reset",a}}async function $A({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n,depth:i}){try{T("fs",t),T("gitdir",r),T("ref",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});return await z.resolve({fs:s,gitdir:a,ref:n,depth:i})}catch(s){throw s.caller="git.resolveRef",s}}async function IA({fs:t,dir:e,gitdir:r=D(e,".git"),path:n,value:i,append:s=!1}){try{T("fs",t),T("gitdir",r),T("path",n);let a=new Q(t),o=await J({fsp:a,dotgit:r}),l=await lt.get({fs:a,gitdir:o});s?await l.append(n,i):await l.set(n,i),await lt.save({fs:a,gitdir:o,config:l})}catch(a){throw a.caller="git.setConfig",a}}async function FA({fs:t,gitdir:e,commit:r}){let n=kr.from(r).toObject();return await Ar({fs:t,gitdir:e,type:"commit",object:n,format:"content"})}var Ld=class t{static get timezoneOffsetForRefLogEntry(){let e=new Date().getTimezoneOffset(),r=Math.abs(Math.floor(e/60)),n=Math.abs(e%60).toString().padStart(2,"0");return`${e>0?"-":"+"}${r.toString().padStart(2,"0")}${n}`}static createStashReflogEntry(e,r,n){let i=e.name.replace(/\s/g,""),s="0000000000000000000000000000000000000000",a=Math.floor(Date.now()/1e3),o=t.timezoneOffsetForRefLogEntry;return`${s} ${r} ${i} ${e.email} ${a} ${o} ${n} `}static getStashReflogEntry(e,r=!1){return e.split(` -`).filter(s=>s).reverse().map((s,a)=>r?`stash@{${a}}: ${s.split(" ")[1]}`:s)}},_6={stage:Aa,workdir:nl},iv;async function il(t,e){return iv===void 0&&(iv=new Nc),iv.acquire(t,e)}async function x6(t,e,r,i,n=null){let s=O(r,i),a=await t.lstat(s);if(!a)throw new He(s);if(a.isDirectory())throw new he(`${s}: file expected, but found directory`);let o=n?await JE({fs:t,gitdir:e,oid:n}):void 0,l=o?n:void 0;return o||await il({fs:t,gitdir:e,currentFilepath:s},async()=>{let c=a.isSymbolicLink()?await t.readlink(s).then(ak):await t.read(s);if(c===null)throw new He(s);l=await Ar({fs:t,gitdir:e,type:"blob",object:c})}),l}async function S6({fs:t,dir:e,gitdir:r,entries:i}){async function n(s){if(s.type==="tree"){if(!s.oid){let a=await Promise.all(s.children.map(n));s.oid=await au({fs:t,gitdir:r,tree:a}),s.mode=16384}}else s.type==="blob"&&(s.oid=await x6(t,r,e,s.path,s.oid),s.mode=33188);return s.path=s.path.split("/").pop(),s}return Promise.all(i.map(n))}async function VE({fs:t,dir:e,gitdir:r,treePair:i}){let n=i[1]==="stage",s=i.map(h=>typeof h=="string"?_6[h]():h),a=[],u=await Fs({fs:t,cache:{},dir:e,gitdir:r,trees:s,map:async(h,[m,g])=>{if(!(h==="."||await Is.isIgnored({fs:t,dir:e,gitdir:r,filepath:h}))&&g)return(!m||await m.oid()!==await g.oid()&&await g.oid()!==void 0)&&a.push([m,g]),{mode:await g.mode(),path:h,oid:await g.oid(),type:await g.type()}},reduce:async(h,m)=>(m=m.filter(Boolean),h?(h.children=m,h):m.length>0?m:void 0),iterate:async(h,m)=>{let g=[];for(let v of m){let[w,b]=v;n?b&&(await t.exists(`${e}/${b.toString()}`)?g.push(v):a.push([null,b])):w&&(b?g.push(v):a.push([w,null]))}return g.length?Promise.all(g.map(h)):[]}});if(a.length===0||u.length===0)return null;let d=(await S6({fs:t,dir:e,gitdir:r,entries:u})).filter(Boolean).map(h=>({mode:h.mode,path:h.path,oid:h.oid,type:h.type}));return au({fs:t,gitdir:r,tree:d})}async function E6({fs:t,dir:e,gitdir:r,stashCommit:i,parentCommit:n,wasStaged:s}){let a=[],o=[],l=await Fs({fs:t,cache:{},dir:e,gitdir:r,trees:[Zr({ref:n}),Zr({ref:i})],map:async(c,[u,f])=>{if(c==="."||await Is.isIgnored({fs:t,dir:e,gitdir:r,filepath:c}))return;let d=f?await f.type():await u.type();if(d!=="tree"&&d!=="blob")return;if(!f&&u){let m=d==="tree"?"rmdir":"rm";return d==="tree"&&a.push(c),d==="blob"&&s&&o.push({filepath:c,oid:await u.oid()}),{method:m,filepath:c}}let h=await f.oid();if(!u||await u.oid()!==h)return d==="tree"?{method:"mkdir",filepath:c}:(s&&o.push({filepath:c,oid:h,stats:await t.lstat(O(e,c))}),{method:"write",filepath:c,oid:h})}});await il({fs:t,gitdir:r,dirRemoved:a,ops:l},async()=>{for(let c of l){let u=O(e,c.filepath);switch(c.method){case"rmdir":await t.rmdir(u);break;case"mkdir":await t.mkdir(u);break;case"rm":await t.rm(u);break;case"write":if(!a.some(f=>u.startsWith(f))){let{object:f}=await Ke({fs:t,cache:{},gitdir:r,oid:c.oid});await t.exists(u)&&await t.rm(u),await t.write(u,f)}break}}}),await mt.acquire({fs:t,gitdir:r,cache:{}},async c=>{o.forEach(({filepath:u,stats:f,oid:d})=>{c.insert({filepath:u,stats:f,oid:d})})})}var ka=class t{constructor({fs:e,dir:r,gitdir:i=O(r,".git")}){Object.assign(this,{fs:e,dir:r,gitdir:i,_author:null})}static get refStash(){return"refs/stash"}static get refLogsStash(){return"logs/refs/stash"}get refStashPath(){return O(this.gitdir,t.refStash)}get refLogsStashPath(){return O(this.gitdir,t.refLogsStash)}async getAuthor(){if(!this._author&&(this._author=await Os({fs:this.fs,gitdir:this.gitdir,author:{}}),!this._author))throw new Jt("author");return this._author}async getStashSHA(e,r){return await this.fs.exists(this.refStashPath)?(r||await this.readStashReflogs({parsed:!1}))[e].split(" ")[1]:null}async writeStashCommit({message:e,tree:r,parent:i}){return EA({fs:this.fs,gitdir:this.gitdir,commit:{message:e,tree:r,parent:i,author:await this.getAuthor(),committer:await this.getAuthor()}})}async readStashCommit(e){let r=await this.readStashReflogs({parsed:!1});if(e!==0&&(e<0||e>r.length-1))throw new Fi(`stash@${e}`,"number that is in range of [0, num of stash pushed]");let i=await this.getStashSHA(e,r);return i?el({fs:this.fs,cache:{},gitdir:this.gitdir,oid:i}):{}}async writeStashRef(e){return W.writeRef({fs:this.fs,gitdir:this.gitdir,ref:t.refStash,value:e})}async writeStashReflogEntry({stashCommit:e,message:r}){let i=await this.getAuthor(),n=$d.createStashReflogEntry(i,e,r),s=this.refLogsStashPath;await il({filepath:s,entry:n},async()=>{let a=await this.fs.exists(s)?await this.fs.read(s,"utf8"):"";await this.fs.write(s,a+n,"utf8")})}async readStashReflogs({parsed:e=!1}){if(!await this.fs.exists(this.refLogsStashPath))return[];let r=await this.fs.read(this.refLogsStashPath,"utf8");return $d.getStashReflogEntry(r,e)}};async function kA({fs:t,dir:e,gitdir:r,message:i=""}){let n=new ka({fs:t,dir:e,gitdir:r});await n.getAuthor();let s=await Ds({fs:t,gitdir:r,fullname:!1}),a=await W.resolve({fs:t,gitdir:r,ref:"HEAD"}),l=(await xv({fs:t,dir:e,gitdir:r,oid:a})).commit.message,c=[a],u=null,f=Zr({ref:"HEAD"}),d=await VE({fs:t,dir:e,gitdir:r,treePair:[Zr({ref:"HEAD"}),"stage"]});if(d){let v=await n.writeStashCommit({message:`stash-Index: WIP on ${s} - ${new Date().toISOString()}`,tree:d,parent:c});c.push(v),u=d,f=Aa()}let h=await VE({fs:t,dir:e,gitdir:r,treePair:[f,"workdir"]});if(h){let v=await n.writeStashCommit({message:`stash-WorkDir: WIP on ${s} - ${new Date().toISOString()}`,tree:h,parent:[c[c.length-1]]});c.push(v),u=h}if(!u||!d&&!h)throw new He("changes, nothing to stash");let m=(i.trim()||`WIP on ${s}`)+`: ${a.substring(0,7)} ${l}`;return{stashCommit:await n.writeStashCommit({message:m,tree:u,parent:c}),stashMsg:m,branch:s,stashMgr:n}}async function k6({fs:t,dir:e,gitdir:r,message:i=""}){let{stashCommit:n,stashMsg:s,branch:a,stashMgr:o}=await kA({fs:t,dir:e,gitdir:r,message:i});return await o.writeStashRef(n),await o.writeStashReflogEntry({stashCommit:n,message:s}),await yv({fs:t,dir:e,gitdir:r,ref:a,track:!1,force:!0}),n}async function A6({fs:t,dir:e,gitdir:r,message:i=""}){let{stashCommit:n}=await kA({fs:t,dir:e,gitdir:r,message:i});return n}async function AA({fs:t,dir:e,gitdir:r,refIdx:i=0}){let s=await new ka({fs:t,dir:e,gitdir:r}).readStashCommit(i),{parent:a=null}=s.commit?s.commit:{};if(!(!a||!Array.isArray(a)))for(let o=0;o{await t.exists(a)&&await t.rm(a)});let o=await n.readStashReflogs({parsed:!1});if(!o.length)return;o.splice(i,1);let l=n.refLogsStashPath;await il({reflogEntries:o,stashReflogPath:l,stashMgr:n},async()=>{if(o.length){await t.write(l,o.reverse().join(` +`).filter(s=>s).reverse().map((s,a)=>r?`stash@{${a}}: ${s.split(" ")[1]}`:s)}},D6={stage:Ca,workdir:sl},cv;async function il(t,e){return cv===void 0&&(cv=new Wc),cv.acquire(t,e)}async function L6(t,e,r,n,i=null){let s=D(r,n),a=await t.lstat(s);if(!a)throw new Be(s);if(a.isDirectory())throw new he(`${s}: file expected, but found directory`);let o=i?await lk({fs:t,gitdir:e,oid:i}):void 0,l=o?i:void 0;return o||await il({fs:t,gitdir:e,currentFilepath:s},async()=>{let c=a.isSymbolicLink()?await t.readlink(s).then(mk):await t.read(s);if(c===null)throw new Be(s);l=await Ar({fs:t,gitdir:e,type:"blob",object:c})}),l}async function N6({fs:t,dir:e,gitdir:r,entries:n}){async function i(s){if(s.type==="tree"){if(!s.oid){let a=await Promise.all(s.children.map(i));s.oid=await du({fs:t,gitdir:r,tree:a}),s.mode=16384}}else s.type==="blob"&&(s.oid=await L6(t,r,e,s.path,s.oid),s.mode=33188);return s.path=s.path.split("/").pop(),s}return Promise.all(n.map(i))}async function tk({fs:t,dir:e,gitdir:r,treePair:n}){let i=n[1]==="stage",s=n.map(h=>typeof h=="string"?D6[h]():h),a=[],u=await Fs({fs:t,cache:{},dir:e,gitdir:r,trees:s,map:async(h,[m,g])=>{if(!(h==="."||await Os.isIgnored({fs:t,dir:e,gitdir:r,filepath:h}))&&g)return(!m||await m.oid()!==await g.oid()&&await g.oid()!==void 0)&&a.push([m,g]),{mode:await g.mode(),path:h,oid:await g.oid(),type:await g.type()}},reduce:async(h,m)=>(m=m.filter(Boolean),h?(h.children=m,h):m.length>0?m:void 0),iterate:async(h,m)=>{let g=[];for(let v of m){let[w,b]=v;i?b&&(await t.exists(`${e}/${b.toString()}`)?g.push(v):a.push([null,b])):w&&(b?g.push(v):a.push([w,null]))}return g.length?Promise.all(g.map(h)):[]}});if(a.length===0||u.length===0)return null;let d=(await N6({fs:t,dir:e,gitdir:r,entries:u})).filter(Boolean).map(h=>({mode:h.mode,path:h.path,oid:h.oid,type:h.type}));return du({fs:t,gitdir:r,tree:d})}async function B6({fs:t,dir:e,gitdir:r,stashCommit:n,parentCommit:i,wasStaged:s}){let a=[],o=[],l=await Fs({fs:t,cache:{},dir:e,gitdir:r,trees:[Xr({ref:i}),Xr({ref:n})],map:async(c,[u,f])=>{if(c==="."||await Os.isIgnored({fs:t,dir:e,gitdir:r,filepath:c}))return;let d=f?await f.type():await u.type();if(d!=="tree"&&d!=="blob")return;if(!f&&u){let m=d==="tree"?"rmdir":"rm";return d==="tree"&&a.push(c),d==="blob"&&s&&o.push({filepath:c,oid:await u.oid()}),{method:m,filepath:c}}let h=await f.oid();if(!u||await u.oid()!==h)return d==="tree"?{method:"mkdir",filepath:c}:(s&&o.push({filepath:c,oid:h,stats:await t.lstat(D(e,c))}),{method:"write",filepath:c,oid:h})}});await il({fs:t,gitdir:r,dirRemoved:a,ops:l},async()=>{for(let c of l){let u=D(e,c.filepath);switch(c.method){case"rmdir":await t.rmdir(u);break;case"mkdir":await t.mkdir(u);break;case"rm":await t.rm(u);break;case"write":if(!a.some(f=>u.startsWith(f))){let{object:f}=await Xe({fs:t,cache:{},gitdir:r,oid:c.oid});await t.exists(u)&&await t.rm(u),await t.write(u,f)}break}}}),await ht.acquire({fs:t,gitdir:r,cache:{}},async c=>{o.forEach(({filepath:u,stats:f,oid:d})=>{c.insert({filepath:u,stats:f,oid:d})})})}var Aa=class t{constructor({fs:e,dir:r,gitdir:n=D(r,".git")}){Object.assign(this,{fs:e,dir:r,gitdir:n,_author:null})}static get refStash(){return"refs/stash"}static get refLogsStash(){return"logs/refs/stash"}get refStashPath(){return D(this.gitdir,t.refStash)}get refLogsStashPath(){return D(this.gitdir,t.refLogsStash)}async getAuthor(){if(!this._author&&(this._author=await Ms({fs:this.fs,gitdir:this.gitdir,author:{}}),!this._author))throw new Kt("author");return this._author}async getStashSHA(e,r){return await this.fs.exists(this.refStashPath)?(r||await this.readStashReflogs({parsed:!1}))[e].split(" ")[1]:null}async writeStashCommit({message:e,tree:r,parent:n}){return FA({fs:this.fs,gitdir:this.gitdir,commit:{message:e,tree:r,parent:n,author:await this.getAuthor(),committer:await this.getAuthor()}})}async readStashCommit(e){let r=await this.readStashReflogs({parsed:!1});if(e!==0&&(e<0||e>r.length-1))throw new Dn(`stash@${e}`,"number that is in range of [0, num of stash pushed]");let n=await this.getStashSHA(e,r);return n?tl({fs:this.fs,cache:{},gitdir:this.gitdir,oid:n}):{}}async writeStashRef(e){return z.writeRef({fs:this.fs,gitdir:this.gitdir,ref:t.refStash,value:e})}async writeStashReflogEntry({stashCommit:e,message:r}){let n=await this.getAuthor(),i=Ld.createStashReflogEntry(n,e,r),s=this.refLogsStashPath;await il({filepath:s,entry:i},async()=>{let a=await this.fs.exists(s)?await this.fs.read(s,"utf8"):"";await this.fs.write(s,a+i,"utf8")})}async readStashReflogs({parsed:e=!1}){if(!await this.fs.exists(this.refLogsStashPath))return[];let r=await this.fs.read(this.refLogsStashPath,"utf8");return Ld.getStashReflogEntry(r,e)}};async function OA({fs:t,dir:e,gitdir:r,message:n=""}){let i=new Aa({fs:t,dir:e,gitdir:r});await i.getAuthor();let s=await Ls({fs:t,gitdir:r,fullname:!1}),a=await z.resolve({fs:t,gitdir:r,ref:"HEAD"}),l=(await Tv({fs:t,dir:e,gitdir:r,oid:a})).commit.message,c=[a],u=null,f=Xr({ref:"HEAD"}),d=await tk({fs:t,dir:e,gitdir:r,treePair:[Xr({ref:"HEAD"}),"stage"]});if(d){let v=await i.writeStashCommit({message:`stash-Index: WIP on ${s} - ${new Date().toISOString()}`,tree:d,parent:c});c.push(v),u=d,f=Ca()}let h=await tk({fs:t,dir:e,gitdir:r,treePair:[f,"workdir"]});if(h){let v=await i.writeStashCommit({message:`stash-WorkDir: WIP on ${s} - ${new Date().toISOString()}`,tree:h,parent:[c[c.length-1]]});c.push(v),u=h}if(!u||!d&&!h)throw new Be("changes, nothing to stash");let m=(n.trim()||`WIP on ${s}`)+`: ${a.substring(0,7)} ${l}`;return{stashCommit:await i.writeStashCommit({message:m,tree:u,parent:c}),stashMsg:m,branch:s,stashMgr:i}}async function H6({fs:t,dir:e,gitdir:r,message:n=""}){let{stashCommit:i,stashMsg:s,branch:a,stashMgr:o}=await OA({fs:t,dir:e,gitdir:r,message:n});return await o.writeStashRef(i),await o.writeStashReflogEntry({stashCommit:i,message:s}),await kv({fs:t,dir:e,gitdir:r,ref:a,track:!1,force:!0}),i}async function U6({fs:t,dir:e,gitdir:r,message:n=""}){let{stashCommit:i}=await OA({fs:t,dir:e,gitdir:r,message:n});return i}async function MA({fs:t,dir:e,gitdir:r,refIdx:n=0}){let s=await new Aa({fs:t,dir:e,gitdir:r}).readStashCommit(n),{parent:a=null}=s.commit?s.commit:{};if(!(!a||!Array.isArray(a)))for(let o=0;o{await t.exists(a)&&await t.rm(a)});let o=await i.readStashReflogs({parsed:!1});if(!o.length)return;o.splice(n,1);let l=i.refLogsStashPath;await il({reflogEntries:o,stashReflogPath:l,stashMgr:i},async()=>{if(o.length){await t.write(l,o.reverse().join(` `)+` -`,"utf8");let c=o[o.length-1].split(" ")[1];await n.writeStashRef(c)}else await t.rm(l)})}async function T6({fs:t,dir:e,gitdir:r}){return new ka({fs:t,dir:e,gitdir:r}).readStashReflogs({parsed:!0})}async function C6({fs:t,dir:e,gitdir:r}){let i=new ka({fs:t,dir:e,gitdir:r}),n=[i.refStashPath,i.refLogsStashPath];await il(n,async()=>{await Promise.all(n.map(async s=>{if(await t.exists(s))return t.rm(s)}))})}async function P6({fs:t,dir:e,gitdir:r,refIdx:i=0}){await AA({fs:t,dir:e,gitdir:r,refIdx:i}),await TA({fs:t,dir:e,gitdir:r,refIdx:i})}async function CA({fs:t,dir:e,gitdir:r=O(e,".git"),op:i="push",message:n="",refIdx:s=0}){C("fs",t),C("dir",e),C("gitdir",r),C("op",i);let a={push:k6,apply:AA,drop:TA,list:T6,clear:C6,pop:P6,create:A6},o=["apply","drop","pop"];try{let l=new J(t),c=await ee({fsp:l,dotgit:r});["refs","logs","logs/refs"].map(d=>O(c,d)).forEach(async d=>{await l.exists(d)||await l.mkdir(d)});let f=a[i];if(f){if(o.includes(i)&&s<0)throw new Fi(`stash@${s}`,"number that is in range of [0, num of stash pushed]");return await f({fs:l,dir:e,gitdir:c,message:n,refIdx:s})}throw new Error(`To be implemented: ${i}`)}catch(l){throw l.caller="git.stash",l}}async function PA({fs:t,dir:e,gitdir:r=O(e,".git"),filepath:i,cache:n={}}){try{C("fs",t),C("gitdir",r),C("filepath",i);let s=new J(t),a=await ee({fsp:s,dotgit:r});if(await Is.isIgnored({fs:s,gitdir:a,dir:e,filepath:i}))return"ignored";let l=await R6({fs:s,cache:n,gitdir:a}),c=await RA({fs:s,cache:n,gitdir:a,tree:l,path:i}),u=await mt.acquire({fs:s,gitdir:a,cache:n},async function(v){for(let w of v)if(w.path===i)return w;return null}),f=await s.lstat(O(e,i)),d=c!==null,h=u!==null,m=f!==null,g=async()=>{if(h&&!xd(u,f))return u.oid;{let v=await s.read(O(e,i)),w=await bA({gitdir:a,type:"blob",object:v});return h&&u.oid===w&&f.size!==-1&&mt.acquire({fs:s,gitdir:a,cache:n},async function(b){b.insert({filepath:i,stats:f,oid:w})}),w}};if(!d&&!m&&!h)return"absent";if(!d&&!m&&h)return"*absent";if(!d&&m&&!h)return"*added";if(!d&&m&&h)return await g()===u.oid?"added":"*added";if(d&&!m&&!h)return"deleted";if(d&&!m&&h)return c===u.oid,"*deleted";if(d&&m&&!h)return await g()===c?"*undeleted":"*undeletemodified";if(d&&m&&h){let v=await g();return v===c?v===u.oid?"unmodified":"*unmodified":v===u.oid?"modified":"*modified"}}catch(s){throw s.caller="git.status",s}}async function RA({fs:t,cache:e,gitdir:r,tree:i,path:n}){typeof n=="string"&&(n=n.split("/"));let s=n.shift();for(let a of i)if(a.path===s){if(n.length===0)return a.oid;let{type:o,object:l}=await Ke({fs:t,cache:e,gitdir:r,oid:a.oid});if(o==="tree"){let c=Er.from(l);return RA({fs:t,cache:e,gitdir:r,tree:c,path:n})}if(o==="blob")throw new hr(a.oid,o,"blob",n.join("/"))}return null}async function R6({fs:t,cache:e,gitdir:r}){let i;try{i=await W.resolve({fs:t,gitdir:r,ref:"HEAD"})}catch(s){if(s instanceof He)return[]}let{tree:n}=await sl({fs:t,cache:e,gitdir:r,oid:i});return n}async function $A({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i="HEAD",filepaths:n=["."],filter:s,cache:a={},ignored:o=!1}){try{C("fs",t),C("gitdir",r),C("ref",i);let l=new J(t),c=await ee({fsp:l,dotgit:r});return await Fs({fs:l,cache:a,dir:e,gitdir:c,trees:[Zr({ref:i}),nl(),Aa()],map:async function(u,[f,d,h]){if(!f&&!h&&d&&!o&&await Is.isIgnored({fs:l,dir:e,filepath:u})||!n.some(y=>vk(u,y)))return null;if(s&&!s(u))return;let[m,g,v]=await Promise.all([f&&f.type(),d&&d.type(),h&&h.type()]),w=[m,g,v].includes("blob");if((m==="tree"||m==="special")&&!w)return;if(m==="commit")return null;if((g==="tree"||g==="special")&&!w)return;if(v==="commit")return null;if((v==="tree"||v==="special")&&!w)return;let b=m==="blob"?await f.oid():void 0,k=v==="blob"?await h.oid():void 0,x;m!=="blob"&&g==="blob"&&v!=="blob"?x="42":g==="blob"&&(x=await d.oid());let E=[void 0,b,x,k],A=E.map(y=>E.indexOf(y));return A.shift(),[u,...A]}})}catch(l){throw l.caller="git.statusMatrix",l}}async function FA({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i,object:n,force:s=!1}){try{C("fs",t),C("gitdir",r),C("ref",i);let a=new J(t);if(i===void 0)throw new Sr("ref");i=i.startsWith("refs/tags/")?i:`refs/tags/${i}`;let o=await ee({fsp:a,dotgit:r}),l=await W.resolve({fs:a,gitdir:o,ref:n||"HEAD"});if(!s&&await W.exists({fs:a,gitdir:o,ref:i}))throw new $i("tag",i);await W.writeRef({fs:a,gitdir:o,ref:i,value:l})}catch(a){throw a.caller="git.tag",a}}async function IA({fs:t,dir:e,gitdir:r=O(e,".git"),cache:i={},filepath:n,oid:s,mode:a,add:o,remove:l,force:c}){try{C("fs",t),C("gitdir",r),C("filepath",n);let u=new J(t),f=await ee({fsp:u,dotgit:r});if(l)return await mt.acquire({fs:u,gitdir:f,cache:i},async function(h){if(!c){let m=await u.lstat(O(e,n));if(m){if(m.isDirectory())throw new $s("directory");return}}h.has({filepath:n})&&h.delete({filepath:n})});let d;if(!s){if(d=await u.lstat(O(e,n)),!d)throw new He(`file at "${n}" on disk and "remove" not set`);if(d.isDirectory())throw new $s("directory")}return await mt.acquire({fs:u,gitdir:f,cache:i},async function(h){if(!o&&!h.has({filepath:n}))throw new He(`file at "${n}" in index and "add" not set`);let m;if(s)m={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:a,uid:0,gid:0,size:0};else{m=d;let g=m.isSymbolicLink()?await u.readlink(O(e,n)):await u.read(O(e,n));s=await Ar({fs:u,gitdir:f,type:"blob",format:"content",object:g})}return h.insert({filepath:n,oid:s,stats:m}),s})}catch(u){throw u.caller="git.updateIndex",u}}function OA(){try{return Md.version}catch(t){throw t.caller="git.version",t}}async function MA({fs:t,dir:e,gitdir:r=O(e,".git"),trees:i,map:n,reduce:s,iterate:a,cache:o={}}){try{C("fs",t),C("gitdir",r),C("trees",i);let l=new J(t),c=await ee({fsp:l,dotgit:r});return await Fs({fs:l,cache:o,dir:e,gitdir:c,trees:i,map:n,reduce:s,iterate:a})}catch(l){throw l.caller="git.walk",l}}async function DA({fs:t,dir:e,gitdir:r=O(e,".git"),blob:i}){try{C("fs",t),C("gitdir",r),C("blob",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await Ar({fs:n,gitdir:s,type:"blob",object:i,format:"content"})}catch(n){throw n.caller="git.writeBlob",n}}async function LA({fs:t,dir:e,gitdir:r=O(e,".git"),commit:i}){try{C("fs",t),C("gitdir",r),C("commit",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await EA({fs:n,gitdir:s,commit:i})}catch(n){throw n.caller="git.writeCommit",n}}async function BA({fs:t,dir:e,gitdir:r=O(e,".git"),type:i,object:n,format:s="parsed",oid:a,encoding:o=void 0}){try{let l=new J(t),c=await ee({fsp:l,dotgit:r});if(s==="parsed"){switch(i){case"commit":n=kr.from(n).toObject();break;case"tree":n=Er.from(n).toObject();break;case"blob":n=Buffer.from(n,o);break;case"tag":n=Kr.from(n).toObject();break;default:throw new hr(a||"",i,"blob|commit|tag|tree")}s="content"}return a=await Ar({fs:l,gitdir:c,type:i,object:n,oid:a,format:s}),a}catch(l){throw l.caller="git.writeObject",l}}async function NA({fs:t,dir:e,gitdir:r=O(e,".git"),ref:i,value:n,force:s=!1,symbolic:a=!1}){try{C("fs",t),C("gitdir",r),C("ref",i),C("value",n);let o=new J(t);if(!nu(i,!0))throw new Fi(i,Hc.clean(i));let l=await ee({fsp:o,dotgit:r});if(!s&&await W.exists({fs:o,gitdir:l,ref:i}))throw new $i("ref",i);a?await W.writeSymbolicRef({fs:o,gitdir:l,ref:i,value:n}):(n=await W.resolve({fs:o,gitdir:l,ref:n}),await W.writeRef({fs:o,gitdir:l,ref:i,value:n}))}catch(o){throw o.caller="git.writeRef",o}}async function $6({fs:t,gitdir:e,tag:r}){let i=Kr.from(r).toObject();return await Ar({fs:t,gitdir:e,type:"tag",object:i,format:"content"})}async function HA({fs:t,dir:e,gitdir:r=O(e,".git"),tag:i}){try{C("fs",t),C("gitdir",r),C("tag",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await $6({fs:n,gitdir:s,tag:i})}catch(n){throw n.caller="git.writeTag",n}}async function UA({fs:t,dir:e,gitdir:r=O(e,".git"),tree:i}){try{C("fs",t),C("gitdir",r),C("tree",i);let n=new J(t),s=await ee({fsp:n,dotgit:r});return await au({fs:n,gitdir:s,tree:i})}catch(n){throw n.caller="git.writeTree",n}}var F6={Errors:rk,STAGE:Aa,TREE:Zr,WORKDIR:nl,add:ok,abortMerge:nk,addNote:dk,addRemote:pk,annotatedTag:mk,branch:gk,checkout:yv,clone:xk,commit:Sk,getConfig:Bk,getConfigAll:Nk,setConfig:SA,currentBranch:Ek,deleteBranch:kk,deleteRef:Ak,deleteRemote:Tk,deleteTag:Ck,expandOid:Pk,expandRef:Rk,fastForward:Ik,fetch:Ok,findMergeBase:Mk,findRoot:Lk,getRemoteInfo:Hk,getRemoteInfo2:Gk,hashBlob:jk,indexPack:qk,init:zk,isDescendent:Wk,isIgnored:Yk,listBranches:Xk,listFiles:Kk,listNotes:Qk,listRefs:Jk,listRemotes:eA,listServerRefs:tA,listTags:rA,log:nA,merge:sA,packObjects:oA,pull:lA,push:cA,readBlob:dA,readCommit:xv,readNote:hA,readObject:pA,readTag:mA,readTree:gA,remove:vA,removeNote:wA,renameBranch:yA,resetIndex:_A,updateIndex:IA,resolveRef:xA,status:PA,statusMatrix:$A,tag:FA,version:OA,walk:MA,writeBlob:DA,writeCommit:LA,writeObject:BA,writeRef:NA,writeTag:HA,writeTree:UA,stash:CA};X.Errors=rk;X.STAGE=Aa;X.TREE=Zr;X.WORKDIR=nl;X.abortMerge=nk;X.add=ok;X.addNote=dk;X.addRemote=pk;X.annotatedTag=mk;X.branch=gk;X.checkout=yv;X.clone=xk;X.commit=Sk;X.currentBranch=Ek;X.default=F6;X.deleteBranch=kk;X.deleteRef=Ak;X.deleteRemote=Tk;X.deleteTag=Ck;X.expandOid=Pk;X.expandRef=Rk;X.fastForward=Ik;X.fetch=Ok;X.findMergeBase=Mk;X.findRoot=Lk;X.getConfig=Bk;X.getConfigAll=Nk;X.getRemoteInfo=Hk;X.getRemoteInfo2=Gk;X.hashBlob=jk;X.indexPack=qk;X.init=zk;X.isDescendent=Wk;X.isIgnored=Yk;X.listBranches=Xk;X.listFiles=Kk;X.listNotes=Qk;X.listRefs=Jk;X.listRemotes=eA;X.listServerRefs=tA;X.listTags=rA;X.log=nA;X.merge=sA;X.packObjects=oA;X.pull=lA;X.push=cA;X.readBlob=dA;X.readCommit=xv;X.readNote=hA;X.readObject=pA;X.readTag=mA;X.readTree=gA;X.remove=vA;X.removeNote=wA;X.renameBranch=yA;X.resetIndex=_A;X.resolveRef=xA;X.setConfig=SA;X.stash=CA;X.status=PA;X.statusMatrix=$A;X.tag=FA;X.updateIndex=IA;X.version=OA;X.walk=MA;X.writeBlob=DA;X.writeCommit=LA;X.writeObject=BA;X.writeRef=NA;X.writeTag=HA;X.writeTree=UA});var JA=F((UZ,QA)=>{"use strict";p();QA.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var tT=F((jZ,eT)=>{p();var Lv={px:{px:1,cm:37.79527559055118,mm:3.7795275590551185,in:96,pt:1.3333333333333333,pc:16},cm:{px:.026458333333333334,cm:1,mm:.1,in:2.54,pt:.035277777777777776,pc:.42333333333333334},mm:{px:.26458333333333334,cm:10,mm:1,in:25.4,pt:.35277777777777775,pc:4.233333333333333},in:{px:.010416666666666666,cm:.39370078740157477,mm:.03937007874015748,in:1,pt:.013888888888888888,pc:.16666666666666666},pt:{px:.75,cm:28.346456692913385,mm:2.834645669291339,in:72,pt:1,pc:12},pc:{px:.0625,cm:2.3622047244094486,mm:.2362204724409449,in:6,pt:.08333333333333333,pc:1},deg:{deg:1,grad:.9,rad:180/Math.PI,turn:360},grad:{deg:1.1111111111111112,grad:1,rad:200/Math.PI,turn:400},rad:{deg:Math.PI/180,grad:Math.PI/200,rad:1,turn:Math.PI*2},turn:{deg:.002777777777777778,grad:.0025,rad:.5/Math.PI,turn:1},s:{s:1,ms:.001},ms:{s:1e3,ms:1},Hz:{Hz:1,kHz:1e3},kHz:{Hz:.001,kHz:1},dpi:{dpi:1,dpcm:.39370078740157477,dppx:.010416666666666666},dpcm:{dpi:2.54,dpcm:1,dppx:.026458333333333334},dppx:{dpi:96,dpcm:37.79527559055118,dppx:1}};eT.exports=function(t,e,r,i){if(!Lv.hasOwnProperty(r))throw new Error("Cannot convert to "+r);if(!Lv[r].hasOwnProperty(e))throw new Error("Cannot convert from "+e+" to "+r);var n=Lv[r][e]*t;return i!==!1?(i=Math.pow(10,parseInt(i)||5),Math.round(n*i)/i):n}});var mT=F(Vn=>{"use strict";p();Object.defineProperty(Vn,"__esModule",{value:!0});Vn.fromRgba=ul;Vn.fromRgb=Bv;Vn.fromHsla=zd;Vn.fromHsl=hT;Vn.fromString=pT;Vn.default=void 0;var rT=sT(JA()),U6=sT(tT());function sT(t){return t&&t.__esModule?t:{default:t}}function G6(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function iT(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,i=new Array(e);r-1}function Y6(t,e,r){var i=t/255,n=e/255,s=r/255,a=Math.max(i,n,s),o=Math.min(i,n,s),l=a-o,c=(a+o)/2;if(l===0)return[0,0,c*100];var u=l/(1-Math.abs(2*c-1)),f=function(){switch(a){case i:return(n-s)/l%6;case n:return(s-i)/l+2;default:return(i-n)/l+4}}();return[f*60,u*100,c*100]}function X6(t,e,r){var i=t/60,n=e/100,s=r/100,a=(1-Math.abs(2*s-1))*n,o=a*(1-Math.abs(i%2-1)),l=s-a/2,c=function(){return i<1?[a,o,0]:i<2?[o,a,0]:i<3?[0,a,o]:i<4?[0,o,a]:i<5?[o,0,a]:[a,0,o]}(),u=pr(c,3),f=u[0],d=u[1],h=u[2];return[(f+l)*255,(d+l)*255,(h+l)*255]}var Z6=function(){function t(e){var r=pr(e,4),i=r[0],n=r[1],s=r[2],a=r[3];G6(this,t),this.values=[Math.max(Math.min(parseInt(i,10),255),0),Math.max(Math.min(parseInt(n,10),255),0),Math.max(Math.min(parseInt(s,10),255),0),a==null?1:Math.max(Math.min(parseFloat(a),255),0)]}return j6(t,[{key:"toRgbString",value:function(){var r=pr(this.values,4),i=r[0],n=r[1],s=r[2],a=r[3];return a===1?"rgb(".concat(i,", ").concat(n,", ").concat(s,")"):"rgba(".concat(i,", ").concat(n,", ").concat(s,", ").concat(a,")")}},{key:"toHslString",value:function(){var r=this.toHslaArray(),i=pr(r,4),n=i[0],s=i[1],a=i[2],o=i[3];return o===1?"hsl(".concat(n,", ").concat(s,"%, ").concat(a,"%)"):"hsla(".concat(n,", ").concat(s,"%, ").concat(a,"%, ").concat(o,")")}},{key:"toHexString",value:function(){var r=pr(this.values,4),i=r[0],n=r[1],s=r[2],a=r[3];return i=Number(i).toString(16).padStart(2,"0"),n=Number(n).toString(16).padStart(2,"0"),s=Number(s).toString(16).padStart(2,"0"),a=a<1?parseInt(a*255,10).toString(16).padStart(2,"0"):"","#".concat(i).concat(n).concat(s).concat(a)}},{key:"toRgbaArray",value:function(){return this.values}},{key:"toHslaArray",value:function(){var r=pr(this.values,4),i=r[0],n=r[1],s=r[2],a=r[3],o=Y6(i,n,s),l=pr(o,3),c=l[0],u=l[1],f=l[2];return[c,u,f,a]}}]),t}();function ul(t){var e=pr(t,4),r=e[0],i=e[1],n=e[2],s=e[3];return new Z6([r,i,n,s])}function Bv(t){var e=pr(t,3),r=e[0],i=e[1],n=e[2];return ul([r,i,n,1])}function zd(t){var e=pr(t,4),r=e[0],i=e[1],n=e[2],s=e[3],a=X6(r,i,n),o=pr(a,3),l=o[0],c=o[1],u=o[2];return ul([l,c,u,s])}function hT(t){var e=pr(t,3),r=e[0],i=e[1],n=e[2];return zd([r,i,n,1])}function K6(t){var e=aT.exec(t)||oT.exec(t),r=pr(e,5),i=r[1],n=r[2],s=r[3],a=r[4];return i=parseInt(i.length<2?i.repeat(2):i,16),n=parseInt(n.length<2?n.repeat(2):n,16),s=parseInt(s.length<2?s.repeat(2):s,16),a=a&&(parseInt(a.length<2?a.repeat(2):a,16)/255).toPrecision(1)||1,ul([i,n,s,a])}function Q6(t){var e=lT.exec(t)||uT.exec(t)||cT.exec(t)||fT.exec(t),r=pr(e,5),i=r[1],n=r[2],s=r[3],a=r[4];return i=uu(i,"%")?parseInt(i,10)*255/100:parseInt(i,10),n=uu(n,"%")?parseInt(n,10)*255/100:parseInt(n,10),s=uu(s,"%")>0?parseInt(s,10)*255/100:parseInt(s,10),a=a===void 0?1:parseFloat(a)/(uu(a,"%")?100:1),ul([i,n,s,a])}function J6(t){var e=dT.exec(t),r=pr(e,6),i=r[1],n=r[2],s=r[3],a=r[4],o=r[5];return n=n||"deg",i=(0,U6.default)(parseFloat(i),n,"deg"),s=parseFloat(s),a=parseFloat(a),o=o===void 0?1:parseFloat(o)/(uu(o,"%")?100:1),zd([i,s,a,o])}function pT(t){return rT.default[t]?Bv(rT.default[t]):aT.test(t)||oT.test(t)?K6(t):lT.test(t)||uT.test(t)||cT.test(t)||fT.test(t)?Q6(t):dT.test(t)?J6(t):null}var e5={fromString:pT,fromRgb:Bv,fromRgba:ul,fromHsl:hT,fromHsla:zd};Vn.default=e5});var Nv=F((WZ,vT)=>{"use strict";p();var gT=Object.prototype.toString;vT.exports=function(e){var r=gT.call(e),i=r==="[object Arguments]";return i||(i=r!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&gT.call(e.callee)==="[object Function]"),i}});var AT=F((XZ,kT)=>{"use strict";p();var ET;Object.keys||(fu=Object.prototype.hasOwnProperty,Hv=Object.prototype.toString,wT=Nv(),Uv=Object.prototype.propertyIsEnumerable,yT=!Uv.call({toString:null},"toString"),bT=Uv.call(function(){},"prototype"),du=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Vd=function(t){var e=t.constructor;return e&&e.prototype===t},_T={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},xT=function(){if(typeof window=="undefined")return!1;for(var t in window)try{if(!_T["$"+t]&&fu.call(window,t)&&window[t]!==null&&typeof window[t]=="object")try{Vd(window[t])}catch(e){return!0}}catch(e){return!0}return!1}(),ST=function(t){if(typeof window=="undefined"||!xT)return Vd(t);try{return Vd(t)}catch(e){return!1}},ET=function(e){var r=e!==null&&typeof e=="object",i=Hv.call(e)==="[object Function]",n=wT(e),s=r&&Hv.call(e)==="[object String]",a=[];if(!r&&!i&&!n)throw new TypeError("Object.keys called on a non-object");var o=bT&&i;if(s&&e.length>0&&!fu.call(e,0))for(var l=0;l0)for(var c=0;c{"use strict";p();var t5=Array.prototype.slice,r5=Nv(),TT=Object.keys,Wd=TT?function(e){return TT(e)}:AT(),CT=Object.keys;Wd.shim=function(){if(Object.keys){var e=function(){var r=Object.keys(arguments);return r&&r.length===arguments.length}(1,2);e||(Object.keys=function(i){return r5(i)?CT(t5.call(i)):CT(i)})}else Object.keys=Wd;return Object.keys||Wd};PT.exports=Wd});var Ns=F((JZ,IT)=>{"use strict";p();var i5=Yd(),n5=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",s5=Object.prototype.toString,a5=Array.prototype.concat,RT=Wf(),o5=function(t){return typeof t=="function"&&s5.call(t)==="[object Function]"},$T=Yf()(),l5=function(t,e,r,i){if(e in t){if(i===!0){if(t[e]===r)return}else if(!o5(i)||!i())return}$T?RT(t,e,r,!0):RT(t,e,r)},FT=function(t,e){var r=arguments.length>2?arguments[2]:{},i=i5(e);n5&&(i=a5.call(i,Object.getOwnPropertySymbols(e)));for(var n=0;n{"use strict";p();var c5=Yd(),MT=vc()(),DT=Bt(),Xd=If(),u5=DT("Array.prototype.push"),OT=DT("Object.prototype.propertyIsEnumerable"),f5=MT?Xd.getOwnPropertySymbols:null;LT.exports=function(e,r){if(e==null)throw new TypeError("target must be an object");var i=Xd(e);if(arguments.length===1)return i;for(var n=1;n{"use strict";p();var jv=Gv(),d5=function(){if(!Object.assign)return!1;for(var t="abcdefghijklmnopqrst",e=t.split(""),r={},i=0;i{"use strict";p();var p5=Ns(),m5=qv();NT.exports=function(){var e=m5();return p5(Object,{assign:e},{assign:function(){return Object.assign!==e}}),e}});var qT=F((oK,jT)=>{"use strict";p();var g5=Ns(),v5=fa(),w5=Gv(),UT=qv(),y5=HT(),b5=v5.apply(UT()),GT=function(e,r){return b5(Object,arguments)};g5(GT,{getPolyfill:UT,implementation:w5,shim:y5});jT.exports=GT});var zv=F((cK,WT)=>{"use strict";p();var zT=tn(),VT=fa(),_5=VT(zT("String.prototype.indexOf"));WT.exports=function(e,r){var i=zT(e,!!r);return typeof i=="function"&&_5(e,".prototype.")>-1?VT(i):i}});var XT=F((fK,YT)=>{"use strict";p();var pu=function(){return typeof function(){}.name=="string"},hu=Object.getOwnPropertyDescriptor;if(hu)try{hu([],"length")}catch(t){hu=null}pu.functionsHaveConfigurableNames=function(){if(!pu()||!hu)return!1;var e=hu(function(){},"name");return!!e&&!!e.configurable};var x5=Function.prototype.bind;pu.boundFunctionsHaveNames=function(){return pu()&&typeof x5=="function"&&function(){}.bind().name!==""};YT.exports=pu});var QT=F((hK,KT)=>{"use strict";p();var ZT=Wf(),S5=Yf()(),E5=XT().functionsHaveConfigurableNames(),k5=_r();KT.exports=function(e,r){if(typeof e!="function")throw new k5("`fn` is not a function");var i=arguments.length>2&&!!arguments[2];return(!i||E5)&&(S5?ZT(e,"name",r,!0,!0):ZT(e,"name",r)),e}});var Vv=F((mK,JT)=>{"use strict";p();var A5=QT(),T5=_r(),C5=Object;JT.exports=A5(function(){if(this==null||this!==C5(this))throw new T5("RegExp.prototype.flags getter called on non-object");var e="";return this.hasIndices&&(e+="d"),this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.unicodeSets&&(e+="v"),this.sticky&&(e+="y"),e},"get flags",!0)});var Wv=F((vK,eC)=>{"use strict";p();var P5=Vv(),R5=Ns().supportsDescriptors,$5=Object.getOwnPropertyDescriptor;eC.exports=function(){if(R5&&/a/mig.flags==="gim"){var e=$5(RegExp.prototype,"flags");if(e&&typeof e.get=="function"&&"dotAll"in RegExp.prototype&&"hasIndices"in RegExp.prototype){var r="",i={};if(Object.defineProperty(i,"hasIndices",{get:function(){r+="d"}}),Object.defineProperty(i,"sticky",{get:function(){r+="y"}}),e.get.call(i),r==="dy")return e.get}}return P5}});var iC=F((yK,rC)=>{"use strict";p();var F5=Ns().supportsDescriptors,I5=Wv(),O5=ys(),M5=Object.defineProperty,D5=Gm(),tC=Uf(),L5=/a/;rC.exports=function(){if(!F5||!tC)throw new D5("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=I5(),r=tC(L5),i=O5(r,"flags");return(!i||i.get!==e)&&M5(r,"flags",{configurable:!0,enumerable:!1,get:e}),e}});var oC=F((_K,aC)=>{"use strict";p();var B5=Ns(),N5=fa(),H5=Vv(),nC=Wv(),U5=iC(),sC=N5(nC());B5(sC,{getPolyfill:nC,implementation:H5,shim:U5});aC.exports=sC});var Xv=F((SK,cC)=>{"use strict";p();var G5=bs()(),j5=Bt(),Yv=j5("Object.prototype.toString"),Zd=function(e){return G5&&e&&typeof e=="object"&&Symbol.toStringTag in e?!1:Yv(e)==="[object Arguments]"},lC=function(e){return Zd(e)?!0:e!==null&&typeof e=="object"&&"length"in e&&typeof e.length=="number"&&e.length>=0&&Yv(e)!=="[object Array]"&&"callee"in e&&Yv(e.callee)==="[object Function]"},q5=function(){return Zd(arguments)}();Zd.isLegacyArguments=lC;cC.exports=q5?Zd:lC});var uC=F(()=>{p()});var yu=F((CK,RC)=>{p();var sw=typeof Map=="function"&&Map.prototype,Zv=Object.getOwnPropertyDescriptor&&sw?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Qd=sw&&Zv&&typeof Zv.get=="function"?Zv.get:null,fC=sw&&Map.prototype.forEach,aw=typeof Set=="function"&&Set.prototype,Kv=Object.getOwnPropertyDescriptor&&aw?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Jd=aw&&Kv&&typeof Kv.get=="function"?Kv.get:null,dC=aw&&Set.prototype.forEach,z5=typeof WeakMap=="function"&&WeakMap.prototype,gu=z5?WeakMap.prototype.has:null,V5=typeof WeakSet=="function"&&WeakSet.prototype,vu=V5?WeakSet.prototype.has:null,W5=typeof WeakRef=="function"&&WeakRef.prototype,hC=W5?WeakRef.prototype.deref:null,Y5=Boolean.prototype.valueOf,X5=Object.prototype.toString,Z5=Function.prototype.toString,K5=String.prototype.match,ow=String.prototype.slice,Hs=String.prototype.replace,Q5=String.prototype.toUpperCase,pC=String.prototype.toLowerCase,SC=RegExp.prototype.test,mC=Array.prototype.concat,fn=Array.prototype.join,J5=Array.prototype.slice,gC=Math.floor,ew=typeof BigInt=="function"?BigInt.prototype.valueOf:null,Qv=Object.getOwnPropertySymbols,tw=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,fl=typeof Symbol=="function"&&typeof Symbol.iterator=="object",wu=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===fl||!0)?Symbol.toStringTag:null,EC=Object.prototype.propertyIsEnumerable,vC=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function wC(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||SC.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var i=t<0?-gC(-t):gC(t);if(i!==t){var n=String(i),s=ow.call(e,n.length+1);return Hs.call(n,r,"$&_")+"."+Hs.call(Hs.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Hs.call(e,r,"$&_")}var rw=uC(),yC=rw.custom,bC=TC(yC)?yC:null,kC={__proto__:null,double:'"',single:"'"},e4={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};RC.exports=function t(e,r,i,n){var s=r||{};if(Wn(s,"quoteStyle")&&!Wn(kC,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Wn(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=Wn(s,"customInspect")?s.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Wn(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Wn(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=s.numericSeparator;if(typeof e=="undefined")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return PC(e,s);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var l=String(e);return o?wC(e,l):l}if(typeof e=="bigint"){var c=String(e)+"n";return o?wC(e,c):c}var u=typeof s.depth=="undefined"?5:s.depth;if(typeof i=="undefined"&&(i=0),i>=u&&u>0&&typeof e=="object")return iw(e)?"[Array]":"[Object]";var f=w4(s,i);if(typeof n=="undefined")n=[];else if(CC(n,e)>=0)return"[Circular]";function d(B,N,ce){if(N&&(n=J5.call(n),n.push(N)),ce){var Pe={depth:s.depth};return Wn(s,"quoteStyle")&&(Pe.quoteStyle=s.quoteStyle),t(B,Pe,i+1,n)}return t(B,s,i+1,n)}if(typeof e=="function"&&!_C(e)){var h=c4(e),m=Kd(e,d);return"[Function"+(h?": "+h:" (anonymous)")+"]"+(m.length>0?" { "+fn.call(m,", ")+" }":"")}if(TC(e)){var g=fl?Hs.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):tw.call(e);return typeof e=="object"&&!fl?mu(g):g}if(m4(e)){for(var v="<"+pC.call(String(e.nodeName)),w=e.attributes||[],b=0;b",v}if(iw(e)){if(e.length===0)return"[]";var k=Kd(e,d);return f&&!v4(k)?"["+nw(k,f)+"]":"[ "+fn.call(k,", ")+" ]"}if(i4(e)){var x=Kd(e,d);return!("cause"in Error.prototype)&&"cause"in e&&!EC.call(e,"cause")?"{ ["+String(e)+"] "+fn.call(mC.call("[cause]: "+d(e.cause),x),", ")+" }":x.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+fn.call(x,", ")+" }"}if(typeof e=="object"&&a){if(bC&&typeof e[bC]=="function"&&rw)return rw(e,{depth:u-i});if(a!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(u4(e)){var E=[];return fC&&fC.call(e,function(B,N){E.push(d(N,e,!0)+" => "+d(B,e))}),xC("Map",Qd.call(e),E,f)}if(h4(e)){var A=[];return dC&&dC.call(e,function(B){A.push(d(B,e))}),xC("Set",Jd.call(e),A,f)}if(f4(e))return Jv("WeakMap");if(p4(e))return Jv("WeakSet");if(d4(e))return Jv("WeakRef");if(s4(e))return mu(d(Number(e)));if(o4(e))return mu(d(ew.call(e)));if(a4(e))return mu(Y5.call(e));if(n4(e))return mu(d(String(e)));if(typeof window!="undefined"&&e===window)return"{ [object Window] }";if(typeof globalThis!="undefined"&&e===globalThis||typeof global!="undefined"&&e===global)return"{ [object globalThis] }";if(!r4(e)&&!_C(e)){var y=Kd(e,d),S=vC?vC(e)===Object.prototype:e instanceof Object||e.constructor===Object,_=e instanceof Object?"":"null prototype",T=!S&&wu&&Object(e)===e&&wu in e?ow.call(Us(e),8,-1):_?"Object":"",P=S||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",D=P+(T||_?"["+fn.call(mC.call([],T||[],_||[]),": ")+"] ":"");return y.length===0?D+"{}":f?D+"{"+nw(y,f)+"}":D+"{ "+fn.call(y,", ")+" }"}return String(e)};function AC(t,e,r){var i=r.quoteStyle||e,n=kC[i];return n+t+n}function t4(t){return Hs.call(String(t),/"/g,""")}function Ca(t){return!wu||!(typeof t=="object"&&(wu in t||typeof t[wu]!="undefined"))}function iw(t){return Us(t)==="[object Array]"&&Ca(t)}function r4(t){return Us(t)==="[object Date]"&&Ca(t)}function _C(t){return Us(t)==="[object RegExp]"&&Ca(t)}function i4(t){return Us(t)==="[object Error]"&&Ca(t)}function n4(t){return Us(t)==="[object String]"&&Ca(t)}function s4(t){return Us(t)==="[object Number]"&&Ca(t)}function a4(t){return Us(t)==="[object Boolean]"&&Ca(t)}function TC(t){if(fl)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!tw)return!1;try{return tw.call(t),!0}catch(e){}return!1}function o4(t){if(!t||typeof t!="object"||!ew)return!1;try{return ew.call(t),!0}catch(e){}return!1}var l4=Object.prototype.hasOwnProperty||function(t){return t in this};function Wn(t,e){return l4.call(t,e)}function Us(t){return X5.call(t)}function c4(t){if(t.name)return t.name;var e=K5.call(Z5.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function CC(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,i=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,i="... "+r+" more character"+(r>1?"s":"");return PC(ow.call(t,0,e.maxStringLength),e)+i}var n=e4[e.quoteStyle||"single"];n.lastIndex=0;var s=Hs.call(Hs.call(t,n,"\\$1"),/[\x00-\x1f]/g,g4);return AC(s,"single",e)}function g4(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+Q5.call(e.toString(16))}function mu(t){return"Object("+t+")"}function Jv(t){return t+" { ? }"}function xC(t,e,r,i){var n=i?nw(r,i):fn.call(r,", ");return t+" ("+e+") {"+n+"}"}function v4(t){for(var e=0;e=0)return!1;return!0}function w4(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=fn.call(Array(t.indent+1)," ");else return null;return{base:r,prev:fn.call(Array(e+1),r)}}function nw(t,e){if(t.length===0)return"";var r=` -`+e.prev+e.base;return r+fn.call(t,","+r)+` -`+e.prev}function Kd(t,e){var r=iw(t),i=[];if(r){i.length=t.length;for(var n=0;n{"use strict";p();var y4=yu(),b4=_r(),eh=function(t,e,r){for(var i=t,n;(n=i.next)!=null;i=n)if(n.key===e)return i.next=n.next,r||(n.next=t.next,t.next=n),n},_4=function(t,e){if(t){var r=eh(t,e);return r&&r.value}},x4=function(t,e,r){var i=eh(t,e);i?i.value=r:t.next={key:e,next:t.next,value:r}},S4=function(t,e){return t?!!eh(t,e):!1},E4=function(t,e){if(t)return eh(t,e,!0)};$C.exports=function(){var e,r={assert:function(i){if(!r.has(i))throw new b4("Side channel does not contain "+y4(i))},delete:function(i){var n=e&&e.next,s=E4(e,i);return s&&n&&n===s&&(e=void 0),!!s},get:function(i){return _4(e,i)},has:function(i){return S4(e,i)},set:function(i,n){e||(e={next:void 0}),x4(e,i,n)}};return r}});var lw=F((FK,OC)=>{"use strict";p();var k4=tn(),bu=Bt(),A4=yu(),T4=_r(),IC=k4("%Map%",!0),C4=bu("Map.prototype.get",!0),P4=bu("Map.prototype.set",!0),R4=bu("Map.prototype.has",!0),$4=bu("Map.prototype.delete",!0),F4=bu("Map.prototype.size",!0);OC.exports=!!IC&&function(){var e,r={assert:function(i){if(!r.has(i))throw new T4("Side channel does not contain "+A4(i))},delete:function(i){if(e){var n=$4(e,i);return F4(e)===0&&(e=void 0),n}return!1},get:function(i){if(e)return C4(e,i)},has:function(i){return e?R4(e,i):!1},set:function(i,n){e||(e=new IC),P4(e,i,n)}};return r}});var DC=F((OK,MC)=>{"use strict";p();var I4=tn(),rh=Bt(),O4=yu(),th=lw(),M4=_r(),dl=I4("%WeakMap%",!0),D4=rh("WeakMap.prototype.get",!0),L4=rh("WeakMap.prototype.set",!0),B4=rh("WeakMap.prototype.has",!0),N4=rh("WeakMap.prototype.delete",!0);MC.exports=dl?function(){var e,r,i={assert:function(n){if(!i.has(n))throw new M4("Side channel does not contain "+O4(n))},delete:function(n){if(dl&&n&&(typeof n=="object"||typeof n=="function")){if(e)return N4(e,n)}else if(th&&r)return r.delete(n);return!1},get:function(n){return dl&&n&&(typeof n=="object"||typeof n=="function")&&e?D4(e,n):r&&r.get(n)},has:function(n){return dl&&n&&(typeof n=="object"||typeof n=="function")&&e?B4(e,n):!!r&&r.has(n)},set:function(n,s){dl&&n&&(typeof n=="object"||typeof n=="function")?(e||(e=new dl),L4(e,n,s)):th&&(r||(r=th()),r.set(n,s))}};return i}:th});var cw=F((DK,LC)=>{"use strict";p();var H4=_r(),U4=yu(),G4=FC(),j4=lw(),q4=DC(),z4=q4||j4||G4;LC.exports=function(){var e,r={assert:function(i){if(!r.has(i))throw new H4("Side channel does not contain "+U4(i))},delete:function(i){return!!e&&e.delete(i)},get:function(i){return e&&e.get(i)},has:function(i){return!!e&&e.has(i)},set:function(i,n){e||(e=z4()),e.set(i,n)}};return r}});var NC=F((BK,BC)=>{"use strict";p();var V4=Gf(),_u=cw()(),Yn=_r(),uw={assert:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Yn("`O` is not an object");if(typeof e!="string")throw new Yn("`slot` must be a string");if(_u.assert(t),!uw.has(t,e))throw new Yn("`"+e+"` is not present on `O`")},get:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Yn("`O` is not an object");if(typeof e!="string")throw new Yn("`slot` must be a string");var r=_u.get(t);return r&&r["$"+e]},has:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Yn("`O` is not an object");if(typeof e!="string")throw new Yn("`slot` must be a string");var r=_u.get(t);return!!r&&V4(r,"$"+e)},set:function(t,e,r){if(!t||typeof t!="object"&&typeof t!="function")throw new Yn("`O` is not an object");if(typeof e!="string")throw new Yn("`slot` must be a string");var i=_u.get(t);i||(i={},_u.set(t,i)),i["$"+e]=r}};Object.freeze&&Object.freeze(uw);BC.exports=uw});var GC=F((HK,UC)=>{"use strict";p();var xu=NC(),W4=Of(),HC=typeof StopIteration=="object"?StopIteration:null;UC.exports=function(e){if(!HC)throw new W4("this environment lacks StopIteration");xu.set(e,"[[Done]]",!1);var r={next:function(){var n=xu.get(this,"[[Iterator]]"),s=!!xu.get(n,"[[Done]]");try{return{done:s,value:s?void 0:n.next()}}catch(a){if(xu.set(n,"[[Done]]",!0),a!==HC)throw a;return{done:!0,value:void 0}}}};return xu.set(r,"[[Iterator]]",e),r}});var fw=F((GK,qC)=>{"use strict";p();var jC=Bt(),Y4=jC("String.prototype.valueOf"),X4=function(e){try{return Y4(e),!0}catch(r){return!1}},Z4=jC("Object.prototype.toString"),K4="[object String]",Q4=bs()();qC.exports=function(e){return typeof e=="string"?!0:!e||typeof e!="object"?!1:Q4?X4(e):Z4(e)===K4}});var hw=F((qK,WC)=>{"use strict";p();var dw=typeof Map=="function"&&Map.prototype?Map:null,J4=typeof Set=="function"&&Set.prototype?Set:null,ih;dw||(ih=function(e){return!1});var VC=dw?Map.prototype.has:null,zC=J4?Set.prototype.has:null;!ih&&!VC&&(ih=function(e){return!1});WC.exports=ih||function(e){if(!e||typeof e!="object")return!1;try{if(VC.call(e),zC)try{zC.call(e)}catch(r){return!0}return e instanceof dw}catch(r){}return!1}});var mw=F((VK,ZC)=>{"use strict";p();var eU=typeof Map=="function"&&Map.prototype?Map:null,pw=typeof Set=="function"&&Set.prototype?Set:null,nh;pw||(nh=function(e){return!1});var YC=eU?Map.prototype.has:null,XC=pw?Set.prototype.has:null;!nh&&!XC&&(nh=function(e){return!1});ZC.exports=nh||function(e){if(!e||typeof e!="object")return!1;try{if(XC.call(e),YC)try{YC.call(e)}catch(r){return!0}return e instanceof pw}catch(r){}return!1}});var l2=F((YK,oh)=>{"use strict";p();var KC=Xv(),QC=GC();Lf()()||vc()()?(sh=Symbol.iterator,oh.exports=function(e){if(e!=null&&typeof e[sh]!="undefined")return e[sh]();if(KC(e))return Array.prototype[sh].call(e)}):(JC=Ff(),e2=fw(),gw=tn(),t2=gw("%Map%",!0),r2=gw("%Set%",!0),vi=zv(),vw=vi("Array.prototype.push"),ww=vi("String.prototype.charCodeAt"),i2=vi("String.prototype.slice"),n2=function(e,r){var i=e.length;if(r+1>=i)return r+1;var n=ww(e,r);if(n<55296||n>56319)return r+1;var s=ww(e,r+1);return s<56320||s>57343?r+1:r+2},ah=function(e){var r=0;return{next:function(){var n=r>=e.length,s;return n||(s=e[r],r+=1),{done:n,value:s}}}},yw=function(e,r){if(JC(e)||KC(e))return ah(e);if(e2(e)){var i=0;return{next:function(){var s=n2(e,i),a=i2(e,i,s);return i=s,{done:s>e.length,value:a}}}}if(r&&typeof e["_es6-shim iterator_"]!="undefined")return e["_es6-shim iterator_"]()},!t2&&!r2?oh.exports=function(e){if(e!=null)return yw(e,!0)}:(s2=hw(),a2=mw(),bw=vi("Map.prototype.forEach",!0),_w=vi("Set.prototype.forEach",!0),(typeof process=="undefined"||!process.versions||!process.versions.node)&&(xw=vi("Map.prototype.iterator",!0),Sw=vi("Set.prototype.iterator",!0)),Ew=vi("Map.prototype.@@iterator",!0)||vi("Map.prototype._es6-shim iterator_",!0),kw=vi("Set.prototype.@@iterator",!0)||vi("Set.prototype._es6-shim iterator_",!0),o2=function(e){if(s2(e)){if(xw)return QC(xw(e));if(Ew)return Ew(e);if(bw){var r=[];return bw(e,function(n,s){vw(r,[s,n])}),ah(r)}}if(a2(e)){if(Sw)return QC(Sw(e));if(kw)return kw(e);if(_w){var i=[];return _w(e,function(n){vw(i,n)}),ah(i)}}},oh.exports=function(e){return o2(e)||yw(e)}));var sh,JC,e2,gw,t2,r2,vi,vw,ww,i2,n2,ah,yw,s2,a2,bw,_w,xw,Sw,Ew,kw,o2});var Aw=F((ZK,u2)=>{"use strict";p();var c2=function(t){return t!==t};u2.exports=function(e,r){return e===0&&r===0?1/e===1/r:!!(e===r||c2(e)&&c2(r))}});var Tw=F((QK,f2)=>{"use strict";p();var tU=Aw();f2.exports=function(){return typeof Object.is=="function"?Object.is:tU}});var h2=F((eQ,d2)=>{"use strict";p();var rU=Tw(),iU=Ns();d2.exports=function(){var e=rU();return iU(Object,{is:e},{is:function(){return Object.is!==e}}),e}});var v2=F((rQ,g2)=>{"use strict";p();var nU=Ns(),sU=fa(),aU=Aw(),p2=Tw(),oU=h2(),m2=sU(p2(),Object);nU(m2,{getPolyfill:p2,implementation:aU,shim:oU});g2.exports=m2});var Pw=F((nQ,_2)=>{"use strict";p();var lU=fa(),b2=Bt(),cU=tn(),Cw=cU("%ArrayBuffer%",!0),lh=b2("ArrayBuffer.prototype.byteLength",!0),uU=b2("Object.prototype.toString"),w2=!!Cw&&!lh&&new Cw(0).slice,y2=!!w2&&lU(w2);_2.exports=lh||y2?function(e){if(!e||typeof e!="object")return!1;try{return lh?lh(e):y2(e,0),!0}catch(r){return!1}}:Cw?function(e){return uU(e)==="[object ArrayBuffer]"}:function(e){return!1}});var E2=F((aQ,S2)=>{"use strict";p();var x2=Bt(),fU=x2("Date.prototype.getDay"),dU=function(e){try{return fU(e),!0}catch(r){return!1}},hU=x2("Object.prototype.toString"),pU="[object Date]",mU=bs()();S2.exports=function(e){return typeof e!="object"||e===null?!1:mU?dU(e):hU(e)===pU}});var Iw=F((lQ,P2)=>{"use strict";p();var k2=Bt(),gU=bs()(),vU=Gf(),wU=ys(),Fw;gU?(A2=k2("RegExp.prototype.exec"),Rw={},ch=function(){throw Rw},$w={toString:ch,valueOf:ch},typeof Symbol.toPrimitive=="symbol"&&($w[Symbol.toPrimitive]=ch),Fw=function(e){if(!e||typeof e!="object")return!1;var r=wU(e,"lastIndex"),i=r&&vU(r,"value");if(!i)return!1;try{A2(e,$w)}catch(n){return n===Rw}}):(T2=k2("Object.prototype.toString"),C2="[object RegExp]",Fw=function(e){return!e||typeof e!="object"&&typeof e!="function"?!1:T2(e)===C2});var A2,Rw,ch,$w,T2,C2;P2.exports=Fw});var F2=F((uQ,$2)=>{"use strict";p();var yU=Bt(),R2=yU("SharedArrayBuffer.prototype.byteLength",!0);$2.exports=R2?function(e){if(!e||typeof e!="object")return!1;try{return R2(e),!0}catch(r){return!1}}:function(e){return!1}});var M2=F((dQ,O2)=>{"use strict";p();var I2=Bt(),bU=I2("Number.prototype.toString"),_U=function(e){try{return bU(e),!0}catch(r){return!1}},xU=I2("Object.prototype.toString"),SU="[object Number]",EU=bs()();O2.exports=function(e){return typeof e=="number"?!0:!e||typeof e!="object"?!1:EU?_U(e):xU(e)===SU}});var B2=F((pQ,L2)=>{"use strict";p();var D2=Bt(),kU=D2("Boolean.prototype.toString"),AU=D2("Object.prototype.toString"),TU=function(e){try{return kU(e),!0}catch(r){return!1}},CU="[object Boolean]",PU=bs()();L2.exports=function(e){return typeof e=="boolean"?!0:e===null||typeof e!="object"?!1:PU?TU(e):AU(e)===CU}});var H2=F((gQ,N2)=>{"use strict";p();var RU=Bt(),$U=Iw(),FU=RU("RegExp.prototype.exec"),IU=_r();N2.exports=function(e){if(!$U(e))throw new IU("`regex` must be a RegExp");return function(i){return FU(e,i)!==null}}});var z2=F((wQ,Ow)=>{"use strict";p();var q2=Bt(),OU=q2("Object.prototype.toString"),MU=Lf()(),DU=H2();MU?(U2=q2("Symbol.prototype.toString"),G2=DU(/^Symbol\(.*\)$/),j2=function(e){return typeof e.valueOf()!="symbol"?!1:G2(U2(e))},Ow.exports=function(e){if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||OU(e)!=="[object Symbol]")return!1;try{return j2(e)}catch(r){return!1}}):Ow.exports=function(e){return!1};var U2,G2,j2});var Y2=F((bQ,W2)=>{"use strict";p();var V2=typeof BigInt!="undefined"&&BigInt;W2.exports=function(){return typeof V2=="function"&&typeof BigInt=="function"&&typeof V2(42)=="bigint"&&typeof BigInt(42)=="bigint"}});var K2=F((xQ,Mw)=>{"use strict";p();var LU=Y2()();LU?(X2=BigInt.prototype.valueOf,Z2=function(e){try{return X2.call(e),!0}catch(r){}return!1},Mw.exports=function(e){return e===null||typeof e=="undefined"||typeof e=="boolean"||typeof e=="string"||typeof e=="number"||typeof e=="symbol"||typeof e=="function"?!1:typeof e=="bigint"?!0:Z2(e)}):Mw.exports=function(e){return!1};var X2,Z2});var J2=F((EQ,Q2)=>{"use strict";p();var BU=fw(),NU=M2(),HU=B2(),UU=z2(),GU=K2();Q2.exports=function(e){if(e==null||typeof e!="object"&&typeof e!="function")return null;if(BU(e))return"String";if(NU(e))return"Number";if(HU(e))return"Boolean";if(UU(e))return"Symbol";if(GU(e))return"BigInt"}});var rP=F((AQ,tP)=>{"use strict";p();var uh=typeof WeakMap=="function"&&WeakMap.prototype?WeakMap:null,eP=typeof WeakSet=="function"&&WeakSet.prototype?WeakSet:null,fh;uh||(fh=function(e){return!1});var Lw=uh?uh.prototype.has:null,Dw=eP?eP.prototype.has:null;!fh&&!Lw&&(fh=function(e){return!1});tP.exports=fh||function(e){if(!e||typeof e!="object")return!1;try{if(Lw.call(e,Lw),Dw)try{Dw.call(e,Dw)}catch(r){return!0}return e instanceof uh}catch(r){}return!1}});var nP=F((CQ,Nw)=>{"use strict";p();var jU=tn(),iP=Bt(),qU=jU("%WeakSet%",!0),Bw=iP("WeakSet.prototype.has",!0);Bw?(dh=iP("WeakMap.prototype.has",!0),Nw.exports=function(e){if(!e||typeof e!="object")return!1;try{if(Bw(e,Bw),dh)try{dh(e,dh)}catch(r){return!0}return e instanceof qU}catch(r){}return!1}):Nw.exports=function(e){return!1};var dh});var aP=F((RQ,sP)=>{"use strict";p();var zU=hw(),VU=mw(),WU=rP(),YU=nP();sP.exports=function(e){if(e&&typeof e=="object"){if(zU(e))return"Map";if(VU(e))return"Set";if(WU(e))return"WeakMap";if(YU(e))return"WeakSet"}return!1}});var cP=F((FQ,lP)=>{"use strict";p();var XU=Bt(),oP=XU("ArrayBuffer.prototype.byteLength",!0),ZU=Pw();lP.exports=function(e){return ZU(e)?oP?oP(e):e.byteLength:NaN}});var OP=F((OQ,IP)=>{"use strict";p();var RP=qT(),dn=zv(),uP=oC(),KU=tn(),hl=l2(),QU=cw(),fP=v2(),dP=Xv(),hP=Ff(),pP=Pw(),mP=E2(),gP=Iw(),vP=F2(),wP=Yd(),yP=J2(),bP=aP(),_P=ng(),xP=cP(),SP=dn("SharedArrayBuffer.prototype.byteLength",!0),EP=dn("Date.prototype.getTime"),Hw=Object.getPrototypeOf,kP=dn("Object.prototype.toString"),ph=KU("%Set%",!0),Uw=dn("Map.prototype.has",!0),mh=dn("Map.prototype.get",!0),AP=dn("Map.prototype.size",!0),gh=dn("Set.prototype.add",!0),$P=dn("Set.prototype.delete",!0),vh=dn("Set.prototype.has",!0),hh=dn("Set.prototype.size",!0);function TP(t,e,r,i){for(var n=hl(t),s;(s=n.next())&&!s.done;)if(Oi(e,s.value,r,i))return $P(t,s.value),!0;return!1}function FP(t){if(typeof t=="undefined")return null;if(typeof t!="object")return typeof t=="symbol"?!1:typeof t=="string"||typeof t=="number"?+t==+t:!0}function JU(t,e,r,i,n,s){var a=FP(r);if(a!=null)return a;var o=mh(e,a),l=RP({},n,{strict:!1});return typeof o=="undefined"&&!Uw(e,a)||!Oi(i,o,l,s)?!1:!Uw(t,a)&&Oi(i,o,l,s)}function eG(t,e,r){var i=FP(r);return i!=null?i:vh(e,i)&&!vh(t,i)}function CP(t,e,r,i,n,s){for(var a=hl(t),o,l;(o=a.next())&&!o.done;)if(l=o.value,Oi(r,l,n,s)&&Oi(i,mh(e,l),n,s))return $P(t,l),!0;return!1}function Oi(t,e,r,i){var n=r||{};if(n.strict?fP(t,e):t===e)return!0;var s=yP(t),a=yP(e);if(s!==a)return!1;if(!t||!e||typeof t!="object"&&typeof e!="object")return n.strict?fP(t,e):t==e;var o=i.has(t),l=i.has(e),c;if(o&&l){if(i.get(t)===i.get(e))return!0}else c={};return o||i.set(t,c),l||i.set(e,c),iG(t,e,n,i)}function PP(t){return!t||typeof t!="object"||typeof t.length!="number"||typeof t.copy!="function"||typeof t.slice!="function"||t.length>0&&typeof t[0]!="number"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))}function tG(t,e,r,i){if(hh(t)!==hh(e))return!1;for(var n=hl(t),s=hl(e),a,o,l;(a=n.next())&&!a.done;)if(a.value&&typeof a.value=="object")l||(l=new ph),gh(l,a.value);else if(!vh(e,a.value)){if(r.strict||!eG(t,e,a.value))return!1;l||(l=new ph),gh(l,a.value)}if(l){for(;(o=s.next())&&!o.done;)if(o.value&&typeof o.value=="object"){if(!TP(l,o.value,r.strict,i))return!1}else if(!r.strict&&!vh(t,o.value)&&!TP(l,o.value,r.strict,i))return!1;return hh(l)===0}return!0}function rG(t,e,r,i){if(AP(t)!==AP(e))return!1;for(var n=hl(t),s=hl(e),a,o,l,c,u,f;(a=n.next())&&!a.done;)if(c=a.value[0],u=a.value[1],c&&typeof c=="object")l||(l=new ph),gh(l,c);else if(f=mh(e,c),typeof f=="undefined"&&!Uw(e,c)||!Oi(u,f,r,i)){if(r.strict||!JU(t,e,c,u,r,i))return!1;l||(l=new ph),gh(l,c)}if(l){for(;(o=s.next())&&!o.done;)if(c=o.value[0],f=o.value[1],c&&typeof c=="object"){if(!CP(l,t,c,f,r,i))return!1}else if(!r.strict&&(!t.has(c)||!Oi(mh(t,c),f,r,i))&&!CP(l,t,c,f,RP({},r,{strict:!1}),i))return!1;return hh(l)===0}return!0}function iG(t,e,r,i){var n,s;if(typeof t!=typeof e||t==null||e==null||kP(t)!==kP(e)||dP(t)!==dP(e))return!1;var a=hP(t),o=hP(e);if(a!==o)return!1;var l=t instanceof Error,c=e instanceof Error;if(l!==c||(l||c)&&(t.name!==e.name||t.message!==e.message))return!1;var u=gP(t),f=gP(e);if(u!==f||(u||f)&&(t.source!==e.source||uP(t)!==uP(e)))return!1;var d=mP(t),h=mP(e);if(d!==h||(d||h)&&EP(t)!==EP(e)||r.strict&&Hw&&Hw(t)!==Hw(e))return!1;var m=_P(t),g=_P(e);if(m!==g)return!1;if(m||g){if(t.length!==e.length)return!1;for(n=0;n=0;n--)if(A[n]!=y[n])return!1;for(n=A.length-1;n>=0;n--)if(s=A[n],!Oi(t[s],e[s],r,i))return!1;var S=bP(t),_=bP(e);return S!==_?!1:S==="Set"||_==="Set"?tG(t,e,r,i):S==="Map"?rG(t,e,r,i):!0}IP.exports=function(e,r,i){return Oi(e,r,i,QU())}});var YP=F((jQ,WP)=>{p();WP.exports=function(t,e){var r=t,i=e,n=r.length,s=i.length,a=!1,o=n+1,l=[],c=[],u,f,d=function(){n>=s&&(u=r,f=n,r=i,i=u,n=s,s=f,a=!0,o=n+1)},h=function(g,v,w,b,k){return{startX:g,startY:v,endX:w,endY:b,r:k}},m=function(g,v,w){var b,k,x,E,A;for(v>w?b=l[g-1+o]:b=l[g+1+o],A=x=Math.max(v,w),E=k=x-g;k=g+1;--E)w[E+o]=m(E,w[E-1+o]+1,w[E+1+o]);w[g+o]=m(g,w[g-1+o]+1,w[g+1+o])}while(w[g+o]!==s);for(ed=g+2*b,k=l[g+o],A=n,y=s,S=[];k!==-1;){let _=c[k];(n!=_.endX||s!=_.endY)&&S.push({file1:[a?_.endY:_.endX,a?y-_.endY:A-_.endX],file2:[a?_.endX:_.endY,a?A-_.endX:y-_.endY]}),A=_.startX,y=_.startY,k=c[k].r}return(A!=0||y!=0)&&S.push({file1:[0,a?y:A],file2:[0,a?A:y]}),S.reverse(),S}}}});var KP=F((zQ,ZP)=>{p();var XP=YP();function sG(t,e,r){var i,n=new XP(e,t).compose(),s=new XP(e,r).compose(),a=[];function o(B,N){a.push([B.file1[0],N,B.file1[1],B.file2[0],B.file2[1]])}for(i=0;ic&&(l.push([1,c,B-c]),c=B)}for(var f=0;fg)break;g=Math.max(g,w+v[2]),f++}if(u(m),d==f)h[4]>0&&l.push([h[1],h[3],h[4]]);else{var b={0:[t.length,-1,e.length,-1],2:[r.length,-1,e.length,-1]};for(i=d;i<=f;i++){h=a[i];var k=h[1],x=b[k],E=h[0],A=E+h[2],y=h[3],S=y+h[4];x[0]=Math.min(y,x[0]),x[1]=Math.max(S,x[1]),x[2]=Math.min(E,x[2]),x[3]=Math.max(A,x[3])}var _=b[0][0]+(m-b[0][2]),T=b[0][1]+(g-b[0][3]),P=b[2][0]+(m-b[2][2]),D=b[2][1]+(g-b[2][3]);l.push([-1,_,T-_,m,g-m,P,D-P])}c=g}return u(e.length),l}function aG(t,e,r){var i=[],n=[t,e,r],s=sG(t,e,r),a=[];function o(){a.length&&i.push({ok:a}),a=[]}function l(h){for(var m=0;m{p();var wl=1e3,yl=wl*60,bl=yl*60,Ra=bl*24,cG=Ra*7,uG=Ra*365.25;JP.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return fG(t);if(r==="number"&&isFinite(t))return e.long?hG(t):dG(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function fG(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),i=(e[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return r*uG;case"weeks":case"week":case"w":return r*cG;case"days":case"day":case"d":return r*Ra;case"hours":case"hour":case"hrs":case"hr":case"h":return r*bl;case"minutes":case"minute":case"mins":case"min":case"m":return r*yl;case"seconds":case"second":case"secs":case"sec":case"s":return r*wl;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function dG(t){var e=Math.abs(t);return e>=Ra?Math.round(t/Ra)+"d":e>=bl?Math.round(t/bl)+"h":e>=yl?Math.round(t/yl)+"m":e>=wl?Math.round(t/wl)+"s":t+"ms"}function hG(t){var e=Math.abs(t);return e>=Ra?_h(t,e,Ra,"day"):e>=bl?_h(t,e,bl,"hour"):e>=yl?_h(t,e,yl,"minute"):e>=wl?_h(t,e,wl,"second"):t+" ms"}function _h(t,e,r,i){var n=e>=r*1.5;return Math.round(t/r)+" "+i+(n?"s":"")}});var rR=F((iJ,tR)=>{p();function pG(t){r.debug=r,r.default=r,r.coerce=l,r.disable=a,r.enable=n,r.enabled=o,r.humanize=eR(),r.destroy=c,Object.keys(t).forEach(u=>{r[u]=t[u]}),r.names=[],r.skips=[],r.formatters={};function e(u){let f=0;for(let d=0;d{if(A==="%%")return"%";x++;let S=r.formatters[y];if(typeof S=="function"){let _=v[x];A=S.call(w,_),v.splice(x,1),x--}return A}),r.formatArgs.call(w,v),(w.log||r.log).apply(w,v)}return g.namespace=u,g.useColors=r.useColors(),g.color=r.selectColor(u),g.extend=i,g.destroy=r.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,m=r.enabled(u)),m),set:v=>{d=v}}),typeof r.init=="function"&&r.init(g),g}function i(u,f){let d=r(this.namespace+(typeof f=="undefined"?":":f)+u);return d.log=this.log,d}function n(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let d of f)d[0]==="-"?r.skips.push(d.slice(1)):r.names.push(d)}function s(u,f){let d=0,h=0,m=-1,g=0;for(;d"-"+f)].join(",");return r.enable(""),u}function o(u){for(let f of r.skips)if(s(u,f))return!1;for(let f of r.names)if(s(u,f))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}tR.exports=pG});var Sh=F((Tr,xh)=>{p();Tr.formatArgs=gG;Tr.save=vG;Tr.load=wG;Tr.useColors=mG;Tr.storage=yG();Tr.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Tr.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function mG(){if(typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function gG(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+xh.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(r++,n==="%c"&&(i=r))}),t.splice(i,0,e)}Tr.log=console.debug||console.log||(()=>{});function vG(t){try{t?Tr.storage.setItem("debug",t):Tr.storage.removeItem("debug")}catch(e){}}function wG(){let t;try{t=Tr.storage.getItem("debug")||Tr.storage.getItem("DEBUG")}catch(e){}return!t&&typeof process!="undefined"&&"env"in process&&(t=process.env.DEBUG),t}function yG(){try{return localStorage}catch(t){}}xh.exports=rR()(Tr);var{formatters:bG}=xh.exports;bG.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var iR=F(Qr=>{"use strict";p();var _G=Qr&&Qr.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qr,"__esModule",{value:!0});var xG=require("fs"),SG=_G(Sh()),_l=SG.default("@kwsites/file-exists");function EG(t,e,r){_l("checking %s",t);try{let i=xG.statSync(t);return i.isFile()&&e?(_l("[OK] path represents a file"),!0):i.isDirectory()&&r?(_l("[OK] path represents a directory"),!0):(_l("[FAIL] path represents something other than a file or directory"),!1)}catch(i){if(i.code==="ENOENT")return _l("[FAIL] path is not accessible: %o",i),!1;throw _l("[FATAL] %o",i),i}}function kG(t,e=Qr.READABLE){return EG(t,(e&Qr.FILE)>0,(e&Qr.FOLDER)>0)}Qr.exists=kG;Qr.FILE=1;Qr.FOLDER=2;Qr.READABLE=Qr.FILE+Qr.FOLDER});var nR=F(Eh=>{"use strict";p();function AG(t){for(var e in t)Eh.hasOwnProperty(e)||(Eh[e]=t[e])}Object.defineProperty(Eh,"__esModule",{value:!0});AG(iR())});var Yw=F($a=>{"use strict";p();Object.defineProperty($a,"__esModule",{value:!0});$a.createDeferred=$a.deferred=void 0;function Ww(){let t,e,r="pending";return{promise:new Promise((n,s)=>{t=n,e=s}),done(n){r==="pending"&&(r="resolved",t(n))},fail(n){r==="pending"&&(r="rejected",e(n))},get fulfilled(){return r!=="pending"},get status(){return r}}}$a.deferred=Ww;$a.createDeferred=Ww;$a.default=Ww});var N0=F((exports,module)=>{p();(function(){"use strict";var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&typeof module=="object"&&module.exports,AMD=typeof define=="function"&&define.amd,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer!="undefined",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(t){return Object.prototype.toString.call(t)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(t){return typeof t=="object"&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t,e){return function(r){return new Sha256(e,!0).update(r)[t]()}},createMethod=function(t){var e=createOutputMethod("hex",t);NODE_JS&&(e=nodeWrap(e,t)),e.create=function(){return new Sha256(t)},e.update=function(n){return e.create().update(n)};for(var r=0;r>2]|=t[n]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|i&63)<=57344?(o[s>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|i&63)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|i&63)<=64?(this.block=o[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex;t[16]=this.block,t[e>>2]|=EXTRA[e&3],this.block=t[16],e>=56&&(this.hashed||this.hash(),t[0]=this.block,t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.hBytes<<3|this.bytes>>>29,t[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var t=this.h0,e=this.h1,r=this.h2,i=this.h3,n=this.h4,s=this.h5,a=this.h6,o=this.h7,l=this.blocks,c,u,f,d,h,m,g,v,w,b,k;for(c=16;c<64;++c)h=l[c-15],u=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,h=l[c-2],f=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,l[c]=l[c-16]+u+l[c-7]+f<<0;for(k=e&r,c=0;c<64;c+=4)this.first?(this.is224?(v=300032,h=l[0]-1413257819,o=h-150054599<<0,i=h+24177077<<0):(v=704751109,h=l[0]-210244248,o=h-1521486534<<0,i=h+143694565<<0),this.first=!1):(u=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),f=(n>>>6|n<<26)^(n>>>11|n<<21)^(n>>>25|n<<7),v=t&e,d=v^t&r^k,g=n&s^~n&a,h=o+f+g+K[c]+l[c],m=u+d,o=i+h<<0,i=h+m<<0),u=(i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10),f=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),w=i&t,d=w^i&e^v,g=o&n^~o&s,h=a+f+g+K[c+1]+l[c+1],m=u+d,a=r+h<<0,r=h+m<<0,u=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),f=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),b=r&i,d=b^r&t^w,g=a&o^~a&n,h=s+f+g+K[c+2]+l[c+2],m=u+d,s=e+h<<0,e=h+m<<0,u=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),f=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),k=e&r,d=k^e&i^b,g=s&a^~s&o,h=n+f+g+K[c+3]+l[c+3],m=u+d,n=t+h<<0,t=h+m<<0;this.h0=this.h0+t<<0,this.h1=this.h1+e<<0,this.h2=this.h2+r<<0,this.h3=this.h3+i<<0,this.h4=this.h4+n<<0,this.h5=this.h5+s<<0,this.h6=this.h6+a<<0,this.h7=this.h7+o<<0},Sha256.prototype.hex=function(){this.finalize();var t=this.h0,e=this.h1,r=this.h2,i=this.h3,n=this.h4,s=this.h5,a=this.h6,o=this.h7,l=HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15];return this.is224||(l+=HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]),l},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var t=this.h0,e=this.h1,r=this.h2,i=this.h3,n=this.h4,s=this.h5,a=this.h6,o=this.h7,l=[t>>24&255,t>>16&255,t>>8&255,t&255,e>>24&255,e>>16&255,e>>8&255,e&255,r>>24&255,r>>16&255,r>>8&255,r&255,i>>24&255,i>>16&255,i>>8&255,i&255,n>>24&255,n>>16&255,n>>8&255,n&255,s>>24&255,s>>16&255,s>>8&255,s&255,a>>24&255,a>>16&255,a>>8&255,a&255];return this.is224||l.push(o>>24&255,o>>16&255,o>>8&255,o&255),l},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(this.is224?28:32),e=new DataView(t);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),t};function HmacSha256(t,e,r){var i,n=typeof t;if(n==="string"){var s=[],a=t.length,o=0,l;for(i=0;i>6,s[o++]=128|l&63):l<55296||l>=57344?(s[o++]=224|l>>12,s[o++]=128|l>>6&63,s[o++]=128|l&63):(l=65536+((l&1023)<<10|t.charCodeAt(++i)&1023),s[o++]=240|l>>18,s[o++]=128|l>>12&63,s[o++]=128|l>>6&63,s[o++]=128|l&63);t=s}else if(n==="object"){if(t===null)throw new Error(ERROR);if(ARRAY_BUFFER&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(t)))throw new Error(ERROR)}else throw new Error(ERROR);t.length>64&&(t=new Sha256(e,!0).update(t).array());var c=[],u=[];for(i=0;i<64;++i){var f=t[i]||0;c[i]=92^f,u[i]=54^f}Sha256.call(this,e,r),this.update(u),this.oKeyPad=c,this.inner=!0,this.sharedMemory=r}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(t),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&define(function(){return exports}))})()});var yO=F(wy=>{p();(function(t){var e=/\S/,r=/\"/g,i=/\n/g,n=/\r/g,s=/\\/g,a=/\u2028/,o=/\u2029/;t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(S,_){var T=S.length,P=0,D=1,B=2,N=P,ce=null,Pe=null,ve="",se=[],xe=!1,we=0,z=0,Q="{{",j="}}";function Le(){ve.length>0&&(se.push({tag:"_t",text:new String(ve)}),ve="")}function lr(){for(var At=!0,Tt=z;Tt"&&(Ze.indent=se[jt].text.toString()),se.splice(jt,1));else Tt||se.push({tag:` -`});xe=!1,z=se.length}function Fe(At,Tt){var jt="="+j,Ze=At.indexOf(jt,Tt),q=c(At.substring(At.indexOf("=",Tt)+1,Ze)).split(" ");return Q=q[0],j=q[q.length-1],Ze+jt.length-1}for(_&&(_=_.split(" "),Q=_[0],j=_[1]),we=0;we0;){if(N=y.shift(),B&&B.tag=="<"&&!(N.tag in f))throw new Error("Illegal content in < super tag.");if(t.tags[N.tag]<=t.tags.$||h(N,T))_.push(N),N.nodes=d(y,N.tag,_,T);else if(N.tag=="/"){if(_.length===0)throw new Error("Closing tag without opener: /"+N.n);if(D=_.pop(),N.n!=D.n&&!m(N.n,D.n,T))throw new Error("Nesting error: "+D.n+" vs. "+N.n);return D.end=N.i,P}else N.tag==` -`&&(N.last=y.length==0||y[0].tag==` -`);P.push(N)}if(_.length>0)throw new Error("missing closing tag: "+_.pop().n);return P}function h(y,S){for(var _=0,T=S.length;_":x,"<":function(y,S){var _={partials:{},code:"",subs:{},inPartial:!0};t.walk(y.nodes,_);var T=S.partials[x(y,S)];T.subs=_.subs,T.partials=_.partials},$:function(y,S){var _={subs:{},code:"",partials:S.partials,prefix:y.n};t.walk(y.nodes,_),S.subs[y.n]=_.code,S.inPartial||(S.code+='t.sub("'+b(y.n)+'",c,p,i);')},"\n":function(y,S){S.code+=A('"\\n"'+(y.last?"":" + i"))},_v:function(y,S){S.code+="t.b(t.v(t."+k(y.n)+'("'+b(y.n)+'",c,p,0)));'},_t:function(y,S){S.code+=A('"'+b(y.text)+'"')},"{":E,"&":E};function E(y,S){S.code+="t.b(t.t(t."+k(y.n)+'("'+b(y.n)+'",c,p,0)));'}function A(y){return"t.b("+y+");"}t.walk=function(y,S){for(var _,T=0,P=y.length;T{p();var GV={};(function(t){t.Template=function(d,h,m,g){d=d||{},this.r=d.code||this.r,this.c=m,this.options=g||{},this.text=h||"",this.partials=d.partials||{},this.subs=d.subs||{},this.buf=""},t.Template.prototype={r:function(d,h,m){return""},v:u,t:c,render:function(h,m,g){return this.ri([h],m||{},g)},ri:function(d,h,m){return this.r(d,h,m)},ep:function(d,h){var m=this.partials[d],g=h[m.name];if(m.instance&&m.base==g)return m.instance;if(typeof g=="string"){if(!this.c)throw new Error("No compiler available.");g=this.c.compile(g,this.options)}if(!g)return null;if(this.partials[d].base=g,m.subs){h.stackText||(h.stackText={});for(key in m.subs)h.stackText[key]||(h.stackText[key]=this.activeSub!==void 0&&h.stackText[this.activeSub]?h.stackText[this.activeSub]:this.text);g=r(g,m.subs,m.partials,this.stackSubs,this.stackPartials,h.stackText)}return this.partials[d].instance=g,g},rp:function(d,h,m,g){var v=this.ep(d,m);return v?v.ri(h,m,g):""},rs:function(d,h,m){var g=d[d.length-1];if(!f(g)){m(d,h,this);return}for(var v=0;v=0;x--)if(w=h[x],v=e(d,w,k),v!==void 0){b=!0;break}return b?(!g&&typeof v=="function"&&(v=this.mv(v,h,m)),v):g?!1:""},ls:function(d,h,m,g,v,w){var b=this.options.delimiters;return this.options.delimiters=w,this.b(this.ct(c(d.call(h,v,m)),h,g)),this.options.delimiters=b,!1},ct:function(d,h,m){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(d,this.options).render(h,m)},b:function(d){this.buf+=d},fl:function(){var d=this.buf;return this.buf="",d},ms:function(d,h,m,g,v,w,b){var k,x=h[h.length-1],E=d.call(x);return typeof E=="function"?g?!0:(k=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(E,x,h,m,k.substring(v,w),b)):E},mv:function(d,h,m){var g=h[h.length-1],v=d.call(g);return typeof v=="function"?this.ct(c(v.call(g)),g,m):v},sub:function(d,h,m,g){var v=this.subs[d];v&&(this.activeSub=d,v(h,m,this,g),this.activeSub=!1)}};function e(d,h,m){var g;return h&&typeof h=="object"&&(h[d]!==void 0?g=h[d]:m&&h.get&&typeof h.get=="function"&&(g=h.get(d))),g}function r(d,h,m,g,v,w){function b(){}b.prototype=d;function k(){}k.prototype=d.subs;var x,E=new b;E.subs=new k,E.subsText={},E.buf="",g=g||{},E.stackSubs=g,E.subsText=w;for(x in h)g[x]||(g[x]=h[x]);for(x in g)E.subs[x]=g[x];v=v||{},E.stackPartials=v;for(x in m)v[x]||(v[x]=m[x]);for(x in v)E.partials[x]=v[x];return E}var i=/&/g,n=//g,a=/\'/g,o=/\"/g,l=/[&<>\"\']/;function c(d){return String(d==null?"":d)}function u(d){return d=c(d),l.test(d)?d.replace(i,"&").replace(n,"<").replace(s,">").replace(a,"'").replace(o,"""):d}var f=Array.isArray||function(d){return Object.prototype.toString.call(d)==="[object Array]"}})(typeof yy!="undefined"?yy:GV)});var by=F((wre,_O)=>{p();var bp=yO();bp.Template=bO().Template;bp.template=bp.Template;_O.exports=bp});var EO=F(bi=>{"use strict";p();Object.defineProperty(bi,"__esModule",{value:!0});bi.ColorSchemeType=bi.DiffStyleType=bi.LineMatchingType=bi.OutputFormatType=bi.LineType=void 0;var xO;(function(t){t.INSERT="insert",t.DELETE="delete",t.CONTEXT="context"})(xO||(bi.LineType=xO={}));bi.OutputFormatType={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"};bi.LineMatchingType={LINES:"lines",WORDS:"words",NONE:"none"};bi.DiffStyleType={WORD:"word",CHAR:"char"};var SO;(function(t){t.AUTO="auto",t.DARK="dark",t.LIGHT="light"})(SO||(bi.ColorSchemeType=SO={}))});var J9={};ND(J9,{default:()=>Em});module.exports=HD(J9);p();var vD=Mt(Sv()),_e=require("obsidian"),wD=Mt(require("path"));p();var Ii={};p();var Dd=class{constructor(e){this.plugin=e;this.tasks=[]}addTask(e,r){this.tasks.push({task:e,onFinished:r!=null?r:()=>{}}),this.tasks.length===1&&this.handleTask()}handleTask(){if(this.tasks.length>0){let e=this.tasks[0];e.task().then(r=>{e.onFinished(r),this.tasks.shift(),this.handleTask()},r=>{this.plugin.displayError(r),e.onFinished(void 0),this.tasks.shift(),this.handleTask()})}}clear(){this.tasks=[]}};p();var U=require("obsidian");p();var GA=require("obsidian"),Ld="YYYY-MM-DD",Ev=`${Ld} HH:mm`,kv=`${Ld} HH:mm:ss`,Bd=40,al="conflict-files-obsidian-git.md",rt={commitMessage:"vault backup: {{date}}",autoCommitMessage:"vault backup: {{date}}",commitMessageScript:"",commitDateFormat:kv,autoSaveInterval:0,autoPushInterval:0,autoPullInterval:0,autoPullOnBoot:!1,autoCommitOnlyStaged:!1,disablePush:!1,pullBeforePush:!0,disablePopups:!1,showErrorNotices:!0,disablePopupsForNoChanges:!1,listChangedFilesInMessageBody:!1,showStatusBar:!0,updateSubmodules:!1,syncMethod:"merge",mergeStrategy:"none",customMessageOnAutoBackup:!1,autoBackupAfterFileChange:!1,treeStructure:!1,refreshSourceControl:GA.Platform.isDesktopApp,basePath:"",differentIntervalCommitAndPush:!1,changedFilesInStatusBar:!1,showedMobileNotice:!1,refreshSourceControlTimer:7e3,showBranchStatusBar:!0,setLastSaveToLastCommit:!1,submoduleRecurseCheckout:!1,gitDir:"",showFileMenu:!0,authorInHistoryView:"hide",dateInHistoryView:!1,diffStyle:"split",hunks:{showSigns:!1,hunkCommands:!1,statusBar:"disabled"},lineAuthor:{show:!1,followMovement:"inactive",authorDisplay:"initials",showCommitHash:!1,dateTimeFormatOptions:"date",dateTimeFormatCustomString:Ev,dateTimeTimezone:"viewer-local",coloringMaxAge:"1y",colorNew:{r:255,g:150,b:150},colorOld:{r:120,g:160,b:255},textColorCss:"var(--text-muted)",ignoreWhitespace:!1,gutterSpacingFallbackLength:5}},zt={type:"git-view",name:"Source Control",icon:"git-pull-request"},gi={type:"git-history-view",name:"History",icon:"history"},Ls={type:"split-diff-view",name:"Diff view",icon:"diff"},Bs={type:"diff-view",name:"Diff View",icon:"git-pull-request"},Nd="C:\\Program Files\\Git\\cmd\\git.exe",Hd=".git_credentials_input",Ta="obsidian_askpass.sh",jA=`#!/bin/sh +`,"utf8");let c=o[o.length-1].split(" ")[1];await i.writeStashRef(c)}else await t.rm(l)})}async function G6({fs:t,dir:e,gitdir:r}){return new Aa({fs:t,dir:e,gitdir:r}).readStashReflogs({parsed:!0})}async function j6({fs:t,dir:e,gitdir:r}){let n=new Aa({fs:t,dir:e,gitdir:r}),i=[n.refStashPath,n.refLogsStashPath];await il(i,async()=>{await Promise.all(i.map(async s=>{if(await t.exists(s))return t.rm(s)}))})}async function q6({fs:t,dir:e,gitdir:r,refIdx:n=0}){await MA({fs:t,dir:e,gitdir:r,refIdx:n}),await DA({fs:t,dir:e,gitdir:r,refIdx:n})}async function LA({fs:t,dir:e,gitdir:r=D(e,".git"),op:n="push",message:i="",refIdx:s=0}){T("fs",t),T("dir",e),T("gitdir",r),T("op",n);let a={push:H6,apply:MA,drop:DA,list:G6,clear:j6,pop:q6,create:U6},o=["apply","drop","pop"];try{let l=new Q(t),c=await J({fsp:l,dotgit:r});["refs","logs","logs/refs"].map(d=>D(c,d)).forEach(async d=>{await l.exists(d)||await l.mkdir(d)});let f=a[n];if(f){if(o.includes(n)&&s<0)throw new Dn(`stash@${s}`,"number that is in range of [0, num of stash pushed]");return await f({fs:l,dir:e,gitdir:c,message:i,refIdx:s})}throw new Error(`To be implemented: ${n}`)}catch(l){throw l.caller="git.stash",l}}async function NA({fs:t,dir:e,gitdir:r=D(e,".git"),filepath:n,cache:i={}}){try{T("fs",t),T("gitdir",r),T("filepath",n);let s=new Q(t),a=await J({fsp:s,dotgit:r});if(await Os.isIgnored({fs:s,gitdir:a,dir:e,filepath:n}))return"ignored";let l=await W6({fs:s,cache:i,gitdir:a}),c=await BA({fs:s,cache:i,gitdir:a,tree:l,path:n}),u=await ht.acquire({fs:s,gitdir:a,cache:i},async function(v){for(let w of v)if(w.path===n)return w;return null}),f=await s.lstat(D(e,n)),d=c!==null,h=u!==null,m=f!==null,g=async()=>{if(h&&!Td(u,f))return u.oid;{let v=await s.read(D(e,n)),w=await PA({gitdir:a,type:"blob",object:v});return h&&u.oid===w&&f.size!==-1&&ht.acquire({fs:s,gitdir:a,cache:i},async function(b){b.insert({filepath:n,stats:f,oid:w})}),w}};if(!d&&!m&&!h)return"absent";if(!d&&!m&&h)return"*absent";if(!d&&m&&!h)return"*added";if(!d&&m&&h)return await g()===u.oid?"added":"*added";if(d&&!m&&!h)return"deleted";if(d&&!m&&h)return c===u.oid,"*deleted";if(d&&m&&!h)return await g()===c?"*undeleted":"*undeletemodified";if(d&&m&&h){let v=await g();return v===c?v===u.oid?"unmodified":"*unmodified":v===u.oid?"modified":"*modified"}}catch(s){throw s.caller="git.status",s}}async function BA({fs:t,cache:e,gitdir:r,tree:n,path:i}){typeof i=="string"&&(i=i.split("/"));let s=i.shift();for(let a of n)if(a.path===s){if(i.length===0)return a.oid;let{type:o,object:l}=await Xe({fs:t,cache:e,gitdir:r,oid:a.oid});if(o==="tree"){let c=Er.from(l);return BA({fs:t,cache:e,gitdir:r,tree:c,path:i})}if(o==="blob")throw new fr(a.oid,o,"blob",i.join("/"))}return null}async function W6({fs:t,cache:e,gitdir:r}){let n;try{n=await z.resolve({fs:t,gitdir:r,ref:"HEAD"})}catch(s){if(s instanceof Be)return[]}let{tree:i}=await al({fs:t,cache:e,gitdir:r,oid:n});return i}async function HA({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n="HEAD",filepaths:i=["."],filter:s,cache:a={},ignored:o=!1}){try{T("fs",t),T("gitdir",r),T("ref",n);let l=new Q(t),c=await J({fsp:l,dotgit:r});return await Fs({fs:l,cache:a,dir:e,gitdir:c,trees:[Xr({ref:n}),sl(),Ca()],map:async function(u,[f,d,h]){if(!f&&!h&&d&&!o&&await Os.isIgnored({fs:l,dir:e,filepath:u})||!i.some(y=>Ak(u,y)))return null;if(s&&!s(u))return;let[m,g,v]=await Promise.all([f&&f.type(),d&&d.type(),h&&h.type()]),w=[m,g,v].includes("blob");if((m==="tree"||m==="special")&&!w)return;if(m==="commit")return null;if((g==="tree"||g==="special")&&!w)return;if(v==="commit")return null;if((v==="tree"||v==="special")&&!w)return;let b=m==="blob"?await f.oid():void 0,k=v==="blob"?await h.oid():void 0,x;m!=="blob"&&g==="blob"&&v!=="blob"?x="42":g==="blob"&&(x=await d.oid());let E=[void 0,b,x,k],A=E.map(y=>E.indexOf(y));return A.shift(),[u,...A]}})}catch(l){throw l.caller="git.statusMatrix",l}}async function UA({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n,object:i,force:s=!1}){try{T("fs",t),T("gitdir",r),T("ref",n);let a=new Q(t);if(n===void 0)throw new Sr("ref");n=n.startsWith("refs/tags/")?n:`refs/tags/${n}`;let o=await J({fsp:a,dotgit:r}),l=await z.resolve({fs:a,gitdir:o,ref:i||"HEAD"});if(!s&&await z.exists({fs:a,gitdir:o,ref:n}))throw new Mn("tag",n);await z.writeRef({fs:a,gitdir:o,ref:n,value:l})}catch(a){throw a.caller="git.tag",a}}async function GA({fs:t,dir:e,gitdir:r=D(e,".git"),cache:n={},filepath:i,oid:s,mode:a,add:o,remove:l,force:c}){try{T("fs",t),T("gitdir",r),T("filepath",i);let u=new Q(t),f=await J({fsp:u,dotgit:r});if(l)return await ht.acquire({fs:u,gitdir:f,cache:n},async function(h){if(!c){let m=await u.lstat(D(e,i));if(m){if(m.isDirectory())throw new Is("directory");return}}h.has({filepath:i})&&h.delete({filepath:i})});let d;if(!s){if(d=await u.lstat(D(e,i)),!d)throw new Be(`file at "${i}" on disk and "remove" not set`);if(d.isDirectory())throw new Is("directory")}return await ht.acquire({fs:u,gitdir:f,cache:n},async function(h){if(!o&&!h.has({filepath:i}))throw new Be(`file at "${i}" in index and "add" not set`);let m;if(s)m={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:a,uid:0,gid:0,size:0};else{m=d;let g=m.isSymbolicLink()?await u.readlink(D(e,i)):await u.read(D(e,i));s=await Ar({fs:u,gitdir:f,type:"blob",format:"content",object:g})}return h.insert({filepath:i,oid:s,stats:m}),s})}catch(u){throw u.caller="git.updateIndex",u}}function jA(){try{return Ud.version}catch(t){throw t.caller="git.version",t}}async function qA({fs:t,dir:e,gitdir:r=D(e,".git"),trees:n,map:i,reduce:s,iterate:a,cache:o={}}){try{T("fs",t),T("gitdir",r),T("trees",n);let l=new Q(t),c=await J({fsp:l,dotgit:r});return await Fs({fs:l,cache:o,dir:e,gitdir:c,trees:n,map:i,reduce:s,iterate:a})}catch(l){throw l.caller="git.walk",l}}async function WA({fs:t,dir:e,gitdir:r=D(e,".git"),blob:n}){try{T("fs",t),T("gitdir",r),T("blob",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await Ar({fs:i,gitdir:s,type:"blob",object:n,format:"content"})}catch(i){throw i.caller="git.writeBlob",i}}async function zA({fs:t,dir:e,gitdir:r=D(e,".git"),commit:n}){try{T("fs",t),T("gitdir",r),T("commit",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await FA({fs:i,gitdir:s,commit:n})}catch(i){throw i.caller="git.writeCommit",i}}async function VA({fs:t,dir:e,gitdir:r=D(e,".git"),type:n,object:i,format:s="parsed",oid:a,encoding:o=void 0}){try{let l=new Q(t),c=await J({fsp:l,dotgit:r});if(s==="parsed"){switch(n){case"commit":i=kr.from(i).toObject();break;case"tree":i=Er.from(i).toObject();break;case"blob":i=Buffer.from(i,o);break;case"tag":i=Zr.from(i).toObject();break;default:throw new fr(a||"",n,"blob|commit|tag|tree")}s="content"}return a=await Ar({fs:l,gitdir:c,type:n,object:i,oid:a,format:s}),a}catch(l){throw l.caller="git.writeObject",l}}async function YA({fs:t,dir:e,gitdir:r=D(e,".git"),ref:n,value:i,force:s=!1,symbolic:a=!1}){try{T("fs",t),T("gitdir",r),T("ref",n),T("value",i);let o=new Q(t);if(!uu(n,!0))throw new Dn(n,zc.clean(n));let l=await J({fsp:o,dotgit:r});if(!s&&await z.exists({fs:o,gitdir:l,ref:n}))throw new Mn("ref",n);a?await z.writeSymbolicRef({fs:o,gitdir:l,ref:n,value:i}):(i=await z.resolve({fs:o,gitdir:l,ref:i}),await z.writeRef({fs:o,gitdir:l,ref:n,value:i}))}catch(o){throw o.caller="git.writeRef",o}}async function z6({fs:t,gitdir:e,tag:r}){let n=Zr.from(r).toObject();return await Ar({fs:t,gitdir:e,type:"tag",object:n,format:"content"})}async function XA({fs:t,dir:e,gitdir:r=D(e,".git"),tag:n}){try{T("fs",t),T("gitdir",r),T("tag",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await z6({fs:i,gitdir:s,tag:n})}catch(i){throw i.caller="git.writeTag",i}}async function ZA({fs:t,dir:e,gitdir:r=D(e,".git"),tree:n}){try{T("fs",t),T("gitdir",r),T("tree",n);let i=new Q(t),s=await J({fsp:i,dotgit:r});return await du({fs:i,gitdir:s,tree:n})}catch(i){throw i.caller="git.writeTree",i}}var V6={Errors:fk,STAGE:Ca,TREE:Xr,WORKDIR:sl,add:gk,abortMerge:hk,addNote:_k,addRemote:Sk,annotatedTag:Ek,branch:kk,checkout:kv,clone:$k,commit:Ik,getConfig:Vk,getConfigAll:Yk,setConfig:IA,currentBranch:Fk,deleteBranch:Ok,deleteRef:Mk,deleteRemote:Dk,deleteTag:Lk,expandOid:Nk,expandRef:Bk,fastForward:Gk,fetch:jk,findMergeBase:qk,findRoot:zk,getRemoteInfo:Xk,getRemoteInfo2:Kk,hashBlob:Qk,indexPack:Jk,init:eA,isDescendent:rA,isIgnored:nA,listBranches:iA,listFiles:aA,listNotes:oA,listRefs:lA,listRemotes:cA,listServerRefs:uA,listTags:fA,log:hA,merge:pA,packObjects:gA,pull:vA,push:wA,readBlob:_A,readCommit:Tv,readNote:xA,readObject:SA,readTag:EA,readTree:kA,remove:AA,removeNote:CA,renameBranch:TA,resetIndex:RA,updateIndex:GA,resolveRef:$A,status:NA,statusMatrix:HA,tag:UA,version:jA,walk:qA,writeBlob:WA,writeCommit:zA,writeObject:VA,writeRef:YA,writeTag:XA,writeTree:ZA,stash:LA};Y.Errors=fk;Y.STAGE=Ca;Y.TREE=Xr;Y.WORKDIR=sl;Y.abortMerge=hk;Y.add=gk;Y.addNote=_k;Y.addRemote=Sk;Y.annotatedTag=Ek;Y.branch=kk;Y.checkout=kv;Y.clone=$k;Y.commit=Ik;Y.currentBranch=Fk;Y.default=V6;Y.deleteBranch=Ok;Y.deleteRef=Mk;Y.deleteRemote=Dk;Y.deleteTag=Lk;Y.expandOid=Nk;Y.expandRef=Bk;Y.fastForward=Gk;Y.fetch=jk;Y.findMergeBase=qk;Y.findRoot=zk;Y.getConfig=Vk;Y.getConfigAll=Yk;Y.getRemoteInfo=Xk;Y.getRemoteInfo2=Kk;Y.hashBlob=Qk;Y.indexPack=Jk;Y.init=eA;Y.isDescendent=rA;Y.isIgnored=nA;Y.listBranches=iA;Y.listFiles=aA;Y.listNotes=oA;Y.listRefs=lA;Y.listRemotes=cA;Y.listServerRefs=uA;Y.listTags=fA;Y.log=hA;Y.merge=pA;Y.packObjects=gA;Y.pull=vA;Y.push=wA;Y.readBlob=_A;Y.readCommit=Tv;Y.readNote=xA;Y.readObject=SA;Y.readTag=EA;Y.readTree=kA;Y.remove=AA;Y.removeNote=CA;Y.renameBranch=TA;Y.resetIndex=RA;Y.resolveRef=$A;Y.setConfig=IA;Y.stash=LA;Y.status=NA;Y.statusMatrix=HA;Y.tag=UA;Y.updateIndex=GA;Y.version=jA;Y.walk=qA;Y.writeBlob=WA;Y.writeCommit=zA;Y.writeObject=VA;Y.writeRef=YA;Y.writeTag=XA;Y.writeTree=ZA});var lC=I((TK,oC)=>{"use strict";p();oC.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var uC=I((RK,cC)=>{p();var jv={px:{px:1,cm:37.79527559055118,mm:3.7795275590551185,in:96,pt:1.3333333333333333,pc:16},cm:{px:.026458333333333334,cm:1,mm:.1,in:2.54,pt:.035277777777777776,pc:.42333333333333334},mm:{px:.26458333333333334,cm:10,mm:1,in:25.4,pt:.35277777777777775,pc:4.233333333333333},in:{px:.010416666666666666,cm:.39370078740157477,mm:.03937007874015748,in:1,pt:.013888888888888888,pc:.16666666666666666},pt:{px:.75,cm:28.346456692913385,mm:2.834645669291339,in:72,pt:1,pc:12},pc:{px:.0625,cm:2.3622047244094486,mm:.2362204724409449,in:6,pt:.08333333333333333,pc:1},deg:{deg:1,grad:.9,rad:180/Math.PI,turn:360},grad:{deg:1.1111111111111112,grad:1,rad:200/Math.PI,turn:400},rad:{deg:Math.PI/180,grad:Math.PI/200,rad:1,turn:Math.PI*2},turn:{deg:.002777777777777778,grad:.0025,rad:.5/Math.PI,turn:1},s:{s:1,ms:.001},ms:{s:1e3,ms:1},Hz:{Hz:1,kHz:1e3},kHz:{Hz:.001,kHz:1},dpi:{dpi:1,dpcm:.39370078740157477,dppx:.010416666666666666},dpcm:{dpi:2.54,dpcm:1,dppx:.026458333333333334},dppx:{dpi:96,dpcm:37.79527559055118,dppx:1}};cC.exports=function(t,e,r,n){if(!jv.hasOwnProperty(r))throw new Error("Cannot convert to "+r);if(!jv[r].hasOwnProperty(e))throw new Error("Cannot convert from "+e+" to "+r);var i=jv[r][e]*t;return n!==!1?(n=Math.pow(10,parseInt(n)||5),Math.round(i*n)/n):i}});var EC=I(Yi=>{"use strict";p();Object.defineProperty(Yi,"__esModule",{value:!0});Yi.fromRgba=fl;Yi.fromRgb=qv;Yi.fromHsla=Kd;Yi.fromHsl=xC;Yi.fromString=SC;Yi.default=void 0;var fC=pC(lC()),r5=pC(uC());function pC(t){return t&&t.__esModule?t:{default:t}}function n5(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function dC(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r-1}function c5(t,e,r){var n=t/255,i=e/255,s=r/255,a=Math.max(n,i,s),o=Math.min(n,i,s),l=a-o,c=(a+o)/2;if(l===0)return[0,0,c*100];var u=l/(1-Math.abs(2*c-1)),f=function(){switch(a){case n:return(i-s)/l%6;case i:return(s-n)/l+2;default:return(n-i)/l+4}}();return[f*60,u*100,c*100]}function u5(t,e,r){var n=t/60,i=e/100,s=r/100,a=(1-Math.abs(2*s-1))*i,o=a*(1-Math.abs(n%2-1)),l=s-a/2,c=function(){return n<1?[a,o,0]:n<2?[o,a,0]:n<3?[0,a,o]:n<4?[0,o,a]:n<5?[o,0,a]:[a,0,o]}(),u=dr(c,3),f=u[0],d=u[1],h=u[2];return[(f+l)*255,(d+l)*255,(h+l)*255]}var f5=function(){function t(e){var r=dr(e,4),n=r[0],i=r[1],s=r[2],a=r[3];n5(this,t),this.values=[Math.max(Math.min(parseInt(n,10),255),0),Math.max(Math.min(parseInt(i,10),255),0),Math.max(Math.min(parseInt(s,10),255),0),a==null?1:Math.max(Math.min(parseFloat(a),255),0)]}return i5(t,[{key:"toRgbString",value:function(){var r=dr(this.values,4),n=r[0],i=r[1],s=r[2],a=r[3];return a===1?"rgb(".concat(n,", ").concat(i,", ").concat(s,")"):"rgba(".concat(n,", ").concat(i,", ").concat(s,", ").concat(a,")")}},{key:"toHslString",value:function(){var r=this.toHslaArray(),n=dr(r,4),i=n[0],s=n[1],a=n[2],o=n[3];return o===1?"hsl(".concat(i,", ").concat(s,"%, ").concat(a,"%)"):"hsla(".concat(i,", ").concat(s,"%, ").concat(a,"%, ").concat(o,")")}},{key:"toHexString",value:function(){var r=dr(this.values,4),n=r[0],i=r[1],s=r[2],a=r[3];return n=Number(n).toString(16).padStart(2,"0"),i=Number(i).toString(16).padStart(2,"0"),s=Number(s).toString(16).padStart(2,"0"),a=a<1?parseInt(a*255,10).toString(16).padStart(2,"0"):"","#".concat(n).concat(i).concat(s).concat(a)}},{key:"toRgbaArray",value:function(){return this.values}},{key:"toHslaArray",value:function(){var r=dr(this.values,4),n=r[0],i=r[1],s=r[2],a=r[3],o=c5(n,i,s),l=dr(o,3),c=l[0],u=l[1],f=l[2];return[c,u,f,a]}}]),t}();function fl(t){var e=dr(t,4),r=e[0],n=e[1],i=e[2],s=e[3];return new f5([r,n,i,s])}function qv(t){var e=dr(t,3),r=e[0],n=e[1],i=e[2];return fl([r,n,i,1])}function Kd(t){var e=dr(t,4),r=e[0],n=e[1],i=e[2],s=e[3],a=u5(r,n,i),o=dr(a,3),l=o[0],c=o[1],u=o[2];return fl([l,c,u,s])}function xC(t){var e=dr(t,3),r=e[0],n=e[1],i=e[2];return Kd([r,n,i,1])}function d5(t){var e=mC.exec(t)||gC.exec(t),r=dr(e,5),n=r[1],i=r[2],s=r[3],a=r[4];return n=parseInt(n.length<2?n.repeat(2):n,16),i=parseInt(i.length<2?i.repeat(2):i,16),s=parseInt(s.length<2?s.repeat(2):s,16),a=a&&(parseInt(a.length<2?a.repeat(2):a,16)/255).toPrecision(1)||1,fl([n,i,s,a])}function h5(t){var e=vC.exec(t)||yC.exec(t)||wC.exec(t)||bC.exec(t),r=dr(e,5),n=r[1],i=r[2],s=r[3],a=r[4];return n=gu(n,"%")?parseInt(n,10)*255/100:parseInt(n,10),i=gu(i,"%")?parseInt(i,10)*255/100:parseInt(i,10),s=gu(s,"%")>0?parseInt(s,10)*255/100:parseInt(s,10),a=a===void 0?1:parseFloat(a)/(gu(a,"%")?100:1),fl([n,i,s,a])}function p5(t){var e=_C.exec(t),r=dr(e,6),n=r[1],i=r[2],s=r[3],a=r[4],o=r[5];return i=i||"deg",n=(0,r5.default)(parseFloat(n),i,"deg"),s=parseFloat(s),a=parseFloat(a),o=o===void 0?1:parseFloat(o)/(gu(o,"%")?100:1),Kd([n,s,a,o])}function SC(t){return fC.default[t]?qv(fC.default[t]):mC.test(t)||gC.test(t)?d5(t):vC.test(t)||yC.test(t)||wC.test(t)||bC.test(t)?h5(t):_C.test(t)?p5(t):null}var m5={fromString:SC,fromRgb:qv,fromRgba:fl,fromHsl:xC,fromHsla:Kd};Yi.default=m5});var Wv=I((OK,AC)=>{"use strict";p();var kC=Object.prototype.toString;AC.exports=function(e){var r=kC.call(e),n=r==="[object Arguments]";return n||(n=r!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&kC.call(e.callee)==="[object Function]"),n}});var MC=I((DK,OC)=>{"use strict";p();var FC;Object.keys||(vu=Object.prototype.hasOwnProperty,zv=Object.prototype.toString,CC=Wv(),Vv=Object.prototype.propertyIsEnumerable,TC=!Vv.call({toString:null},"toString"),PC=Vv.call(function(){},"prototype"),wu=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Qd=function(t){var e=t.constructor;return e&&e.prototype===t},RC={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},$C=function(){if(typeof window=="undefined")return!1;for(var t in window)try{if(!RC["$"+t]&&vu.call(window,t)&&window[t]!==null&&typeof window[t]=="object")try{Qd(window[t])}catch(e){return!0}}catch(e){return!0}return!1}(),IC=function(t){if(typeof window=="undefined"||!$C)return Qd(t);try{return Qd(t)}catch(e){return!1}},FC=function(e){var r=e!==null&&typeof e=="object",n=zv.call(e)==="[object Function]",i=CC(e),s=r&&zv.call(e)==="[object String]",a=[];if(!r&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var o=PC&&n;if(s&&e.length>0&&!vu.call(e,0))for(var l=0;l0)for(var c=0;c{"use strict";p();var g5=Array.prototype.slice,v5=Wv(),DC=Object.keys,Jd=DC?function(e){return DC(e)}:MC(),LC=Object.keys;Jd.shim=function(){if(Object.keys){var e=function(){var r=Object.keys(arguments);return r&&r.length===arguments.length}(1,2);e||(Object.keys=function(n){return v5(n)?LC(g5.call(n)):LC(n)})}else Object.keys=Jd;return Object.keys||Jd};NC.exports=Jd});var Hs=I((HK,GC)=>{"use strict";p();var w5=eh(),y5=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",b5=Object.prototype.toString,_5=Array.prototype.concat,BC=Jf(),x5=function(t){return typeof t=="function"&&b5.call(t)==="[object Function]"},HC=td()(),S5=function(t,e,r,n){if(e in t){if(n===!0){if(t[e]===r)return}else if(!x5(n)||!n())return}HC?BC(t,e,r,!0):BC(t,e,r)},UC=function(t,e){var r=arguments.length>2?arguments[2]:{},n=w5(e);y5&&(n=_5.call(n,Object.getOwnPropertySymbols(e)));for(var i=0;i{"use strict";p();var E5=eh(),qC=Sc()(),WC=Lt(),th=Bf(),k5=WC("Array.prototype.push"),jC=WC("Object.prototype.propertyIsEnumerable"),A5=qC?th.getOwnPropertySymbols:null;zC.exports=function(e,r){if(e==null)throw new TypeError("target must be an object");var n=th(e);if(arguments.length===1)return n;for(var i=1;i{"use strict";p();var Xv=Yv(),C5=function(){if(!Object.assign)return!1;for(var t="abcdefghijklmnopqrst",e=t.split(""),r={},n=0;n{"use strict";p();var P5=Hs(),R5=Zv();YC.exports=function(){var e=R5();return P5(Object,{assign:e},{assign:function(){return Object.assign!==e}}),e}});var JC=I((YK,QC)=>{"use strict";p();var $5=Hs(),I5=da(),F5=Yv(),ZC=Zv(),O5=XC(),M5=I5.apply(ZC()),KC=function(e,r){return M5(Object,arguments)};$5(KC,{getPolyfill:ZC,implementation:F5,shim:O5});QC.exports=KC});var Kv=I((ZK,rT)=>{"use strict";p();var eT=si(),tT=da(),D5=tT(eT("String.prototype.indexOf"));rT.exports=function(e,r){var n=eT(e,!!r);return typeof n=="function"&&D5(e,".prototype.")>-1?tT(n):n}});var iT=I((QK,nT)=>{"use strict";p();var bu=function(){return typeof function(){}.name=="string"},yu=Object.getOwnPropertyDescriptor;if(yu)try{yu([],"length")}catch(t){yu=null}bu.functionsHaveConfigurableNames=function(){if(!bu()||!yu)return!1;var e=yu(function(){},"name");return!!e&&!!e.configurable};var L5=Function.prototype.bind;bu.boundFunctionsHaveNames=function(){return bu()&&typeof L5=="function"&&function(){}.bind().name!==""};nT.exports=bu});var oT=I((eQ,aT)=>{"use strict";p();var sT=Jf(),N5=td()(),B5=iT().functionsHaveConfigurableNames(),H5=_r();aT.exports=function(e,r){if(typeof e!="function")throw new H5("`fn` is not a function");var n=arguments.length>2&&!!arguments[2];return(!n||B5)&&(N5?sT(e,"name",r,!0,!0):sT(e,"name",r)),e}});var Qv=I((rQ,lT)=>{"use strict";p();var U5=oT(),G5=_r(),j5=Object;lT.exports=U5(function(){if(this==null||this!==j5(this))throw new G5("RegExp.prototype.flags getter called on non-object");var e="";return this.hasIndices&&(e+="d"),this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.unicodeSets&&(e+="v"),this.sticky&&(e+="y"),e},"get flags",!0)});var Jv=I((iQ,cT)=>{"use strict";p();var q5=Qv(),W5=Hs().supportsDescriptors,z5=Object.getOwnPropertyDescriptor;cT.exports=function(){if(W5&&/a/mig.flags==="gim"){var e=z5(RegExp.prototype,"flags");if(e&&typeof e.get=="function"&&"dotAll"in RegExp.prototype&&"hasIndices"in RegExp.prototype){var r="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){r+="d"}}),Object.defineProperty(n,"sticky",{get:function(){r+="y"}}),e.get.call(n),r==="dy")return e.get}}return q5}});var dT=I((aQ,fT)=>{"use strict";p();var V5=Hs().supportsDescriptors,Y5=Jv(),X5=bs(),Z5=Object.defineProperty,K5=Ym(),uT=Vf(),Q5=/a/;fT.exports=function(){if(!V5||!uT)throw new K5("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=Y5(),r=uT(Q5),n=X5(r,"flags");return(!n||n.get!==e)&&Z5(r,"flags",{configurable:!0,enumerable:!1,get:e}),e}});var gT=I((lQ,mT)=>{"use strict";p();var J5=Hs(),eU=da(),tU=Qv(),hT=Jv(),rU=dT(),pT=eU(hT());J5(pT,{getPolyfill:hT,implementation:tU,shim:rU});mT.exports=pT});var tw=I((uQ,wT)=>{"use strict";p();var nU=_s()(),iU=Lt(),ew=iU("Object.prototype.toString"),rh=function(e){return nU&&e&&typeof e=="object"&&Symbol.toStringTag in e?!1:ew(e)==="[object Arguments]"},vT=function(e){return rh(e)?!0:e!==null&&typeof e=="object"&&"length"in e&&typeof e.length=="number"&&e.length>=0&&ew(e)!=="[object Array]"&&"callee"in e&&ew(e.callee)==="[object Function]"},sU=function(){return rh(arguments)}();rh.isLegacyArguments=vT;wT.exports=sU?rh:vT});var yT=I(()=>{p()});var ku=I((mQ,BT)=>{p();var fw=typeof Map=="function"&&Map.prototype,rw=Object.getOwnPropertyDescriptor&&fw?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,ih=fw&&rw&&typeof rw.get=="function"?rw.get:null,bT=fw&&Map.prototype.forEach,dw=typeof Set=="function"&&Set.prototype,nw=Object.getOwnPropertyDescriptor&&dw?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,sh=dw&&nw&&typeof nw.get=="function"?nw.get:null,_T=dw&&Set.prototype.forEach,aU=typeof WeakMap=="function"&&WeakMap.prototype,xu=aU?WeakMap.prototype.has:null,oU=typeof WeakSet=="function"&&WeakSet.prototype,Su=oU?WeakSet.prototype.has:null,lU=typeof WeakRef=="function"&&WeakRef.prototype,xT=lU?WeakRef.prototype.deref:null,cU=Boolean.prototype.valueOf,uU=Object.prototype.toString,fU=Function.prototype.toString,dU=String.prototype.match,hw=String.prototype.slice,Us=String.prototype.replace,hU=String.prototype.toUpperCase,ST=String.prototype.toLowerCase,IT=RegExp.prototype.test,ET=Array.prototype.concat,pi=Array.prototype.join,pU=Array.prototype.slice,kT=Math.floor,aw=typeof BigInt=="function"?BigInt.prototype.valueOf:null,iw=Object.getOwnPropertySymbols,ow=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,dl=typeof Symbol=="function"&&typeof Symbol.iterator=="object",Eu=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===dl||!0)?Symbol.toStringTag:null,FT=Object.prototype.propertyIsEnumerable,AT=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function CT(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||IT.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-kT(-t):kT(t);if(n!==t){var i=String(n),s=hw.call(e,i.length+1);return Us.call(i,r,"$&_")+"."+Us.call(Us.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Us.call(e,r,"$&_")}var lw=yT(),TT=lw.custom,PT=DT(TT)?TT:null,OT={__proto__:null,double:'"',single:"'"},mU={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};BT.exports=function t(e,r,n,i){var s=r||{};if(Xi(s,"quoteStyle")&&!Xi(OT,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Xi(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=Xi(s,"customInspect")?s.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Xi(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Xi(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=s.numericSeparator;if(typeof e=="undefined")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return NT(e,s);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var l=String(e);return o?CT(e,l):l}if(typeof e=="bigint"){var c=String(e)+"n";return o?CT(e,c):c}var u=typeof s.depth=="undefined"?5:s.depth;if(typeof n=="undefined"&&(n=0),n>=u&&u>0&&typeof e=="object")return cw(e)?"[Array]":"[Object]";var f=FU(s,n);if(typeof i=="undefined")i=[];else if(LT(i,e)>=0)return"[Circular]";function d(B,H,ce){if(H&&(i=pU.call(i),i.push(H)),ce){var Pe={depth:s.depth};return Xi(s,"quoteStyle")&&(Pe.quoteStyle=s.quoteStyle),t(B,Pe,n+1,i)}return t(B,s,n+1,i)}if(typeof e=="function"&&!RT(e)){var h=EU(e),m=nh(e,d);return"[Function"+(h?": "+h:" (anonymous)")+"]"+(m.length>0?" { "+pi.call(m,", ")+" }":"")}if(DT(e)){var g=dl?Us.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):ow.call(e);return typeof e=="object"&&!dl?_u(g):g}if(RU(e)){for(var v="<"+ST.call(String(e.nodeName)),w=e.attributes||[],b=0;b",v}if(cw(e)){if(e.length===0)return"[]";var k=nh(e,d);return f&&!IU(k)?"["+uw(k,f)+"]":"[ "+pi.call(k,", ")+" ]"}if(wU(e)){var x=nh(e,d);return!("cause"in Error.prototype)&&"cause"in e&&!FT.call(e,"cause")?"{ ["+String(e)+"] "+pi.call(ET.call("[cause]: "+d(e.cause),x),", ")+" }":x.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+pi.call(x,", ")+" }"}if(typeof e=="object"&&a){if(PT&&typeof e[PT]=="function"&&lw)return lw(e,{depth:u-n});if(a!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(kU(e)){var E=[];return bT&&bT.call(e,function(B,H){E.push(d(H,e,!0)+" => "+d(B,e))}),$T("Map",ih.call(e),E,f)}if(TU(e)){var A=[];return _T&&_T.call(e,function(B){A.push(d(B,e))}),$T("Set",sh.call(e),A,f)}if(AU(e))return sw("WeakMap");if(PU(e))return sw("WeakSet");if(CU(e))return sw("WeakRef");if(bU(e))return _u(d(Number(e)));if(xU(e))return _u(d(aw.call(e)));if(_U(e))return _u(cU.call(e));if(yU(e))return _u(d(String(e)));if(typeof window!="undefined"&&e===window)return"{ [object Window] }";if(typeof globalThis!="undefined"&&e===globalThis||typeof global!="undefined"&&e===global)return"{ [object globalThis] }";if(!vU(e)&&!RT(e)){var y=nh(e,d),S=AT?AT(e)===Object.prototype:e instanceof Object||e.constructor===Object,_=e instanceof Object?"":"null prototype",C=!S&&Eu&&Object(e)===e&&Eu in e?hw.call(Gs(e),8,-1):_?"Object":"",P=S||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",N=P+(C||_?"["+pi.call(ET.call([],C||[],_||[]),": ")+"] ":"");return y.length===0?N+"{}":f?N+"{"+uw(y,f)+"}":N+"{ "+pi.call(y,", ")+" }"}return String(e)};function MT(t,e,r){var n=r.quoteStyle||e,i=OT[n];return i+t+i}function gU(t){return Us.call(String(t),/"/g,""")}function Pa(t){return!Eu||!(typeof t=="object"&&(Eu in t||typeof t[Eu]!="undefined"))}function cw(t){return Gs(t)==="[object Array]"&&Pa(t)}function vU(t){return Gs(t)==="[object Date]"&&Pa(t)}function RT(t){return Gs(t)==="[object RegExp]"&&Pa(t)}function wU(t){return Gs(t)==="[object Error]"&&Pa(t)}function yU(t){return Gs(t)==="[object String]"&&Pa(t)}function bU(t){return Gs(t)==="[object Number]"&&Pa(t)}function _U(t){return Gs(t)==="[object Boolean]"&&Pa(t)}function DT(t){if(dl)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!ow)return!1;try{return ow.call(t),!0}catch(e){}return!1}function xU(t){if(!t||typeof t!="object"||!aw)return!1;try{return aw.call(t),!0}catch(e){}return!1}var SU=Object.prototype.hasOwnProperty||function(t){return t in this};function Xi(t,e){return SU.call(t,e)}function Gs(t){return uU.call(t)}function EU(t){if(t.name)return t.name;var e=dU.call(fU.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function LT(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return NT(hw.call(t,0,e.maxStringLength),e)+n}var i=mU[e.quoteStyle||"single"];i.lastIndex=0;var s=Us.call(Us.call(t,i,"\\$1"),/[\x00-\x1f]/g,$U);return MT(s,"single",e)}function $U(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+hU.call(e.toString(16))}function _u(t){return"Object("+t+")"}function sw(t){return t+" { ? }"}function $T(t,e,r,n){var i=n?uw(r,n):pi.call(r,", ");return t+" ("+e+") {"+i+"}"}function IU(t){for(var e=0;e=0)return!1;return!0}function FU(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=pi.call(Array(t.indent+1)," ");else return null;return{base:r,prev:pi.call(Array(e+1),r)}}function uw(t,e){if(t.length===0)return"";var r=` +`+e.prev+e.base;return r+pi.call(t,","+r)+` +`+e.prev}function nh(t,e){var r=cw(t),n=[];if(r){n.length=t.length;for(var i=0;i{"use strict";p();var OU=ku(),MU=_r(),ah=function(t,e,r){for(var n=t,i;(i=n.next)!=null;n=i)if(i.key===e)return n.next=i.next,r||(i.next=t.next,t.next=i),i},DU=function(t,e){if(t){var r=ah(t,e);return r&&r.value}},LU=function(t,e,r){var n=ah(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},NU=function(t,e){return t?!!ah(t,e):!1},BU=function(t,e){if(t)return ah(t,e,!0)};HT.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new MU("Side channel does not contain "+OU(n))},delete:function(n){var i=e&&e.next,s=BU(e,n);return s&&i&&i===s&&(e=void 0),!!s},get:function(n){return DU(e,n)},has:function(n){return NU(e,n)},set:function(n,i){e||(e={next:void 0}),LU(e,n,i)}};return r}});var pw=I((yQ,jT)=>{"use strict";p();var HU=si(),Au=Lt(),UU=ku(),GU=_r(),GT=HU("%Map%",!0),jU=Au("Map.prototype.get",!0),qU=Au("Map.prototype.set",!0),WU=Au("Map.prototype.has",!0),zU=Au("Map.prototype.delete",!0),VU=Au("Map.prototype.size",!0);jT.exports=!!GT&&function(){var e,r={assert:function(n){if(!r.has(n))throw new GU("Side channel does not contain "+UU(n))},delete:function(n){if(e){var i=zU(e,n);return VU(e)===0&&(e=void 0),i}return!1},get:function(n){if(e)return jU(e,n)},has:function(n){return e?WU(e,n):!1},set:function(n,i){e||(e=new GT),qU(e,n,i)}};return r}});var WT=I((_Q,qT)=>{"use strict";p();var YU=si(),lh=Lt(),XU=ku(),oh=pw(),ZU=_r(),hl=YU("%WeakMap%",!0),KU=lh("WeakMap.prototype.get",!0),QU=lh("WeakMap.prototype.set",!0),JU=lh("WeakMap.prototype.has",!0),e4=lh("WeakMap.prototype.delete",!0);qT.exports=hl?function(){var e,r,n={assert:function(i){if(!n.has(i))throw new ZU("Side channel does not contain "+XU(i))},delete:function(i){if(hl&&i&&(typeof i=="object"||typeof i=="function")){if(e)return e4(e,i)}else if(oh&&r)return r.delete(i);return!1},get:function(i){return hl&&i&&(typeof i=="object"||typeof i=="function")&&e?KU(e,i):r&&r.get(i)},has:function(i){return hl&&i&&(typeof i=="object"||typeof i=="function")&&e?JU(e,i):!!r&&r.has(i)},set:function(i,s){hl&&i&&(typeof i=="object"||typeof i=="function")?(e||(e=new hl),QU(e,i,s)):oh&&(r||(r=oh()),r.set(i,s))}};return n}:oh});var mw=I((SQ,zT)=>{"use strict";p();var t4=_r(),r4=ku(),n4=UT(),i4=pw(),s4=WT(),a4=s4||i4||n4;zT.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new t4("Side channel does not contain "+r4(n))},delete:function(n){return!!e&&e.delete(n)},get:function(n){return e&&e.get(n)},has:function(n){return!!e&&e.has(n)},set:function(n,i){e||(e=a4()),e.set(n,i)}};return r}});var YT=I((kQ,VT)=>{"use strict";p();var o4=Yf(),Cu=mw()(),Zi=_r(),gw={assert:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Zi("`O` is not an object");if(typeof e!="string")throw new Zi("`slot` must be a string");if(Cu.assert(t),!gw.has(t,e))throw new Zi("`"+e+"` is not present on `O`")},get:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Zi("`O` is not an object");if(typeof e!="string")throw new Zi("`slot` must be a string");var r=Cu.get(t);return r&&r["$"+e]},has:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Zi("`O` is not an object");if(typeof e!="string")throw new Zi("`slot` must be a string");var r=Cu.get(t);return!!r&&o4(r,"$"+e)},set:function(t,e,r){if(!t||typeof t!="object"&&typeof t!="function")throw new Zi("`O` is not an object");if(typeof e!="string")throw new Zi("`slot` must be a string");var n=Cu.get(t);n||(n={},Cu.set(t,n)),n["$"+e]=r}};Object.freeze&&Object.freeze(gw);VT.exports=gw});var KT=I((CQ,ZT)=>{"use strict";p();var Tu=YT(),l4=Hf(),XT=typeof StopIteration=="object"?StopIteration:null;ZT.exports=function(e){if(!XT)throw new l4("this environment lacks StopIteration");Tu.set(e,"[[Done]]",!1);var r={next:function(){var i=Tu.get(this,"[[Iterator]]"),s=!!Tu.get(i,"[[Done]]");try{return{done:s,value:s?void 0:i.next()}}catch(a){if(Tu.set(i,"[[Done]]",!0),a!==XT)throw a;return{done:!0,value:void 0}}}};return Tu.set(r,"[[Iterator]]",e),r}});var vw=I((PQ,JT)=>{"use strict";p();var QT=Lt(),c4=QT("String.prototype.valueOf"),u4=function(e){try{return c4(e),!0}catch(r){return!1}},f4=QT("Object.prototype.toString"),d4="[object String]",h4=_s()();JT.exports=function(e){return typeof e=="string"?!0:!e||typeof e!="object"?!1:h4?u4(e):f4(e)===d4}});var yw=I(($Q,r2)=>{"use strict";p();var ww=typeof Map=="function"&&Map.prototype?Map:null,p4=typeof Set=="function"&&Set.prototype?Set:null,ch;ww||(ch=function(e){return!1});var t2=ww?Map.prototype.has:null,e2=p4?Set.prototype.has:null;!ch&&!t2&&(ch=function(e){return!1});r2.exports=ch||function(e){if(!e||typeof e!="object")return!1;try{if(t2.call(e),e2)try{e2.call(e)}catch(r){return!0}return e instanceof ww}catch(r){}return!1}});var _w=I((FQ,s2)=>{"use strict";p();var m4=typeof Map=="function"&&Map.prototype?Map:null,bw=typeof Set=="function"&&Set.prototype?Set:null,uh;bw||(uh=function(e){return!1});var n2=m4?Map.prototype.has:null,i2=bw?Set.prototype.has:null;!uh&&!i2&&(uh=function(e){return!1});s2.exports=uh||function(e){if(!e||typeof e!="object")return!1;try{if(i2.call(e),n2)try{n2.call(e)}catch(r){return!0}return e instanceof bw}catch(r){}return!1}});var v2=I((MQ,hh)=>{"use strict";p();var a2=tw(),o2=KT();jf()()||Sc()()?(fh=Symbol.iterator,hh.exports=function(e){if(e!=null&&typeof e[fh]!="undefined")return e[fh]();if(a2(e))return Array.prototype[fh].call(e)}):(l2=Nf(),c2=vw(),xw=si(),u2=xw("%Map%",!0),f2=xw("%Set%",!0),vn=Kv(),Sw=vn("Array.prototype.push"),Ew=vn("String.prototype.charCodeAt"),d2=vn("String.prototype.slice"),h2=function(e,r){var n=e.length;if(r+1>=n)return r+1;var i=Ew(e,r);if(i<55296||i>56319)return r+1;var s=Ew(e,r+1);return s<56320||s>57343?r+1:r+2},dh=function(e){var r=0;return{next:function(){var i=r>=e.length,s;return i||(s=e[r],r+=1),{done:i,value:s}}}},kw=function(e,r){if(l2(e)||a2(e))return dh(e);if(c2(e)){var n=0;return{next:function(){var s=h2(e,n),a=d2(e,n,s);return n=s,{done:s>e.length,value:a}}}}if(r&&typeof e["_es6-shim iterator_"]!="undefined")return e["_es6-shim iterator_"]()},!u2&&!f2?hh.exports=function(e){if(e!=null)return kw(e,!0)}:(p2=yw(),m2=_w(),Aw=vn("Map.prototype.forEach",!0),Cw=vn("Set.prototype.forEach",!0),(typeof process=="undefined"||!process.versions||!process.versions.node)&&(Tw=vn("Map.prototype.iterator",!0),Pw=vn("Set.prototype.iterator",!0)),Rw=vn("Map.prototype.@@iterator",!0)||vn("Map.prototype._es6-shim iterator_",!0),$w=vn("Set.prototype.@@iterator",!0)||vn("Set.prototype._es6-shim iterator_",!0),g2=function(e){if(p2(e)){if(Tw)return o2(Tw(e));if(Rw)return Rw(e);if(Aw){var r=[];return Aw(e,function(i,s){Sw(r,[s,i])}),dh(r)}}if(m2(e)){if(Pw)return o2(Pw(e));if($w)return $w(e);if(Cw){var n=[];return Cw(e,function(i){Sw(n,i)}),dh(n)}}},hh.exports=function(e){return g2(e)||kw(e)}));var fh,l2,c2,xw,u2,f2,vn,Sw,Ew,d2,h2,dh,kw,p2,m2,Aw,Cw,Tw,Pw,Rw,$w,g2});var Iw=I((LQ,y2)=>{"use strict";p();var w2=function(t){return t!==t};y2.exports=function(e,r){return e===0&&r===0?1/e===1/r:!!(e===r||w2(e)&&w2(r))}});var Fw=I((BQ,b2)=>{"use strict";p();var g4=Iw();b2.exports=function(){return typeof Object.is=="function"?Object.is:g4}});var x2=I((UQ,_2)=>{"use strict";p();var v4=Fw(),w4=Hs();_2.exports=function(){var e=v4();return w4(Object,{is:e},{is:function(){return Object.is!==e}}),e}});var A2=I((jQ,k2)=>{"use strict";p();var y4=Hs(),b4=da(),_4=Iw(),S2=Fw(),x4=x2(),E2=b4(S2(),Object);y4(E2,{getPolyfill:S2,implementation:_4,shim:x4});k2.exports=E2});var Mw=I((WQ,R2)=>{"use strict";p();var S4=da(),P2=Lt(),E4=si(),Ow=E4("%ArrayBuffer%",!0),ph=P2("ArrayBuffer.prototype.byteLength",!0),k4=P2("Object.prototype.toString"),C2=!!Ow&&!ph&&new Ow(0).slice,T2=!!C2&&S4(C2);R2.exports=ph||T2?function(e){if(!e||typeof e!="object")return!1;try{return ph?ph(e):T2(e,0),!0}catch(r){return!1}}:Ow?function(e){return k4(e)==="[object ArrayBuffer]"}:function(e){return!1}});var F2=I((VQ,I2)=>{"use strict";p();var $2=Lt(),A4=$2("Date.prototype.getDay"),C4=function(e){try{return A4(e),!0}catch(r){return!1}},T4=$2("Object.prototype.toString"),P4="[object Date]",R4=_s()();I2.exports=function(e){return typeof e!="object"||e===null?!1:R4?C4(e):T4(e)===P4}});var Bw=I((XQ,N2)=>{"use strict";p();var O2=Lt(),$4=_s()(),I4=Yf(),F4=bs(),Nw;$4?(M2=O2("RegExp.prototype.exec"),Dw={},mh=function(){throw Dw},Lw={toString:mh,valueOf:mh},typeof Symbol.toPrimitive=="symbol"&&(Lw[Symbol.toPrimitive]=mh),Nw=function(e){if(!e||typeof e!="object")return!1;var r=F4(e,"lastIndex"),n=r&&I4(r,"value");if(!n)return!1;try{M2(e,Lw)}catch(i){return i===Dw}}):(D2=O2("Object.prototype.toString"),L2="[object RegExp]",Nw=function(e){return!e||typeof e!="object"&&typeof e!="function"?!1:D2(e)===L2});var M2,Dw,mh,Lw,D2,L2;N2.exports=Nw});var U2=I((KQ,H2)=>{"use strict";p();var O4=Lt(),B2=O4("SharedArrayBuffer.prototype.byteLength",!0);H2.exports=B2?function(e){if(!e||typeof e!="object")return!1;try{return B2(e),!0}catch(r){return!1}}:function(e){return!1}});var q2=I((JQ,j2)=>{"use strict";p();var G2=Lt(),M4=G2("Number.prototype.toString"),D4=function(e){try{return M4(e),!0}catch(r){return!1}},L4=G2("Object.prototype.toString"),N4="[object Number]",B4=_s()();j2.exports=function(e){return typeof e=="number"?!0:!e||typeof e!="object"?!1:B4?D4(e):L4(e)===N4}});var V2=I((tJ,z2)=>{"use strict";p();var W2=Lt(),H4=W2("Boolean.prototype.toString"),U4=W2("Object.prototype.toString"),G4=function(e){try{return H4(e),!0}catch(r){return!1}},j4="[object Boolean]",q4=_s()();z2.exports=function(e){return typeof e=="boolean"?!0:e===null||typeof e!="object"?!1:q4?G4(e):U4(e)===j4}});var X2=I((nJ,Y2)=>{"use strict";p();var W4=Lt(),z4=Bw(),V4=W4("RegExp.prototype.exec"),Y4=_r();Y2.exports=function(e){if(!z4(e))throw new Y4("`regex` must be a RegExp");return function(n){return V4(e,n)!==null}}});var eP=I((sJ,Hw)=>{"use strict";p();var J2=Lt(),X4=J2("Object.prototype.toString"),Z4=jf()(),K4=X2();Z4?(Z2=J2("Symbol.prototype.toString"),K2=K4(/^Symbol\(.*\)$/),Q2=function(e){return typeof e.valueOf()!="symbol"?!1:K2(Z2(e))},Hw.exports=function(e){if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||X4(e)!=="[object Symbol]")return!1;try{return Q2(e)}catch(r){return!1}}):Hw.exports=function(e){return!1};var Z2,K2,Q2});var nP=I((oJ,rP)=>{"use strict";p();var tP=typeof BigInt!="undefined"&&BigInt;rP.exports=function(){return typeof tP=="function"&&typeof BigInt=="function"&&typeof tP(42)=="bigint"&&typeof BigInt(42)=="bigint"}});var aP=I((cJ,Uw)=>{"use strict";p();var Q4=nP()();Q4?(iP=BigInt.prototype.valueOf,sP=function(e){try{return iP.call(e),!0}catch(r){}return!1},Uw.exports=function(e){return e===null||typeof e=="undefined"||typeof e=="boolean"||typeof e=="string"||typeof e=="number"||typeof e=="symbol"||typeof e=="function"?!1:typeof e=="bigint"?!0:sP(e)}):Uw.exports=function(e){return!1};var iP,sP});var lP=I((fJ,oP)=>{"use strict";p();var J4=vw(),eG=q2(),tG=V2(),rG=eP(),nG=aP();oP.exports=function(e){if(e==null||typeof e!="object"&&typeof e!="function")return null;if(J4(e))return"String";if(eG(e))return"Number";if(tG(e))return"Boolean";if(rG(e))return"Symbol";if(nG(e))return"BigInt"}});var fP=I((hJ,uP)=>{"use strict";p();var gh=typeof WeakMap=="function"&&WeakMap.prototype?WeakMap:null,cP=typeof WeakSet=="function"&&WeakSet.prototype?WeakSet:null,vh;gh||(vh=function(e){return!1});var jw=gh?gh.prototype.has:null,Gw=cP?cP.prototype.has:null;!vh&&!jw&&(vh=function(e){return!1});uP.exports=vh||function(e){if(!e||typeof e!="object")return!1;try{if(jw.call(e,jw),Gw)try{Gw.call(e,Gw)}catch(r){return!0}return e instanceof gh}catch(r){}return!1}});var hP=I((mJ,Ww)=>{"use strict";p();var iG=si(),dP=Lt(),sG=iG("%WeakSet%",!0),qw=dP("WeakSet.prototype.has",!0);qw?(wh=dP("WeakMap.prototype.has",!0),Ww.exports=function(e){if(!e||typeof e!="object")return!1;try{if(qw(e,qw),wh)try{wh(e,wh)}catch(r){return!0}return e instanceof sG}catch(r){}return!1}):Ww.exports=function(e){return!1};var wh});var mP=I((vJ,pP)=>{"use strict";p();var aG=yw(),oG=_w(),lG=fP(),cG=hP();pP.exports=function(e){if(e&&typeof e=="object"){if(aG(e))return"Map";if(oG(e))return"Set";if(lG(e))return"WeakMap";if(cG(e))return"WeakSet"}return!1}});var wP=I((yJ,vP)=>{"use strict";p();var uG=Lt(),gP=uG("ArrayBuffer.prototype.byteLength",!0),fG=Mw();vP.exports=function(e){return fG(e)?gP?gP(e):e.byteLength:NaN}});var jP=I((_J,GP)=>{"use strict";p();var BP=JC(),mi=Kv(),yP=gT(),dG=si(),pl=v2(),hG=mw(),bP=A2(),_P=tw(),xP=Nf(),SP=Mw(),EP=F2(),kP=Bw(),AP=U2(),CP=eh(),TP=lP(),PP=mP(),RP=ug(),$P=wP(),IP=mi("SharedArrayBuffer.prototype.byteLength",!0),FP=mi("Date.prototype.getTime"),zw=Object.getPrototypeOf,OP=mi("Object.prototype.toString"),bh=dG("%Set%",!0),Vw=mi("Map.prototype.has",!0),_h=mi("Map.prototype.get",!0),MP=mi("Map.prototype.size",!0),xh=mi("Set.prototype.add",!0),HP=mi("Set.prototype.delete",!0),Sh=mi("Set.prototype.has",!0),yh=mi("Set.prototype.size",!0);function DP(t,e,r,n){for(var i=pl(t),s;(s=i.next())&&!s.done;)if(Nn(e,s.value,r,n))return HP(t,s.value),!0;return!1}function UP(t){if(typeof t=="undefined")return null;if(typeof t!="object")return typeof t=="symbol"?!1:typeof t=="string"||typeof t=="number"?+t==+t:!0}function pG(t,e,r,n,i,s){var a=UP(r);if(a!=null)return a;var o=_h(e,a),l=BP({},i,{strict:!1});return typeof o=="undefined"&&!Vw(e,a)||!Nn(n,o,l,s)?!1:!Vw(t,a)&&Nn(n,o,l,s)}function mG(t,e,r){var n=UP(r);return n!=null?n:Sh(e,n)&&!Sh(t,n)}function LP(t,e,r,n,i,s){for(var a=pl(t),o,l;(o=a.next())&&!o.done;)if(l=o.value,Nn(r,l,i,s)&&Nn(n,_h(e,l),i,s))return HP(t,l),!0;return!1}function Nn(t,e,r,n){var i=r||{};if(i.strict?bP(t,e):t===e)return!0;var s=TP(t),a=TP(e);if(s!==a)return!1;if(!t||!e||typeof t!="object"&&typeof e!="object")return i.strict?bP(t,e):t==e;var o=n.has(t),l=n.has(e),c;if(o&&l){if(n.get(t)===n.get(e))return!0}else c={};return o||n.set(t,c),l||n.set(e,c),wG(t,e,i,n)}function NP(t){return!t||typeof t!="object"||typeof t.length!="number"||typeof t.copy!="function"||typeof t.slice!="function"||t.length>0&&typeof t[0]!="number"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))}function gG(t,e,r,n){if(yh(t)!==yh(e))return!1;for(var i=pl(t),s=pl(e),a,o,l;(a=i.next())&&!a.done;)if(a.value&&typeof a.value=="object")l||(l=new bh),xh(l,a.value);else if(!Sh(e,a.value)){if(r.strict||!mG(t,e,a.value))return!1;l||(l=new bh),xh(l,a.value)}if(l){for(;(o=s.next())&&!o.done;)if(o.value&&typeof o.value=="object"){if(!DP(l,o.value,r.strict,n))return!1}else if(!r.strict&&!Sh(t,o.value)&&!DP(l,o.value,r.strict,n))return!1;return yh(l)===0}return!0}function vG(t,e,r,n){if(MP(t)!==MP(e))return!1;for(var i=pl(t),s=pl(e),a,o,l,c,u,f;(a=i.next())&&!a.done;)if(c=a.value[0],u=a.value[1],c&&typeof c=="object")l||(l=new bh),xh(l,c);else if(f=_h(e,c),typeof f=="undefined"&&!Vw(e,c)||!Nn(u,f,r,n)){if(r.strict||!pG(t,e,c,u,r,n))return!1;l||(l=new bh),xh(l,c)}if(l){for(;(o=s.next())&&!o.done;)if(c=o.value[0],f=o.value[1],c&&typeof c=="object"){if(!LP(l,t,c,f,r,n))return!1}else if(!r.strict&&(!t.has(c)||!Nn(_h(t,c),f,r,n))&&!LP(l,t,c,f,BP({},r,{strict:!1}),n))return!1;return yh(l)===0}return!0}function wG(t,e,r,n){var i,s;if(typeof t!=typeof e||t==null||e==null||OP(t)!==OP(e)||_P(t)!==_P(e))return!1;var a=xP(t),o=xP(e);if(a!==o)return!1;var l=t instanceof Error,c=e instanceof Error;if(l!==c||(l||c)&&(t.name!==e.name||t.message!==e.message))return!1;var u=kP(t),f=kP(e);if(u!==f||(u||f)&&(t.source!==e.source||yP(t)!==yP(e)))return!1;var d=EP(t),h=EP(e);if(d!==h||(d||h)&&FP(t)!==FP(e)||r.strict&&zw&&zw(t)!==zw(e))return!1;var m=RP(t),g=RP(e);if(m!==g)return!1;if(m||g){if(t.length!==e.length)return!1;for(i=0;i=0;i--)if(A[i]!=y[i])return!1;for(i=A.length-1;i>=0;i--)if(s=A[i],!Nn(t[s],e[s],r,n))return!1;var S=PP(t),_=PP(e);return S!==_?!1:S==="Set"||_==="Set"?gG(t,e,r,n):S==="Map"?vG(t,e,r,n):!0}GP.exports=function(e,r,n){return Nn(e,r,n,hG())}});var nR=I((RJ,rR)=>{p();rR.exports=function(t,e){var r=t,n=e,i=r.length,s=n.length,a=!1,o=i+1,l=[],c=[],u,f,d=function(){i>=s&&(u=r,f=i,r=n,n=u,i=s,s=f,a=!0,o=i+1)},h=function(g,v,w,b,k){return{startX:g,startY:v,endX:w,endY:b,r:k}},m=function(g,v,w){var b,k,x,E,A;for(v>w?b=l[g-1+o]:b=l[g+1+o],A=x=Math.max(v,w),E=k=x-g;k=g+1;--E)w[E+o]=m(E,w[E-1+o]+1,w[E+1+o]);w[g+o]=m(g,w[g-1+o]+1,w[g+1+o])}while(w[g+o]!==s);for(ed=g+2*b,k=l[g+o],A=i,y=s,S=[];k!==-1;){let _=c[k];(i!=_.endX||s!=_.endY)&&S.push({file1:[a?_.endY:_.endX,a?y-_.endY:A-_.endX],file2:[a?_.endX:_.endY,a?A-_.endX:y-_.endY]}),A=_.startX,y=_.startY,k=c[k].r}return(A!=0||y!=0)&&S.push({file1:[0,a?y:A],file2:[0,a?A:y]}),S.reverse(),S}}}});var aR=I((IJ,sR)=>{p();var iR=nR();function bG(t,e,r){var n,i=new iR(e,t).compose(),s=new iR(e,r).compose(),a=[];function o(B,H){a.push([B.file1[0],H,B.file1[1],B.file2[0],B.file2[1]])}for(n=0;nc&&(l.push([1,c,B-c]),c=B)}for(var f=0;fg)break;g=Math.max(g,w+v[2]),f++}if(u(m),d==f)h[4]>0&&l.push([h[1],h[3],h[4]]);else{var b={0:[t.length,-1,e.length,-1],2:[r.length,-1,e.length,-1]};for(n=d;n<=f;n++){h=a[n];var k=h[1],x=b[k],E=h[0],A=E+h[2],y=h[3],S=y+h[4];x[0]=Math.min(y,x[0]),x[1]=Math.max(S,x[1]),x[2]=Math.min(E,x[2]),x[3]=Math.max(A,x[3])}var _=b[0][0]+(m-b[0][2]),C=b[0][1]+(g-b[0][3]),P=b[2][0]+(m-b[2][2]),N=b[2][1]+(g-b[2][3]);l.push([-1,_,C-_,m,g-m,P,N-P])}c=g}return u(e.length),l}function _G(t,e,r){var n=[],i=[t,e,r],s=bG(t,e,r),a=[];function o(){a.length&&n.push({ok:a}),a=[]}function l(h){for(var m=0;m{p();var yl=1e3,bl=yl*60,_l=bl*60,$a=_l*24,EG=$a*7,kG=$a*365.25;lR.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return AG(t);if(r==="number"&&isFinite(t))return e.long?TG(t):CG(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function AG(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*kG;case"weeks":case"week":case"w":return r*EG;case"days":case"day":case"d":return r*$a;case"hours":case"hour":case"hrs":case"hr":case"h":return r*_l;case"minutes":case"minute":case"mins":case"min":case"m":return r*bl;case"seconds":case"second":case"secs":case"sec":case"s":return r*yl;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function CG(t){var e=Math.abs(t);return e>=$a?Math.round(t/$a)+"d":e>=_l?Math.round(t/_l)+"h":e>=bl?Math.round(t/bl)+"m":e>=yl?Math.round(t/yl)+"s":t+"ms"}function TG(t){var e=Math.abs(t);return e>=$a?Ch(t,e,$a,"day"):e>=_l?Ch(t,e,_l,"hour"):e>=bl?Ch(t,e,bl,"minute"):e>=yl?Ch(t,e,yl,"second"):t+" ms"}function Ch(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var fR=I((qJ,uR)=>{p();function PG(t){r.debug=r,r.default=r,r.coerce=l,r.disable=a,r.enable=i,r.enabled=o,r.humanize=cR(),r.destroy=c,Object.keys(t).forEach(u=>{r[u]=t[u]}),r.names=[],r.skips=[],r.formatters={};function e(u){let f=0;for(let d=0;d{if(A==="%%")return"%";x++;let S=r.formatters[y];if(typeof S=="function"){let _=v[x];A=S.call(w,_),v.splice(x,1),x--}return A}),r.formatArgs.call(w,v),(w.log||r.log).apply(w,v)}return g.namespace=u,g.useColors=r.useColors(),g.color=r.selectColor(u),g.extend=n,g.destroy=r.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,m=r.enabled(u)),m),set:v=>{d=v}}),typeof r.init=="function"&&r.init(g),g}function n(u,f){let d=r(this.namespace+(typeof f=="undefined"?":":f)+u);return d.log=this.log,d}function i(u){r.save(u),r.namespaces=u,r.names=[],r.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let d of f)d[0]==="-"?r.skips.push(d.slice(1)):r.names.push(d)}function s(u,f){let d=0,h=0,m=-1,g=0;for(;d"-"+f)].join(",");return r.enable(""),u}function o(u){for(let f of r.skips)if(s(u,f))return!1;for(let f of r.names)if(s(u,f))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}uR.exports=PG});var Ph=I((Cr,Th)=>{p();Cr.formatArgs=$G;Cr.save=IG;Cr.load=FG;Cr.useColors=RG;Cr.storage=OG();Cr.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Cr.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function RG(){if(typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function $G(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Th.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}Cr.log=console.debug||console.log||(()=>{});function IG(t){try{t?Cr.storage.setItem("debug",t):Cr.storage.removeItem("debug")}catch(e){}}function FG(){let t;try{t=Cr.storage.getItem("debug")||Cr.storage.getItem("DEBUG")}catch(e){}return!t&&typeof process!="undefined"&&"env"in process&&(t=process.env.DEBUG),t}function OG(){try{return localStorage}catch(t){}}Th.exports=fR()(Cr);var{formatters:MG}=Th.exports;MG.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var dR=I(Kr=>{"use strict";p();var DG=Kr&&Kr.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Kr,"__esModule",{value:!0});var LG=require("fs"),NG=DG(Ph()),xl=NG.default("@kwsites/file-exists");function BG(t,e,r){xl("checking %s",t);try{let n=LG.statSync(t);return n.isFile()&&e?(xl("[OK] path represents a file"),!0):n.isDirectory()&&r?(xl("[OK] path represents a directory"),!0):(xl("[FAIL] path represents something other than a file or directory"),!1)}catch(n){if(n.code==="ENOENT")return xl("[FAIL] path is not accessible: %o",n),!1;throw xl("[FATAL] %o",n),n}}function HG(t,e=Kr.READABLE){return BG(t,(e&Kr.FILE)>0,(e&Kr.FOLDER)>0)}Kr.exists=HG;Kr.FILE=1;Kr.FOLDER=2;Kr.READABLE=Kr.FILE+Kr.FOLDER});var hR=I(Rh=>{"use strict";p();function UG(t){for(var e in t)Rh.hasOwnProperty(e)||(Rh[e]=t[e])}Object.defineProperty(Rh,"__esModule",{value:!0});UG(dR())});var t0=I(Ia=>{"use strict";p();Object.defineProperty(Ia,"__esModule",{value:!0});Ia.createDeferred=Ia.deferred=void 0;function e0(){let t,e,r="pending";return{promise:new Promise((i,s)=>{t=i,e=s}),done(i){r==="pending"&&(r="resolved",t(i))},fail(i){r==="pending"&&(r="rejected",e(i))},get fulfilled(){return r!=="pending"},get status(){return r}}}Ia.deferred=e0;Ia.createDeferred=e0;Ia.default=e0});var V0=I((exports,module)=>{p();(function(){"use strict";var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&typeof module=="object"&&module.exports,AMD=typeof define=="function"&&define.amd,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer!="undefined",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(t){return Object.prototype.toString.call(t)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(t){return typeof t=="object"&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t,e){return function(r){return new Sha256(e,!0).update(r)[t]()}},createMethod=function(t){var e=createOutputMethod("hex",t);NODE_JS&&(e=nodeWrap(e,t)),e.create=function(){return new Sha256(t)},e.update=function(i){return e.create().update(i)};for(var r=0;r>2]|=t[i]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|n&63)<=57344?(o[s>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|n&63)<=64?(this.block=o[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,e=this.lastByteIndex;t[16]=this.block,t[e>>2]|=EXTRA[e&3],this.block=t[16],e>=56&&(this.hashed||this.hash(),t[0]=this.block,t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.hBytes<<3|this.bytes>>>29,t[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var t=this.h0,e=this.h1,r=this.h2,n=this.h3,i=this.h4,s=this.h5,a=this.h6,o=this.h7,l=this.blocks,c,u,f,d,h,m,g,v,w,b,k;for(c=16;c<64;++c)h=l[c-15],u=(h>>>7|h<<25)^(h>>>18|h<<14)^h>>>3,h=l[c-2],f=(h>>>17|h<<15)^(h>>>19|h<<13)^h>>>10,l[c]=l[c-16]+u+l[c-7]+f<<0;for(k=e&r,c=0;c<64;c+=4)this.first?(this.is224?(v=300032,h=l[0]-1413257819,o=h-150054599<<0,n=h+24177077<<0):(v=704751109,h=l[0]-210244248,o=h-1521486534<<0,n=h+143694565<<0),this.first=!1):(u=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),f=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),v=t&e,d=v^t&r^k,g=i&s^~i&a,h=o+f+g+K[c]+l[c],m=u+d,o=n+h<<0,n=h+m<<0),u=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),f=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),w=n&t,d=w^n&e^v,g=o&i^~o&s,h=a+f+g+K[c+1]+l[c+1],m=u+d,a=r+h<<0,r=h+m<<0,u=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),f=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),b=r&n,d=b^r&t^w,g=a&o^~a&i,h=s+f+g+K[c+2]+l[c+2],m=u+d,s=e+h<<0,e=h+m<<0,u=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),f=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),k=e&r,d=k^e&n^b,g=s&a^~s&o,h=i+f+g+K[c+3]+l[c+3],m=u+d,i=t+h<<0,t=h+m<<0;this.h0=this.h0+t<<0,this.h1=this.h1+e<<0,this.h2=this.h2+r<<0,this.h3=this.h3+n<<0,this.h4=this.h4+i<<0,this.h5=this.h5+s<<0,this.h6=this.h6+a<<0,this.h7=this.h7+o<<0},Sha256.prototype.hex=function(){this.finalize();var t=this.h0,e=this.h1,r=this.h2,n=this.h3,i=this.h4,s=this.h5,a=this.h6,o=this.h7,l=HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[i&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15];return this.is224||(l+=HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15]),l},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var t=this.h0,e=this.h1,r=this.h2,n=this.h3,i=this.h4,s=this.h5,a=this.h6,o=this.h7,l=[t>>24&255,t>>16&255,t>>8&255,t&255,e>>24&255,e>>16&255,e>>8&255,e&255,r>>24&255,r>>16&255,r>>8&255,r&255,n>>24&255,n>>16&255,n>>8&255,n&255,i>>24&255,i>>16&255,i>>8&255,i&255,s>>24&255,s>>16&255,s>>8&255,s&255,a>>24&255,a>>16&255,a>>8&255,a&255];return this.is224||l.push(o>>24&255,o>>16&255,o>>8&255,o&255),l},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(this.is224?28:32),e=new DataView(t);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),t};function HmacSha256(t,e,r){var n,i=typeof t;if(i==="string"){var s=[],a=t.length,o=0,l;for(n=0;n>6,s[o++]=128|l&63):l<55296||l>=57344?(s[o++]=224|l>>12,s[o++]=128|l>>6&63,s[o++]=128|l&63):(l=65536+((l&1023)<<10|t.charCodeAt(++n)&1023),s[o++]=240|l>>18,s[o++]=128|l>>12&63,s[o++]=128|l>>6&63,s[o++]=128|l&63);t=s}else if(i==="object"){if(t===null)throw new Error(ERROR);if(ARRAY_BUFFER&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!Array.isArray(t)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(t)))throw new Error(ERROR)}else throw new Error(ERROR);t.length>64&&(t=new Sha256(e,!0).update(t).array());var c=[],u=[];for(n=0;n<64;++n){var f=t[n]||0;c[n]=92^f,u[n]=54^f}Sha256.call(this,e,r),this.update(u),this.oKeyPad=c,this.inner=!0,this.sharedMemory=r}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(t),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224,AMD&&define(function(){return exports}))})()});var OO=I(Ay=>{p();(function(t){var e=/\S/,r=/\"/g,n=/\n/g,i=/\r/g,s=/\\/g,a=/\u2028/,o=/\u2029/;t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(S,_){var C=S.length,P=0,N=1,B=2,H=P,ce=null,Pe=null,ve="",ie=[],xe=!1,we=0,W=0,X="{{",q="}}";function De(){ve.length>0&&(ie.push({tag:"_t",text:new String(ve)}),ve="")}function ar(){for(var kt=!0,At=W;At"&&(Z.indent=ie[je].text.toString()),ie.splice(je,1));else At||ie.push({tag:` +`});xe=!1,W=ie.length}function Ie(kt,At){var je="="+q,Z=kt.indexOf(je,At),M=c(kt.substring(kt.indexOf("=",At)+1,Z)).split(" ");return X=M[0],q=M[M.length-1],Z+je.length-1}for(_&&(_=_.split(" "),X=_[0],q=_[1]),we=0;we0;){if(H=y.shift(),B&&B.tag=="<"&&!(H.tag in f))throw new Error("Illegal content in < super tag.");if(t.tags[H.tag]<=t.tags.$||h(H,C))_.push(H),H.nodes=d(y,H.tag,_,C);else if(H.tag=="/"){if(_.length===0)throw new Error("Closing tag without opener: /"+H.n);if(N=_.pop(),H.n!=N.n&&!m(H.n,N.n,C))throw new Error("Nesting error: "+N.n+" vs. "+H.n);return N.end=H.i,P}else H.tag==` +`&&(H.last=y.length==0||y[0].tag==` +`);P.push(H)}if(_.length>0)throw new Error("missing closing tag: "+_.pop().n);return P}function h(y,S){for(var _=0,C=S.length;_":x,"<":function(y,S){var _={partials:{},code:"",subs:{},inPartial:!0};t.walk(y.nodes,_);var C=S.partials[x(y,S)];C.subs=_.subs,C.partials=_.partials},$:function(y,S){var _={subs:{},code:"",partials:S.partials,prefix:y.n};t.walk(y.nodes,_),S.subs[y.n]=_.code,S.inPartial||(S.code+='t.sub("'+b(y.n)+'",c,p,i);')},"\n":function(y,S){S.code+=A('"\\n"'+(y.last?"":" + i"))},_v:function(y,S){S.code+="t.b(t.v(t."+k(y.n)+'("'+b(y.n)+'",c,p,0)));'},_t:function(y,S){S.code+=A('"'+b(y.text)+'"')},"{":E,"&":E};function E(y,S){S.code+="t.b(t.t(t."+k(y.n)+'("'+b(y.n)+'",c,p,0)));'}function A(y){return"t.b("+y+");"}t.walk=function(y,S){for(var _,C=0,P=y.length;C{p();var PV={};(function(t){t.Template=function(d,h,m,g){d=d||{},this.r=d.code||this.r,this.c=m,this.options=g||{},this.text=h||"",this.partials=d.partials||{},this.subs=d.subs||{},this.buf=""},t.Template.prototype={r:function(d,h,m){return""},v:u,t:c,render:function(h,m,g){return this.ri([h],m||{},g)},ri:function(d,h,m){return this.r(d,h,m)},ep:function(d,h){var m=this.partials[d],g=h[m.name];if(m.instance&&m.base==g)return m.instance;if(typeof g=="string"){if(!this.c)throw new Error("No compiler available.");g=this.c.compile(g,this.options)}if(!g)return null;if(this.partials[d].base=g,m.subs){h.stackText||(h.stackText={});for(key in m.subs)h.stackText[key]||(h.stackText[key]=this.activeSub!==void 0&&h.stackText[this.activeSub]?h.stackText[this.activeSub]:this.text);g=r(g,m.subs,m.partials,this.stackSubs,this.stackPartials,h.stackText)}return this.partials[d].instance=g,g},rp:function(d,h,m,g){var v=this.ep(d,m);return v?v.ri(h,m,g):""},rs:function(d,h,m){var g=d[d.length-1];if(!f(g)){m(d,h,this);return}for(var v=0;v=0;x--)if(w=h[x],v=e(d,w,k),v!==void 0){b=!0;break}return b?(!g&&typeof v=="function"&&(v=this.mv(v,h,m)),v):g?!1:""},ls:function(d,h,m,g,v,w){var b=this.options.delimiters;return this.options.delimiters=w,this.b(this.ct(c(d.call(h,v,m)),h,g)),this.options.delimiters=b,!1},ct:function(d,h,m){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(d,this.options).render(h,m)},b:function(d){this.buf+=d},fl:function(){var d=this.buf;return this.buf="",d},ms:function(d,h,m,g,v,w,b){var k,x=h[h.length-1],E=d.call(x);return typeof E=="function"?g?!0:(k=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(E,x,h,m,k.substring(v,w),b)):E},mv:function(d,h,m){var g=h[h.length-1],v=d.call(g);return typeof v=="function"?this.ct(c(v.call(g)),g,m):v},sub:function(d,h,m,g){var v=this.subs[d];v&&(this.activeSub=d,v(h,m,this,g),this.activeSub=!1)}};function e(d,h,m){var g;return h&&typeof h=="object"&&(h[d]!==void 0?g=h[d]:m&&h.get&&typeof h.get=="function"&&(g=h.get(d))),g}function r(d,h,m,g,v,w){function b(){}b.prototype=d;function k(){}k.prototype=d.subs;var x,E=new b;E.subs=new k,E.subsText={},E.buf="",g=g||{},E.stackSubs=g,E.subsText=w;for(x in h)g[x]||(g[x]=h[x]);for(x in g)E.subs[x]=g[x];v=v||{},E.stackPartials=v;for(x in m)v[x]||(v[x]=m[x]);for(x in v)E.partials[x]=v[x];return E}var n=/&/g,i=//g,a=/\'/g,o=/\"/g,l=/[&<>\"\']/;function c(d){return String(d==null?"":d)}function u(d){return d=c(d),l.test(d)?d.replace(n,"&").replace(i,"<").replace(s,">").replace(a,"'").replace(o,"""):d}var f=Array.isArray||function(d){return Object.prototype.toString.call(d)==="[object Array]"}})(typeof Cy!="undefined"?Cy:PV)});var Ty=I((vne,DO)=>{p();var kp=OO();kp.Template=MO().Template;kp.template=kp.Template;DO.exports=kp});var BO=I(En=>{"use strict";p();Object.defineProperty(En,"__esModule",{value:!0});En.ColorSchemeType=En.DiffStyleType=En.LineMatchingType=En.OutputFormatType=En.LineType=void 0;var LO;(function(t){t.INSERT="insert",t.DELETE="delete",t.CONTEXT="context"})(LO||(En.LineType=LO={}));En.OutputFormatType={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"};En.LineMatchingType={LINES:"lines",WORDS:"words",NONE:"none"};En.DiffStyleType={WORD:"word",CHAR:"char"};var NO;(function(t){t.AUTO="auto",t.DARK="dark",t.LIGHT="light"})(NO||(En.ColorSchemeType=NO={}))});var H7={};eL(H7,{default:()=>Pm});module.exports=tL(H7);p();var ID=Ct(Pv()),be=require("obsidian"),FD=Ct(require("path")),Rm=Ct(require("fs/promises"));p();var Ln={};p();var Gd=class{constructor(e){this.plugin=e;this.tasks=[]}addTask(e,r){this.tasks.push({task:e,onFinished:r!=null?r:()=>{}}),this.tasks.length===1&&this.handleTask()}handleTask(){if(this.tasks.length>0){let e=this.tasks[0];e.task().then(r=>{e.onFinished(r),this.tasks.shift(),this.handleTask()},r=>{this.plugin.displayError(r),e.onFinished(void 0),this.tasks.shift(),this.handleTask()})}}clear(){this.tasks=[]}};p();var U=require("obsidian");p();var KA=require("obsidian"),jd="YYYY-MM-DD",Rv=`${jd} HH:mm`,$v=`${jd} HH:mm:ss`,qd=40,ol="conflict-files-obsidian-git.md",et={commitMessage:"vault backup: {{date}}",autoCommitMessage:"vault backup: {{date}}",commitMessageScript:"",commitDateFormat:$v,autoSaveInterval:0,autoPushInterval:0,autoPullInterval:0,autoPullOnBoot:!1,autoCommitOnlyStaged:!1,disablePush:!1,pullBeforePush:!0,disablePopups:!1,showErrorNotices:!0,disablePopupsForNoChanges:!1,listChangedFilesInMessageBody:!1,showStatusBar:!0,updateSubmodules:!1,syncMethod:"merge",mergeStrategy:"none",customMessageOnAutoBackup:!1,autoBackupAfterFileChange:!1,treeStructure:!1,refreshSourceControl:KA.Platform.isDesktopApp,basePath:"",differentIntervalCommitAndPush:!1,changedFilesInStatusBar:!1,showedMobileNotice:!1,refreshSourceControlTimer:7e3,showBranchStatusBar:!0,setLastSaveToLastCommit:!1,submoduleRecurseCheckout:!1,gitDir:"",showFileMenu:!0,authorInHistoryView:"hide",dateInHistoryView:!1,diffStyle:"split",hunks:{showSigns:!1,hunkCommands:!1,statusBar:"disabled"},lineAuthor:{show:!1,followMovement:"inactive",authorDisplay:"initials",showCommitHash:!1,dateTimeFormatOptions:"date",dateTimeFormatCustomString:Rv,dateTimeTimezone:"viewer-local",coloringMaxAge:"1y",colorNew:{r:255,g:150,b:150},colorOld:{r:120,g:160,b:255},textColorCss:"var(--text-muted)",ignoreWhitespace:!1,gutterSpacingFallbackLength:5}},jt={type:"git-view",name:"Source Control",icon:"git-pull-request"},gn={type:"git-history-view",name:"History",icon:"history"},Ns={type:"split-diff-view",name:"Diff view",icon:"diff"},Bs={type:"diff-view",name:"Diff View",icon:"git-pull-request"},Wd="C:\\Program Files\\Git\\cmd\\git.exe",zd=".git_credentials_input",Ta="obsidian_askpass.sh",QA=`#!/bin/sh PROMPT="$1" TEMP_FILE="$OBSIDIAN_GIT_CREDENTIALS_INPUT" @@ -128,51 +128,51 @@ done RESPONSE=$(cat "$TEMP_FILE.response") echo "$RESPONSE" -`,qA=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"];p();p();p();var un=class{diff(e,r,i={}){let n;typeof i=="function"?(n=i,i={}):"callback"in i&&(n=i.callback);let s=this.castInput(e,i),a=this.castInput(r,i),o=this.removeEmpty(this.tokenize(s,i)),l=this.removeEmpty(this.tokenize(a,i));return this.diffWithOptionsObj(o,l,i,n)}diffWithOptionsObj(e,r,i,n){var s;let a=b=>{if(b=this.postProcess(b,i),n){setTimeout(function(){n(b)},0);return}else return b},o=r.length,l=e.length,c=1,u=o+l;i.maxEditLength!=null&&(u=Math.min(u,i.maxEditLength));let f=(s=i.timeout)!==null&&s!==void 0?s:1/0,d=Date.now()+f,h=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(h[0],r,e,0,i);if(h[0].oldPos+1>=l&&m+1>=o)return a(this.buildValues(h[0].lastComponent,r,e));let g=-1/0,v=1/0,w=()=>{for(let b=Math.max(g,-c);b<=Math.min(v,c);b+=2){let k,x=h[b-1],E=h[b+1];x&&(h[b-1]=void 0);let A=!1;if(E){let S=E.oldPos-b;A=E&&0<=S&&S=l&&m+1>=o)return a(this.buildValues(k.lastComponent,r,e))||!0;h[b]=k,k.oldPos+1>=l&&(v=Math.min(v,b-1)),m+1>=o&&(g=Math.max(g,b+1))}c++};if(n)(function b(){setTimeout(function(){if(c>u||Date.now()>d)return n(void 0);w()||b()},0)})();else for(;c<=u&&Date.now()<=d;){let b=w();if(b)return b}}addToPath(e,r,i,n,s){let a=e.lastComponent;return a&&!s.oneChangePerToken&&a.added===r&&a.removed===i?{oldPos:e.oldPos+n,lastComponent:{count:a.count+1,added:r,removed:i,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+n,lastComponent:{count:1,added:r,removed:i,previousComponent:a}}}extractCommon(e,r,i,n,s){let a=r.length,o=i.length,l=e.oldPos,c=l-n,u=0;for(;c+1d.length?m:d}),u.value=this.join(f)}else u.value=this.join(r.slice(l,l+u.count));l+=u.count,u.added||(c+=u.count)}}return n}};p();var Av=class extends un{},zA=new Av;function Tv(t,e,r){return zA.diff(t,e,r)}p();p();function Cv(t,e){let r;for(r=0;re.length&&(r=t.length-e.length);let i=e.length;t.length0&&e[a]!=e[s];)s=n[s];e[a]==e[s]&&s++}s=0;for(let a=r;a0&&t[a]!=e[s];)s=n[s];t[a]==e[s]&&s++}return s}function ll(t){let e;for(e=t.length-1;e>=0&&t[e].match(/\s/);e--);return t.substring(e+1)}function zn(t){let e=t.match(/^\s*/);return e?e[0]:""}var jd="a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",O6=new RegExp(`[${jd}]+|\\s+|[^${jd}]`,"ug"),$v=class extends un{equals(e,r,i){return i.ignoreCase&&(e=e.toLowerCase(),r=r.toLowerCase()),e.trim()===r.trim()}tokenize(e,r={}){let i;if(r.intlSegmenter){let a=r.intlSegmenter;if(a.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');i=[];for(let o of Array.from(a.segment(e))){let l=o.segment;i.length&&/\s/.test(i[i.length-1])&&/\s/.test(l)?i[i.length-1]+=l:i.push(l)}}else i=e.match(O6)||[];let n=[],s=null;return i.forEach(a=>{/\s/.test(a)?s==null?n.push(a):n.push(n.pop()+a):s!=null&&/\s/.test(s)?n[n.length-1]==s?n.push(n.pop()+a):n.push(s+a):n.push(a),s=a}),n}join(e){return e.map((r,i)=>i==0?r:r.replace(/^\s+/,"")).join("")}postProcess(e,r){if(!e||r.oneChangePerToken)return e;let i=null,n=null,s=null;return e.forEach(a=>{a.added?n=a:a.removed?s=a:((n||s)&&VA(i,s,n,a),i=a,n=null,s=null)}),(n||s)&&VA(i,s,n,null),e}},M6=new $v;function VA(t,e,r,i){if(e&&r){let n=zn(e.value),s=ll(e.value),a=zn(r.value),o=ll(r.value);if(t){let l=Cv(n,a);t.value=Gd(t.value,a,l),e.value=ol(e.value,l),r.value=ol(r.value,l)}if(i){let l=Pv(s,o);i.value=Ud(i.value,o,l),e.value=lu(e.value,l),r.value=lu(r.value,l)}}else if(r){if(t){let n=zn(r.value);r.value=r.value.substring(n.length)}if(i){let n=zn(i.value);i.value=i.value.substring(n.length)}}else if(t&&i){let n=zn(i.value),s=zn(e.value),a=ll(e.value),o=Cv(n,s);e.value=ol(e.value,o);let l=Pv(ol(n,o),a);e.value=lu(e.value,l),i.value=Ud(i.value,n,l),t.value=Gd(t.value,n,n.slice(0,n.length-l.length))}else if(i){let n=zn(i.value),s=ll(e.value),a=Rv(s,n);e.value=lu(e.value,a)}else if(t){let n=ll(t.value),s=zn(e.value),a=Rv(n,s);e.value=ol(e.value,a)}}var Fv=class extends un{tokenize(e){let r=new RegExp(`(\\r?\\n)|[${jd}]+|[^\\S\\n\\r]+|[^${jd}]`,"ug");return e.match(r)||[]}},WA=new Fv;function Iv(t,e,r){return WA.diff(t,e,r)}p();var Ov=class extends un{constructor(){super(...arguments),this.tokenize=L6}equals(e,r,i){return i.ignoreWhitespace?((!i.newlineIsToken||!e.includes(` -`))&&(e=e.trim()),(!i.newlineIsToken||!r.includes(` -`))&&(r=r.trim())):i.ignoreNewlineAtEof&&!i.newlineIsToken&&(e.endsWith(` +`,JA=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"];p();p();p();var hi=class{diff(e,r,n={}){let i;typeof n=="function"?(i=n,n={}):"callback"in n&&(i=n.callback);let s=this.castInput(e,n),a=this.castInput(r,n),o=this.removeEmpty(this.tokenize(s,n)),l=this.removeEmpty(this.tokenize(a,n));return this.diffWithOptionsObj(o,l,n,i)}diffWithOptionsObj(e,r,n,i){var s;let a=b=>{if(b=this.postProcess(b,n),i){setTimeout(function(){i(b)},0);return}else return b},o=r.length,l=e.length,c=1,u=o+l;n.maxEditLength!=null&&(u=Math.min(u,n.maxEditLength));let f=(s=n.timeout)!==null&&s!==void 0?s:1/0,d=Date.now()+f,h=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(h[0],r,e,0,n);if(h[0].oldPos+1>=l&&m+1>=o)return a(this.buildValues(h[0].lastComponent,r,e));let g=-1/0,v=1/0,w=()=>{for(let b=Math.max(g,-c);b<=Math.min(v,c);b+=2){let k,x=h[b-1],E=h[b+1];x&&(h[b-1]=void 0);let A=!1;if(E){let S=E.oldPos-b;A=E&&0<=S&&S=l&&m+1>=o)return a(this.buildValues(k.lastComponent,r,e))||!0;h[b]=k,k.oldPos+1>=l&&(v=Math.min(v,b-1)),m+1>=o&&(g=Math.max(g,b+1))}c++};if(i)(function b(){setTimeout(function(){if(c>u||Date.now()>d)return i(void 0);w()||b()},0)})();else for(;c<=u&&Date.now()<=d;){let b=w();if(b)return b}}addToPath(e,r,n,i,s){let a=e.lastComponent;return a&&!s.oneChangePerToken&&a.added===r&&a.removed===n?{oldPos:e.oldPos+i,lastComponent:{count:a.count+1,added:r,removed:n,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+i,lastComponent:{count:1,added:r,removed:n,previousComponent:a}}}extractCommon(e,r,n,i,s){let a=r.length,o=n.length,l=e.oldPos,c=l-i,u=0;for(;c+1d.length?m:d}),u.value=this.join(f)}else u.value=this.join(r.slice(l,l+u.count));l+=u.count,u.added||(c+=u.count)}}return i}};p();var Iv=class extends hi{},eC=new Iv;function Fv(t,e,r){return eC.diff(t,e,r)}p();p();function Ov(t,e){let r;for(r=0;re.length&&(r=t.length-e.length);let n=e.length;t.length0&&e[a]!=e[s];)s=i[s];e[a]==e[s]&&s++}s=0;for(let a=r;a0&&t[a]!=e[s];)s=i[s];t[a]==e[s]&&s++}return s}function cl(t){let e;for(e=t.length-1;e>=0&&t[e].match(/\s/);e--);return t.substring(e+1)}function Vi(t){let e=t.match(/^\s*/);return e?e[0]:""}var Xd="a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",X6=new RegExp(`[${Xd}]+|\\s+|[^${Xd}]`,"ug"),Lv=class extends hi{equals(e,r,n){return n.ignoreCase&&(e=e.toLowerCase(),r=r.toLowerCase()),e.trim()===r.trim()}tokenize(e,r={}){let n;if(r.intlSegmenter){let a=r.intlSegmenter;if(a.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');n=[];for(let o of Array.from(a.segment(e))){let l=o.segment;n.length&&/\s/.test(n[n.length-1])&&/\s/.test(l)?n[n.length-1]+=l:n.push(l)}}else n=e.match(X6)||[];let i=[],s=null;return n.forEach(a=>{/\s/.test(a)?s==null?i.push(a):i.push(i.pop()+a):s!=null&&/\s/.test(s)?i[i.length-1]==s?i.push(i.pop()+a):i.push(s+a):i.push(a),s=a}),i}join(e){return e.map((r,n)=>n==0?r:r.replace(/^\s+/,"")).join("")}postProcess(e,r){if(!e||r.oneChangePerToken)return e;let n=null,i=null,s=null;return e.forEach(a=>{a.added?i=a:a.removed?s=a:((i||s)&&tC(n,s,i,a),n=a,i=null,s=null)}),(i||s)&&tC(n,s,i,null),e}},Z6=new Lv;function tC(t,e,r,n){if(e&&r){let i=Vi(e.value),s=cl(e.value),a=Vi(r.value),o=cl(r.value);if(t){let l=Ov(i,a);t.value=Yd(t.value,a,l),e.value=ll(e.value,l),r.value=ll(r.value,l)}if(n){let l=Mv(s,o);n.value=Vd(n.value,o,l),e.value=pu(e.value,l),r.value=pu(r.value,l)}}else if(r){if(t){let i=Vi(r.value);r.value=r.value.substring(i.length)}if(n){let i=Vi(n.value);n.value=n.value.substring(i.length)}}else if(t&&n){let i=Vi(n.value),s=Vi(e.value),a=cl(e.value),o=Ov(i,s);e.value=ll(e.value,o);let l=Mv(ll(i,o),a);e.value=pu(e.value,l),n.value=Vd(n.value,i,l),t.value=Yd(t.value,i,i.slice(0,i.length-l.length))}else if(n){let i=Vi(n.value),s=cl(e.value),a=Dv(s,i);e.value=pu(e.value,a)}else if(t){let i=cl(t.value),s=Vi(e.value),a=Dv(i,s);e.value=ll(e.value,a)}}var Nv=class extends hi{tokenize(e){let r=new RegExp(`(\\r?\\n)|[${Xd}]+|[^\\S\\n\\r]+|[^${Xd}]`,"ug");return e.match(r)||[]}},rC=new Nv;function Bv(t,e,r){return rC.diff(t,e,r)}p();var Hv=class extends hi{constructor(){super(...arguments),this.tokenize=Q6}equals(e,r,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes(` +`))&&(e=e.trim()),(!n.newlineIsToken||!r.includes(` +`))&&(r=r.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith(` `)&&(e=e.slice(0,-1)),r.endsWith(` -`)&&(r=r.slice(0,-1))),super.equals(e,r,i)}},D6=new Ov;function Mv(t,e,r){return D6.diff(t,e,r)}function L6(t,e){e.stripTrailingCr&&(t=t.replace(/\r\n/g,` -`));let r=[],i=t.split(/(\n|\r\n)/);i[i.length-1]||i.pop();for(let n=0;n{let d=c(f);u(d)}}))}else return c(Mv(r,i,o));function c(u){if(!u)return;u.push({value:"",lines:[]});function f(b){return b.map(function(k){return" "+k})}let d=[],h=0,m=0,g=[],v=1,w=1;for(let b=0;b0?f(E.lines.slice(-l)):[],h-=g.length,m-=g.length)}for(let E of x)g.push((k.added?"+":"-")+E);k.added?w+=x.length:v+=x.length}else{if(h)if(x.length<=l*2&&b1&&!e.includeFileHeaders)throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return t.map(i=>qd(i,e)).join(` -`)}let r=[];e.includeIndex&&t.oldFileName==t.newFileName&&r.push("Index: "+t.oldFileName),e.includeUnderline&&r.push("==================================================================="),e.includeFileHeaders&&(r.push("--- "+t.oldFileName+(typeof t.oldHeader=="undefined"?"":" "+t.oldHeader)),r.push("+++ "+t.newFileName+(typeof t.newHeader=="undefined"?"":" "+t.newHeader)));for(let i=0;i{let d=c(f);u(d)}}))}else return c(Uv(r,n,o));function c(u){if(!u)return;u.push({value:"",lines:[]});function f(b){return b.map(function(k){return" "+k})}let d=[],h=0,m=0,g=[],v=1,w=1;for(let b=0;b0?f(E.lines.slice(-l)):[],h-=g.length,m-=g.length)}for(let E of x)g.push((k.added?"+":"-")+E);k.added?w+=x.length:v+=x.length}else{if(h)if(x.length<=l*2&&b1&&!e.includeFileHeaders)throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return t.map(n=>Zd(n,e)).join(` +`)}let r=[];e.includeIndex&&t.oldFileName==t.newFileName&&r.push("Index: "+t.oldFileName),e.includeUnderline&&r.push("==================================================================="),e.includeFileHeaders&&(r.push("--- "+t.oldFileName+(typeof t.oldHeader=="undefined"?"":" "+t.oldHeader)),r.push("+++ "+t.newFileName+(typeof t.newHeader=="undefined"?"":" "+t.newHeader)));for(let n=0;n{o(l?qd(l,a.headerOptions):void 0)}}))}else{let o=Dv(t,e,r,i,n,s,a);return o?qd(o,a==null?void 0:a.headerOptions):void 0}}function cu(t,e,r,i,n,s){return XA(t,t,e,r,i,n,s)}function B6(t){let e=t.endsWith(` +`}function iC(t,e,r,n,i,s,a){if(typeof a=="function"&&(a={callback:a}),a!=null&&a.callback){let{callback:o}=a;Gv(t,e,r,n,i,s,Object.assign(Object.assign({},a),{callback:l=>{o(l?Zd(l,a.headerOptions):void 0)}}))}else{let o=Gv(t,e,r,n,i,s,a);return o?Zd(o,a==null?void 0:a.headerOptions):void 0}}function mu(t,e,r,n,i,s){return iC(t,t,e,r,n,i,s)}function J6(t){let e=t.endsWith(` `),r=t.split(` -`).map(i=>i+` -`);return e?r.pop():r.push(r.pop().slice(0,-1)),r}var re=Mt(Sv()),Pa=require("obsidian");p();function ZA(t,e){let r=Object.assign({},t.lineAuthor,e.lineAuthor);return Object.assign({},t,e,{lineAuthor:r})}var cl=class extends Error{constructor(r){super("No network connection available");this.originalError=r}};p();var KA=require("obsidian"),H6={options:[],placeholder:"",allowEmpty:!1,onlySelection:!1,initialValue:void 0,obscure:!1},Qe=class extends KA.SuggestModal{constructor(e,r){if(super(e.app),this.config={...H6,...r},this.setPlaceholder(this.config.placeholder),this.config.obscure){this.inputEl.type="password";let i=this.containerEl.querySelector(".prompt-input-container");i.addClass("git-obscure-prompt"),i.setAttr("git-is-obscured","true");let n=i==null?void 0:i.createDiv({cls:"search-input-clear-button"});n.style.marginRight="32px",n.id="git-show-password",n.addEventListener("click",()=>{i.getAttr("git-is-obscured")==="true"?(this.inputEl.type="text",i.setAttr("git-is-obscured","false")):(this.inputEl.type="password",i.setAttr("git-is-obscured","true"))})}}openAndGetResult(){return new Promise(e=>{this.resolve=e,this.open(),this.config.initialValue!=null&&(this.inputEl.value=this.config.initialValue,this.inputEl.dispatchEvent(new Event("input")))})}onClose(){new Promise(e=>setTimeout(e,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(e){return this.config.onlySelection?this.config.options:this.config.allowEmpty?[e.length>0?e:" ",...this.config.options]:[e.length>0?e:"...",...this.config.options]}renderSuggestion(e,r){this.config.obscure?r.hide():r.setText(e)}onChooseSuggestion(e,r){if(this.resolve){let i;this.config.allowEmpty&&e===" "?i="":e==="..."?i=void 0:i=e,this.resolve(i)}}};p();var MP=Mt(mT()),DP=require("child_process"),LP=Mt(OP()),Xn=require("obsidian");function wh(t){throw new Error(`Unexpected object: ${t}`)}function Su(t,e,r){return t===1?`${t} ${e}`:`${t} ${r!=null?r:e+"s"}`}var Gw=(t,e)=>t==="."||e==null||e.length===0||e==="."?!0:e.length>=t.length?e.startsWith(t):t.startsWith(e);function Mi(t,e){let r;if(e){if(e.button===0||e.button===1){let i=Xn.Keymap.isModEvent(e);r=t.workspace.getLeaf(i)}}else r=t.workspace.getLeaf(!1);return r}function hn(t,e,r,i,n){if(e.button==2){let s=t.vault.getAbstractFileByPath(r);if(s!=null){let a=new Xn.Menu;t.workspace.trigger("file-menu",a,s,n,i),a.showAtPosition({x:e.pageX,y:e.pageY})}else{let a=new Xn.Menu;t.workspace.trigger("obsidian-git:menu",a,r,n,i),a.showAtPosition({x:e.pageX,y:e.pageY})}}}function Gs(t){throw new Error("Impossible branch: "+t)}function jw(t){return`rgb(${t.r},${t.g},${t.b})`}function BP(t){var s;let e=(s=MP.fromString(t))==null?void 0:s.toRgbaArray();if(e===void 0)return;let[r,i,n]=e;return{r,g:i,b:n}}function NP(t){return t.diff(Xn.moment.unix(0),"seconds")}function HP(t){if(t.length!==0)return t.slice().sort()[Math.floor(t.length/2)]}function UP(t,e){return(0,LP.default)(t,e,{strict:!0})}function Eu(t,e){return new Proxy(t,{get(r,i){return i==="length"?Math.min(e,r.length):r[i]}})}function GP(t,e,r){return t.length<=e?new Array(e-t.length).fill(r).join("")+t:t.substring(t.length-e)}function jP(t,e){if(e<=0)return t;let r=new Array(e).fill(" ").join(""),i=t.substring(e,t.length);return r+i}function qw(t,e,r){return t<=e&&e<=r}function Zn(t){let[e,...r]=t.split("/");return[e,r.length===0?void 0:r.join("/")]}function pn(t){return t.endsWith("/")?t:t.split("/").last().replace(/\.md$/,"")}function qP(t){return t===1?"1 minute":`${t} minutes`}function nG(t){let e=t.lastIndexOf(".");return t.substring(e+1)}function pl(t){if(t.endsWith(".md"))return!1;let e=nG(t);return qA.includes(e)}function zw(t){return(t.startsWith("https://github.com/")||t.startsWith("https://gitlab.com/"))&&(t.endsWith(".git")||(t=t+".git")),t}function ml(t,e){let r=e.vault.getAbstractFileByPath(t);if(!(r instanceof Xn.TFile))return!1;try{return!!e.viewRegistry.getTypeByExtension(r.extension)}catch(i){return!0}}function zP({isFolder:t,gitRelativePath:e}){let r="/";return r+=e,t&&(r+="/"),r.replace(/([\\!#*?[\]])/g,String.raw`\$1`).replace(/\s(?=\s*$)/g,String.raw`\ `)}function gl(t,e,r,i){let n=e.target;t.workspace.trigger("hover-link",{event:e,source:r.getViewType(),hoverParent:r,targetEl:n,linktext:i})}function ku(t,e,r={}){return new Promise((i,n)=>{let s=(0,DP.spawn)(t,e,r),a="",o="";s.stdout.on("data",l=>{a+=l.toString()}),s.stderr.on("data",l=>{o+=l.toString()}),s.on("error",l=>{i({error:new Error(l.message),stdout:a,stderr:a,code:1})}),s.on("close",l=>{i({stdout:a,stderr:o,code:l!=null?l:1,error:void 0})})})}p();var VP=require("os"),yh=require("obsidian"),vl=class{constructor(e){this.plugin=e,this.app=e.app}getRelativeVaultPath(e){return this.plugin.settings.basePath?this.plugin.settings.basePath+"/"+e:e}getRelativeRepoPath(e,r=!0){return r&&this.plugin.settings.basePath.length>0?e.substring(this.plugin.settings.basePath.length+1):e}unload(){}_getTreeStructure(e,r=0){let i=[];for(e=[...e];e.length>0;){let n=e.first(),s=n.path.substring(r);if(s.contains("/")){let a=s.substring(0,s.indexOf("/")),o=e.filter(c=>c.path.substring(r).startsWith(a+"/"));o.forEach(c=>e.remove(c));let l=n.path.substring(0,s.indexOf("/")+r);i.push({title:a,path:l,vaultPath:this.getRelativeVaultPath(l),children:this._getTreeStructure(o,(r>0?r+a.length:a.length)+1)})}else i.push({title:s,data:n,path:n.path,vaultPath:this.getRelativeVaultPath(n.path)}),e.remove(n)}return i}simplify(e){var r,i,n,s;for(let a of e){for(;;){let o=((r=a.children)==null?void 0:r.length)==1,l=((n=(i=a.children)==null?void 0:i.first())==null?void 0:n.data)==null;if(!(a.children!=null&&o&&l))break;let c=a.children.first();a.title+="/"+c.title,a.data=c.data,a.path=c.path,a.vaultPath=c.vaultPath,a.children=c.children}a.children!=null&&this.simplify(a.children),(s=a.children)==null||s.sort((o,l)=>{let c=(l.data==null?1:0)-(o.data==null?1:0);return c!=0?c:o.title.localeCompare(l.title)})}return e.sort((a,o)=>{let l=(o.data==null?1:0)-(a.data==null?1:0);return l!=0?l:a.title.localeCompare(o.title)})}getTreeStructure(e){let r=this._getTreeStructure(e);return this.simplify(r)}async formatCommitMessage(e){let r;if(e.includes("{{numFiles}}")){r=await this.status();let i=r.staged.length;e=e.replace("{{numFiles}}",String(i))}if(e.includes("{{hostname}}")){let i=this.plugin.localStorage.getHostname()||"";!i&&yh.Platform.isDesktopApp&&(i=(0,VP.hostname)()),e=e.replace("{{hostname}}",i)}if(e.includes("{{files}}")){r=r!=null?r:await this.status();let i={},n="";if(r.staged.length<100){r.staged.forEach(a=>{a.index in i?i[a.index].push(a.path):i[a.index]=[a.path]});let s=[];for(let[a,o]of Object.entries(i))s.push(a+" "+o.join(" "));n=s.join(", ")}else n="Too many files to list";e=e.replace("{{files}}",n)}if(e=e.replace("{{date}}",(0,yh.moment)().format(this.plugin.settings.commitDateFormat)),this.plugin.settings.listChangedFilesInMessageBody){let i=r!=null?r:await this.status(),n="";i.staged.length<100?n=i.staged.map(s=>s.path).join(` -`):n="Too many files to list",e=e+` +`).map(n=>n+` +`);return e?r.pop():r.push(r.pop().slice(0,-1)),r}var te=Ct(Pv()),Ra=require("obsidian");p();function sC(t,e){let r=Object.assign({},t.lineAuthor,e.lineAuthor);return Object.assign({},t,e,{lineAuthor:r})}var ul=class extends Error{constructor(r){super("No network connection available");this.originalError=r}};p();var aC=require("obsidian"),t5={options:[],placeholder:"",allowEmpty:!1,onlySelection:!1,initialValue:void 0,obscure:!1},Ze=class extends aC.SuggestModal{constructor(e,r){if(super(e.app),this.config={...t5,...r},this.setPlaceholder(this.config.placeholder),this.config.obscure){this.inputEl.type="password";let n=this.containerEl.querySelector(".prompt-input-container");n.addClass("git-obscure-prompt"),n.setAttr("git-is-obscured","true");let i=n==null?void 0:n.createDiv({cls:"search-input-clear-button"});i.style.marginRight="32px",i.id="git-show-password",i.addEventListener("click",()=>{n.getAttr("git-is-obscured")==="true"?(this.inputEl.type="text",n.setAttr("git-is-obscured","false")):(this.inputEl.type="password",n.setAttr("git-is-obscured","true"))})}}openAndGetResult(){return new Promise(e=>{this.resolve=e,this.open(),this.config.initialValue!=null&&(this.inputEl.value=this.config.initialValue,this.inputEl.dispatchEvent(new Event("input")))})}onClose(){new Promise(e=>setTimeout(e,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(e){return this.config.onlySelection?this.config.options:this.config.allowEmpty?[e.length>0?e:" ",...this.config.options]:[e.length>0?e:"...",...this.config.options]}renderSuggestion(e,r){this.config.obscure?r.hide():r.setText(e)}onChooseSuggestion(e,r){if(this.resolve){let n;this.config.allowEmpty&&e===" "?n="":e==="..."?n=void 0:n=e,this.resolve(n)}}};p();var qP=Ct(EC()),WP=require("child_process"),zP=Ct(jP()),Ki=require("obsidian");function Eh(t){throw new Error(`Unexpected object: ${t}`)}function Pu(t,e,r){return t===1?`${t} ${e}`:`${t} ${r!=null?r:e+"s"}`}var Yw=(t,e)=>t==="."||e==null||e.length===0||e==="."?!0:e.length>=t.length?e.startsWith(t):t.startsWith(e);function Bn(t,e){let r;if(e){if(e.button===0||e.button===1){let n=Ki.Keymap.isModEvent(e);r=t.workspace.getLeaf(n)}}else r=t.workspace.getLeaf(!1);return r}function gi(t,e,r,n,i){if(e.button==2){let s=t.vault.getAbstractFileByPath(r);if(s!=null){let a=new Ki.Menu;t.workspace.trigger("file-menu",a,s,i,n),a.showAtPosition({x:e.pageX,y:e.pageY})}else{let a=new Ki.Menu;t.workspace.trigger("obsidian-git:menu",a,r,i,n),a.showAtPosition({x:e.pageX,y:e.pageY})}}}function js(t){throw new Error("Impossible branch: "+t)}function Xw(t){return`rgb(${t.r},${t.g},${t.b})`}function VP(t){var s;let e=(s=qP.fromString(t))==null?void 0:s.toRgbaArray();if(e===void 0)return;let[r,n,i]=e;return{r,g:n,b:i}}function YP(t){return t.diff(Ki.moment.unix(0),"seconds")}function XP(t){if(t.length!==0)return t.slice().sort()[Math.floor(t.length/2)]}function ZP(t,e){return(0,zP.default)(t,e,{strict:!0})}function Ru(t,e){return new Proxy(t,{get(r,n){return n==="length"?Math.min(e,r.length):r[n]}})}function KP(t,e,r){return t.length<=e?new Array(e-t.length).fill(r).join("")+t:t.substring(t.length-e)}function QP(t,e){if(e<=0)return t;let r=new Array(e).fill(" ").join(""),n=t.substring(e,t.length);return r+n}function Zw(t,e,r){return t<=e&&e<=r}function Qi(t){let[e,...r]=t.split("/");return[e,r.length===0?void 0:r.join("/")]}function vi(t){return t.endsWith("/")?t:t.split("/").last().replace(/\.md$/,"")}function JP(t){return t===1?"1 minute":`${t} minutes`}function yG(t){let e=t.lastIndexOf(".");return t.substring(e+1)}function ml(t){if(t.endsWith(".md"))return!1;let e=yG(t);return JA.includes(e)}function Kw(t){return(t.startsWith("https://github.com/")||t.startsWith("https://gitlab.com/"))&&(t.endsWith(".git")||(t=t+".git")),t}function gl(t,e){let r=e.vault.getAbstractFileByPath(t);if(!(r instanceof Ki.TFile))return!1;try{return!!e.viewRegistry.getTypeByExtension(r.extension)}catch(n){return!0}}function eR({isFolder:t,gitRelativePath:e}){let r="/";return r+=e,t&&(r+="/"),r.replace(/([\\!#*?[\]])/g,String.raw`\$1`).replace(/\s(?=\s*$)/g,String.raw`\ `)}function vl(t,e,r,n){let i=e.target;t.workspace.trigger("hover-link",{event:e,source:r.getViewType(),hoverParent:r,targetEl:i,linktext:n})}function $u(t,e,r={}){return new Promise((n,i)=>{let s=(0,WP.spawn)(t,e,r),a="",o="";s.stdout.on("data",l=>{a+=l.toString()}),s.stderr.on("data",l=>{o+=l.toString()}),s.on("error",l=>{n({error:new Error(l.message),stdout:a,stderr:a,code:1})}),s.on("close",l=>{n({stdout:a,stderr:o,code:l!=null?l:1,error:void 0})})})}p();var tR=require("os"),kh=require("obsidian"),wl=class{constructor(e){this.plugin=e,this.app=e.app}getRelativeVaultPath(e){return this.plugin.settings.basePath?this.plugin.settings.basePath+"/"+e:e}getRelativeRepoPath(e,r=!0){return r&&this.plugin.settings.basePath.length>0?e.substring(this.plugin.settings.basePath.length+1):e}unload(){}_getTreeStructure(e,r=0){let n=[];for(e=[...e];e.length>0;){let i=e.first(),s=i.path.substring(r);if(s.contains("/")){let a=s.substring(0,s.indexOf("/")),o=e.filter(c=>c.path.substring(r).startsWith(a+"/"));o.forEach(c=>e.remove(c));let l=i.path.substring(0,s.indexOf("/")+r);n.push({title:a,path:l,vaultPath:this.getRelativeVaultPath(l),children:this._getTreeStructure(o,(r>0?r+a.length:a.length)+1)})}else n.push({title:s,data:i,path:i.path,vaultPath:this.getRelativeVaultPath(i.path)}),e.remove(i)}return n}simplify(e){var r,n,i,s;for(let a of e){for(;;){let o=((r=a.children)==null?void 0:r.length)==1,l=((i=(n=a.children)==null?void 0:n.first())==null?void 0:i.data)==null;if(!(a.children!=null&&o&&l))break;let c=a.children.first();a.title+="/"+c.title,a.data=c.data,a.path=c.path,a.vaultPath=c.vaultPath,a.children=c.children}a.children!=null&&this.simplify(a.children),(s=a.children)==null||s.sort((o,l)=>{let c=(l.data==null?1:0)-(o.data==null?1:0);return c!=0?c:o.title.localeCompare(l.title)})}return e.sort((a,o)=>{let l=(o.data==null?1:0)-(a.data==null?1:0);return l!=0?l:a.title.localeCompare(o.title)})}getTreeStructure(e){let r=this._getTreeStructure(e);return this.simplify(r)}async formatCommitMessage(e){let r;if(e.includes("{{numFiles}}")){r=await this.status();let n=r.staged.length;e=e.replace("{{numFiles}}",String(n))}if(e.includes("{{hostname}}")){let n=this.plugin.localStorage.getHostname()||"";!n&&kh.Platform.isDesktopApp&&(n=(0,tR.hostname)()),e=e.replace("{{hostname}}",n)}if(e.includes("{{files}}")){r=r!=null?r:await this.status();let n={},i="";if(r.staged.length<100){r.staged.forEach(a=>{a.index in n?n[a.index].push(a.path):n[a.index]=[a.path]});let s=[];for(let[a,o]of Object.entries(n))s.push(a+" "+o.join(" "));i=s.join(", ")}else i="Too many files to list";e=e.replace("{{files}}",i)}if(e=e.replace("{{date}}",(0,kh.moment)().format(this.plugin.settings.commitDateFormat)),this.plugin.settings.listChangedFilesInMessageBody){let n=r!=null?r:await this.status(),i="";n.staged.length<100?i=n.staged.map(s=>s.path).join(` +`):i="Too many files to list",e=e+` Affected files: -`+n}return e}};p();var js=require("obsidian"),bh=class{constructor(e,r){this.plugin=r;this.promises={};this.adapter=e.adapter,this.vault=e,this.lastBasePath=this.plugin.settings.basePath,this.promises.readFile=this.readFile.bind(this),this.promises.writeFile=this.writeFile.bind(this),this.promises.readdir=this.readdir.bind(this),this.promises.mkdir=this.mkdir.bind(this),this.promises.rmdir=this.rmdir.bind(this),this.promises.stat=this.stat.bind(this),this.promises.unlink=this.unlink.bind(this),this.promises.lstat=this.lstat.bind(this),this.promises.readlink=this.readlink.bind(this),this.promises.symlink=this.symlink.bind(this)}async readFile(e,r){var i;if(this.maybeLog("Read: "+e+JSON.stringify(r)),r=="utf8"||r.encoding=="utf8"){let n=this.vault.getAbstractFileByPath(e);return n instanceof js.TFile?(this.maybeLog("Reuse"),this.vault.read(n)):this.adapter.read(e)}else{if(e.endsWith(this.gitDir+"/index"))return this.plugin.settings.basePath!=this.lastBasePath?(this.clearIndex(),this.lastBasePath=this.plugin.settings.basePath,this.adapter.readBinary(e)):(i=this.index)!=null?i:this.adapter.readBinary(e);let n=this.vault.getAbstractFileByPath(e);return n instanceof js.TFile?(this.maybeLog("Reuse"),this.vault.readBinary(n)):this.adapter.readBinary(e)}}async writeFile(e,r){if(this.maybeLog("Write: "+e),typeof r=="string"){let i=this.vault.getAbstractFileByPath(e);return i instanceof js.TFile?this.vault.modify(i,r):this.adapter.write(e,r)}else if(e.endsWith(this.gitDir+"/index"))this.index=r,this.indexmtime=Date.now();else{let i=this.vault.getAbstractFileByPath(e);return i instanceof js.TFile?this.vault.modifyBinary(i,r):this.adapter.writeBinary(e,r)}}async readdir(e){e==="."&&(e="/");let r=await this.adapter.list(e),i=[...r.files,...r.folders],n;return e!=="/"?n=i.map(s=>(0,js.normalizePath)(s.substring(e.length))):n=i,n}async mkdir(e){return this.adapter.mkdir(e)}async rmdir(e,r){var i,n;return this.adapter.rmdir(e,(n=(i=r==null?void 0:r.options)==null?void 0:i.recursive)!=null?n:!1)}async stat(e){if(e.endsWith(this.gitDir+"/index")){if(this.index!==void 0&&this.indexctime!=null&&this.indexmtime!=null)return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,size:this.index.byteLength,type:"file",ctimeMs:this.indexctime,mtimeMs:this.indexmtime};{let i=await this.adapter.stat(e);if(i==null)throw{code:"ENOENT"};return this.indexctime=i.ctime,this.indexmtime=i.mtime,{ctimeMs:i.ctime,mtimeMs:i.mtime,size:i.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}}}e==="."&&(e="/");let r=this.vault.getAbstractFileByPath(e);if(this.maybeLog("Stat: "+e),r instanceof js.TFile)return this.maybeLog("Reuse stat"),{ctimeMs:r.stat.ctime,mtimeMs:r.stat.mtime,size:r.stat.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1};{let i=await this.adapter.stat(e);if(i)return{ctimeMs:i.ctime,mtimeMs:i.mtime,size:i.size,type:i.type==="folder"?"directory":i.type,isFile:()=>i.type==="file",isDirectory:()=>i.type==="folder",isSymbolicLink:()=>!1};throw{code:"ENOENT"}}}async unlink(e){return this.adapter.remove(e)}async lstat(e){return this.stat(e)}async readlink(e){throw new Error(`readlink of (${e}) is not implemented.`)}async symlink(e){throw new Error(`symlink of (${e}) is not implemented.`)}async saveAndClear(){this.index!==void 0&&await this.adapter.writeBinary(this.plugin.gitManager.getRelativeVaultPath(this.gitDir+"/index"),this.index,{ctime:this.indexctime,mtime:this.indexmtime}),this.clearIndex()}clearIndex(){this.index=void 0,this.indexctime=void 0,this.indexmtime=void 0}get gitDir(){return this.plugin.settings.gitDir||".git"}maybeLog(e){}};var QP=Mt(KP()),Di=class extends vl{constructor(r){super(r);this.FILE=0;this.HEAD=1;this.WORKDIR=2;this.STAGE=3;this.status_mapping={"000":" ","003":"AD","020":"??","022":"A ","023":"AM",100:"D ",101:" D",103:"MD",110:"DA",111:" ",113:"MM",120:"DA",121:" M",122:"M ",123:"MM"};this.noticeLength=999999;this.fs=new bh(this.app.vault,this.plugin)}getRepo(){return{fs:this.fs,dir:this.plugin.settings.basePath,gitdir:this.plugin.settings.gitDir||void 0,onAuth:()=>{var r,i;return{username:(r=this.plugin.localStorage.getUsername())!=null?r:void 0,password:(i=this.plugin.localStorage.getPassword())!=null?i:void 0}},onAuthFailure:async()=>{new Pa.Notice("Authentication failed. Please try with different credentials");let r=await new Qe(this.plugin,{placeholder:"Specify your username"}).openAndGetResult();if(r){let i=await new Qe(this.plugin,{placeholder:"Specify your password/personal access token",obscure:!0}).openAndGetResult();if(i)return this.plugin.localStorage.setUsername(r),this.plugin.localStorage.setPassword(i),{username:r,password:i}}return{cancel:!0}},http:{async request({url:r,method:i,headers:n,body:s}){let a;s&&(a=await lG(s));let o=await(0,Pa.requestUrl)({url:r,method:i,headers:n,body:a,throw:!1});return{url:r,method:i,headers:o.headers,body:oG(o.arrayBuffer),statusCode:o.status,statusMessage:o.status.toString()}}}}}async wrapFS(r){try{let i=await r;return await this.fs.saveAndClear(),i}catch(i){throw await this.fs.saveAndClear(),i}}async status(r){let i,n=window.setTimeout(()=>{i=new Pa.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{this.plugin.setPluginState({gitAction:1});let s={...this.getRepo()};(r==null?void 0:r.path)!=null&&(s.filepaths=[`${r.path}/`]);let a=(await this.wrapFS(re.default.statusMatrix(s))).map(f=>this.getFileStatusResult(f)),o=[],l=[],c=[];for(let f of a)f.workingDir!==" "&&o.push(f),f.index!==" "&&f.index!=="U"&&l.push(f),(f.index!=" "||f.workingDir!=" ")&&c.push(f);let u=[];return window.clearTimeout(n),i==null||i.hide(),{all:c,changed:o,staged:l,conflicted:u}}catch(s){throw window.clearTimeout(n),i==null||i.hide(),this.plugin.displayError(s),s}}async commitAll({message:r,status:i,unstagedFiles:n}){try{return await this.checkAuthorInfo(),await this.stageAll({status:i,unstagedFiles:n}),this.commit({message:r})}catch(s){throw this.plugin.displayError(s),s}}async commit({message:r}){try{await this.checkAuthorInfo(),this.plugin.setPluginState({gitAction:4});let i=await this.formatCommitMessage(r),n=this.plugin.localStorage.getConflict(),s;if(n){let a=await this.branchInfo();s=[a.current,a.tracking]}await this.wrapFS(re.default.commit({...this.getRepo(),message:i,parent:s})),this.plugin.localStorage.setConflict(!1);return}catch(i){throw this.plugin.displayError(i),i}}async stage(r,i){let n=this.getRelativeRepoPath(r,i),s;i?s=r:s=this.getRelativeVaultPath(r);try{this.plugin.setPluginState({gitAction:3}),await this.app.vault.adapter.exists(s)?await this.wrapFS(re.default.add({...this.getRepo(),filepath:n})):await this.wrapFS(re.default.remove({...this.getRepo(),filepath:n}))}catch(a){throw this.plugin.displayError(a),a}}async stageAll({dir:r,status:i,unstagedFiles:n}){try{if(i)await Promise.all(i.changed.map(s=>s.workingDir!=="D"?this.wrapFS(re.default.add({...this.getRepo(),filepath:s.path})):re.default.remove({...this.getRepo(),filepath:s.path})));else{let s=n!=null?n:await this.getUnstagedFiles(r!=null?r:".");await Promise.all(s.map(({path:a,type:o})=>o=="D"?re.default.remove({...this.getRepo(),filepath:a}):this.wrapFS(re.default.add({...this.getRepo(),filepath:a}))))}}catch(s){throw this.plugin.displayError(s),s}}async unstage(r,i){try{this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,i),await this.wrapFS(re.default.resetIndex({...this.getRepo(),filepath:r}))}catch(n){throw this.plugin.displayError(n),n}}async unstageAll({dir:r,status:i}){try{let n;i?n=i.staged.map(s=>s.path):n=(await this.getStagedFiles(r!=null?r:".")).map(({path:a})=>a),await this.wrapFS(Promise.all(n.map(s=>re.default.resetIndex({...this.getRepo(),filepath:s}))))}catch(n){throw this.plugin.displayError(n),n}}async discard(r){try{this.plugin.setPluginState({gitAction:3}),await this.wrapFS(re.default.checkout({...this.getRepo(),filepaths:[r],force:!0}))}catch(i){throw this.plugin.displayError(i),i}}async discardAll({dir:r,status:i}){let n=[];i?r!=null?n=i.changed.filter(s=>s.workingDir!="U"&&s.path.startsWith(r)).map(s=>s.path):n=i.changed.filter(s=>s.workingDir!="U").map(s=>s.path):n=(await this.getUnstagedFiles(r)).filter(s=>s.type!="A").map(({path:s})=>s);try{await this.wrapFS(re.default.checkout({...this.getRepo(),filepaths:n,force:!0}))}catch(s){throw this.plugin.displayError(s),s}}async getUntrackedPaths(r){let i=[];if(r.status)for(let n of r.status.changed)n.index=="U"&&n.workingDir==="U"&&n.path.startsWith(r.path!=null?`${r.path}/`:"")&&i.push(n.path);else{let n=await this.status({path:r==null?void 0:r.path});for(let s of n.changed)s.index==="U"&&s.workingDir==="U"&&i.push(s.path)}return i}getProgressText(r,i){let n=`${r} progress:`;return i.phase&&(n=`${n} ${i.phase}:`),i.loaded&&(n=`${n} ${i.loaded}`,i.total&&(n=`${n} of ${i.total}`)),n}resolveRef(r){return this.wrapFS(re.default.resolveRef({...this.getRepo(),ref:r}))}async pull(){let r=this.showNotice("Initializing pull");try{this.plugin.setPluginState({gitAction:2});let i=await this.resolveRef("HEAD");await this.fetch();let n=await this.branchInfo();await this.checkAuthorInfo(),(await this.wrapFS(re.default.merge({...this.getRepo(),ours:n.current,theirs:n.tracking,abortOnConflict:!1,mergeDriver:this.plugin.settings.mergeStrategy!=="none"?({contents:l})=>{var b,k,x;let c=l[0],u=l[1],f=l[2],d=/^.*(\r?\n|$)/gm,h=(b=u.match(d))!=null?b:[],m=(k=c.match(d))!=null?k:[],g=(x=f.match(d))!=null?x:[],v=(0,QP.default)(h,m,g),w="";for(let E of v)E.ok&&(w+=E.ok.join("")),E.conflict&&(w+=this.plugin.settings.mergeStrategy==="ours"?E.conflict.a.join(""):E.conflict.b.join(""));return{cleanMerge:!0,mergedText:w}}:void 0}))).alreadyMerged||await this.wrapFS(re.default.checkout({...this.getRepo(),ref:n.current,onProgress:l=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Checkout",l))},remote:n.remote})),r==null||r.hide();let a=await this.resolveRef("HEAD"),o=await this.getFileChangesCount(i,a);return this.showNotice("Finished pull",!1),o.map(l=>({path:l.path,workingDir:"P",index:"P",vaultPath:this.getRelativeVaultPath(l.path)}))}catch(i){throw r==null||r.hide(),i instanceof re.Errors.MergeConflictError&&await this.plugin.handleConflict(i.data.filepaths.map(n=>this.getRelativeVaultPath(n))),this.plugin.displayError(i),i}}async push(){if(!await this.canPush())return 0;let r=this.showNotice("Initializing push");try{this.plugin.setPluginState({gitAction:1});let i=await this.branchInfo(),n=i.tracking,s=i.current,a=(await this.getFileChangesCount(s,n)).length;this.plugin.setPluginState({gitAction:5});let o=await this.getCurrentRemote();return await this.wrapFS(re.default.push({...this.getRepo(),remote:o,onProgress:l=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Pushing",l))}})),r==null||r.hide(),a}catch(i){throw r==null||r.hide(),this.plugin.displayError(i),i}}async getUnpushedCommits(){let r=await this.branchInfo(),i=r.tracking,n=r.current;if(i==null||n==null)return 0;let s=await this.resolveRef(n),a=await this.resolveRef(i);return(await this.getFileChangesCount(s,a)).length}async canPush(){let r=await this.branchInfo(),i=r.tracking,n=r.current,s=await this.resolveRef(n),a=await this.resolveRef(i);return s!=a}async checkRequirements(){return await this.plugin.app.vault.adapter.exists(`${this.getRepo().dir}/.git/HEAD`)?"valid":"missing-repo"}async branchInfo(){var r,i;try{let n=await re.default.currentBranch(this.getRepo())||"",s=await re.default.listBranches(this.getRepo()),a=(r=await this.getConfig(`branch.${n}.remote`))!=null?r:"origin",o=(i=await this.getConfig(`branch.${n}.merge`))==null?void 0:i.split("refs/heads")[1],l=o?a+o:void 0;return{current:n,tracking:l,branches:s,remote:a}}catch(n){throw this.plugin.displayError(n),n}}async getCurrentRemote(){var n;let r=await re.default.currentBranch(this.getRepo())||"";return(n=await this.getConfig(`branch.${r}.remote`))!=null?n:"origin"}async checkout(r,i){try{return this.wrapFS(re.default.checkout({...this.getRepo(),ref:r,force:!!i,remote:i}))}catch(n){throw this.plugin.displayError(n),n}}async createBranch(r){try{await this.wrapFS(re.default.branch({...this.getRepo(),ref:r,checkout:!0}))}catch(i){throw this.plugin.displayError(i),i}}async deleteBranch(r){try{await this.wrapFS(re.default.deleteBranch({...this.getRepo(),ref:r}))}catch(i){throw this.plugin.displayError(i),i}}branchIsMerged(r){return Promise.resolve(!0)}async init(){try{await this.wrapFS(re.default.init(this.getRepo()))}catch(r){throw this.plugin.displayError(r),r}}async clone(r,i,n){let s=this.showNotice("Initializing clone");try{await this.wrapFS(re.default.clone({...this.getRepo(),dir:i,url:r,depth:n,onProgress:a=>{s!==void 0&&(s.noticeEl.innerText=this.getProgressText("Cloning",a))}})),s==null||s.hide()}catch(a){throw s==null||s.hide(),this.plugin.displayError(a),a}}async setConfig(r,i){try{return this.wrapFS(re.default.setConfig({...this.getRepo(),path:r,value:i}))}catch(n){throw this.plugin.displayError(n),n}}async getConfig(r){try{return this.wrapFS(re.default.getConfig({...this.getRepo(),path:r}))}catch(i){throw this.plugin.displayError(i),i}}async fetch(r){let i=this.showNotice("Initializing fetch");try{let n={...this.getRepo(),onProgress:s=>{i!==void 0&&(i.noticeEl.innerText=this.getProgressText("Fetching",s))},remote:r!=null?r:await this.getCurrentRemote()};await this.wrapFS(re.default.fetch(n)),i==null||i.hide()}catch(n){throw this.plugin.displayError(n),i==null||i.hide(),n}}async setRemote(r,i){try{await this.wrapFS(re.default.addRemote({...this.getRepo(),remote:r,url:i,force:!0}))}catch(n){throw this.plugin.displayError(n),n}}async getRemoteBranches(r){let i=[];return i.push(...await this.wrapFS(re.default.listBranches({...this.getRepo(),remote:r}))),i.remove("HEAD"),i=i.map(n=>`${r}/${n}`),i}async getRemotes(){return(await this.wrapFS(re.default.listRemotes({...this.getRepo()}))).map(r=>r.remote)}async removeRemote(r){await this.wrapFS(re.default.deleteRemote({...this.getRepo(),remote:r}))}async getRemoteUrl(r){var i;return(i=(await this.wrapFS(re.default.listRemotes({...this.getRepo()}))).filter(n=>n.remote==r)[0])==null?void 0:i.url}async log(r,i=!0,n,s){let a=await this.wrapFS(re.default.log({...this.getRepo(),depth:n,ref:s}));return Promise.all(a.map(async o=>{let l=o.commit.message.split(` +`+i}return e}};p();var qs=require("obsidian"),Ah=class{constructor(e,r){this.plugin=r;this.promises={};this.adapter=e.adapter,this.vault=e,this.lastBasePath=this.plugin.settings.basePath,this.promises.readFile=this.readFile.bind(this),this.promises.writeFile=this.writeFile.bind(this),this.promises.readdir=this.readdir.bind(this),this.promises.mkdir=this.mkdir.bind(this),this.promises.rmdir=this.rmdir.bind(this),this.promises.stat=this.stat.bind(this),this.promises.unlink=this.unlink.bind(this),this.promises.lstat=this.lstat.bind(this),this.promises.readlink=this.readlink.bind(this),this.promises.symlink=this.symlink.bind(this)}async readFile(e,r){var n;if(this.maybeLog("Read: "+e+JSON.stringify(r)),r=="utf8"||r.encoding=="utf8"){let i=this.vault.getAbstractFileByPath(e);return i instanceof qs.TFile?(this.maybeLog("Reuse"),this.vault.read(i)):this.adapter.read(e)}else{if(e.endsWith(this.gitDir+"/index"))return this.plugin.settings.basePath!=this.lastBasePath?(this.clearIndex(),this.lastBasePath=this.plugin.settings.basePath,this.adapter.readBinary(e)):(n=this.index)!=null?n:this.adapter.readBinary(e);let i=this.vault.getAbstractFileByPath(e);return i instanceof qs.TFile?(this.maybeLog("Reuse"),this.vault.readBinary(i)):this.adapter.readBinary(e)}}async writeFile(e,r){if(this.maybeLog("Write: "+e),typeof r=="string"){let n=this.vault.getAbstractFileByPath(e);return n instanceof qs.TFile?this.vault.modify(n,r):this.adapter.write(e,r)}else if(e.endsWith(this.gitDir+"/index"))this.index=r,this.indexmtime=Date.now();else{let n=this.vault.getAbstractFileByPath(e);return n instanceof qs.TFile?this.vault.modifyBinary(n,r):this.adapter.writeBinary(e,r)}}async readdir(e){e==="."&&(e="/");let r=await this.adapter.list(e),n=[...r.files,...r.folders],i;return e!=="/"?i=n.map(s=>(0,qs.normalizePath)(s.substring(e.length))):i=n,i}async mkdir(e){return this.adapter.mkdir(e)}async rmdir(e,r){var n,i;return this.adapter.rmdir(e,(i=(n=r==null?void 0:r.options)==null?void 0:n.recursive)!=null?i:!1)}async stat(e){if(e.endsWith(this.gitDir+"/index")){if(this.index!==void 0&&this.indexctime!=null&&this.indexmtime!=null)return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,size:this.index.byteLength,type:"file",ctimeMs:this.indexctime,mtimeMs:this.indexmtime};{let n=await this.adapter.stat(e);if(n==null)throw{code:"ENOENT"};return this.indexctime=n.ctime,this.indexmtime=n.mtime,{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}}}e==="."&&(e="/");let r=this.vault.getAbstractFileByPath(e);if(this.maybeLog("Stat: "+e),r instanceof qs.TFile)return this.maybeLog("Reuse stat"),{ctimeMs:r.stat.ctime,mtimeMs:r.stat.mtime,size:r.stat.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1};{let n=await this.adapter.stat(e);if(n)return{ctimeMs:n.ctime,mtimeMs:n.mtime,size:n.size,type:n.type==="folder"?"directory":n.type,isFile:()=>n.type==="file",isDirectory:()=>n.type==="folder",isSymbolicLink:()=>!1};throw{code:"ENOENT"}}}async unlink(e){return this.adapter.remove(e)}async lstat(e){return this.stat(e)}async readlink(e){throw new Error(`readlink of (${e}) is not implemented.`)}async symlink(e){throw new Error(`symlink of (${e}) is not implemented.`)}async saveAndClear(){this.index!==void 0&&await this.adapter.writeBinary(this.plugin.gitManager.getRelativeVaultPath(this.gitDir+"/index"),this.index,{ctime:this.indexctime,mtime:this.indexmtime}),this.clearIndex()}clearIndex(){this.index=void 0,this.indexctime=void 0,this.indexmtime=void 0}get gitDir(){return this.plugin.settings.gitDir||".git"}maybeLog(e){}};var oR=Ct(aR()),Hn=class extends wl{constructor(r){super(r);this.FILE=0;this.HEAD=1;this.WORKDIR=2;this.STAGE=3;this.status_mapping={"000":" ","003":"AD","020":"??","022":"A ","023":"AM",100:"D ",101:" D",103:"MD",110:"DA",111:" ",113:"MM",120:"DA",121:" M",122:"M ",123:"MM"};this.noticeLength=999999;this.fs=new Ah(this.app.vault,this.plugin)}getRepo(){return{fs:this.fs,dir:this.plugin.settings.basePath,gitdir:this.plugin.settings.gitDir||void 0,onAuth:()=>{var r,n;return{username:(r=this.plugin.localStorage.getUsername())!=null?r:void 0,password:(n=this.plugin.localStorage.getPassword())!=null?n:void 0}},onAuthFailure:async()=>{new Ra.Notice("Authentication failed. Please try with different credentials");let r=await new Ze(this.plugin,{placeholder:"Specify your username"}).openAndGetResult();if(r){let n=await new Ze(this.plugin,{placeholder:"Specify your password/personal access token",obscure:!0}).openAndGetResult();if(n)return this.plugin.localStorage.setUsername(r),this.plugin.localStorage.setPassword(n),{username:r,password:n}}return{cancel:!0}},http:{async request({url:r,method:n,headers:i,body:s}){let a;s&&(a=await SG(s));let o=await(0,Ra.requestUrl)({url:r,method:n,headers:i,body:a,throw:!1});return{url:r,method:n,headers:o.headers,body:xG(o.arrayBuffer),statusCode:o.status,statusMessage:o.status.toString()}}}}}async wrapFS(r){try{let n=await r;return await this.fs.saveAndClear(),n}catch(n){throw await this.fs.saveAndClear(),n}}async status(r){let n,i=window.setTimeout(()=>{n=new Ra.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{this.plugin.setPluginState({gitAction:1});let s={...this.getRepo()};(r==null?void 0:r.path)!=null&&(s.filepaths=[`${r.path}/`]);let a=(await this.wrapFS(te.default.statusMatrix(s))).map(f=>this.getFileStatusResult(f)),o=[],l=[],c=[];for(let f of a)f.workingDir!==" "&&o.push(f),f.index!==" "&&f.index!=="U"&&l.push(f),(f.index!=" "||f.workingDir!=" ")&&c.push(f);let u=[];return window.clearTimeout(i),n==null||n.hide(),{all:c,changed:o,staged:l,conflicted:u}}catch(s){throw window.clearTimeout(i),n==null||n.hide(),this.plugin.displayError(s),s}}async commitAll({message:r,status:n,unstagedFiles:i}){try{return await this.checkAuthorInfo(),await this.stageAll({status:n,unstagedFiles:i}),this.commit({message:r})}catch(s){throw this.plugin.displayError(s),s}}async commit({message:r}){try{await this.checkAuthorInfo(),this.plugin.setPluginState({gitAction:4});let n=await this.formatCommitMessage(r),i=this.plugin.localStorage.getConflict(),s;if(i){let a=await this.branchInfo();s=[a.current,a.tracking]}await this.wrapFS(te.default.commit({...this.getRepo(),message:n,parent:s})),this.plugin.localStorage.setConflict(!1);return}catch(n){throw this.plugin.displayError(n),n}}async stage(r,n){let i=this.getRelativeRepoPath(r,n),s;n?s=r:s=this.getRelativeVaultPath(r);try{this.plugin.setPluginState({gitAction:3}),await this.app.vault.adapter.exists(s)?await this.wrapFS(te.default.add({...this.getRepo(),filepath:i})):await this.wrapFS(te.default.remove({...this.getRepo(),filepath:i}))}catch(a){throw this.plugin.displayError(a),a}}async stageAll({dir:r,status:n,unstagedFiles:i}){try{if(n)await Promise.all(n.changed.map(s=>s.workingDir!=="D"?this.wrapFS(te.default.add({...this.getRepo(),filepath:s.path})):te.default.remove({...this.getRepo(),filepath:s.path})));else{let s=i!=null?i:await this.getUnstagedFiles(r!=null?r:".");await Promise.all(s.map(({path:a,type:o})=>o=="D"?te.default.remove({...this.getRepo(),filepath:a}):this.wrapFS(te.default.add({...this.getRepo(),filepath:a}))))}}catch(s){throw this.plugin.displayError(s),s}}async unstage(r,n){try{this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.wrapFS(te.default.resetIndex({...this.getRepo(),filepath:r}))}catch(i){throw this.plugin.displayError(i),i}}async unstageAll({dir:r,status:n}){try{let i;n?i=n.staged.map(s=>s.path):i=(await this.getStagedFiles(r!=null?r:".")).map(({path:a})=>a),await this.wrapFS(Promise.all(i.map(s=>te.default.resetIndex({...this.getRepo(),filepath:s}))))}catch(i){throw this.plugin.displayError(i),i}}async discard(r){try{this.plugin.setPluginState({gitAction:3}),await this.wrapFS(te.default.checkout({...this.getRepo(),filepaths:[r],force:!0}))}catch(n){throw this.plugin.displayError(n),n}}async discardAll({dir:r,status:n}){let i=[];n?r!=null?i=n.changed.filter(s=>s.workingDir!="U"&&s.path.startsWith(r)).map(s=>s.path):i=n.changed.filter(s=>s.workingDir!="U").map(s=>s.path):i=(await this.getUnstagedFiles(r)).filter(s=>s.type!="A").map(({path:s})=>s);try{await this.wrapFS(te.default.checkout({...this.getRepo(),filepaths:i,force:!0}))}catch(s){throw this.plugin.displayError(s),s}}async getUntrackedPaths(r){let n=[];if(r.status)for(let i of r.status.changed)i.index=="U"&&i.workingDir==="U"&&i.path.startsWith(r.path!=null?`${r.path}/`:"")&&n.push(i.path);else{let i=await this.status({path:r==null?void 0:r.path});for(let s of i.changed)s.index==="U"&&s.workingDir==="U"&&n.push(s.path)}return n}getProgressText(r,n){let i=`${r} progress:`;return n.phase&&(i=`${i} ${n.phase}:`),n.loaded&&(i=`${i} ${n.loaded}`,n.total&&(i=`${i} of ${n.total}`)),i}resolveRef(r){return this.wrapFS(te.default.resolveRef({...this.getRepo(),ref:r}))}async pull(){let r=this.showNotice("Initializing pull");try{this.plugin.setPluginState({gitAction:2});let n=await this.resolveRef("HEAD");await this.fetch();let i=await this.branchInfo();await this.checkAuthorInfo(),(await this.wrapFS(te.default.merge({...this.getRepo(),ours:i.current,theirs:i.tracking,abortOnConflict:!1,mergeDriver:this.plugin.settings.mergeStrategy!=="none"?({contents:l})=>{var b,k,x;let c=l[0],u=l[1],f=l[2],d=/^.*(\r?\n|$)/gm,h=(b=u.match(d))!=null?b:[],m=(k=c.match(d))!=null?k:[],g=(x=f.match(d))!=null?x:[],v=(0,oR.default)(h,m,g),w="";for(let E of v)E.ok&&(w+=E.ok.join("")),E.conflict&&(w+=this.plugin.settings.mergeStrategy==="ours"?E.conflict.a.join(""):E.conflict.b.join(""));return{cleanMerge:!0,mergedText:w}}:void 0}))).alreadyMerged||await this.wrapFS(te.default.checkout({...this.getRepo(),ref:i.current,onProgress:l=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Checkout",l))},remote:i.remote})),r==null||r.hide();let a=await this.resolveRef("HEAD"),o=await this.getFileChangesCount(n,a);return this.showNotice("Finished pull",!1),o.map(l=>({path:l.path,workingDir:"P",index:"P",vaultPath:this.getRelativeVaultPath(l.path)}))}catch(n){throw r==null||r.hide(),n instanceof te.Errors.MergeConflictError&&await this.plugin.handleConflict(n.data.filepaths.map(i=>this.getRelativeVaultPath(i))),this.plugin.displayError(n),n}}async push(){if(!await this.canPush())return 0;let r=this.showNotice("Initializing push");try{this.plugin.setPluginState({gitAction:1});let n=await this.branchInfo(),i=n.tracking,s=n.current,a=(await this.getFileChangesCount(s,i)).length;this.plugin.setPluginState({gitAction:5});let o=await this.getCurrentRemote();return await this.wrapFS(te.default.push({...this.getRepo(),remote:o,onProgress:l=>{r!==void 0&&(r.noticeEl.innerText=this.getProgressText("Pushing",l))}})),r==null||r.hide(),a}catch(n){throw r==null||r.hide(),this.plugin.displayError(n),n}}async getUnpushedCommits(){let r=await this.branchInfo(),n=r.tracking,i=r.current;if(n==null||i==null)return 0;let s=await this.resolveRef(i),a=await this.resolveRef(n);return(await this.getFileChangesCount(s,a)).length}async canPush(){let r=await this.branchInfo(),n=r.tracking,i=r.current,s=await this.resolveRef(i),a=await this.resolveRef(n);return s!=a}async checkRequirements(){return await this.plugin.app.vault.adapter.exists(`${this.getRepo().dir}/.git/HEAD`)?"valid":"missing-repo"}async branchInfo(){var r,n;try{let i=await te.default.currentBranch(this.getRepo())||"",s=await te.default.listBranches(this.getRepo()),a=(r=await this.getConfig(`branch.${i}.remote`))!=null?r:"origin",o=(n=await this.getConfig(`branch.${i}.merge`))==null?void 0:n.split("refs/heads")[1],l=o?a+o:void 0;return{current:i,tracking:l,branches:s,remote:a}}catch(i){throw this.plugin.displayError(i),i}}async getCurrentRemote(){var i;let r=await te.default.currentBranch(this.getRepo())||"";return(i=await this.getConfig(`branch.${r}.remote`))!=null?i:"origin"}async checkout(r,n){try{return this.wrapFS(te.default.checkout({...this.getRepo(),ref:r,force:!!n,remote:n}))}catch(i){throw this.plugin.displayError(i),i}}async createBranch(r){try{await this.wrapFS(te.default.branch({...this.getRepo(),ref:r,checkout:!0}))}catch(n){throw this.plugin.displayError(n),n}}async deleteBranch(r){try{await this.wrapFS(te.default.deleteBranch({...this.getRepo(),ref:r}))}catch(n){throw this.plugin.displayError(n),n}}branchIsMerged(r){return Promise.resolve(!0)}async init(){try{await this.wrapFS(te.default.init(this.getRepo()))}catch(r){throw this.plugin.displayError(r),r}}async clone(r,n,i){let s=this.showNotice("Initializing clone");try{await this.wrapFS(te.default.clone({...this.getRepo(),dir:n,url:r,depth:i,onProgress:a=>{s!==void 0&&(s.noticeEl.innerText=this.getProgressText("Cloning",a))}})),s==null||s.hide()}catch(a){throw s==null||s.hide(),this.plugin.displayError(a),a}}async setConfig(r,n){try{return this.wrapFS(te.default.setConfig({...this.getRepo(),path:r,value:n}))}catch(i){throw this.plugin.displayError(i),i}}async getConfig(r){try{return this.wrapFS(te.default.getConfig({...this.getRepo(),path:r}))}catch(n){throw this.plugin.displayError(n),n}}async fetch(r){let n=this.showNotice("Initializing fetch");try{let i={...this.getRepo(),onProgress:s=>{n!==void 0&&(n.noticeEl.innerText=this.getProgressText("Fetching",s))},remote:r!=null?r:await this.getCurrentRemote()};await this.wrapFS(te.default.fetch(i)),n==null||n.hide()}catch(i){throw this.plugin.displayError(i),n==null||n.hide(),i}}async setRemote(r,n){try{await this.wrapFS(te.default.addRemote({...this.getRepo(),remote:r,url:n,force:!0}))}catch(i){throw this.plugin.displayError(i),i}}async getRemoteBranches(r){let n=[];return n.push(...await this.wrapFS(te.default.listBranches({...this.getRepo(),remote:r}))),n.remove("HEAD"),n=n.map(i=>`${r}/${i}`),n}async getRemotes(){return(await this.wrapFS(te.default.listRemotes({...this.getRepo()}))).map(r=>r.remote)}async removeRemote(r){await this.wrapFS(te.default.deleteRemote({...this.getRepo(),remote:r}))}async getRemoteUrl(r){var n;return(n=(await this.wrapFS(te.default.listRemotes({...this.getRepo()}))).filter(i=>i.remote==r)[0])==null?void 0:n.url}async log(r,n=!0,i,s){let a=await this.wrapFS(te.default.log({...this.getRepo(),depth:i,ref:s}));return Promise.all(a.map(async o=>{let l=o.commit.message.split(` `);return{message:l[0],author:{name:o.commit.author.name,email:o.commit.author.email},body:l.slice(1).join(` -`),date:new Date(o.commit.committer.timestamp).toDateString(),diff:{changed:0,files:(await this.getFileChangesCount(o.commit.parent.first(),o.oid)).map(c=>({path:c.path,status:c.type,vaultPath:this.getRelativeVaultPath(c.path),hash:o.oid}))},hash:o.oid,refs:[]}}))}updateBasePath(r){return this.getRepo().dir=r,Promise.resolve()}async updateUpstreamBranch(r){let[i,n]=Zn(r),s=await this.branchInfo();await this.wrapFS(re.default.push({...this.getRepo(),remote:i,remoteRef:n})),await this.setConfig(`branch.${s.current}.merge`,`refs/heads/${n}`)}updateGitPath(r){return Promise.resolve()}async getFileChangesCount(r,i){return this.walkDifference({walkers:[re.default.TREE({ref:r}),re.default.TREE({ref:i})]})}async walkDifference({walkers:r,dir:i}){return await this.wrapFS(re.default.walk({...this.getRepo(),trees:r,map:async function(s,[a,o]){if(!Gw(s,i))return null;if(await(a==null?void 0:a.type())==="tree"||await(o==null?void 0:o.type())==="tree")return;let l=await(a==null?void 0:a.oid()),c=await(o==null?void 0:o.oid()),u="equal";if(l!==c&&(u="M"),l===void 0&&(u="A"),c===void 0&&(u="D"),l===void 0&&c===void 0&&(console.log("Something weird happened:"),console.log(a),console.log(o)),u!=="equal")return{path:s,type:u}}}))}async getStagedFiles(r="."){return(await this.walkDifference({walkers:[re.default.TREE({ref:"HEAD"}),re.default.STAGE()],dir:r})).map(n=>({vaultPath:this.getRelativeVaultPath(n.path),path:n.path}))}async getUnstagedFiles(r="."){let i,n=window.setTimeout(()=>{i=new Pa.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{let s=this.getRepo(),a=await this.wrapFS(re.default.walk({...s,trees:[re.default.WORKDIR(),re.default.STAGE()],map:async function(o,[l,c]){if(!c&&l&&await re.default.isIgnored({...s,filepath:o})||!Gw(o,r))return null;let[u,f]=await Promise.all([l&&l.type(),c&&c.type()]),d=[u,f].includes("blob");if((u==="tree"||u==="special")&&!d)return;if(f==="commit")return null;if((f==="tree"||f==="special")&&!d)return;let h=f==="blob"?await c.oid():void 0,m;return u==="blob"&&f!=="blob"?m="42":u==="blob"&&(m=await l.oid()),m?h?m!==h?{path:o,type:"M"}:null:{path:o,type:"A"}:{path:o,type:"D"}}}));return window.clearTimeout(n),i==null||i.hide(),a}catch(s){throw window.clearTimeout(n),i==null||i.hide(),this.plugin.displayError(s),s}}async getDiffString(r,i=!1,n){let s=this.getRelativeVaultPath(r),a=async(c,[u])=>{if(r==c){let f=await u.oid();return(await re.default.readBlob({...this.getRepo(),oid:f})).blob}};if(n){let c=await(0,re.readBlob)({...this.getRepo(),filepath:r,oid:n}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof re.default.Errors.NotFoundError))throw h}),u=await re.default.readCommit({...this.getRepo(),oid:n}),f=await(0,re.readBlob)({...this.getRepo(),filepath:r,oid:u.commit.parent.first()}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof re.default.Errors.NotFoundError))throw h});return cu(s,f!=null?f:"",c!=null?c:"")}let o=(await re.default.walk({...this.getRepo(),trees:[re.default.STAGE()],map:a})).first(),l=new TextDecoder().decode(o);if(i){let c=await this.resolveRef("HEAD").then(f=>(0,re.readBlob)({...this.getRepo(),filepath:r,oid:f})).then(f=>new TextDecoder().decode(f.blob)).catch(f=>{if(!(f instanceof re.default.Errors.NotFoundError))throw f});return cu(s,c!=null?c:"",l)}else{let c;return await this.app.vault.adapter.exists(s)?c=await this.app.vault.adapter.read(s):c="",cu(s,l,c)}}async getLastCommitTime(){let r=this.getRepo(),i=await this.resolveRef("HEAD"),s=(await re.default.readCommit({...r,oid:i})).commit.committer.timestamp;return new Date(s*1e3)}getFileStatusResult(r){let i=this.status_mapping[`${r[this.HEAD]}${r[this.WORKDIR]}${r[this.STAGE]}`];return{index:i[0]=="?"?"U":i[0],workingDir:i[1]=="?"?"U":i[1],path:r[this.FILE],vaultPath:this.getRelativeVaultPath(r[this.FILE])}}async checkAuthorInfo(){let r=await this.getConfig("user.name"),i=await this.getConfig("user.email");if(!r||!i)throw Error("Git author name and email are not set. Please set both fields in the settings.")}showNotice(r,i=!0){if(!this.plugin.settings.disablePopups)return new Pa.Notice(r,i?this.noticeLength:void 0)}};async function*oG(t){yield new Uint8Array(t)}async function lG(t){let e=new ReadableStream({async start(i){for await(let n of t)i.enqueue(n);i.close()}});return await new Response(e).arrayBuffer()}p();var GF=Mt(Sh()),ei=Mt(require("fs/promises")),Qn=require("obsidian"),Ge=Mt(require("path")),Mu=require("path");p();var Mh=Mt(nR(),1),Fh=Mt(Sh(),1),P$=require("child_process"),dF=Mt(Yw(),1),xl=Mt(Yw(),1),BF=require("node:events"),p0=Object.defineProperty,TG=Object.getOwnPropertyDescriptor,m0=Object.getOwnPropertyNames,CG=Object.prototype.hasOwnProperty,Y=(t,e)=>function(){return t&&(e=(0,t[m0(t)[0]])(t=0)),e},PG=(t,e)=>function(){return e||(0,t[m0(t)[0]])((e={exports:{}}).exports,e),e.exports},vt=(t,e)=>{for(var r in e)p0(t,r,{get:e[r],enumerable:!0})},RG=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of m0(e))!CG.call(t,n)&&n!==r&&p0(t,n,{get:()=>e[n],enumerable:!(i=TG(e,n))||i.enumerable});return t},ut=t=>RG(p0({},"__esModule",{value:!0}),t);function $G(...t){let e=new String(t);return Oh.set(e,t),e}function Ph(t){return t instanceof String&&Oh.has(t)}function sR(t){return Oh.get(t)||[]}var Oh,Pu=Y({"src/lib/args/pathspec.ts"(){"use strict";Oh=new WeakMap}}),Rr,zs=Y({"src/lib/errors/git-error.ts"(){"use strict";Rr=class extends Error{constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),Ru,El=Y({"src/lib/errors/git-response-error.ts"(){"use strict";zs(),Ru=class extends Rr{constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),DR,LR=Y({"src/lib/errors/task-configuration-error.ts"(){"use strict";zs(),DR=class extends Rr{constructor(t){super(void 0,t)}}}});function BR(t){return typeof t!="function"?Ma:t}function NR(t){return typeof t=="function"&&t!==Ma}function HR(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function UR(t,e=0){return GR(t)&&t.length>e?t[e]:void 0}function Oa(t,e=0){if(GR(t)&&t.length>e)return t[t.length-1-e]}function GR(t){return!!(t&&typeof t.length=="number")}function $u(t="",e=!0,r=` -`){return t.split(r).reduce((i,n)=>{let s=e?n.trim():n;return s&&i.push(s),i},[])}function g0(t,e){return $u(t,!0).map(r=>e(r))}function v0(t){return(0,Mh.exists)(t,Mh.FOLDER)}function Oe(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}function jR(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}function Dh(t,e){if(Array.isArray(t)){let r=t.indexOf(e);r>=0&&t.splice(r,1)}else t.delete(e);return e}function mn(t){return Array.isArray(t)?t:[t]}function qR(t){return t.replace(/[\s-]+(.)/g,(e,r)=>r.toUpperCase())}function zR(t){return mn(t).map(String)}function Ve(t,e=0){if(t==null)return e;let r=parseInt(t,10);return isNaN(r)?e:r}function Tu(t,e){let r=[];for(let i=0,n=t.length;ir in t?{[r]:t[r]}:{}))}function t0(t=0){return new Promise(e=>setTimeout(e,t))}function r0(t){if(t!==!1)return t}var Sl,Ma,Fu,Lh=Y({"src/lib/utils/util.ts"(){"use strict";Sl="\0",Ma=()=>{},Fu=Object.prototype.toString.call.bind(Object.prototype.toString)}});function gn(t,e,r){return e(t)?t:arguments.length>2?r:void 0}function i0(t,e){let r=Ph(t)?"string":typeof t;return/number|string|boolean/.test(r)&&(!e||!e.includes(r))}function Bh(t){return!!t&&Fu(t)==="[object Object]"}function WR(t){return typeof t=="function"}var Iu,er,YR,Rh,w0,XR=Y({"src/lib/utils/argument-filters.ts"(){"use strict";Lh(),Pu(),Iu=t=>Array.isArray(t),er=t=>typeof t=="string",YR=t=>Array.isArray(t)&&t.every(er),Rh=t=>er(t)||Array.isArray(t)&&t.every(er),w0=t=>t==null||"number|boolean|function".includes(typeof t)?!1:Array.isArray(t)||typeof t=="string"||typeof t.length=="number"}}),n0,FG=Y({"src/lib/utils/exit-codes.ts"(){"use strict";n0=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))(n0||{})}}),$h,IG=Y({"src/lib/utils/git-output-streams.ts"(){"use strict";$h=class ZR{constructor(e,r){this.stdOut=e,this.stdErr=r}asStrings(){return new ZR(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}}),me,qs,OG=Y({"src/lib/utils/line-parser.ts"(){"use strict";me=class{constructor(t,e){this.matches=[],this.parse=(r,i)=>(this.resetMatches(),this._regExp.every((n,s)=>this.addMatch(n,s,r(s)))?this.useMatches(i,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}useMatches(t,e){throw new Error("LineParser:useMatches not implemented")}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(t,e,r){let i=r&&t.exec(r);return i&&this.pushMatch(e,i),!!i}pushMatch(t,e){this.matches.push(...e.slice(1))}},qs=class extends me{addMatch(t,e,r){return/^remote:\s/.test(String(r))&&super.addMatch(t,e,r)}pushMatch(t,e){(t>0||e.length>1)&&super.pushMatch(t,e)}}}});function KR(...t){let e=process.cwd(),r=Object.assign({baseDir:e,...QR},...t.filter(i=>typeof i=="object"&&i));return r.baseDir=r.baseDir||e,r.trimmed=r.trimmed===!0,r}var QR,MG=Y({"src/lib/utils/simple-git-options.ts"(){"use strict";QR={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function y0(t,e=[]){return Bh(t)?Object.keys(t).reduce((r,i)=>{let n=t[i];if(Ph(n))r.push(n);else if(i0(n,["boolean"]))r.push(i+"="+n);else if(Array.isArray(n))for(let s of n)i0(s,["string","number"])||r.push(i+"="+s);else r.push(i);return r},e):e}function Cr(t,e=0,r=!1){let i=[];for(let n=0,s=e<0?t.length:e;n{for(let s=$u(n,i),a=0,o=s.length;a{if(!(a+c>=o))return s[a+c]};e.some(({parse:c})=>c(l,t))}}),t}var BG=Y({"src/lib/utils/task-parser.ts"(){"use strict";Lh()}}),JR={};vt(JR,{ExitCodes:()=>n0,GitOutputStreams:()=>$h,LineParser:()=>me,NOOP:()=>Ma,NULL:()=>Sl,RemoteLineParser:()=>qs,append:()=>Oe,appendTaskOptions:()=>y0,asArray:()=>mn,asCamelCase:()=>qR,asFunction:()=>BR,asNumber:()=>Ve,asStringArray:()=>zR,bufferToString:()=>Cu,callTaskParser:()=>s0,createInstanceConfig:()=>KR,delay:()=>t0,filterArray:()=>Iu,filterFunction:()=>WR,filterHasLength:()=>w0,filterPlainObject:()=>Bh,filterPrimitives:()=>i0,filterString:()=>er,filterStringArray:()=>YR,filterStringOrStringArray:()=>Rh,filterType:()=>gn,first:()=>UR,folderExists:()=>v0,forEachLineWithContent:()=>g0,getTrailingOptions:()=>Cr,including:()=>jR,isUserFunction:()=>NR,last:()=>Oa,objectToString:()=>Fu,orVoid:()=>r0,parseStringResponse:()=>$r,pick:()=>VR,prefixedArray:()=>Tu,remove:()=>Dh,splitOn:()=>HR,toLinesWithContent:()=>$u,trailingFunctionArgument:()=>ft,trailingOptionsArgument:()=>b0});var de=Y({"src/lib/utils/index.ts"(){"use strict";XR(),FG(),IG(),OG(),MG(),LG(),BG(),Lh()}}),e$={};vt(e$,{CheckRepoActions:()=>a0,checkIsBareRepoTask:()=>r$,checkIsRepoRootTask:()=>t$,checkIsRepoTask:()=>NG});function NG(t){switch(t){case"bare":return r$();case"root":return t$()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:Nh,parser:_0}}function t$(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:Nh,parser(e){return/^\.(git)?$/.test(e.trim())}}}function r$(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:Nh,parser:_0}}function HG(t){return/(Not a git repository|Kein Git-Repository)/i.test(String(t))}var a0,Nh,_0,i$=Y({"src/lib/tasks/check-is-repo.ts"(){"use strict";de(),a0=(t=>(t.BARE="bare",t.IN_TREE="tree",t.IS_REPO_ROOT="root",t))(a0||{}),Nh=({exitCode:t},e,r,i)=>{if(t===128&&HG(e))return r(Buffer.from("false"));i(e)},_0=t=>t.trim()==="true"}});function UG(t,e){let r=new n$(t),i=t?a$:s$;return $u(e).forEach(n=>{let s=n.replace(i,"");r.paths.push(s),(o$.test(s)?r.folders:r.files).push(s)}),r}var n$,s$,a$,o$,GG=Y({"src/lib/responses/CleanSummary.ts"(){"use strict";de(),n$=class{constructor(t){this.dryRun=t,this.paths=[],this.files=[],this.folders=[]}},s$=/^[a-z]+\s*/i,a$=/^[a-z]+\s+[a-z]+\s*/i,o$=/\/$/}}),o0={};vt(o0,{EMPTY_COMMANDS:()=>Hh,adhocExecTask:()=>l$,configurationErrorTask:()=>Pr,isBufferTask:()=>u$,isEmptyTask:()=>f$,straightThroughBufferTask:()=>c$,straightThroughStringTask:()=>mr});function l$(t){return{commands:Hh,format:"empty",parser:t}}function Pr(t){return{commands:Hh,format:"empty",parser(){throw typeof t=="string"?new DR(t):t}}}function mr(t,e=!1){return{commands:t,format:"utf-8",parser(r){return e?String(r).trim():r}}}function c$(t){return{commands:t,format:"buffer",parser(e){return e}}}function u$(t){return t.format==="buffer"}function f$(t){return t.format==="empty"||!t.commands.length}var Hh,gt=Y({"src/lib/tasks/task.ts"(){"use strict";LR(),Hh=[]}}),d$={};vt(d$,{CONFIG_ERROR_INTERACTIVE_MODE:()=>x0,CONFIG_ERROR_MODE_REQUIRED:()=>S0,CONFIG_ERROR_UNKNOWN_OPTION:()=>E0,CleanOptions:()=>Ia,cleanTask:()=>h$,cleanWithOptionsTask:()=>jG,isCleanOptionsArray:()=>qG});function jG(t,e){let{cleanMode:r,options:i,valid:n}=zG(t);return r?n.options?(i.push(...e),i.some(YG)?Pr(x0):h$(r,i)):Pr(E0+JSON.stringify(t)):Pr(S0)}function h$(t,e){return{commands:["clean",`-${t}`,...e],format:"utf-8",parser(i){return UG(t==="n",i)}}}function qG(t){return Array.isArray(t)&&t.every(e=>k0.has(e))}function zG(t){let e,r=[],i={cleanMode:!1,options:!0};return t.replace(/[^a-z]i/g,"").split("").forEach(n=>{VG(n)?(e=n,i.cleanMode=!0):i.options=i.options&&WG(r[r.length]=`-${n}`)}),{cleanMode:e,options:r,valid:i}}function VG(t){return t==="f"||t==="n"}function WG(t){return/^-[a-z]$/i.test(t)&&k0.has(t.charAt(1))}function YG(t){return/^-[^\-]/.test(t)?t.indexOf("i")>0:t==="--interactive"}var x0,S0,E0,Ia,k0,p$=Y({"src/lib/tasks/clean.ts"(){"use strict";GG(),de(),gt(),x0="Git clean interactive mode is not supported",S0='Git clean mode parameter ("n" or "f") is required',E0="Git clean unknown option found in: ",Ia=(t=>(t.DRY_RUN="n",t.FORCE="f",t.IGNORED_INCLUDED="x",t.IGNORED_ONLY="X",t.EXCLUDING="e",t.QUIET="q",t.RECURSIVE="d",t))(Ia||{}),k0=new Set(["i",...zR(Object.values(Ia))])}});function XG(t){let e=new g$;for(let r of m$(t))e.addValue(r.file,String(r.key),r.value);return e}function ZG(t,e){let r=null,i=[],n=new Map;for(let s of m$(t,e))s.key===e&&(i.push(r=s.value),n.has(s.file)||n.set(s.file,[]),n.get(s.file).push(r));return{key:e,paths:Array.from(n.keys()),scopes:n,value:r,values:i}}function KG(t){return t.replace(/^(file):/,"")}function*m$(t,e=null){let r=t.split("\0");for(let i=0,n=r.length-1;iObject.assign(t,this.values[e]),{})),this._all}addFile(t){if(!(t in this.values)){let e=Oa(this.files);this.values[t]=e?Object.create(this.values[e]):{},this.files.push(t)}return this.values[t]}addValue(t,e,r){let i=this.addFile(t);i.hasOwnProperty(e)?Array.isArray(i[e])?i[e].push(r):i[e]=[i[e],r]:i[e]=r,this._all=void 0}}}});function Xw(t,e){return typeof t=="string"&&l0.hasOwnProperty(t)?t:e}function JG(t,e,r,i){let n=["config",`--${i}`];return r&&n.push("--add"),n.push(t,e),{commands:n,format:"utf-8",parser(s){return s}}}function ej(t,e){let r=["config","--null","--show-origin","--get-all",t];return e&&r.splice(1,0,`--${e}`),{commands:r,format:"utf-8",parser(i){return ZG(i,t)}}}function tj(t){let e=["config","--list","--show-origin","--null"];return t&&e.push(`--${t}`),{commands:e,format:"utf-8",parser(r){return XG(r)}}}function rj(){return{addConfig(t,e,...r){return this._runTask(JG(t,e,r[0]===!0,Xw(r[1],"local")),ft(arguments))},getConfig(t,e){return this._runTask(ej(t,Xw(e,void 0)),ft(arguments))},listConfig(...t){return this._runTask(tj(Xw(t[0],void 0)),ft(arguments))}}}var l0,v$=Y({"src/lib/tasks/config.ts"(){"use strict";QG(),de(),l0=(t=>(t.system="system",t.global="global",t.local="local",t.worktree="worktree",t))(l0||{})}});function ij(t){return w$.has(t)}var Zw,w$,y$=Y({"src/lib/tasks/diff-name-status.ts"(){"use strict";Zw=(t=>(t.ADDED="A",t.COPIED="C",t.DELETED="D",t.MODIFIED="M",t.RENAMED="R",t.CHANGED="T",t.UNMERGED="U",t.UNKNOWN="X",t.BROKEN="B",t))(Zw||{}),w$=new Set(Object.values(Zw))}});function nj(...t){return new _$().param(...t)}function sj(t){let e=new Set,r={};return g0(t,i=>{let[n,s,a]=i.split(Sl);e.add(n),(r[n]=r[n]||[]).push({line:Ve(s),path:n,preview:a})}),{paths:e,results:r}}function aj(){return{grep(t){let e=ft(arguments),r=Cr(arguments);for(let n of b$)if(r.includes(n))return this._runTask(Pr(`git.grep: use of "${n}" is not supported.`),e);typeof t=="string"&&(t=nj().param(t));let i=["grep","--null","-n","--full-name",...r,...t];return this._runTask({commands:i,format:"utf-8",parser(n){return sj(n)}},e)}}}var b$,Au,aR,_$,x$=Y({"src/lib/tasks/grep.ts"(){"use strict";de(),gt(),b$=["-h"],Au=Symbol("grepQuery"),_$=class{constructor(){this[aR]=[]}*[(aR=Au,Symbol.iterator)](){for(let t of this[Au])yield t}and(...t){return t.length&&this[Au].push("--and","(",...Tu(t,"-e"),")"),this}param(...t){return this[Au].push(...Tu(t,"-e")),this}}}}),S$={};vt(S$,{ResetMode:()=>Ah,getResetMode:()=>lj,resetTask:()=>oj});function oj(t,e){let r=["reset"];return E$(t)&&r.push(`--${t}`),r.push(...e),mr(r)}function lj(t){if(E$(t))return t;switch(typeof t){case"string":case"undefined":return"soft"}}function E$(t){return k$.includes(t)}var Ah,k$,A$=Y({"src/lib/tasks/reset.ts"(){"use strict";gt(),Ah=(t=>(t.MIXED="mixed",t.SOFT="soft",t.HARD="hard",t.MERGE="merge",t.KEEP="keep",t))(Ah||{}),k$=Array.from(Object.values(Ah))}});function cj(){return(0,Fh.default)("simple-git")}function oR(t,e,r){return!e||!String(e).replace(/\s*/,"")?r?(i,...n)=>{t(i,...n),r(i,...n)}:t:(i,...n)=>{t(`%s ${i}`,e,...n),r&&r(i,...n)}}function uj(t,e,{namespace:r}){if(typeof t=="string")return t;let i=e&&e.namespace||"";return i.startsWith(r)?i.substr(r.length+1):i||r}function A0(t,e,r,i=cj()){let n=t&&`[${t}]`||"",s=[],a=typeof e=="string"?i.extend(e):e,o=uj(gn(e,er),a,i);return c(r);function l(u,f){return Oe(s,A0(t,o.replace(/^[^:]+/,u),f,i))}function c(u){let f=u&&`[${u}]`||"",d=a&&oR(a,f)||Ma,h=oR(i,`${n} ${f}`,d);return Object.assign(a?d:h,{label:t,sibling:l,info:h,step:c})}}var T$=Y({"src/lib/git-logger.ts"(){"use strict";de(),Fh.default.formatters.L=t=>String(w0(t)?t.length:"-"),Fh.default.formatters.B=t=>Buffer.isBuffer(t)?t.toString("utf8"):Fu(t)}}),C$,fj=Y({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";var t;zs(),T$(),C$=(t=class{constructor(r="GitExecutor"){this.logLabel=r,this._queue=new Map}withProgress(r){return this._queue.get(r)}createProgress(r){let i=t.getName(r.commands[0]),n=A0(this.logLabel,i);return{task:r,logger:n,name:i}}push(r){let i=this.createProgress(r);return i.logger("Adding task to the queue, commands = %o",r.commands),this._queue.set(r,i),i}fatal(r){for(let[i,{logger:n}]of Array.from(this._queue.entries()))i===r.task?(n.info("Failed %o",r),n("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):n.info("A fatal exception occurred in a previous task, the queue has been purged: %o",r.message),this.complete(i);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(r){this.withProgress(r)&&this._queue.delete(r)}attempt(r){let i=this.withProgress(r);if(!i)throw new Rr(void 0,"TasksPendingQueue: attempt called for an unknown task");return i.logger("Starting task"),i}static getName(r="empty"){return`task:${r}:${++t.counter}`}},t.counter=0,t)}});function Fa(t,e){return{method:UR(t.commands)||"",commands:e}}function dj(t,e){return r=>{e("[ERROR] child process exception %o",r),t.push(Buffer.from(String(r.stack),"ascii"))}}function lR(t,e,r,i){return n=>{r("%s received %L bytes",e,n),i("%B",n),t.push(n)}}var c0,hj=Y({"src/lib/runners/git-executor-chain.ts"(){"use strict";zs(),gt(),de(),fj(),c0=class{constructor(t,e,r){this._executor=t,this._scheduler=e,this._plugins=r,this._chain=Promise.resolve(),this._queue=new C$}get cwd(){return this._cwd||this._executor.cwd}set cwd(t){this._cwd=t}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(t){return this._queue.push(t),this._chain=this._chain.then(()=>this.attemptTask(t))}async attemptTask(t){let e=await this._scheduler.next(),r=()=>this._queue.complete(t);try{let{logger:i}=this._queue.attempt(t);return await(f$(t)?this.attemptEmptyTask(t,i):this.attemptRemoteTask(t,i))}catch(i){throw this.onFatalException(t,i)}finally{r(),e()}}onFatalException(t,e){let r=e instanceof Rr?Object.assign(e,{task:t}):new Rr(t,e&&String(e));return this._chain=Promise.resolve(),this._queue.fatal(r),r}async attemptRemoteTask(t,e){let r=this._plugins.exec("spawn.binary","",Fa(t,t.commands)),i=this._plugins.exec("spawn.args",[...t.commands],Fa(t,t.commands)),n=await this.gitResponse(t,r,i,this.outputHandler,e.step("SPAWN")),s=await this.handleTaskData(t,i,n,e.step("HANDLE"));return e("passing response to task's parser as a %s",t.format),u$(t)?s0(t.parser,s):s0(t.parser,s.asStrings())}async attemptEmptyTask(t,e){return e("empty task bypassing child process to call to task's parser"),t.parser(this)}handleTaskData(t,e,r,i){let{exitCode:n,rejection:s,stdOut:a,stdErr:o}=r;return new Promise((l,c)=>{i("Preparing to handle process response exitCode=%d stdOut=",n);let{error:u}=this._plugins.exec("task.error",{error:s},{...Fa(t,e),...r});if(u&&t.onError)return i.info("exitCode=%s handling with custom error handler"),t.onError(r,u,f=>{i.info("custom error handler treated as success"),i("custom error returned a %s",Fu(f)),l(new $h(Array.isArray(f)?Buffer.concat(f):f,Buffer.concat(o)))},c);if(u)return i.info("handling as error: exitCode=%s stdErr=%s rejection=%o",n,o.length,s),c(u);i.info("retrieving task output complete"),l(new $h(Buffer.concat(a),Buffer.concat(o)))})}async gitResponse(t,e,r,i,n){let s=n.sibling("output"),a=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},Fa(t,t.commands));return new Promise(o=>{let l=[],c=[];n.info("%s %o",e,r),n("%O",a);let u=this._beforeSpawn(t,r);if(u)return o({stdOut:l,stdErr:c,exitCode:9901,rejection:u});this._plugins.exec("spawn.before",void 0,{...Fa(t,r),kill(d){u=d||u}});let f=(0,P$.spawn)(e,r,a);f.stdout.on("data",lR(l,"stdOut",n,s.step("stdOut"))),f.stderr.on("data",lR(c,"stdErr",n,s.step("stdErr"))),f.on("error",dj(c,n)),i&&(n("Passing child process stdOut/stdErr to custom outputHandler"),i(e,f.stdout,f.stderr,[...r])),this._plugins.exec("spawn.after",void 0,{...Fa(t,r),spawned:f,close(d,h){o({stdOut:l,stdErr:c,exitCode:d,rejection:u||h})},kill(d){f.killed||(u=d,f.kill("SIGINT"))}})})}_beforeSpawn(t,e){let r;return this._plugins.exec("spawn.before",void 0,{...Fa(t,e),kill(i){r=i||r}}),r}}}}),R$={};vt(R$,{GitExecutor:()=>$$});var $$,pj=Y({"src/lib/runners/git-executor.ts"(){"use strict";hj(),$$=class{constructor(t,e,r){this.cwd=t,this._scheduler=e,this._plugins=r,this._chain=new c0(this,this._scheduler,this._plugins)}chain(){return new c0(this,this._scheduler,this._plugins)}push(t){return this._chain.push(t)}}}});function mj(t,e,r=Ma){let i=s=>{r(null,s)},n=s=>{(s==null?void 0:s.task)===t&&r(s instanceof Ru?gj(s):s,void 0)};e.then(i,n)}function gj(t){let e=i=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${i} should be GitResponseError.git.${i}, this will no longer be available in version 3`),e=Ma};return Object.create(t,Object.getOwnPropertyNames(t.git).reduce(r,{}));function r(i,n){return n in t||(i[n]={enumerable:!1,configurable:!1,get(){return e(n),t.git[n]}}),i}}var vj=Y({"src/lib/task-callback.ts"(){"use strict";El(),de()}});function cR(t,e){return l$(r=>{if(!v0(t))throw new Error(`Git.cwd: cannot change to non-directory "${t}"`);return(e||r).cwd=t})}var wj=Y({"src/lib/tasks/change-working-directory.ts"(){"use strict";de(),gt()}});function Kw(t){let e=["checkout",...t];return e[1]==="-b"&&e.includes("-B")&&(e[1]=Dh(e,"-B")),mr(e)}function yj(){return{checkout(){return this._runTask(Kw(Cr(arguments,1)),ft(arguments))},checkoutBranch(t,e){return this._runTask(Kw(["-b",t,e,...Cr(arguments)]),ft(arguments))},checkoutLocalBranch(t){return this._runTask(Kw(["-b",t,...Cr(arguments)]),ft(arguments))}}}var bj=Y({"src/lib/tasks/checkout.ts"(){"use strict";de(),gt()}});function _j(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function xj(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(t){return $r(_j(),[F$],t)}})}}}var F$,Sj=Y({"src/lib/tasks/count-objects.ts"(){"use strict";de(),F$=new me(/([a-z-]+): (\d+)$/,(t,[e,r])=>{let i=qR(e);t.hasOwnProperty(i)&&(t[i]=Ve(r))})}});function Ej(t){return $r({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},I$,t)}var I$,kj=Y({"src/lib/parsers/parse-commit.ts"(){"use strict";de(),I$=[new me(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(t,[e,r,i])=>{t.branch=e,t.commit=i,t.root=!!r}),new me(/\s*Author:\s(.+)/i,(t,[e])=>{let r=e.split("<"),i=r.pop();!i||!i.includes("@")||(t.author={email:i.substr(0,i.length-1),name:r.join("<").trim()})}),new me(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(t,[e,r,i])=>{t.summary.changes=parseInt(e,10)||0,t.summary.insertions=parseInt(r,10)||0,t.summary.deletions=parseInt(i,10)||0}),new me(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(t,[e,r,i])=>{t.summary.changes=parseInt(e,10)||0;let n=parseInt(r,10)||0;i==="-"?t.summary.deletions=n:i==="+"&&(t.summary.insertions=n)})]}});function Aj(t,e,r){return{commands:["-c","core.abbrev=40","commit",...Tu(t,"-m"),...e,...r],format:"utf-8",parser:Ej}}function Tj(){return{commit(e,...r){let i=ft(arguments),n=t(e)||Aj(mn(e),mn(gn(r[0],Rh,[])),[...gn(r[1],Iu,[]),...Cr(arguments,0,!0)]);return this._runTask(n,i)}};function t(e){return!Rh(e)&&Pr("git.commit: requires the commit message to be supplied as a string/string[]")}}var Cj=Y({"src/lib/tasks/commit.ts"(){"use strict";kj(),de(),gt()}});function Pj(){return{firstCommit(){return this._runTask(mr(["rev-list","--max-parents=0","HEAD"],!0),ft(arguments))}}}var Rj=Y({"src/lib/tasks/first-commit.ts"(){"use strict";de(),gt()}});function $j(t,e){let r=["hash-object",t];return e&&r.push("-w"),mr(r,!0)}var Fj=Y({"src/lib/tasks/hash-object.ts"(){"use strict";gt()}});function Ij(t,e,r){let i=String(r).trim(),n;if(n=O$.exec(i))return new Th(t,e,!1,n[1]);if(n=M$.exec(i))return new Th(t,e,!0,n[1]);let s="",a=i.split(" ");for(;a.length;)if(a.shift()==="in"){s=a.join(" ");break}return new Th(t,e,/^re/i.test(i),s)}var Th,O$,M$,Oj=Y({"src/lib/responses/InitSummary.ts"(){"use strict";Th=class{constructor(t,e,r,i){this.bare=t,this.path=e,this.existing=r,this.gitDir=i}},O$=/^Init.+ repository in (.+)$/,M$=/^Rein.+ in (.+)$/}});function Mj(t){return t.includes(T0)}function Dj(t=!1,e,r){let i=["init",...r];return t&&!Mj(i)&&i.splice(1,0,T0),{commands:i,format:"utf-8",parser(n){return Ij(i.includes("--bare"),e,n)}}}var T0,Lj=Y({"src/lib/tasks/init.ts"(){"use strict";Oj(),T0="--bare"}});function C0(t){for(let e=0;e$r(new D$,e,r,!1)}var Qw,uR,fR,dR,B$,N$=Y({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";Ou(),Nj(),y$(),de(),Qw=[new me(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(t,[e,r,i=""])=>{t.files.push({file:e.trim(),changes:Ve(r),insertions:i.replace(/[^+]/g,"").length,deletions:i.replace(/[^-]/g,"").length,binary:!1})}),new me(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(t,[e,r,i])=>{t.files.push({file:e.trim(),before:Ve(r),after:Ve(i),binary:!0})}),new me(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(t,[e,r])=>{let i=/(\d+) i/.exec(r),n=/(\d+) d/.exec(r);t.changed=Ve(e),t.insertions=Ve(i==null?void 0:i[1]),t.deletions=Ve(n==null?void 0:n[1])})],uR=[new me(/(\d+)\t(\d+)\t(.+)$/,(t,[e,r,i])=>{let n=Ve(e),s=Ve(r);t.changed++,t.insertions+=n,t.deletions+=s,t.files.push({file:i,changes:n+s,insertions:n,deletions:s,binary:!1})}),new me(/-\t-\t(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,after:0,before:0,binary:!0})})],fR=[new me(/(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,changes:0,insertions:0,deletions:0,binary:!1})})],dR=[new me(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(t,[e,r,i,n,s])=>{t.changed++,t.files.push({file:s!=null?s:i,changes:0,insertions:0,deletions:0,binary:!1,status:r0(ij(e)&&e),from:r0(!!s&&i!==s&&i),similarity:Ve(r)})})],B$={"":Qw,"--stat":Qw,"--numstat":uR,"--name-status":dR,"--name-only":fR}}});function Hj(t,e){return e.reduce((r,i,n)=>(r[i]=t[n]||"",r),Object.create({diff:null}))}function H$(t=F0,e=U$,r=""){let i=L$(r);return function(n){let s=$u(n.trim(),!1,R0).map(function(a){let o=a.split($0),l=Hj(o[0].split(t),e);return o.length>1&&o[1].trim()&&(l.diff=i(o[1])),l});return{all:s,latest:s.length&&s[0]||null,total:s.length}}}var R0,$0,F0,U$,G$=Y({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";de(),N$(),Ou(),R0="\xF2\xF2\xF2\xF2\xF2\xF2 ",$0=" \xF2\xF2",F0=" \xF2 ",U$=["hash","date","message","refs","author_name","author_email"]}}),j$={};vt(j$,{diffSummaryTask:()=>Uj,validateLogFormatConfig:()=>Uh});function Uj(t){let e=C0(t),r=["diff"];return e===""&&(e="--stat",r.push("--stat=4096")),r.push(...t),Uh(r)||{commands:r,format:"utf-8",parser:L$(e)}}function Uh(t){let e=t.filter(Bj);if(e.length>1)return Pr(`Summary flags are mutually exclusive - pick one of ${e.join(",")}`);if(e.length&&t.includes("-z"))return Pr(`Summary flag ${e} parsing is not compatible with null termination option '-z'`)}var I0=Y({"src/lib/tasks/diff.ts"(){"use strict";Ou(),N$(),gt()}});function Gj(t,e){let r=[],i=[];return Object.keys(t).forEach(n=>{r.push(n),i.push(String(t[n]))}),[r,i.join(e)]}function jj(t){return Object.keys(t).reduce((e,r)=>(r in u0||(e[r]=t[r]),e),{})}function q$(t={},e=[]){let r=gn(t.splitter,er,F0),i=Bh(t.format)?t.format:{hash:"%H",date:t.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:t.multiLine?"%B":"%b",author_name:t.mailMap!==!1?"%aN":"%an",author_email:t.mailMap!==!1?"%aE":"%ae"},[n,s]=Gj(i,r),a=[],o=[`--pretty=format:${R0}${s}${$0}`,...e],l=t.n||t["max-count"]||t.maxCount;if(l&&o.push(`--max-count=${l}`),t.from||t.to){let c=t.symmetric!==!1?"...":"..";a.push(`${t.from||""}${c}${t.to||""}`)}return er(t.file)&&o.push("--follow",$G(t.file)),y0(jj(t),o),{fields:n,splitter:r,commands:[...o,...a]}}function qj(t,e,r){let i=H$(t,e,C0(r));return{commands:["log",...r],format:"utf-8",parser:i}}function zj(){return{log(...r){let i=ft(arguments),n=q$(b0(arguments),gn(arguments[0],Iu)),s=e(...r)||Uh(n.commands)||t(n);return this._runTask(s,i)}};function t(r){return qj(r.splitter,r.fields,r.commands)}function e(r,i){return er(r)&&er(i)&&Pr("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}var u0,z$=Y({"src/lib/tasks/log.ts"(){"use strict";Ou(),Pu(),G$(),de(),gt(),I0(),u0=(t=>(t[t["--pretty"]=0]="--pretty",t[t["max-count"]=1]="max-count",t[t.maxCount=2]="maxCount",t[t.n=3]="n",t[t.file=4]="file",t[t.format=5]="format",t[t.from=6]="from",t[t.to=7]="to",t[t.splitter=8]="splitter",t[t.symmetric=9]="symmetric",t[t.mailMap=10]="mailMap",t[t.multiLine=11]="multiLine",t[t.strictDate=12]="strictDate",t))(u0||{})}}),Ch,V$,Vj=Y({"src/lib/responses/MergeSummary.ts"(){"use strict";Ch=class{constructor(t,e=null,r){this.reason=t,this.file=e,this.meta=r}toString(){return`${this.file}:${this.reason}`}},V$=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),f0,W$,Wj=Y({"src/lib/responses/PullSummary.ts"(){"use strict";f0=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},W$=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function Jw(t){return t.objects=t.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function hR(t){let e=/^\s*(\d+)/.exec(t),r=/delta (\d+)/i.exec(t);return{count:Ve(e&&e[1]||"0"),delta:Ve(r&&r[1]||"0")}}var Y$,Yj=Y({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";de(),Y$=[new qs(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(t,[e,r])=>{let i=e.toLowerCase(),n=Jw(t.remoteMessages);Object.assign(n,{[i]:Ve(r)})}),new qs(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(t,[e,r])=>{let i=e.toLowerCase(),n=Jw(t.remoteMessages);Object.assign(n,{[i]:Ve(r)})}),new qs(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(t,[e,r,i])=>{let n=Jw(t.remoteMessages);n.total=hR(e),n.reused=hR(r),n.packReused=Ve(i)})]}});function X$(t,e){return $r({remoteMessages:new K$},Z$,e)}var Z$,K$,Q$=Y({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";de(),Yj(),Z$=[new qs(/^remote:\s*(.+)$/,(t,[e])=>(t.remoteMessages.all.push(e.trim()),!1)),...Y$,new qs([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(t,[e])=>{t.remoteMessages.pullRequestUrl=e}),new qs([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(t,[e,r,i])=>{t.remoteMessages.vulnerabilities={count:Ve(e),summary:r,url:i}})],K$=class{constructor(){this.all=[]}}}});function Xj(t,e){let r=$r(new W$,J$,[t,e]);return r.message&&r}var pR,mR,gR,vR,J$,wR,O0,eF=Y({"src/lib/parsers/parse-pull.ts"(){"use strict";Wj(),de(),Q$(),pR=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,mR=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,gR=/^(create|delete) mode \d+ (.+)/,vR=[new me(pR,(t,[e,r,i])=>{t.files.push(e),r&&(t.insertions[e]=r.length),i&&(t.deletions[e]=i.length)}),new me(mR,(t,[e,,r,,i])=>r!==void 0||i!==void 0?(t.summary.changes=+e||0,t.summary.insertions=+r||0,t.summary.deletions=+i||0,!0):!1),new me(gR,(t,[e,r])=>{Oe(t.files,r),Oe(e==="create"?t.created:t.deleted,r)})],J$=[new me(/^from\s(.+)$/i,(t,[e])=>void(t.remote=e)),new me(/^fatal:\s(.+)$/,(t,[e])=>void(t.message=e)),new me(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(t,[e,r,i,n])=>{t.branch.local=i,t.hash.local=e,t.branch.remote=n,t.hash.remote=r})],wR=(t,e)=>$r(new f0,vR,[t,e]),O0=(t,e)=>Object.assign(new f0,wR(t,e),X$(t,e))}}),yR,tF,bR,Zj=Y({"src/lib/parsers/parse-merge.ts"(){"use strict";Vj(),de(),eF(),yR=[new me(/^Auto-merging\s+(.+)$/,(t,[e])=>{t.merges.push(e)}),new me(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(t,[e,r])=>{t.conflicts.push(new Ch(e,r))}),new me(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(t,[e,r,i])=>{t.conflicts.push(new Ch(e,r,{deleteRef:i}))}),new me(/^CONFLICT\s+\((.+)\):/,(t,[e])=>{t.conflicts.push(new Ch(e,null))}),new me(/^Automatic merge failed;\s+(.+)$/,(t,[e])=>{t.result=e})],tF=(t,e)=>Object.assign(bR(t,e),O0(t,e)),bR=t=>$r(new V$,yR,t)}});function _R(t){return t.length?{commands:["merge",...t],format:"utf-8",parser(e,r){let i=tF(e,r);if(i.failed)throw new Ru(i);return i}}:Pr("Git.merge requires at least one option")}var Kj=Y({"src/lib/tasks/merge.ts"(){"use strict";El(),Zj(),gt()}});function Qj(t,e,r){let i=r.includes("deleted"),n=r.includes("tag")||/^refs\/tags/.test(t),s=!r.includes("new");return{deleted:i,tag:n,branch:!n,new:!s,alreadyUpdated:s,local:t,remote:e}}var xR,rF,SR,Jj=Y({"src/lib/parsers/parse-push.ts"(){"use strict";de(),Q$(),xR=[new me(/^Pushing to (.+)$/,(t,[e])=>{t.repo=e}),new me(/^updating local tracking ref '(.+)'/,(t,[e])=>{t.ref={...t.ref||{},local:e}}),new me(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(t,[e,r,i])=>{t.pushed.push(Qj(e,r,i))}),new me(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(t,[e,r,i])=>{t.branch={...t.branch||{},local:e,remote:r,remoteName:i}}),new me(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(t,[e,r,i,n])=>{t.update={head:{local:e,remote:r},hash:{from:i,to:n}}})],rF=(t,e)=>{let r=SR(t,e),i=X$(t,e);return{...r,...i}},SR=(t,e)=>$r({pushed:[]},xR,[t,e])}}),iF={};vt(iF,{pushTagsTask:()=>eq,pushTask:()=>M0});function eq(t={},e){return Oe(e,"--tags"),M0(t,e)}function M0(t={},e){let r=["push",...e];return t.branch&&r.splice(1,0,t.branch),t.remote&&r.splice(1,0,t.remote),Dh(r,"-v"),Oe(r,"--verbose"),Oe(r,"--porcelain"),{commands:r,format:"utf-8",parser:rF}}var nF=Y({"src/lib/tasks/push.ts"(){"use strict";Jj(),de()}});function tq(){return{showBuffer(){let t=["show",...Cr(arguments,1)];return t.includes("--binary")||t.splice(1,0,"--binary"),this._runTask(c$(t),ft(arguments))},show(){let t=["show",...Cr(arguments,1)];return this._runTask(mr(t),ft(arguments))}}}var rq=Y({"src/lib/tasks/show.ts"(){"use strict";de(),gt()}}),ER,sF,iq=Y({"src/lib/responses/FileStatusSummary.ts"(){"use strict";ER=/^(.+)\0(.+)$/,sF=class{constructor(t,e,r){if(this.path=t,this.index=e,this.working_dir=r,e==="R"||r==="R"){let i=ER.exec(t)||[null,t,t];this.from=i[2]||"",this.path=i[1]||""}}}}});function kR(t){let[e,r]=t.split(Sl);return{from:r||e,to:e}}function Jr(t,e,r){return[`${t}${e}`,r]}function e0(t,...e){return e.map(r=>Jr(t,r,(i,n)=>Oe(i.conflicted,n)))}function nq(t,e){let r=e.trim();switch(" "){case r.charAt(2):return i(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return i(" ",r.charAt(0),r.substr(2));default:return}function i(n,s,a){let o=`${n}${s}`,l=aF.get(o);l&&l(t,a),o!=="##"&&o!=="!!"&&t.files.push(new sF(a,n,s))}}var AR,aF,oF,sq=Y({"src/lib/responses/StatusSummary.ts"(){"use strict";de(),iq(),AR=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},aF=new Map([Jr(" ","A",(t,e)=>Oe(t.created,e)),Jr(" ","D",(t,e)=>Oe(t.deleted,e)),Jr(" ","M",(t,e)=>Oe(t.modified,e)),Jr("A"," ",(t,e)=>Oe(t.created,e)&&Oe(t.staged,e)),Jr("A","M",(t,e)=>Oe(t.created,e)&&Oe(t.staged,e)&&Oe(t.modified,e)),Jr("D"," ",(t,e)=>Oe(t.deleted,e)&&Oe(t.staged,e)),Jr("M"," ",(t,e)=>Oe(t.modified,e)&&Oe(t.staged,e)),Jr("M","M",(t,e)=>Oe(t.modified,e)&&Oe(t.staged,e)),Jr("R"," ",(t,e)=>{Oe(t.renamed,kR(e))}),Jr("R","M",(t,e)=>{let r=kR(e);Oe(t.renamed,r),Oe(t.modified,r.to)}),Jr("!","!",(t,e)=>{Oe(t.ignored=t.ignored||[],e)}),Jr("?","?",(t,e)=>Oe(t.not_added,e)),...e0("A","A","U"),...e0("D","D","U"),...e0("U","A","D","U"),["##",(t,e)=>{let r=/ahead (\d+)/,i=/behind (\d+)/,n=/^(.+?(?=(?:\.{3}|\s|$)))/,s=/\.{3}(\S*)/,a=/\son\s([\S]+)$/,o;o=r.exec(e),t.ahead=o&&+o[1]||0,o=i.exec(e),t.behind=o&&+o[1]||0,o=n.exec(e),t.current=o&&o[1],o=s.exec(e),t.tracking=o&&o[1],o=a.exec(e),t.current=o&&o[1]||t.current,t.detached=/\(no branch\)/.test(e)}]]),oF=function(t){let e=t.split(Sl),r=new AR;for(let i=0,n=e.length;i!lF.includes(r))],parser(r){return oF(r)}}}var lF,oq=Y({"src/lib/tasks/status.ts"(){"use strict";sq(),lF=["--null","-z"]}});function Ih(t=0,e=0,r=0,i="",n=!0){return Object.defineProperty({major:t,minor:e,patch:r,agent:i,installed:n},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function lq(){return Ih(0,0,0,"",!1)}function cq(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:uq,onError(t,e,r,i){if(t.exitCode===-2)return r(Buffer.from(D0));i(e)}})}}}function uq(t){return t===D0?lq():$r(Ih(0,0,0,t),cF,t)}var D0,cF,fq=Y({"src/lib/tasks/version.ts"(){"use strict";de(),D0="installed=false",cF=[new me(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(t,[e,r,i,n=""])=>{Object.assign(t,Ih(Ve(e),Ve(r),Ve(i),n))}),new me(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(t,[e,r,i,n=""])=>{Object.assign(t,Ih(Ve(e),Ve(r),i,n))})]}}),uF={};vt(uF,{SimpleGitApi:()=>d0});var d0,dq=Y({"src/lib/simple-git-api.ts"(){"use strict";vj(),wj(),bj(),Sj(),Cj(),v$(),Rj(),x$(),Fj(),Lj(),z$(),Kj(),nF(),rq(),oq(),gt(),fq(),de(),d0=class{constructor(t){this._executor=t}_runTask(t,e){let r=this._executor.chain(),i=r.push(t);return e&&mj(t,i,e),Object.create(this,{then:{value:i.then.bind(i)},catch:{value:i.catch.bind(i)},_executor:{value:r}})}add(t){return this._runTask(mr(["add",...mn(t)]),ft(arguments))}cwd(t){let e=ft(arguments);return typeof t=="string"?this._runTask(cR(t,this._executor),e):typeof(t==null?void 0:t.path)=="string"?this._runTask(cR(t.path,t.root&&this._executor||void 0),e):this._runTask(Pr("Git.cwd: workingDirectory must be supplied as a string"),e)}hashObject(t,e){return this._runTask($j(t,e===!0),ft(arguments))}init(t){return this._runTask(Dj(t===!0,this._executor.cwd,Cr(arguments)),ft(arguments))}merge(){return this._runTask(_R(Cr(arguments)),ft(arguments))}mergeFromTo(t,e){return er(t)&&er(e)?this._runTask(_R([t,e,...Cr(arguments)]),ft(arguments,!1)):this._runTask(Pr("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(t){return this._executor.outputHandler=t,this}push(){let t=M0({remote:gn(arguments[0],er),branch:gn(arguments[1],er)},Cr(arguments));return this._runTask(t,ft(arguments))}stash(){return this._runTask(mr(["stash",...Cr(arguments)]),ft(arguments))}status(){return this._runTask(aq(Cr(arguments)),ft(arguments))}},Object.assign(d0.prototype,yj(),Tj(),rj(),xj(),Pj(),aj(),zj(),tq(),cq())}}),fF={};vt(fF,{Scheduler:()=>hF});var TR,hF,hq=Y({"src/lib/runners/scheduler.ts"(){"use strict";de(),T$(),TR=(()=>{let t=0;return()=>{t++;let{promise:e,done:r}=(0,dF.createDeferred)();return{promise:e,done:r,id:t}}})(),hF=class{constructor(t=2){this.concurrency=t,this.logger=A0("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",t)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let t=Oe(this.running,this.pending.shift());this.logger("Attempting id=%s",t.id),t.done(()=>{this.logger("Completing id=",t.id),Dh(this.running,t),this.schedule()})}next(){let{promise:t,id:e}=Oe(this.pending,TR());return this.logger("Scheduling id=%s",e),this.schedule(),t}}}}),pF={};vt(pF,{applyPatchTask:()=>pq});function pq(t,e){return mr(["apply",...e,...t])}var mq=Y({"src/lib/tasks/apply-patch.ts"(){"use strict";gt()}});function gq(t,e){return{branch:t,hash:e,success:!0}}function vq(t){return{branch:t,hash:null,success:!1}}var mF,wq=Y({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";mF=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function gF(t,e){return e===1&&h0.test(t)}var CR,h0,PR,Gh,yq=Y({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";wq(),de(),CR=/(\S+)\s+\(\S+\s([^)]+)\)/,h0=/^error[^']+'([^']+)'/m,PR=[new me(CR,(t,[e,r])=>{let i=gq(e,r);t.all.push(i),t.branches[e]=i}),new me(h0,(t,[e])=>{let r=vq(e);t.errors.push(r),t.all.push(r),t.branches[e]=r})],Gh=(t,e)=>$r(new mF,PR,[t,e])}}),vF,bq=Y({"src/lib/responses/BranchSummary.ts"(){"use strict";vF=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(t,e,r,i,n){t==="*"&&(this.detached=e,this.current=r),this.all.push(r),this.branches[r]={current:t==="*",linkedWorkTree:t==="+",name:r,commit:i,label:n}}}}});function RR(t){return t?t.charAt(0):""}function wF(t){return $r(new vF,yF,t)}var yF,_q=Y({"src/lib/parsers/parse-branch.ts"(){"use strict";bq(),de(),yF=[new me(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(t,[e,r,i,n])=>{t.push(RR(e),!0,r,i,n)}),new me(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,(t,[e,r,i,n])=>{t.push(RR(e),!1,r,i,n)})]}}),bF={};vt(bF,{branchLocalTask:()=>Sq,branchTask:()=>xq,containsDeleteBranchCommand:()=>_F,deleteBranchTask:()=>kq,deleteBranchesTask:()=>Eq});function _F(t){let e=["-d","-D","--delete"];return t.some(r=>e.includes(r))}function xq(t){let e=_F(t),r=["branch",...t];return r.length===1&&r.push("-a"),r.includes("-v")||r.splice(1,0,"-v"),{format:"utf-8",commands:r,parser(i,n){return e?Gh(i,n).all[0]:wF(i)}}}function Sq(){return{format:"utf-8",commands:["branch","-v"],parser:wF}}function Eq(t,e=!1){return{format:"utf-8",commands:["branch","-v",e?"-D":"-d",...t],parser(r,i){return Gh(r,i)},onError({exitCode:r,stdOut:i},n,s,a){if(!gF(String(n),r))return a(n);s(i)}}}function kq(t,e=!1){let r={format:"utf-8",commands:["branch","-v",e?"-D":"-d",t],parser(i,n){return Gh(i,n).branches[t]},onError({exitCode:i,stdErr:n,stdOut:s},a,o,l){if(!gF(String(a),i))return l(a);throw new Ru(r.parser(Cu(s),Cu(n)),String(a))}};return r}var Aq=Y({"src/lib/tasks/branch.ts"(){"use strict";El(),yq(),_q(),de()}}),xF,Tq=Y({"src/lib/responses/CheckIgnore.ts"(){"use strict";xF=t=>t.split(/\n/g).map(e=>e.trim()).filter(e=>!!e)}}),SF={};vt(SF,{checkIgnoreTask:()=>Cq});function Cq(t){return{commands:["check-ignore",...t],format:"utf-8",parser:xF}}var Pq=Y({"src/lib/tasks/check-ignore.ts"(){"use strict";Tq()}}),EF={};vt(EF,{cloneMirrorTask:()=>$q,cloneTask:()=>kF});function Rq(t){return/^--upload-pack(=|$)/.test(t)}function kF(t,e,r){let i=["clone",...r];return er(t)&&i.push(t),er(e)&&i.push(e),i.find(Rq)?Pr("git.fetch: potential exploit argument blocked."):mr(i)}function $q(t,e,r){return Oe(r,"--mirror"),kF(t,e,r)}var Fq=Y({"src/lib/tasks/clone.ts"(){"use strict";gt(),de()}});function Iq(t,e){return $r({raw:t,remote:null,branches:[],tags:[],updated:[],deleted:[]},AF,[t,e])}var AF,Oq=Y({"src/lib/parsers/parse-fetch.ts"(){"use strict";de(),AF=[new me(/From (.+)$/,(t,[e])=>{t.remote=e}),new me(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.branches.push({name:e,tracking:r})}),new me(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.tags.push({name:e,tracking:r})}),new me(/- \[deleted]\s+\S+\s*-> (.+)$/,(t,[e])=>{t.deleted.push({tracking:e})}),new me(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(t,[e,r,i,n])=>{t.updated.push({name:i,tracking:n,to:r,from:e})})]}}),TF={};vt(TF,{fetchTask:()=>Dq});function Mq(t){return/^--upload-pack(=|$)/.test(t)}function Dq(t,e,r){let i=["fetch",...r];return t&&e&&i.push(t,e),i.find(Mq)?Pr("git.fetch: potential exploit argument blocked."):{commands:i,format:"utf-8",parser:Iq}}var Lq=Y({"src/lib/tasks/fetch.ts"(){"use strict";Oq(),gt()}});function Bq(t){return $r({moves:[]},CF,t)}var CF,Nq=Y({"src/lib/parsers/parse-move.ts"(){"use strict";de(),CF=[new me(/^Renaming (.+) to (.+)$/,(t,[e,r])=>{t.moves.push({from:e,to:r})})]}}),PF={};vt(PF,{moveTask:()=>Hq});function Hq(t,e){return{commands:["mv","-v",...mn(t),e],format:"utf-8",parser:Bq}}var Uq=Y({"src/lib/tasks/move.ts"(){"use strict";Nq(),de()}}),RF={};vt(RF,{pullTask:()=>Gq});function Gq(t,e,r){let i=["pull",...r];return t&&e&&i.splice(1,0,t,e),{commands:i,format:"utf-8",parser(n,s){return O0(n,s)},onError(n,s,a,o){let l=Xj(Cu(n.stdOut),Cu(n.stdErr));if(l)return o(new Ru(l));o(s)}}}var jq=Y({"src/lib/tasks/pull.ts"(){"use strict";El(),eF(),de()}});function qq(t){let e={};return $F(t,([r])=>e[r]={name:r}),Object.values(e)}function zq(t){let e={};return $F(t,([r,i,n])=>{e.hasOwnProperty(r)||(e[r]={name:r,refs:{fetch:"",push:""}}),n&&i&&(e[r].refs[n.replace(/[^a-z]/g,"")]=i)}),Object.values(e)}function $F(t,e){g0(t,r=>e(r.split(/\s+/)))}var Vq=Y({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";de()}}),FF={};vt(FF,{addRemoteTask:()=>Wq,getRemotesTask:()=>Yq,listRemotesTask:()=>Xq,remoteTask:()=>Zq,removeRemoteTask:()=>Kq});function Wq(t,e,r){return mr(["remote","add",...r,t,e])}function Yq(t){let e=["remote"];return t&&e.push("-v"),{commands:e,format:"utf-8",parser:t?zq:qq}}function Xq(t){let e=[...t];return e[0]!=="ls-remote"&&e.unshift("ls-remote"),mr(e)}function Zq(t){let e=[...t];return e[0]!=="remote"&&e.unshift("remote"),mr(e)}function Kq(t){return mr(["remote","remove",t])}var Qq=Y({"src/lib/tasks/remote.ts"(){"use strict";Vq(),gt()}}),IF={};vt(IF,{stashListTask:()=>Jq});function Jq(t={},e){let r=q$(t),i=["stash","list",...r.commands,...e],n=H$(r.splitter,r.fields,C0(i));return Uh(i)||{commands:i,format:"utf-8",parser:n}}var ez=Y({"src/lib/tasks/stash-list.ts"(){"use strict";Ou(),G$(),I0(),z$()}}),OF={};vt(OF,{addSubModuleTask:()=>tz,initSubModuleTask:()=>rz,subModuleTask:()=>jh,updateSubModuleTask:()=>iz});function tz(t,e){return jh(["add",t,e])}function rz(t){return jh(["init",...t])}function jh(t){let e=[...t];return e[0]!=="submodule"&&e.unshift("submodule"),mr(e)}function iz(t){return jh(["update",...t])}var nz=Y({"src/lib/tasks/sub-module.ts"(){"use strict";gt()}});function sz(t,e){let r=isNaN(t),i=isNaN(e);return r!==i?r?1:-1:r?MF(t,e):0}function MF(t,e){return t===e?0:t>e?1:-1}function az(t){return t.trim()}function kh(t){return typeof t=="string"&&parseInt(t.replace(/^\D+/g,""),10)||0}var $R,DF,oz=Y({"src/lib/responses/TagList.ts"(){"use strict";$R=class{constructor(t,e){this.all=t,this.latest=e}},DF=function(t,e=!1){let r=t.split(` -`).map(az).filter(Boolean);e||r.sort(function(n,s){let a=n.split("."),o=s.split(".");if(a.length===1||o.length===1)return sz(kh(a[0]),kh(o[0]));for(let l=0,c=Math.max(a.length,o.length);ln.indexOf(".")>=0);return new $R(r,i)}}}),LF={};vt(LF,{addAnnotatedTagTask:()=>uz,addTagTask:()=>cz,tagListTask:()=>lz});function lz(t=[]){let e=t.some(r=>/^--sort=/.test(r));return{format:"utf-8",commands:["tag","-l",...t],parser(r){return DF(r,e)}}}function cz(t){return{format:"utf-8",commands:["tag",t],parser(){return{name:t}}}}function uz(t,e){return{format:"utf-8",commands:["tag","-a","-m",e,t],parser(){return{name:t}}}}var fz=Y({"src/lib/tasks/tag.ts"(){"use strict";oz()}}),dz=PG({"src/git.js"(t,e){"use strict";var{GitExecutor:r}=(pj(),ut(R$)),{SimpleGitApi:i}=(dq(),ut(uF)),{Scheduler:n}=(hq(),ut(fF)),{configurationErrorTask:s}=(gt(),ut(o0)),{asArray:a,filterArray:o,filterPrimitives:l,filterString:c,filterStringOrStringArray:u,filterType:f,getTrailingOptions:d,trailingFunctionArgument:h,trailingOptionsArgument:m}=(de(),ut(JR)),{applyPatchTask:g}=(mq(),ut(pF)),{branchTask:v,branchLocalTask:w,deleteBranchesTask:b,deleteBranchTask:k}=(Aq(),ut(bF)),{checkIgnoreTask:x}=(Pq(),ut(SF)),{checkIsRepoTask:E}=(i$(),ut(e$)),{cloneTask:A,cloneMirrorTask:y}=(Fq(),ut(EF)),{cleanWithOptionsTask:S,isCleanOptionsArray:_}=(p$(),ut(d$)),{diffSummaryTask:T}=(I0(),ut(j$)),{fetchTask:P}=(Lq(),ut(TF)),{moveTask:D}=(Uq(),ut(PF)),{pullTask:B}=(jq(),ut(RF)),{pushTagsTask:N}=(nF(),ut(iF)),{addRemoteTask:ce,getRemotesTask:Pe,listRemotesTask:ve,remoteTask:se,removeRemoteTask:xe}=(Qq(),ut(FF)),{getResetMode:we,resetTask:z}=(A$(),ut(S$)),{stashListTask:Q}=(ez(),ut(IF)),{addSubModuleTask:j,initSubModuleTask:Le,subModuleTask:lr,updateSubModuleTask:It}=(nz(),ut(OF)),{addAnnotatedTagTask:Fe,addTagTask:At,tagListTask:Tt}=(fz(),ut(LF)),{straightThroughBufferTask:jt,straightThroughStringTask:Ze}=(gt(),ut(o0));function q(L,V){this._plugins=V,this._executor=new r(L.baseDir,new n(L.maxConcurrentProcesses),V),this._trimmed=L.trimmed}(q.prototype=Object.create(i.prototype)).constructor=q,q.prototype.customBinary=function(L){return this._plugins.reconfigure("binary",L),this},q.prototype.env=function(L,V){return arguments.length===1&&typeof L=="object"?this._executor.env=L:(this._executor.env=this._executor.env||{})[L]=V,this},q.prototype.stashList=function(L){return this._runTask(Q(m(arguments)||{},o(L)&&L||[]),h(arguments))};function Z(L,V,Te,qe){return typeof Te!="string"?s(`git.${L}() requires a string 'repoPath'`):V(Te,f(qe,c),d(arguments))}q.prototype.clone=function(){return this._runTask(Z("clone",A,...arguments),h(arguments))},q.prototype.mirror=function(){return this._runTask(Z("mirror",y,...arguments),h(arguments))},q.prototype.mv=function(L,V){return this._runTask(D(L,V),h(arguments))},q.prototype.checkoutLatestTag=function(L){var V=this;return this.pull(function(){V.tags(function(Te,qe){V.checkout(qe.latest,L)})})},q.prototype.pull=function(L,V,Te,qe){return this._runTask(B(f(L,c),f(V,c),d(arguments)),h(arguments))},q.prototype.fetch=function(L,V){return this._runTask(P(f(L,c),f(V,c),d(arguments)),h(arguments))},q.prototype.silent=function(L){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},q.prototype.tags=function(L,V){return this._runTask(Tt(d(arguments)),h(arguments))},q.prototype.rebase=function(){return this._runTask(Ze(["rebase",...d(arguments)]),h(arguments))},q.prototype.reset=function(L){return this._runTask(z(we(L),d(arguments)),h(arguments))},q.prototype.revert=function(L){let V=h(arguments);return typeof L!="string"?this._runTask(s("Commit must be a string"),V):this._runTask(Ze(["revert",...d(arguments,0,!0),L]),V)},q.prototype.addTag=function(L){let V=typeof L=="string"?At(L):s("Git.addTag requires a tag name");return this._runTask(V,h(arguments))},q.prototype.addAnnotatedTag=function(L,V){return this._runTask(Fe(L,V),h(arguments))},q.prototype.deleteLocalBranch=function(L,V,Te){return this._runTask(k(L,typeof V=="boolean"?V:!1),h(arguments))},q.prototype.deleteLocalBranches=function(L,V,Te){return this._runTask(b(L,typeof V=="boolean"?V:!1),h(arguments))},q.prototype.branch=function(L,V){return this._runTask(v(d(arguments)),h(arguments))},q.prototype.branchLocal=function(L){return this._runTask(w(),h(arguments))},q.prototype.raw=function(L){let V=!Array.isArray(L),Te=[].slice.call(V?arguments:L,0);for(let Ot=0;Ott.removeEventListener("abort",s))}}]:void 0}function mz(t){return typeof t=="string"&&t.trim().toLowerCase()==="-c"}function gz(t,e){if(mz(t)&&/^\s*protocol(.[a-z]+)?.allow/.test(e))throw new Kn(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function vz(t,e){if(/^\s*--(upload|receive)-pack/.test(t))throw new Kn(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if(e==="clone"&&/^\s*-u\b/.test(t))throw new Kn(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if(e==="push"&&/^\s*--exec\b/.test(t))throw new Kn(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}function wz({allowUnsafeProtocolOverride:t=!1,allowUnsafePack:e=!1}={}){return{type:"spawn.args",action(r,i){return r.forEach((n,s)=>{let a=st0(n))).then(a.done)}return{type:"spawn.after",async action(n,{spawned:s,close:a}){var u,f;let o=r(),l=!0,c=()=>void(l=!1);(u=s.stdout)==null||u.on("data",c),(f=s.stderr)==null||f.on("data",c),s.on("error",c),s.on("close",d=>o.close(d)),s.on("exit",d=>o.exit(d));try{await o.result,l&&await t0(50),a(o.exitCode)}catch(d){a(o.exitCode,d)}}}}de();var _z="Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings",IR="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function xz(t){return!t||!/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(t)}function OR(t,e){if(t.length<1||t.length>2)throw new Kn(void 0,"binary",_z);if(t.some(xz))if(e)console.warn(IR);else throw new Kn(void 0,"binary",IR);let[i,n]=t;return{binary:i,prefix:n}}function Sz(t,e=["git"],r=!1){let i=OR(mn(e),r);t.on("binary",n=>{i=OR(mn(n),r)}),t.append("spawn.binary",()=>i.binary),t.append("spawn.args",n=>i.prefix?[i.prefix,...n]:n)}zs();function Ez(t){return!!(t.exitCode&&t.stdErr.length)}function kz(t){return Buffer.concat([...t.stdOut,...t.stdErr])}function Az(t=!1,e=Ez,r=kz){return(i,n)=>!t&&i||!e(n)?i:r(n)}function MR(t){return{type:"task.error",action(e,r){let i=t(e.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});return Buffer.isBuffer(i)?{error:new Rr(void 0,i.toString("utf-8"))}:{error:i}}}}de();var Tz=class{constructor(){this.plugins=new Set,this.events=new BF.EventEmitter}on(t,e){this.events.on(t,e)}reconfigure(t,e){this.events.emit(t,e)}append(t,e){let r=Oe(this.plugins,{type:t,action:e});return()=>this.plugins.delete(r)}add(t){let e=[];return mn(t).forEach(r=>r&&this.plugins.add(Oe(e,r))),()=>{e.forEach(r=>this.plugins.delete(r))}}exec(t,e,r){let i=e,n=Object.freeze(Object.create(r));for(let s of this.plugins)s.type===t&&(i=s.action(i,n));return i}};de();function Cz(t){let e="--progress",r=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(s,a){return r.includes(a.method)?jR(s,e):s}},{type:"spawn.after",action(s,a){var o;a.commands.includes(e)&&((o=a.spawned.stderr)==null||o.on("data",l=>{let c=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(l.toString("utf8"));c&&t({method:a.method,stage:Pz(c[1]),progress:Ve(c[2]),processed:Ve(c[3]),total:Ve(c[4])})}))}}]}function Pz(t){return String(t.toLowerCase().split(" ",1))||"unknown"}de();function Rz(t){let e=VR(t,["uid","gid"]);return{type:"spawn.options",action(r){return{...e,...r}}}}function $z({block:t,stdErr:e=!0,stdOut:r=!0}){if(t>0)return{type:"spawn.after",action(i,n){var c,u;let s;function a(){s&&clearTimeout(s),s=setTimeout(l,t)}function o(){var f,d;(f=n.spawned.stdout)==null||f.off("data",a),(d=n.spawned.stderr)==null||d.off("data",a),n.spawned.off("exit",o),n.spawned.off("close",o),s&&clearTimeout(s)}function l(){o(),n.kill(new Kn(void 0,"timeout","block timeout reached"))}r&&((c=n.spawned.stdout)==null||c.on("data",a)),e&&((u=n.spawned.stderr)==null||u.on("data",a)),n.spawned.on("exit",o),n.spawned.on("close",o),a()}}}Pu();function Fz(){return{type:"spawn.args",action(t){let e=[],r;function i(n){(r=r||[]).push(...n)}for(let n=0;nPh(a)&&sR(a)||a));break}e.push(s)}return r?[...e,"--",...r.map(String)]:e}}}de();var Iz=dz();function Oz(t,e){var n;let r=new Tz,i=KR(t&&(typeof t=="string"?{baseDir:t}:t)||{},e);if(!v0(i.baseDir))throw new hz(i,"Cannot use simple-git on a directory that does not exist");return Array.isArray(i.config)&&r.add(yz(i.config)),r.add(wz(i.unsafe)),r.add(Fz()),r.add(bz(i.completion)),i.abort&&r.add(pz(i.abort)),i.progress&&r.add(Cz(i.progress)),i.timeout&&r.add($z(i.timeout)),i.spawnOptions&&r.add(Rz(i.spawnOptions)),r.add(MR(Az(!0))),i.errors&&r.add(MR(i.errors)),Sz(r,i.binary,(n=i.unsafe)==null?void 0:n.allowUnsafeCustomBinary),new Iz(i,r)}El();var NF=Oz;var Se=class extends vl{constructor(r){super(r);this.useDefaultWindowsGitPath=!1}async setGitInstance(r=!1){var i;if(await this.isGitInstalled()){let n=this.app.vault.adapter,s=n.getBasePath(),a=s;this.plugin.settings.basePath&&(await n.exists((0,Qn.normalizePath)(this.plugin.settings.basePath))?a=Ge.join(s,this.plugin.settings.basePath):r||new Qn.Notice("ObsidianGit: Base path does not exist")),this.absoluteRepoPath=a,this.git=NF({baseDir:a,binary:this.plugin.localStorage.getGitPath()||(this.useDefaultWindowsGitPath?Nd:void 0),config:["core.quotepath=off"],unsafe:{allowUnsafeCustomBinary:!0}});let o=this.plugin.localStorage.getPATHPaths(),l=this.plugin.localStorage.getEnvVars(),c=this.plugin.settings.gitDir,u={...process.env};if(o.length>0){let w=o.join(":")+":"+u.PATH;u.PATH=w}c&&(u.GIT_DIR=c);for(let w of l){let[b,k]=w.split("=");u[b]=k}let f="simple-git",d=",",m=((i=localStorage.debug)!=null?i:"").split(d);if(!m.includes(f)&&!m.includes(`-${f}`)&&(m.push(f),GF.default.enable(m.join(d))),await this.git.checkIsRepo()){let w=await this.git.revparse("--show-cdup"),b=(0,Mu.resolve)(a+Mu.sep+w);this.absoluteRepoPath=b,await this.git.cwd(b)}let g=Ge.join(s,this.app.vault.configDir,"plugins","obsidian-git"),v=Ge.join(g,Ta);u.SSH_ASKPASS==null&&(u.SSH_ASKPASS=v),u.SSH_ASKPASS_REQUIRE="force",u.OBSIDIAN_GIT_CREDENTIALS_INPUT=Ge.join(g,Hd),u.SSH_ASKPASS==v&&this.askpass().catch(w=>this.plugin.displayError(w)),u.OBSIDIAN_GIT="1",this.git=this.git.env(u)}}getRelativeVaultPath(r){let n=this.app.vault.adapter.getBasePath(),s=Ge.join(this.absoluteRepoPath,r),a=Ge.relative(n,s);return Qn.Platform.isWin&&(a=a.replace(/\\/g,"/")),a}getRelativeRepoPath(r,i=!0){if(i){let s=this.plugin.app.vault.adapter.getBasePath(),a=this.absoluteRepoPath,o=Ge.join(s,r),l=Ge.relative(a,o);return Qn.Platform.isWin&&(l=l.replace(/\\/g,"/")),l}return r}get absPluginConfigPath(){let i=this.app.vault.adapter.getBasePath();return Ge.join(i,this.app.vault.configDir,"plugins","obsidian-git")}get relPluginConfigPath(){return Ge.join(this.app.vault.configDir,"plugins","obsidian-git")}async askpass(){let r=this.app.vault.adapter,i=this.app.vault.configDir+"/plugins/obsidian-git/";await this.addAskPassScriptToExclude(),await ei.writeFile(Ge.join(this.absPluginConfigPath,Ta),jA),await ei.chmod(Ge.join(this.absPluginConfigPath,Ta),493),this.watchAbortController=new AbortController;let{signal:n}=this.watchAbortController;try{let s=ei.watch(this.absPluginConfigPath,{signal:n});for await(let a of s){if(a.filename!=Hd)continue;let o=i+Hd;if(await new Promise(f=>setTimeout(f,200)),!await r.exists(o))continue;let l=await r.read(o),c;l.length>60&&(c=new Qn.Notice(l,999999));let u=await new Qe(this.plugin,{allowEmpty:!0,obscure:!0,placeholder:l.length>60?"Enter a response to the message.":l}).openAndGetResult();c==null||c.hide(),await r.exists(o)&&await r.write(`${o}.response`,u!=null?u:"")}}catch(s){this.plugin.displayError(s),await ei.rm(Ge.join(this.absPluginConfigPath,Ta),{force:!0}),await ei.rm(Ge.join(this.absPluginConfigPath,`${Ta}.response`),{force:!0}),await new Promise(a=>setTimeout(a,5e3)),this.plugin.log("Retry watch for ask pass"),await this.askpass()}}async addAskPassScriptToExclude(){try{if(!await this.git.checkIsRepo())return;let r=await this.git.revparse(["--path-format=absolute","--git-path","info/exclude"]),i=Ge.join(this.app.vault.configDir,"plugins","obsidian-git",Ta),n=this.getRelativeRepoPath(i,!0);(await ei.readFile(r,"utf-8")).split(` -`).some(l=>l.contains(n))||await ei.appendFile(r,n+` -`)}catch(r){console.error("Error while adding askpass script to exclude file:",r)}}unload(){var r;(r=this.watchAbortController)==null||r.abort()}async status(r){let i=r==null?void 0:r.path;this.plugin.setPluginState({gitAction:1});let n=await this.git.status(i!=null?["--",i]:[]);this.plugin.setPluginState({gitAction:0});let s=n.files.map(a=>{let o=this.formatPath(a);return{path:o.path,from:o.from,index:a.index==="?"?"U":a.index,workingDir:a.working_dir==="?"?"U":a.working_dir,vaultPath:this.getRelativeVaultPath(o.path)}});return{all:s,changed:s.filter(a=>a.workingDir!==" "),staged:s.filter(a=>a.index!==" "&&a.index!="U"),conflicted:n.conflicted.map(a=>this.formatPath({path:a}).path)}}async submoduleAwareHeadRevisonInContainingDirectory(r){let i=this.getRelativeRepoPath(r),s=["-C",Ge.dirname(i),"rev-parse","HEAD"],a=this.git.raw(s);return a.catch(o=>console.warn("obsidian-git: rev-parse error:",o)),(await a).trim()}async getSubmodulePaths(){return new Promise(r=>{this.git.outputHandler((i,n,s,a)=>{if(!(a.contains("submodule")&&a.contains("foreach")))return;let o="",l=this.app.vault.adapter.getBasePath()+(this.plugin.settings.basePath?"/"+this.plugin.settings.basePath:"");n.on("data",c=>{o+=c.toString("utf8")}),n.on("end",()=>{let u=o.split(` -`).map(f=>{let d=f.match(/'([^']*)'/);if(d!=null)return l+"/"+d[1]+Mu.sep}).filter(f=>!!f);u.reverse(),r(u)})}),this.git.subModule(["foreach","--recursive",""]).then(()=>{this.git.outputHandler(()=>{})},i=>this.plugin.displayError(i))})}formatPath(r){function i(n){if(n!=null)return n.startsWith('"')&&n.endsWith('"')?n.substring(1,n.length-1):n}return r.from!=null?{from:i(r.from),path:i(r.path)}:{path:i(r.path)}}async blame(r,i,n){if(r=this.getRelativeRepoPath(r),!await this.isTracked(r))return"untracked";let s=await this.getSubmoduleOfFile(r),a=s?["-C",s.submodule]:[],o=s?s.relativeFilepath:r;a.push("blame","--porcelain"),n&&a.push("-w");let l=`-C${Bd}`;switch(i){case"inactive":break;case"same-commit":a.push("-C",l);break;case"all-commits":a.push("-C","-C",l);break;default:Gs(i)}a.push("--",o);let c=await this.git.raw(a);return Mz(c)}async isTracked(r){let i=await this.getSubmoduleOfFile(r),n=i?["-C",i.submodule]:[],s=i?i.relativeFilepath:r;return n.push("ls-files","--",s),this.git.raw(n).then(a=>a.trim()!=="")}async commitAll({message:r}){if(this.plugin.settings.updateSubmodules){this.plugin.setPluginState({gitAction:4});let n=await this.getSubmodulePaths();for(let s of n)await this.git.cwd({path:s,root:!1}).add("-A"),await this.git.cwd({path:s,root:!1}).commit(await this.formatCommitMessage(r))}this.plugin.setPluginState({gitAction:3}),await this.git.add("-A"),this.plugin.setPluginState({gitAction:4});let i=await this.git.commit(await this.formatCommitMessage(r));return this.app.workspace.trigger("obsidian-git:head-change"),i.summary.changes}async commit({message:r,amend:i}){this.plugin.setPluginState({gitAction:4});let n=(await this.git.commit(await this.formatCommitMessage(r),i?["--amend"]:[])).summary.changes;return this.app.workspace.trigger("obsidian-git:head-change"),this.plugin.setPluginState({gitAction:0}),n}async stage(r,i){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,i),await this.git.add(["--",r]),this.plugin.setPluginState({gitAction:0})}async stageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.add(r!=null?r:"-A"),this.plugin.setPluginState({gitAction:0})}async unstageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.reset(r!=null?["--",r]:[]),this.plugin.setPluginState({gitAction:0})}async unstage(r,i){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,i),await this.git.reset(["--",r]),this.plugin.setPluginState({gitAction:0})}async discard(r){this.plugin.setPluginState({gitAction:3}),await this.isTracked(r)&&await this.git.checkout(["--",r]),this.plugin.setPluginState({gitAction:0})}async applyPatch(r){let i=Ge.join(this.relPluginConfigPath,"patch");await this.app.vault.adapter.write(i,r),await this.git.applyPatch(i,{"--cached":null,"--unidiff-zero":null,"--whitespace":"nowarn"}),await this.app.vault.adapter.remove(i)}async getUntrackedPaths(r){let i=r==null?void 0:r.path;this.plugin.setPluginState({gitAction:1});let n=[];i!=null&&n.push("--",i);let s=await this.git.clean(Ia.RECURSIVE+Ia.DRY_RUN,n);return this.plugin.setPluginState({gitAction:0}),s.paths}async hashObject(r){r=this.getRelativeRepoPath(r);let i=await this.getSubmoduleOfFile(r),n=i?["-C",i.submodule]:[],s=i?i.relativeFilepath:r;return n.push("hash-object","--",s),this.git.raw(n)}async discardAll({dir:r}){return this.discard(r!=null?r:".")}async pull(){this.plugin.setPluginState({gitAction:2});try{this.plugin.settings.updateSubmodules&&await this.git.subModule(["update","--remote","--merge","--recursive"]);let r=await this.branchInfo(),i=await this.git.revparse([r.current]);if(!r.tracking&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring pull of main repo and updating submodules only.");return}await this.git.fetch();let n=await this.git.revparse([r.tracking]);if(i!==n){if(this.plugin.settings.syncMethod==="merge"||this.plugin.settings.syncMethod==="rebase")try{let o=[r.tracking];switch(this.plugin.settings.mergeStrategy!=="none"&&o.push(`--strategy-option=${this.plugin.settings.mergeStrategy}`),this.plugin.settings.syncMethod){case"merge":await this.git.merge(o);break;case"rebase":await this.git.rebase(o)}}catch(o){this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`);return}else if(this.plugin.settings.syncMethod==="reset")try{await this.git.raw(["update-ref",`refs/heads/${r.current}`,n]),await this.unstageAll({})}catch(o){this.plugin.displayError(`Sync failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`)}this.app.workspace.trigger("obsidian-git:head-change");let s=await this.git.revparse([r.current]);return(await this.git.diff([`${i}..${s}`,"--name-only"])).split(/\r\n|\r|\n/).filter(o=>o.length>0).map(o=>({path:o,workingDir:"P",vaultPath:this.getRelativeVaultPath(o)}))}else return[]}catch(r){this.convertErrors(r)}}async push(){this.plugin.setPluginState({gitAction:5});try{if(this.plugin.settings.updateSubmodules){let a=await this.git.subModule(["foreach","--recursive",`tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`]);console.log(a)}let r=await this.git.status(),i=r.tracking,n=r.current;if(!i&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring push of main repo and updating submodules only.");return}let s=null;return i&&(s=(await this.git.diffSummary([n,i,"--"])).changed),await this.git.push(),s}catch(r){this.convertErrors(r)}}async getUnpushedCommits(){let r=await this.git.status(),i=r.tracking,n=r.current;if(i==null||n==null)return 0;let[s,a]=Zn(i);return(await this.getRemoteBranches(s)).includes(i)?(await this.git.diffSummary([n,i,"--"])).changed:(this.plugin.log(`Tracking branch ${i} does not exist on remote ${s}.`),0)}async canPush(){if(this.plugin.settings.updateSubmodules===!0)return!0;let r=await this.git.status(),i=r.tracking,n=r.current;return i?(await this.git.diffSummary([n,i,"--"])).changed!==0:!1}async checkRequirements(){return await this.isGitInstalled()?await this.git.checkIsRepo()?"valid":"missing-repo":"missing-git"}async branchInfo(){let r=await this.git.status(),i=await this.git.branch(["--no-color"]);return{current:r.current||void 0,tracking:r.tracking||void 0,branches:i.all}}async getRemoteUrl(r){try{return await this.git.remote(["get-url",r])||void 0}catch(i){if(String(i).contains(r))return;throw i}}async log(r,i=!0,n,s){let a;r&&(a=this.getRelativeRepoPath(r,i));let o={file:a,maxCount:n,"--diff-merges":"first-parent","--name-status":null};return s&&(o[s]=null),(await this.git.log(o)).all.map(c=>{var u,f,d,h;return{...c,author:{name:c.author_name,email:c.author_email},refs:c.refs.split(", ").filter(m=>m.length>0),diff:{...c.diff,files:(f=(u=c.diff)==null?void 0:u.files.map(m=>({...m,status:m.status,path:m.file,hash:c.hash,vaultPath:this.getRelativeVaultPath(m.file),fromPath:m.from,fromVaultPath:m.from!=null?this.getRelativeVaultPath(m.from):void 0,binary:m.binary})))!=null?f:[]},fileName:(h=(d=c.diff)==null?void 0:d.files.first())==null?void 0:h.file}})}async show(r,i,n=!0){let s=this.getRelativeRepoPath(i,n);return this.git.show([r+":"+s])}async checkout(r,i){if(i&&(r=`${i}/${r}`),await this.git.checkout(r),this.plugin.settings.submoduleRecurseCheckout){let n=await this.getSubmodulePaths();for(let s of n){let a=await this.git.cwd({path:s,root:!1}).branch();Object.keys(a.branches).includes(r)&&await this.git.cwd({path:s,root:!1}).checkout(r)}}}async createBranch(r){await this.git.checkout(["-b",r])}async deleteBranch(r,i){await this.git.branch([i?"-D":"-d",r])}async branchIsMerged(r){return!(await this.git.branch(["--no-merged"])).all.contains(r)}async init(){await this.git.init(!1)}async clone(r,i,n){await this.git.clone(r,Ge.join(this.app.vault.adapter.getBasePath(),i),n?["--depth",`${n}`]:[]),await this.setGitInstance()}async setConfig(r,i){i==null?await this.git.raw(["config","--local","--unset",r]):await this.git.addConfig(r,i)}async getConfig(r,i="local"){var s;return(s=(await this.git.getConfig(r.toLowerCase(),i=="all"?void 0:i)).value)!=null?s:void 0}async fetch(r){await this.git.fetch(r!=null?[r]:[])}async setRemote(r,i){(await this.getRemotes()).includes(r)?await this.git.remote(["set-url",r,i]):await this.git.remote(["add",r,i])}async getRemoteBranches(r){let i=await this.git.branch(["-r","--list",`${r}*`]),n=[];for(let s in i.branches)n.push(i.branches[s].name);return n}async getRemotes(){let r=await this.git.remote([]);return r?r.trim().split(` -`):[]}async removeRemote(r){await this.git.removeRemote(r)}async updateUpstreamBranch(r){try{await this.git.branch(["--set-upstream-to",r])}catch(i){try{await this.git.branch(["--set-upstream",r])}catch(n){let[s,a]=Zn(r),o=await this.branchInfo();await this.git.push(["--set-upstream",s,`${o.current}:${a}`])}}}updateGitPath(r){return this.setGitInstance()}updateBasePath(r){return this.setGitInstance(!0)}async getDiffString(r,i=!1,n){return i?await this.git.diff(["--cached","--",r]):n?await this.git.show([`${n}`,"--",r]):await this.git.diff(["--",r])}async diff(r,i,n){return await this.git.diff([`${i}..${n}`,"--",r])}async rawCommand(r){let i=r.split(" ");return await this.git.raw(i[0],...i.slice(1))}async getSubmoduleOfFile(r){if(!await this.app.vault.adapter.exists(Ge.dirname(r)))return;let i=await this.git.raw(["-C",Ge.dirname(r),"rev-parse","--show-toplevel"],l=>l&&console.warn("get-submodule-of-file",l==null?void 0:l.message));if(i=i.trim(),(await this.git.raw(["-C",Ge.dirname(r),"rev-parse","--show-superproject-working-tree"],l=>l&&console.warn("get-submodule-of-file",l==null?void 0:l.message))).trim()==="")return;let a=this.app.vault.adapter.getFullPath(Ge.normalize(r)),o=Ge.relative(i,a);return{submodule:i,relativeFilepath:o}}async getLastCommitTime(){try{let r=await this.git.log({n:1});if(r!=null&&r.latest!=null)return new Date(r.latest.date)}catch(r){if(r instanceof Rr){if(r.message.contains("does not have any commits yet"))return}else throw r}}async isGitInstalled(){let r=this.plugin.localStorage.getGitPath(),i=await ku(r||"git",["--version"],{});if(i.error)if(Qn.Platform.isWin&&!r){this.plugin.log(`Git not found in PATH. Checking standard installation path(${Nd}) of Git for Windows.`);let n=await ku(Nd,["--version"]);if(n.error)return console.error(n.error),!1;this.useDefaultWindowsGitPath=!0}else return console.error(i.error),!1;else this.useDefaultWindowsGitPath=!1;return!0}convertErrors(r){if(r instanceof Rr){let i=String(r.message);if(i.contains("Could not resolve host")||i.contains("Unable to resolve host")||i.contains("Unable to open connection")||i.match(/ssh: connect to host .*? port .*?: Operation timed out/)!=null||i.match(/ssh: connect to host .*? port .*?: Network is unreachable/)!=null||i.match(/ssh: connect to host .*? port .*?: Undefined error: 0/)!=null)throw new cl(i)}throw r}async isFileTrackedByLFS(r){try{return(await this.git.raw(["check-attr","filter",r])).includes("filter: lfs")}catch(i){let n=i instanceof Error?i.message:String(i);return this.plugin.displayError(`Error checking LFS status: ${n}`),!1}}},jF={hash:"000000",isZeroCommit:!0,summary:""};function Mz(t){let r=t.replace(`\r +`),date:new Date(o.commit.committer.timestamp).toDateString(),diff:{changed:0,files:(await this.getFileChangesCount(o.commit.parent.first(),o.oid)).map(c=>({path:c.path,status:c.type,vaultPath:this.getRelativeVaultPath(c.path),hash:o.oid}))},hash:o.oid,refs:[]}}))}updateBasePath(r){return this.getRepo().dir=r,Promise.resolve()}async updateUpstreamBranch(r){let[n,i]=Qi(r),s=await this.branchInfo();await this.wrapFS(te.default.push({...this.getRepo(),remote:n,remoteRef:i})),await this.setConfig(`branch.${s.current}.merge`,`refs/heads/${i}`)}updateGitPath(r){return Promise.resolve()}async getFileChangesCount(r,n){return this.walkDifference({walkers:[te.default.TREE({ref:r}),te.default.TREE({ref:n})]})}async walkDifference({walkers:r,dir:n}){return await this.wrapFS(te.default.walk({...this.getRepo(),trees:r,map:async function(s,[a,o]){if(!Yw(s,n))return null;if(await(a==null?void 0:a.type())==="tree"||await(o==null?void 0:o.type())==="tree")return;let l=await(a==null?void 0:a.oid()),c=await(o==null?void 0:o.oid()),u="equal";if(l!==c&&(u="M"),l===void 0&&(u="A"),c===void 0&&(u="D"),l===void 0&&c===void 0&&(console.log("Something weird happened:"),console.log(a),console.log(o)),u!=="equal")return{path:s,type:u}}}))}async getStagedFiles(r="."){return(await this.walkDifference({walkers:[te.default.TREE({ref:"HEAD"}),te.default.STAGE()],dir:r})).map(i=>({vaultPath:this.getRelativeVaultPath(i.path),path:i.path}))}async getUnstagedFiles(r="."){let n,i=window.setTimeout(()=>{n=new Ra.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{let s=this.getRepo(),a=await this.wrapFS(te.default.walk({...s,trees:[te.default.WORKDIR(),te.default.STAGE()],map:async function(o,[l,c]){if(!c&&l&&await te.default.isIgnored({...s,filepath:o})||!Yw(o,r))return null;let[u,f]=await Promise.all([l&&l.type(),c&&c.type()]),d=[u,f].includes("blob");if((u==="tree"||u==="special")&&!d)return;if(f==="commit")return null;if((f==="tree"||f==="special")&&!d)return;let h=f==="blob"?await c.oid():void 0,m;return u==="blob"&&f!=="blob"?m="42":u==="blob"&&(m=await l.oid()),m?h?m!==h?{path:o,type:"M"}:null:{path:o,type:"A"}:{path:o,type:"D"}}}));return window.clearTimeout(i),n==null||n.hide(),a}catch(s){throw window.clearTimeout(i),n==null||n.hide(),this.plugin.displayError(s),s}}async getDiffString(r,n=!1,i){let s=this.getRelativeVaultPath(r),a=async(c,[u])=>{if(r==c){let f=await u.oid();return(await te.default.readBlob({...this.getRepo(),oid:f})).blob}};if(i){let c=await(0,te.readBlob)({...this.getRepo(),filepath:r,oid:i}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof te.default.Errors.NotFoundError))throw h}),u=await te.default.readCommit({...this.getRepo(),oid:i}),f=await(0,te.readBlob)({...this.getRepo(),filepath:r,oid:u.commit.parent.first()}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof te.default.Errors.NotFoundError))throw h});return mu(s,f!=null?f:"",c!=null?c:"")}let o=(await te.default.walk({...this.getRepo(),trees:[te.default.STAGE()],map:a})).first(),l=new TextDecoder().decode(o);if(n){let c=await this.resolveRef("HEAD").then(f=>(0,te.readBlob)({...this.getRepo(),filepath:r,oid:f})).then(f=>new TextDecoder().decode(f.blob)).catch(f=>{if(!(f instanceof te.default.Errors.NotFoundError))throw f});return mu(s,c!=null?c:"",l)}else{let c;return await this.app.vault.adapter.exists(s)?c=await this.app.vault.adapter.read(s):c="",mu(s,l,c)}}async getLastCommitTime(){let r=this.getRepo(),n=await this.resolveRef("HEAD"),s=(await te.default.readCommit({...r,oid:n})).commit.committer.timestamp;return new Date(s*1e3)}getFileStatusResult(r){let n=this.status_mapping[`${r[this.HEAD]}${r[this.WORKDIR]}${r[this.STAGE]}`];return{index:n[0]=="?"?"U":n[0],workingDir:n[1]=="?"?"U":n[1],path:r[this.FILE],vaultPath:this.getRelativeVaultPath(r[this.FILE])}}async checkAuthorInfo(){let r=await this.getConfig("user.name"),n=await this.getConfig("user.email");if(!r||!n)throw Error("Git author name and email are not set. Please set both fields in the settings.")}showNotice(r,n=!0){if(!this.plugin.settings.disablePopups)return new Ra.Notice(r,n?this.noticeLength:void 0)}};async function*xG(t){yield new Uint8Array(t)}async function SG(t){let e=new ReadableStream({async start(n){for await(let i of t)n.enqueue(i);n.close()}});return await new Response(e).arrayBuffer()}p();var nF=Ct(Ph()),Jr=Ct(require("fs/promises")),Ji=require("obsidian"),Ue=Ct(require("path")),Uu=require("path");p();var Bh=Ct(hR(),1);p();var Jw=new WeakMap;function Sl(...t){let e=new String(t);return Jw.set(e,t),e}function wn(t){return t instanceof String&&Jw.has(t)}function El(t){var e;return(e=Jw.get(t))!=null?e:[]}var Lh=Ct(Ph(),1),j$=require("child_process");var CI=Ct(t0(),1),NI=require("node:path");p();function*pR(t,e){let r=e==="global";for(let n of t)n.isGlobal===r&&(yield n)}var GG=new Set(["--add","--edit","--remove-section","--rename-section","--replace-all","--unset","--unset-all","-e"]),jG=new Set(["--get","--get-all","--get-color","--get-colorbool","--get-regexp","--get-urlmatch","--list","-l"]),qG=new Set(["edit","remove-section","rename-section","set","unset"]),WG=new Set(["get","get-color","get-colorbool","list"]);function zG(t,e){var n;for(let{name:i}of pR(t,"task")){if(GG.has(i))return kl(!0,e);if(jG.has(i))return kl(!1,e)}let r=(n=e.at(0))==null?void 0:n.toLowerCase();return r===void 0?null:qG.has(r)?kl(!0,e.slice(1)):WG.has(r)?kl(!1,e.slice(1)):e.length===1?kl(!1,e):kl(!0,e)}function kl(t=!1,e=[]){var n;let r=(n=e.at(0))==null?void 0:n.toLowerCase();return r===void 0?null:{isWrite:t,isRead:!t,key:r,value:e.at(1)}}function VG(t,e){return e.isWrite&&e.value!==void 0?{key:e.key,value:e.value,scope:t}:{key:e.key,scope:t}}function YG(t){let e=(t==null?void 0:t.indexOf("="))||-1;return!t||e<0?null:{key:t.slice(0,e).trim().toLowerCase(),value:t.slice(e+1)}}function XG(t){for(let{name:e}of pR(t,"task"))switch(e){case"--global":return"global";case"--system":return"system";case"--worktree":return"worktree";case"--local":return"local";case"--file":case"-f":return"file"}return"local"}function ZG({name:t}){if(t==="-c"||t==="--config")return"inline";if(t==="--config-env")return"env"}function*KG(t){for(let e of t){let r=ZG(e),n=r&&YG(e.value);n&&(yield{...n,scope:r})}}function QG(t,e,r){let n={read:[],write:[...KG(e)]};return t==="config"&&JG(n,XG(e),zG(e,r)),n}function JG(t,e,r){if(r===null)return;let n=VG(e,r);r.isWrite?t.write.push(n):t.read.push(n)}var mR={short:new Map([["c",!0]])},ej={short:new Map([["C",!0],["P",!1],["h",!1],["p",!1],["v",!1],...mR.short.entries()]),long:new Set(["attr-source","config-env","exec-path","git-dir","list-cmds","namespace","super-prefix","work-tree"])},tj={clone:{short:new Map([["b",!0],["j",!0],["l",!1],["n",!1],["o",!0],["q",!1],["s",!1],["u",!0]]),long:new Set(["branch","config","jobs","origin","upload-pack","u","template"])},commit:{short:new Map([["C",!0],["F",!0],["c",!0],["m",!0],["t",!0]]),long:new Set(["file","message","reedit-message","reuse-message","template"])},config:{short:new Map([["e",!1],["f",!0],["l",!1]]),long:new Set(["blob","comment","default","file","type","value"])},fetch:{short:new Map,long:new Set(["upload-pack"])},init:{short:new Map,long:new Set(["template"])},pull:{short:new Map,long:new Set(["upload-pack"])},push:{short:new Map,long:new Set(["exec","receive-pack"])}},rj={short:new Map,long:new Set};function nj(t){var r;let e=(r=tj[t!=null?t:""])!=null?r:rj;return{short:new Map([...mR.short.entries(),...e.short.entries()]),long:e.long}}function gR(t,e=ej){if(t.startsWith("--")){let r=t.indexOf("=");if(r>2)return[{name:t.slice(0,r),value:t.slice(r+1),needsNext:!1}];let n=t.slice(2);return[{name:t,needsNext:e.long.has(n)}]}if(t.length===2){let r=t.charAt(1),n=e.short.get(r);return[{name:t,needsNext:n===!0}]}return ij(t,e.short)}function ij(t,e){let r=t.slice(1).split(""),n=[];for(let i=0;ie.has(l)))return n.push({name:`-${s}`,value:o,needsNext:!1}),n}n.push({name:`-${s}`,needsNext:a})}return n}function sj(t,e=[]){let r=0;for(;rfunction(){return t&&(e=(0,t[S0(t)[0]])(t=0)),e},yj=(t,e)=>function(){return e||(0,t[S0(t)[0]])((e={exports:{}}).exports,e),e.exports},yt=(t,e)=>{for(var r in e)x0(t,r,{get:e[r],enumerable:!0})},bj=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of S0(e))!wj.call(t,i)&&i!==r&&x0(t,i,{get:()=>e[i],enumerable:!(n=vj(e,i))||n.enumerable});return t},pt=t=>bj(x0({},"__esModule",{value:!0}),t),Pr,zs=V({"src/lib/errors/git-error.ts"(){"use strict";Pr=class extends Error{constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),Du,Pl=V({"src/lib/errors/git-response-error.ts"(){"use strict";zs(),Du=class extends Pr{constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),QR,JR=V({"src/lib/errors/task-configuration-error.ts"(){"use strict";zs(),QR=class extends Pr{constructor(t){super(void 0,t)}}}});function e$(t){return typeof t!="function"?Da:t}function t$(t){return typeof t=="function"&&t!==Da}function r$(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}function n$(t,e=0){return i$(t)&&t.length>e?t[e]:void 0}function Ma(t,e=0){if(i$(t)&&t.length>e)return t[t.length-1-e]}function i$(t){return jh(t)}function Lu(t="",e=!0,r=` +`){return t.split(r).reduce((n,i)=>{let s=e?i.trim():i;return s&&n.push(s),n},[])}function E0(t,e){return Lu(t,!0).map(r=>e(r))}function k0(t){return(0,Bh.exists)(t,Bh.FOLDER)}function _n(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}function s$(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}function Hh(t,e){if(Array.isArray(t)){let r=t.indexOf(e);r>=0&&t.splice(r,1)}else t.delete(e);return e}function wi(t){return Array.isArray(t)?t:[t]}function a$(t){return t.replace(/[\s-]+(.)/g,(e,r)=>r.toUpperCase())}function Rl(t){return wi(t).map(e=>e instanceof String?e:String(e))}function We(t,e=0){if(t==null)return e;let r=parseInt(t,10);return Number.isNaN(r)?e:r}function Ou(t,e){let r=[];for(let n=0,i=t.length;n{t[n]!==void 0&&(r[n]=t[n])}),r}function l0(t=0){return new Promise(e=>setTimeout(e,t))}function c0(t){if(t!==!1)return t}var Cl,Da,Nu,Uh=V({"src/lib/utils/util.ts"(){"use strict";A0(),Cl="\0",Da=()=>{},Nu=Object.prototype.toString.call.bind(Object.prototype.toString)}});function Qt(t,e,r){return e(t)?t:arguments.length>2?r:void 0}function u0(t,e){let r=wn(t)?"string":typeof t;return/number|string|boolean/.test(r)&&(!e||!e.includes(r))}function Gh(t){return!!t&&Nu(t)==="[object Object]"}function l$(t){return typeof t=="function"}var Bu,c$,ct,Mh,jh,A0=V({"src/lib/utils/argument-filters.ts"(){"use strict";Uh(),Bu=t=>Array.isArray(t),c$=t=>typeof t=="number",ct=t=>typeof t=="string"||wn(t),Mh=t=>ct(t)||Array.isArray(t)&&t.every(ct),jh=t=>t==null||"number|boolean|function".includes(typeof t)?!1:typeof t.length=="number"}}),f0,_j=V({"src/lib/utils/exit-codes.ts"(){"use strict";f0=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))(f0||{})}}),Dh,xj=V({"src/lib/utils/git-output-streams.ts"(){"use strict";Dh=class u${constructor(e,r){this.stdOut=e,this.stdErr=r}asStrings(){return new u$(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});function Sj(){throw new Error("LineParser:useMatches not implemented")}var pe,Ws,Ej=V({"src/lib/utils/line-parser.ts"(){"use strict";pe=class{constructor(t,e){this.matches=[],this.useMatches=Sj,this.parse=(r,n)=>(this.resetMatches(),this._regExp.every((i,s)=>this.addMatch(i,s,r(s)))?this.useMatches(n,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(t,e,r){let n=r&&t.exec(r);return n&&this.pushMatch(e,n),!!n}pushMatch(t,e){this.matches.push(...e.slice(1))}},Ws=class extends pe{addMatch(t,e,r){return/^remote:\s/.test(String(r))&&super.addMatch(t,e,r)}pushMatch(t,e){(t>0||e.length>1)&&super.pushMatch(t,e)}}}});function f$(...t){let e=process.cwd(),r=Object.assign({baseDir:e,...d$},...t.filter(n=>typeof n=="object"&&n));return r.baseDir=r.baseDir||e,r.trimmed=r.trimmed===!0,r}var d$,kj=V({"src/lib/utils/simple-git-options.ts"(){"use strict";d$={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function C0(t,e=[]){return Gh(t)?Object.keys(t).reduce((r,n)=>{let i=t[n];if(wn(i))r.push(i);else if(u0(i,["boolean"]))r.push(n+"="+i);else if(Array.isArray(i))for(let s of i)u0(s,["string","number"])||r.push(n+"="+s);else r.push(n);return r},e):e}function hr(t,e=0,r=!1){let n=[];for(let i=0,s=e<0?t.length:e;i{for(let s=Lu(i,n),a=0,o=s.length;a{if(!(a+c>=o))return s[a+c]};e.some(({parse:c})=>c(l,t))}}),t}var Tj=V({"src/lib/utils/task-parser.ts"(){"use strict";Uh()}}),h$={};yt(h$,{ExitCodes:()=>f0,GitOutputStreams:()=>Dh,LineParser:()=>pe,NOOP:()=>Da,NULL:()=>Cl,RemoteLineParser:()=>Ws,append:()=>_n,appendTaskOptions:()=>C0,asArray:()=>wi,asCamelCase:()=>a$,asFunction:()=>e$,asNumber:()=>We,asStringArray:()=>Rl,bufferToString:()=>Mu,callTaskParser:()=>d0,createInstanceConfig:()=>f$,delay:()=>l0,filterArray:()=>Bu,filterFunction:()=>l$,filterHasLength:()=>jh,filterNumber:()=>c$,filterPlainObject:()=>Gh,filterPrimitives:()=>u0,filterString:()=>ct,filterStringOrStringArray:()=>Mh,filterType:()=>Qt,first:()=>n$,folderExists:()=>k0,forEachLineWithContent:()=>E0,getTrailingOptions:()=>hr,including:()=>s$,isUserFunction:()=>t$,last:()=>Ma,objectToString:()=>Nu,orVoid:()=>c0,parseStringResponse:()=>Rr,pick:()=>o$,prefixedArray:()=>Ou,remove:()=>Hh,splitOn:()=>r$,toLinesWithContent:()=>Lu,trailingFunctionArgument:()=>tt,trailingOptionsArgument:()=>T0});var ue=V({"src/lib/utils/index.ts"(){"use strict";A0(),_j(),xj(),Ej(),kj(),Cj(),Tj(),Uh()}}),p$={};yt(p$,{CheckRepoActions:()=>h0,checkIsBareRepoTask:()=>g$,checkIsRepoRootTask:()=>m$,checkIsRepoTask:()=>Pj});function Pj(t){switch(t){case"bare":return g$();case"root":return m$()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:qh,parser:P0}}function m$(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:qh,parser(e){return/^\.(git)?$/.test(e.trim())}}}function g$(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:qh,parser:P0}}function Rj(t){return/(Not a git repository|Kein Git-Repository)/i.test(String(t))}var h0,qh,P0,v$=V({"src/lib/tasks/check-is-repo.ts"(){"use strict";ue(),h0=(t=>(t.BARE="bare",t.IN_TREE="tree",t.IS_REPO_ROOT="root",t))(h0||{}),qh=({exitCode:t},e,r,n)=>{if(t===128&&Rj(e))return r(Buffer.from("false"));n(e)},P0=t=>t.trim()==="true"}});function $j(t,e){let r=new w$(t),n=t?b$:y$;return Lu(e).forEach(i=>{let s=i.replace(n,"");r.paths.push(s),(_$.test(s)?r.folders:r.files).push(s)}),r}var w$,y$,b$,_$,Ij=V({"src/lib/responses/CleanSummary.ts"(){"use strict";ue(),w$=class{constructor(t){this.dryRun=t,this.paths=[],this.files=[],this.folders=[]}},y$=/^[a-z]+\s*/i,b$=/^[a-z]+\s+[a-z]+\s*/i,_$=/\/$/}}),p0={};yt(p0,{EMPTY_COMMANDS:()=>Wh,adhocExecTask:()=>x$,configurationErrorTask:()=>Tr,isBufferTask:()=>E$,isEmptyTask:()=>k$,straightThroughBufferTask:()=>S$,straightThroughStringTask:()=>pr});function x$(t){return{commands:Wh,format:"empty",parser:t}}function Tr(t){return{commands:Wh,format:"empty",parser(){throw typeof t=="string"?new QR(t):t}}}function pr(t,e=!1){return{commands:t,format:"utf-8",parser(r){return e?String(r).trim():r}}}function S$(t){return{commands:t,format:"buffer",parser(e){return e}}}function E$(t){return t.format==="buffer"}function k$(t){return t.format==="empty"||!t.commands.length}var Wh,mt=V({"src/lib/tasks/task.ts"(){"use strict";JR(),Wh=[]}}),A$={};yt(A$,{CONFIG_ERROR_INTERACTIVE_MODE:()=>R0,CONFIG_ERROR_MODE_REQUIRED:()=>$0,CONFIG_ERROR_UNKNOWN_OPTION:()=>I0,CleanOptions:()=>Oa,cleanTask:()=>C$,cleanWithOptionsTask:()=>Fj,isCleanOptionsArray:()=>Oj});function Fj(t,e){let{cleanMode:r,options:n,valid:i}=Mj(t);return r?i.options?(n.push(...e),n.some(Nj)?Tr(R0):C$(r,n)):Tr(I0+JSON.stringify(t)):Tr($0)}function C$(t,e){return{commands:["clean",`-${t}`,...e],format:"utf-8",parser(n){return $j(t==="n",n)}}}function Oj(t){return Array.isArray(t)&&t.every(e=>F0.has(e))}function Mj(t){let e,r=[],n={cleanMode:!1,options:!0};return t.replace(/[^a-z]i/g,"").split("").forEach(i=>{Dj(i)?(e=i,n.cleanMode=!0):n.options=n.options&&Lj(r[r.length]=`-${i}`)}),{cleanMode:e,options:r,valid:n}}function Dj(t){return t==="f"||t==="n"}function Lj(t){return/^-[a-z]$/i.test(t)&&F0.has(t.charAt(1))}function Nj(t){return/^-[^\-]/.test(t)?t.indexOf("i")>0:t==="--interactive"}var R0,$0,I0,Oa,F0,T$=V({"src/lib/tasks/clean.ts"(){"use strict";Ij(),ue(),mt(),R0="Git clean interactive mode is not supported",$0='Git clean mode parameter ("n" or "f") is required',I0="Git clean unknown option found in: ",Oa=(t=>(t.DRY_RUN="n",t.FORCE="f",t.IGNORED_INCLUDED="x",t.IGNORED_ONLY="X",t.EXCLUDING="e",t.QUIET="q",t.RECURSIVE="d",t))(Oa||{}),F0=new Set(["i",...Rl(Object.values(Oa))])}});function Bj(t){let e=new R$;for(let r of P$(t))e.addValue(r.file,String(r.key),r.value);return e}function Hj(t,e){let r=null,n=[],i=new Map;for(let s of P$(t,e))s.key===e&&(n.push(r=s.value),i.has(s.file)||i.set(s.file,[]),i.get(s.file).push(r));return{key:e,paths:Array.from(i.keys()),scopes:i,value:r,values:n}}function Uj(t){return t.replace(/^(file):/,"")}function*P$(t,e=null){let r=t.split("\0");for(let n=0,i=r.length-1;nObject.assign(t,this.values[e]),{})),this._all}addFile(t){if(!(t in this.values)){let e=Ma(this.files);this.values[t]=e?Object.create(this.values[e]):{},this.files.push(t)}return this.values[t]}addValue(t,e,r){let n=this.addFile(t);Object.hasOwn(n,e)?Array.isArray(n[e])?n[e].push(r):n[e]=[n[e],r]:n[e]=r,this._all=void 0}}}});function r0(t,e){return typeof t=="string"&&Object.hasOwn(m0,t)?t:e}function jj(t,e,r,n){let i=["config",`--${n}`];return r&&i.push("--add"),i.push(t,e),{commands:i,format:"utf-8",parser(s){return s}}}function qj(t,e){let r=["config","--null","--show-origin","--get-all",t];return e&&r.splice(1,0,`--${e}`),{commands:r,format:"utf-8",parser(n){return Hj(n,t)}}}function Wj(t){let e=["config","--list","--show-origin","--null"];return t&&e.push(`--${t}`),{commands:e,format:"utf-8",parser(r){return Bj(r)}}}function zj(){return{addConfig(t,e,...r){return this._runTask(jj(t,e,r[0]===!0,r0(r[1],"local")),tt(arguments))},getConfig(t,e){return this._runTask(qj(t,r0(e,void 0)),tt(arguments))},listConfig(...t){return this._runTask(Wj(r0(t[0],void 0)),tt(arguments))}}}var m0,$$=V({"src/lib/tasks/config.ts"(){"use strict";Gj(),ue(),m0=(t=>(t.system="system",t.global="global",t.local="local",t.worktree="worktree",t))(m0||{})}});function Vj(t){return I$.has(t)}var n0,I$,F$=V({"src/lib/tasks/diff-name-status.ts"(){"use strict";n0=(t=>(t.ADDED="A",t.COPIED="C",t.DELETED="D",t.MODIFIED="M",t.RENAMED="R",t.CHANGED="T",t.UNMERGED="U",t.UNKNOWN="X",t.BROKEN="B",t))(n0||{}),I$=new Set(Object.values(n0))}});function Yj(...t){return new M$().param(...t)}function Xj(t){let e=new Set,r={};return E0(t,n=>{let[i,s,a]=n.split(Cl);e.add(i),(r[i]=r[i]||[]).push({line:We(s),path:i,preview:a})}),{paths:e,results:r}}function Zj(){return{grep(t){let e=tt(arguments),r=hr(arguments);for(let i of O$)if(r.includes(i))return this._runTask(Tr(`git.grep: use of "${i}" is not supported.`),e);typeof t=="string"&&(t=Yj().param(t));let n=["grep","--null","-n","--full-name",...r,...t];return this._runTask({commands:n,format:"utf-8",parser(i){return Xj(i)}},e)}}}var O$,Fu,_R,M$,D$=V({"src/lib/tasks/grep.ts"(){"use strict";ue(),mt(),O$=["-h"],Fu=Symbol("grepQuery"),M$=class{constructor(){this[_R]=[]}*[(_R=Fu,Symbol.iterator)](){for(let t of this[Fu])yield t}and(...t){return t.length&&this[Fu].push("--and","(",...Ou(t,"-e"),")"),this}param(...t){return this[Fu].push(...Ou(t,"-e")),this}}}}),L$={};yt(L$,{ResetMode:()=>Ih,getResetMode:()=>Qj,resetTask:()=>Kj});function Kj(t,e){let r=["reset"];return N$(t)&&r.push(`--${t}`),r.push(...e),pr(r)}function Qj(t){if(N$(t))return t;switch(typeof t){case"string":case"undefined":return"soft"}}function N$(t){return typeof t=="string"&&B$.includes(t)}var Ih,B$,H$=V({"src/lib/tasks/reset.ts"(){"use strict";ue(),mt(),Ih=(t=>(t.MIXED="mixed",t.SOFT="soft",t.HARD="hard",t.MERGE="merge",t.KEEP="keep",t))(Ih||{}),B$=Rl(Object.values(Ih))}});function Jj(){return(0,Lh.default)("simple-git")}function xR(t,e,r){return!e||!String(e).replace(/\s*/,"")?r?(n,...i)=>{t(n,...i),r(n,...i)}:t:(n,...i)=>{t(`%s ${n}`,e,...i),r&&r(n,...i)}}function eq(t,e,{namespace:r}){if(typeof t=="string")return t;let n=e&&e.namespace||"";return n.startsWith(r)?n.substr(r.length+1):n||r}function O0(t,e,r,n=Jj()){let i=t&&`[${t}]`||"",s=[],a=typeof e=="string"?n.extend(e):e,o=eq(Qt(e,ct),a,n);return c(r);function l(u,f){return _n(s,O0(t,o.replace(/^[^:]+/,u),f,n))}function c(u){let f=u&&`[${u}]`||"",d=a&&xR(a,f)||Da,h=xR(n,`${i} ${f}`,d);return Object.assign(a?d:h,{label:t,sibling:l,info:h,step:c})}}var U$=V({"src/lib/git-logger.ts"(){"use strict";ue(),Lh.default.formatters.L=t=>String(jh(t)?t.length:"-"),Lh.default.formatters.B=t=>Buffer.isBuffer(t)?t.toString("utf8"):Nu(t)}}),G$,tq=V({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";var t;zs(),U$(),G$=(t=class{constructor(r="GitExecutor"){this.logLabel=r,this._queue=new Map}withProgress(r){return this._queue.get(r)}createProgress(r){let n=t.getName(r.commands[0]),i=O0(this.logLabel,n);return{task:r,logger:i,name:n}}push(r){let n=this.createProgress(r);return n.logger("Adding task to the queue, commands = %o",r.commands),this._queue.set(r,n),n}fatal(r){for(let[n,{logger:i}]of Array.from(this._queue.entries()))n===r.task?(i.info("Failed %o",r),i("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):i.info("A fatal exception occurred in a previous task, the queue has been purged: %o",r.message),this.complete(n);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(r){this.withProgress(r)&&this._queue.delete(r)}attempt(r){let n=this.withProgress(r);if(!n)throw new Pr(void 0,"TasksPendingQueue: attempt called for an unknown task");return n.logger("Starting task"),n}static getName(r="empty"){return`task:${r}:${++t.counter}`}},t.counter=0,t)}});function Fa(t,e){return{method:n$(t.commands)||"",commands:e}}function rq(t,e){return r=>{e("[ERROR] child process exception %o",r),t.push(Buffer.from(String(r.stack),"ascii"))}}function SR(t,e,r,n){return i=>{r("%s received %L bytes",e,i),n("%B",i),t.push(i)}}var g0,nq=V({"src/lib/runners/git-executor-chain.ts"(){"use strict";zs(),mt(),ue(),tq(),g0=class{constructor(t,e,r){this._executor=t,this._scheduler=e,this._plugins=r,this._chain=Promise.resolve(),this._queue=new G$}get cwd(){return this._cwd||this._executor.cwd}set cwd(t){this._cwd=t}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(t){return this._queue.push(t),this._chain=this._chain.then(()=>this.attemptTask(t))}async attemptTask(t){let e=await this._scheduler.next(),r=()=>this._queue.complete(t);try{let{logger:n}=this._queue.attempt(t);return await(k$(t)?this.attemptEmptyTask(t,n):this.attemptRemoteTask(t,n))}catch(n){throw this.onFatalException(t,n)}finally{r(),e()}}onFatalException(t,e){let r=e instanceof Pr?Object.assign(e,{task:t}):new Pr(t,e&&String(e));return this._chain=Promise.resolve(),this._queue.fatal(r),r}async attemptRemoteTask(t,e){let r=this._plugins.exec("spawn.binary","",Fa(t,t.commands)),n=this._plugins.exec("spawn.args",[...t.commands],{...Fa(t,t.commands),env:{...this.env}}),i=await this.gitResponse(t,r,n,this.outputHandler,e.step("SPAWN")),s=await this.handleTaskData(t,n,i,e.step("HANDLE"));return e("passing response to task's parser as a %s",t.format),E$(t)?d0(t.parser,s):d0(t.parser,s.asStrings())}async attemptEmptyTask(t,e){return e("empty task bypassing child process to call to task's parser"),t.parser(this)}handleTaskData(t,e,r,n){let{exitCode:i,rejection:s,stdOut:a,stdErr:o}=r;return new Promise((l,c)=>{n("Preparing to handle process response exitCode=%d stdOut=",i);let{error:u}=this._plugins.exec("task.error",{error:s},{...Fa(t,e),...r});if(u&&t.onError)return n.info("exitCode=%s handling with custom error handler"),t.onError(r,u,f=>{n.info("custom error handler treated as success"),n("custom error returned a %s",Nu(f)),l(new Dh(Array.isArray(f)?Buffer.concat(f):f,Buffer.concat(o)))},c);if(u)return n.info("handling as error: exitCode=%s stdErr=%s rejection=%o",i,o.length,s),c(u);n.info("retrieving task output complete"),l(new Dh(Buffer.concat(a),Buffer.concat(o)))})}async gitResponse(t,e,r,n,i){let s=i.sibling("output"),a=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},Fa(t,t.commands));return new Promise(o=>{let l=[],c=[];i.info("%s %o",e,r),i("%O",a);let u=this._beforeSpawn(t,r);if(u)return o({stdOut:l,stdErr:c,exitCode:9901,rejection:u});this._plugins.exec("spawn.before",void 0,{...Fa(t,r),kill(d){u=d||u}});let f=(0,j$.spawn)(e,r,a);f.stdout.on("data",SR(l,"stdOut",i,s.step("stdOut"))),f.stderr.on("data",SR(c,"stdErr",i,s.step("stdErr"))),f.on("error",rq(c,i)),n&&(i("Passing child process stdOut/stdErr to custom outputHandler"),n(e,f.stdout,f.stderr,[...r])),this._plugins.exec("spawn.after",void 0,{...Fa(t,r),spawned:f,close(d,h){o({stdOut:l,stdErr:c,exitCode:d,rejection:u||h})},kill(d){f.killed||(u=d,f.kill("SIGINT"))}})})}_beforeSpawn(t,e){let r;return this._plugins.exec("spawn.before",void 0,{...Fa(t,e),kill(n){r=n||r}}),r}}}}),q$={};yt(q$,{GitExecutor:()=>W$});var W$,iq=V({"src/lib/runners/git-executor.ts"(){"use strict";nq(),W$=class{constructor(t,e,r){this.cwd=t,this._scheduler=e,this._plugins=r,this._chain=new g0(this,this._scheduler,this._plugins)}chain(){return new g0(this,this._scheduler,this._plugins)}push(t){return this._chain.push(t)}}}});function sq(t,e,r=Da){let n=s=>{r(null,s)},i=s=>{(s==null?void 0:s.task)===t&&r(s instanceof Du?aq(s):s,void 0)};e.then(n,i)}function aq(t){let e=n=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${n} should be GitResponseError.git.${n}, this will no longer be available in version 3`),e=Da};return Object.create(t,Object.getOwnPropertyNames(t.git).reduce(r,{}));function r(n,i){return i in t||(n[i]={enumerable:!1,configurable:!1,get(){return e(i),t.git[i]}}),n}}var oq=V({"src/lib/task-callback.ts"(){"use strict";Pl(),ue()}});function ER(t,e){return x$(r=>{if(!k0(t))throw new Error(`Git.cwd: cannot change to non-directory "${t}"`);return(e||r).cwd=t})}var lq=V({"src/lib/tasks/change-working-directory.ts"(){"use strict";ue(),mt()}});function i0(t){let e=["checkout",...t];return e[1]==="-b"&&e.includes("-B")&&(e[1]=Hh(e,"-B")),pr(e)}function cq(){return{checkout(){return this._runTask(i0(hr(arguments,1)),tt(arguments))},checkoutBranch(t,e){return this._runTask(i0(["-b",t,e,...hr(arguments)]),tt(arguments))},checkoutLocalBranch(t){return this._runTask(i0(["-b",t,...hr(arguments)]),tt(arguments))}}}var uq=V({"src/lib/tasks/checkout.ts"(){"use strict";ue(),mt()}});function fq(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}function dq(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(t){return Rr(fq(),[z$],t)}})}}}var z$,hq=V({"src/lib/tasks/count-objects.ts"(){"use strict";ue(),z$=new pe(/([a-z-]+): (\d+)$/,(t,[e,r])=>{let n=a$(e);Object.hasOwn(t,n)&&(t[n]=We(r))})}});function pq(t){return Rr({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},V$,t)}var V$,mq=V({"src/lib/parsers/parse-commit.ts"(){"use strict";ue(),V$=[new pe(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(t,[e,r,n])=>{t.branch=e,t.commit=n,t.root=!!r}),new pe(/\s*Author:\s(.+)/i,(t,[e])=>{let r=e.split("<"),n=r.pop();!n||!n.includes("@")||(t.author={email:n.substr(0,n.length-1),name:r.join("<").trim()})}),new pe(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(t,[e,r,n])=>{t.summary.changes=parseInt(e,10)||0,t.summary.insertions=parseInt(r,10)||0,t.summary.deletions=parseInt(n,10)||0}),new pe(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(t,[e,r,n])=>{t.summary.changes=parseInt(e,10)||0;let i=parseInt(r,10)||0;n==="-"?t.summary.deletions=i:n==="+"&&(t.summary.insertions=i)})]}});function gq(t,e,r){return{commands:["-c","core.abbrev=40","commit",...Ou(t,"-m"),...e,...r],format:"utf-8",parser:pq}}function vq(){return{commit(e,...r){let n=tt(arguments),i=t(e)||gq(wi(e),wi(Qt(r[0],Mh,[])),[...Rl(Qt(r[1],Bu,[])),...hr(arguments,0,!0)]);return this._runTask(i,n)}};function t(e){return!Mh(e)&&Tr("git.commit: requires the commit message to be supplied as a string/string[]")}}var wq=V({"src/lib/tasks/commit.ts"(){"use strict";mq(),ue(),mt()}});function yq(){return{firstCommit(){return this._runTask(pr(["rev-list","--max-parents=0","HEAD"],!0),tt(arguments))}}}var bq=V({"src/lib/tasks/first-commit.ts"(){"use strict";ue(),mt()}});function _q(t,e){let r=["hash-object",t];return e&&r.push("-w"),pr(r,!0)}var xq=V({"src/lib/tasks/hash-object.ts"(){"use strict";mt()}});function Sq(t,e,r){let n=String(r).trim(),i;if(i=Y$.exec(n))return new Fh(t,e,!1,i[1]);if(i=X$.exec(n))return new Fh(t,e,!0,i[1]);let s="",a=n.split(" ");for(;a.length;)if(a.shift()==="in"){s=a.join(" ");break}return new Fh(t,e,/^re/i.test(n),s)}var Fh,Y$,X$,Eq=V({"src/lib/responses/InitSummary.ts"(){"use strict";Fh=class{constructor(t,e,r,n){this.bare=t,this.path=e,this.existing=r,this.gitDir=n}},Y$=/^Init.+ repository in (.+)$/,X$=/^Rein.+ in (.+)$/}});function kq(t){return t.includes(M0)}function Aq(t=!1,e,r){let n=["init",...r];return t&&!kq(n)&&n.splice(1,0,M0),{commands:n,format:"utf-8",parser(i){return Sq(n.includes("--bare"),e,i)}}}var M0,Cq=V({"src/lib/tasks/init.ts"(){"use strict";Eq(),M0="--bare"}});function D0(t){for(let e=0;eRr(new Z$,e,r,!1)}var s0,kR,AR,CR,Q$,J$=V({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";Hu(),Pq(),F$(),ue(),s0=[new pe(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(t,[e,r,n=""])=>{t.files.push({file:e.trim(),changes:We(r),insertions:n.replace(/[^+]/g,"").length,deletions:n.replace(/[^-]/g,"").length,binary:!1})}),new pe(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(t,[e,r,n])=>{t.files.push({file:e.trim(),before:We(r),after:We(n),binary:!0})}),new pe(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(t,[e,r])=>{let n=/(\d+) i/.exec(r),i=/(\d+) d/.exec(r);t.changed=We(e),t.insertions=We(n==null?void 0:n[1]),t.deletions=We(i==null?void 0:i[1])})],kR=[new pe(/(\d+)\t(\d+)\t(.+)$/,(t,[e,r,n])=>{let i=We(e),s=We(r);t.changed++,t.insertions+=i,t.deletions+=s,t.files.push({file:n,changes:i+s,insertions:i,deletions:s,binary:!1})}),new pe(/-\t-\t(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,after:0,before:0,binary:!0})})],AR=[new pe(/(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,changes:0,insertions:0,deletions:0,binary:!1})})],CR=[new pe(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(t,[e,r,n,i,s])=>{t.changed++,t.files.push({file:s!=null?s:n,changes:0,insertions:0,deletions:0,binary:!1,status:c0(Vj(e)&&e),from:c0(!!s&&n!==s&&n),similarity:We(r)})})],Q$={"":s0,"--stat":s0,"--numstat":kR,"--name-status":CR,"--name-only":AR}}});function Rq(t,e){return e.reduce((r,n,i)=>(r[n]=t[i]||"",r),Object.create({diff:null}))}function eI(t=H0,e=tI,r=""){let n=K$(r);return function(i){let s=Lu(i.trim(),!1,N0).map(function(a){let o=a.split(B0),l=Rq(o[0].split(t),e);return o.length>1&&o[1].trim()&&(l.diff=n(o[1])),l});return{all:s,latest:s.length&&s[0]||null,total:s.length}}}var N0,B0,H0,tI,rI=V({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";ue(),J$(),Hu(),N0="\xF2\xF2\xF2\xF2\xF2\xF2 ",B0=" \xF2\xF2",H0=" \xF2 ",tI=["hash","date","message","refs","author_name","author_email"]}}),nI={};yt(nI,{diffSummaryTask:()=>$q,validateLogFormatConfig:()=>zh});function $q(t){let e=D0(t),r=["diff"];return e===""&&(e="--stat",r.push("--stat=4096")),r.push(...t),zh(r)||{commands:r,format:"utf-8",parser:K$(e)}}function zh(t){let e=t.filter(Tq);if(e.length>1)return Tr(`Summary flags are mutually exclusive - pick one of ${e.join(",")}`);if(e.length&&t.includes("-z"))return Tr(`Summary flag ${e} parsing is not compatible with null termination option '-z'`)}var U0=V({"src/lib/tasks/diff.ts"(){"use strict";Hu(),J$(),mt()}});function Iq(t,e){let r=[],n=[];return Object.keys(t).forEach(i=>{r.push(i),n.push(String(t[i]))}),[r,n.join(e)]}function Fq(t){return Object.keys(t).reduce((e,r)=>(r in v0||(e[r]=t[r]),e),{})}function iI(t={},e=[]){let r=Qt(t.splitter,ct,H0),n=Gh(t.format)?t.format:{hash:"%H",date:t.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:t.multiLine?"%B":"%b",author_name:t.mailMap!==!1?"%aN":"%an",author_email:t.mailMap!==!1?"%aE":"%ae"},[i,s]=Iq(n,r),a=[],o=[`--pretty=format:${N0}${s}${B0}`,...e],l=t.n||t["max-count"]||t.maxCount;if(l&&o.push(`--max-count=${l}`),t.from||t.to){let c=t.symmetric!==!1?"...":"..";a.push(`${t.from||""}${c}${t.to||""}`)}return ct(t.file)&&o.push("--follow",Sl(t.file)),C0(Fq(t),o),{fields:i,splitter:r,commands:[...o,...a]}}function Oq(t,e,r){let n=eI(t,e,D0(r));return{commands:["log",...r],format:"utf-8",parser:n}}function Mq(){return{log(...r){let n=tt(arguments),i=iI(T0(arguments),Rl(Qt(arguments[0],Bu,[]))),s=e(...r)||zh(i.commands)||t(i);return this._runTask(s,n)}};function t(r){return Oq(r.splitter,r.fields,r.commands)}function e(r,n){return ct(r)&&ct(n)&&Tr("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}var v0,sI=V({"src/lib/tasks/log.ts"(){"use strict";Hu(),rI(),ue(),mt(),U0(),v0=(t=>(t[t["--pretty"]=0]="--pretty",t[t["max-count"]=1]="max-count",t[t.maxCount=2]="maxCount",t[t.n=3]="n",t[t.file=4]="file",t[t.format=5]="format",t[t.from=6]="from",t[t.to=7]="to",t[t.splitter=8]="splitter",t[t.symmetric=9]="symmetric",t[t.mailMap=10]="mailMap",t[t.multiLine=11]="multiLine",t[t.strictDate=12]="strictDate",t))(v0||{})}}),Oh,aI,Dq=V({"src/lib/responses/MergeSummary.ts"(){"use strict";Oh=class{constructor(t,e=null,r){this.reason=t,this.file=e,this.meta=r}toString(){return`${this.file}:${this.reason}`}},aI=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),w0,oI,Lq=V({"src/lib/responses/PullSummary.ts"(){"use strict";w0=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},oI=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function a0(t){return t.objects=t.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function TR(t){let e=/^\s*(\d+)/.exec(t),r=/delta (\d+)/i.exec(t);return{count:We(e&&e[1]||"0"),delta:We(r&&r[1]||"0")}}var lI,Nq=V({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";ue(),lI=[new Ws(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(t,[e,r])=>{let n=e.toLowerCase(),i=a0(t.remoteMessages);Object.assign(i,{[n]:We(r)})}),new Ws(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(t,[e,r])=>{let n=e.toLowerCase(),i=a0(t.remoteMessages);Object.assign(i,{[n]:We(r)})}),new Ws(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(t,[e,r,n])=>{let i=a0(t.remoteMessages);i.total=TR(e),i.reused=TR(r),i.packReused=We(n)})]}});function cI(t,e){return Rr({remoteMessages:new fI},uI,e)}var uI,fI,dI=V({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";ue(),Nq(),uI=[new Ws(/^remote:\s*(.+)$/,(t,[e])=>(t.remoteMessages.all.push(e.trim()),!1)),...lI,new Ws([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(t,[e])=>{t.remoteMessages.pullRequestUrl=e}),new Ws([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(t,[e,r,n])=>{t.remoteMessages.vulnerabilities={count:We(e),summary:r,url:n}})],fI=class{constructor(){this.all=[]}}}});function Bq(t,e){let r=Rr(new oI,hI,[t,e]);return r.message&&r}var PR,RR,$R,IR,hI,FR,G0,pI=V({"src/lib/parsers/parse-pull.ts"(){"use strict";Lq(),ue(),dI(),PR=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,RR=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,$R=/^(create|delete) mode \d+ (.+)/,IR=[new pe(PR,(t,[e,r,n])=>{t.files.push(e),r&&(t.insertions[e]=r.length),n&&(t.deletions[e]=n.length)}),new pe(RR,(t,[e,,r,,n])=>r!==void 0||n!==void 0?(t.summary.changes=+e||0,t.summary.insertions=+r||0,t.summary.deletions=+n||0,!0):!1),new pe($R,(t,[e,r])=>{_n(t.files,r),_n(e==="create"?t.created:t.deleted,r)})],hI=[new pe(/^from\s(.+)$/i,(t,[e])=>void(t.remote=e)),new pe(/^fatal:\s(.+)$/,(t,[e])=>void(t.message=e)),new pe(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(t,[e,r,n,i])=>{t.branch.local=n,t.hash.local=e,t.branch.remote=i,t.hash.remote=r})],FR=(t,e)=>Rr(new w0,IR,[t,e]),G0=(t,e)=>Object.assign(new w0,FR(t,e),cI(t,e))}}),OR,mI,MR,Hq=V({"src/lib/parsers/parse-merge.ts"(){"use strict";Dq(),ue(),pI(),OR=[new pe(/^Auto-merging\s+(.+)$/,(t,[e])=>{t.merges.push(e)}),new pe(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(t,[e,r])=>{t.conflicts.push(new Oh(e,r))}),new pe(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(t,[e,r,n])=>{t.conflicts.push(new Oh(e,r,{deleteRef:n}))}),new pe(/^CONFLICT\s+\((.+)\):/,(t,[e])=>{t.conflicts.push(new Oh(e,null))}),new pe(/^Automatic merge failed;\s+(.+)$/,(t,[e])=>{t.result=e})],mI=(t,e)=>Object.assign(MR(t,e),G0(t,e)),MR=t=>Rr(new aI,OR,t)}});function DR(t){return t.length?{commands:["merge",...t],format:"utf-8",parser(e,r){let n=mI(e,r);if(n.failed)throw new Du(n);return n}}:Tr("Git.merge requires at least one option")}var Uq=V({"src/lib/tasks/merge.ts"(){"use strict";Pl(),Hq(),mt()}});function Gq(t,e,r){let n=r.includes("deleted"),i=r.includes("tag")||/^refs\/tags/.test(t),s=!r.includes("new");return{deleted:n,tag:i,branch:!i,new:!s,alreadyUpdated:s,local:t,remote:e}}var LR,gI,NR,jq=V({"src/lib/parsers/parse-push.ts"(){"use strict";ue(),dI(),LR=[new pe(/^Pushing to (.+)$/,(t,[e])=>{t.repo=e}),new pe(/^updating local tracking ref '(.+)'/,(t,[e])=>{t.ref={...t.ref||{},local:e}}),new pe(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(t,[e,r,n])=>{t.pushed.push(Gq(e,r,n))}),new pe(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(t,[e,r,n])=>{t.branch={...t.branch||{},local:e,remote:r,remoteName:n}}),new pe(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(t,[e,r,n,i])=>{t.update={head:{local:e,remote:r},hash:{from:n,to:i}}})],gI=(t,e)=>{let r=NR(t,e),n=cI(t,e);return{...r,...n}},NR=(t,e)=>Rr({pushed:[]},LR,[t,e])}}),vI={};yt(vI,{pushTagsTask:()=>qq,pushTask:()=>j0});function qq(t={},e){return _n(e,"--tags"),j0(t,e)}function j0(t={},e){let r=["push",...e];return t.branch&&r.splice(1,0,t.branch),t.remote&&r.splice(1,0,t.remote),Hh(r,"-v"),_n(r,"--verbose"),_n(r,"--porcelain"),{commands:r,format:"utf-8",parser:gI}}var wI=V({"src/lib/tasks/push.ts"(){"use strict";jq(),ue()}});function Wq(){return{showBuffer(){let t=["show",...hr(arguments,1)];return t.includes("--binary")||t.splice(1,0,"--binary"),this._runTask(S$(t),tt(arguments))},show(){let t=["show",...hr(arguments,1)];return this._runTask(pr(t),tt(arguments))}}}var zq=V({"src/lib/tasks/show.ts"(){"use strict";ue(),mt()}}),BR,yI,Vq=V({"src/lib/responses/FileStatusSummary.ts"(){"use strict";BR=/^(.+)\0(.+)$/,yI=class{constructor(t,e,r){if(this.path=t,this.index=e,this.working_dir=r,e==="R"||r==="R"){let n=BR.exec(t)||[null,t,t];this.from=n[2]||"",this.path=n[1]||""}}}}});function HR(t){let[e,r]=t.split(Cl);return{from:r||e,to:e}}function Qr(t,e,r){return[`${t}${e}`,r]}function o0(t,...e){return e.map(r=>Qr(t,r,(n,i)=>n.conflicted.push(i)))}function Yq(t,e){let r=e.trim();switch(" "){case r.charAt(2):return n(r.charAt(0),r.charAt(1),r.slice(3));case r.charAt(1):return n(" ",r.charAt(0),r.slice(2));default:return}function n(i,s,a){let o=`${i}${s}`,l=bI.get(o);l&&l(t,a),o!=="##"&&o!=="!!"&&t.files.push(new yI(a,i,s))}}var UR,bI,_I,Xq=V({"src/lib/responses/StatusSummary.ts"(){"use strict";ue(),Vq(),UR=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},bI=new Map([Qr(" ","A",(t,e)=>t.created.push(e)),Qr(" ","D",(t,e)=>t.deleted.push(e)),Qr(" ","M",(t,e)=>t.modified.push(e)),Qr("A"," ",(t,e)=>{t.created.push(e),t.staged.push(e)}),Qr("A","M",(t,e)=>{t.created.push(e),t.staged.push(e),t.modified.push(e)}),Qr("D"," ",(t,e)=>{t.deleted.push(e),t.staged.push(e)}),Qr("M"," ",(t,e)=>{t.modified.push(e),t.staged.push(e)}),Qr("M","M",(t,e)=>{t.modified.push(e),t.staged.push(e)}),Qr("R"," ",(t,e)=>{t.renamed.push(HR(e))}),Qr("R","M",(t,e)=>{let r=HR(e);t.renamed.push(r),t.modified.push(r.to)}),Qr("!","!",(t,e)=>{(t.ignored=t.ignored||[]).push(e)}),Qr("?","?",(t,e)=>t.not_added.push(e)),...o0("A","A","U"),...o0("D","D","U"),...o0("U","A","D","U"),["##",(t,e)=>{let r=/ahead (\d+)/,n=/behind (\d+)/,i=/^(.+?(?=(?:\.{3}|\s|$)))/,s=/\.{3}(\S*)/,a=/\son\s(\S+?)(?=\.{3}|$)/,o=r.exec(e);t.ahead=o&&+o[1]||0,o=n.exec(e),t.behind=o&&+o[1]||0,o=i.exec(e),t.current=Qt(o==null?void 0:o[1],ct,null),o=s.exec(e),t.tracking=Qt(o==null?void 0:o[1],ct,null),o=a.exec(e),o&&(t.current=Qt(o==null?void 0:o[1],ct,t.current)),t.detached=/\(no branch\)/.test(e)}]]),_I=function(t){let e=t.split(Cl),r=new UR;for(let n=0,i=e.length;n!xI.includes(r))],parser(r){return _I(r)}}}var xI,Kq=V({"src/lib/tasks/status.ts"(){"use strict";Xq(),xI=["--null","-z"]}});function Nh(t=0,e=0,r=0,n="",i=!0){return Object.defineProperty({major:t,minor:e,patch:r,agent:n,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function Qq(){return Nh(0,0,0,"",!1)}function Jq(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:eW,onError(t,e,r,n){if(t.exitCode===-2)return r(Buffer.from(q0));n(e)}})}}}function eW(t){return t===q0?Qq():Rr(Nh(0,0,0,t),SI,t)}var q0,SI,tW=V({"src/lib/tasks/version.ts"(){"use strict";ue(),q0="installed=false",SI=[new pe(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(t,[e,r,n,i=""])=>{Object.assign(t,Nh(We(e),We(r),We(n),i))}),new pe(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(t,[e,r,n,i=""])=>{Object.assign(t,Nh(We(e),We(r),n,i))})]}});function GR(t,e,r,...n){return ct(r)?e(r,Qt(n[0],ct),hr(arguments)):Tr(`git.${t}() requires a string 'repoPath'`)}function rW(){return{clone(t,...e){return this._runTask(GR("clone",y0,Qt(t,ct),...e),tt(arguments))},mirror(t,...e){return this._runTask(GR("mirror",EI,Qt(t,ct),...e),tt(arguments))}}}var y0,EI,nW=V({"src/lib/tasks/clone.ts"(){"use strict";mt(),ue(),y0=(t,e,r)=>{let n=["clone",...r];return ct(t)&&n.push(Sl(t)),ct(e)&&n.push(Sl(e)),pr(n)},EI=(t,e,r)=>(_n(r,"--mirror"),y0(t,e,r))}}),kI={};yt(kI,{SimpleGitApi:()=>b0});var b0,iW=V({"src/lib/simple-git-api.ts"(){"use strict";oq(),lq(),uq(),hq(),wq(),$$(),bq(),D$(),xq(),Cq(),sI(),Uq(),wI(),zq(),Kq(),mt(),tW(),ue(),nW(),b0=class{constructor(t){this._executor=t}_runTask(t,e){let r=this._executor.chain(),n=r.push(t);return e&&sq(t,n,e),Object.create(this,{then:{value:n.then.bind(n)},catch:{value:n.catch.bind(n)},_executor:{value:r}})}add(t){return this._runTask(pr(["add",...wi(t)]),tt(arguments))}cwd(t){let e=tt(arguments);return typeof t=="string"?this._runTask(ER(t,this._executor),e):typeof(t==null?void 0:t.path)=="string"?this._runTask(ER(t.path,t.root&&this._executor||void 0),e):this._runTask(Tr("Git.cwd: workingDirectory must be supplied as a string"),e)}hashObject(t,e){return this._runTask(_q(t,e===!0),tt(arguments))}init(t){return this._runTask(Aq(t===!0,this._executor.cwd,hr(arguments)),tt(arguments))}merge(){return this._runTask(DR(hr(arguments)),tt(arguments))}mergeFromTo(t,e){return ct(t)&&ct(e)?this._runTask(DR([t,e,...hr(arguments)]),tt(arguments,!1)):this._runTask(Tr("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(t){return this._executor.outputHandler=t,this}push(){let t=j0({remote:Qt(arguments[0],ct),branch:Qt(arguments[1],ct)},hr(arguments));return this._runTask(t,tt(arguments))}stash(){return this._runTask(pr(["stash",...hr(arguments)]),tt(arguments))}status(){return this._runTask(Zq(hr(arguments)),tt(arguments))}},Object.assign(b0.prototype,cq(),rW(),vq(),zj(),dq(),yq(),Zj(),Mq(),Wq(),Jq())}}),AI={};yt(AI,{Scheduler:()=>TI});var jR,TI,sW=V({"src/lib/runners/scheduler.ts"(){"use strict";ue(),U$(),jR=(()=>{let t=0;return()=>{t++;let{promise:e,done:r}=(0,CI.createDeferred)();return{promise:e,done:r,id:t}}})(),TI=class{constructor(t=2){this.concurrency=t,this.logger=O0("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",t)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let t=_n(this.running,this.pending.shift());this.logger("Attempting id=%s",t.id),t.done(()=>{this.logger("Completing id=",t.id),Hh(this.running,t),this.schedule()})}next(){let{promise:t,id:e}=_n(this.pending,jR());return this.logger("Scheduling id=%s",e),this.schedule(),t}}}}),PI={};yt(PI,{applyPatchTask:()=>aW});function aW(t,e){return pr(["apply",...e,...t])}var oW=V({"src/lib/tasks/apply-patch.ts"(){"use strict";mt()}});function lW(t,e){return{branch:t,hash:e,success:!0}}function cW(t){return{branch:t,hash:null,success:!1}}var RI,uW=V({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";RI=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function $I(t,e){return e===1&&_0.test(t)}var qR,_0,WR,Vh,fW=V({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";uW(),ue(),qR=/(\S+)\s+\(\S+\s([^)]+)\)/,_0=/^error[^']+'([^']+)'/m,WR=[new pe(qR,(t,[e,r])=>{let n=lW(e,r);t.all.push(n),t.branches[e]=n}),new pe(_0,(t,[e])=>{let r=cW(e);t.errors.push(r),t.all.push(r),t.branches[e]=r})],Vh=(t,e)=>Rr(new RI,WR,[t,e])}}),II,dW=V({"src/lib/responses/BranchSummary.ts"(){"use strict";II=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(t,e,r,n,i){t==="*"&&(this.detached=e,this.current=r),this.all.push(r),this.branches[r]={current:t==="*",linkedWorkTree:t==="+",name:r,commit:n,label:i}}}}});function zR(t){return t?t.charAt(0):""}function FI(t,e=!1){return Rr(new II,e?[MI]:OI,t)}var OI,MI,hW=V({"src/lib/parsers/parse-branch.ts"(){"use strict";dW(),ue(),OI=[new pe(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(t,[e,r,n,i])=>{t.push(zR(e),!0,r,n,i)}),new pe(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,(t,[e,r,n,i])=>{t.push(zR(e),!1,r,n,i)})],MI=new pe(/^(\S+)$/s,(t,[e])=>{t.push("*",!1,e,"","")})}}),DI={};yt(DI,{branchLocalTask:()=>mW,branchTask:()=>pW,containsDeleteBranchCommand:()=>LI,deleteBranchTask:()=>vW,deleteBranchesTask:()=>gW});function LI(t){let e=["-d","-D","--delete"];return t.some(r=>e.includes(r))}function pW(t){let e=LI(t),r=t.includes("--show-current"),n=["branch",...t];return n.length===1&&n.push("-a"),n.includes("-v")||n.splice(1,0,"-v"),{format:"utf-8",commands:n,parser(i,s){return e?Vh(i,s).all[0]:FI(i,r)}}}function mW(){return{format:"utf-8",commands:["branch","-v"],parser(t){return FI(t)}}}function gW(t,e=!1){return{format:"utf-8",commands:["branch","-v",e?"-D":"-d",...t],parser(r,n){return Vh(r,n)},onError({exitCode:r,stdOut:n},i,s,a){if(!$I(String(i),r))return a(i);s(n)}}}function vW(t,e=!1){let r={format:"utf-8",commands:["branch","-v",e?"-D":"-d",t],parser(n,i){return Vh(n,i).branches[t]},onError({exitCode:n,stdErr:i,stdOut:s},a,o,l){if(!$I(String(a),n))return l(a);throw new Du(r.parser(Mu(s),Mu(i)),String(a))}};return r}var wW=V({"src/lib/tasks/branch.ts"(){"use strict";Pl(),fW(),hW(),ue()}});function yW(t){let e=t.trim().replace(/^["']|["']$/g,"");return e&&(0,NI.normalize)(e)}var BI,bW=V({"src/lib/responses/CheckIgnore.ts"(){"use strict";BI=t=>t.split(/\n/g).map(yW).filter(Boolean)}}),HI={};yt(HI,{checkIgnoreTask:()=>_W});function _W(t){return{commands:["check-ignore",...t],format:"utf-8",parser:BI}}var xW=V({"src/lib/tasks/check-ignore.ts"(){"use strict";bW()}});function SW(t,e){return Rr({raw:t,remote:null,branches:[],tags:[],updated:[],deleted:[]},UI,[t,e])}var UI,EW=V({"src/lib/parsers/parse-fetch.ts"(){"use strict";ue(),UI=[new pe(/From (.+)$/,(t,[e])=>{t.remote=e}),new pe(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.branches.push({name:e,tracking:r})}),new pe(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.tags.push({name:e,tracking:r})}),new pe(/- \[deleted]\s+\S+\s*-> (.+)$/,(t,[e])=>{t.deleted.push({tracking:e})}),new pe(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(t,[e,r,n,i])=>{t.updated.push({name:n,tracking:i,to:r,from:e})})]}}),GI={};yt(GI,{fetchTask:()=>AW});function kW(t){return/^--upload-pack(=|$)/.test(t)}function AW(t,e,r){let n=["fetch",...r];return t&&e&&n.push(t,e),n.find(kW)?Tr("git.fetch: potential exploit argument blocked."):{commands:n,format:"utf-8",parser:SW}}var CW=V({"src/lib/tasks/fetch.ts"(){"use strict";EW(),mt()}});function TW(t){return Rr({moves:[]},jI,t)}var jI,PW=V({"src/lib/parsers/parse-move.ts"(){"use strict";ue(),jI=[new pe(/^Renaming (.+) to (.+)$/,(t,[e,r])=>{t.moves.push({from:e,to:r})})]}}),qI={};yt(qI,{moveTask:()=>RW});function RW(t,e){return{commands:["mv","-v",...wi(t),e],format:"utf-8",parser:TW}}var $W=V({"src/lib/tasks/move.ts"(){"use strict";PW(),ue()}}),WI={};yt(WI,{pullTask:()=>IW});function IW(t,e,r){let n=["pull",...r];return t&&e&&n.splice(1,0,t,e),{commands:n,format:"utf-8",parser(i,s){return G0(i,s)},onError(i,s,a,o){let l=Bq(Mu(i.stdOut),Mu(i.stdErr));if(l)return o(new Du(l));o(s)}}}var FW=V({"src/lib/tasks/pull.ts"(){"use strict";Pl(),pI(),ue()}});function OW(t){let e={};return zI(t,([r])=>e[r]={name:r}),Object.values(e)}function MW(t){let e={};return zI(t,([r,n,i])=>{Object.hasOwn(e,r)||(e[r]={name:r,refs:{fetch:"",push:""}}),i&&n&&(e[r].refs[i.replace(/[^a-z]/g,"")]=n)}),Object.values(e)}function zI(t,e){E0(t,r=>e(r.split(/\s+/)))}var DW=V({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";ue()}}),VI={};yt(VI,{addRemoteTask:()=>LW,getRemotesTask:()=>NW,listRemotesTask:()=>BW,remoteTask:()=>HW,removeRemoteTask:()=>UW});function LW(t,e,r){return pr(["remote","add",...r,t,e])}function NW(t){let e=["remote"];return t&&e.push("-v"),{commands:e,format:"utf-8",parser:t?MW:OW}}function BW(t){let e=[...t];return e[0]!=="ls-remote"&&e.unshift("ls-remote"),pr(e)}function HW(t){let e=[...t];return e[0]!=="remote"&&e.unshift("remote"),pr(e)}function UW(t){return pr(["remote","remove",t])}var GW=V({"src/lib/tasks/remote.ts"(){"use strict";DW(),mt()}}),YI={};yt(YI,{stashListTask:()=>jW});function jW(t={},e){let r=iI(t),n=["stash","list",...r.commands,...e],i=eI(r.splitter,r.fields,D0(n));return zh(n)||{commands:n,format:"utf-8",parser:i}}var qW=V({"src/lib/tasks/stash-list.ts"(){"use strict";Hu(),rI(),U0(),sI()}}),XI={};yt(XI,{addSubModuleTask:()=>WW,initSubModuleTask:()=>zW,subModuleTask:()=>Yh,updateSubModuleTask:()=>VW});function WW(t,e){return Yh(["add",t,e])}function zW(t){return Yh(["init",...t])}function Yh(t){let e=[...t];return e[0]!=="submodule"&&e.unshift("submodule"),pr(e)}function VW(t){return Yh(["update",...t])}var YW=V({"src/lib/tasks/sub-module.ts"(){"use strict";mt()}});function XW(t,e){let r=Number.isNaN(t),n=Number.isNaN(e);return r!==n?r?1:-1:r?ZI(t,e):0}function ZI(t,e){return t===e?0:t>e?1:-1}function ZW(t){return t.trim()}function $h(t){return typeof t=="string"&&parseInt(t.replace(/^\D+/g,""),10)||0}var VR,KI,KW=V({"src/lib/responses/TagList.ts"(){"use strict";VR=class{constructor(t,e){this.all=t,this.latest=e}},KI=function(t,e=!1){let r=t.split(` +`).map(ZW).filter(Boolean);e||r.sort(function(i,s){let a=i.split("."),o=s.split(".");if(a.length===1||o.length===1)return XW($h(a[0]),$h(o[0]));for(let l=0,c=Math.max(a.length,o.length);li.indexOf(".")>=0);return new VR(r,n)}}}),QI={};yt(QI,{addAnnotatedTagTask:()=>ez,addTagTask:()=>JW,tagListTask:()=>QW});function QW(t=[]){let e=t.some(r=>/^--sort=/.test(r));return{format:"utf-8",commands:["tag","-l",...t],parser(r){return KI(r,e)}}}function JW(t){return{format:"utf-8",commands:["tag",t],parser(){return{name:t}}}}function ez(t,e){return{format:"utf-8",commands:["tag","-a","-m",e,t],parser(){return{name:t}}}}var tz=V({"src/lib/tasks/tag.ts"(){"use strict";KW()}}),rz=yj({"src/git.js"(t,e){"use strict";var{GitExecutor:r}=(iq(),pt(q$)),{SimpleGitApi:n}=(iW(),pt(kI)),{Scheduler:i}=(sW(),pt(AI)),{adhocExecTask:s,configurationErrorTask:a}=(mt(),pt(p0)),{asArray:o,filterArray:l,filterPrimitives:c,filterString:u,filterStringOrStringArray:f,filterType:d,getTrailingOptions:h,trailingFunctionArgument:m,trailingOptionsArgument:g}=(ue(),pt(h$)),{applyPatchTask:v}=(oW(),pt(PI)),{branchTask:w,branchLocalTask:b,deleteBranchesTask:k,deleteBranchTask:x}=(wW(),pt(DI)),{checkIgnoreTask:E}=(xW(),pt(HI)),{checkIsRepoTask:A}=(v$(),pt(p$)),{cleanWithOptionsTask:y,isCleanOptionsArray:S}=(T$(),pt(A$)),{diffSummaryTask:_}=(U0(),pt(nI)),{fetchTask:C}=(CW(),pt(GI)),{moveTask:P}=($W(),pt(qI)),{pullTask:N}=(FW(),pt(WI)),{pushTagsTask:B}=(wI(),pt(vI)),{addRemoteTask:H,getRemotesTask:ce,listRemotesTask:Pe,remoteTask:ve,removeRemoteTask:ie}=(GW(),pt(VI)),{getResetMode:xe,resetTask:we}=(H$(),pt(L$)),{stashListTask:W}=(qW(),pt(YI)),{addSubModuleTask:X,initSubModuleTask:q,subModuleTask:De,updateSubModuleTask:ar}=(YW(),pt(XI)),{addAnnotatedTagTask:Ft,addTagTask:Ie,tagListTask:kt}=(tz(),pt(QI)),{straightThroughBufferTask:At,straightThroughStringTask:je}=(mt(),pt(p0));function Z(M,O){this._plugins=O,this._executor=new r(M.baseDir,new i(M.maxConcurrentProcesses),O),this._trimmed=M.trimmed}(Z.prototype=Object.create(n.prototype)).constructor=Z,Z.prototype.customBinary=function(M){return this._plugins.reconfigure("binary",M),this},Z.prototype.env=function(M,O){return arguments.length===1&&typeof M=="object"?this._executor.env=M:(this._executor.env=this._executor.env||{})[M]=O,this},Z.prototype.stashList=function(M){return this._runTask(W(g(arguments)||{},l(M)&&M||[]),m(arguments))},Z.prototype.mv=function(M,O){return this._runTask(P(M,O),m(arguments))},Z.prototype.checkoutLatestTag=function(M){var O=this;return this.pull(function(){O.tags(function(oe,Ce){O.checkout(Ce.latest,M)})})},Z.prototype.pull=function(M,O,oe,Ce){return this._runTask(N(d(M,u),d(O,u),h(arguments)),m(arguments))},Z.prototype.fetch=function(M,O){return this._runTask(C(d(M,u),d(O,u),h(arguments)),m(arguments))},Z.prototype.silent=function(M){return this._runTask(s(()=>console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this method will be removed.")))},Z.prototype.tags=function(M,O){return this._runTask(kt(h(arguments)),m(arguments))},Z.prototype.rebase=function(){return this._runTask(je(["rebase",...h(arguments)]),m(arguments))},Z.prototype.reset=function(M){return this._runTask(we(xe(M),h(arguments)),m(arguments))},Z.prototype.revert=function(M){let O=m(arguments);return typeof M!="string"?this._runTask(a("Commit must be a string"),O):this._runTask(je(["revert",...h(arguments,0,!0),M]),O)},Z.prototype.addTag=function(M){let O=typeof M=="string"?Ie(M):a("Git.addTag requires a tag name");return this._runTask(O,m(arguments))},Z.prototype.addAnnotatedTag=function(M,O){return this._runTask(Ft(M,O),m(arguments))},Z.prototype.deleteLocalBranch=function(M,O,oe){return this._runTask(x(M,typeof O=="boolean"?O:!1),m(arguments))},Z.prototype.deleteLocalBranches=function(M,O,oe){return this._runTask(k(M,typeof O=="boolean"?O:!1),m(arguments))},Z.prototype.branch=function(M,O){return this._runTask(w(h(arguments)),m(arguments))},Z.prototype.branchLocal=function(M){return this._runTask(b(),m(arguments))},Z.prototype.raw=function(M){let O=!Array.isArray(M),oe=[].slice.call(O?arguments:M,0);for(let Ot=0;Otconsole.warn("simple-git deprecation notice: clearQueue() is deprecated and will be removed, switch to using the abortPlugin instead.")))},Z.prototype.checkIgnore=function(M,O){return this._runTask(E(o(d(M,f,[]))),m(arguments))},Z.prototype.checkIsRepo=function(M,O){return this._runTask(A(d(M,u)),m(arguments))},e.exports=Z}});zs();var nz=class extends Pr{constructor(t,e){super(void 0,e),this.config=t}};zs();zs();var Tl=class extends Pr{constructor(t,e,r){super(t,r),this.task=t,this.plugin=e,Object.setPrototypeOf(this,new.target.prototype)}};Pl();JR();v$();T$();$$();F$();D$();H$();function iz(t){return t?[{type:"spawn.before",action(n,i){t.aborted&&i.kill(new Tl(void 0,"abort","Abort already signaled"))}},{type:"spawn.after",action(n,i){function s(){i.kill(new Tl(void 0,"abort","Abort signal received"))}t.addEventListener("abort",s),i.spawned.on("close",()=>t.removeEventListener("abort",s))}}]:void 0}function sz(t={}){return{type:"spawn.args",action(e,{env:r}){for(let n of bR(e,r))if(t[n.category]!==!0)throw new Tl(void 0,"unsafe",n.message);return e}}}ue();function az(t){let e=Ou(t,"-c");return{type:"spawn.args",action(r){return[...e,...r]}}}ue();var YR=(0,Al.deferred)().promise;function oz({onClose:t=!0,onExit:e=50}={}){function r(){let i=-1,s={close:(0,Al.deferred)(),closeTimeout:(0,Al.deferred)(),exit:(0,Al.deferred)(),exitTimeout:(0,Al.deferred)()},a=Promise.race([t===!1?YR:s.closeTimeout.promise,e===!1?YR:s.exitTimeout.promise]);return n(t,s.close,s.closeTimeout),n(e,s.exit,s.exitTimeout),{close(o){i=o,s.close.done()},exit(o){i=o,s.exit.done()},get exitCode(){return i},result:a}}function n(i,s,a){i!==!1&&(i===!0?s.promise:s.promise.then(()=>l0(i))).then(a.done)}return{type:"spawn.after",async action(i,{spawned:s,close:a}){var u,f;let o=r(),l=!0,c=()=>void(l=!1);(u=s.stdout)==null||u.on("data",c),(f=s.stderr)==null||f.on("data",c),s.on("error",c),s.on("close",d=>o.close(d)),s.on("exit",d=>o.exit(d));try{await o.result,l&&await l0(50),a(o.exitCode)}catch(d){a(o.exitCode,d)}}}}ue();var lz="Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings",XR="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function cz(t){return!t||!/^([a-z]:)?([a-z0-9/.\\_~-]+)$/i.test(t)}function ZR(t,e){if(t.length<1||t.length>2)throw new Tl(void 0,"binary",lz);if(t.some(cz))if(e)console.warn(XR);else throw new Tl(void 0,"binary",XR);let[n,i]=t;return{binary:n,prefix:i}}function uz(t,e=["git"],r=!1){let n=ZR(wi(e),r);t.on("binary",i=>{n=ZR(wi(i),r)}),t.append("spawn.binary",()=>n.binary),t.append("spawn.args",i=>n.prefix?[n.prefix,...i]:i)}zs();function fz(t){return!!(t.exitCode&&t.stdErr.length)}function dz(t){return Buffer.concat([...t.stdOut,...t.stdErr])}function hz(t=!1,e=fz,r=dz){return(n,i)=>!t&&n||!e(i)?n:r(i)}function KR(t){return{type:"task.error",action(e,r){let n=t(e.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});return Buffer.isBuffer(n)?{error:new Pr(void 0,n.toString("utf-8"))}:{error:n}}}}ue();var pz=class{constructor(){this.plugins=new Set,this.events=new JI.EventEmitter}on(t,e){this.events.on(t,e)}reconfigure(t,e){this.events.emit(t,e)}append(t,e){let r=_n(this.plugins,{type:t,action:e});return()=>this.plugins.delete(r)}add(t){let e=[];return wi(t).forEach(r=>r&&this.plugins.add(_n(e,r))),()=>{e.forEach(r=>this.plugins.delete(r))}}exec(t,e,r){let n=e,i=Object.freeze(Object.create(r));for(let s of this.plugins)s.type===t&&(n=s.action(n,i));return n}};ue();function mz(t){let e="--progress",r=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(s,a){return r.includes(a.method)?s$(s,e):s}},{type:"spawn.after",action(s,a){var o;a.commands.includes(e)&&((o=a.spawned.stderr)==null||o.on("data",l=>{let c=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(l.toString("utf8"));c&&t({method:a.method,stage:gz(c[1]),progress:We(c[2]),processed:We(c[3]),total:We(c[4])})}))}}]}function gz(t){return String(t.toLowerCase().split(" ",1))||"unknown"}ue();function vz(t){let e=o$(t,["uid","gid"]);return{type:"spawn.options",action(r){return{...e,...r}}}}function wz({block:t,stdErr:e=!0,stdOut:r=!0}){if(t>0)return{type:"spawn.after",action(n,i){var c,u;let s;function a(){s&&clearTimeout(s),s=setTimeout(l,t)}function o(){var f,d;(f=i.spawned.stdout)==null||f.off("data",a),(d=i.spawned.stderr)==null||d.off("data",a),i.spawned.off("exit",o),i.spawned.off("close",o),s&&clearTimeout(s)}function l(){o(),i.kill(new Tl(void 0,"timeout","block timeout reached"))}r&&((c=i.spawned.stdout)==null||c.on("data",a)),e&&((u=i.spawned.stderr)==null||u.on("data",a)),i.spawned.on("exit",o),i.spawned.on("close",o),a()}}}function yz(){return{type:"spawn.args",action(t){let e=[],r;function n(i){(r=r||[]).push(...i)}for(let i=0;iwn(a)&&El(a)||a));break}e.push(s)}return r?[...e,"--",...r.map(String)]:e}}}ue();var bz=rz();function _z(t,e){var i;let r=new pz,n=f$(t&&(typeof t=="string"?{baseDir:t}:t)||{},e);if(!k0(n.baseDir))throw new nz(n,"Cannot use simple-git on a directory that does not exist");return Array.isArray(n.config)&&r.add(az(n.config)),r.add(sz(n.unsafe)),r.add(oz(n.completion)),n.abort&&r.add(iz(n.abort)),n.progress&&r.add(mz(n.progress)),n.timeout&&r.add(wz(n.timeout)),n.spawnOptions&&r.add(vz(n.spawnOptions)),r.add(yz()),r.add(KR(hz(!0))),n.errors&&r.add(KR(n.errors)),uz(r,n.binary,(i=n.unsafe)==null?void 0:i.allowUnsafeCustomBinary),new bz(n,r)}Pl();var eF=_z;var Se=class extends wl{constructor(r){super(r);this.useDefaultWindowsGitPath=!1}async setGitInstance(r=!1){var n;if(await this.isGitInstalled()){let i=this.app.vault.adapter,s=i.getBasePath(),a=s;this.plugin.settings.basePath&&(await i.exists((0,Ji.normalizePath)(this.plugin.settings.basePath))?a=Ue.join(s,this.plugin.settings.basePath):r||new Ji.Notice("ObsidianGit: Base path does not exist")),this.absoluteRepoPath=a,this.git=eF({baseDir:a,binary:this.plugin.localStorage.getGitPath()||(this.useDefaultWindowsGitPath?Wd:void 0),config:["core.quotepath=off"],unsafe:{allowUnsafeCustomBinary:!0,allowUnsafeEditor:!0,allowUnsafeAskPass:!0,allowUnsafeConfigEnvCount:!0,allowUnsafeConfigPaths:!0,allowUnsafeCredentialHelper:!0,allowUnsafeGitProxy:!0,allowUnsafeGpgProgram:!0,allowUnsafeHooksPath:!0,allowUnsafeMergeDriver:!0,allowUnsafeSshCommand:!0}});let o=this.plugin.localStorage.getPATHPaths(),l=this.plugin.localStorage.getEnvVars(),c=this.plugin.settings.gitDir,u={...process.env};if(o.length>0){let w=o.join(":")+":"+u.PATH;u.PATH=w}c&&(u.GIT_DIR=c,u.GIT_WORK_TREE=a);for(let w of l){let[b,k]=w.split("=");u[b]=k}let f="simple-git",d=",",m=((n=localStorage.debug)!=null?n:"").split(d);if(!m.includes(f)&&!m.includes(`-${f}`)&&(m.push(f),nF.default.enable(m.join(d))),await this.git.env(u).checkIsRepo()){let w=await this.git.revparse("--show-cdup"),b=(0,Uu.resolve)(a+Uu.sep+w);this.absoluteRepoPath=b,await this.git.cwd(b)}let g=Ue.join(s,this.app.vault.configDir,"plugins","obsidian-git"),v=Ue.join(g,Ta);u.SSH_ASKPASS==null&&(u.SSH_ASKPASS=v),u.SSH_ASKPASS_REQUIRE="force",u.OBSIDIAN_GIT_CREDENTIALS_INPUT=Ue.join(g,zd),u.SSH_ASKPASS==v&&this.askpass().catch(w=>this.plugin.displayError(w)),u.OBSIDIAN_GIT="1",this.git=this.git.env(u)}}getRelativeVaultPath(r){let i=this.app.vault.adapter.getBasePath(),s=Ue.join(this.absoluteRepoPath,r),a=Ue.relative(i,s);return Ji.Platform.isWin&&(a=a.replace(/\\/g,"/")),a}getRelativeRepoPath(r,n=!0){if(n){let s=this.plugin.app.vault.adapter.getBasePath(),a=this.absoluteRepoPath,o=Ue.join(s,r),l=Ue.relative(a,o);return Ji.Platform.isWin&&(l=l.replace(/\\/g,"/")),l}return r}get absPluginConfigPath(){let n=this.app.vault.adapter.getBasePath();return Ue.join(n,this.app.vault.configDir,"plugins","obsidian-git")}get relPluginConfigPath(){return Ue.join(this.app.vault.configDir,"plugins","obsidian-git")}async askpass(){let r=this.app.vault.adapter,n=this.app.vault.configDir+"/plugins/obsidian-git/";await this.addAskPassScriptToExclude(),await Jr.writeFile(Ue.join(this.absPluginConfigPath,Ta),QA),await Jr.chmod(Ue.join(this.absPluginConfigPath,Ta),493),this.watchAbortController=new AbortController;let{signal:i}=this.watchAbortController;try{let s=Jr.watch(this.absPluginConfigPath,{signal:i});for await(let a of s){if(a.filename!=zd)continue;let o=n+zd;if(await new Promise(d=>setTimeout(d,200)),!await r.exists(o))continue;let l=await r.read(o),c;l.length>60&&(c=new Ji.Notice(l,999999));let u=!0;l.contains("Username for")&&(u=!1);let f=await new Ze(this.plugin,{allowEmpty:!0,obscure:u,placeholder:l.length>60?"Enter a response to the message.":l}).openAndGetResult();c==null||c.hide(),await r.exists(o)&&await r.write(`${o}.response`,f!=null?f:"")}}catch(s){this.plugin.displayError(s),await Jr.rm(Ue.join(this.absPluginConfigPath,Ta),{force:!0}),await Jr.rm(Ue.join(this.absPluginConfigPath,`${Ta}.response`),{force:!0}),await new Promise(a=>setTimeout(a,5e3)),this.plugin.log("Retry watch for ask pass"),await this.askpass()}}async addAskPassScriptToExclude(){try{if(!await this.git.checkIsRepo())return;let r=await this.git.revparse(["--path-format=absolute","--git-path","info/exclude"]),n=Ue.join(this.app.vault.configDir,"plugins","obsidian-git",Ta),i=this.getRelativeRepoPath(n,!0);(await Jr.readFile(r,"utf-8")).split(` +`).some(l=>l.contains(i))||await Jr.appendFile(r,i+` +`)}catch(r){console.error("Error while adding askpass script to exclude file:",r)}}unload(){var r;(r=this.watchAbortController)==null||r.abort()}async status(r){let n=r==null?void 0:r.path;this.plugin.setPluginState({gitAction:1});let i=await this.git.status(n!=null?["--",n]:[]);this.plugin.setPluginState({gitAction:0});let s=i.files.map(a=>{let o=this.formatPath(a);return{path:o.path,from:o.from,index:a.index==="?"?"U":a.index,workingDir:a.working_dir==="?"?"U":a.working_dir,vaultPath:this.getRelativeVaultPath(o.path)}});return{all:s,changed:s.filter(a=>a.workingDir!==" "),staged:s.filter(a=>a.index!==" "&&a.index!="U"),conflicted:i.conflicted.map(a=>this.formatPath({path:a}).path)}}async submoduleAwareHeadRevisonInContainingDirectory(r){let n=this.getRelativeRepoPath(r),s=["-C",Ue.dirname(n),"rev-parse","HEAD"],a=this.git.raw(s);return a.catch(o=>console.warn("obsidian-git: rev-parse error:",o)),(await a).trim()}async getSubmodulePaths(){return new Promise(r=>{this.git.outputHandler((n,i,s,a)=>{if(!(a.contains("submodule")&&a.contains("foreach")))return;let o="",l=this.app.vault.adapter.getBasePath()+(this.plugin.settings.basePath?"/"+this.plugin.settings.basePath:"");i.on("data",c=>{o+=c.toString("utf8")}),i.on("end",()=>{let u=o.split(` +`).map(f=>{let d=f.match(/'([^']*)'/);if(d!=null)return l+"/"+d[1]+Uu.sep}).filter(f=>!!f);u.reverse(),r(u)})}),this.git.subModule(["foreach","--recursive",""]).then(()=>{this.git.outputHandler(()=>{})},n=>this.plugin.displayError(n))})}formatPath(r){function n(i){if(i!=null)return i.startsWith('"')&&i.endsWith('"')?i.substring(1,i.length-1):i}return r.from!=null?{from:n(r.from),path:n(r.path)}:{path:n(r.path)}}async blame(r,n,i){if(r=this.getRelativeRepoPath(r),!await this.isTracked(r))return"untracked";let s=await this.getSubmoduleOfFile(r),a=s?["-C",s.submodule]:[],o=s?s.relativeFilepath:r;a.push("blame","--porcelain"),i&&a.push("-w");let l=`-C${qd}`;switch(n){case"inactive":break;case"same-commit":a.push("-C",l);break;case"all-commits":a.push("-C","-C",l);break;default:js(n)}a.push("--",o);let c=await this.git.raw(a);return xz(c)}async isTracked(r){let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],s=n?n.relativeFilepath:r;return i.push("ls-files","--",s),this.git.raw(i).then(a=>a.trim()!=="")}async commitAll({message:r}){if(this.plugin.settings.updateSubmodules){this.plugin.setPluginState({gitAction:4});let i=await this.getSubmodulePaths();for(let s of i)await this.git.cwd({path:s,root:!1}).add("-A"),await this.git.cwd({path:s,root:!1}).commit(await this.formatCommitMessage(r))}this.plugin.setPluginState({gitAction:3}),await this.git.add("-A"),this.plugin.setPluginState({gitAction:4});let n=await this.git.commit(await this.formatCommitMessage(r));return this.app.workspace.trigger("obsidian-git:head-change"),n.summary.changes}async commit({message:r,amend:n}){this.plugin.setPluginState({gitAction:4});let i=(await this.git.commit(await this.formatCommitMessage(r),n?["--amend"]:[])).summary.changes;return this.app.workspace.trigger("obsidian-git:head-change"),this.plugin.setPluginState({gitAction:0}),i}async stage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.add(["--",r]),this.plugin.setPluginState({gitAction:0})}async stageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.add(r!=null?r:"-A"),this.plugin.setPluginState({gitAction:0})}async unstageAll({dir:r}){this.plugin.setPluginState({gitAction:3}),await this.git.reset(r!=null?["--",r]:[]),this.plugin.setPluginState({gitAction:0})}async unstage(r,n){this.plugin.setPluginState({gitAction:3}),r=this.getRelativeRepoPath(r,n),await this.git.reset(["--",r]),this.plugin.setPluginState({gitAction:0})}async discard(r){this.plugin.setPluginState({gitAction:3}),await this.isTracked(r)&&await this.git.checkout(["--",r]),this.plugin.setPluginState({gitAction:0})}async applyPatch(r){let n=Ue.join(this.relPluginConfigPath,"patch");await this.app.vault.adapter.write(n,r),await this.git.applyPatch(n,{"--cached":null,"--unidiff-zero":null,"--whitespace":"nowarn"}),await this.app.vault.adapter.remove(n)}async getUntrackedPaths(r){let n=r==null?void 0:r.path;this.plugin.setPluginState({gitAction:1});let i=[];n!=null&&i.push("--",n);let s=await this.git.clean(Oa.RECURSIVE+Oa.DRY_RUN,i);return this.plugin.setPluginState({gitAction:0}),s.paths}async hashObject(r){r=this.getRelativeRepoPath(r);let n=await this.getSubmoduleOfFile(r),i=n?["-C",n.submodule]:[],s=n?n.relativeFilepath:r;return i.push("hash-object","--",s),this.git.raw(i)}async discardAll({dir:r}){return this.discard(r!=null?r:".")}async pull(){this.plugin.setPluginState({gitAction:2});try{this.plugin.settings.updateSubmodules&&await this.git.subModule(["update","--remote","--merge","--recursive"]);let r=await this.branchInfo(),n=await this.git.revparse([r.current]);if(!r.tracking&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring pull of main repo and updating submodules only.");return}await this.git.fetch();let i=await this.git.revparse([r.tracking]);if(n!==i){if(this.plugin.settings.syncMethod==="merge"||this.plugin.settings.syncMethod==="rebase")try{let o=[r.tracking];switch(this.plugin.settings.mergeStrategy!=="none"&&o.push(`--strategy-option=${this.plugin.settings.mergeStrategy}`),this.plugin.settings.syncMethod){case"merge":await this.git.merge(o);break;case"rebase":await this.git.rebase(o)}}catch(o){this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`);return}else if(this.plugin.settings.syncMethod==="reset")try{await this.git.raw(["update-ref",`refs/heads/${r.current}`,i]),await this.unstageAll({})}catch(o){this.plugin.displayError(`Sync failed (${this.plugin.settings.syncMethod}): ${"message"in o?o.message:o}`)}this.app.workspace.trigger("obsidian-git:head-change");let s=await this.git.revparse([r.current]);return(await this.git.diff([`${n}..${s}`,"--name-only"])).split(/\r\n|\r|\n/).filter(o=>o.length>0).map(o=>({path:o,workingDir:"P",vaultPath:this.getRelativeVaultPath(o)}))}else return[]}catch(r){this.convertErrors(r)}}async push(){this.plugin.setPluginState({gitAction:5});try{if(this.plugin.settings.updateSubmodules){let a=await this.git.subModule(["foreach","--recursive",`tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`]);console.log(a)}let r=await this.git.status(),n=r.tracking,i=r.current;if(!n&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring push of main repo and updating submodules only.");return}let s=null;return n&&(s=(await this.git.diffSummary([i,n,"--"])).changed),await this.git.push(),s}catch(r){this.convertErrors(r)}}async getUnpushedCommits(){let r=await this.git.status(),n=r.tracking,i=r.current;if(n==null||i==null)return 0;let[s,a]=Qi(n);return(await this.getRemoteBranches(s)).includes(n)?(await this.git.diffSummary([i,n,"--"])).changed:(this.plugin.log(`Tracking branch ${n} does not exist on remote ${s}.`),0)}async canPush(){if(this.plugin.settings.updateSubmodules===!0)return!0;let r=await this.git.status(),n=r.tracking,i=r.current;return n?(await this.git.diffSummary([i,n,"--"])).changed!==0:!1}async checkRequirements(){return await this.isGitInstalled()?await this.git.checkIsRepo()?"valid":"missing-repo":"missing-git"}async branchInfo(){let r=await this.git.status(),n=await this.git.branch(["--no-color"]);return{current:r.current||void 0,tracking:r.tracking||void 0,branches:n.all}}async getRemoteUrl(r){try{return await this.git.remote(["get-url",r])||void 0}catch(n){if(String(n).contains(r))return;throw n}}async log(r,n=!0,i,s){let a;r&&(a=this.getRelativeRepoPath(r,n));let o={file:a,maxCount:i,"--diff-merges":"first-parent","--name-status":null};return s&&(o[s]=null),(await this.git.log(o)).all.map(c=>{var u,f,d,h;return{...c,author:{name:c.author_name,email:c.author_email},refs:c.refs.split(", ").filter(m=>m.length>0),diff:{...c.diff,files:(f=(u=c.diff)==null?void 0:u.files.map(m=>({...m,status:m.status,path:m.file,hash:c.hash,vaultPath:this.getRelativeVaultPath(m.file),fromPath:m.from,fromVaultPath:m.from!=null?this.getRelativeVaultPath(m.from):void 0,binary:m.binary})))!=null?f:[]},fileName:(h=(d=c.diff)==null?void 0:d.files.first())==null?void 0:h.file}})}async show(r,n,i=!0){let s=this.getRelativeRepoPath(n,i);return this.git.show([r+":"+s])}async getLocalBranchUpstream(r){try{let i=(await this.git.raw(["rev-parse","--abbrev-ref",`${r}@{upstream}`])).trim();return i.length>0?i:void 0}catch(n){return}}getAvailableLocalBranchName(r,n,i){let s=r;if(!i.includes(s))return s;let a=`${r}-${n}`,o=a,l=0;for(;i.includes(o);)l+=1,o=`${a}-${l}`;return o}async checkout(r,n){if(n){let i=`${n}/${r}`,s=await this.branchInfo();if(s.branches.includes(r)&&await this.getLocalBranchUpstream(r)===i)await this.git.checkout(r);else{let l=this.getAvailableLocalBranchName(r,n,s.branches);await this.git.checkout(["-b",l,i])}}else await this.git.checkout(r);if(this.plugin.settings.submoduleRecurseCheckout){let i=await this.getSubmodulePaths();for(let s of i){let a=await this.git.cwd({path:s,root:!1}).branch();Object.keys(a.branches).includes(r)&&await this.git.cwd({path:s,root:!1}).checkout(r)}}}async createBranch(r){await this.git.checkout(["-b",r])}async deleteBranch(r,n){await this.git.branch([n?"-D":"-d",r])}async branchIsMerged(r){return!(await this.git.branch(["--no-merged"])).all.contains(r)}async init(){await this.git.init(!1)}async clone(r,n,i){await this.git.clone(r,Ue.join(this.app.vault.adapter.getBasePath(),n),i?["--depth",`${i}`]:[]),await this.setGitInstance()}async setConfig(r,n){n==null?await this.git.raw(["config","--local","--unset",r]):await this.git.addConfig(r,n)}async getConfig(r,n="local"){var s;return(s=(await this.git.getConfig(r.toLowerCase(),n=="all"?void 0:n)).value)!=null?s:void 0}async fetch(r){await this.git.fetch(r!=null?[r]:[])}async setRemote(r,n){(await this.getRemotes()).includes(r)?await this.git.remote(["set-url",r,n]):await this.git.remote(["add",r,n])}async getRemoteBranches(r){let n=await this.git.branch(["-r","--list",`${r}*`]),i=[];for(let s in n.branches)i.push(n.branches[s].name);return i}async getRemotes(){let r=await this.git.remote([]);return r?r.trim().split(` +`):[]}async removeRemote(r){await this.git.removeRemote(r)}async updateUpstreamBranch(r){try{await this.git.branch(["--set-upstream-to",r])}catch(n){try{await this.git.branch(["--set-upstream",r])}catch(i){let[s,a]=Qi(r),o=await this.branchInfo();await this.git.push(["--set-upstream",s,`${o.current}:${a}`])}}}updateGitPath(r){return this.setGitInstance()}updateBasePath(r){return this.setGitInstance(!0)}async getDiffString(r,n=!1,i){return n?await this.git.diff(["--cached","--",r]):i?await this.git.show([`${i}`,"--",r]):await this.git.diff(["--",r])}async diff(r,n,i){return await this.git.diff([`${n}..${i}`,"--",r])}async rawCommand(r){let n=r.split(" ");return await this.git.raw(n[0],...n.slice(1))}async getSubmoduleOfFile(r){if(!await this.app.vault.adapter.exists(Ue.dirname(r)))return;let n=await this.git.raw(["-C",Ue.dirname(r),"rev-parse","--show-toplevel"],l=>l&&console.warn("get-submodule-of-file",l==null?void 0:l.message));if(n=n.trim(),(await this.git.raw(["-C",Ue.dirname(r),"rev-parse","--show-superproject-working-tree"],l=>l&&console.warn("get-submodule-of-file",l==null?void 0:l.message))).trim()==="")return;let a=this.app.vault.adapter.getFullPath(Ue.normalize(r)),o=Ue.relative(n,a);return{submodule:n,relativeFilepath:o}}async getLastCommitTime(){try{let r=await this.git.log({n:1});if(r!=null&&r.latest!=null)return new Date(r.latest.date)}catch(r){if(r instanceof Pr){if(r.message.contains("does not have any commits yet"))return}else throw r}}async isGitInstalled(){let r=this.plugin.localStorage.getGitPath(),n=await $u(r||"git",["--version"],{});if(n.error)if(Ji.Platform.isWin&&!r){this.plugin.log(`Git not found in PATH. Checking standard installation path(${Wd}) of Git for Windows.`);let i=await $u(Wd,["--version"]);if(i.error)return console.error(i.error),!1;this.useDefaultWindowsGitPath=!0}else return console.error(n.error),!1;else this.useDefaultWindowsGitPath=!1;return!0}convertErrors(r){if(r instanceof Pr){let n=String(r.message);if(n.contains("Could not resolve host")||n.contains("Unable to resolve host")||n.contains("Unable to open connection")||n.match(/ssh: connect to host .*? port .*?: Operation timed out/)!=null||n.match(/ssh: connect to host .*? port .*?: Network is unreachable/)!=null||n.match(/ssh: connect to host .*? port .*?: Undefined error: 0/)!=null)throw new ul(n)}throw r}async isFileTrackedByLFS(r){try{return(await this.git.raw(["check-attr","filter",r])).includes("filter: lfs")}catch(n){let i=n instanceof Error?n.message:String(n);return this.plugin.displayError(`Error checking LFS status: ${i}`),!1}}},iF={hash:"000000",isZeroCommit:!0,summary:""};function xz(t){let r=t.replace(`\r `,` `).split(` -`),i={commits:new Map,hashPerLine:[void 0],originalFileLineNrPerLine:[void 0],finalFileLineNrPerLine:[void 0],groupSizePerStartingLine:new Map},n=1;for(let s=0;s=4&&r.groupSizePerStartingLine.set(e,parseInt(t[3])),parseInt(t[2])!==e)throw Error(`git-blame output is out of order: ${e} vs ${t[2]}`);return i}function Lz(t,e,r){let i=t[0],n=t.slice(1).join(" "),s=e.hashPerLine[r],a=e.commits.get(s)||{hash:s,author:{},committer:{},previous:{}};switch(i){case"summary":a.summary=n;break;case"author":a.author.name=n;break;case"author-mail":a.author.email=UF(n);break;case"author-time":a.author.epochSeconds=parseInt(n);break;case"author-tz":a.author.tz=n;break;case"committer":a.committer.name=n;break;case"committer-mail":a.committer.email=UF(n);break;case"committer-time":a.committer.epochSeconds=parseInt(n);break;case"committer-tz":a.committer.tz=n;break;case"previous":a.previous.commitHash=n;break;case"filename":a.previous.filename=n;break}e.commits.set(s,a)}function Bz(t){if(t.summary===void 0)throw Error(`Summary not provided for commit: ${t.hash}`);L0(t.author)&&(t.author=void 0),L0(t.committer)&&(t.committer=void 0),L0(t.previous)&&(t.previous=void 0),t.isZeroCommit=!!t.hash.match(/^0*$/)}function L0(t){return!t||Object.keys(t).length===0}function HF(t){return t.length>0&&t[0].trim()===t[0]}function UF(t){let e=t.startsWith("<")?t.substring(1):t;return e.endsWith(">")?e.substring(0,e.length-1):e}p();var pI=require("@codemirror/state");p();var B0=class{constructor(){this.eventsPerFilepath=new Map;this.startRemoveStalesSubscribersInterval()}ifFilepathDefinedTransformSubscribers(e,r){if(e)return this.ensureInitialized(e),r(this.eventsPerFilepath.get(e))}forEachSubscriber(e){this.eventsPerFilepath.forEach(r=>r.forEach(e))}ensureInitialized(e){this.eventsPerFilepath.get(e)||this.eventsPerFilepath.set(e,new Set)}startRemoveStalesSubscribersInterval(){this.removeStalesSubscribersTimer=window.setInterval(()=>this==null?void 0:this.forEachSubscriber(e=>e==null?void 0:e.removeIfStale()),6e4)}clear(){window.clearInterval(this.removeStalesSubscribersTimer),this.eventsPerFilepath.clear()}},Jn=new B0;p();var zh=require("@codemirror/state"),qF=Mt(N0());function zF(t,e,r){if(!(t===void 0||e===void 0||r===void 0))return`head${t}-obj${e}-path${r}`}var VF=zh.StateEffect.define();function WF(t,e,r){return r.update({effects:VF.of({key:t,la:e,lineOffsetsFromUnsavedChanges:new Map})})}var kl=zh.StateField.define({create:t=>{},update:(t,e)=>{for(let r of e.effects)if(r.is(VF))return r.value;return Nz(e,t)},compare:(t,e)=>(t==null?void 0:t.key)===(e==null?void 0:e.key)});function Vh(t){var s;let e=qF.sha256.create();if(!t)return e;let{la:r,key:i,lineOffsetsFromUnsavedChanges:n}=t;e.update(r==="untracked"?"t":"f"),e.update(i);for(let[a,o]of(s=n.entries())!=null?s:[])e.update([a,o]);return e}var wi={get:void 0,save:void 0};function YF(t,e){wi.get=t,wi.save=e}function Wh(t){var e,r;return(r=(e=qh(t.coloringMaxAge))==null?void 0:e.asDays())!=null?r:qh(rt.lineAuthor.coloringMaxAge).asDays()}function Nz(t,e){if(e)return t.changes.empty||t.changes.iterChanges((r,i,n,s)=>{var m;let a=t.startState.doc,{newDoc:o}=t,l=a.lineAt(r).number,c=a.lineAt(i).number,u=o.lineAt(n).number,f=o.lineAt(s).number,d=c-l+1,h=f-u+1;for(let g=u;g<=f;g++){let v=(m=e.lineOffsetsFromUnsavedChanges.get(g))!=null?m:0,w=f===g,b=h-d;w&&(v+=b),e.lineOffsetsFromUnsavedChanges.set(g,v)}}),e}p();function XF(){Al=void 0,H0=[],Yh=0,Zh.clear(),Kh.clear(),Tl.clear()}var Al,Xh=()=>Al;function ZF(t,e){var n;let r=e.length;if(r<((n=Al==null?void 0:Al.length)!=null?n:0))return;Al={gutter:t,length:r,text:e};let i=wi.get();r!==i.gutterSpacingFallbackLength&&(i.gutterSpacingFallbackLength=r,wi.save(i))}var H0=[],Hz=15,Yh=0;function KF(t){H0[Yh]=t,Yh=(Yh+1)%Hz}function QF(){return HP(H0)}var Zh=new Map,Kh=new Map,Tl=new Set;p();var fI=require("@codemirror/state"),dI=require("@codemirror/view");p();var q0=require("@codemirror/view"),oI=Mt(N0()),Cl=require("obsidian");p();p();var Qh={x:-10,y:-10};function JF(){Qh.x===-10&&window.addEventListener("mousedown",t=>{Qh.x=t.clientX,Qh.y=t.clientY})}function eI(){for(let t of Tl)if(Uz(t,Qh))return t}function Uz(t,e){let{x:r,y:i,width:n,height:s}=t.getBoundingClientRect();return r<=e.x&&e.x<=r+n&&i<=e.y&&e.y<=i+s}var tI="data-commit";function rI(t,e,r){if(e.hasFocus())return;let i=eI();if(!i)return;let n=jz(i);n&&(!n.isZeroCommit&&!n.isWaitingGutter&&Gz(n,t),U0("showCommitHash",t),U0("authorDisplay",t),U0("dateTimeFormatOptions",t))}function Gz(t,e){e.addItem(r=>r.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick(i=>navigator.clipboard.writeText(t.hash)))}function U0(t,e){var l,c;let r,i,n=Ii.plugin.settings.lineAuthor,s=n[t],a=typeof s=="boolean"?s:s!=="hide",o=rt.lineAuthor[t];if(t==="showCommitHash")r="Show commit hash",i=s;else if(t==="authorDisplay"){let u=(l=n.lastShownAuthorDisplay)!=null?l:o;r="Show author "+(a?s:u),i=a?"hide":u}else if(t==="dateTimeFormatOptions"){let u=(c=n.lastShownDateTimeFormatOptions)!=null?c:o;r="Show "+(a?s:u),r+=r.contains("date")?"":" date",i=a?"hide":u}else Gs(t);e.addItem(u=>u.setTitle(r).setSection("obs-git-line-author-configure").setChecked(a).onClick(f=>{var d,h;return(h=(d=Ii.plugin)==null?void 0:d.settingsTab)==null?void 0:h.lineAuthorSettingHandler(t,i)}))}function iI(t,e,r){r.setAttr(tI,JSON.stringify({hash:t.hash,isZeroCommit:t.isZeroCommit,isWaitingGutter:e}))}function jz(t){let e=t.getAttr(tI);return e?JSON.parse(e):void 0}p();function ep(t,e){return t==="oldest"?Jh(0,!1,e).color:Jh(void 0,!0,e).color}function Jh(t,e,r){let i=Wh(r),n=Date.now()/1e3,s=t!=null?t:0,o=(e?0:n-s)/60/60/24,l=Math.pow(Math.clamp(o/i,0,1),1/2.3),c=qz(),u=r.colorNew,f=r.colorOld,d=c?.4:1,h=G0(u.r,f.r,l)*d,m=G0(u.g,f.g,l)*d,g=G0(u.b,f.b,l)*d;return{color:`rgba(${h},${m},${g},${c?.75:.25})`,daysSinceCommit:o}}function G0(t,e,r){return t+(e-t)*r}function qz(){var t;return((t=window.app)==null?void 0:t.getTheme())==="obsidian"}function nI(t){document.body.style.setProperty("--obs-git-gutter-text",t.textColorCss)}p();function sI(t,e,r){let i;for(let n=e;n<=r;n++){let s=t.hashPerLine[n],a=t.commits.get(s);(!i||a.isZeroCommit||zz(a,i))&&(i=a)}return i}function zz(t,e){var n,s,a,o;let r=(s=(n=t.author)==null?void 0:n.epochSeconds)!=null?s:0,i=(o=(a=e.author)==null?void 0:a.epochSeconds)!=null?o:0;return r>i}var aI="-",Vz="+",Wz=3,Yz="*",Xz=/\S/g,Zz="%",Pl=class t extends q0.GutterMarker{constructor(r){super();this.text=r}eq(r){return r instanceof t&&this.text===r.text}toDOM(){return document.createTextNode(this.text)}destroy(r){}},j0=class extends q0.GutterMarker{constructor(r,i,n,s,a,o){super();this.lineAuthoring=r;this.startLine=i;this.endLine=n;this.key=s;this.settings=a;this.options=o;this.point=!1;this.elementClass="obs-git-blame-gutter"}eq(r){return this.key===(r==null?void 0:r.key)&&this.startLine===(r==null?void 0:r.startLine)&&this.endLine===(r==null?void 0:r.endLine)&&(this==null?void 0:this.options)===(r==null?void 0:r.options)}toDOM(){var r;return this.precomputedDomProvider=(r=this.precomputedDomProvider)!=null?r:this.computeDom(),this.precomputedDomProvider()}destroy(r){r&&(document.body.contains(r)||Tl.delete(r))}computeDom(){let r=sI(this.lineAuthoring,this.startLine,this.endLine),i=r.isZeroCommit?"":this.renderNonZeroCommit(r);return!r.isZeroCommit&&this.options!=="waiting-for-result"?ZF(this,i):i=this.adaptTextForFakeCommit(r,i,this.options),this.createHtmlNode(r,i,this.options==="waiting-for-result")}createHtmlNode(r,i,n){var c,u,f,d,h,m;let s=window.createDiv();s.setText(i);let{color:a,daysSinceCommit:o}=Jh((c=r==null?void 0:r.author)==null?void 0:c.epochSeconds,r==null?void 0:r.isZeroCommit,this.settings);s.style.backgroundColor=a,s.setAttribute("data-author",(f=(u=r==null?void 0:r.author)==null?void 0:u.name)!=null?f:""),s.setAttribute("data-author-email",(h=(d=r==null?void 0:r.author)==null?void 0:d.email)!=null?h:""),(0,Cl.setTooltip)(s,(m=r==null?void 0:r.summary)!=null?m:""),iI(r,n,s);function l(){let g=s.cloneNode(!0);return Tl.add(g),n||KF(o),g}return l}renderNonZeroCommit(r){let i=this.settings.showCommitHash?this.renderHash(r):"",n=this.settings.authorDisplay==="hide"?"":`${this.renderAuthorName(r,this.settings.authorDisplay)}`,s=this.settings.dateTimeFormatOptions==="hide"?"":`${this.renderAuthoringDate(r,this.settings.dateTimeFormatOptions,this.settings.dateTimeFormatCustomString,this.settings.dateTimeTimezone)}`;return[i,n,s].filter(o=>o.length>=1).join(" ")}renderHash(r){return r.hash.substring(0,6)}renderAuthorName(r,i){var o,l,c,u;let n=(l=(o=r==null?void 0:r.author)==null?void 0:o.name)!=null?l:"",s=n.split(" ").filter(f=>f.length>=1),a;switch(i){case"initials":a=s.map(f=>f[0].toUpperCase()).join("");break;case"first name":a=(c=s.first())!=null?c:aI;break;case"last name":a=(u=s.last())!=null?u:aI;break;case"full":a=n;break;default:return Gs(i)}return UP(r==null?void 0:r.author,r==null?void 0:r.committer)||(a=a+Yz),a}renderAuthoringDate(r,i,n,s){var c;let a="?";if(((c=r==null?void 0:r.author)==null?void 0:c.epochSeconds)===void 0)return a;let o;switch(i){case"date":o=Ld;break;case"datetime":o=Ev;break;case"custom":o=n;break;case"natural language":o=u=>{let f=u.diff((0,Cl.moment)());return Cl.moment.duration(f).humanize(!0)};break;default:return Gs(i)}let l=Cl.moment.unix(r.author.epochSeconds);switch(s){case"viewer-local":break;case"author-local":l=l.utcOffset(r.author.tz),typeof o=="string"&&(o+=" Z");break;case"utc0000":l=l.utc(),typeof o=="string"&&(o+="[Z]");break;default:return Gs(s)}return typeof o=="string"?l.format(o):o(l)}adaptTextForFakeCommit(r,i,n){var l,c,u,f;let s=(c=(l=Xh())==null?void 0:l.text)!=null?c:i,a=n!=="waiting-for-result"&&r.isZeroCommit?Vz:Zz;i=s.replace(Xz,a);let o=(f=(u=wi.get())==null?void 0:u.gutterSpacingFallbackLength)!=null?f:i.length;if(i=GP(i,o,a),n!=="waiting-for-result"&&r.isZeroCommit){let d=Math.min(o,Wz);i=jP(i,o-d)}return i}};function Da(t,e,r,i,n,s){let a=oI.sha256.create();a.update(JSON.stringify(n)),a.update(`s${e}-e${r}-k${i}-o${s}`);let o=a.hex(),l=Zh.get(o);if(l)return l;let c=new j0(t,e,r,i,n,s);return Zh.set(o,c),c}p();var lI=require("obsidian");function z0(){var e,r;let t=(r=(e=wi.get())==null?void 0:e.gutterSpacingFallbackLength)!=null?r:rt.lineAuthor.gutterSpacingFallbackLength;return new Pl(Array(t).fill("-").join(""))}function V0(t){let{lineAuthoring:e,ageForInitialRender:r}=Kz(t);return Da(e,1,1,"initialGutter"+r,t,"waiting-for-result")}function Kz(t){var s;let e=(s=QF())!=null?s:Wh(t)*.25,r=(0,lI.moment)().add(-e,"days"),i={name:"",epochSeconds:NP(r),tz:"+0000"},n={hash:"waiting-for-result",author:i,committer:i,isZeroCommit:!1};return{lineAuthoring:{hashPerLine:[void 0,"waiting-for-result"],commits:new Map([["waiting-for-result",n]])},ageForInitialRender:e}}p();function cI(t,e){return Da({hashPerLine:[void 0,"000000"],commits:new Map([["000000",jF]])},1,1,t,e)}var W0=new Pl(""),hI=(0,dI.gutter)({class:"line-author-gutter-container",markers(t){let e=t.state.field(kl,!1);return Qz(t,e)},lineMarkerChange(t){let e=Vh(t.state.field(kl));return Vh(t.startState.field(kl))!==e},renderEmptyElements:!0,initialSpacer:t=>(uI(t),z0()),updateSpacer:(t,e)=>{var r,i;return uI(e.view),(i=(r=Xh())==null?void 0:r.gutter)!=null?i:z0()}});function Qz(t,e){let r=Vh(e),i=t.state.doc,n=new Map;for(let u=1;u<=i.lines;u++){let f=i.line(u).from,d=t.lineBlockAt(f).to;n.set(u,[f,d]),r.update([f,d,0])}let s=wi.get();r.update("s"+Object.values(wi).join(","));let a=r.hex(),o=Kh.get(a);if(o)return o;let{result:l,allowCache:c}=Jz(i,n,s,e);return c&&Kh.set(a,l),l}function Jz(t,e,r,i){let n=!0,s=t.lines,a=[];function o(f,d,h){return a.push(h.range(f,d))}let l=eV(s,i),c=t.length===0,u=t.iterLines(s,s+1).next().value==="";for(let f=1;f<=s;f++){let[d,h]=e.get(f),m=t.lineAt(h).number;if(c){o(d,h,W0);continue}if(f===s&&u){o(d,h,W0);continue}if(i===void 0){o(d,h,V0(r)),n=!1;continue}let{key:g,la:v}=i;if(v==="untracked"){o(d,h,cI(v,r));continue}let w=v.hashPerLine.length-1,b=l[f],k=l[m];if(k&&k>w&&o(d,h,W0),b!==void 0&&qw(1,b,w)&&k!==void 0&&qw(1,k,w)){o(d,h,Da(v,b,k,g,r));continue}if(w<1){o(d,h,V0(r)),n=!1;continue}let x=Math.clamp(b!=null?b:f,1,w),E=Math.clamp(k!=null?k:m,1,w);o(d,h,Da(v,x,E,g+"computing",r,"waiting-for-result"))}return{result:fI.RangeSet.of(a,!0),allowCache:n}}function eV(t,e){if(!(e!=null&&e.lineOffsetsFromUnsavedChanges))return Array.from(new Array(t+1),n=>n);let r=[void 0],i=0;for(let n=1;n<=t;n++){let s=e.lineOffsetsFromUnsavedChanges.get(n);i+=s!=null?s:0,r[n]=s===void 0?n-i:void 0}return r}function uI(t){t.dom.querySelectorAll(".cm-gutters").forEach(r=>{r!=null&&r.style&&(r.style.marginLeft||(r.style.marginLeft="unset"))})}var tp=class{constructor(e){this.plugin=e;this.lineAuthorings=new Map}async trackChanged(e){return this.trackChangedHelper(e).catch(r=>(console.warn("Git: Error in trackChanged."+r),Promise.reject(r)))}async trackChangedHelper(e){if(e){if(e.path===void 0){console.warn("Git: Attempted to track change of undefined filepath. Unforeseen situation.");return}return this.computeLineAuthorInfo(e.path)}}destroy(){this.lineAuthorings.clear(),XF()}async computeLineAuthorInfo(e){let r=this.plugin.editorIntegration.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager,i=await r.submoduleAwareHeadRevisonInContainingDirectory(e),n=await r.hashObject(e),s=zF(i,n,e);if(s!==void 0){if(!this.lineAuthorings.has(s)){let a=await r.blame(e,this.plugin.settings.lineAuthor.followMovement,this.plugin.settings.lineAuthor.ignoreWhitespace);this.lineAuthorings.set(s,a)}this.notifyComputationResultToSubscribers(e,s)}}notifyComputationResultToSubscribers(e,r){Jn.ifFilepathDefinedTransformSubscribers(e,i=>i.forEach(n=>n.notifyLineAuthoring(r,this.lineAuthorings.get(r))))}},mI=pI.Prec.high([kl,hI]);var tV="https://momentjs.com/docs/#/parsing/string-format/",rV="https://publish.obsidian.md/git-doc/Line+Authoring",rp=class extends U.PluginSettingTab{constructor(r,i){super(r,i);this.plugin=i;this.lineAuthorColorSettings=new Map;this.icon="git-pull-request"}get settings(){return this.plugin.settings}display(){let{containerEl:r}=this,i=this.plugin,n;i.settings.differentIntervalCommitAndPush?n="commit":n="commit-and-sync";let s=i.gitReady;r.empty(),s||(r.createEl("p",{text:"Git is not ready. When all settings are correct you can configure commit-sync, etc."}),r.createEl("br"));let a;if(s){new U.Setting(r).setName("Automatic").setHeading(),new U.Setting(r).setName("Split timers for automatic commit and sync").setDesc("Enable to use one interval for commit and another for sync.").addToggle(f=>f.setValue(i.settings.differentIntervalCommitAndPush).onChange(async d=>{i.settings.differentIntervalCommitAndPush=d,await i.saveSettings(),i.automaticsManager.reload("commit","push"),this.refreshDisplayWithDelay()})),new U.Setting(r).setName(`Auto ${n} interval (minutes)`).setDesc(`${i.settings.differentIntervalCommitAndPush?"Commit":"Commit and sync"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText(f=>{f.inputEl.type="number",this.setNonDefaultValue({text:f,settingsProperty:"autoSaveInterval"}),f.setPlaceholder(String(rt.autoSaveInterval)),f.onChange(async d=>{d!==""?i.settings.autoSaveInterval=Number(d):i.settings.autoSaveInterval=rt.autoSaveInterval,await i.saveSettings(),i.automaticsManager.reload("commit")})}),a=new U.Setting(r).setName(`Auto ${n} after stopping file edits`).setDesc(`Requires the ${n} interval not to be 0. - If turned on, do auto ${n} every ${qP(i.settings.autoSaveInterval)} after stopping file edits. - This also prevents auto ${n} while editing a file. If turned off, it's independent from the last file edit.`).addToggle(f=>f.setValue(i.settings.autoBackupAfterFileChange).onChange(async d=>{i.settings.autoBackupAfterFileChange=d,this.refreshDisplayWithDelay(),await i.saveSettings(),i.automaticsManager.reload("commit")})),this.mayDisableSetting(a,i.settings.setLastSaveToLastCommit),a=new U.Setting(r).setName(`Auto ${n} after latest commit`).setDesc(`If turned on, sets last auto ${n} timestamp to the latest commit timestamp. This reduces the frequency of auto ${n} when doing manual commits.`).addToggle(f=>f.setValue(i.settings.setLastSaveToLastCommit).onChange(async d=>{i.settings.setLastSaveToLastCommit=d,await i.saveSettings(),i.automaticsManager.reload("commit"),this.refreshDisplayWithDelay()})),this.mayDisableSetting(a,i.settings.autoBackupAfterFileChange),a=new U.Setting(r).setName("Auto push interval (minutes)").setDesc("Push commits every X minutes. Set to 0 (default) to disable.").addText(f=>{f.inputEl.type="number",this.setNonDefaultValue({text:f,settingsProperty:"autoPushInterval"}),f.setPlaceholder(String(rt.autoPushInterval)),f.onChange(async d=>{d!==""?i.settings.autoPushInterval=Number(d):i.settings.autoPushInterval=rt.autoPushInterval,await i.saveSettings(),i.automaticsManager.reload("push")})}),this.mayDisableSetting(a,!i.settings.differentIntervalCommitAndPush),new U.Setting(r).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText(f=>{f.inputEl.type="number",this.setNonDefaultValue({text:f,settingsProperty:"autoPullInterval"}),f.setPlaceholder(String(rt.autoPullInterval)),f.onChange(async d=>{d!==""?i.settings.autoPullInterval=Number(d):i.settings.autoPullInterval=rt.autoPullInterval,await i.saveSettings(),i.automaticsManager.reload("pull")})}),new U.Setting(r).setName(`Auto ${n} only staged files`).setDesc(`If turned on, only staged files are committed on ${n}. If turned off, all changed files are committed.`).addToggle(f=>f.setValue(i.settings.autoCommitOnlyStaged).onChange(async d=>{i.settings.autoCommitOnlyStaged=d,await i.saveSettings()})),new U.Setting(r).setName(`Specify custom commit message on auto ${n}`).setDesc("You will get a pop up to specify your message.").addToggle(f=>f.setValue(i.settings.customMessageOnAutoBackup).onChange(async d=>{i.settings.customMessageOnAutoBackup=d,await i.saveSettings(),this.refreshDisplayWithDelay()})),a=new U.Setting(r).setName(`Commit message on auto ${n}`).setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(f=>{f.setPlaceholder(rt.autoCommitMessage).onChange(async d=>{d===""?i.settings.autoCommitMessage=rt.autoCommitMessage:i.settings.autoCommitMessage=d,await i.saveSettings()}),this.setNonDefaultValue({text:f,settingsProperty:"autoCommitMessage"})}),this.mayDisableSetting(a,i.settings.customMessageOnAutoBackup),new U.Setting(r).setName("Commit message").setHeading();let c=new U.Setting(r).setName("Commit message on manual commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message). Leave empty to require manual input on each commit.");c.addTextArea(f=>{c.addButton(d=>{d.setIcon("reset").setTooltip(`Set to default: "${rt.commitMessage}"`).onClick(()=>{f.setValue(rt.commitMessage),f.onChanged()})}),f.setValue(i.settings.commitMessage),f.onChange(async d=>{i.settings.commitMessage=d,await i.saveSettings()})}),new U.Setting(r).setName("Commit message script").setDesc("A script that is run using 'sh -c' to generate the commit message. May be used to generate commit messages using AI tools. Available placeholders: {{hostname}}, {{date}}.").addText(f=>{f.onChange(async d=>{d===""?i.settings.commitMessageScript=rt.commitMessageScript:i.settings.commitMessageScript=d,await i.saveSettings()}),this.setNonDefaultValue({text:f,settingsProperty:"commitMessageScript"})});let u=new U.Setting(r).setName("{{date}} placeholder format").addMomentFormat(f=>f.setDefaultFormat(i.settings.commitDateFormat).setValue(i.settings.commitDateFormat).onChange(async d=>{i.settings.commitDateFormat=d,await i.saveSettings()}));u.descEl.innerHTML=` - Specify custom date format. E.g. "${kv}. See Moment.js for more formats.`,new U.Setting(r).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device. Defaults to the OS hostname if not set on desktop.").addText(f=>{var d;return f.setValue((d=i.localStorage.getHostname())!=null?d:"").onChange(h=>{i.localStorage.setHostname(h)})}),new U.Setting(r).setName("Preview commit message").addButton(f=>f.setButtonText("Preview").onClick(async()=>{let d=await i.gitManager.formatCommitMessage(i.settings.commitMessage);new U.Notice(`${d}`)})),new U.Setting(r).setName("List filenames affected by commit in the commit body").addToggle(f=>f.setValue(i.settings.listChangedFilesInMessageBody).onChange(async d=>{i.settings.listChangedFilesInMessageBody=d,await i.saveSettings()})),new U.Setting(r).setName("Pull").setHeading(),i.gitManager instanceof Se&&new U.Setting(r).setName("Merge strategy").setDesc("Decide how to integrate commits from your remote branch into your local branch.").addDropdown(f=>{let d={merge:"Merge",rebase:"Rebase",reset:"Other sync service (Only updates the HEAD without touching the working directory)"};f.addOptions(d),f.setValue(i.settings.syncMethod),f.onChange(async h=>{i.settings.syncMethod=h,await i.saveSettings()})}),new U.Setting(r).setName("Merge strategy on conflicts").setDesc("Decide how to solve conflicts when pulling remote changes. This can be used to favor your local changes or the remote changes automatically.").addDropdown(f=>{let d={none:"None (git default)",ours:"Our changes",theirs:"Their changes"};f.addOptions(d),f.setValue(i.settings.mergeStrategy),f.onChange(async h=>{i.settings.mergeStrategy=h,await i.saveSettings()})}),new U.Setting(r).setName("Pull on startup").setDesc("Automatically pull commits when Obsidian starts.").addToggle(f=>f.setValue(i.settings.autoPullOnBoot).onChange(async d=>{i.settings.autoPullOnBoot=d,await i.saveSettings()})),new U.Setting(r).setName("Commit-and-sync").setDesc("Commit-and-sync with default settings means staging everything -> committing -> pulling -> pushing. Ideally this is a single action that you do regularly to keep your local and remote repository in sync.").setHeading(),a=new U.Setting(r).setName("Push on commit-and-sync").setDesc(`Most of the time you want to push after committing. Turning this off turns a commit-and-sync action into commit ${i.settings.pullBeforePush?"and pull ":""}only. It will still be called commit-and-sync.`).addToggle(f=>f.setValue(!i.settings.disablePush).onChange(async d=>{i.settings.disablePush=!d,this.refreshDisplayWithDelay(),await i.saveSettings()})),new U.Setting(r).setName("Pull on commit-and-sync").setDesc(`On commit-and-sync, pull commits as well. Turning this off turns a commit-and-sync action into commit ${i.settings.disablePush?"":"and push "}only.`).addToggle(f=>f.setValue(i.settings.pullBeforePush).onChange(async d=>{i.settings.pullBeforePush=d,this.refreshDisplayWithDelay(),await i.saveSettings()})),i.gitManager instanceof Se&&(new U.Setting(r).setName("Hunk management").setDesc("Hunks are sections of grouped line changes right in your editor.").setHeading(),new U.Setting(r).setName("Signs").setDesc("This allows you to see your changes right in your editor via colored markers and stage/reset/preview individual hunks.").addToggle(f=>f.setValue(i.settings.hunks.showSigns).onChange(async d=>{i.settings.hunks.showSigns=d,await i.saveSettings(),i.editorIntegration.refreshSignsSettings()})),new U.Setting(r).setName("Hunk commands").setDesc("Adds commands to stage/reset individual Git diff hunks and navigate between them via 'Go to next/prev hunk' commands.").addToggle(f=>f.setValue(i.settings.hunks.hunkCommands).onChange(async d=>{i.settings.hunks.hunkCommands=d,await i.saveSettings(),i.editorIntegration.refreshSignsSettings()})),new U.Setting(r).setName("Status bar with summary of line changes").addDropdown(f=>f.addOptions({disabled:"Disabled",colored:"Colored",monochrome:"Monochrome"}).setValue(i.settings.hunks.statusBar).onChange(async d=>{i.settings.hunks.statusBar=d,await i.saveSettings(),i.editorIntegration.refreshSignsSettings()})),new U.Setting(r).setName("Line author information").setHeading(),this.addLineAuthorInfoSettings())}new U.Setting(r).setName("History view").setHeading(),new U.Setting(r).setName("Show Author").setDesc("Show the author of the commit in the history view.").addDropdown(c=>{let u={hide:"Hide",full:"Full",initials:"Initials"};c.addOptions(u),c.setValue(i.settings.authorInHistoryView),c.onChange(async f=>{i.settings.authorInHistoryView=f,await i.saveSettings(),await i.refresh()})}),new U.Setting(r).setName("Show Date").setDesc("Show the date of the commit in the history view. The {{date}} placeholder format is used to display the date.").addToggle(c=>c.setValue(i.settings.dateInHistoryView).onChange(async u=>{i.settings.dateInHistoryView=u,await i.saveSettings(),await i.refresh()})),new U.Setting(r).setName("Source control view").setHeading(),new U.Setting(r).setName("Automatically refresh source control view on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option.").addToggle(c=>c.setValue(i.settings.refreshSourceControl).onChange(async u=>{i.settings.refreshSourceControl=u,await i.saveSettings()})),new U.Setting(r).setName("Source control view refresh interval").setDesc("Milliseconds to wait after file change before refreshing the Source Control View.").addText(c=>{c.inputEl.type="number",this.setNonDefaultValue({text:c,settingsProperty:"refreshSourceControlTimer"}),c.setPlaceholder(String(rt.refreshSourceControlTimer)),c.onChange(async f=>{f!==""&&Number.isInteger(Number(f))?i.settings.refreshSourceControlTimer=Math.max(Number(f),500):i.settings.refreshSourceControlTimer=rt.refreshSourceControlTimer,await i.saveSettings(),i.setRefreshDebouncer()})}),new U.Setting(r).setName("Miscellaneous").setHeading(),i.gitManager instanceof Se&&new U.Setting(r).setName("Diff view style").setDesc('Set the style for the diff view. Note that the actual diff in "Split" mode is not generated by Git, but the editor itself instead so it may differ from the diff generated by Git. One advantage of this is that you can edit the text in that view.').addDropdown(c=>{let u={split:"Split",git_unified:"Unified"};c.addOptions(u),c.setValue(i.settings.diffStyle),c.onChange(async f=>{i.settings.diffStyle=f,await i.saveSettings()})}),new U.Setting(r).setName("Disable informative notifications").setDesc("Disable informative notifications for git operations to minimize distraction (refer to status bar for updates).").addToggle(c=>c.setValue(i.settings.disablePopups).onChange(async u=>{i.settings.disablePopups=u,this.refreshDisplayWithDelay(),await i.saveSettings()})),new U.Setting(r).setName("Disable error notifications").setDesc("Disable error notifications of any kind to minimize distraction (refer to status bar for updates).").addToggle(c=>c.setValue(!i.settings.showErrorNotices).onChange(async u=>{i.settings.showErrorNotices=!u,await i.saveSettings()})),i.settings.disablePopups||new U.Setting(r).setName("Hide notifications for no changes").setDesc("Don't show notifications when there are no changes to commit or push.").addToggle(c=>c.setValue(i.settings.disablePopupsForNoChanges).onChange(async u=>{i.settings.disablePopupsForNoChanges=u,await i.saveSettings()})),new U.Setting(r).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(c=>c.setValue(i.settings.showStatusBar).onChange(async u=>{i.settings.showStatusBar=u,await i.saveSettings()})),new U.Setting(r).setName("File menu integration").setDesc('Add "Stage", "Unstage" and "Add to .gitignore" actions to the file menu.').addToggle(c=>c.setValue(i.settings.showFileMenu).onChange(async u=>{i.settings.showFileMenu=u,await i.saveSettings()})),new U.Setting(r).setName("Show branch status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(c=>c.setValue(i.settings.showBranchStatusBar).onChange(async u=>{i.settings.showBranchStatusBar=u,await i.saveSettings()})),new U.Setting(r).setName("Show the count of modified files in the status bar").addToggle(c=>c.setValue(i.settings.changedFilesInStatusBar).onChange(async u=>{i.settings.changedFilesInStatusBar=u,await i.saveSettings()})),i.gitManager instanceof Di?new U.Setting(r).setName("Authentication/commit author").setHeading():new U.Setting(r).setName("Commit author").setHeading(),i.gitManager instanceof Di&&new U.Setting(r).setName("Username on your git server. E.g. your username on GitHub").addText(c=>{var u;c.setValue((u=i.localStorage.getUsername())!=null?u:""),c.onChange(f=>{i.localStorage.setUsername(f)})}),i.gitManager instanceof Di&&new U.Setting(r).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText(c=>{c.inputEl.autocapitalize="off",c.inputEl.autocomplete="off",c.inputEl.spellcheck=!1,c.onChange(u=>{i.localStorage.setPassword(u)})}),i.gitReady&&new U.Setting(r).setName("Author name for commit").addText(async c=>{var u;c.setValue((u=await i.gitManager.getConfig("user.name"))!=null?u:""),c.onChange(async f=>{await i.gitManager.setConfig("user.name",f==""?void 0:f)})}),i.gitReady&&new U.Setting(r).setName("Author email for commit").addText(async c=>{var u;c.setValue((u=await i.gitManager.getConfig("user.email"))!=null?u:""),c.onChange(async f=>{await i.gitManager.setConfig("user.email",f==""?void 0:f)})}),new U.Setting(r).setName("Advanced").setDesc("These settings usually don't need to be changed, but may be required for special setups.").setHeading(),i.gitManager instanceof Se&&(new U.Setting(r).setName("Update submodules").setDesc('"Commit-and-sync" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule.').addToggle(c=>c.setValue(i.settings.updateSubmodules).onChange(async u=>{i.settings.updateSubmodules=u,await i.saveSettings()})),i.settings.updateSubmodules&&new U.Setting(r).setName("Submodule recurse checkout/switch").setDesc("Whenever a checkout happens on the root repository, recurse the checkout on the submodules (if the branches exist).").addToggle(c=>c.setValue(i.settings.submoduleRecurseCheckout).onChange(async u=>{i.settings.submoduleRecurseCheckout=u,await i.saveSettings()}))),i.gitManager instanceof Se&&new U.Setting(r).setName("Custom Git binary path").setDesc("Specify the path to the Git binary/executable. Git should already be in your PATH. Should only be necessary for a custom Git installation.").addText(c=>{var u;c.setValue((u=i.localStorage.getGitPath())!=null?u:""),c.setPlaceholder("git"),c.onChange(f=>{i.localStorage.setGitPath(f),i.gitManager.updateGitPath(f||"git").catch(d=>i.displayError(d))})}),i.gitManager instanceof Se&&new U.Setting(r).setName("Additional environment variables").setDesc("Use each line for a new environment variable in the format KEY=VALUE .").addTextArea(c=>{c.setPlaceholder("GIT_DIR=/path/to/git/dir"),c.setValue(i.localStorage.getEnvVars().join(` -`)),c.onChange(u=>{i.localStorage.setEnvVars(u.split(` -`))})}),i.gitManager instanceof Se&&new U.Setting(r).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea(c=>{c.setValue(i.localStorage.getPATHPaths().join(` -`)),c.onChange(u=>{i.localStorage.setPATHPaths(u.split(` -`))})}),i.gitManager instanceof Se&&new U.Setting(r).setName("Reload with new environment variables").setDesc("Removing previously added environment variables will not take effect until Obsidian is restarted.").addButton(c=>{c.setButtonText("Reload"),c.setCta(),c.onClick(async()=>{await i.gitManager.setGitInstance()})}),new U.Setting(r).setName("Custom base path (Git repository path)").setDesc(` +`),n={commits:new Map,hashPerLine:[void 0],originalFileLineNrPerLine:[void 0],finalFileLineNrPerLine:[void 0],groupSizePerStartingLine:new Map},i=1;for(let s=0;s=4&&r.groupSizePerStartingLine.set(e,parseInt(t[3])),parseInt(t[2])!==e)throw Error(`git-blame output is out of order: ${e} vs ${t[2]}`);return n}function Ez(t,e,r){let n=t[0],i=t.slice(1).join(" "),s=e.hashPerLine[r],a=e.commits.get(s)||{hash:s,author:{},committer:{},previous:{}};switch(n){case"summary":a.summary=i;break;case"author":a.author.name=i;break;case"author-mail":a.author.email=rF(i);break;case"author-time":a.author.epochSeconds=parseInt(i);break;case"author-tz":a.author.tz=i;break;case"committer":a.committer.name=i;break;case"committer-mail":a.committer.email=rF(i);break;case"committer-time":a.committer.epochSeconds=parseInt(i);break;case"committer-tz":a.committer.tz=i;break;case"previous":a.previous.commitHash=i;break;case"filename":a.previous.filename=i;break}e.commits.set(s,a)}function kz(t){if(t.summary===void 0)throw Error(`Summary not provided for commit: ${t.hash}`);W0(t.author)&&(t.author=void 0),W0(t.committer)&&(t.committer=void 0),W0(t.previous)&&(t.previous=void 0),t.isZeroCommit=!!t.hash.match(/^0*$/)}function W0(t){return!t||Object.keys(t).length===0}function tF(t){return t.length>0&&t[0].trim()===t[0]}function rF(t){let e=t.startsWith("<")?t.substring(1):t;return e.endsWith(">")?e.substring(0,e.length-1):e}p();var PF=require("@codemirror/state");p();var z0=class{constructor(){this.eventsPerFilepath=new Map;this.startRemoveStalesSubscribersInterval()}ifFilepathDefinedTransformSubscribers(e,r){if(e)return this.ensureInitialized(e),r(this.eventsPerFilepath.get(e))}forEachSubscriber(e){this.eventsPerFilepath.forEach(r=>r.forEach(e))}ensureInitialized(e){this.eventsPerFilepath.get(e)||this.eventsPerFilepath.set(e,new Set)}startRemoveStalesSubscribersInterval(){this.removeStalesSubscribersTimer=window.setInterval(()=>this==null?void 0:this.forEachSubscriber(e=>e==null?void 0:e.removeIfStale()),6e4)}clear(){window.clearInterval(this.removeStalesSubscribersTimer),this.eventsPerFilepath.clear()}},es=new z0;p();var Zh=require("@codemirror/state"),sF=Ct(V0());function aF(t,e,r){if(!(t===void 0||e===void 0||r===void 0))return`head${t}-obj${e}-path${r}`}var oF=Zh.StateEffect.define();function lF(t,e,r){return r.update({effects:oF.of({key:t,la:e,lineOffsetsFromUnsavedChanges:new Map})})}var $l=Zh.StateField.define({create:t=>{},update:(t,e)=>{for(let r of e.effects)if(r.is(oF))return r.value;return Az(e,t)},compare:(t,e)=>(t==null?void 0:t.key)===(e==null?void 0:e.key)});function Kh(t){var s;let e=sF.sha256.create();if(!t)return e;let{la:r,key:n,lineOffsetsFromUnsavedChanges:i}=t;e.update(r==="untracked"?"t":"f"),e.update(n);for(let[a,o]of(s=i.entries())!=null?s:[])e.update([a,o]);return e}var xn={get:void 0,save:void 0};function cF(t,e){xn.get=t,xn.save=e}function Qh(t){var e,r;return(r=(e=Xh(t.coloringMaxAge))==null?void 0:e.asDays())!=null?r:Xh(et.lineAuthor.coloringMaxAge).asDays()}function Az(t,e){if(e)return t.changes.empty||t.changes.iterChanges((r,n,i,s)=>{var m;let a=t.startState.doc,{newDoc:o}=t,l=a.lineAt(r).number,c=a.lineAt(n).number,u=o.lineAt(i).number,f=o.lineAt(s).number,d=c-l+1,h=f-u+1;for(let g=u;g<=f;g++){let v=(m=e.lineOffsetsFromUnsavedChanges.get(g))!=null?m:0,w=f===g,b=h-d;w&&(v+=b),e.lineOffsetsFromUnsavedChanges.set(g,v)}}),e}p();function uF(){Il=void 0,Y0=[],Jh=0,tp.clear(),rp.clear(),Fl.clear()}var Il,ep=()=>Il;function fF(t,e){var i;let r=e.length;if(r<((i=Il==null?void 0:Il.length)!=null?i:0))return;Il={gutter:t,length:r,text:e};let n=xn.get();r!==n.gutterSpacingFallbackLength&&(n.gutterSpacingFallbackLength=r,xn.save(n))}var Y0=[],Cz=15,Jh=0;function dF(t){Y0[Jh]=t,Jh=(Jh+1)%Cz}function hF(){return XP(Y0)}var tp=new Map,rp=new Map,Fl=new Set;p();var AF=require("@codemirror/state"),CF=require("@codemirror/view");p();var Q0=require("@codemirror/view"),xF=Ct(V0()),Ol=require("obsidian");p();p();var np={x:-10,y:-10};function pF(){np.x===-10&&window.addEventListener("mousedown",t=>{np.x=t.clientX,np.y=t.clientY})}function mF(){for(let t of Fl)if(Tz(t,np))return t}function Tz(t,e){let{x:r,y:n,width:i,height:s}=t.getBoundingClientRect();return r<=e.x&&e.x<=r+i&&n<=e.y&&e.y<=n+s}var gF="data-commit";function vF(t,e,r){if(e.hasFocus())return;let n=mF();if(!n)return;let i=Rz(n);i&&(!i.isZeroCommit&&!i.isWaitingGutter&&Pz(i,t),X0("showCommitHash",t),X0("authorDisplay",t),X0("dateTimeFormatOptions",t))}function Pz(t,e){e.addItem(r=>r.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick(n=>navigator.clipboard.writeText(t.hash)))}function X0(t,e){var l,c;let r,n,i=Ln.plugin.settings.lineAuthor,s=i[t],a=typeof s=="boolean"?s:s!=="hide",o=et.lineAuthor[t];if(t==="showCommitHash")r="Show commit hash",n=s;else if(t==="authorDisplay"){let u=(l=i.lastShownAuthorDisplay)!=null?l:o;r="Show author "+(a?s:u),n=a?"hide":u}else if(t==="dateTimeFormatOptions"){let u=(c=i.lastShownDateTimeFormatOptions)!=null?c:o;r="Show "+(a?s:u),r+=r.contains("date")?"":" date",n=a?"hide":u}else js(t);e.addItem(u=>u.setTitle(r).setSection("obs-git-line-author-configure").setChecked(a).onClick(f=>{var d,h;return(h=(d=Ln.plugin)==null?void 0:d.settingsTab)==null?void 0:h.lineAuthorSettingHandler(t,n)}))}function wF(t,e,r){r.setAttr(gF,JSON.stringify({hash:t.hash,isZeroCommit:t.isZeroCommit,isWaitingGutter:e}))}function Rz(t){let e=t.getAttr(gF);return e?JSON.parse(e):void 0}p();function sp(t,e){return t==="oldest"?ip(0,!1,e).color:ip(void 0,!0,e).color}function ip(t,e,r){let n=Qh(r),i=Date.now()/1e3,s=t!=null?t:0,o=(e?0:i-s)/60/60/24,l=Math.pow(Math.clamp(o/n,0,1),1/2.3),c=$z(),u=r.colorNew,f=r.colorOld,d=c?.4:1,h=Z0(u.r,f.r,l)*d,m=Z0(u.g,f.g,l)*d,g=Z0(u.b,f.b,l)*d;return{color:`rgba(${h},${m},${g},${c?.75:.25})`,daysSinceCommit:o}}function Z0(t,e,r){return t+(e-t)*r}function $z(){var t;return((t=window.app)==null?void 0:t.getTheme())==="obsidian"}function yF(t){document.body.style.setProperty("--obs-git-gutter-text",t.textColorCss)}p();function bF(t,e,r){let n;for(let i=e;i<=r;i++){let s=t.hashPerLine[i],a=t.commits.get(s);(!n||a.isZeroCommit||Iz(a,n))&&(n=a)}return n}function Iz(t,e){var i,s,a,o;let r=(s=(i=t.author)==null?void 0:i.epochSeconds)!=null?s:0,n=(o=(a=e.author)==null?void 0:a.epochSeconds)!=null?o:0;return r>n}var _F="-",Fz="+",Oz=3,Mz="*",Dz=/\S/g,Lz="%",Ml=class t extends Q0.GutterMarker{constructor(r){super();this.text=r}eq(r){return r instanceof t&&this.text===r.text}toDOM(){return document.createTextNode(this.text)}destroy(r){}},K0=class extends Q0.GutterMarker{constructor(r,n,i,s,a,o){super();this.lineAuthoring=r;this.startLine=n;this.endLine=i;this.key=s;this.settings=a;this.options=o;this.point=!1;this.elementClass="obs-git-blame-gutter"}eq(r){return this.key===(r==null?void 0:r.key)&&this.startLine===(r==null?void 0:r.startLine)&&this.endLine===(r==null?void 0:r.endLine)&&(this==null?void 0:this.options)===(r==null?void 0:r.options)}toDOM(){var r;return this.precomputedDomProvider=(r=this.precomputedDomProvider)!=null?r:this.computeDom(),this.precomputedDomProvider()}destroy(r){r&&(document.body.contains(r)||Fl.delete(r))}computeDom(){let r=bF(this.lineAuthoring,this.startLine,this.endLine),n=r.isZeroCommit?"":this.renderNonZeroCommit(r);return!r.isZeroCommit&&this.options!=="waiting-for-result"?fF(this,n):n=this.adaptTextForFakeCommit(r,n,this.options),this.createHtmlNode(r,n,this.options==="waiting-for-result")}createHtmlNode(r,n,i){var c,u,f,d,h,m;let s=window.createDiv();s.setText(n);let{color:a,daysSinceCommit:o}=ip((c=r==null?void 0:r.author)==null?void 0:c.epochSeconds,r==null?void 0:r.isZeroCommit,this.settings);s.style.backgroundColor=a,s.setAttribute("data-author",(f=(u=r==null?void 0:r.author)==null?void 0:u.name)!=null?f:""),s.setAttribute("data-author-email",(h=(d=r==null?void 0:r.author)==null?void 0:d.email)!=null?h:""),(0,Ol.setTooltip)(s,(m=r==null?void 0:r.summary)!=null?m:""),wF(r,i,s);function l(){let g=s.cloneNode(!0);return Fl.add(g),i||dF(o),g}return l}renderNonZeroCommit(r){let n=this.settings.showCommitHash?this.renderHash(r):"",i=this.settings.authorDisplay==="hide"?"":`${this.renderAuthorName(r,this.settings.authorDisplay)}`,s=this.settings.dateTimeFormatOptions==="hide"?"":`${this.renderAuthoringDate(r,this.settings.dateTimeFormatOptions,this.settings.dateTimeFormatCustomString,this.settings.dateTimeTimezone)}`;return[n,i,s].filter(o=>o.length>=1).join(" ")}renderHash(r){return r.hash.substring(0,6)}renderAuthorName(r,n){var o,l,c,u;let i=(l=(o=r==null?void 0:r.author)==null?void 0:o.name)!=null?l:"",s=i.split(" ").filter(f=>f.length>=1),a;switch(n){case"initials":a=s.map(f=>f[0].toUpperCase()).join("");break;case"first name":a=(c=s.first())!=null?c:_F;break;case"last name":a=(u=s.last())!=null?u:_F;break;case"full":a=i;break;default:return js(n)}return ZP(r==null?void 0:r.author,r==null?void 0:r.committer)||(a=a+Mz),a}renderAuthoringDate(r,n,i,s){var c;let a="?";if(((c=r==null?void 0:r.author)==null?void 0:c.epochSeconds)===void 0)return a;let o;switch(n){case"date":o=jd;break;case"datetime":o=Rv;break;case"custom":o=i;break;case"natural language":o=u=>{let f=u.diff((0,Ol.moment)());return Ol.moment.duration(f).humanize(!0)};break;default:return js(n)}let l=Ol.moment.unix(r.author.epochSeconds);switch(s){case"viewer-local":break;case"author-local":l=l.utcOffset(r.author.tz),typeof o=="string"&&(o+=" Z");break;case"utc0000":l=l.utc(),typeof o=="string"&&(o+="[Z]");break;default:return js(s)}return typeof o=="string"?l.format(o):o(l)}adaptTextForFakeCommit(r,n,i){var l,c,u,f;let s=(c=(l=ep())==null?void 0:l.text)!=null?c:n,a=i!=="waiting-for-result"&&r.isZeroCommit?Fz:Lz;n=s.replace(Dz,a);let o=(f=(u=xn.get())==null?void 0:u.gutterSpacingFallbackLength)!=null?f:n.length;if(n=KP(n,o,a),i!=="waiting-for-result"&&r.isZeroCommit){let d=Math.min(o,Oz);n=QP(n,o-d)}return n}};function La(t,e,r,n,i,s){let a=xF.sha256.create();a.update(JSON.stringify(i)),a.update(`s${e}-e${r}-k${n}-o${s}`);let o=a.hex(),l=tp.get(o);if(l)return l;let c=new K0(t,e,r,n,i,s);return tp.set(o,c),c}p();var SF=require("obsidian");function J0(){var e,r;let t=(r=(e=xn.get())==null?void 0:e.gutterSpacingFallbackLength)!=null?r:et.lineAuthor.gutterSpacingFallbackLength;return new Ml(Array(t).fill("-").join(""))}function ey(t){let{lineAuthoring:e,ageForInitialRender:r}=Nz(t);return La(e,1,1,"initialGutter"+r,t,"waiting-for-result")}function Nz(t){var s;let e=(s=hF())!=null?s:Qh(t)*.25,r=(0,SF.moment)().add(-e,"days"),n={name:"",epochSeconds:YP(r),tz:"+0000"},i={hash:"waiting-for-result",author:n,committer:n,isZeroCommit:!1};return{lineAuthoring:{hashPerLine:[void 0,"waiting-for-result"],commits:new Map([["waiting-for-result",i]])},ageForInitialRender:e}}p();function EF(t,e){return La({hashPerLine:[void 0,"000000"],commits:new Map([["000000",iF]])},1,1,t,e)}var ty=new Ml(""),TF=(0,CF.gutter)({class:"line-author-gutter-container",markers(t){let e=t.state.field($l,!1);return Bz(t,e)},lineMarkerChange(t){let e=Kh(t.state.field($l));return Kh(t.startState.field($l))!==e},renderEmptyElements:!0,initialSpacer:t=>(kF(t),J0()),updateSpacer:(t,e)=>{var r,n;return kF(e.view),(n=(r=ep())==null?void 0:r.gutter)!=null?n:J0()}});function Bz(t,e){let r=Kh(e),n=t.state.doc,i=new Map;for(let u=1;u<=n.lines;u++){let f=n.line(u).from,d=t.lineBlockAt(f).to;i.set(u,[f,d]),r.update([f,d,0])}let s=xn.get();r.update("s"+Object.values(xn).join(","));let a=r.hex(),o=rp.get(a);if(o)return o;let{result:l,allowCache:c}=Hz(n,i,s,e);return c&&rp.set(a,l),l}function Hz(t,e,r,n){let i=!0,s=t.lines,a=[];function o(f,d,h){return a.push(h.range(f,d))}let l=Uz(s,n),c=t.length===0,u=t.iterLines(s,s+1).next().value==="";for(let f=1;f<=s;f++){let[d,h]=e.get(f),m=t.lineAt(h).number;if(c){o(d,h,ty);continue}if(f===s&&u){o(d,h,ty);continue}if(n===void 0){o(d,h,ey(r)),i=!1;continue}let{key:g,la:v}=n;if(v==="untracked"){o(d,h,EF(v,r));continue}let w=v.hashPerLine.length-1,b=l[f],k=l[m];if(k&&k>w&&o(d,h,ty),b!==void 0&&Zw(1,b,w)&&k!==void 0&&Zw(1,k,w)){o(d,h,La(v,b,k,g,r));continue}if(w<1){o(d,h,ey(r)),i=!1;continue}let x=Math.clamp(b!=null?b:f,1,w),E=Math.clamp(k!=null?k:m,1,w);o(d,h,La(v,x,E,g+"computing",r,"waiting-for-result"))}return{result:AF.RangeSet.of(a,!0),allowCache:i}}function Uz(t,e){if(!(e!=null&&e.lineOffsetsFromUnsavedChanges))return Array.from(new Array(t+1),i=>i);let r=[void 0],n=0;for(let i=1;i<=t;i++){let s=e.lineOffsetsFromUnsavedChanges.get(i);n+=s!=null?s:0,r[i]=s===void 0?i-n:void 0}return r}function kF(t){t.dom.querySelectorAll(".cm-gutters").forEach(r=>{r!=null&&r.style&&(r.style.marginLeft||(r.style.marginLeft="unset"))})}var ap=class{constructor(e){this.plugin=e;this.lineAuthorings=new Map}async trackChanged(e){return this.trackChangedHelper(e).catch(r=>(console.warn("Git: Error in trackChanged."+r),Promise.reject(r)))}async trackChangedHelper(e){if(e){if(e.path===void 0){console.warn("Git: Attempted to track change of undefined filepath. Unforeseen situation.");return}return this.computeLineAuthorInfo(e.path)}}destroy(){this.lineAuthorings.clear(),uF()}async computeLineAuthorInfo(e){let r=this.plugin.editorIntegration.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager,n=await r.submoduleAwareHeadRevisonInContainingDirectory(e),i=await r.hashObject(e),s=aF(n,i,e);if(s!==void 0){if(!this.lineAuthorings.has(s)){let a=await r.blame(e,this.plugin.settings.lineAuthor.followMovement,this.plugin.settings.lineAuthor.ignoreWhitespace);this.lineAuthorings.set(s,a)}this.notifyComputationResultToSubscribers(e,s)}}notifyComputationResultToSubscribers(e,r){es.ifFilepathDefinedTransformSubscribers(e,n=>n.forEach(i=>i.notifyLineAuthoring(r,this.lineAuthorings.get(r))))}},RF=PF.Prec.high([$l,TF]);var Gz="https://momentjs.com/docs/#/parsing/string-format/",jz="https://publish.obsidian.md/git-doc/Line+Authoring",op=class extends U.PluginSettingTab{constructor(r,n){super(r,n);this.plugin=n;this.lineAuthorColorSettings=new Map;this.icon="git-pull-request"}get settings(){return this.plugin.settings}display(){let{containerEl:r}=this,n=this.plugin,i;n.settings.differentIntervalCommitAndPush?i="commit":i="commit-and-sync";let s=n.gitReady;r.empty(),s||(r.createEl("p",{text:"Git is not ready. When all settings are correct you can configure commit-sync, etc."}),r.createEl("br"));let a;if(s){new U.Setting(r).setName("Automatic").setHeading(),new U.Setting(r).setName("Split timers for automatic commit and sync").setDesc("Enable to use one interval for commit and another for sync.").addToggle(f=>f.setValue(n.settings.differentIntervalCommitAndPush).onChange(async d=>{n.settings.differentIntervalCommitAndPush=d,await n.saveSettings(),n.automaticsManager.reload("commit","push"),this.refreshDisplayWithDelay()})),new U.Setting(r).setName(`Auto ${i} interval (minutes)`).setDesc(`${n.settings.differentIntervalCommitAndPush?"Commit":"Commit and sync"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)`).addText(f=>{f.inputEl.type="number",this.setNonDefaultValue({text:f,settingsProperty:"autoSaveInterval"}),f.setPlaceholder(String(et.autoSaveInterval)),f.onChange(async d=>{d!==""?n.settings.autoSaveInterval=Number(d):n.settings.autoSaveInterval=et.autoSaveInterval,await n.saveSettings(),n.automaticsManager.reload("commit")})}),a=new U.Setting(r).setName(`Auto ${i} after stopping file edits`).setDesc(`Requires the ${i} interval not to be 0. + If turned on, do auto ${i} every ${JP(n.settings.autoSaveInterval)} after stopping file edits. + This also prevents auto ${i} while editing a file. If turned off, it's independent from the last file edit.`).addToggle(f=>f.setValue(n.settings.autoBackupAfterFileChange).onChange(async d=>{n.settings.autoBackupAfterFileChange=d,this.refreshDisplayWithDelay(),await n.saveSettings(),n.automaticsManager.reload("commit")})),this.mayDisableSetting(a,n.settings.setLastSaveToLastCommit),a=new U.Setting(r).setName(`Auto ${i} after latest commit`).setDesc(`If turned on, sets last auto ${i} timestamp to the latest commit timestamp. This reduces the frequency of auto ${i} when doing manual commits.`).addToggle(f=>f.setValue(n.settings.setLastSaveToLastCommit).onChange(async d=>{n.settings.setLastSaveToLastCommit=d,await n.saveSettings(),n.automaticsManager.reload("commit"),this.refreshDisplayWithDelay()})),this.mayDisableSetting(a,n.settings.autoBackupAfterFileChange),a=new U.Setting(r).setName("Auto push interval (minutes)").setDesc("Push commits every X minutes. Set to 0 (default) to disable.").addText(f=>{f.inputEl.type="number",this.setNonDefaultValue({text:f,settingsProperty:"autoPushInterval"}),f.setPlaceholder(String(et.autoPushInterval)),f.onChange(async d=>{d!==""?n.settings.autoPushInterval=Number(d):n.settings.autoPushInterval=et.autoPushInterval,await n.saveSettings(),n.automaticsManager.reload("push")})}),this.mayDisableSetting(a,!n.settings.differentIntervalCommitAndPush),new U.Setting(r).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText(f=>{f.inputEl.type="number",this.setNonDefaultValue({text:f,settingsProperty:"autoPullInterval"}),f.setPlaceholder(String(et.autoPullInterval)),f.onChange(async d=>{d!==""?n.settings.autoPullInterval=Number(d):n.settings.autoPullInterval=et.autoPullInterval,await n.saveSettings(),n.automaticsManager.reload("pull")})}),new U.Setting(r).setName(`Auto ${i} only staged files`).setDesc(`If turned on, only staged files are committed on ${i}. If turned off, all changed files are committed.`).addToggle(f=>f.setValue(n.settings.autoCommitOnlyStaged).onChange(async d=>{n.settings.autoCommitOnlyStaged=d,await n.saveSettings()})),new U.Setting(r).setName(`Specify custom commit message on auto ${i}`).setDesc("You will get a pop up to specify your message.").addToggle(f=>f.setValue(n.settings.customMessageOnAutoBackup).onChange(async d=>{n.settings.customMessageOnAutoBackup=d,await n.saveSettings(),this.refreshDisplayWithDelay()})),a=new U.Setting(r).setName(`Commit message on auto ${i}`).setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(f=>{f.setPlaceholder(et.autoCommitMessage).onChange(async d=>{d===""?n.settings.autoCommitMessage=et.autoCommitMessage:n.settings.autoCommitMessage=d,await n.saveSettings()}),this.setNonDefaultValue({text:f,settingsProperty:"autoCommitMessage"})}),this.mayDisableSetting(a,n.settings.customMessageOnAutoBackup),new U.Setting(r).setName("Commit message").setHeading();let c=new U.Setting(r).setName("Commit message on manual commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message). Leave empty to require manual input on each commit.");c.addTextArea(f=>{c.addButton(d=>{d.setIcon("reset").setTooltip(`Set to default: "${et.commitMessage}"`).onClick(()=>{f.setValue(et.commitMessage),f.onChanged()})}),f.setValue(n.settings.commitMessage),f.onChange(async d=>{n.settings.commitMessage=d,await n.saveSettings()})}),U.Platform.isDesktopApp&&new U.Setting(r).setName("Commit message script").setDesc("A script that is run using 'sh -c' to generate the commit message. May be used to generate commit messages using AI tools. Available placeholders: {{hostname}}, {{date}}.").addText(f=>{f.onChange(async d=>{d===""?n.settings.commitMessageScript=et.commitMessageScript:n.settings.commitMessageScript=d,await n.saveSettings()}),this.setNonDefaultValue({text:f,settingsProperty:"commitMessageScript"})});let u=new U.Setting(r).setName("{{date}} placeholder format").addMomentFormat(f=>f.setDefaultFormat(n.settings.commitDateFormat).setValue(n.settings.commitDateFormat).onChange(async d=>{n.settings.commitDateFormat=d,await n.saveSettings()}));u.descEl.innerHTML=` + Specify custom date format. E.g. "${$v}. See Moment.js for more formats.`,new U.Setting(r).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device. Defaults to the OS hostname if not set on desktop.").addText(f=>{var d;return f.setValue((d=n.localStorage.getHostname())!=null?d:"").onChange(h=>{n.localStorage.setHostname(h)})}),new U.Setting(r).setName("Preview commit message").addButton(f=>f.setButtonText("Preview").onClick(async()=>{let d=await n.gitManager.formatCommitMessage(n.settings.commitMessage);new U.Notice(`${d}`)})),new U.Setting(r).setName("List filenames affected by commit in the commit body").addToggle(f=>f.setValue(n.settings.listChangedFilesInMessageBody).onChange(async d=>{n.settings.listChangedFilesInMessageBody=d,await n.saveSettings()})),new U.Setting(r).setName("Pull").setHeading(),n.gitManager instanceof Se&&new U.Setting(r).setName("Merge strategy").setDesc("Decide how to integrate commits from your remote branch into your local branch.").addDropdown(f=>{let d={merge:"Merge",rebase:"Rebase",reset:"Other sync service (Only updates the HEAD without touching the working directory)"};f.addOptions(d),f.setValue(n.settings.syncMethod),f.onChange(async h=>{n.settings.syncMethod=h,await n.saveSettings()})}),new U.Setting(r).setName("Merge strategy on conflicts").setDesc("Decide how to solve conflicts when pulling remote changes. This can be used to favor your local changes or the remote changes automatically.").addDropdown(f=>{let d={none:"None (git default)",ours:"Our changes",theirs:"Their changes"};f.addOptions(d),f.setValue(n.settings.mergeStrategy),f.onChange(async h=>{n.settings.mergeStrategy=h,await n.saveSettings()})}),new U.Setting(r).setName("Pull on startup").setDesc("Automatically pull commits when Obsidian starts.").addToggle(f=>f.setValue(n.settings.autoPullOnBoot).onChange(async d=>{n.settings.autoPullOnBoot=d,await n.saveSettings()})),new U.Setting(r).setName("Commit-and-sync").setDesc("Commit-and-sync with default settings means staging everything -> committing -> pulling -> pushing. Ideally this is a single action that you do regularly to keep your local and remote repository in sync.").setHeading(),a=new U.Setting(r).setName("Push on commit-and-sync").setDesc(`Most of the time you want to push after committing. Turning this off turns a commit-and-sync action into commit ${n.settings.pullBeforePush?"and pull ":""}only. It will still be called commit-and-sync.`).addToggle(f=>f.setValue(!n.settings.disablePush).onChange(async d=>{n.settings.disablePush=!d,this.refreshDisplayWithDelay(),await n.saveSettings()})),new U.Setting(r).setName("Pull on commit-and-sync").setDesc(`On commit-and-sync, pull commits as well. Turning this off turns a commit-and-sync action into commit ${n.settings.disablePush?"":"and push "}only.`).addToggle(f=>f.setValue(n.settings.pullBeforePush).onChange(async d=>{n.settings.pullBeforePush=d,this.refreshDisplayWithDelay(),await n.saveSettings()})),n.gitManager instanceof Se&&(new U.Setting(r).setName("Hunk management").setDesc("Hunks are sections of grouped line changes right in your editor.").setHeading(),new U.Setting(r).setName("Signs").setDesc("This allows you to see your changes right in your editor via colored markers and stage/reset/preview individual hunks.").addToggle(f=>f.setValue(n.settings.hunks.showSigns).onChange(async d=>{n.settings.hunks.showSigns=d,await n.saveSettings(),n.editorIntegration.refreshSignsSettings()})),new U.Setting(r).setName("Hunk commands").setDesc("Adds commands to stage/reset individual Git diff hunks and navigate between them via 'Go to next/prev hunk' commands.").addToggle(f=>f.setValue(n.settings.hunks.hunkCommands).onChange(async d=>{n.settings.hunks.hunkCommands=d,await n.saveSettings(),n.editorIntegration.refreshSignsSettings()})),new U.Setting(r).setName("Status bar with summary of line changes").addDropdown(f=>f.addOptions({disabled:"Disabled",colored:"Colored",monochrome:"Monochrome"}).setValue(n.settings.hunks.statusBar).onChange(async d=>{n.settings.hunks.statusBar=d,await n.saveSettings(),n.editorIntegration.refreshSignsSettings()})),new U.Setting(r).setName("Line author information").setHeading(),this.addLineAuthorInfoSettings())}new U.Setting(r).setName("History view").setHeading(),new U.Setting(r).setName("Show Author").setDesc("Show the author of the commit in the history view.").addDropdown(c=>{let u={hide:"Hide",full:"Full",initials:"Initials"};c.addOptions(u),c.setValue(n.settings.authorInHistoryView),c.onChange(async f=>{n.settings.authorInHistoryView=f,await n.saveSettings(),await n.refresh()})}),new U.Setting(r).setName("Show Date").setDesc("Show the date of the commit in the history view. The {{date}} placeholder format is used to display the date.").addToggle(c=>c.setValue(n.settings.dateInHistoryView).onChange(async u=>{n.settings.dateInHistoryView=u,await n.saveSettings(),await n.refresh()})),new U.Setting(r).setName("Source control view").setHeading(),new U.Setting(r).setName("Automatically refresh source control view on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option.").addToggle(c=>c.setValue(n.settings.refreshSourceControl).onChange(async u=>{n.settings.refreshSourceControl=u,await n.saveSettings()})),new U.Setting(r).setName("Source control view refresh interval").setDesc("Milliseconds to wait after file change before refreshing the Source Control View.").addText(c=>{c.inputEl.type="number",this.setNonDefaultValue({text:c,settingsProperty:"refreshSourceControlTimer"}),c.setPlaceholder(String(et.refreshSourceControlTimer)),c.onChange(async f=>{f!==""&&Number.isInteger(Number(f))?n.settings.refreshSourceControlTimer=Math.max(Number(f),500):n.settings.refreshSourceControlTimer=et.refreshSourceControlTimer,await n.saveSettings(),n.setRefreshDebouncer()})}),new U.Setting(r).setName("Miscellaneous").setHeading(),n.gitManager instanceof Se&&new U.Setting(r).setName("Diff view style").setDesc('Set the style for the diff view. Note that the actual diff in "Split" mode is not generated by Git, but the editor itself instead so it may differ from the diff generated by Git. One advantage of this is that you can edit the text in that view.').addDropdown(c=>{let u={split:"Split",git_unified:"Unified"};c.addOptions(u),c.setValue(n.settings.diffStyle),c.onChange(async f=>{n.settings.diffStyle=f,await n.saveSettings()})}),new U.Setting(r).setName("Disable informative notifications").setDesc("Disable informative notifications for git operations to minimize distraction (refer to status bar for updates).").addToggle(c=>c.setValue(n.settings.disablePopups).onChange(async u=>{n.settings.disablePopups=u,this.refreshDisplayWithDelay(),await n.saveSettings()})),new U.Setting(r).setName("Disable error notifications").setDesc("Disable error notifications of any kind to minimize distraction (refer to status bar for updates).").addToggle(c=>c.setValue(!n.settings.showErrorNotices).onChange(async u=>{n.settings.showErrorNotices=!u,await n.saveSettings()})),n.settings.disablePopups||new U.Setting(r).setName("Hide notifications for no changes").setDesc("Don't show notifications when there are no changes to commit or push.").addToggle(c=>c.setValue(n.settings.disablePopupsForNoChanges).onChange(async u=>{n.settings.disablePopupsForNoChanges=u,await n.saveSettings()})),new U.Setting(r).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(c=>c.setValue(n.settings.showStatusBar).onChange(async u=>{n.settings.showStatusBar=u,await n.saveSettings()})),new U.Setting(r).setName("File menu integration").setDesc('Add "Stage", "Unstage" and "Add to .gitignore" actions to the file menu.').addToggle(c=>c.setValue(n.settings.showFileMenu).onChange(async u=>{n.settings.showFileMenu=u,await n.saveSettings()})),new U.Setting(r).setName("Show branch status bar").setDesc("Obsidian must be restarted for the changes to take affect.").addToggle(c=>c.setValue(n.settings.showBranchStatusBar).onChange(async u=>{n.settings.showBranchStatusBar=u,await n.saveSettings()})),new U.Setting(r).setName("Show the count of modified files in the status bar").addToggle(c=>c.setValue(n.settings.changedFilesInStatusBar).onChange(async u=>{n.settings.changedFilesInStatusBar=u,await n.saveSettings()})),n.gitManager instanceof Hn?new U.Setting(r).setName("Authentication/commit author").setHeading():new U.Setting(r).setName("Commit author").setHeading(),n.gitManager instanceof Hn&&new U.Setting(r).setName("Username on your git server. E.g. your username on GitHub").addText(c=>{var u;c.setValue((u=n.localStorage.getUsername())!=null?u:""),c.onChange(f=>{n.localStorage.setUsername(f)})}),n.gitManager instanceof Hn&&new U.Setting(r).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText(c=>{c.inputEl.autocapitalize="off",c.inputEl.autocomplete="off",c.inputEl.spellcheck=!1,c.onChange(u=>{n.localStorage.setPassword(u)})}),n.gitReady&&new U.Setting(r).setName("Author name for commit").addText(async c=>{var u;c.setValue((u=await n.gitManager.getConfig("user.name"))!=null?u:""),c.onChange(async f=>{await n.gitManager.setConfig("user.name",f==""?void 0:f)})}),n.gitReady&&new U.Setting(r).setName("Author email for commit").addText(async c=>{var u;c.setValue((u=await n.gitManager.getConfig("user.email"))!=null?u:""),c.onChange(async f=>{await n.gitManager.setConfig("user.email",f==""?void 0:f)})}),new U.Setting(r).setName("Advanced").setDesc("These settings usually don't need to be changed, but may be required for special setups.").setHeading(),n.gitManager instanceof Se&&(new U.Setting(r).setName("Update submodules").setDesc('"Commit-and-sync" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule.').addToggle(c=>c.setValue(n.settings.updateSubmodules).onChange(async u=>{n.settings.updateSubmodules=u,await n.saveSettings()})),n.settings.updateSubmodules&&new U.Setting(r).setName("Submodule recurse checkout/switch").setDesc("Whenever a checkout happens on the root repository, recurse the checkout on the submodules (if the branches exist).").addToggle(c=>c.setValue(n.settings.submoduleRecurseCheckout).onChange(async u=>{n.settings.submoduleRecurseCheckout=u,await n.saveSettings()}))),n.gitManager instanceof Se&&new U.Setting(r).setName("Custom Git binary path").setDesc("Specify the path to the Git binary/executable. Git should already be in your PATH. Should only be necessary for a custom Git installation.").addText(c=>{var u;c.setValue((u=n.localStorage.getGitPath())!=null?u:""),c.setPlaceholder("git"),c.onChange(f=>{n.localStorage.setGitPath(f),n.gitManager.updateGitPath(f||"git").catch(d=>n.displayError(d))})}),n.gitManager instanceof Se&&new U.Setting(r).setName("Additional environment variables").setDesc("Use each line for a new environment variable in the format KEY=VALUE .").addTextArea(c=>{c.setPlaceholder("GIT_DIR=/path/to/git/dir"),c.setValue(n.localStorage.getEnvVars().join(` +`)),c.onChange(u=>{n.localStorage.setEnvVars(u.split(` +`))})}),n.gitManager instanceof Se&&new U.Setting(r).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea(c=>{c.setValue(n.localStorage.getPATHPaths().join(` +`)),c.onChange(u=>{n.localStorage.setPATHPaths(u.split(` +`))})}),n.gitManager instanceof Se&&new U.Setting(r).setName("Reload with new environment variables").setDesc("Removing previously added environment variables will not take effect until Obsidian is restarted.").addButton(c=>{c.setButtonText("Reload"),c.setCta(),c.onClick(async()=>{await n.gitManager.setGitInstance()})}),new U.Setting(r).setName("Custom base path (Git repository path)").setDesc(` Sets the relative path to the vault from which the Git binary should be executed. Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. - `).addText(c=>{c.setValue(i.settings.basePath),c.setPlaceholder("directory/directory-with-git-repo"),c.onChange(async u=>{i.settings.basePath=u,await i.saveSettings(),i.gitManager.updateBasePath(u||"").catch(f=>i.displayError(f))})}),new U.Setting(r).setName("Custom Git directory path (Instead of '.git')").setDesc('Corresponds to the GIT_DIR environment variable. Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.').addText(c=>{c.setValue(i.settings.gitDir),c.setPlaceholder(".git"),c.onChange(async u=>{i.settings.gitDir=u,await i.saveSettings()})}),new U.Setting(r).setName("Disable on this device").setDesc("Disables the plugin on this device. This setting is not synced.").addToggle(c=>c.setValue(i.localStorage.getPluginDisabled()).onChange(u=>{i.localStorage.setPluginDisabled(u),u?i.unloadPlugin():i.init({fromReload:!0}).catch(f=>i.displayError(f)),new U.Notice("Obsidian must be restarted for the changes to take affect.")})),new U.Setting(r).setName("Support").setHeading(),new U.Setting(r).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton(c=>{c.buttonEl.outerHTML="Buy Me a Coffee at ko-fi.com"});let o=r.createDiv();o.setAttr("align","center"),o.setAttr("style","margin: var(--size-4-2)");let l=o.createEl("button");if(l.setText("Copy Debug Information"),l.onclick=async()=>{await window.navigator.clipboard.writeText(JSON.stringify({settings:this.plugin.settings,pluginVersion:this.plugin.manifest.version},null,4)),new U.Notice("Debug information copied to clipboard. May contain sensitive information!")},U.Platform.isDesktopApp){let c=r.createDiv();c.setAttr("align","center"),c.setText(`Debugging and logging: -You can always see the logs of this and every other plugin by opening the console with`);let u=r.createDiv();u.setAttr("align","center"),u.addClass("obsidian-git-shortcuts"),U.Platform.isMacOS===!0?u.createEl("kbd",{text:"CMD (\u2318) + OPTION (\u2325) + I"}):u.createEl("kbd",{text:"CTRL + SHIFT + I"})}}mayDisableSetting(r,i){i&&(r.setDisabled(i),r.setClass("obsidian-git-disabled"))}configureLineAuthorShowStatus(r){this.settings.lineAuthor.show=r,this.plugin.saveSettings(),r?this.plugin.editorIntegration.activateLineAuthoring():this.plugin.editorIntegration.deactiveLineAuthoring()}async lineAuthorSettingHandler(r,i){this.settings.lineAuthor[r]=i,await this.plugin.saveSettings(),this.plugin.editorIntegration.lineAuthoringFeature.refreshLineAuthorViews()}beforeSaveSettings(){let r=this.settings.lineAuthor;r.authorDisplay!=="hide"&&(r.lastShownAuthorDisplay=r.authorDisplay),r.dateTimeFormatOptions!=="hide"&&(r.lastShownDateTimeFormatOptions=r.dateTimeFormatOptions)}addLineAuthorInfoSettings(){let r=new U.Setting(this.containerEl).setName("Show commit authoring information next to each line");if(this.plugin.editorIntegration.lineAuthoringFeature.isAvailableOnCurrentPlatform()||r.setDesc("Only available on desktop currently.").setDisabled(!0),r.descEl.innerHTML=` - Feature guide and quick examples
- The commit hash, author name and authoring date can all be individually toggled.
Hide everything, to only show the age-colored sidebar.`,r.addToggle(i=>i.setValue(this.settings.lineAuthor.show).onChange(n=>{this.configureLineAuthorShowStatus(n),this.refreshDisplayWithDelay()})),this.settings.lineAuthor.show){let i=new U.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown(s=>{s.addOptions({inactive:"Do not follow (default)","same-commit":"Follow within same commit","all-commits":"Follow within all commits (maybe slow)"}),s.setValue(this.settings.lineAuthor.followMovement),s.onChange(a=>this.lineAuthorSettingHandler("followMovement",a))});if(i.descEl.innerHTML=` + `).addText(c=>{c.setValue(n.settings.basePath),c.setPlaceholder("directory/directory-with-git-repo"),c.onChange(async u=>{n.settings.basePath=u,await n.saveSettings(),n.gitManager.updateBasePath(u||"").catch(f=>n.displayError(f))})}),new U.Setting(r).setName("Custom Git directory path (Instead of '.git')").setDesc('Corresponds to the GIT_DIR environment variable. Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.').addText(c=>{c.setValue(n.settings.gitDir),c.setPlaceholder(".git"),c.onChange(async u=>{n.settings.gitDir=u,await n.saveSettings()})}),new U.Setting(r).setName("Disable on this device").setDesc("Disables the plugin on this device. This setting is not synced.").addToggle(c=>c.setValue(n.localStorage.getPluginDisabled()).onChange(u=>{n.localStorage.setPluginDisabled(u),u?n.unloadPlugin():n.init({fromReload:!0}).catch(f=>n.displayError(f)),new U.Notice("Obsidian must be restarted for the changes to take affect.")})),new U.Setting(r).setName("Support").setHeading(),new U.Setting(r).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton(c=>{c.buttonEl.outerHTML="Buy Me a Coffee at ko-fi.com"});let o=r.createDiv();o.setAttr("align","center"),o.setAttr("style","margin: var(--size-4-2)");let l=o.createEl("button");if(l.setText("Copy Debug Information"),l.onclick=async()=>{await window.navigator.clipboard.writeText(JSON.stringify({settings:this.plugin.settings,pluginVersion:this.plugin.manifest.version},null,4)),new U.Notice("Debug information copied to clipboard. May contain sensitive information!")},U.Platform.isDesktopApp){let c=r.createDiv();c.setAttr("align","center"),c.setText(`Debugging and logging: +You can always see the logs of this and every other plugin by opening the console with`);let u=r.createDiv();u.setAttr("align","center"),u.addClass("obsidian-git-shortcuts"),U.Platform.isMacOS===!0?u.createEl("kbd",{text:"CMD (\u2318) + OPTION (\u2325) + I"}):u.createEl("kbd",{text:"CTRL + SHIFT + I"})}}mayDisableSetting(r,n){n&&(r.setDisabled(n),r.setClass("obsidian-git-disabled"))}configureLineAuthorShowStatus(r){this.settings.lineAuthor.show=r,this.plugin.saveSettings(),r?this.plugin.editorIntegration.activateLineAuthoring():this.plugin.editorIntegration.deactiveLineAuthoring()}async lineAuthorSettingHandler(r,n){this.settings.lineAuthor[r]=n,await this.plugin.saveSettings(),this.plugin.editorIntegration.lineAuthoringFeature.refreshLineAuthorViews()}beforeSaveSettings(){let r=this.settings.lineAuthor;r.authorDisplay!=="hide"&&(r.lastShownAuthorDisplay=r.authorDisplay),r.dateTimeFormatOptions!=="hide"&&(r.lastShownDateTimeFormatOptions=r.dateTimeFormatOptions)}addLineAuthorInfoSettings(){let r=new U.Setting(this.containerEl).setName("Show commit authoring information next to each line");if(this.plugin.editorIntegration.lineAuthoringFeature.isAvailableOnCurrentPlatform()||r.setDesc("Only available on desktop currently.").setDisabled(!0),r.descEl.innerHTML=` + Feature guide and quick examples
+ The commit hash, author name and authoring date can all be individually toggled.
Hide everything, to only show the age-colored sidebar.`,r.addToggle(n=>n.setValue(this.settings.lineAuthor.show).onChange(i=>{this.configureLineAuthorShowStatus(i),this.refreshDisplayWithDelay()})),this.settings.lineAuthor.show){let n=new U.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown(s=>{s.addOptions({inactive:"Do not follow (default)","same-commit":"Follow within same commit","all-commits":"Follow within all commits (maybe slow)"}),s.setValue(this.settings.lineAuthor.followMovement),s.onChange(a=>this.lineAuthorSettingHandler("followMovement",a))});if(n.descEl.innerHTML=` By default (deactivated), each line only shows the newest commit where it was changed.
With same commit, cut-copy-paste-ing of text is followed within the same commit and the original commit of authoring will be shown. @@ -180,12 +180,12 @@ You can always see the logs of this and every other plugin by opening the consol With all commits, cut-copy-paste-ing text inbetween multiple commits will be detected.
It uses git-blame and - for matches (at least ${Bd} characters) within the same (or all) commit(s), the originating commit's information is shown.`,new U.Setting(this.containerEl).setName("Show commit hash").addToggle(s=>{s.setValue(this.settings.lineAuthor.showCommitHash),s.onChange(a=>this.lineAuthorSettingHandler("showCommitHash",a))}),new U.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown(s=>{let a={hide:"Hide",initials:"Initials (default)","first name":"First name","last name":"Last name",full:"Full name"};s.addOptions(a),s.setValue(this.settings.lineAuthor.authorDisplay),s.onChange(async o=>this.lineAuthorSettingHandler("authorDisplay",o))}),new U.Setting(this.containerEl).setName("Authoring date display").setDesc("If and how the date and time of authoring the line is displayed").addDropdown(s=>{let a={hide:"Hide",date:"Date (default)",datetime:"Date and time","natural language":"Natural language",custom:"Custom"};s.addOptions(a),s.setValue(this.settings.lineAuthor.dateTimeFormatOptions),s.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatOptions",o),this.refreshDisplayWithDelay()})}),this.settings.lineAuthor.dateTimeFormatOptions==="custom"){let s=new U.Setting(this.containerEl);s.setName("Custom authoring date format").addText(a=>{a.setValue(this.settings.lineAuthor.dateTimeFormatCustomString),a.setPlaceholder("YYYY-MM-DD HH:mm"),a.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatCustomString",o),s.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(o)})}),s.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(this.settings.lineAuthor.dateTimeFormatCustomString)}new U.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown(s=>{let a={"viewer-local":"My local (default)","author-local":"Author's local",utc0000:"UTC+0000/Z"};s.addOptions(a),s.setValue(this.settings.lineAuthor.dateTimeTimezone),s.onChange(async o=>this.lineAuthorSettingHandler("dateTimeTimezone",o))}).descEl.innerHTML=` + for matches (at least ${qd} characters) within the same (or all) commit(s), the originating commit's information is shown.`,new U.Setting(this.containerEl).setName("Show commit hash").addToggle(s=>{s.setValue(this.settings.lineAuthor.showCommitHash),s.onChange(a=>this.lineAuthorSettingHandler("showCommitHash",a))}),new U.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown(s=>{let a={hide:"Hide",initials:"Initials (default)","first name":"First name","last name":"Last name",full:"Full name"};s.addOptions(a),s.setValue(this.settings.lineAuthor.authorDisplay),s.onChange(async o=>this.lineAuthorSettingHandler("authorDisplay",o))}),new U.Setting(this.containerEl).setName("Authoring date display").setDesc("If and how the date and time of authoring the line is displayed").addDropdown(s=>{let a={hide:"Hide",date:"Date (default)",datetime:"Date and time","natural language":"Natural language",custom:"Custom"};s.addOptions(a),s.setValue(this.settings.lineAuthor.dateTimeFormatOptions),s.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatOptions",o),this.refreshDisplayWithDelay()})}),this.settings.lineAuthor.dateTimeFormatOptions==="custom"){let s=new U.Setting(this.containerEl);s.setName("Custom authoring date format").addText(a=>{a.setValue(this.settings.lineAuthor.dateTimeFormatCustomString),a.setPlaceholder("YYYY-MM-DD HH:mm"),a.onChange(async o=>{await this.lineAuthorSettingHandler("dateTimeFormatCustomString",o),s.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(o)})}),s.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(this.settings.lineAuthor.dateTimeFormatCustomString)}new U.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown(s=>{let a={"viewer-local":"My local (default)","author-local":"Author's local",utc0000:"UTC+0000/Z"};s.addOptions(a),s.setValue(this.settings.lineAuthor.dateTimeTimezone),s.onChange(async o=>this.lineAuthorSettingHandler("dateTimeTimezone",o))}).descEl.innerHTML=` The time-zone in which the authoring date should be shown. Either your local time-zone (default), the author's time-zone during commit creation or UTC\xB100:00. - `;let n=new U.Setting(this.containerEl).setName("Oldest age in coloring");n.descEl.innerHTML=this.previewOldestAgeDescriptionHtml(this.settings.lineAuthor.coloringMaxAge)[0],n.addText(s=>{s.setPlaceholder("1y"),s.setValue(this.settings.lineAuthor.coloringMaxAge),s.onChange(async a=>{let[o,l]=this.previewOldestAgeDescriptionHtml(a);n.descEl.innerHTML=o,l&&(await this.lineAuthorSettingHandler("coloringMaxAge",a),this.refreshColorSettingsName("oldest"))})}),this.createColorSetting("newest"),this.createColorSetting("oldest"),new U.Setting(this.containerEl).setName("Text color").addText(s=>{s.setValue(this.settings.lineAuthor.textColorCss),s.onChange(async a=>{await this.lineAuthorSettingHandler("textColorCss",a)})}).descEl.innerHTML=` + `;let i=new U.Setting(this.containerEl).setName("Oldest age in coloring");i.descEl.innerHTML=this.previewOldestAgeDescriptionHtml(this.settings.lineAuthor.coloringMaxAge)[0],i.addText(s=>{s.setPlaceholder("1y"),s.setValue(this.settings.lineAuthor.coloringMaxAge),s.onChange(async a=>{let[o,l]=this.previewOldestAgeDescriptionHtml(a);i.descEl.innerHTML=o,l&&(await this.lineAuthorSettingHandler("coloringMaxAge",a),this.refreshColorSettingsName("oldest"))})}),this.createColorSetting("newest"),this.createColorSetting("oldest"),new U.Setting(this.containerEl).setName("Text color").addText(s=>{s.setValue(this.settings.lineAuthor.textColorCss),s.onChange(async a=>{await this.lineAuthorSettingHandler("textColorCss",a)})}).descEl.innerHTML=` The CSS color of the gutter text.
It is highly recommended to use @@ -210,197 +210,197 @@ You can always see the logs of this and every other plugin by opening the consol If you don't care about purely-whitespace changes (e.g. list nesting / quote indentation changes), then activating this will provide more meaningful change detection. - `}}createColorSetting(r){let i=new U.Setting(this.containerEl).setName("").addText(n=>{let s=Y0(r,this.settings.lineAuthor),a=Y0(r,rt.lineAuthor);n.setPlaceholder(jw(a)),n.setValue(jw(s)),n.onChange(async o=>{let l=BP(o);if(l!==void 0){let c=r==="newest"?"colorNew":"colorOld";await this.lineAuthorSettingHandler(c,l)}this.refreshColorSettingsDesc(r,l)})});this.lineAuthorColorSettings.set(r,i),this.refreshColorSettingsName(r),this.refreshColorSettingsDesc(r,Y0(r,this.settings.lineAuthor))}refreshColorSettingsName(r){let i=this.lineAuthorColorSettings.get(r);if(i){let n=r==="oldest"?`oldest (${this.settings.lineAuthor.coloringMaxAge} or older)`:"newest";i.nameEl.innerText=`Color for ${n} commits`}}refreshColorSettingsDesc(r,i){let n=this.lineAuthorColorSettings.get(r);n&&(n.descEl.innerHTML=this.colorSettingPreviewDescHtml(r,this.settings.lineAuthor,i!==void 0))}colorSettingPreviewDescHtml(r,i,n){let s=n?ep(r,i):"rgba(127,127,127,0.3)",a=U.moment.unix(U.moment.now()/1e3).format("YYYY-MM-DD"),o=n?`abcdef Author Name ${a}`:"invalid color";return`Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and + `}}createColorSetting(r){let n=new U.Setting(this.containerEl).setName("").addText(i=>{let s=ry(r,this.settings.lineAuthor),a=ry(r,et.lineAuthor);i.setPlaceholder(Xw(a)),i.setValue(Xw(s)),i.onChange(async o=>{let l=VP(o);if(l!==void 0){let c=r==="newest"?"colorNew":"colorOld";await this.lineAuthorSettingHandler(c,l)}this.refreshColorSettingsDesc(r,l)})});this.lineAuthorColorSettings.set(r,n),this.refreshColorSettingsName(r),this.refreshColorSettingsDesc(r,ry(r,this.settings.lineAuthor))}refreshColorSettingsName(r){let n=this.lineAuthorColorSettings.get(r);if(n){let i=r==="oldest"?`oldest (${this.settings.lineAuthor.coloringMaxAge} or older)`:"newest";n.nameEl.innerText=`Color for ${i} commits`}}refreshColorSettingsDesc(r,n){let i=this.lineAuthorColorSettings.get(r);i&&(i.descEl.innerHTML=this.colorSettingPreviewDescHtml(r,this.settings.lineAuthor,n!==void 0))}colorSettingPreviewDescHtml(r,n,i){let s=i?sp(r,n):"rgba(127,127,127,0.3)",a=U.moment.unix(U.moment.now()/1e3).format("YYYY-MM-DD"),o=i?`abcdef Author Name ${a}`:"invalid color";return`Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and named colors (e.g. 'black', 'purple'). Color preview: ${`
${o}
`}`}previewCustomDateTimeDescriptionHtml(r){let i=(0,U.moment)().format(r);return`Format string to display the authoring date.
Currently: ${i}`}previewOldestAgeDescriptionHtml(r){let i=qh(r);return[`The oldest age in the line author coloring. Everything older will have the same color. -
Smallest valid age is "1d". Currently: ${i!==void 0?`${i.asDays()} days`:"invalid!"}`,i]}setNonDefaultValue({settingsProperty:r,text:i}){let n=this.plugin.settings[r];rt[r]!==n&&(typeof n=="string"||typeof n=="number"||typeof n=="boolean"?i.setValue(String(n)):i.setValue(JSON.stringify(n)))}refreshDisplayWithDelay(r=80){setTimeout(()=>this.display(),r)}};function Y0(t,e){return t==="oldest"?e.colorOld:e.colorNew}function qh(t){let e=U.moment.duration("P"+t.toUpperCase());return e.isValid()&&e.asDays()&&e.asDays()>=1?e:void 0}p();var ti=require("obsidian");var ip=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;this.messages=[];this.base="obsidian-git-statusbar-";this.statusBarEl.setAttribute("data-tooltip-position","top"),r.registerEvent(r.app.workspace.on("obsidian-git:refreshed",()=>{this.refreshCommitTimestamp().catch(console.error)}))}displayMessage(e,r){this.messages.push({message:`Git: ${e.slice(0,100)}`,timeout:r}),this.display()}display(){this.messages.length>0&&!this.currentMessage?(this.currentMessage=this.messages.shift(),this.statusBarEl.addClass(this.base+"message"),this.statusBarEl.ariaLabel="",this.statusBarEl.setText(this.currentMessage.message),this.lastMessageTimestamp=Date.now()):this.currentMessage?Date.now()-this.lastMessageTimestamp>=this.currentMessage.timeout&&(this.currentMessage=null,this.lastMessageTimestamp=null):this.displayState()}displayState(){switch((this.statusBarEl.getText().length>3||!this.statusBarEl.hasChildNodes())&&(this.statusBarEl.empty(),this.conflictEl=this.statusBarEl.createDiv(),this.conflictEl.setAttribute("data-tooltip-position","top"),this.conflictEl.style.float="left",this.pausedEl=this.statusBarEl.createDiv(),this.pausedEl.setAttribute("data-tooltip-position","top"),this.pausedEl.style.float="left",this.iconEl=this.statusBarEl.createDiv(),this.iconEl.style.float="left",this.textEl=this.statusBarEl.createDiv(),this.textEl.style.float="right",this.textEl.style.marginLeft="5px"),this.plugin.localStorage.getConflict()?((0,ti.setIcon)(this.conflictEl,"alert-circle"),this.conflictEl.ariaLabel="You have merge conflicts. Resolve them and commit afterwards.",this.conflictEl.style.marginRight="5px",this.conflictEl.addClass(this.base+"conflict")):(this.conflictEl.empty(),this.conflictEl.style.marginRight=""),this.plugin.localStorage.getPausedAutomatics()?((0,ti.setIcon)(this.pausedEl,"pause-circle"),this.pausedEl.ariaLabel="Automatic routines are currently paused.",this.pausedEl.style.marginRight="5px",this.pausedEl.addClass(this.base+"paused")):(this.pausedEl.empty(),this.pausedEl.style.marginRight=""),this.plugin.state.gitAction){case 0:this.displayFromNow();break;case 1:this.statusBarEl.ariaLabel="Checking repository status...",(0,ti.setIcon)(this.iconEl,"refresh-cw"),this.statusBarEl.addClass(this.base+"status");break;case 3:this.statusBarEl.ariaLabel="Adding files...",(0,ti.setIcon)(this.iconEl,"archive"),this.statusBarEl.addClass(this.base+"add");break;case 4:this.statusBarEl.ariaLabel="Committing changes...",(0,ti.setIcon)(this.iconEl,"git-commit"),this.statusBarEl.addClass(this.base+"commit");break;case 5:this.statusBarEl.ariaLabel="Pushing changes...",(0,ti.setIcon)(this.iconEl,"upload"),this.statusBarEl.addClass(this.base+"push");break;case 2:this.statusBarEl.ariaLabel="Pulling changes...",(0,ti.setIcon)(this.iconEl,"download"),this.statusBarEl.addClass(this.base+"pull");break;default:this.statusBarEl.ariaLabel="Failed on initialization!",(0,ti.setIcon)(this.iconEl,"alert-triangle"),this.statusBarEl.addClass(this.base+"failed-init");break}}displayFromNow(){var i;let e=this.lastCommitTimestamp,r=this.plugin.state.offlineMode;if(e){let n=(0,ti.moment)(e).fromNow();this.statusBarEl.ariaLabel=`${r?"Offline: ":""}Last Commit: ${n}`,(i=this.unPushedCommits)!=null&&i&&(this.statusBarEl.ariaLabel+=` -(${this.unPushedCommits} unpushed commits)`)}else this.statusBarEl.ariaLabel=r?"Git is offline":"Git is ready";r?(0,ti.setIcon)(this.iconEl,"globe"):(0,ti.setIcon)(this.iconEl,"check"),this.plugin.settings.changedFilesInStatusBar&&this.plugin.cachedStatus&&this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()),this.statusBarEl.addClass(this.base+"idle")}async refreshCommitTimestamp(){this.lastCommitTimestamp=await this.plugin.gitManager.getLastCommitTime(),this.unPushedCommits=await this.plugin.gitManager.getUnpushedCommits()}remove(){this.statusBarEl.remove()}};p();var sp=require("obsidian"),np=class extends sp.SuggestModal{constructor(r){super(r.app);this.plugin=r;this.resolve=null;this.setPlaceholder("Type your message and select optional the version with the added date.")}openAndGetResult(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(r){let i=(0,sp.moment)().format(this.plugin.settings.commitDateFormat);return r==""&&(r="..."),[r,`${i}: ${r}`,`${r}: ${i}`]}renderSuggestion(r,i){i.innerText=r}onChooseSuggestion(r,i){this.resolve&&this.resolve(r)}};p();var gI=require("obsidian"),Du=class{constructor(e){this.plugin=e}saveLastAuto(e,r){r==="backup"?this.plugin.localStorage.setLastAutoBackup(e.toString()):r==="pull"?this.plugin.localStorage.setLastAutoPull(e.toString()):r==="push"&&this.plugin.localStorage.setLastAutoPush(e.toString())}loadLastAuto(){var e,r,i;return{backup:new Date((e=this.plugin.localStorage.getLastAutoBackup())!=null?e:""),pull:new Date((r=this.plugin.localStorage.getLastAutoPull())!=null?r:""),push:new Date((i=this.plugin.localStorage.getLastAutoPush())!=null?i:"")}}async init(){await this.setUpAutoCommitAndSync();let e=this.loadLastAuto();if(this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0){let r=this.diff(this.plugin.settings.autoPushInterval,e.push);this.startAutoPush(r)}if(this.plugin.settings.autoPullInterval>0){let r=this.diff(this.plugin.settings.autoPullInterval,e.pull);this.startAutoPull(r)}}unload(){this.clearAutoPull(),this.clearAutoPush(),this.clearAutoCommitAndSync()}reload(...e){this.plugin.localStorage.getPausedAutomatics()||(e.contains("commit")&&(this.clearAutoCommitAndSync(),this.plugin.settings.autoSaveInterval>0&&this.startAutoCommitAndSync(this.plugin.settings.autoSaveInterval)),e.contains("push")&&(this.clearAutoPush(),this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0&&this.startAutoPush(this.plugin.settings.autoPushInterval)),e.contains("pull")&&(this.clearAutoPull(),this.plugin.settings.autoPullInterval>0&&this.startAutoPull(this.plugin.settings.autoPullInterval)))}async setUpAutoCommitAndSync(){if(this.plugin.settings.setLastSaveToLastCommit){this.clearAutoCommitAndSync();let e=await this.plugin.gitManager.getLastCommitTime();e&&this.saveLastAuto(e,"backup")}if(!this.timeoutIDCommitAndSync&&!this.plugin.autoCommitDebouncer){let e=this.loadLastAuto();if(this.plugin.settings.autoSaveInterval>0){let r=this.diff(this.plugin.settings.autoSaveInterval,e.backup);this.startAutoCommitAndSync(r)}}}startAutoCommitAndSync(e){let r=(e!=null?e:this.plugin.settings.autoSaveInterval)*6e4;this.plugin.settings.autoBackupAfterFileChange?e===0?this.doAutoCommitAndSync():this.plugin.autoCommitDebouncer=(0,gI.debounce)(()=>this.doAutoCommitAndSync(),r,!0):(r>2147483647&&(r=2147483647),this.timeoutIDCommitAndSync=window.setTimeout(()=>this.doAutoCommitAndSync(),r))}doAutoCommitAndSync(){this.plugin.promiseQueue.addTask(async()=>{if(this.plugin.settings.setLastSaveToLastCommit){let r=await this.plugin.gitManager.getLastCommitTime();if(r){this.saveLastAuto(r,"backup");let i=this.diff(this.plugin.settings.autoSaveInterval,r);if(i>0)return this.startAutoCommitAndSync(i),!1}}let e=this.plugin.settings.autoCommitOnlyStaged;return this.plugin.settings.differentIntervalCommitAndPush?await this.plugin.commit({fromAuto:!0,onlyStaged:e}):await this.plugin.commitAndSync({fromAutoBackup:!0,onlyStaged:e}),!0},e=>{e!==!1&&(this.saveLastAuto(new Date,"backup"),this.startAutoCommitAndSync())})}startAutoPull(e){let r=(e!=null?e:this.plugin.settings.autoPullInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPull=window.setTimeout(()=>this.doAutoPull(),r)}doAutoPull(){this.plugin.promiseQueue.addTask(()=>this.plugin.pullChangesFromRemote(),()=>{this.saveLastAuto(new Date,"pull"),this.startAutoPull()})}startAutoPush(e){let r=(e!=null?e:this.plugin.settings.autoPushInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPush=window.setTimeout(()=>this.doAutoPush(),r)}doAutoPush(){this.plugin.promiseQueue.addTask(()=>this.plugin.push(),()=>{this.saveLastAuto(new Date,"push"),this.startAutoPush()})}clearAutoCommitAndSync(){var r;let e=!1;return this.timeoutIDCommitAndSync&&(window.clearTimeout(this.timeoutIDCommitAndSync),this.timeoutIDCommitAndSync=void 0,e=!0),this.plugin.autoCommitDebouncer&&((r=this.plugin.autoCommitDebouncer)==null||r.cancel(),this.plugin.autoCommitDebouncer=void 0,e=!0),e}clearAutoPull(){return this.timeoutIDPull?(window.clearTimeout(this.timeoutIDPull),this.timeoutIDPull=void 0,!0):!1}clearAutoPush(){return this.timeoutIDPush?(window.clearTimeout(this.timeoutIDPush),this.timeoutIDPush=void 0,!0):!1}diff(e,r){let n=e-Math.round((new Date().getTime()-r.getTime())/1e3/60);return Math.max(0,n)}};p();var Ni=require("obsidian");p();var Lu=require("obsidian");async function vI(t,e,r){let i=await yI(e,r);if(i.result==="failure"){new Lu.Notice(i.reason);return}let{isGitHub:n,branch:s,repo:a,user:o,filePath:l}=i;if(n){let c=t.getCursor("from").line+1,u=t.getCursor("to").line+1;c===u?window.open(`https://github.com/${o}/${a}/blob/${s}/${l}?plain=1#L${c}`):window.open(`https://github.com/${o}/${a}/blob/${s}/${l}?plain=1#L${c}-L${u}`)}else new Lu.Notice("It seems like you are not using GitHub")}async function wI(t,e){let r=await yI(t,e);if(r.result==="failure"){new Lu.Notice(r.reason);return}let{isGitHub:i,branch:n,repo:s,user:a,filePath:o}=r;i?window.open(`https://github.com/${a}/${s}/commits/${n}/${o}`):new Lu.Notice("It seems like you are not using GitHub")}async function yI(t,e){let r=await e.branchInfo(),i=r.tracking,n=r.current,s,a=e.getRelativeRepoPath(t.path);if(e instanceof Se){let l=await e.getSubmoduleOfFile(e.getRelativeRepoPath(t.path));if(l){a=l.relativeFilepath;let c=await e.git.cwd({path:l.submodule,root:!1}).status();if(i=c.tracking||void 0,n=c.current||void 0,i){let u=i.substring(0,i.indexOf("/")),f=await e.git.cwd({path:l.submodule,root:!1}).getConfig(`remote.${u}.url`,"local");if(f.value!=null)s=f.value;else return{result:"failure",reason:"Failed to get remote url of submodule"}}}}if(i==null)return{result:"failure",reason:"Remote branch is not configured"};if(n==null)return{result:"failure",reason:"Failed to get current branch name"};if(s==null){let l=i.substring(0,i.indexOf("/"));if(s=await e.getConfig(`remote.${l}.url`),s==null)return{result:"failure",reason:"Failed to get remote url"}}let o=s.match(/(?:^https:\/\/github\.com\/(.+)\/(.+?)(?:\.git)?$)|(?:^[a-zA-Z]+@github\.com:(.+)\/(.+?)(?:\.git)?$)/);if(o==null)return{result:"failure",reason:"Could not parse remote url"};{let[l,c,u,f,d]=o;return{result:"success",isGitHub:!!l,repo:u||d,user:c||f,branch:n,filePath:a}}}p();var bI=require("obsidian"),ap=class extends bI.FuzzySuggestModal{constructor(e,r){super(e.app),this.plugin=e,this.changedFiles=r,this.setPlaceholder("Not supported files will be opened by default app!")}getItems(){return this.changedFiles}getItemText(e){if(e.index=="U"&&e.workingDir=="U")return`Untracked | ${e.vaultPath}`;let r="",i="";return e.workingDir!=" "&&(r=`Working Dir: ${e.workingDir} `),e.index!=" "&&(i=`Index: ${e.index}`),`${r}${i} | ${e.vaultPath}`}onChooseItem(e,r){this.plugin.app.metadataCache.getFirstLinkpathDest(e.vaultPath,"")==null?this.app.openWithDefaultApp(e.vaultPath):this.plugin.app.workspace.openLinkText(e.vaultPath,"/")}};p();var _I=require("obsidian"),op=class extends _I.Modal{constructor(r,i){super(r);this.content=i;this.resolve=null}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onOpen(){let{contentEl:r,titleEl:i}=this;i.setText("Edit .gitignore");let n=r.createDiv(),s=n.createEl("textarea",{text:this.content,cls:["obsidian-git-textarea"],attr:{rows:10,cols:30,wrap:"off"}});n.createEl("button",{cls:["mod-cta","obsidian-git-center-button"],text:"Save"}).addEventListener("click",()=>{this.resolve(s.value),this.close()})}onClose(){let{contentEl:r}=this;r.empty(),this.resolve&&this.resolve(void 0)}};p();var Wu=require("@codemirror/state"),xp=require("@codemirror/view");p();var Fl=require("@codemirror/state");p();var Nt=class t{static createHunk(e,r,i,n){return{removed:{start:e,count:r,lines:[]},added:{start:i,count:n,lines:[]},head:`@@ -${e}${r>0?`,${r}`:""} +${i}${n>0?`,${n}`:""} @@`,vend:i+Math.max(n-1,0),type:n===0?"delete":r===0?"add":"change"}}static createPartialHunk(e,r,i){let n=r,s=i-r+1,a=0;for(let o of e){let l=o.added.count-o.removed.count,c=0;if(o.added.start>=r&&o.vend<=i)c=l;else{let u=Math.max(0,i+1-(o.added.start+o.removed.count)),f=Math.max(0,r-(o.added.start+o.removed.count));o.added.start>=r&&o.added.start<=i?c=u:o.vend>=r&&o.vend<=i?(c=l-f,n=n-f):o.added.start<=r&&o.vend>=i?(c=u-f,n=n-f):a++,r>o.vend&&(n=n-l)}s=s-c}if(a!==e.length)return s===0&&(n=n-1),this.createHunk(n,s,r,i-r+1)}patchLines(e,r=!1){let i=[];for(let n of e.removed.lines)i.push("-"+n);for(let n of e.added.lines)i.push("+"+n);return r?i.map(n=>n.replace(/\r$/,"")):i}static parseDiffLine(e){let n=e.split("@@")[1].trim().split(" "),s=n[0].substring(1).split(","),a=n[1].substring(1).split(","),o=this.createHunk(parseInt(s[0]),parseInt(s[1]||"1"),parseInt(a[0]),parseInt(a[1]||"1"));return o.head=e,o}static changeEnd(e){return e.added.count===0?e.added.start:e.removed.count===0?e.added.start+e.added.count-1:e.added.start+Math.min(e.added.count,e.removed.count)-1}static calcSigns(e,r,i,n=1,s=1/0,a){if(a&&r.type!=="add")return console.error(`Invalid hunk with untracked=${a} hunk="${r.head}"`),[];n=Math.max(1,n);let{start:o,added:l,removed:c}={start:r.added.start,added:r.added.count,removed:r.removed.count},u=this.changeEnd(r),f=r.type==="delete"&&(o===0||e&&this.changeEnd(e)===o)&&(!i||i.added.start!==o+1);f&&n===1&&(n=0);let d=[];for(let h=Math.max(o,n);h<=Math.min(u,s);h++){let m=r.type==="change"&&(c>l&&h===u||e&&e.added.start===0);d.push({type:f?"topdelete":m?"changedelete":a?"untracked":r.type,count:h===o?r.type==="add"?l:c:void 0,lnum:h+(f?1:0)})}if(r.type==="change"&&l>c&&r.vend>=n&&u<=s)for(let h=Math.max(u,n);h<=Math.min(r.vend,s);h++)d.push({type:"add",count:h===r.vend?l-c:void 0,lnum:h});return d}static createPatch(e,r,i,n=!1){let s=[`diff --git a/${e} b/${e}`,`index 000000..000000 ${i}`,`--- a/${e}`,`+++ b/${e}`],a=0;r=structuredClone(r);for(let o of r){let l=o.removed.start,c=o.removed.count,u=o.added.count;o.type==="add"&&(l=l+1);let f=o.removed.lines,d=o.added.lines;n&&([c,u]=[u,c],[f,d]=[d,f]),s.push(`@@ -${l},${c} +${l+a},${u} @@`);for(let h of f)s.push("-"+h);(n?o.added:o.removed).no_nl_at_eof&&s.push("\\ No newline at end of file");for(let h of d)s.push("+"+h);(n?o.removed:o.added).no_nl_at_eof&&s.push("\\ No newline at end of file"),o.removed.start=l+a,a=a+(u-c)}return s}getSummary(e){let r={added:0,changed:0,removed:0};for(let i of e)if(i.type==="add")r.added+=i.added.count;else if(i.type==="delete")r.removed+=i.removed.count;else if(i.type==="change"){let n=i.added.count,s=i.removed.count,a=Math.min(n,s);r.changed+=a,r.added+=n-a,r.removed+=s-a}return r}static findHunk(e,r){if(!r)return[void 0,void 0];for(let i=0;i=e)return[n,i]}return[void 0,void 0]}static findNearestHunk(e,r,i,n){if(r.length!==0){if(i==="first")return 0;if(i==="last")return r.length-1;if(i==="next"){if(r[0].added.start>e)return 0;for(let s=r.length-1;s>=0;s--)if(r[s].added.start<=e){if(s+1e)return s+1;if(n)return 0}}else if(i==="prev"){if(Math.max(r[r.length-1].vend)0&&Math.max(r[s-1].vend,1)l.added.start?n++:o.added.starta.map(v=>g.replace(/&/,v))).reduce((g,v)=>g.concat(v)),m,l);else if(m&&typeof m=="object"){if(!f)throw new RangeError("The value of a property ("+h+") should be a primitive value.");s(n(h),m,u,d)}else m!=null&&u.push(h.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+m+";")}(u.length||d)&&l.push((i&&!f&&!c?a.map(i):a).join(", ")+" {"+u.join(" ")+"}")}for(let a in e)s(n(a),e[a],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=SI[xI]||1;return SI[xI]=e+1,X0+e.toString(36)}static mount(e,r,i){let n=e[Z0],s=i&&i.nonce;n?s&&n.setNonce(s):n=new K0(e,s),n.mount(Array.isArray(r)?r:[r],e)}},EI=new Map,K0=class{constructor(e,r){let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let s=EI.get(i);if(s)return e[Z0]=s;this.sheet=new n.CSSStyleSheet,EI.set(i,this)}else this.styleTag=i.createElement("style"),r&&this.styleTag.setAttribute("nonce",r);this.modules=[],e[Z0]=this}mount(e,r){let i=this.sheet,n=0,s=0;for(let a=0;a-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,o),i)for(let c=0;cc){let f=t.slice(e,r).indexOf(i.slice(n,s));if(f>-1)return[new _t(e,e+f,n,n),new _t(e+f+c,r,s,s)]}else if(c>l){let f=i.slice(n,s).indexOf(t.slice(e,r));if(f>-1)return[new _t(e,e,n,n+f),new _t(r,r,n+f+l,s)]}if(l==1||c==1)return[new _t(e,r,n,s)];let u=qI(t,e,r,i,n,s);if(u){let[f,d,h]=u;return Ba(t,e,f,i,n,d).concat(Ba(t,f+h,r,i,d+h,s))}return nV(t,e,r,i,n,s)}var Bu=1e9,Nu=0,ny=!1;function nV(t,e,r,i,n,s){let a=r-e,o=s-n;if(Bu<1e9&&Math.min(a,o)>Bu*16||Nu>0&&Date.now()>Nu)return Math.min(a,o)>Bu*64?[new _t(e,r,n,s)]:kI(t,e,r,i,n,s);let l=Math.ceil((a+o)/2);Q0.reset(l),J0.reset(l);let c=(h,m)=>t.charCodeAt(e+h)==i.charCodeAt(n+m),u=(h,m)=>t.charCodeAt(r-h-1)==i.charCodeAt(s-m-1),f=(a-o)%2!=0?J0:null,d=f?null:Q0;for(let h=0;hBu||Nu>0&&!(h&63)&&Date.now()>Nu)return kI(t,e,r,i,n,s);let m=Q0.advance(h,a,o,l,f,!1,c)||J0.advance(h,a,o,l,d,!0,u);if(m)return sV(t,e,r,e+m[0],i,n,s,n+m[1])}return[new _t(e,r,n,s)]}var hp=class{constructor(){this.vec=[]}reset(e){this.len=e<<1;for(let r=0;rr)this.end+=2;else if(f>i)this.start+=2;else if(s){let d=n+(r-i)-l;if(d>=0&&d=r-u)return[h,n+h-d]}else{let h=r-s.vec[d];if(u>=h)return[u,f]}}}return null}},Q0=new hp,J0=new hp;function sV(t,e,r,i,n,s,a,o){let l=!1;return!$l(t,i)&&++i==r&&(l=!0),!$l(n,o)&&++o==a&&(l=!0),l?[new _t(e,r,s,a)]:Ba(t,e,i,n,s,o).concat(Ba(t,i,r,n,o,a))}function jI(t,e){let r=1,i=Math.min(t,e);for(;rr||u>s||t.slice(o,c)!=i.slice(l,u)){if(a==1)return o-e-($l(t,o)?0:1);a=a>>1}else{if(c==r||u==s)return c-e;o=c,l=u}}}function ay(t,e,r,i,n,s){if(e==r||n==s||t.charCodeAt(r-1)!=i.charCodeAt(s-1))return 0;let a=jI(r-e,s-n);for(let o=r,l=s;;){let c=o-a,u=l-a;if(c>1}else{if(c==e||u==n)return r-c;o=c,l=u}}}function ey(t,e,r,i,n,s,a,o){let l=i.slice(n,s),c=null;for(;;){if(c||a=r)break;let d=t.slice(u,f),h=-1;for(;(h=l.indexOf(d,h+1))!=-1;){let m=sy(t,f,r,i,n+h+d.length,s),g=ay(t,e,u,i,n,n+h),v=d.length+m+g;(!c||c[2]>1}}function qI(t,e,r,i,n,s){let a=r-e,o=s-n;if(an.fromA-e&&i.toB>n.fromB-e&&(t[r-1]=new _t(i.fromA,n.toA,i.fromB,n.toB),t.splice(r--,1))}}function aV(t,e,r){for(;;){zI(r,1);let i=!1;for(let n=0;n3||o>3){let l=n==t.length-1?e.length:t[n+1].fromA,c=s.fromA-i,u=l-s.toA,f=TI(e,s.fromA,c),d=AI(e,s.toA,u),h=s.fromA-f,m=d-s.toA;if((!a||!o)&&h&&m){let g=Math.max(a,o),[v,w,b]=a?[e,s.fromA,s.toA]:[r,s.fromB,s.toB];g>h&&e.slice(f,s.fromA)==v.slice(b-h,b)?(s=t[n]=new _t(f,f+a,s.fromB-h,s.toB-h),f=s.fromA,d=AI(e,s.toA,l-s.toA)):g>m&&e.slice(s.toA,d)==v.slice(w,w+m)&&(s=t[n]=new _t(d-a,d,s.fromB+m,s.toB+m),d=s.toA,f=TI(e,s.fromA,s.fromA-i)),h=s.fromA-f,m=d-s.toA}if(h||m)s=t[n]=new _t(s.fromA-h,s.toA+m,s.fromB-h,s.toB+m);else if(a){if(!o){let g=PI(e,s.fromA,s.toA),v,w=g<0?-1:CI(e,s.toA,s.fromA);g>-1&&(v=g-s.fromA)<=u&&e.slice(s.fromA,g)==e.slice(s.toA,s.toA+v)?s=t[n]=s.offset(v):w>-1&&(v=s.toA-w)<=c&&e.slice(s.fromA-v,s.fromA)==e.slice(w,s.toA)&&(s=t[n]=s.offset(-v))}}else{let g=PI(r,s.fromB,s.toB),v,w=g<0?-1:CI(r,s.toB,s.fromB);g>-1&&(v=g-s.fromB)<=u&&r.slice(s.fromB,g)==r.slice(s.toB,s.toB+v)?s=t[n]=s.offset(v):w>-1&&(v=s.toB-w)<=c&&r.slice(s.fromB-v,s.fromB)==r.slice(w,s.toB)&&(s=t[n]=s.offset(-v))}}i=s.toA}return zI(t,3),t}var La;try{La=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch(t){}function VI(t){return t>48&&t<58||t>64&&t<91||t>96&&t<123}function WI(t,e){if(e==t.length)return 0;let r=t.charCodeAt(e);return r<192?VI(r)?1:0:La?!ZI(r)||e==t.length-1?La.test(String.fromCharCode(r))?1:0:La.test(t.slice(e,e+2))?2:0:0}function YI(t,e){if(!e)return 0;let r=t.charCodeAt(e-1);return r<192?VI(r)?1:0:La?!KI(r)||e==1?La.test(String.fromCharCode(r))?1:0:La.test(t.slice(e-2,e))?2:0:0}var XI=8;function AI(t,e,r){if(e==t.length||!YI(t,e))return e;for(let i=e,n=e+r,s=0;sn)return i;i+=a}return e}function TI(t,e,r){if(!e||!WI(t,e))return e;for(let i=e,n=e-r,s=0;st>=55296&&t<=56319,KI=t=>t>=56320&&t<=57343;function $l(t,e){return!e||e==t.length||!ZI(t.charCodeAt(e-1))||!KI(t.charCodeAt(e))}function lV(t,e,r){var i;let n=r==null?void 0:r.override;return n?n(t,e):(Bu=((i=r==null?void 0:r.scanLimit)!==null&&i!==void 0?i:1e9)>>1,Nu=r!=null&&r.timeout?Date.now()+r.timeout:0,ny=!1,aV(t,e,Ba(t,0,t.length,e,0,e.length)))}function QI(){return!ny}function JI(t,e,r){return oV(lV(t,e,r),t,e)}var Li=$e.Facet.define({combine:t=>t[0]}),ty=$e.StateEffect.define(),cV=$e.Facet.define(),Na=$e.StateField.define({create(t){return null},update(t,e){for(let r of e.effects)r.is(ty)&&(t=r.value);for(let r of e.state.facet(cV))t=r(t,e);return t}});function oy(t){let e=t.field(Na,!1);if(!e)return null;let r=t.facet(Li);return{chunks:e,side:r?r.side:null}}var es=class t{constructor(e,r,i,n,s,a=!0){this.changes=e,this.fromA=r,this.toA=i,this.fromB=n,this.toB=s,this.precise=a}offset(e,r){return e||r?new t(this.changes,this.fromA+e,this.toA+e,this.fromB+r,this.toB+r,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(e,r,i){let n=JI(e.toString(),r.toString(),i);return eO(n,e,r,0,0,QI())}static updateA(e,r,i,n,s){return OI(II(e,n,!0,i.length),e,r,i,s)}static updateB(e,r,i,n,s){return OI(II(e,n,!1,r.length),e,r,i,s)}};function RI(t,e,r,i){let n=r.lineAt(t),s=i.lineAt(e);return n.to==t&&s.to==e&&tf+1&&v>d+1)break;h.push(m.offset(-c+i,-u+n)),[f,d]=$I(m.toA+i,m.toB+n,e,r),o++}a.push(new es(h,c,Math.max(c,f),u,Math.max(u,d),s))}return a}var cp=1e3;function FI(t,e,r,i){let n=0,s=t.length;for(;;){if(n==s){let u=0,f=0;n&&({toA:u,toB:f}=t[n-1]);let d=e-(r?u:f);return[u+d,f+d]}let a=n+s>>1,o=t[a],[l,c]=r?[o.fromA,o.toA]:[o.fromB,o.toB];if(l>e)s=a;else if(c<=e)n=a+1;else return i?[o.fromA,o.fromB]:[o.toA,o.toB]}}function II(t,e,r,i){let n=[];return e.iterChangedRanges((s,a,o,l)=>{let c=0,u=r?e.length:i,f=0,d=r?i:e.length;s>cp&&([c,f]=FI(t,s-cp,r,!0)),a=c?n[n.length-1]={fromA:m.fromA,fromB:m.fromB,toA:u,toB:d,diffA:m.diffA+g,diffB:m.diffB+v}:n.push({fromA:c,toA:u,fromB:f,toB:d,diffA:g,diffB:v})}),n}function OI(t,e,r,i,n){if(!t.length)return e;let s=[];for(let a=0,o=0,l=0,c=0;;a++){let u=a==t.length?null:t[a],f=u?u.fromA+o:r.length,d=u?u.fromB+l:i.length;for(;cf||v.endB+l>d)break;s.push(v.offset(o,l)),c++}if(!u)break;let h=u.toA+o+u.diffA,m=u.toB+l+u.diffB,g=JI(r.sliceString(f,h),i.sliceString(d,m),n);for(let v of eO(g,r,i,f,d,QI()))s.push(v);for(o+=u.diffA,l+=u.diffB;ch&&v.fromB+l>m)break;c++}}return s}var uV={scanLimit:500},tO=Me.ViewPlugin.fromClass(class{constructor(t){({deco:this.deco,gutter:this.gutter}=LI(t))}update(t){(t.docChanged||t.viewportChanged||fV(t.startState,t.state)||dV(t.startState,t.state))&&({deco:this.deco,gutter:this.gutter}=LI(t.view))}},{decorations:t=>t.deco}),up=$e.Prec.low((0,Me.gutter)({class:"cm-changeGutter",markers:t=>{var e;return((e=t.plugin(tO))===null||e===void 0?void 0:e.gutter)||$e.RangeSet.empty}}));function fV(t,e){return t.field(Na,!1)!=e.field(Na,!1)}function dV(t,e){return t.facet(Li)!=e.facet(Li)}var MI=Me.Decoration.line({class:"cm-changedLine"}),hV=Me.Decoration.mark({class:"cm-changedText"}),pV=Me.Decoration.mark({tagName:"ins",class:"cm-insertedLine"}),mV=Me.Decoration.mark({tagName:"del",class:"cm-deletedLine"}),DI=new class extends Me.GutterMarker{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function gV(t,e,r,i,n,s){let a=r?t.fromA:t.fromB,o=r?t.toA:t.toB,l=0;if(a!=o){n.add(a,a,MI),n.add(a,o,r?mV:pV),s&&s.add(a,a,DI);for(let c=e.iterRange(a,o-1),u=a;!c.next().done;){if(c.lineBreak){u++,n.add(u,u,MI),s&&s.add(u,u,DI);continue}let f=u+c.value.length;if(i)for(;l=u)break;(a?f.toA:f.toB)>c&&(!s||!s(t.state,f,o,l))&&gV(f,t.state.doc,a,i,o,l)}return{deco:o.finish(),gutter:l&&l.finish()}}var Rl=class extends Me.WidgetType{constructor(e){super(),this.height=e}eq(e){return this.height==e.height}toDOM(){let e=document.createElement("div");return e.className="cm-mergeSpacer",e.style.height=this.height+"px",e}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},pp=$e.StateEffect.define({map:(t,e)=>t.map(e)}),Hu=$e.StateField.define({create:()=>Me.Decoration.none,update:(t,e)=>{for(let r of e.effects)if(r.is(pp))return r.value;return t.map(e.changes)},provide:t=>Me.EditorView.decorations.from(t)}),fp=.01;function BI(t,e){if(t.size!=e.size)return!1;let r=t.iter(),i=e.iter();for(;r.value;){if(r.from!=i.from||Math.abs(r.value.spec.widget.height-i.value.spec.widget.height)>1)return!1;r.next(),i.next()}return!0}function vV(t,e,r){let i=new $e.RangeSetBuilder,n=new $e.RangeSetBuilder,s=t.state.field(Hu).iter(),a=e.state.field(Hu).iter(),o=0,l=0,c=0,u=0,f=t.viewport,d=e.viewport;for(let v=0;;v++){let w=vfp&&(u+=A,n.add(l,l,Me.Decoration.widget({widget:new Rl(A),block:!0,side:-1})))}if(b>o+1e3&&of.from&&ld.from){let x=Math.min(f.from-o,d.from-l);o+=x,l+=x,v--}else if(w)o=w.toA,l=w.toB;else break;for(;s.value&&s.fromfp&&n.add(e.state.doc.length,e.state.doc.length,Me.Decoration.widget({widget:new Rl(h),block:!0,side:1}));let m=i.finish(),g=n.finish();BI(m,t.state.field(Hu))||t.dispatch({effects:pp.of(m)}),BI(g,e.state.field(Hu))||e.dispatch({effects:pp.of(g)})}var ry=$e.StateEffect.define({map:(t,e)=>e.mapPos(t)});var iy=class extends Me.WidgetType{constructor(e){super(),this.lines=e}eq(e){return this.lines==e.lines}toDOM(e){let r=document.createElement("div");return r.className="cm-collapsedLines",r.textContent=e.state.phrase("$ unchanged lines",this.lines),r.addEventListener("click",i=>{let n=e.posAtDOM(i.target);e.dispatch({effects:ry.of(n)});let{side:s,sibling:a}=e.state.facet(Li);a&&a().dispatch({effects:ry.of(wV(n,e.state.field(Na),s=="a"))})}),r}ignoreEvent(e){return e instanceof MouseEvent}get estimatedHeight(){return 27}get type(){return"collapsed-unchanged-code"}};function wV(t,e,r){let i=0,n=0;for(let s=0;;s++){let a=s=t)return n+(t-i);[i,n]=r?[a.toA,a.toB]:[a.toB,a.toA]}}var yV=$e.StateField.define({create(t){return Me.Decoration.none},update(t,e){t=t.map(e.changes);for(let r of e.effects)r.is(ry)&&(t=t.update({filter:i=>i!=r.value}));return t},provide:t=>Me.EditorView.decorations.from(t)});function NI({margin:t=3,minSize:e=4}){return yV.init(r=>bV(r,t,e))}function bV(t,e,r){let i=new $e.RangeSetBuilder,n=t.facet(Li).side=="a",s=t.field(Na),a=1;for(let o=0;;o++){let l=o=r&&i.add(t.doc.line(c).from,t.doc.line(u).to,Me.Decoration.replace({widget:new iy(f),block:!0})),!l)break;a=t.doc.lineAt(Math.min(t.doc.length,n?l.toA:l.toB)).number}return i.finish()}var _V=Me.EditorView.styleModule.of(new lp({".cm-mergeView":{overflowY:"auto"},".cm-mergeViewEditors":{display:"flex",alignItems:"stretch"},".cm-mergeViewEditor":{flexGrow:1,flexBasis:0,overflow:"hidden"},".cm-merge-revert":{width:"1.6em",flexGrow:0,flexShrink:0,position:"relative"},".cm-merge-revert button":{position:"absolute",display:"block",width:"100%",boxSizing:"border-box",textAlign:"center",background:"none",border:"none",font:"inherit",cursor:"pointer"}})),xV=Me.EditorView.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine, .cm-inlineChangedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb22aa, #22bb22aa) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff88aa, #88ff88aa) bottom/100% 2px no-repeat"},"&.cm-merge-b .cm-deletedText":{background:"#ff000033"},".cm-insertedLine, .cm-deletedLine, .cm-deletedLine del":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer","&:before":{content:'"\u299A"',marginInlineEnd:"7px"},"&:after":{content:'"\u299A"',marginInlineStart:"7px"}},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"},".cm-inlineChangedLineGutter":{background:"#75d"}}),HI=new $e.Compartment,dp=new $e.Compartment,mp=class{constructor(e){this.revertDOM=null,this.revertToA=!1,this.revertToLeft=!1,this.measuring=-1,this.diffConf=e.diffConfig||uV;let r=[$e.Prec.low(tO),xV,_V,Hu,Me.EditorView.updateListener.of(f=>{this.measuring<0&&(f.heightChanged||f.viewportChanged)&&!f.transactions.some(d=>d.effects.some(h=>h.is(pp)))&&this.measure()})],i=[Li.of({side:"a",sibling:()=>this.b,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&i.push(up);let n=$e.EditorState.create({doc:e.a.doc,selection:e.a.selection,extensions:[e.a.extensions||[],Me.EditorView.editorAttributes.of({class:"cm-merge-a"}),dp.of(i),r]}),s=[Li.of({side:"b",sibling:()=>this.a,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&s.push(up);let a=$e.EditorState.create({doc:e.b.doc,selection:e.b.selection,extensions:[e.b.extensions||[],Me.EditorView.editorAttributes.of({class:"cm-merge-b"}),dp.of(s),r]});this.chunks=es.build(n.doc,a.doc,this.diffConf);let o=[Na.init(()=>this.chunks),HI.of(e.collapseUnchanged?NI(e.collapseUnchanged):[])];n=n.update({effects:$e.StateEffect.appendConfig.of(o)}).state,a=a.update({effects:$e.StateEffect.appendConfig.of(o)}).state,this.dom=document.createElement("div"),this.dom.className="cm-mergeView",this.editorDOM=this.dom.appendChild(document.createElement("div")),this.editorDOM.className="cm-mergeViewEditors";let l=e.orientation||"a-b",c=document.createElement("div");c.className="cm-mergeViewEditor";let u=document.createElement("div");u.className="cm-mergeViewEditor",this.editorDOM.appendChild(l=="a-b"?c:u),this.editorDOM.appendChild(l=="a-b"?u:c),this.a=new Me.EditorView({state:n,parent:c,root:e.root,dispatchTransactions:f=>this.dispatch(f,this.a)}),this.b=new Me.EditorView({state:a,parent:u,root:e.root,dispatchTransactions:f=>this.dispatch(f,this.b)}),this.setupRevertControls(!!e.revertControls,e.revertControls=="b-to-a",e.renderRevertControl),e.parent&&e.parent.appendChild(this.dom),this.scheduleMeasure()}dispatch(e,r){if(e.some(i=>i.docChanged)){let i=e[e.length-1],n=e.reduce((a,o)=>a.compose(o.changes),$e.ChangeSet.empty(e[0].startState.doc.length));this.chunks=r==this.a?es.updateA(this.chunks,i.newDoc,this.b.state.doc,n,this.diffConf):es.updateB(this.chunks,this.a.state.doc,i.newDoc,n,this.diffConf),r.update([...e,i.state.update({effects:ty.of(this.chunks)})]);let s=r==this.a?this.b:this.a;s.update([s.state.update({effects:ty.of(this.chunks)})]),this.scheduleMeasure()}else r.update(e)}reconfigure(e){if("diffConfig"in e&&(this.diffConf=e.diffConfig),"orientation"in e){let s=e.orientation!="b-a";if(s!=(this.editorDOM.firstChild==this.a.dom.parentNode)){let a=this.a.dom.parentNode,o=this.b.dom.parentNode;a.remove(),o.remove(),this.editorDOM.insertBefore(s?a:o,this.editorDOM.firstChild),this.editorDOM.appendChild(s?o:a),this.revertToLeft=!this.revertToLeft,this.revertDOM&&(this.revertDOM.textContent="")}}if("revertControls"in e||"renderRevertControl"in e){let s=!!this.revertDOM,a=this.revertToA,o=this.renderRevert;"revertControls"in e&&(s=!!e.revertControls,a=e.revertControls=="b-to-a"),"renderRevertControl"in e&&(o=e.renderRevertControl),this.setupRevertControls(s,a,o)}let r="highlightChanges"in e,i="gutter"in e,n="collapseUnchanged"in e;if(r||i||n){let s=[],a=[];if(r||i){let o=this.a.state.facet(Li),l=i?e.gutter!==!1:o.markGutter,c=r?e.highlightChanges!==!1:o.highlightChanges;s.push(dp.reconfigure([Li.of({side:"a",sibling:()=>this.b,highlightChanges:c,markGutter:l}),l?up:[]])),a.push(dp.reconfigure([Li.of({side:"b",sibling:()=>this.a,highlightChanges:c,markGutter:l}),l?up:[]]))}if(n){let o=HI.reconfigure(e.collapseUnchanged?NI(e.collapseUnchanged):[]);s.push(o),a.push(o)}this.a.dispatch({effects:s}),this.b.dispatch({effects:a})}this.scheduleMeasure()}setupRevertControls(e,r,i){this.revertToA=r,this.revertToLeft=this.revertToA==(this.editorDOM.firstChild==this.a.dom.parentNode),this.renderRevert=i,!e&&this.revertDOM?(this.revertDOM.remove(),this.revertDOM=null):e&&!this.revertDOM?(this.revertDOM=this.editorDOM.insertBefore(document.createElement("div"),this.editorDOM.firstChild.nextSibling),this.revertDOM.addEventListener("mousedown",n=>this.revertClicked(n)),this.revertDOM.className="cm-merge-revert"):this.revertDOM&&(this.revertDOM.textContent="")}scheduleMeasure(){if(this.measuring<0){let e=this.dom.ownerDocument.defaultView||window;this.measuring=e.requestAnimationFrame(()=>{this.measuring=-1,this.measure()})}}measure(){vV(this.a,this.b,this.chunks),this.revertDOM&&this.updateRevertButtons()}updateRevertButtons(){let e=this.revertDOM,r=e.firstChild,i=this.a.viewport,n=this.b.viewport;for(let s=0;si.to||a.fromB>n.to)break;if(a.fromA-1&&(this.dom.ownerDocument.defaultView||window).cancelAnimationFrame(this.measuring),this.dom.remove()}};function UI(t){let e=t.nextSibling;return t.remove(),e}var ly=require("@codemirror/state");function cy(t,e,r){let i=[],n=t.split(` + >${o}`}`}previewCustomDateTimeDescriptionHtml(r){let n=(0,U.moment)().format(r);return`Format string to display the authoring date.
Currently: ${n}`}previewOldestAgeDescriptionHtml(r){let n=Xh(r);return[`The oldest age in the line author coloring. Everything older will have the same color. +
Smallest valid age is "1d". Currently: ${n!==void 0?`${n.asDays()} days`:"invalid!"}`,n]}setNonDefaultValue({settingsProperty:r,text:n}){let i=this.plugin.settings[r];et[r]!==i&&(typeof i=="string"||typeof i=="number"||typeof i=="boolean"?n.setValue(String(i)):n.setValue(JSON.stringify(i)))}refreshDisplayWithDelay(r=80){setTimeout(()=>this.display(),r)}};function ry(t,e){return t==="oldest"?e.colorOld:e.colorNew}function Xh(t){let e=U.moment.duration("P"+t.toUpperCase());return e.isValid()&&e.asDays()&&e.asDays()>=1?e:void 0}p();var en=require("obsidian");var lp=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;this.messages=[];this.base="obsidian-git-statusbar-";this.statusBarEl.setAttribute("data-tooltip-position","top"),r.registerEvent(r.app.workspace.on("obsidian-git:refreshed",()=>{this.refreshCommitTimestamp().catch(console.error)}))}displayMessage(e,r){this.messages.push({message:`Git: ${e.slice(0,100)}`,timeout:r}),this.display()}display(){this.messages.length>0&&!this.currentMessage?(this.currentMessage=this.messages.shift(),this.statusBarEl.addClass(this.base+"message"),this.statusBarEl.ariaLabel="",this.statusBarEl.setText(this.currentMessage.message),this.lastMessageTimestamp=Date.now()):this.currentMessage?Date.now()-this.lastMessageTimestamp>=this.currentMessage.timeout&&(this.currentMessage=null,this.lastMessageTimestamp=null):this.displayState()}displayState(){switch((this.statusBarEl.getText().length>3||!this.statusBarEl.hasChildNodes())&&(this.statusBarEl.empty(),this.conflictEl=this.statusBarEl.createDiv(),this.conflictEl.setAttribute("data-tooltip-position","top"),this.conflictEl.style.float="left",this.pausedEl=this.statusBarEl.createDiv(),this.pausedEl.setAttribute("data-tooltip-position","top"),this.pausedEl.style.float="left",this.iconEl=this.statusBarEl.createDiv(),this.iconEl.style.float="left",this.textEl=this.statusBarEl.createDiv(),this.textEl.style.float="right",this.textEl.style.marginLeft="5px"),this.plugin.localStorage.getConflict()?((0,en.setIcon)(this.conflictEl,"alert-circle"),this.conflictEl.ariaLabel="You have merge conflicts. Resolve them and commit afterwards.",this.conflictEl.style.marginRight="5px",this.conflictEl.addClass(this.base+"conflict")):(this.conflictEl.empty(),this.conflictEl.style.marginRight=""),this.plugin.localStorage.getPausedAutomatics()?((0,en.setIcon)(this.pausedEl,"pause-circle"),this.pausedEl.ariaLabel="Automatic routines are currently paused.",this.pausedEl.style.marginRight="5px",this.pausedEl.addClass(this.base+"paused")):(this.pausedEl.empty(),this.pausedEl.style.marginRight=""),this.plugin.state.gitAction){case 0:this.displayFromNow();break;case 1:this.statusBarEl.ariaLabel="Checking repository status...",(0,en.setIcon)(this.iconEl,"refresh-cw"),this.statusBarEl.addClass(this.base+"status");break;case 3:this.statusBarEl.ariaLabel="Adding files...",(0,en.setIcon)(this.iconEl,"archive"),this.statusBarEl.addClass(this.base+"add");break;case 4:this.statusBarEl.ariaLabel="Committing changes...",(0,en.setIcon)(this.iconEl,"git-commit"),this.statusBarEl.addClass(this.base+"commit");break;case 5:this.statusBarEl.ariaLabel="Pushing changes...",(0,en.setIcon)(this.iconEl,"upload"),this.statusBarEl.addClass(this.base+"push");break;case 2:this.statusBarEl.ariaLabel="Pulling changes...",(0,en.setIcon)(this.iconEl,"download"),this.statusBarEl.addClass(this.base+"pull");break;default:this.statusBarEl.ariaLabel="Failed on initialization!",(0,en.setIcon)(this.iconEl,"alert-triangle"),this.statusBarEl.addClass(this.base+"failed-init");break}}displayFromNow(){var n;let e=this.lastCommitTimestamp,r=this.plugin.state.offlineMode;if(e){let i=(0,en.moment)(e).fromNow();this.statusBarEl.ariaLabel=`${r?"Offline: ":""}Last Commit: ${i}`,(n=this.unPushedCommits)!=null&&n&&(this.statusBarEl.ariaLabel+=` +(${this.unPushedCommits} unpushed commits)`)}else this.statusBarEl.ariaLabel=r?"Git is offline":"Git is ready";r?(0,en.setIcon)(this.iconEl,"globe"):(0,en.setIcon)(this.iconEl,"check"),this.plugin.settings.changedFilesInStatusBar&&this.plugin.cachedStatus&&this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()),this.statusBarEl.addClass(this.base+"idle")}async refreshCommitTimestamp(){this.lastCommitTimestamp=await this.plugin.gitManager.getLastCommitTime(),this.unPushedCommits=await this.plugin.gitManager.getUnpushedCommits()}remove(){this.statusBarEl.remove()}};p();var up=require("obsidian"),cp=class extends up.SuggestModal{constructor(r){super(r.app);this.plugin=r;this.resolve=null;this.setPlaceholder("Type your message and select optional the version with the added date.")}openAndGetResult(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}getSuggestions(r){let n=(0,up.moment)().format(this.plugin.settings.commitDateFormat);return r==""&&(r="..."),[r,`${n}: ${r}`,`${r}: ${n}`]}renderSuggestion(r,n){n.innerText=r}onChooseSuggestion(r,n){this.resolve&&this.resolve(r)}};p();var $F=require("obsidian"),Gu=class{constructor(e){this.plugin=e}saveLastAuto(e,r){r==="backup"?this.plugin.localStorage.setLastAutoBackup(e.toString()):r==="pull"?this.plugin.localStorage.setLastAutoPull(e.toString()):r==="push"&&this.plugin.localStorage.setLastAutoPush(e.toString())}loadLastAuto(){var e,r,n;return{backup:new Date((e=this.plugin.localStorage.getLastAutoBackup())!=null?e:""),pull:new Date((r=this.plugin.localStorage.getLastAutoPull())!=null?r:""),push:new Date((n=this.plugin.localStorage.getLastAutoPush())!=null?n:"")}}async init(){await this.setUpAutoCommitAndSync();let e=this.loadLastAuto();if(this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0){let r=this.diff(this.plugin.settings.autoPushInterval,e.push);this.startAutoPush(r)}if(this.plugin.settings.autoPullInterval>0){let r=this.diff(this.plugin.settings.autoPullInterval,e.pull);this.startAutoPull(r)}}unload(){this.clearAutoPull(),this.clearAutoPush(),this.clearAutoCommitAndSync()}reload(...e){this.plugin.localStorage.getPausedAutomatics()||(e.contains("commit")&&(this.clearAutoCommitAndSync(),this.plugin.settings.autoSaveInterval>0&&this.startAutoCommitAndSync(this.plugin.settings.autoSaveInterval)),e.contains("push")&&(this.clearAutoPush(),this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0&&this.startAutoPush(this.plugin.settings.autoPushInterval)),e.contains("pull")&&(this.clearAutoPull(),this.plugin.settings.autoPullInterval>0&&this.startAutoPull(this.plugin.settings.autoPullInterval)))}async setUpAutoCommitAndSync(){if(this.plugin.settings.setLastSaveToLastCommit){this.clearAutoCommitAndSync();let e=await this.plugin.gitManager.getLastCommitTime();e&&this.saveLastAuto(e,"backup")}if(!this.timeoutIDCommitAndSync&&!this.plugin.autoCommitDebouncer){let e=this.loadLastAuto();if(this.plugin.settings.autoSaveInterval>0){let r=this.diff(this.plugin.settings.autoSaveInterval,e.backup);this.startAutoCommitAndSync(r)}}}startAutoCommitAndSync(e){let r=(e!=null?e:this.plugin.settings.autoSaveInterval)*6e4;this.plugin.settings.autoBackupAfterFileChange?e===0?this.doAutoCommitAndSync():this.plugin.autoCommitDebouncer=(0,$F.debounce)(()=>this.doAutoCommitAndSync(),r,!0):(r>2147483647&&(r=2147483647),this.timeoutIDCommitAndSync=window.setTimeout(()=>this.doAutoCommitAndSync(),r))}doAutoCommitAndSync(){this.plugin.promiseQueue.addTask(async()=>{if(this.plugin.settings.setLastSaveToLastCommit){let r=await this.plugin.gitManager.getLastCommitTime();if(r){this.saveLastAuto(r,"backup");let n=this.diff(this.plugin.settings.autoSaveInterval,r);if(n>0)return this.startAutoCommitAndSync(n),!1}}let e=this.plugin.settings.autoCommitOnlyStaged;return this.plugin.settings.differentIntervalCommitAndPush?await this.plugin.commit({fromAuto:!0,onlyStaged:e}):await this.plugin.commitAndSync({fromAutoBackup:!0,onlyStaged:e}),!0},e=>{e!==!1&&(this.saveLastAuto(new Date,"backup"),this.startAutoCommitAndSync())})}startAutoPull(e){let r=(e!=null?e:this.plugin.settings.autoPullInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPull=window.setTimeout(()=>this.doAutoPull(),r)}doAutoPull(){this.plugin.promiseQueue.addTask(()=>this.plugin.pullChangesFromRemote(),()=>{this.saveLastAuto(new Date,"pull"),this.startAutoPull()})}startAutoPush(e){let r=(e!=null?e:this.plugin.settings.autoPushInterval)*6e4;r>2147483647&&(r=2147483647),this.timeoutIDPush=window.setTimeout(()=>this.doAutoPush(),r)}doAutoPush(){this.plugin.promiseQueue.addTask(()=>this.plugin.push(),()=>{this.saveLastAuto(new Date,"push"),this.startAutoPush()})}clearAutoCommitAndSync(){var r;let e=!1;return this.timeoutIDCommitAndSync&&(window.clearTimeout(this.timeoutIDCommitAndSync),this.timeoutIDCommitAndSync=void 0,e=!0),this.plugin.autoCommitDebouncer&&((r=this.plugin.autoCommitDebouncer)==null||r.cancel(),this.plugin.autoCommitDebouncer=void 0,e=!0),e}clearAutoPull(){return this.timeoutIDPull?(window.clearTimeout(this.timeoutIDPull),this.timeoutIDPull=void 0,!0):!1}clearAutoPush(){return this.timeoutIDPush?(window.clearTimeout(this.timeoutIDPush),this.timeoutIDPush=void 0,!0):!1}diff(e,r){let i=e-Math.round((new Date().getTime()-r.getTime())/1e3/60);return Math.max(0,i)}};p();var jn=require("obsidian");p();var ju=require("obsidian");async function IF(t,e,r){let n=await OF(e,r);if(n.result==="failure"){new ju.Notice(n.reason);return}let{isGitHub:i,branch:s,repo:a,user:o,filePath:l}=n;if(i){let c=t.getCursor("from").line+1,u=t.getCursor("to").line+1;c===u?window.open(`https://github.com/${o}/${a}/blob/${s}/${l}?plain=1#L${c}`):window.open(`https://github.com/${o}/${a}/blob/${s}/${l}?plain=1#L${c}-L${u}`)}else new ju.Notice("It seems like you are not using GitHub")}async function FF(t,e){let r=await OF(t,e);if(r.result==="failure"){new ju.Notice(r.reason);return}let{isGitHub:n,branch:i,repo:s,user:a,filePath:o}=r;n?window.open(`https://github.com/${a}/${s}/commits/${i}/${o}`):new ju.Notice("It seems like you are not using GitHub")}async function OF(t,e){let r=await e.branchInfo(),n=r.tracking,i=r.current,s,a=e.getRelativeRepoPath(t.path);if(e instanceof Se){let l=await e.getSubmoduleOfFile(e.getRelativeRepoPath(t.path));if(l){a=l.relativeFilepath;let c=await e.git.cwd({path:l.submodule,root:!1}).status();if(n=c.tracking||void 0,i=c.current||void 0,n){let u=n.substring(0,n.indexOf("/")),f=await e.git.cwd({path:l.submodule,root:!1}).getConfig(`remote.${u}.url`,"local");if(f.value!=null)s=f.value;else return{result:"failure",reason:"Failed to get remote url of submodule"}}}}if(n==null)return{result:"failure",reason:"Remote branch is not configured"};if(i==null)return{result:"failure",reason:"Failed to get current branch name"};if(s==null){let l=n.substring(0,n.indexOf("/"));if(s=await e.getConfig(`remote.${l}.url`),s==null)return{result:"failure",reason:"Failed to get remote url"}}let o=s.match(/(?:^https:\/\/github\.com\/(.+)\/(.+?)(?:\.git)?$)|(?:^[a-zA-Z]+@github\.com:(.+)\/(.+?)(?:\.git)?$)/);if(o==null)return{result:"failure",reason:"Could not parse remote url"};{let[l,c,u,f,d]=o;return{result:"success",isGitHub:!!l,repo:u||d,user:c||f,branch:i,filePath:a}}}p();var MF=require("obsidian"),fp=class extends MF.FuzzySuggestModal{constructor(e,r){super(e.app),this.plugin=e,this.changedFiles=r,this.setPlaceholder("Not supported files will be opened by default app!")}getItems(){return this.changedFiles}getItemText(e){if(e.index=="U"&&e.workingDir=="U")return`Untracked | ${e.vaultPath}`;let r="",n="";return e.workingDir!=" "&&(r=`Working Dir: ${e.workingDir} `),e.index!=" "&&(n=`Index: ${e.index}`),`${r}${n} | ${e.vaultPath}`}onChooseItem(e,r){this.plugin.app.metadataCache.getFirstLinkpathDest(e.vaultPath,"")==null?this.app.openWithDefaultApp(e.vaultPath):this.plugin.app.workspace.openLinkText(e.vaultPath,"/")}};p();var DF=require("obsidian"),dp=class extends DF.Modal{constructor(r,n){super(r);this.content=n;this.resolve=null}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onOpen(){let{contentEl:r,titleEl:n}=this;n.setText("Edit .gitignore");let i=r.createDiv(),s=i.createEl("textarea",{text:this.content,cls:["obsidian-git-textarea"],attr:{rows:10,cols:30,wrap:"off"}});i.createEl("button",{cls:["mod-cta","obsidian-git-center-button"],text:"Save"}).addEventListener("click",()=>{this.resolve(s.value),this.close()})}onClose(){let{contentEl:r}=this;r.empty(),this.resolve&&this.resolve(void 0)}};p();var Ju=require("@codemirror/state"),Cp=require("@codemirror/view");p();var Nl=require("@codemirror/state");p();var Nt=class t{static createHunk(e,r,n,i){return{removed:{start:e,count:r,lines:[]},added:{start:n,count:i,lines:[]},head:`@@ -${e}${r>0?`,${r}`:""} +${n}${i>0?`,${i}`:""} @@`,vend:n+Math.max(i-1,0),type:i===0?"delete":r===0?"add":"change"}}static createPartialHunk(e,r,n){let i=r,s=n-r+1,a=0;for(let o of e){let l=o.added.count-o.removed.count,c=0;if(o.added.start>=r&&o.vend<=n)c=l;else{let u=Math.max(0,n+1-(o.added.start+o.removed.count)),f=Math.max(0,r-(o.added.start+o.removed.count));o.added.start>=r&&o.added.start<=n?c=u:o.vend>=r&&o.vend<=n?(c=l-f,i=i-f):o.added.start<=r&&o.vend>=n?(c=u-f,i=i-f):a++,r>o.vend&&(i=i-l)}s=s-c}if(a!==e.length)return s===0&&(i=i-1),this.createHunk(i,s,r,n-r+1)}patchLines(e,r=!1){let n=[];for(let i of e.removed.lines)n.push("-"+i);for(let i of e.added.lines)n.push("+"+i);return r?n.map(i=>i.replace(/\r$/,"")):n}static parseDiffLine(e){let i=e.split("@@")[1].trim().split(" "),s=i[0].substring(1).split(","),a=i[1].substring(1).split(","),o=this.createHunk(parseInt(s[0]),parseInt(s[1]||"1"),parseInt(a[0]),parseInt(a[1]||"1"));return o.head=e,o}static changeEnd(e){return e.added.count===0?e.added.start:e.removed.count===0?e.added.start+e.added.count-1:e.added.start+Math.min(e.added.count,e.removed.count)-1}static calcSigns(e,r,n,i=1,s=1/0,a){if(a&&r.type!=="add")return console.error(`Invalid hunk with untracked=${a} hunk="${r.head}"`),[];i=Math.max(1,i);let{start:o,added:l,removed:c}={start:r.added.start,added:r.added.count,removed:r.removed.count},u=this.changeEnd(r),f=r.type==="delete"&&(o===0||e&&this.changeEnd(e)===o)&&(!n||n.added.start!==o+1);f&&i===1&&(i=0);let d=[];for(let h=Math.max(o,i);h<=Math.min(u,s);h++){let m=r.type==="change"&&(c>l&&h===u||e&&e.added.start===0);d.push({type:f?"topdelete":m?"changedelete":a?"untracked":r.type,count:h===o?r.type==="add"?l:c:void 0,lnum:h+(f?1:0)})}if(r.type==="change"&&l>c&&r.vend>=i&&u<=s)for(let h=Math.max(u,i);h<=Math.min(r.vend,s);h++)d.push({type:"add",count:h===r.vend?l-c:void 0,lnum:h});return d}static createPatch(e,r,n,i=!1){let s=[`diff --git a/${e} b/${e}`,`index 000000..000000 ${n}`,`--- a/${e}`,`+++ b/${e}`],a=0;r=structuredClone(r);for(let o of r){let l=o.removed.start,c=o.removed.count,u=o.added.count;o.type==="add"&&(l=l+1);let f=o.removed.lines,d=o.added.lines;i&&([c,u]=[u,c],[f,d]=[d,f]),s.push(`@@ -${l},${c} +${l+a},${u} @@`);for(let h of f)s.push("-"+h);(i?o.added:o.removed).no_nl_at_eof&&s.push("\\ No newline at end of file");for(let h of d)s.push("+"+h);(i?o.removed:o.added).no_nl_at_eof&&s.push("\\ No newline at end of file"),o.removed.start=l+a,a=a+(u-c)}return s}getSummary(e){let r={added:0,changed:0,removed:0};for(let n of e)if(n.type==="add")r.added+=n.added.count;else if(n.type==="delete")r.removed+=n.removed.count;else if(n.type==="change"){let i=n.added.count,s=n.removed.count,a=Math.min(i,s);r.changed+=a,r.added+=i-a,r.removed+=s-a}return r}static findHunk(e,r){if(!r)return[void 0,void 0];for(let n=0;n=e)return[i,n]}return[void 0,void 0]}static findNearestHunk(e,r,n,i){if(r.length!==0){if(n==="first")return 0;if(n==="last")return r.length-1;if(n==="next"){if(r[0].added.start>e)return 0;for(let s=r.length-1;s>=0;s--)if(r[s].added.start<=e){if(s+1e)return s+1;if(i)return 0}}else if(n==="prev"){if(Math.max(r[r.length-1].vend)0&&Math.max(r[s-1].vend,1)l.added.start?i++:o.added.starta.map(v=>g.replace(/&/,v))).reduce((g,v)=>g.concat(v)),m,l);else if(m&&typeof m=="object"){if(!f)throw new RangeError("The value of a property ("+h+") should be a primitive value.");s(i(h),m,u,d)}else m!=null&&u.push(h.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+m+";")}(u.length||d)&&l.push((n&&!f&&!c?a.map(n):a).join(", ")+" {"+u.join(" ")+"}")}for(let a in e)s(i(a),e[a],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=NF[LF]||1;return NF[LF]=e+1,ny+e.toString(36)}static mount(e,r,n){let i=e[iy],s=n&&n.nonce;i?s&&i.setNonce(s):i=new sy(e,s),i.mount(Array.isArray(r)?r:[r],e)}},BF=new Map,sy=class{constructor(e,r){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let s=BF.get(n);if(s)return e[iy]=s;this.sheet=new i.CSSStyleSheet,BF.set(n,this)}else this.styleTag=n.createElement("style"),r&&this.styleTag.setAttribute("nonce",r);this.modules=[],e[iy]=this}mount(e,r){let n=this.sheet,i=0,s=0;for(let a=0;a-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,o),n)for(let c=0;cc){let f=t.slice(e,r).indexOf(n.slice(i,s));if(f>-1)return[new bt(e,e+f,i,i),new bt(e+f+c,r,s,s)]}else if(c>l){let f=n.slice(i,s).indexOf(t.slice(e,r));if(f>-1)return[new bt(e,e,i,i+f),new bt(r,r,i+f+l,s)]}if(l==1||c==1)return[new bt(e,r,i,s)];let u=sO(t,e,r,n,i,s);if(u){let[f,d,h]=u;return Ba(t,e,f,n,i,d).concat(Ba(t,f+h,r,n,d+h,s))}return Wz(t,e,r,n,i,s)}var qu=1e9,Wu=0,dy=!1;function Wz(t,e,r,n,i,s){let a=r-e,o=s-i;if(qu<1e9&&Math.min(a,o)>qu*16||Wu>0&&Date.now()>Wu)return Math.min(a,o)>qu*64?[new bt(e,r,i,s)]:HF(t,e,r,n,i,s);let l=Math.ceil((a+o)/2);ay.reset(l),oy.reset(l);let c=(h,m)=>t.charCodeAt(e+h)==n.charCodeAt(i+m),u=(h,m)=>t.charCodeAt(r-h-1)==n.charCodeAt(s-m-1),f=(a-o)%2!=0?oy:null,d=f?null:ay;for(let h=0;hqu||Wu>0&&!(h&63)&&Date.now()>Wu)return HF(t,e,r,n,i,s);let m=ay.advance(h,a,o,l,f,!1,c)||oy.advance(h,a,o,l,d,!0,u);if(m)return zz(t,e,r,e+m[0],n,i,s,i+m[1])}return[new bt(e,r,i,s)]}var wp=class{constructor(){this.vec=[]}reset(e){this.len=e<<1;for(let r=0;rr)this.end+=2;else if(f>n)this.start+=2;else if(s){let d=i+(r-n)-l;if(d>=0&&d=r-u)return[h,i+h-d]}else{let h=r-s.vec[d];if(u>=h)return[u,f]}}}return null}},ay=new wp,oy=new wp;function zz(t,e,r,n,i,s,a,o){let l=!1;return!Ll(t,n)&&++n==r&&(l=!0),!Ll(i,o)&&++o==a&&(l=!0),l?[new bt(e,r,s,a)]:Ba(t,e,n,i,s,o).concat(Ba(t,n,r,i,o,a))}function iO(t,e){let r=1,n=Math.min(t,e);for(;rr||u>s||t.slice(o,c)!=n.slice(l,u)){if(a==1)return o-e-(Ll(t,o)?0:1);a=a>>1}else{if(c==r||u==s)return c-e;o=c,l=u}}}function py(t,e,r,n,i,s){if(e==r||i==s||t.charCodeAt(r-1)!=n.charCodeAt(s-1))return 0;let a=iO(r-e,s-i);for(let o=r,l=s;;){let c=o-a,u=l-a;if(c>1}else{if(c==e||u==i)return r-c;o=c,l=u}}}function ly(t,e,r,n,i,s,a,o){let l=n.slice(i,s),c=null;for(;;){if(c||a=r)break;let d=t.slice(u,f),h=-1;for(;(h=l.indexOf(d,h+1))!=-1;){let m=hy(t,f,r,n,i+h+d.length,s),g=py(t,e,u,n,i,i+h),v=d.length+m+g;(!c||c[2]>1}}function sO(t,e,r,n,i,s){let a=r-e,o=s-i;if(ai.fromA-e&&n.toB>i.fromB-e&&(t[r-1]=new bt(n.fromA,i.toA,n.fromB,i.toB),t.splice(r--,1))}}function Vz(t,e,r){for(;;){aO(r,1);let n=!1;for(let i=0;i3||o>3){let l=i==t.length-1?e.length:t[i+1].fromA,c=s.fromA-n,u=l-s.toA,f=GF(e,s.fromA,c),d=UF(e,s.toA,u),h=s.fromA-f,m=d-s.toA;if((!a||!o)&&h&&m){let g=Math.max(a,o),[v,w,b]=a?[e,s.fromA,s.toA]:[r,s.fromB,s.toB];g>h&&e.slice(f,s.fromA)==v.slice(b-h,b)?(s=t[i]=new bt(f,f+a,s.fromB-h,s.toB-h),f=s.fromA,d=UF(e,s.toA,l-s.toA)):g>m&&e.slice(s.toA,d)==v.slice(w,w+m)&&(s=t[i]=new bt(d-a,d,s.fromB+m,s.toB+m),d=s.toA,f=GF(e,s.fromA,s.fromA-n)),h=s.fromA-f,m=d-s.toA}if(h||m)s=t[i]=new bt(s.fromA-h,s.toA+m,s.fromB-h,s.toB+m);else if(a){if(!o){let g=qF(e,s.fromA,s.toA),v,w=g<0?-1:jF(e,s.toA,s.fromA);g>-1&&(v=g-s.fromA)<=u&&e.slice(s.fromA,g)==e.slice(s.toA,s.toA+v)?s=t[i]=s.offset(v):w>-1&&(v=s.toA-w)<=c&&e.slice(s.fromA-v,s.fromA)==e.slice(w,s.toA)&&(s=t[i]=s.offset(-v))}}else{let g=qF(r,s.fromB,s.toB),v,w=g<0?-1:jF(r,s.toB,s.fromB);g>-1&&(v=g-s.fromB)<=u&&r.slice(s.fromB,g)==r.slice(s.toB,s.toB+v)?s=t[i]=s.offset(v):w>-1&&(v=s.toB-w)<=c&&r.slice(s.fromB-v,s.fromB)==r.slice(w,s.toB)&&(s=t[i]=s.offset(-v))}}n=s.toA}return aO(t,3),t}var Na;try{Na=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch(t){}function oO(t){return t>48&&t<58||t>64&&t<91||t>96&&t<123}function lO(t,e){if(e==t.length)return 0;let r=t.charCodeAt(e);return r<192?oO(r)?1:0:Na?!fO(r)||e==t.length-1?Na.test(String.fromCharCode(r))?1:0:Na.test(t.slice(e,e+2))?2:0:0}function cO(t,e){if(!e)return 0;let r=t.charCodeAt(e-1);return r<192?oO(r)?1:0:Na?!dO(r)||e==1?Na.test(String.fromCharCode(r))?1:0:Na.test(t.slice(e-2,e))?2:0:0}var uO=8;function UF(t,e,r){if(e==t.length||!cO(t,e))return e;for(let n=e,i=e+r,s=0;si)return n;n+=a}return e}function GF(t,e,r){if(!e||!lO(t,e))return e;for(let n=e,i=e-r,s=0;st>=55296&&t<=56319,dO=t=>t>=56320&&t<=57343;function Ll(t,e){return!e||e==t.length||!fO(t.charCodeAt(e-1))||!dO(t.charCodeAt(e))}function Xz(t,e,r){var n;let i=r==null?void 0:r.override;return i?i(t,e):(qu=((n=r==null?void 0:r.scanLimit)!==null&&n!==void 0?n:1e9)>>1,Wu=r!=null&&r.timeout?Date.now()+r.timeout:0,dy=!1,Vz(t,e,Ba(t,0,t.length,e,0,e.length)))}function hO(){return!dy}function pO(t,e,r){return Yz(Xz(t,e,r),t,e)}var Un=$e.Facet.define({combine:t=>t[0]}),cy=$e.StateEffect.define(),Zz=$e.Facet.define(),Ha=$e.StateField.define({create(t){return null},update(t,e){for(let r of e.effects)r.is(cy)&&(t=r.value);for(let r of e.state.facet(Zz))t=r(t,e);return t}});function my(t){let e=t.field(Ha,!1);if(!e)return null;let r=t.facet(Un);return{chunks:e,side:r?r.side:null}}var ts=class t{constructor(e,r,n,i,s,a=!0){this.changes=e,this.fromA=r,this.toA=n,this.fromB=i,this.toB=s,this.precise=a}offset(e,r){return e||r?new t(this.changes,this.fromA+e,this.toA+e,this.fromB+r,this.toB+r,this.precise):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(e,r,n){let i=pO(e.toString(),r.toString(),n);return mO(i,e,r,0,0,hO())}static updateA(e,r,n,i,s){return XF(YF(e,i,!0,n.length),e,r,n,s)}static updateB(e,r,n,i,s){return XF(YF(e,i,!1,r.length),e,r,n,s)}};function WF(t,e,r,n){let i=r.lineAt(t),s=n.lineAt(e);return i.to==t&&s.to==e&&tf+1&&v>d+1)break;h.push(m.offset(-c+n,-u+i)),[f,d]=zF(m.toA+n,m.toB+i,e,r),o++}a.push(new ts(h,c,Math.max(c,f),u,Math.max(u,d),s))}return a}var pp=1e3;function VF(t,e,r,n){let i=0,s=t.length;for(;;){if(i==s){let u=0,f=0;i&&({toA:u,toB:f}=t[i-1]);let d=e-(r?u:f);return[u+d,f+d]}let a=i+s>>1,o=t[a],[l,c]=r?[o.fromA,o.toA]:[o.fromB,o.toB];if(l>e)s=a;else if(c<=e)i=a+1;else return n?[o.fromA,o.fromB]:[o.toA,o.toB]}}function YF(t,e,r,n){let i=[];return e.iterChangedRanges((s,a,o,l)=>{let c=0,u=r?e.length:n,f=0,d=r?n:e.length;s>pp&&([c,f]=VF(t,s-pp,r,!0)),a=c?i[i.length-1]={fromA:m.fromA,fromB:m.fromB,toA:u,toB:d,diffA:m.diffA+g,diffB:m.diffB+v}:i.push({fromA:c,toA:u,fromB:f,toB:d,diffA:g,diffB:v})}),i}function XF(t,e,r,n,i){if(!t.length)return e;let s=[];for(let a=0,o=0,l=0,c=0;;a++){let u=a==t.length?null:t[a],f=u?u.fromA+o:r.length,d=u?u.fromB+l:n.length;for(;cf||v.endB+l>d)break;s.push(v.offset(o,l)),c++}if(!u)break;let h=u.toA+o+u.diffA,m=u.toB+l+u.diffB,g=pO(r.sliceString(f,h),n.sliceString(d,m),i);for(let v of mO(g,r,n,f,d,hO()))s.push(v);for(o+=u.diffA,l+=u.diffB;ch&&v.fromB+l>m)break;c++}}return s}var Kz={scanLimit:500},gO=Oe.ViewPlugin.fromClass(class{constructor(t){({deco:this.deco,gutter:this.gutter}=QF(t))}update(t){(t.docChanged||t.viewportChanged||Qz(t.startState,t.state)||Jz(t.startState,t.state))&&({deco:this.deco,gutter:this.gutter}=QF(t.view))}},{decorations:t=>t.deco}),mp=$e.Prec.low((0,Oe.gutter)({class:"cm-changeGutter",markers:t=>{var e;return((e=t.plugin(gO))===null||e===void 0?void 0:e.gutter)||$e.RangeSet.empty}}));function Qz(t,e){return t.field(Ha,!1)!=e.field(Ha,!1)}function Jz(t,e){return t.facet(Un)!=e.facet(Un)}var ZF=Oe.Decoration.line({class:"cm-changedLine"}),eV=Oe.Decoration.mark({class:"cm-changedText"}),tV=Oe.Decoration.mark({tagName:"ins",class:"cm-insertedLine"}),rV=Oe.Decoration.mark({tagName:"del",class:"cm-deletedLine"}),KF=new class extends Oe.GutterMarker{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function nV(t,e,r,n,i,s){let a=r?t.fromA:t.fromB,o=r?t.toA:t.toB,l=0;if(a!=o){i.add(a,a,ZF),i.add(a,o,r?rV:tV),s&&s.add(a,a,KF);for(let c=e.iterRange(a,o-1),u=a;!c.next().done;){if(c.lineBreak){u++,i.add(u,u,ZF),s&&s.add(u,u,KF);continue}let f=u+c.value.length;if(n)for(;l=u)break;(a?f.toA:f.toB)>c&&(!s||!s(t.state,f,o,l))&&nV(f,t.state.doc,a,n,o,l)}return{deco:o.finish(),gutter:l&&l.finish()}}var Dl=class extends Oe.WidgetType{constructor(e){super(),this.height=e}eq(e){return this.height==e.height}toDOM(){let e=document.createElement("div");return e.className="cm-mergeSpacer",e.style.height=this.height+"px",e}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},yp=$e.StateEffect.define({map:(t,e)=>t.map(e)}),zu=$e.StateField.define({create:()=>Oe.Decoration.none,update:(t,e)=>{for(let r of e.effects)if(r.is(yp))return r.value;return t.map(e.changes)},provide:t=>Oe.EditorView.decorations.from(t)}),gp=.01;function JF(t,e){if(t.size!=e.size)return!1;let r=t.iter(),n=e.iter();for(;r.value;){if(r.from!=n.from||Math.abs(r.value.spec.widget.height-n.value.spec.widget.height)>1)return!1;r.next(),n.next()}return!0}function iV(t,e,r){let n=new $e.RangeSetBuilder,i=new $e.RangeSetBuilder,s=t.state.field(zu).iter(),a=e.state.field(zu).iter(),o=0,l=0,c=0,u=0,f=t.viewport,d=e.viewport;for(let v=0;;v++){let w=vgp&&(u+=A,i.add(l,l,Oe.Decoration.widget({widget:new Dl(A),block:!0,side:-1})))}if(b>o+1e3&&of.from&&ld.from){let x=Math.min(f.from-o,d.from-l);o+=x,l+=x,v--}else if(w)o=w.toA,l=w.toB;else break;for(;s.value&&s.fromgp&&i.add(e.state.doc.length,e.state.doc.length,Oe.Decoration.widget({widget:new Dl(h),block:!0,side:1}));let m=n.finish(),g=i.finish();JF(m,t.state.field(zu))||t.dispatch({effects:yp.of(m)}),JF(g,e.state.field(zu))||e.dispatch({effects:yp.of(g)})}var uy=$e.StateEffect.define({map:(t,e)=>e.mapPos(t)});var fy=class extends Oe.WidgetType{constructor(e){super(),this.lines=e}eq(e){return this.lines==e.lines}toDOM(e){let r=document.createElement("div");return r.className="cm-collapsedLines",r.textContent=e.state.phrase("$ unchanged lines",this.lines),r.addEventListener("click",n=>{let i=e.posAtDOM(n.target);e.dispatch({effects:uy.of(i)});let{side:s,sibling:a}=e.state.facet(Un);a&&a().dispatch({effects:uy.of(sV(i,e.state.field(Ha),s=="a"))})}),r}ignoreEvent(e){return e instanceof MouseEvent}get estimatedHeight(){return 27}get type(){return"collapsed-unchanged-code"}};function sV(t,e,r){let n=0,i=0;for(let s=0;;s++){let a=s=t)return i+(t-n);[n,i]=r?[a.toA,a.toB]:[a.toB,a.toA]}}var aV=$e.StateField.define({create(t){return Oe.Decoration.none},update(t,e){t=t.map(e.changes);for(let r of e.effects)r.is(uy)&&(t=t.update({filter:n=>n!=r.value}));return t},provide:t=>Oe.EditorView.decorations.from(t)});function eO({margin:t=3,minSize:e=4}){return aV.init(r=>oV(r,t,e))}function oV(t,e,r){let n=new $e.RangeSetBuilder,i=t.facet(Un).side=="a",s=t.field(Ha),a=1;for(let o=0;;o++){let l=o=r&&n.add(t.doc.line(c).from,t.doc.line(u).to,Oe.Decoration.replace({widget:new fy(f),block:!0})),!l)break;a=t.doc.lineAt(Math.min(t.doc.length,i?l.toA:l.toB)).number}return n.finish()}var lV=Oe.EditorView.styleModule.of(new hp({".cm-mergeView":{overflowY:"auto"},".cm-mergeViewEditors":{display:"flex",alignItems:"stretch"},".cm-mergeViewEditor":{flexGrow:1,flexBasis:0,overflow:"hidden"},".cm-merge-revert":{width:"1.6em",flexGrow:0,flexShrink:0,position:"relative"},".cm-merge-revert button":{position:"absolute",display:"block",width:"100%",boxSizing:"border-box",textAlign:"center",background:"none",border:"none",font:"inherit",cursor:"pointer"}})),cV=Oe.EditorView.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine, .cm-inlineChangedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb22aa, #22bb22aa) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff88aa, #88ff88aa) bottom/100% 2px no-repeat"},"&.cm-merge-b .cm-deletedText":{background:"#ff000033"},".cm-insertedLine, .cm-deletedLine, .cm-deletedLine del":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer","&:before":{content:'"\u299A"',marginInlineEnd:"7px"},"&:after":{content:'"\u299A"',marginInlineStart:"7px"}},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"},".cm-inlineChangedLineGutter":{background:"#75d"}}),tO=new $e.Compartment,vp=new $e.Compartment,bp=class{constructor(e){this.revertDOM=null,this.revertToA=!1,this.revertToLeft=!1,this.measuring=-1,this.diffConf=e.diffConfig||Kz;let r=[$e.Prec.low(gO),cV,lV,zu,Oe.EditorView.updateListener.of(f=>{this.measuring<0&&(f.heightChanged||f.viewportChanged)&&!f.transactions.some(d=>d.effects.some(h=>h.is(yp)))&&this.measure()})],n=[Un.of({side:"a",sibling:()=>this.b,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&n.push(mp);let i=$e.EditorState.create({doc:e.a.doc,selection:e.a.selection,extensions:[e.a.extensions||[],Oe.EditorView.editorAttributes.of({class:"cm-merge-a"}),vp.of(n),r]}),s=[Un.of({side:"b",sibling:()=>this.a,highlightChanges:e.highlightChanges!==!1,markGutter:e.gutter!==!1})];e.gutter!==!1&&s.push(mp);let a=$e.EditorState.create({doc:e.b.doc,selection:e.b.selection,extensions:[e.b.extensions||[],Oe.EditorView.editorAttributes.of({class:"cm-merge-b"}),vp.of(s),r]});this.chunks=ts.build(i.doc,a.doc,this.diffConf);let o=[Ha.init(()=>this.chunks),tO.of(e.collapseUnchanged?eO(e.collapseUnchanged):[])];i=i.update({effects:$e.StateEffect.appendConfig.of(o)}).state,a=a.update({effects:$e.StateEffect.appendConfig.of(o)}).state,this.dom=document.createElement("div"),this.dom.className="cm-mergeView",this.editorDOM=this.dom.appendChild(document.createElement("div")),this.editorDOM.className="cm-mergeViewEditors";let l=e.orientation||"a-b",c=document.createElement("div");c.className="cm-mergeViewEditor";let u=document.createElement("div");u.className="cm-mergeViewEditor",this.editorDOM.appendChild(l=="a-b"?c:u),this.editorDOM.appendChild(l=="a-b"?u:c),this.a=new Oe.EditorView({state:i,parent:c,root:e.root,dispatchTransactions:f=>this.dispatch(f,this.a)}),this.b=new Oe.EditorView({state:a,parent:u,root:e.root,dispatchTransactions:f=>this.dispatch(f,this.b)}),this.setupRevertControls(!!e.revertControls,e.revertControls=="b-to-a",e.renderRevertControl),e.parent&&e.parent.appendChild(this.dom),this.scheduleMeasure()}dispatch(e,r){if(e.some(n=>n.docChanged)){let n=e[e.length-1],i=e.reduce((a,o)=>a.compose(o.changes),$e.ChangeSet.empty(e[0].startState.doc.length));this.chunks=r==this.a?ts.updateA(this.chunks,n.newDoc,this.b.state.doc,i,this.diffConf):ts.updateB(this.chunks,this.a.state.doc,n.newDoc,i,this.diffConf),r.update([...e,n.state.update({effects:cy.of(this.chunks)})]);let s=r==this.a?this.b:this.a;s.update([s.state.update({effects:cy.of(this.chunks)})]),this.scheduleMeasure()}else r.update(e)}reconfigure(e){if("diffConfig"in e&&(this.diffConf=e.diffConfig),"orientation"in e){let s=e.orientation!="b-a";if(s!=(this.editorDOM.firstChild==this.a.dom.parentNode)){let a=this.a.dom.parentNode,o=this.b.dom.parentNode;a.remove(),o.remove(),this.editorDOM.insertBefore(s?a:o,this.editorDOM.firstChild),this.editorDOM.appendChild(s?o:a),this.revertToLeft=!this.revertToLeft,this.revertDOM&&(this.revertDOM.textContent="")}}if("revertControls"in e||"renderRevertControl"in e){let s=!!this.revertDOM,a=this.revertToA,o=this.renderRevert;"revertControls"in e&&(s=!!e.revertControls,a=e.revertControls=="b-to-a"),"renderRevertControl"in e&&(o=e.renderRevertControl),this.setupRevertControls(s,a,o)}let r="highlightChanges"in e,n="gutter"in e,i="collapseUnchanged"in e;if(r||n||i){let s=[],a=[];if(r||n){let o=this.a.state.facet(Un),l=n?e.gutter!==!1:o.markGutter,c=r?e.highlightChanges!==!1:o.highlightChanges;s.push(vp.reconfigure([Un.of({side:"a",sibling:()=>this.b,highlightChanges:c,markGutter:l}),l?mp:[]])),a.push(vp.reconfigure([Un.of({side:"b",sibling:()=>this.a,highlightChanges:c,markGutter:l}),l?mp:[]]))}if(i){let o=tO.reconfigure(e.collapseUnchanged?eO(e.collapseUnchanged):[]);s.push(o),a.push(o)}this.a.dispatch({effects:s}),this.b.dispatch({effects:a})}this.scheduleMeasure()}setupRevertControls(e,r,n){this.revertToA=r,this.revertToLeft=this.revertToA==(this.editorDOM.firstChild==this.a.dom.parentNode),this.renderRevert=n,!e&&this.revertDOM?(this.revertDOM.remove(),this.revertDOM=null):e&&!this.revertDOM?(this.revertDOM=this.editorDOM.insertBefore(document.createElement("div"),this.editorDOM.firstChild.nextSibling),this.revertDOM.addEventListener("mousedown",i=>this.revertClicked(i)),this.revertDOM.className="cm-merge-revert"):this.revertDOM&&(this.revertDOM.textContent="")}scheduleMeasure(){if(this.measuring<0){let e=this.dom.ownerDocument.defaultView||window;this.measuring=e.requestAnimationFrame(()=>{this.measuring=-1,this.measure()})}}measure(){iV(this.a,this.b,this.chunks),this.revertDOM&&this.updateRevertButtons()}updateRevertButtons(){let e=this.revertDOM,r=e.firstChild,n=this.a.viewport,i=this.b.viewport;for(let s=0;sn.to||a.fromB>i.to)break;if(a.fromA-1&&(this.dom.ownerDocument.defaultView||window).cancelAnimationFrame(this.measuring),this.dom.remove()}};function rO(t){let e=t.nextSibling;return t.remove(),e}var gy=require("@codemirror/state");function vy(t,e,r){let n=[],i=t.split(` `),s=e.split(` -`);for(let a of r){let{oldStart:o,oldLines:l,newStart:c,newLines:u}=a,f=Nt.createHunk(o,l,c,u);if(a.oldLines>0){for(let d=o;dn.length&&n.last()!=""&&(f.removed.no_nl_at_eof=!0)}if(a.newLines>0){for(let d=c;ds.length&&s.last()!=""&&(f.added.no_nl_at_eof=!0)}i.push(f)}return i}function uy(t,e,r){let i=e.lineAt(t.fromA).number,n=t.fromA==t.toA?0:gp(e,t.endA)-i+1,s=r.lineAt(t.fromB).number,a=t.fromB==t.toB?0:gp(r,t.endB)-s+1,o={oldStart:i,oldLines:n,newStart:s,newLines:a};return o.oldLines==0&&(o.oldStart-=1),o.newLines==0&&(o.newStart-=1),o}var rO={scanLimit:1e3,timeout:200};function SV(t,e,r,i){let n=ly.Text.of(t.split(` -`)),s=ly.Text.of(e.split(` -`)),a=r&&i?es.updateB(r,n,s,i,rO):es.build(n,s,rO),o=[];for(let l=0;lh.vend&&(f=f-(h.added.count-h.removed.count)),o>h.vend&&(d=d-(h.added.count-h.removed.count));c.added.lines=u.compareText.split(` +`);for(let a of r){let{oldStart:o,oldLines:l,newStart:c,newLines:u}=a,f=Nt.createHunk(o,l,c,u);if(a.oldLines>0){for(let d=o;di.length&&i.last()!=""&&(f.removed.no_nl_at_eof=!0)}if(a.newLines>0){for(let d=c;ds.length&&s.last()!=""&&(f.added.no_nl_at_eof=!0)}n.push(f)}return n}function wy(t,e,r){let n=e.lineAt(t.fromA).number,i=t.fromA==t.toA?0:_p(e,t.endA)-n+1,s=r.lineAt(t.fromB).number,a=t.fromB==t.toB?0:_p(r,t.endB)-s+1,o={oldStart:n,oldLines:i,newStart:s,newLines:a};return o.oldLines==0&&(o.oldStart-=1),o.newLines==0&&(o.newStart-=1),o}var vO={scanLimit:1e3,timeout:200};function uV(t,e,r,n){let i=gy.Text.of(t.split(` +`)),s=gy.Text.of(e.split(` +`)),a=r&&n?ts.updateB(r,i,s,n,vO):ts.build(i,s,vO),o=[];for(let l=0;lh.vend&&(f=f-(h.added.count-h.removed.count)),o>h.vend&&(d=d-(h.added.count-h.removed.count));c.added.lines=u.compareText.split(` `).slice(f-1,d),u.compareTextHead?c.removed.lines=u.compareTextHead.split(` `).slice(c.removed.start-1,c.removed.start-1+c.removed.count):c.removed.lines=[]}else c.added.lines=e.doc.toString().split(` `).slice(a-1,o),o===e.doc.lines&&!e.doc.toString().endsWith(` `)&&(c.added.no_nl_at_eof=!0),c.removed.lines=u.compareText.split(` `).slice(c.removed.start-1,c.removed.start-1+c.removed.count),c.removed.start+c.removed.count-1===u.compareText.split(` `).length&&!u.compareText.endsWith(` -`)&&(c.removed.no_nl_at_eof=!0);return c}},Fr=Fl.StateField.define({create:t=>{},update:(t,e)=>{let r=t?{...t}:{maxDiffTimeMs:0,hunks:[],stagedHunks:[],chunks:void 0,isDirty:!1},i=!1;for(let n of e.effects)n.is(Ol)&&(r.compareText=n.value.compareText,r.compareTextHead=n.value.compareTextHead,i=(t==null?void 0:t.compareText)!==n.value.compareText,i&&(r.chunks=void 0)),n.is(Uu)&&nO(r,n.value,e.state);if(r.compareText!==void 0){if(i||e.docChanged){r.isDirty=!0;let n=EV(e,r.compareText,r.chunks,r.maxDiffTimeMs);n&&nO(r,n,e.state)}}else r.compareText=void 0,r.compareTextHead=void 0,r.chunks=void 0,r.hunks=[],r.stagedHunks=[],r.isDirty=!1;return r}});function nO(t,e,r){var n,s;t.hunks=e.hunks,t.chunks=e.chunks,t.isDirty=!1,t.maxDiffTimeMs=Math.max(.95*t.maxDiffTimeMs,e.diffDuration);let i=r.field(Il.editorInfoField).file;(s=(n=Ii.plugin)==null?void 0:n.editorIntegration.signsFeature.changeStatusBar)==null||s.display(t.hunks,i)}var fy=Fl.StateField.define({create:()=>({debouncer:(0,Il.debounce)(t=>{let{state:e,compareText:r,previousChunks:i,changeDesc:n}=t,s=sO(e,r,i,n);e.field(Il.editorEditorField).dispatch({effects:Uu.of(s)})},1e3,!0),maxDiffTimeMs:0}),update:(t,e)=>{var r;for(let i of e.effects)if(i.is(Uu))return t.changeDesc=void 0,t;return!t.changeDesc&&e.changes?t.changeDesc=e.changes:t.changeDesc=(r=t.changeDesc)==null?void 0:r.composeDesc(e.changes),t}});function sO(t,e,r,i){let n=t.doc.toString(),s=performance.now(),{hunks:a,chunks:o}=iO(e,n,r,i),l=performance.now()-s;return{hunks:a,chunks:o,diffDuration:l}}function EV(t,e,r,i){let n=t.state,s=Math.abs(t.changes.length-t.changes.newLength),a=n.field(fy);if(s>1e3||i>16)a.debouncer({state:n,compareText:e,previousChunks:r,changeDesc:a.changeDesc});else return a.changeDesc=void 0,sO(n,e,r,t.changes)}var Ol=Fl.StateEffect.define(),Uu=Fl.StateEffect.define();function aO(t,e){return e.update({effects:Ol.of(t)})}p();p();p();var it;(function(t){t.INSERT="insert",t.DELETE="delete",t.CONTEXT="context"})(it||(it={}));var oO={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},lO={LINES:"lines",WORDS:"words",NONE:"none"},cO={WORD:"word",CHAR:"char"},Ha;(function(t){t.AUTO="auto",t.DARK="dark",t.LIGHT="light"})(Ha||(Ha={}));p();var kV=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],AV=RegExp("["+kV.join("\\")+"]","g");function uO(t){return t.replace(AV,"\\$&")}function dy(t){return t&&t.replace(/\\/g,"/")}function fO(t){let e,r,i,n=0;for(e=0,i=t.length;e1?r[r.length-1]:e}function hO(t,e){return e.reduce((r,i)=>r||t.startsWith(i),!1)}var pO=["a/","b/","i/","w/","c/","o/"];function Vs(t,e,r){let i=r!==void 0?[...pO,r]:pO,n=e?new RegExp(`^${uO(e)} "?(.+?)"?$`):new RegExp('^"?(.+?)"?$'),[,s=""]=n.exec(t)||[],a=i.find(l=>s.indexOf(l)===0);return(a?s.slice(a.length):s).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function TV(t,e){return Vs(t,"---",e)}function CV(t,e){return Vs(t,"+++",e)}function mO(t,e={}){let r=[],i=null,n=null,s=null,a=null,o=null,l=null,c=null,u="--- ",f="+++ ",d="@@",h=/^old mode (\d{6})/,m=/^new mode (\d{6})/,g=/^deleted file mode (\d{6})/,v=/^new file mode (\d{6})/,w=/^copy from "?(.+)"?/,b=/^copy to "?(.+)"?/,k=/^rename from "?(.+)"?/,x=/^rename to "?(.+)"?/,E=/^similarity index (\d+)%/,A=/^dissimilarity index (\d+)%/,y=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,S=/^Binary files (.*) and (.*) differ/,_=/^GIT binary patch/,T=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,P=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,D=/^new file mode (\d{6})/,B=/^deleted file mode (\d{6}),(\d{6})/,N=t.replace(/\\ No newline at end of file/g,"").replace(/\r\n?/g,` +`)&&(c.removed.no_nl_at_eof=!0);return c}},$r=Nl.StateField.define({create:t=>{},update:(t,e)=>{let r=t?{...t}:{maxDiffTimeMs:0,hunks:[],stagedHunks:[],chunks:void 0,isDirty:!1},n=!1;for(let i of e.effects)i.is(Hl)&&(r.compareText=i.value.compareText,r.compareTextHead=i.value.compareTextHead,n=(t==null?void 0:t.compareText)!==i.value.compareText,n&&(r.chunks=void 0)),i.is(Vu)&&yO(r,i.value,e.state);if(r.compareText!==void 0){if(n||e.docChanged){r.isDirty=!0;let i=fV(e,r.compareText,r.chunks,r.maxDiffTimeMs);i&&yO(r,i,e.state)}}else r.compareText=void 0,r.compareTextHead=void 0,r.chunks=void 0,r.hunks=[],r.stagedHunks=[],r.isDirty=!1;return r}});function yO(t,e,r){var i,s;t.hunks=e.hunks,t.chunks=e.chunks,t.isDirty=!1,t.maxDiffTimeMs=Math.max(.95*t.maxDiffTimeMs,e.diffDuration);let n=r.field(Bl.editorInfoField).file;(s=(i=Ln.plugin)==null?void 0:i.editorIntegration.signsFeature.changeStatusBar)==null||s.display(t.hunks,n)}var yy=Nl.StateField.define({create:()=>({debouncer:(0,Bl.debounce)(t=>{let{state:e,compareText:r,previousChunks:n,changeDesc:i}=t,s=bO(e,r,n,i);e.field(Bl.editorEditorField).dispatch({effects:Vu.of(s)})},1e3,!0),maxDiffTimeMs:0}),update:(t,e)=>{var r;for(let n of e.effects)if(n.is(Vu))return t.changeDesc=void 0,t;return!t.changeDesc&&e.changes?t.changeDesc=e.changes:t.changeDesc=(r=t.changeDesc)==null?void 0:r.composeDesc(e.changes),t}});function bO(t,e,r,n){let i=t.doc.toString(),s=performance.now(),{hunks:a,chunks:o}=wO(e,i,r,n),l=performance.now()-s;return{hunks:a,chunks:o,diffDuration:l}}function fV(t,e,r,n){let i=t.state,s=Math.abs(t.changes.length-t.changes.newLength),a=i.field(yy);if(s>1e3||n>16)a.debouncer({state:i,compareText:e,previousChunks:r,changeDesc:a.changeDesc});else return a.changeDesc=void 0,bO(i,e,r,t.changes)}var Hl=Nl.StateEffect.define(),Vu=Nl.StateEffect.define();function _O(t,e){return e.update({effects:Hl.of(t)})}p();p();p();var rt;(function(t){t.INSERT="insert",t.DELETE="delete",t.CONTEXT="context"})(rt||(rt={}));var xO={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},SO={LINES:"lines",WORDS:"words",NONE:"none"},EO={WORD:"word",CHAR:"char"},Ua;(function(t){t.AUTO="auto",t.DARK="dark",t.LIGHT="light"})(Ua||(Ua={}));p();var dV=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],hV=RegExp("["+dV.join("\\")+"]","g");function kO(t){return t.replace(hV,"\\$&")}function by(t){return t&&t.replace(/\\/g,"/")}function AO(t){let e,r,n,i=0;for(e=0,n=t.length;e1?r[r.length-1]:e}function TO(t,e){return e.reduce((r,n)=>r||t.startsWith(n),!1)}var PO=["a/","b/","i/","w/","c/","o/"];function Vs(t,e,r){let n=r!==void 0?[...PO,r]:PO,i=e?new RegExp(`^${kO(e)} "?(.+?)"?$`):new RegExp('^"?(.+?)"?$'),[,s=""]=i.exec(t)||[],a=n.find(l=>s.indexOf(l)===0);return(a?s.slice(a.length):s).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function pV(t,e){return Vs(t,"---",e)}function mV(t,e){return Vs(t,"+++",e)}function RO(t,e={}){let r=[],n=null,i=null,s=null,a=null,o=null,l=null,c=null,u="--- ",f="+++ ",d="@@",h=/^old mode (\d{6})/,m=/^new mode (\d{6})/,g=/^deleted file mode (\d{6})/,v=/^new file mode (\d{6})/,w=/^copy from "?(.+)"?/,b=/^copy to "?(.+)"?/,k=/^rename from "?(.+)"?/,x=/^rename to "?(.+)"?/,E=/^similarity index (\d+)%/,A=/^dissimilarity index (\d+)%/,y=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,S=/^Binary files (.*) and (.*) differ/,_=/^GIT binary patch/,C=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,P=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,N=/^new file mode (\d{6})/,B=/^deleted file mode (\d{6}),(\d{6})/,H=t.replace(/\\ No newline at end of file/g,"").replace(/\r\n?/g,` `).split(` -`);function ce(){n!==null&&i!==null&&(i.blocks.push(n),n=null)}function Pe(){i!==null&&(!i.oldName&&l!==null&&(i.oldName=l),!i.newName&&c!==null&&(i.newName=c),i.newName&&(r.push(i),i=null)),l=null,c=null}function ve(){ce(),Pe(),i={blocks:[],deletedLines:0,addedLines:0}}function se(z){ce();let Q;i!==null&&((Q=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(z))?(i.isCombined=!1,s=parseInt(Q[1],10),o=parseInt(Q[2],10)):(Q=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(z))?(i.isCombined=!0,s=parseInt(Q[1],10),a=parseInt(Q[2],10),o=parseInt(Q[3],10)):(z.startsWith(d)&&console.error("Failed to parse lines, starting in 0!"),s=0,o=0,i.isCombined=!1)),n={lines:[],oldStartLine:s,oldStartLine2:a,newStartLine:o,header:z}}function xe(z){if(i===null||n===null||s===null||o===null)return;let Q={content:z},j=i.isCombined?["+ "," +","++"]:["+"],Le=i.isCombined?["- "," -","--"]:["-"];hO(z,j)?(i.addedLines++,Q.type=it.INSERT,Q.oldNumber=void 0,Q.newNumber=o++):hO(z,Le)?(i.deletedLines++,Q.type=it.DELETE,Q.oldNumber=s++,Q.newNumber=void 0):(Q.type=it.CONTEXT,Q.oldNumber=s++,Q.newNumber=o++),n.lines.push(Q)}function we(z,Q){let j=Q;for(;j{if(!z||z.startsWith("*"))return;let j,Le=N[Q-1],lr=N[Q+1],It=N[Q+2];if(z.startsWith("diff --git")||z.startsWith("diff --combined")){if(ve(),(j=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(z))&&(l=Vs(j[1],void 0,e.dstPrefix),c=Vs(j[2],void 0,e.srcPrefix)),i===null)throw new Error("Where is my file !!!");i.isGitDiff=!0;return}if(z.startsWith("Binary files")&&!(i!=null&&i.isGitDiff)){if(ve(),(j=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(z))&&(l=Vs(j[1],void 0,e.dstPrefix),c=Vs(j[2],void 0,e.srcPrefix)),i===null)throw new Error("Where is my file !!!");i.isBinary=!0;return}if((!i||!i.isGitDiff&&i&&z.startsWith(u)&&lr.startsWith(f)&&It.startsWith(d))&&ve(),i!=null&&i.isTooBig)return;if(i&&(typeof e.diffMaxChanges=="number"&&i.addedLines+i.deletedLines>e.diffMaxChanges||typeof e.diffMaxLineLength=="number"&&z.length>e.diffMaxLineLength)){i.isTooBig=!0,i.addedLines=0,i.deletedLines=0,i.blocks=[],n=null;let At=typeof e.diffTooBigMessage=="function"?e.diffTooBigMessage(r.length):"Diff too big to be displayed";se(At);return}if(z.startsWith(u)&&lr.startsWith(f)||z.startsWith(f)&&Le.startsWith(u)){if(i&&!i.oldName&&z.startsWith("--- ")&&(j=TV(z,e.srcPrefix))){i.oldName=j,i.language=dO(i.oldName,i.language);return}if(i&&!i.newName&&z.startsWith("+++ ")&&(j=CV(z,e.dstPrefix))){i.newName=j,i.language=dO(i.newName,i.language);return}}if(i&&(z.startsWith(d)||i.isGitDiff&&i.oldName&&i.newName&&!n)){se(z);return}if(n&&(z.startsWith("+")||z.startsWith("-")||z.startsWith(" "))){xe(z);return}let Fe=!we(z,Q);if(i===null)throw new Error("Where is my file !!!");(j=h.exec(z))?i.oldMode=j[1]:(j=m.exec(z))?i.newMode=j[1]:(j=g.exec(z))?(i.deletedFileMode=j[1],i.isDeleted=!0):(j=v.exec(z))?(i.newFileMode=j[1],i.isNew=!0):(j=w.exec(z))?(Fe&&(i.oldName=j[1]),i.isCopy=!0):(j=b.exec(z))?(Fe&&(i.newName=j[1]),i.isCopy=!0):(j=k.exec(z))?(Fe&&(i.oldName=j[1]),i.isRename=!0):(j=x.exec(z))?(Fe&&(i.newName=j[1]),i.isRename=!0):(j=S.exec(z))?(i.isBinary=!0,i.oldName=Vs(j[1],void 0,e.srcPrefix),i.newName=Vs(j[2],void 0,e.dstPrefix),se("Binary file")):_.test(z)?(i.isBinary=!0,se(z)):(j=E.exec(z))?i.unchangedPercentage=parseInt(j[1],10):(j=A.exec(z))?i.changedPercentage=parseInt(j[1],10):(j=y.exec(z))?(i.checksumBefore=j[1],i.checksumAfter=j[2],j[3]&&(i.mode=j[3])):(j=T.exec(z))?(i.checksumBefore=[j[2],j[3]],i.checksumAfter=j[1]):(j=P.exec(z))?(i.oldMode=[j[2],j[3]],i.newMode=j[1]):(j=D.exec(z))?(i.newFileMode=j[1],i.isNew=!0):(j=B.exec(z))&&(i.deletedFileMode=j[1],i.isDeleted=!0)}),ce(),Pe(),r}p();p();p();function RV(t,e){if(t.length===0)return e.length;if(e.length===0)return t.length;let r=[],i;for(i=0;i<=e.length;i++)r[i]=[i];let n;for(n=0;n<=t.length;n++)r[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)===t.charAt(n-1)?r[i][n]=r[i-1][n-1]:r[i][n]=Math.min(r[i-1][n-1]+1,Math.min(r[i][n-1]+1,r[i-1][n]+1));return r[e.length][t.length]}function Ml(t){return(e,r)=>{let i=t(e).trim(),n=t(r).trim();return RV(i,n)/(i.length+n.length)}}function Dl(t){function e(i,n,s=new Map){let a=1/0,o;for(let l=0;l0||o.indexB>0)&&(k=v.concat(k)),(i.length>d||n.length>h)&&(k=k.concat(b)),k}return r}var Vt={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},Ua={matching:lO.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:cO.WORD,colorScheme:Ha.LIGHT},vn="/",gO=Ml(t=>t.value),$V=Dl(gO);function py(t){return t.indexOf("dev/null")!==-1}function FV(t){return t.replace(/(]*>((.|\n)*?)<\/ins>)/g,"")}function IV(t){return t.replace(/(]*>((.|\n)*?)<\/del>)/g,"")}function Ll(t){switch(t){case it.CONTEXT:return Vt.CONTEXT;case it.INSERT:return Vt.INSERTS;case it.DELETE:return Vt.DELETES}}function Bl(t){switch(t){case Ha.DARK:return"d2h-dark-color-scheme";case Ha.AUTO:return"d2h-auto-color-scheme";case Ha.LIGHT:default:return"d2h-light-color-scheme"}}function OV(t){return t?2:1}function Ws(t){return t.slice(0).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function yi(t,e,r=!0){let i=OV(e);return{prefix:t.substring(0,i),content:r?Ws(t.substring(i)):t.substring(i)}}function Ga(t){let e=dy(t.oldName),r=dy(t.newName);if(e!==r&&!py(e)&&!py(r)){let i=[],n=[],s=e.split(vn),a=r.split(vn),o=s.length,l=a.length,c=0,u=o-1,f=l-1;for(;cc&&f>c&&s[u]===a[f];)n.unshift(a[f]),u-=1,f-=1;let d=i.join(vn),h=n.join(vn),m=s.slice(c,u+1).join(vn),g=a.slice(c,f+1).join(vn);return d.length&&h.length?d+vn+"{"+m+" \u2192 "+g+"}"+vn+h:d.length?d+vn+"{"+m+" \u2192 "+g+"}":h.length?"{"+m+" \u2192 "+g+"}"+vn+h:e+" \u2192 "+r}else return py(r)?e:r}function Nl(t){return`d2h-${fO(Ga(t)).toString().slice(-6)}`}function Hl(t){let e="file-changed";return t.isRename||t.isCopy?e="file-renamed":t.isNew?e="file-added":t.isDeleted?e="file-deleted":t.newName!==t.oldName&&(e="file-renamed"),e}function wp(t,e,r,i={}){let{matching:n,maxLineLengthHighlight:s,matchWordsThreshold:a,diffStyle:o}=Object.assign(Object.assign({},Ua),i),l=yi(t,r,!1),c=yi(e,r,!1);if(l.content.length>s||c.content.length>s)return{oldLine:{prefix:l.prefix,content:Ws(l.content)},newLine:{prefix:c.prefix,content:Ws(c.content)}};let u=o==="char"?Tv(l.content,c.content):Iv(l.content,c.content),f=[];if(o==="word"&&n==="words"){let h=u.filter(v=>v.removed),m=u.filter(v=>v.added);$V(m,h).forEach(v=>{v[0].length===1&&v[1].length===1&&gO(v[0][0],v[1][0]){let g=m.added?"ins":m.removed?"del":null,v=f.indexOf(m)>-1?' class="d2h-change"':"",w=Ws(m.value);return g!==null?`${h}<${g}${v}>${w}`:`${h}${w}`},"");return{oldLine:{prefix:l.prefix,content:FV(d)},newLine:{prefix:c.prefix,content:IV(d)}}}var vO="file-summary",MV="icon",DV={colorScheme:Ua.colorScheme},yp=class{constructor(e,r={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},DV),r)}render(e){let r=e.map(i=>this.hoganUtils.render(vO,"line",{fileHtmlId:Nl(i),oldName:i.oldName,newName:i.newName,fileName:Ga(i),deletedLines:"-"+i.deletedLines,addedLines:"+"+i.addedLines},{fileIcon:this.hoganUtils.template(MV,Hl(i))})).join(` -`);return this.hoganUtils.render(vO,"wrapper",{colorScheme:Bl(this.config.colorScheme),filesNumber:e.length,files:r})}};p();var gy=Object.assign(Object.assign({},Ua),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),Gu="generic",wO="line-by-line",LV="icon",BV="tag",ju=class{constructor(e,r={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},gy),r)}render(e){let r=e.map(i=>{let n;return i.blocks.length?n=this.generateFileHtml(i):n=this.generateEmptyDiff(),this.makeFileDiffHtml(i,n)}).join(` -`);return this.hoganUtils.render(Gu,"wrapper",{colorScheme:Bl(this.config.colorScheme),content:r})}makeFileDiffHtml(e,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let i=this.hoganUtils.template(wO,"file-diff"),n=this.hoganUtils.template(Gu,"file-path"),s=this.hoganUtils.template(LV,"file"),a=this.hoganUtils.template(BV,Hl(e));return i.render({file:e,fileHtmlId:Nl(e),diffs:r,filePath:n.render({fileDiffName:Ga(e)},{fileIcon:s,fileTag:a})})}generateEmptyDiff(){return this.hoganUtils.render(Gu,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:Vt})}generateFileHtml(e){let r=Dl(Ml(i=>yi(i.content,e.isCombined).content));return e.blocks.map(i=>{let n=this.hoganUtils.render(Gu,"block-header",{CSSLineClass:Vt,blockHeader:e.isTooBig?i.header:Ws(i.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(i).forEach(([s,a,o])=>{if(a.length&&o.length&&!s.length)this.applyRematchMatching(a,o,r).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e,e.isCombined,l,c);n+=u,n+=f});else if(s.length)s.forEach(l=>{let{prefix:c,content:u}=yi(l.content,e.isCombined);n+=this.generateSingleLineHtml(e,{type:Vt.CONTEXT,prefix:c,content:u,oldNumber:l.oldNumber,newNumber:l.newNumber})});else if(a.length||o.length){let{left:l,right:c}=this.processChangedLines(e,e.isCombined,a,o);n+=l,n+=c}else console.error("Unknown state reached while processing groups of lines",s,a,o)}),n}).join(` -`)}applyLineGroupping(e){let r=[],i=[],n=[];for(let s=0;s0)&&(r.push([[],i,n]),i=[],n=[]),a.type===it.CONTEXT?r.push([[a],[],[]]):a.type===it.INSERT&&i.length===0?r.push([[],[],[a]]):a.type===it.INSERT&&i.length>0?n.push(a):a.type===it.DELETE&&i.push(a)}return(i.length||n.length)&&(r.push([[],i,n]),i=[],n=[]),r}applyRematchMatching(e,r,i){let n=e.length*r.length,s=vp(e.concat(r).map(o=>o.content.length));return n{let n;return i.blocks.length?n=this.generateFileHtml(i):n=this.generateEmptyDiff(),this.makeFileDiffHtml(i,n)}).join(` -`);return this.hoganUtils.render(qu,"wrapper",{colorScheme:Bl(this.config.colorScheme),content:r})}makeFileDiffHtml(e,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let i=this.hoganUtils.template(NV,"file-diff"),n=this.hoganUtils.template(qu,"file-path"),s=this.hoganUtils.template(HV,"file"),a=this.hoganUtils.template(UV,Hl(e));return i.render({file:e,fileHtmlId:Nl(e),diffs:r,filePath:n.render({fileDiffName:Ga(e)},{fileIcon:s,fileTag:a})})}generateEmptyDiff(){return{right:"",left:this.hoganUtils.render(qu,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:Vt})}}generateFileHtml(e){let r=Dl(Ml(i=>yi(i.content,e.isCombined).content));return e.blocks.map(i=>{let n={left:this.makeHeaderHtml(i.header,e),right:this.makeHeaderHtml("")};return this.applyLineGroupping(i).forEach(([s,a,o])=>{if(a.length&&o.length&&!s.length)this.applyRematchMatching(a,o,r).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e.isCombined,l,c);n.left+=u,n.right+=f});else if(s.length)s.forEach(l=>{let{prefix:c,content:u}=yi(l.content,e.isCombined),{left:f,right:d}=this.generateLineHtml({type:Vt.CONTEXT,prefix:c,content:u,number:l.oldNumber},{type:Vt.CONTEXT,prefix:c,content:u,number:l.newNumber});n.left+=f,n.right+=d});else if(a.length||o.length){let{left:l,right:c}=this.processChangedLines(e.isCombined,a,o);n.left+=l,n.right+=c}else console.error("Unknown state reached while processing groups of lines",s,a,o)}),n}).reduce((i,n)=>({left:i.left+n.left,right:i.right+n.right}),{left:"",right:""})}applyLineGroupping(e){let r=[],i=[],n=[];for(let s=0;s0)&&(r.push([[],i,n]),i=[],n=[]),a.type===it.CONTEXT?r.push([[a],[],[]]):a.type===it.INSERT&&i.length===0?r.push([[],[],[a]]):a.type===it.INSERT&&i.length>0?n.push(a):a.type===it.DELETE&&i.push(a)}return(i.length||n.length)&&(r.push([[],i,n]),i=[],n=[]),r}applyRematchMatching(e,r,i){let n=e.length*r.length,s=vp(e.concat(r).map(o=>o.content.length));return n'),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(i.rp("'),i.b(i.v(i.f("fileName",t,e,0))),i.b(""),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(' '),i.b(i.v(i.f("addedLines",t,e,0))),i.b(""),i.b(` -`+r),i.b(' '),i.b(i.v(i.f("deletedLines",t,e,0))),i.b(""),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b(""),i.fl()},partials:{"'),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b(' Files changed ('),i.b(i.v(i.f("filesNumber",t,e,0))),i.b(")"),i.b(` -`+r),i.b(' hide'),i.b(` -`+r),i.b(' show'),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b('
    '),i.b(` -`+r),i.b(" "),i.b(i.t(i.f("files",t,e,0))),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b(""),i.fl()},partials:{},subs:{}});wt["generic-block-header"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b(""),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b('
'),i.s(i.f("blockHeader",t,e,1),t,e,0,156,173,"{{ }}")&&(i.rs(t,e,function(n,s,a){a.b(a.t(a.f("blockHeader",n,s,0)))}),t.pop()),i.s(i.f("blockHeader",t,e,1),t,e,1,0,0,"")||i.b(" "),i.b("
"),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b(""),i.fl()},partials:{},subs:{}});wt["generic-empty-diff"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b(""),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b(" File without changes"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b(""),i.fl()},partials:{},subs:{}});wt["generic-file-path"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b(''),i.b(` -`+r),i.b(i.rp("'),i.b(i.v(i.f("fileDiffName",t,e,0))),i.b(""),i.b(` -`+r),i.b(i.rp(""),i.b(` -`+r),i.b('"),i.fl()},partials:{""),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(" "),i.b(i.t(i.f("lineNumber",t,e,0))),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.s(i.f("prefix",t,e,1),t,e,0,162,238,"{{ }}")&&(i.rs(t,e,function(n,s,a){a.b(' '),a.b(a.t(a.f("prefix",n,s,0))),a.b(""),a.b(` -`+r)}),t.pop()),i.s(i.f("prefix",t,e,1),t,e,1,0,0,"")||(i.b('  '),i.b(` -`+r)),i.s(i.f("content",t,e,1),t,e,0,371,445,"{{ }}")&&(i.rs(t,e,function(n,s,a){a.b(' '),a.b(a.t(a.f("content",n,s,0))),a.b(""),a.b(` -`+r)}),t.pop()),i.s(i.f("content",t,e,1),t,e,1,0,0,"")||(i.b('
'),i.b(` -`+r)),i.b("
"),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b(""),i.fl()},partials:{},subs:{}});wt["generic-wrapper"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('
'),i.b(` -`+r),i.b(" "),i.b(i.t(i.f("content",t,e,0))),i.b(` -`+r),i.b("
"),i.fl()},partials:{},subs:{}});wt["icon-file-added"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('"),i.fl()},partials:{},subs:{}});wt["icon-file-changed"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('"),i.fl()},partials:{},subs:{}});wt["icon-file-deleted"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('"),i.fl()},partials:{},subs:{}});wt["icon-file-renamed"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('"),i.fl()},partials:{},subs:{}});wt["icon-file"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('"),i.fl()},partials:{},subs:{}});wt["line-by-line-file-diff"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('
'),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b(" "),i.b(i.t(i.f("filePath",t,e,0))),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(" "),i.b(i.t(i.f("diffs",t,e,0))),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.fl()},partials:{},subs:{}});wt["line-by-line-numbers"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('
'),i.b(i.v(i.f("oldNumber",t,e,0))),i.b("
"),i.b(` -`+r),i.b('
'),i.b(i.v(i.f("newNumber",t,e,0))),i.b("
"),i.fl()},partials:{},subs:{}});wt["side-by-side-file-diff"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('
'),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b(" "),i.b(i.t(i.f("filePath",t,e,0))),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(" "),i.b(i.t(i.d("diffs.left",t,e,0))),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b('
'),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(' '),i.b(` -`+r),i.b(" "),i.b(i.t(i.d("diffs.right",t,e,0))),i.b(` -`+r),i.b(" "),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.b(` -`+r),i.b("
"),i.fl()},partials:{},subs:{}});wt["tag-file-added"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('ADDED'),i.fl()},partials:{},subs:{}});wt["tag-file-changed"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('CHANGED'),i.fl()},partials:{},subs:{}});wt["tag-file-deleted"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('DELETED'),i.fl()},partials:{},subs:{}});wt["tag-file-renamed"]=new xt.Template({code:function(t,e,r){var i=this;return i.b(r=r||""),i.b('RENAMED'),i.fl()},partials:{},subs:{}});var Vu=class{constructor({compiledTemplates:e={},rawTemplates:r={}}){let i=Object.entries(r).reduce((n,[s,a])=>{let o=_y.compile(a,{asString:!1});return Object.assign(Object.assign({},n),{[s]:o})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},wt),e),i)}static compile(e){return _y.compile(e,{asString:!1})}render(e,r,i,n,s){let a=this.templateKey(e,r);try{return this.preCompiledTemplates[a].render(i,n,s)}catch(o){throw new Error(`Could not find template to render '${a}'`)}}template(e,r){return this.preCompiledTemplates[this.templateKey(e,r)]}templateKey(e,r){return`${e}-${r}`}};var jV=Object.assign(Object.assign(Object.assign({},gy),vy),{outputFormat:oO.LINE_BY_LINE,drawFileList:!0});function _p(t,e={}){let r=Object.assign(Object.assign({},jV),e),i=typeof t=="string"?mO(t,r):t,n=new Vu(r),{colorScheme:s}=r,a={colorScheme:s},o=r.drawFileList?new yp(n,a).render(i):"",l=r.outputFormat==="side-by-side"?new zu(n,r).render(i):new ju(n,r).render(i);return o+l}var AO=Mt(EO());var ja=require("obsidian"),xy=Wu.StateEffect.define();function Ys(t,e){let r=t.state,i=r.field(Sp),n=r.field(Fr),s=r.doc.lineAt(e!=null?e:r.selection.main.head).number,a=Nt.findHunk(s,n==null?void 0:n.hunks)[0];if(!a)return;let o=r.doc.line(Math.max(1,a.added.start)).from,l=i.has(o);return r.field(ja.editorEditorField).dispatch({effects:xy.of({pos:o,add:!l})})}var Sp=Wu.StateField.define({create:()=>new Set,update(t,e){let r=new Set;for(let i of e.effects)i.is(xy)&&(i.value.add?t.add(i.value.pos):t.delete(i.value.pos));for(let i of t)r.add(e.changes.mapPos(i));return r}}),TO=Wu.StateField.define({create:t=>kO(t),update(t,e){return e.docChanged||e.effects.some(r=>r.is(Ol)||r.is(xy))?kO(e.state):t},provide:t=>xp.showTooltip.computeN([t],e=>e.field(t))}),CO=xp.EditorView.baseTheme({".cm-tooltip.git-diff-tooltip":{"z-index":"var(--layer-popover)",backgroundColor:"var(--background-primary-alt)",border:"var(--border-width) solid var(--background-primary-alt)",borderRadius:"var(--radius-s)"},".cm-tooltip.git-diff-tooltip .tooltip-toolbar":{display:"flex",padding:"var(--size-2-1)"}});function kO(t){let e=t.field(Fr);return e?[...t.field(Sp)].map(i=>{let n=t.doc.lineAt(i),s=Nt.findHunk(n.number,e.hunks)[0];if(s)return{pos:i,above:!1,arrow:!1,strictSide:!0,clip:!1,create:()=>qV(s,t,i)}}).filter(i=>i!==void 0):[]}function qV(t,e,r){var g,v;let i=Nt.createPatch("file",[t],"10064",!1).join(` +`);function ce(){i!==null&&n!==null&&(n.blocks.push(i),i=null)}function Pe(){n!==null&&(!n.oldName&&l!==null&&(n.oldName=l),!n.newName&&c!==null&&(n.newName=c),n.newName&&(r.push(n),n=null)),l=null,c=null}function ve(){ce(),Pe(),n={blocks:[],deletedLines:0,addedLines:0}}function ie(W){ce();let X;n!==null&&((X=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(W))?(n.isCombined=!1,s=parseInt(X[1],10),o=parseInt(X[2],10)):(X=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(W))?(n.isCombined=!0,s=parseInt(X[1],10),a=parseInt(X[2],10),o=parseInt(X[3],10)):(W.startsWith(d)&&console.error("Failed to parse lines, starting in 0!"),s=0,o=0,n.isCombined=!1)),i={lines:[],oldStartLine:s,oldStartLine2:a,newStartLine:o,header:W}}function xe(W){if(n===null||i===null||s===null||o===null)return;let X={content:W},q=n.isCombined?["+ "," +","++"]:["+"],De=n.isCombined?["- "," -","--"]:["-"];TO(W,q)?(n.addedLines++,X.type=rt.INSERT,X.oldNumber=void 0,X.newNumber=o++):TO(W,De)?(n.deletedLines++,X.type=rt.DELETE,X.oldNumber=s++,X.newNumber=void 0):(X.type=rt.CONTEXT,X.oldNumber=s++,X.newNumber=o++),i.lines.push(X)}function we(W,X){let q=X;for(;q{if(!W||W.startsWith("*"))return;let q,De=H[X-1],ar=H[X+1],Ft=H[X+2];if(W.startsWith("diff --git")||W.startsWith("diff --combined")){if(ve(),(q=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(W))&&(l=Vs(q[1],void 0,e.dstPrefix),c=Vs(q[2],void 0,e.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isGitDiff=!0;return}if(W.startsWith("Binary files")&&!(n!=null&&n.isGitDiff)){if(ve(),(q=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(W))&&(l=Vs(q[1],void 0,e.dstPrefix),c=Vs(q[2],void 0,e.srcPrefix)),n===null)throw new Error("Where is my file !!!");n.isBinary=!0;return}if((!n||!n.isGitDiff&&n&&W.startsWith(u)&&ar.startsWith(f)&&Ft.startsWith(d))&&ve(),n!=null&&n.isTooBig)return;if(n&&(typeof e.diffMaxChanges=="number"&&n.addedLines+n.deletedLines>e.diffMaxChanges||typeof e.diffMaxLineLength=="number"&&W.length>e.diffMaxLineLength)){n.isTooBig=!0,n.addedLines=0,n.deletedLines=0,n.blocks=[],i=null;let kt=typeof e.diffTooBigMessage=="function"?e.diffTooBigMessage(r.length):"Diff too big to be displayed";ie(kt);return}if(W.startsWith(u)&&ar.startsWith(f)||W.startsWith(f)&&De.startsWith(u)){if(n&&!n.oldName&&W.startsWith("--- ")&&(q=pV(W,e.srcPrefix))){n.oldName=q,n.language=CO(n.oldName,n.language);return}if(n&&!n.newName&&W.startsWith("+++ ")&&(q=mV(W,e.dstPrefix))){n.newName=q,n.language=CO(n.newName,n.language);return}}if(n&&(W.startsWith(d)||n.isGitDiff&&n.oldName&&n.newName&&!i)){ie(W);return}if(i&&(W.startsWith("+")||W.startsWith("-")||W.startsWith(" "))){xe(W);return}let Ie=!we(W,X);if(n===null)throw new Error("Where is my file !!!");(q=h.exec(W))?n.oldMode=q[1]:(q=m.exec(W))?n.newMode=q[1]:(q=g.exec(W))?(n.deletedFileMode=q[1],n.isDeleted=!0):(q=v.exec(W))?(n.newFileMode=q[1],n.isNew=!0):(q=w.exec(W))?(Ie&&(n.oldName=q[1]),n.isCopy=!0):(q=b.exec(W))?(Ie&&(n.newName=q[1]),n.isCopy=!0):(q=k.exec(W))?(Ie&&(n.oldName=q[1]),n.isRename=!0):(q=x.exec(W))?(Ie&&(n.newName=q[1]),n.isRename=!0):(q=S.exec(W))?(n.isBinary=!0,n.oldName=Vs(q[1],void 0,e.srcPrefix),n.newName=Vs(q[2],void 0,e.dstPrefix),ie("Binary file")):_.test(W)?(n.isBinary=!0,ie(W)):(q=E.exec(W))?n.unchangedPercentage=parseInt(q[1],10):(q=A.exec(W))?n.changedPercentage=parseInt(q[1],10):(q=y.exec(W))?(n.checksumBefore=q[1],n.checksumAfter=q[2],q[3]&&(n.mode=q[3])):(q=C.exec(W))?(n.checksumBefore=[q[2],q[3]],n.checksumAfter=q[1]):(q=P.exec(W))?(n.oldMode=[q[2],q[3]],n.newMode=q[1]):(q=N.exec(W))?(n.newFileMode=q[1],n.isNew=!0):(q=B.exec(W))&&(n.deletedFileMode=q[1],n.isDeleted=!0)}),ce(),Pe(),r}p();p();p();function vV(t,e){if(t.length===0)return e.length;if(e.length===0)return t.length;let r=[],n;for(n=0;n<=e.length;n++)r[n]=[n];let i;for(i=0;i<=t.length;i++)r[0][i]=i;for(n=1;n<=e.length;n++)for(i=1;i<=t.length;i++)e.charAt(n-1)===t.charAt(i-1)?r[n][i]=r[n-1][i-1]:r[n][i]=Math.min(r[n-1][i-1]+1,Math.min(r[n][i-1]+1,r[n-1][i]+1));return r[e.length][t.length]}function Ul(t){return(e,r)=>{let n=t(e).trim(),i=t(r).trim();return vV(n,i)/(n.length+i.length)}}function Gl(t){function e(n,i,s=new Map){let a=1/0,o;for(let l=0;l0||o.indexB>0)&&(k=v.concat(k)),(n.length>d||i.length>h)&&(k=k.concat(b)),k}return r}var qt={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},Ga={matching:SO.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:EO.WORD,colorScheme:Ua.LIGHT},yi="/",$O=Ul(t=>t.value),wV=Gl($O);function xy(t){return t.indexOf("dev/null")!==-1}function yV(t){return t.replace(/(]*>((.|\n)*?)<\/ins>)/g,"")}function bV(t){return t.replace(/(]*>((.|\n)*?)<\/del>)/g,"")}function jl(t){switch(t){case rt.CONTEXT:return qt.CONTEXT;case rt.INSERT:return qt.INSERTS;case rt.DELETE:return qt.DELETES}}function ql(t){switch(t){case Ua.DARK:return"d2h-dark-color-scheme";case Ua.AUTO:return"d2h-auto-color-scheme";case Ua.LIGHT:default:return"d2h-light-color-scheme"}}function _V(t){return t?2:1}function Ys(t){return t.slice(0).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function Sn(t,e,r=!0){let n=_V(e);return{prefix:t.substring(0,n),content:r?Ys(t.substring(n)):t.substring(n)}}function ja(t){let e=by(t.oldName),r=by(t.newName);if(e!==r&&!xy(e)&&!xy(r)){let n=[],i=[],s=e.split(yi),a=r.split(yi),o=s.length,l=a.length,c=0,u=o-1,f=l-1;for(;cc&&f>c&&s[u]===a[f];)i.unshift(a[f]),u-=1,f-=1;let d=n.join(yi),h=i.join(yi),m=s.slice(c,u+1).join(yi),g=a.slice(c,f+1).join(yi);return d.length&&h.length?d+yi+"{"+m+" \u2192 "+g+"}"+yi+h:d.length?d+yi+"{"+m+" \u2192 "+g+"}":h.length?"{"+m+" \u2192 "+g+"}"+yi+h:e+" \u2192 "+r}else return xy(r)?e:r}function Wl(t){return`d2h-${AO(ja(t)).toString().slice(-6)}`}function zl(t){let e="file-changed";return t.isRename||t.isCopy?e="file-renamed":t.isNew?e="file-added":t.isDeleted?e="file-deleted":t.newName!==t.oldName&&(e="file-renamed"),e}function Sp(t,e,r,n={}){let{matching:i,maxLineLengthHighlight:s,matchWordsThreshold:a,diffStyle:o}=Object.assign(Object.assign({},Ga),n),l=Sn(t,r,!1),c=Sn(e,r,!1);if(l.content.length>s||c.content.length>s)return{oldLine:{prefix:l.prefix,content:Ys(l.content)},newLine:{prefix:c.prefix,content:Ys(c.content)}};let u=o==="char"?Fv(l.content,c.content):Bv(l.content,c.content),f=[];if(o==="word"&&i==="words"){let h=u.filter(v=>v.removed),m=u.filter(v=>v.added);wV(m,h).forEach(v=>{v[0].length===1&&v[1].length===1&&$O(v[0][0],v[1][0]){let g=m.added?"ins":m.removed?"del":null,v=f.indexOf(m)>-1?' class="d2h-change"':"",w=Ys(m.value);return g!==null?`${h}<${g}${v}>${w}`:`${h}${w}`},"");return{oldLine:{prefix:l.prefix,content:yV(d)},newLine:{prefix:c.prefix,content:bV(d)}}}var IO="file-summary",xV="icon",SV={colorScheme:Ga.colorScheme},Ep=class{constructor(e,r={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},SV),r)}render(e){let r=e.map(n=>this.hoganUtils.render(IO,"line",{fileHtmlId:Wl(n),oldName:n.oldName,newName:n.newName,fileName:ja(n),deletedLines:"-"+n.deletedLines,addedLines:"+"+n.addedLines},{fileIcon:this.hoganUtils.template(xV,zl(n))})).join(` +`);return this.hoganUtils.render(IO,"wrapper",{colorScheme:ql(this.config.colorScheme),filesNumber:e.length,files:r})}};p();var Ey=Object.assign(Object.assign({},Ga),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),Yu="generic",FO="line-by-line",EV="icon",kV="tag",Xu=class{constructor(e,r={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},Ey),r)}render(e){let r=e.map(n=>{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` +`);return this.hoganUtils.render(Yu,"wrapper",{colorScheme:ql(this.config.colorScheme),content:r})}makeFileDiffHtml(e,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let n=this.hoganUtils.template(FO,"file-diff"),i=this.hoganUtils.template(Yu,"file-path"),s=this.hoganUtils.template(EV,"file"),a=this.hoganUtils.template(kV,zl(e));return n.render({file:e,fileHtmlId:Wl(e),diffs:r,filePath:i.render({fileDiffName:ja(e)},{fileIcon:s,fileTag:a})})}generateEmptyDiff(){return this.hoganUtils.render(Yu,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:qt})}generateFileHtml(e){let r=Gl(Ul(n=>Sn(n.content,e.isCombined).content));return e.blocks.map(n=>{let i=this.hoganUtils.render(Yu,"block-header",{CSSLineClass:qt,blockHeader:e.isTooBig?n.header:Ys(n.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(n).forEach(([s,a,o])=>{if(a.length&&o.length&&!s.length)this.applyRematchMatching(a,o,r).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e,e.isCombined,l,c);i+=u,i+=f});else if(s.length)s.forEach(l=>{let{prefix:c,content:u}=Sn(l.content,e.isCombined);i+=this.generateSingleLineHtml(e,{type:qt.CONTEXT,prefix:c,content:u,oldNumber:l.oldNumber,newNumber:l.newNumber})});else if(a.length||o.length){let{left:l,right:c}=this.processChangedLines(e,e.isCombined,a,o);i+=l,i+=c}else console.error("Unknown state reached while processing groups of lines",s,a,o)}),i}).join(` +`)}applyLineGroupping(e){let r=[],n=[],i=[];for(let s=0;s0)&&(r.push([[],n,i]),n=[],i=[]),a.type===rt.CONTEXT?r.push([[a],[],[]]):a.type===rt.INSERT&&n.length===0?r.push([[],[],[a]]):a.type===rt.INSERT&&n.length>0?i.push(a):a.type===rt.DELETE&&n.push(a)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(e,r,n){let i=e.length*r.length,s=xp(e.concat(r).map(o=>o.content.length));return i{let i;return n.blocks.length?i=this.generateFileHtml(n):i=this.generateEmptyDiff(),this.makeFileDiffHtml(n,i)}).join(` +`);return this.hoganUtils.render(Zu,"wrapper",{colorScheme:ql(this.config.colorScheme),content:r})}makeFileDiffHtml(e,r){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let n=this.hoganUtils.template(AV,"file-diff"),i=this.hoganUtils.template(Zu,"file-path"),s=this.hoganUtils.template(CV,"file"),a=this.hoganUtils.template(TV,zl(e));return n.render({file:e,fileHtmlId:Wl(e),diffs:r,filePath:i.render({fileDiffName:ja(e)},{fileIcon:s,fileTag:a})})}generateEmptyDiff(){return{right:"",left:this.hoganUtils.render(Zu,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:qt})}}generateFileHtml(e){let r=Gl(Ul(n=>Sn(n.content,e.isCombined).content));return e.blocks.map(n=>{let i={left:this.makeHeaderHtml(n.header,e),right:this.makeHeaderHtml("")};return this.applyLineGroupping(n).forEach(([s,a,o])=>{if(a.length&&o.length&&!s.length)this.applyRematchMatching(a,o,r).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e.isCombined,l,c);i.left+=u,i.right+=f});else if(s.length)s.forEach(l=>{let{prefix:c,content:u}=Sn(l.content,e.isCombined),{left:f,right:d}=this.generateLineHtml({type:qt.CONTEXT,prefix:c,content:u,number:l.oldNumber},{type:qt.CONTEXT,prefix:c,content:u,number:l.newNumber});i.left+=f,i.right+=d});else if(a.length||o.length){let{left:l,right:c}=this.processChangedLines(e.isCombined,a,o);i.left+=l,i.right+=c}else console.error("Unknown state reached while processing groups of lines",s,a,o)}),i}).reduce((n,i)=>({left:n.left+i.left,right:n.right+i.right}),{left:"",right:""})}applyLineGroupping(e){let r=[],n=[],i=[];for(let s=0;s0)&&(r.push([[],n,i]),n=[],i=[]),a.type===rt.CONTEXT?r.push([[a],[],[]]):a.type===rt.INSERT&&n.length===0?r.push([[],[],[a]]):a.type===rt.INSERT&&n.length>0?i.push(a):a.type===rt.DELETE&&n.push(a)}return(n.length||i.length)&&(r.push([[],n,i]),n=[],i=[]),r}applyRematchMatching(e,r,n){let i=e.length*r.length,s=xp(e.concat(r).map(o=>o.content.length));return i'),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(n.rp("'),n.b(n.v(n.f("fileName",t,e,0))),n.b(""),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(' '),n.b(n.v(n.f("addedLines",t,e,0))),n.b(""),n.b(` +`+r),n.b(' '),n.b(n.v(n.f("deletedLines",t,e,0))),n.b(""),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b(""),n.fl()},partials:{"'),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b(' Files changed ('),n.b(n.v(n.f("filesNumber",t,e,0))),n.b(")"),n.b(` +`+r),n.b(' hide'),n.b(` +`+r),n.b(' show'),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b('
    '),n.b(` +`+r),n.b(" "),n.b(n.t(n.f("files",t,e,0))),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b(""),n.fl()},partials:{},subs:{}});gt["generic-block-header"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b(""),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b('
'),n.s(n.f("blockHeader",t,e,1),t,e,0,156,173,"{{ }}")&&(n.rs(t,e,function(i,s,a){a.b(a.t(a.f("blockHeader",i,s,0)))}),t.pop()),n.s(n.f("blockHeader",t,e,1),t,e,1,0,0,"")||n.b(" "),n.b("
"),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b(""),n.fl()},partials:{},subs:{}});gt["generic-empty-diff"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b(""),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b(" File without changes"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b(""),n.fl()},partials:{},subs:{}});gt["generic-file-path"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b(''),n.b(` +`+r),n.b(n.rp("'),n.b(n.v(n.f("fileDiffName",t,e,0))),n.b(""),n.b(` +`+r),n.b(n.rp(""),n.b(` +`+r),n.b('"),n.fl()},partials:{""),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(" "),n.b(n.t(n.f("lineNumber",t,e,0))),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.s(n.f("prefix",t,e,1),t,e,0,162,238,"{{ }}")&&(n.rs(t,e,function(i,s,a){a.b(' '),a.b(a.t(a.f("prefix",i,s,0))),a.b(""),a.b(` +`+r)}),t.pop()),n.s(n.f("prefix",t,e,1),t,e,1,0,0,"")||(n.b('  '),n.b(` +`+r)),n.s(n.f("content",t,e,1),t,e,0,371,445,"{{ }}")&&(n.rs(t,e,function(i,s,a){a.b(' '),a.b(a.t(a.f("content",i,s,0))),a.b(""),a.b(` +`+r)}),t.pop()),n.s(n.f("content",t,e,1),t,e,1,0,0,"")||(n.b('
'),n.b(` +`+r)),n.b("
"),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b(""),n.fl()},partials:{},subs:{}});gt["generic-wrapper"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(` +`+r),n.b(" "),n.b(n.t(n.f("content",t,e,0))),n.b(` +`+r),n.b("
"),n.fl()},partials:{},subs:{}});gt["icon-file-added"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});gt["icon-file-changed"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});gt["icon-file-deleted"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});gt["icon-file-renamed"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});gt["icon-file"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('"),n.fl()},partials:{},subs:{}});gt["line-by-line-file-diff"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b(" "),n.b(n.t(n.f("filePath",t,e,0))),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(" "),n.b(n.t(n.f("diffs",t,e,0))),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.fl()},partials:{},subs:{}});gt["line-by-line-numbers"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(n.v(n.f("oldNumber",t,e,0))),n.b("
"),n.b(` +`+r),n.b('
'),n.b(n.v(n.f("newNumber",t,e,0))),n.b("
"),n.fl()},partials:{},subs:{}});gt["side-by-side-file-diff"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('
'),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b(" "),n.b(n.t(n.f("filePath",t,e,0))),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(" "),n.b(n.t(n.d("diffs.left",t,e,0))),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b('
'),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(' '),n.b(` +`+r),n.b(" "),n.b(n.t(n.d("diffs.right",t,e,0))),n.b(` +`+r),n.b(" "),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.b(` +`+r),n.b("
"),n.fl()},partials:{},subs:{}});gt["tag-file-added"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('ADDED'),n.fl()},partials:{},subs:{}});gt["tag-file-changed"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('CHANGED'),n.fl()},partials:{},subs:{}});gt["tag-file-deleted"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('DELETED'),n.fl()},partials:{},subs:{}});gt["tag-file-renamed"]=new _t.Template({code:function(t,e,r){var n=this;return n.b(r=r||""),n.b('RENAMED'),n.fl()},partials:{},subs:{}});var Qu=class{constructor({compiledTemplates:e={},rawTemplates:r={}}){let n=Object.entries(r).reduce((i,[s,a])=>{let o=Py.compile(a,{asString:!1});return Object.assign(Object.assign({},i),{[s]:o})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},gt),e),n)}static compile(e){return Py.compile(e,{asString:!1})}render(e,r,n,i,s){let a=this.templateKey(e,r);try{return this.preCompiledTemplates[a].render(n,i,s)}catch(o){throw new Error(`Could not find template to render '${a}'`)}}template(e,r){return this.preCompiledTemplates[this.templateKey(e,r)]}templateKey(e,r){return`${e}-${r}`}};var RV=Object.assign(Object.assign(Object.assign({},Ey),ky),{outputFormat:xO.LINE_BY_LINE,drawFileList:!0});function Ap(t,e={}){let r=Object.assign(Object.assign({},RV),e),n=typeof t=="string"?RO(t,r):t,i=new Qu(r),{colorScheme:s}=r,a={colorScheme:s},o=r.drawFileList?new Ep(i,a).render(n):"",l=r.outputFormat==="side-by-side"?new Ku(i,r).render(n):new Xu(i,r).render(n);return o+l}var UO=Ct(BO());var qa=require("obsidian"),Ry=Ju.StateEffect.define();function Xs(t,e){let r=t.state,n=r.field(Tp),i=r.field($r),s=r.doc.lineAt(e!=null?e:r.selection.main.head).number,a=Nt.findHunk(s,i==null?void 0:i.hunks)[0];if(!a)return;let o=r.doc.line(Math.max(1,a.added.start)).from,l=n.has(o);return r.field(qa.editorEditorField).dispatch({effects:Ry.of({pos:o,add:!l})})}var Tp=Ju.StateField.define({create:()=>new Set,update(t,e){let r=new Set;for(let n of e.effects)n.is(Ry)&&(n.value.add?t.add(n.value.pos):t.delete(n.value.pos));for(let n of t)r.add(e.changes.mapPos(n));return r}}),GO=Ju.StateField.define({create:t=>HO(t),update(t,e){return e.docChanged||e.effects.some(r=>r.is(Hl)||r.is(Ry))?HO(e.state):t},provide:t=>Cp.showTooltip.computeN([t],e=>e.field(t))}),jO=Cp.EditorView.baseTheme({".cm-tooltip.git-diff-tooltip":{"z-index":"var(--layer-popover)",backgroundColor:"var(--background-primary-alt)",border:"var(--border-width) solid var(--background-primary-alt)",borderRadius:"var(--radius-s)"},".cm-tooltip.git-diff-tooltip .tooltip-toolbar":{display:"flex",padding:"var(--size-2-1)"}});function HO(t){let e=t.field($r);return e?[...t.field(Tp)].map(n=>{let i=t.doc.lineAt(n),s=Nt.findHunk(i.number,e.hunks)[0];if(s)return{pos:n,above:!1,arrow:!1,strictSide:!0,clip:!1,create:()=>$V(s,t,n)}}).filter(n=>n!==void 0):[]}function $V(t,e,r){var g,v;let n=Nt.createPatch("file",[t],"10064",!1).join(` `)+` -`,n=_p(i,{colorScheme:AO.ColorSchemeType.AUTO,diffStyle:"word",drawFileList:!1}),s=new DOMParser().parseFromString(n,"text/html").querySelector(".d2h-file-diff"),a=document.createElement("div"),o=document.createElement("div");o.addClass("tooltip-toolbar");let l=(w,b)=>{let k=document.createElement("div");return(0,ja.setIcon)(k,w),k.setAttr("aria-label",b),k.addClass("clickable-icon"),k},c=l("x","Close hunk"),u=l("plus","Stage hunk"),f=l("undo","Reset hunk");o.appendChild(c),o.appendChild(u),o.appendChild(f),a.appendChild(o),a.appendChild(s),a.addClass("git-diff-tooltip","git-diff");let d=e.field(ja.editorEditorField);c.onclick=()=>{Ys(d,r)},u.onclick=()=>{let w=Ii.plugin;w&&(w.promiseQueue.addTask(()=>w.hunkActions.stageHunk(r)),Ys(d,r))},f.onclick=()=>{let w=Ii.plugin;w&&(w.hunkActions.resetHunk(r),Ys(d,r))};let h=(v=(g=Ii.plugin)==null?void 0:g.app.workspace.getActiveViewOfType(ja.MarkdownView))==null?void 0:v.scope,m=h==null?void 0:h.register(null,"Escape",(w,b)=>{Ys(d,r)});return{dom:a,destroy:()=>{m&&(h==null||h.unregister(m))},update:w=>{r=w.changes.mapPos(r)}}}function PO(t){let e=t.app;t.addCommand({id:"edit-gitignore",name:"Edit .gitignore",callback:async()=>{let r=t.gitManager.getRelativeVaultPath(".gitignore");await e.vault.adapter.exists(r)||await e.vault.adapter.write(r,"");let i=await e.vault.adapter.read(r),s=await new op(e,i).openAndGetReslt();s!==void 0&&(await e.vault.adapter.write(r,s),await t.refresh())}}),t.addCommand({id:"open-git-view",name:"Open source control view",callback:async()=>{var n;let r=e.workspace.getLeavesOfType(zt.type),i;r.length===0?(i=(n=e.workspace.getRightLeaf(!1))!=null?n:e.workspace.getLeaf(),await i.setViewState({type:zt.type})):i=r.first(),await e.workspace.revealLeaf(i),e.workspace.trigger("obsidian-git:refresh")}}),t.addCommand({id:"open-history-view",name:"Open history view",callback:async()=>{var n;let r=e.workspace.getLeavesOfType(gi.type),i;r.length===0?(i=(n=e.workspace.getRightLeaf(!1))!=null?n:e.workspace.getLeaf(),await i.setViewState({type:gi.type})):i=r.first(),await e.workspace.revealLeaf(i),e.workspace.trigger("obsidian-git:refresh")}}),t.addCommand({id:"open-diff-view",name:"Open diff view",checkCallback:r=>{let i=e.workspace.getActiveFile();if(r)return i!==null;{let n=t.gitManager.getRelativeRepoPath(i.path,!0);t.tools.openDiff({aFile:n,aRef:""})}}}),t.addCommand({id:"view-file-on-github",name:"Open file on GitHub",editorCallback:(r,{file:i})=>{if(i)return vI(r,i,t.gitManager)}}),t.addCommand({id:"view-history-on-github",name:"Open file history on GitHub",editorCallback:(r,{file:i})=>{if(i)return wI(i,t.gitManager)}}),t.addCommand({id:"pull",name:"Pull",callback:()=>t.promiseQueue.addTask(()=>t.pullChangesFromRemote())}),t.addCommand({id:"fetch",name:"Fetch",callback:()=>t.promiseQueue.addTask(()=>t.fetch())}),t.addCommand({id:"switch-to-remote-branch",name:"Switch to remote branch",callback:()=>t.promiseQueue.addTask(()=>t.switchRemoteBranch())}),t.addCommand({id:"add-to-gitignore",name:"Add file to .gitignore",checkCallback:r=>{let i=e.workspace.getActiveFile();if(r)return i!==null;t.addFileToGitignore(i.path,i instanceof Ni.TFolder).catch(n=>t.displayError(n))}}),t.addCommand({id:"push",name:"Commit-and-sync",callback:()=>t.promiseQueue.addTask(()=>t.commitAndSync({fromAutoBackup:!1}))}),t.addCommand({id:"backup-and-close",name:"Commit-and-sync and then close Obsidian",callback:()=>t.promiseQueue.addTask(async()=>{await t.commitAndSync({fromAutoBackup:!1}),window.close()})}),t.addCommand({id:"commit-push-specified-message",name:"Commit-and-sync with specific message",callback:()=>t.promiseQueue.addTask(()=>t.commitAndSync({fromAutoBackup:!1,requestCustomMessage:!0}))}),t.addCommand({id:"commit",name:"Commit all changes",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1}))}),t.addCommand({id:"commit-specified-message",name:"Commit all changes with specific message",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0}))}),t.addCommand({id:"commit-smart",name:"Commit",callback:()=>t.promiseQueue.addTask(async()=>{let i=(await t.updateCachedStatus()).staged.length>0;return t.commit({fromAuto:!1,requestCustomMessage:!1,onlyStaged:i})})}),t.addCommand({id:"commit-staged",name:"Commit staged",checkCallback:function(r){if(r)return!1;t.promiseQueue.addTask(async()=>t.commit({fromAuto:!1,requestCustomMessage:!1}))}}),Ni.Platform.isDesktopApp&&t.addCommand({id:"commit-amend-staged-specified-message",name:"Amend staged",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0,amend:!0}))}),t.addCommand({id:"commit-smart-specified-message",name:"Commit with specific message",callback:()=>t.promiseQueue.addTask(async()=>{let i=(await t.updateCachedStatus()).staged.length>0;return t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:i})})}),t.addCommand({id:"commit-staged-specified-message",name:"Commit staged with specific message",checkCallback:function(r){return r?!1:t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0}))}}),t.addCommand({id:"push2",name:"Push",callback:()=>t.promiseQueue.addTask(()=>t.push())}),t.addCommand({id:"stage-current-file",name:"Stage current file",checkCallback:r=>{let i=e.workspace.getActiveFile();if(r)return i!==null;t.promiseQueue.addTask(()=>t.stageFile(i))}}),t.addCommand({id:"unstage-current-file",name:"Unstage current file",checkCallback:r=>{let i=e.workspace.getActiveFile();if(r)return i!==null;t.promiseQueue.addTask(()=>t.unstageFile(i))}}),t.addCommand({id:"edit-remotes",name:"Edit remotes",callback:()=>t.editRemotes().catch(r=>t.displayError(r))}),t.addCommand({id:"remove-remote",name:"Remove remote",callback:()=>t.removeRemote().catch(r=>t.displayError(r))}),t.addCommand({id:"set-upstream-branch",name:"Set upstream branch",callback:()=>t.setUpstreamBranch().catch(r=>t.displayError(r))}),t.addCommand({id:"delete-repo",name:"CAUTION: Delete repository",callback:async()=>{await e.vault.adapter.exists(`${t.settings.basePath}/.git`)?await new Qe(t,{options:["NO","YES"],placeholder:"Do you really want to delete the repository (.git directory)? plugin action cannot be undone.",onlySelection:!0}).openAndGetResult()==="YES"&&(await e.vault.adapter.rmdir(`${t.settings.basePath}/.git`,!0),new Ni.Notice("Successfully deleted repository. Reloading plugin..."),t.unloadPlugin(),await t.init({fromReload:!0})):new Ni.Notice("No repository found")}}),t.addCommand({id:"init-repo",name:"Initialize a new repo",callback:()=>t.createNewRepo().catch(r=>t.displayError(r))}),t.addCommand({id:"clone-repo",name:"Clone an existing remote repo",callback:()=>t.cloneNewRepo().catch(r=>t.displayError(r))}),t.addCommand({id:"list-changed-files",name:"List changed files",callback:async()=>{if(await t.isAllInitialized())try{let r=await t.updateCachedStatus();if(r.changed.length+r.staged.length>500){t.displayError("Too many changes to display");return}new ap(t,r.all).open()}catch(r){t.displayError(r)}}}),t.addCommand({id:"switch-branch",name:"Switch branch",callback:()=>{t.switchBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"create-branch",name:"Create new branch",callback:()=>{t.createBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"delete-branch",name:"Delete branch",callback:()=>{t.deleteBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"discard-all",name:"CAUTION: Discard all changes",callback:async()=>{let r=await t.discardAll();switch(r){case"discard":new Ni.Notice("Discarded all changes in tracked files.");break;case"delete":new Ni.Notice("Discarded all files.");break;case!1:break;default:wh(r)}}}),t.addCommand({id:"pause-automatic-routines",name:"Pause/Resume automatic routines",callback:()=>{let r=!t.localStorage.getPausedAutomatics();t.localStorage.setPausedAutomatics(r),r?(t.automaticsManager.unload(),new Ni.Notice("Paused automatic routines.")):(t.automaticsManager.reload("commit","push","pull"),new Ni.Notice("Resumed automatic routines."))}}),t.addCommand({id:"raw-command",name:"Raw command",checkCallback:r=>{let i=t.gitManager;if(r)return i instanceof Se;t.tools.runRawCommand().catch(n=>t.displayError(n))}}),t.addCommand({id:"toggle-line-author-info",name:"Toggle line author information",callback:()=>{var r;return(r=t.settingsTab)==null?void 0:r.configureLineAuthorShowStatus(!t.settings.lineAuthor.show)}}),t.addCommand({id:"reset-hunk",name:"Reset hunk",editorCheckCallback(r,i,n){if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.hunkActions.resetHunk()}}),t.addCommand({id:"stage-hunk",name:"Stage hunk",editorCheckCallback:(r,i,n)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.promiseQueue.addTask(()=>t.hunkActions.stageHunk())}}),t.addCommand({id:"preview-hunk",name:"Preview hunk",editorCheckCallback:(r,i,n)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;let s=t.hunkActions.editor.editor;Ys(s)}}),t.addCommand({id:"next-hunk",name:"Go to next hunk",editorCheckCallback:(r,i,n)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.hunkActions.goToHunk("next")}}),t.addCommand({id:"prev-hunk",name:"Go to previous hunk",editorCheckCallback:(r,i,n)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.hunkActions.goToHunk("prev")}})}p();var Ep=class{constructor(e){this.plugin=e;this.prefix=this.plugin.manifest.id+":",this.app=e.app}migrate(){let e=["password","hostname","conflict","lastAutoPull","lastAutoBackup","lastAutoPush","gitPath","pluginDisabled"];for(let r of e){let i=localStorage.getItem(this.prefix+r);this.app.loadLocalStorage(this.prefix+r)==null&&i!=null&&i!=null&&(this.app.saveLocalStorage(this.prefix+r,i),localStorage.removeItem(this.prefix+r))}}getPassword(){return this.app.loadLocalStorage(this.prefix+"password")}setPassword(e){return this.app.saveLocalStorage(this.prefix+"password",e)}getUsername(){return this.app.loadLocalStorage(this.prefix+"username")}setUsername(e){return this.app.saveLocalStorage(this.prefix+"username",e)}getHostname(){return this.app.loadLocalStorage(this.prefix+"hostname")}setHostname(e){return this.app.saveLocalStorage(this.prefix+"hostname",e)}getConflict(){return this.app.loadLocalStorage(this.prefix+"conflict")=="true"}setConflict(e){return this.app.saveLocalStorage(this.prefix+"conflict",`${e}`)}getLastAutoPull(){return this.app.loadLocalStorage(this.prefix+"lastAutoPull")}setLastAutoPull(e){return this.app.saveLocalStorage(this.prefix+"lastAutoPull",e)}getLastAutoBackup(){return this.app.loadLocalStorage(this.prefix+"lastAutoBackup")}setLastAutoBackup(e){return this.app.saveLocalStorage(this.prefix+"lastAutoBackup",e)}getLastAutoPush(){return this.app.loadLocalStorage(this.prefix+"lastAutoPush")}setLastAutoPush(e){return this.app.saveLocalStorage(this.prefix+"lastAutoPush",e)}getGitPath(){return this.app.loadLocalStorage(this.prefix+"gitPath")}setGitPath(e){return this.app.saveLocalStorage(this.prefix+"gitPath",e)}getPATHPaths(){var e,r;return(r=(e=this.app.loadLocalStorage(this.prefix+"PATHPaths"))==null?void 0:e.split(":"))!=null?r:[]}setPATHPaths(e){return this.app.saveLocalStorage(this.prefix+"PATHPaths",e.join(":"))}getEnvVars(){var e;return JSON.parse((e=this.app.loadLocalStorage(this.prefix+"envVars"))!=null?e:"[]")}setEnvVars(e){return this.app.saveLocalStorage(this.prefix+"envVars",JSON.stringify(e))}getPluginDisabled(){return this.app.loadLocalStorage(this.prefix+"pluginDisabled")=="true"}setPluginDisabled(e){return this.app.saveLocalStorage(this.prefix+"pluginDisabled",`${e}`)}getPausedAutomatics(){return this.app.loadLocalStorage(this.prefix+"pausedAutomatics")=="true"}setPausedAutomatics(e){return this.app.saveLocalStorage(this.prefix+"pausedAutomatics",`${e}`)}};p();var Ul=require("obsidian");var Yu=class{constructor(e){this.plugin=e}async hasTooBigFiles(e){let r=await this.plugin.gitManager.branchInfo(),i=r.tracking?Zn(r.tracking)[0]:null;if(!i)return!1;let n=await this.plugin.gitManager.getRemoteUrl(i);if(n!=null&&n.includes("github.com")){let s=[],a=this.plugin.gitManager;for(let o of e){let l=this.plugin.app.vault.getAbstractFileByPath(o.vaultPath),c=!1;if(l instanceof Ul.TFile)l.stat.size>=1e8&&(c=!0);else{let u=await this.plugin.app.vault.adapter.stat(o.vaultPath);u&&u.size>=1e8&&(c=!0)}if(c){let u=!1;a instanceof Se&&(u=await a.isFileTrackedByLFS(o.path)),u||s.push(o)}}if(s.length>0)return this.plugin.displayError(`Aborted commit, because the following files are too big: +`,i=Ap(n,{colorScheme:UO.ColorSchemeType.AUTO,diffStyle:"word",drawFileList:!1}),s=new DOMParser().parseFromString(i,"text/html").querySelector(".d2h-file-diff"),a=document.createElement("div"),o=document.createElement("div");o.addClass("tooltip-toolbar");let l=(w,b)=>{let k=document.createElement("div");return(0,qa.setIcon)(k,w),k.setAttr("aria-label",b),k.addClass("clickable-icon"),k},c=l("x","Close hunk"),u=l("plus","Stage hunk"),f=l("undo","Reset hunk");o.appendChild(c),o.appendChild(u),o.appendChild(f),a.appendChild(o),a.appendChild(s),a.addClass("git-diff-tooltip","git-diff");let d=e.field(qa.editorEditorField);c.onclick=()=>{Xs(d,r)},u.onclick=()=>{let w=Ln.plugin;w&&(w.promiseQueue.addTask(()=>w.hunkActions.stageHunk(r)),Xs(d,r))},f.onclick=()=>{let w=Ln.plugin;w&&(w.hunkActions.resetHunk(r),Xs(d,r))};let h=(v=(g=Ln.plugin)==null?void 0:g.app.workspace.getActiveViewOfType(qa.MarkdownView))==null?void 0:v.scope,m=h==null?void 0:h.register(null,"Escape",(w,b)=>{Xs(d,r)});return{dom:a,destroy:()=>{m&&(h==null||h.unregister(m))},update:w=>{r=w.changes.mapPos(r)}}}function qO(t){let e=t.app;t.addCommand({id:"edit-gitignore",name:"Edit .gitignore",callback:async()=>{let r=t.gitManager.getRelativeVaultPath(".gitignore");await e.vault.adapter.exists(r)||await e.vault.adapter.write(r,"");let n=await e.vault.adapter.read(r),s=await new dp(e,n).openAndGetReslt();s!==void 0&&(await e.vault.adapter.write(r,s),await t.refresh())}}),t.addCommand({id:"open-git-view",name:"Open source control view",callback:async()=>{var i;let r=e.workspace.getLeavesOfType(jt.type),n;r.length===0?(n=(i=e.workspace.getRightLeaf(!1))!=null?i:e.workspace.getLeaf(),await n.setViewState({type:jt.type})):n=r.first(),await e.workspace.revealLeaf(n),e.workspace.trigger("obsidian-git:refresh")}}),t.addCommand({id:"open-history-view",name:"Open history view",callback:async()=>{var i;let r=e.workspace.getLeavesOfType(gn.type),n;r.length===0?(n=(i=e.workspace.getRightLeaf(!1))!=null?i:e.workspace.getLeaf(),await n.setViewState({type:gn.type})):n=r.first(),await e.workspace.revealLeaf(n),e.workspace.trigger("obsidian-git:refresh")}}),t.addCommand({id:"open-diff-view",name:"Open diff view",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;{let i=t.gitManager.getRelativeRepoPath(n.path,!0);t.tools.openDiff({aFile:i,aRef:""})}}}),t.addCommand({id:"view-file-on-github",name:"Open file on GitHub",editorCallback:(r,{file:n})=>{if(n)return IF(r,n,t.gitManager)}}),t.addCommand({id:"view-history-on-github",name:"Open file history on GitHub",editorCallback:(r,{file:n})=>{if(n)return FF(n,t.gitManager)}}),t.addCommand({id:"pull",name:"Pull",callback:()=>t.promiseQueue.addTask(()=>t.pullChangesFromRemote())}),t.addCommand({id:"fetch",name:"Fetch",callback:()=>t.promiseQueue.addTask(()=>t.fetch())}),t.addCommand({id:"switch-to-remote-branch",name:"Switch to remote branch",callback:()=>t.promiseQueue.addTask(()=>t.switchRemoteBranch())}),t.addCommand({id:"add-to-gitignore",name:"Add file to .gitignore",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;t.addFileToGitignore(n.path,n instanceof jn.TFolder).catch(i=>t.displayError(i))}}),t.addCommand({id:"push",name:"Commit-and-sync",callback:()=>t.promiseQueue.addTask(()=>t.commitAndSync({fromAutoBackup:!1}))}),t.addCommand({id:"backup-and-close",name:"Commit-and-sync and then close Obsidian",callback:()=>t.promiseQueue.addTask(async()=>{await t.commitAndSync({fromAutoBackup:!1}),window.close()})}),t.addCommand({id:"commit-push-specified-message",name:"Commit-and-sync with specific message",callback:()=>t.promiseQueue.addTask(()=>t.commitAndSync({fromAutoBackup:!1,requestCustomMessage:!0}))}),t.addCommand({id:"commit",name:"Commit all changes",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1}))}),t.addCommand({id:"commit-specified-message",name:"Commit all changes with specific message",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0}))}),t.addCommand({id:"commit-smart",name:"Commit",callback:()=>t.promiseQueue.addTask(async()=>{let n=(await t.updateCachedStatus()).staged.length>0;return t.commit({fromAuto:!1,requestCustomMessage:!1,onlyStaged:n})})}),t.addCommand({id:"commit-staged",name:"Commit staged",checkCallback:function(r){if(r)return!1;t.promiseQueue.addTask(async()=>t.commit({fromAuto:!1,requestCustomMessage:!1}))}}),jn.Platform.isDesktopApp&&t.addCommand({id:"commit-amend-staged-specified-message",name:"Amend staged",callback:()=>t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0,amend:!0}))}),t.addCommand({id:"commit-smart-specified-message",name:"Commit with specific message",callback:()=>t.promiseQueue.addTask(async()=>{let n=(await t.updateCachedStatus()).staged.length>0;return t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:n})})}),t.addCommand({id:"commit-staged-specified-message",name:"Commit staged with specific message",checkCallback:function(r){return r?!1:t.promiseQueue.addTask(()=>t.commit({fromAuto:!1,requestCustomMessage:!0,onlyStaged:!0}))}}),t.addCommand({id:"push2",name:"Push",callback:()=>t.promiseQueue.addTask(()=>t.push())}),t.addCommand({id:"stage-current-file",name:"Stage current file",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;t.promiseQueue.addTask(()=>t.stageFile(n))}}),t.addCommand({id:"unstage-current-file",name:"Unstage current file",checkCallback:r=>{let n=e.workspace.getActiveFile();if(r)return n!==null;t.promiseQueue.addTask(()=>t.unstageFile(n))}}),t.addCommand({id:"edit-remotes",name:"Edit remotes",callback:()=>t.editRemotes().catch(r=>t.displayError(r))}),t.addCommand({id:"remove-remote",name:"Remove remote",callback:()=>t.removeRemote().catch(r=>t.displayError(r))}),t.addCommand({id:"set-upstream-branch",name:"Set upstream branch",callback:()=>t.setUpstreamBranch().catch(r=>t.displayError(r))}),t.addCommand({id:"delete-repo",name:"CAUTION: Delete repository",callback:async()=>{await e.vault.adapter.exists(`${t.settings.basePath}/.git`)?await new Ze(t,{options:["NO","YES"],placeholder:"Do you really want to delete the repository (.git directory)? plugin action cannot be undone.",onlySelection:!0}).openAndGetResult()==="YES"&&(await e.vault.adapter.rmdir(`${t.settings.basePath}/.git`,!0),new jn.Notice("Successfully deleted repository. Reloading plugin..."),t.unloadPlugin(),await t.init({fromReload:!0})):new jn.Notice("No repository found")}}),t.addCommand({id:"init-repo",name:"Initialize a new repo",callback:()=>t.createNewRepo().catch(r=>t.displayError(r))}),t.addCommand({id:"clone-repo",name:"Clone an existing remote repo",callback:()=>t.cloneNewRepo().catch(r=>t.displayError(r))}),t.addCommand({id:"list-changed-files",name:"List changed files",callback:async()=>{if(await t.isAllInitialized())try{let r=await t.updateCachedStatus();if(r.changed.length+r.staged.length>500){t.displayError("Too many changes to display");return}new fp(t,r.all).open()}catch(r){t.displayError(r)}}}),t.addCommand({id:"switch-branch",name:"Switch branch",callback:()=>{t.switchBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"create-branch",name:"Create new branch",callback:()=>{t.createBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"delete-branch",name:"Delete branch",callback:()=>{t.deleteBranch().catch(r=>t.displayError(r))}}),t.addCommand({id:"discard-all",name:"CAUTION: Discard all changes",callback:async()=>{let r=await t.discardAll();switch(r){case"discard":new jn.Notice("Discarded all changes in tracked files.");break;case"delete":new jn.Notice("Discarded all files.");break;case!1:break;default:Eh(r)}}}),t.addCommand({id:"pause-automatic-routines",name:"Pause/Resume automatic routines",callback:()=>{let r=!t.localStorage.getPausedAutomatics();t.localStorage.setPausedAutomatics(r),r?(t.automaticsManager.unload(),new jn.Notice("Paused automatic routines.")):(t.automaticsManager.reload("commit","push","pull"),new jn.Notice("Resumed automatic routines."))}}),t.addCommand({id:"raw-command",name:"Raw command",checkCallback:r=>{let n=t.gitManager;if(r)return n instanceof Se;t.tools.runRawCommand().catch(i=>t.displayError(i))}}),t.addCommand({id:"toggle-line-author-info",name:"Toggle line author information",callback:()=>{var r;return(r=t.settingsTab)==null?void 0:r.configureLineAuthorShowStatus(!t.settings.lineAuthor.show)}}),t.addCommand({id:"reset-hunk",name:"Reset hunk",editorCheckCallback(r,n,i){if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.hunkActions.resetHunk()}}),t.addCommand({id:"stage-hunk",name:"Stage hunk",editorCheckCallback:(r,n,i)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.promiseQueue.addTask(()=>t.hunkActions.stageHunk())}}),t.addCommand({id:"preview-hunk",name:"Preview hunk",editorCheckCallback:(r,n,i)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;let s=t.hunkActions.editor.editor;Xs(s)}}),t.addCommand({id:"next-hunk",name:"Go to next hunk",editorCheckCallback:(r,n,i)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.hunkActions.goToHunk("next")}}),t.addCommand({id:"prev-hunk",name:"Go to previous hunk",editorCheckCallback:(r,n,i)=>{if(r)return t.settings.hunks.hunkCommands&&t.hunkActions.editor!==void 0;t.hunkActions.goToHunk("prev")}})}p();var Pp=class{constructor(e){this.plugin=e;this.prefix=this.plugin.manifest.id+":",this.app=e.app}migrate(){let e=["password","hostname","conflict","lastAutoPull","lastAutoBackup","lastAutoPush","gitPath","pluginDisabled"];for(let r of e){let n=localStorage.getItem(this.prefix+r);this.app.loadLocalStorage(this.prefix+r)==null&&n!=null&&n!=null&&(this.app.saveLocalStorage(this.prefix+r,n),localStorage.removeItem(this.prefix+r))}}getPassword(){return this.app.loadLocalStorage(this.prefix+"password")}setPassword(e){return this.app.saveLocalStorage(this.prefix+"password",e)}getUsername(){return this.app.loadLocalStorage(this.prefix+"username")}setUsername(e){return this.app.saveLocalStorage(this.prefix+"username",e)}getHostname(){return this.app.loadLocalStorage(this.prefix+"hostname")}setHostname(e){return this.app.saveLocalStorage(this.prefix+"hostname",e)}getConflict(){return this.app.loadLocalStorage(this.prefix+"conflict")=="true"}setConflict(e){return this.app.saveLocalStorage(this.prefix+"conflict",`${e}`)}getLastAutoPull(){return this.app.loadLocalStorage(this.prefix+"lastAutoPull")}setLastAutoPull(e){return this.app.saveLocalStorage(this.prefix+"lastAutoPull",e)}getLastAutoBackup(){return this.app.loadLocalStorage(this.prefix+"lastAutoBackup")}setLastAutoBackup(e){return this.app.saveLocalStorage(this.prefix+"lastAutoBackup",e)}getLastAutoPush(){return this.app.loadLocalStorage(this.prefix+"lastAutoPush")}setLastAutoPush(e){return this.app.saveLocalStorage(this.prefix+"lastAutoPush",e)}getGitPath(){return this.app.loadLocalStorage(this.prefix+"gitPath")}setGitPath(e){return this.app.saveLocalStorage(this.prefix+"gitPath",e)}getPATHPaths(){var e,r;return(r=(e=this.app.loadLocalStorage(this.prefix+"PATHPaths"))==null?void 0:e.split(":"))!=null?r:[]}setPATHPaths(e){return this.app.saveLocalStorage(this.prefix+"PATHPaths",e.join(":"))}getEnvVars(){var e;return JSON.parse((e=this.app.loadLocalStorage(this.prefix+"envVars"))!=null?e:"[]")}setEnvVars(e){return this.app.saveLocalStorage(this.prefix+"envVars",JSON.stringify(e))}getPluginDisabled(){return this.app.loadLocalStorage(this.prefix+"pluginDisabled")=="true"}setPluginDisabled(e){return this.app.saveLocalStorage(this.prefix+"pluginDisabled",`${e}`)}getPausedAutomatics(){return this.app.loadLocalStorage(this.prefix+"pausedAutomatics")=="true"}setPausedAutomatics(e){return this.app.saveLocalStorage(this.prefix+"pausedAutomatics",`${e}`)}};p();var Vl=require("obsidian");var ef=class{constructor(e){this.plugin=e}async hasTooBigFiles(e){let r=await this.plugin.gitManager.branchInfo(),n=r.tracking?Qi(r.tracking)[0]:null;if(!n)return!1;let i=await this.plugin.gitManager.getRemoteUrl(n);if(i!=null&&i.includes("github.com")){let s=[],a=this.plugin.gitManager;for(let o of e){let l=this.plugin.app.vault.getAbstractFileByPath(o.vaultPath),c=!1;if(l instanceof Vl.TFile)l.stat.size>=1e8&&(c=!0);else{let u=await this.plugin.app.vault.adapter.stat(o.vaultPath);u&&u.size>=1e8&&(c=!0)}if(c){let u=!1;a instanceof Se&&(u=await a.isFileTrackedByLFS(o.path)),u||s.push(o)}}if(s.length>0)return this.plugin.displayError(`Aborted commit, because the following files are too big: - ${s.map(o=>o.vaultPath).join(` - `)} -Please remove them or add to .gitignore.`),!0}return!1}async writeAndOpenFile(e){e!==void 0&&await this.plugin.app.vault.adapter.write(al,e);let r=!1;this.plugin.app.workspace.iterateAllLeaves(i=>{i.getDisplayText()!=""&&al.startsWith(i.getDisplayText())&&(r=!0)}),r||await this.plugin.app.workspace.openLinkText(al,"/",!0)}openDiff({aFile:e,bFile:r,aRef:i,bRef:n,event:s}){var l,c;let a=this.plugin.settings.diffStyle;Ul.Platform.isMobileApp&&(a="git_unified");let o={aFile:e,bFile:r!=null?r:e,aRef:i,bRef:n};a=="split"?(l=Mi(this.plugin.app,s))==null||l.setViewState({type:Ls.type,active:!0,state:o}):a=="git_unified"&&((c=Mi(this.plugin.app,s))==null||c.setViewState({type:Bs.type,active:!0,state:o}))}async runRawCommand(){let e=this.plugin.gitManager;if(!(e instanceof Se))return;let i=await new Qe(this.plugin,{placeholder:"push origin master",allowEmpty:!1}).openAndGetResult();i!==void 0&&this.plugin.promiseQueue.addTask(async()=>{let n=new Ul.Notice(`Running '${i}'...`,999999);try{let s=await e.rawCommand(i);s?(n.setMessage(s),window.setTimeout(()=>n.hide(),5e3)):n.hide()}catch(s){throw n.hide(),s}})}};p();var kp=require("obsidian");var qa=class extends kp.ItemView{constructor(r,i){super(r);this.plugin=i;this.gettingDiff=!1;this.parser=new DOMParser,this.navigation=!0,this.contentEl.addClass("git-diff"),this.gitRefreshRef=this.app.workspace.on("obsidian-git:status-changed",()=>{this.refresh().catch(console.error)})}getViewType(){return Bs.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let i=this.state.bFile.split("/").last();return i!=null&&i.endsWith(".md")&&(i=i.slice(0,-3)),`Diff: ${i}`}return Bs.name}getIcon(){return Bs.icon}async setState(r,i){this.state=r,kp.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await this.refresh()}getState(){return this.state}onClose(){return this.app.workspace.offref(this.gitRefreshRef),this.app.workspace.offref(this.gitViewRefreshRef),super.onClose()}async onOpen(){return await this.refresh(),super.onOpen()}async refresh(){var r;if((r=this.state)!=null&&r.bFile&&!this.gettingDiff&&this.plugin.gitManager){this.gettingDiff=!0;try{let i=await this.plugin.gitManager.getDiffString(this.state.bFile,this.state.aRef=="HEAD",this.state.bRef);this.contentEl.empty();let n=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);if(!i){if(this.plugin.gitManager instanceof Se&&await this.plugin.gitManager.isTracked(this.state.bFile))i=[`--- ${this.state.aFile}`,`+++ ${this.state.bFile}`,""].join(` -`);else if(await this.app.vault.adapter.exists(n)){let s=await this.app.vault.adapter.read(n);i=[...`--- /dev/null +Please remove them or add to .gitignore.`),!0}return!1}async writeAndOpenFile(e){e!==void 0&&await this.plugin.app.vault.adapter.write(ol,e);let r=!1;this.plugin.app.workspace.iterateAllLeaves(n=>{n.getDisplayText()!=""&&ol.startsWith(n.getDisplayText())&&(r=!0)}),r||await this.plugin.app.workspace.openLinkText(ol,"/",!0)}openDiff({aFile:e,bFile:r,aRef:n,bRef:i,event:s}){var l,c;let a=this.plugin.settings.diffStyle;Vl.Platform.isMobileApp&&(a="git_unified");let o={aFile:e,bFile:r!=null?r:e,aRef:n,bRef:i};a=="split"?(l=Bn(this.plugin.app,s))==null||l.setViewState({type:Ns.type,active:!0,state:o}):a=="git_unified"&&((c=Bn(this.plugin.app,s))==null||c.setViewState({type:Bs.type,active:!0,state:o}))}async runRawCommand(){let e=this.plugin.gitManager;if(!(e instanceof Se))return;let n=await new Ze(this.plugin,{placeholder:"push origin master",allowEmpty:!1}).openAndGetResult();n!==void 0&&this.plugin.promiseQueue.addTask(async()=>{let i=new Vl.Notice(`Running '${n}'...`,999999);try{let s=await e.rawCommand(n);s?(i.setMessage(s),window.setTimeout(()=>i.hide(),5e3)):i.hide()}catch(s){throw i.hide(),s}})}};p();var Rp=require("obsidian");var Wa=class extends Rp.ItemView{constructor(r,n){super(r);this.plugin=n;this.gettingDiff=!1;this.parser=new DOMParser,this.navigation=!0,this.contentEl.addClass("git-diff"),this.gitRefreshRef=this.app.workspace.on("obsidian-git:status-changed",()=>{this.refresh().catch(console.error)})}getViewType(){return Bs.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();return n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3)),`Diff: ${n}`}return Bs.name}getIcon(){return Bs.icon}async setState(r,n){this.state=r,Rp.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await this.refresh()}getState(){return this.state}onClose(){return this.app.workspace.offref(this.gitRefreshRef),this.app.workspace.offref(this.gitViewRefreshRef),super.onClose()}async onOpen(){return await this.refresh(),super.onOpen()}async refresh(){var r;if((r=this.state)!=null&&r.bFile&&!this.gettingDiff&&this.plugin.gitManager){this.gettingDiff=!0;try{let n=await this.plugin.gitManager.getDiffString(this.state.bFile,this.state.aRef=="HEAD",this.state.bRef);this.contentEl.empty();let i=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);if(!n){if(this.plugin.gitManager instanceof Se&&await this.plugin.gitManager.isTracked(this.state.bFile))n=[`--- ${this.state.aFile}`,`+++ ${this.state.bFile}`,""].join(` +`);else if(await this.app.vault.adapter.exists(i)){let s=await this.app.vault.adapter.read(i);n=[...`--- /dev/null +++ ${this.state.bFile} @@ -0,0 +1,${s.split(` `).length} @@`.split(` `),...s.split(` `).map(o=>`+${o}`)].join(` -`)}}if(i){let s=this.parser.parseFromString(_p(i),"text/html").querySelector(".d2h-file-diff");this.contentEl.append(s)}else{let s=this.contentEl.createDiv({cls:"obsidian-git-center"});s.createSpan({text:"\u26A0\uFE0F",attr:{style:"font-size: 2em"}}),s.createEl("br"),s.createSpan({text:"File not found: "+this.state.bFile})}}finally{this.gettingDiff=!1}}}};p();var ts=require("obsidian");var jl=require("@codemirror/commands");var Ap=require("@codemirror/search"),Gl=require("@codemirror/state"),_i=require("@codemirror/view");var za=class extends ts.ItemView{constructor(r,i){super(r);this.plugin=i;this.refreshing=!1;this.ignoreNextModification=!1;this.navigation=!0,this.registerEvent(this.app.workspace.on("obsidian-git:status-changed",()=>{this.mergeView?this.updateRefEditors().catch(console.error):this.createMergeView().catch(console.error)})),this.intervalRef=window.setInterval(()=>{this.mergeView&&this.updateRefEditors().catch(console.error)},30*1e3),this.registerEvent(this.app.vault.on("modify",n=>{this.state.bRef==null&&n.path===this.state.bFile&&(this.ignoreNextModification?this.ignoreNextModification=!1:this.updateModifiableEditor().catch(console.error))})),this.registerEvent(this.app.vault.on("delete",n=>{this.state.bRef==null&&n.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("create",n=>{this.state.bRef==null&&n.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("rename",(n,s)=>{this.state.bRef==null&&(n.path===this.state.bFile||s===this.state.bFile)&&this.createMergeView().catch(console.error)})),this.fileSaveDebouncer=(0,ts.debounce)(n=>{let s=this.state.bFile;s&&(this.ignoreNextModification=!0,this.plugin.app.vault.adapter.write(this.plugin.gitManager.getRelativeVaultPath(s),n).catch(a=>this.plugin.displayError(a)))},1e3,!1)}getViewType(){return Ls.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let i=this.state.bFile.split("/").last();i!=null&&i.endsWith(".md")&&(i=i.slice(0,-3));let n;return this.state.bRef==null?n=" (Working Tree)":this.state.bRef==""?n=" (Index)":n="("+this.state.bRef.substring(0,7)+")",`Diff: ${i} ${n}`}return Ls.name}getIcon(){return Ls.icon}async setState(r,i){this.state=r,ts.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await super.setState(r,i),await this.createMergeView()}getState(){return this.state}onClose(){return window.clearInterval(this.intervalRef),super.onClose()}async onOpen(){return await this.createMergeView(),super.onOpen()}async gitShow(r,i){try{return await this.plugin.gitManager.show(r,i,!1)}catch(n){if(n instanceof Rr&&(n.message.includes("does not exist")||n.message.includes("unknown revision or path")||n.message.includes("exists on disk, but not in")||n.message.includes("fatal: bad object")))return n.message.includes("fatal: bad object")&&this.plugin.displayError(n.message),"";throw n}}async bShouldBeEditable(){if(this.state.bRef!=null)return!1;let r=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);return await this.app.vault.adapter.exists(r)}async updateModifiableEditor(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.b;this.refreshing=!0;let i=await this.app.vault.adapter.read(this.state.bFile);if(i!=r.state.doc.toString()){let n=r.state.update({changes:{from:0,to:r.state.doc.length,insert:i},annotations:[Gl.Transaction.remote.of(!0)]});r.dispatch(n)}this.refreshing=!1}async updateRefEditors(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.a,i=this.mergeView.b;this.refreshing=!0;let n=await this.gitShow(this.state.aRef,this.state.aFile),s;if(this.state.bRef!=null&&(s=await this.gitShow(this.state.bRef,this.state.bFile)),n!=r.state.doc.toString()){let a=r.state.update({changes:{from:0,to:r.state.doc.length,insert:n}});r.dispatch(a)}if(s!=null&&s!=i.state.doc.toString()){let a=i.state.update({changes:{from:0,to:i.state.doc.length,insert:s}});i.dispatch(a)}this.refreshing=!1}renderButtons(){let r=document.createElement("div"),i=r.createDiv();if(i.addClass("clickable-icon"),i.setAttr("aria-label",this.state.bRef==null?"Stage hunk":"Unstage hunk"),(0,ts.setIcon)(i,this.state.bRef==null?"plus":"minus"),i.onmousedown=async n=>{var h;let s=this.mergeView.b,a=this.mergeView.a,o=oy(s.state),l=(h=r.parentElement)==null?void 0:h.indexOf(r),c=o.chunks[l],u=uy(c,a.state.doc,s.state.doc),f=cy(this.mergeView.a.state.doc.toString(),this.mergeView.b.state.doc.toString(),[u])[0],d=Nt.createPatch(this.state.bFile,[f],"100644",this.state.bRef!=null).join(` +`)}}if(n){let s=this.parser.parseFromString(Ap(n),"text/html").querySelector(".d2h-file-diff");this.contentEl.append(s)}else{let s=this.contentEl.createDiv({cls:"obsidian-git-center"});s.createSpan({text:"\u26A0\uFE0F",attr:{style:"font-size: 2em"}}),s.createEl("br"),s.createSpan({text:"File not found: "+this.state.bFile})}}finally{this.gettingDiff=!1}}}};p();var rs=require("obsidian");var Xl=require("@codemirror/commands");var $p=require("@codemirror/search"),Yl=require("@codemirror/state"),kn=require("@codemirror/view");var za=class extends rs.ItemView{constructor(r,n){super(r);this.plugin=n;this.refreshing=!1;this.ignoreNextModification=!1;this.navigation=!0,this.registerEvent(this.app.workspace.on("obsidian-git:status-changed",()=>{this.mergeView?this.updateRefEditors().catch(console.error):this.createMergeView().catch(console.error)})),this.intervalRef=window.setInterval(()=>{this.mergeView&&this.updateRefEditors().catch(console.error)},30*1e3),this.registerEvent(this.app.vault.on("modify",i=>{this.state.bRef==null&&i.path===this.state.bFile&&(this.ignoreNextModification?this.ignoreNextModification=!1:this.updateModifiableEditor().catch(console.error))})),this.registerEvent(this.app.vault.on("delete",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("create",i=>{this.state.bRef==null&&i.path===this.state.bFile&&this.createMergeView().catch(console.error)})),this.registerEvent(this.app.vault.on("rename",(i,s)=>{this.state.bRef==null&&(i.path===this.state.bFile||s===this.state.bFile)&&this.createMergeView().catch(console.error)})),this.fileSaveDebouncer=(0,rs.debounce)(i=>{let s=this.state.bFile;s&&(this.ignoreNextModification=!0,this.plugin.app.vault.adapter.write(this.plugin.gitManager.getRelativeVaultPath(s),i).catch(a=>this.plugin.displayError(a)))},1e3,!1)}getViewType(){return Ns.type}getDisplayText(){var r;if(((r=this.state)==null?void 0:r.bFile)!=null){let n=this.state.bFile.split("/").last();n!=null&&n.endsWith(".md")&&(n=n.slice(0,-3));let i;return this.state.bRef==null?i=" (Working Tree)":this.state.bRef==""?i=" (Index)":i="("+this.state.bRef.substring(0,7)+")",`Diff: ${n} ${i}`}return Ns.name}getIcon(){return Ns.icon}async setState(r,n){this.state=r,rs.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await super.setState(r,n),await this.createMergeView()}getState(){return this.state}onClose(){return window.clearInterval(this.intervalRef),super.onClose()}async onOpen(){return await this.createMergeView(),super.onOpen()}async gitShow(r,n){try{return await this.plugin.gitManager.show(r,n,!1)}catch(i){if(i instanceof Pr&&(i.message.includes("does not exist")||i.message.includes("unknown revision or path")||i.message.includes("exists on disk, but not in")||i.message.includes("fatal: bad object")))return i.message.includes("fatal: bad object")&&this.plugin.displayError(i.message),"";throw i}}async bShouldBeEditable(){if(this.state.bRef!=null)return!1;let r=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);return await this.app.vault.adapter.exists(r)}async updateModifiableEditor(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.b;this.refreshing=!0;let n=await this.app.vault.adapter.read(this.state.bFile);if(n!=r.state.doc.toString()){let i=r.state.update({changes:{from:0,to:r.state.doc.length,insert:n},annotations:[Yl.Transaction.remote.of(!0)]});r.dispatch(i)}this.refreshing=!1}async updateRefEditors(){if(!this.mergeView||this.refreshing)return;let r=this.mergeView.a,n=this.mergeView.b;this.refreshing=!0;let i=await this.gitShow(this.state.aRef,this.state.aFile),s;if(this.state.bRef!=null&&(s=await this.gitShow(this.state.bRef,this.state.bFile)),i!=r.state.doc.toString()){let a=r.state.update({changes:{from:0,to:r.state.doc.length,insert:i}});r.dispatch(a)}if(s!=null&&s!=n.state.doc.toString()){let a=n.state.update({changes:{from:0,to:n.state.doc.length,insert:s}});n.dispatch(a)}this.refreshing=!1}renderButtons(){let r=document.createElement("div"),n=r.createDiv();if(n.addClass("clickable-icon"),n.setAttr("aria-label",this.state.bRef==null?"Stage hunk":"Unstage hunk"),(0,rs.setIcon)(n,this.state.bRef==null?"plus":"minus"),n.onmousedown=async i=>{var h;let s=this.mergeView.b,a=this.mergeView.a,o=my(s.state),l=(h=r.parentElement)==null?void 0:h.indexOf(r),c=o.chunks[l],u=wy(c,a.state.doc,s.state.doc),f=vy(this.mergeView.a.state.doc.toString(),this.mergeView.b.state.doc.toString(),[u])[0],d=Nt.createPatch(this.state.bFile,[f],"100644",this.state.bRef!=null).join(` `)+` -`;await this.plugin.gitManager.applyPatch(d),this.plugin.app.workspace.trigger("obsidian-git:refresh")},this.state.bRef==null){let n=r.createDiv();n.addClass("clickable-icon"),n.setAttr("aria-label","Reset hunk"),(0,ts.setIcon)(n,"undo"),n.onmousedown=s=>{var f;let a=this.mergeView.a,o=this.mergeView.b,l=oy(o.state),c=(f=r.parentElement)==null?void 0:f.indexOf(r),u=l.chunks[c];if(u){let d=u.fromA,h=u.toA,m=u.fromB,g=u.toB,v=a.state.sliceDoc(d,Math.max(d,h-1));d!=h&&g<=o.state.doc.length&&(v+=a.state.lineBreak),o.dispatch({changes:{from:m,to:Math.min(o.state.doc.length,g),insert:v},userEvent:"revert"})}}}return r.onmousedown=n=>{n.preventDefault(),n.stopPropagation()},r}async createMergeView(){var r,i,n;if((r=this.state)!=null&&r.aFile&&((i=this.state)!=null&&i.bFile)&&!this.refreshing&&this.plugin.gitManager){this.refreshing=!0,(n=this.mergeView)==null||n.destroy();let s=this.containerEl.children[1];s.empty(),this.contentEl.addClass("git-split-diff-view","git-diff"),this.bIsEditable=await this.bShouldBeEditable();let a=await this.gitShow(this.state.aRef,this.state.aFile),o;if(this.state.bRef!=null)o=await this.gitShow(this.state.bRef,this.state.bFile);else{let g=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);await this.app.vault.adapter.exists(g)?o=await this.app.vault.adapter.read(g):o=""}let l=[(0,_i.lineNumbers)(),(0,Ap.highlightSelectionMatches)(),(0,_i.drawSelection)(),_i.keymap.of([...jl.standardKeymap,jl.indentWithTab]),(0,jl.history)(),(0,Ap.search)(),_i.EditorView.lineWrapping],c=this,u=_i.ViewPlugin.define(g=>({update(v){if(v.docChanged&&!v.transactions.some(w=>w.annotation(Gl.Transaction.remote))){let w=g.state.doc.toString();c.fileSaveDebouncer(w)}}})),f={doc:a,extensions:[...l,_i.EditorView.editable.of(!1),Gl.EditorState.readOnly.of(!0)]},d=[...l];this.bIsEditable?d.push(u):d.push(_i.EditorView.editable.of(!1),Gl.EditorState.readOnly.of(!0));let h={doc:o,extensions:d};s.addClasses(["cm-s-obsidian","mod-cm6","markdown-source-view","cm-content"]);let m=this.plugin.gitManager instanceof Se&&(this.state.bRef===void 0||this.state.bRef==="");this.mergeView=new mp({b:h,a:f,collapseUnchanged:{minSize:6,margin:4},renderRevertControl:m?()=>this.renderButtons():void 0,revertControls:m?"a-to-b":void 0,diffConfig:{scanLimit:this.bIsEditable?1e3:1e4},parent:s}),this.refreshing=!1}}};p();var aD=require("obsidian");p();p();p();var RO="5";var $O,FO,IO;typeof window!="undefined"&&((IO=(FO=($O=window.__svelte)!=null?$O:window.__svelte={}).v)!=null?IO:FO.v=new Set).add(RO);p();p();p();var Xu="[",wn="[!",Va="]",rs={};var Je=Symbol(),xi=Symbol("filename"),OO=Symbol("hmr"),MO="http://www.w3.org/1999/xhtml";p();p();p();p();var Tp=!0;p();var M=!1;p();var is=Array.isArray,DO=Array.prototype.indexOf,Hi=Array.prototype.includes,ql=Array.from,Sy=Object.keys,tr=Object.defineProperty,Ir=Object.getOwnPropertyDescriptor,Ey=Object.getOwnPropertyDescriptors,ky=Object.prototype,LO=Array.prototype,zl=Object.getPrototypeOf,Ay=Object.isExtensible;function Ty(t){return typeof t=="function"}var Or=()=>{};function Cp(t){for(var e=0;e{t=i,e=n});return{promise:r,resolve:t,reject:e}}p();p();var Wt=Symbol("$state"),Zu=Symbol("legacy props"),BO=Symbol(""),Rp=Symbol("proxy path"),yn=new class extends Error{constructor(){super(...arguments);ze(this,"name","StaleReactionError");ze(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Vl=3,Mr=8;p();p();function $p(t){if(M){let e=new Error(`lifecycle_outside_component +`;await this.plugin.gitManager.applyPatch(d),this.plugin.app.workspace.trigger("obsidian-git:refresh")},this.state.bRef==null){let i=r.createDiv();i.addClass("clickable-icon"),i.setAttr("aria-label","Reset hunk"),(0,rs.setIcon)(i,"undo"),i.onmousedown=s=>{var f;let a=this.mergeView.a,o=this.mergeView.b,l=my(o.state),c=(f=r.parentElement)==null?void 0:f.indexOf(r),u=l.chunks[c];if(u){let d=u.fromA,h=u.toA,m=u.fromB,g=u.toB,v=a.state.sliceDoc(d,Math.max(d,h-1));d!=h&&g<=o.state.doc.length&&(v+=a.state.lineBreak),o.dispatch({changes:{from:m,to:Math.min(o.state.doc.length,g),insert:v},userEvent:"revert"})}}}return r.onmousedown=i=>{i.preventDefault(),i.stopPropagation()},r}async createMergeView(){var r,n,i;if((r=this.state)!=null&&r.aFile&&((n=this.state)!=null&&n.bFile)&&!this.refreshing&&this.plugin.gitManager){this.refreshing=!0,(i=this.mergeView)==null||i.destroy();let s=this.containerEl.children[1];s.empty(),this.contentEl.addClass("git-split-diff-view","git-diff"),this.bIsEditable=await this.bShouldBeEditable();let a=await this.gitShow(this.state.aRef,this.state.aFile),o;if(this.state.bRef!=null)o=await this.gitShow(this.state.bRef,this.state.bFile);else{let g=this.plugin.gitManager.getRelativeVaultPath(this.state.bFile);await this.app.vault.adapter.exists(g)?o=await this.app.vault.adapter.read(g):o=""}let l=[(0,kn.lineNumbers)(),(0,$p.highlightSelectionMatches)(),(0,kn.drawSelection)(),kn.keymap.of([...Xl.standardKeymap,Xl.indentWithTab]),(0,Xl.history)(),(0,$p.search)(),kn.EditorView.lineWrapping],c=this,u=kn.ViewPlugin.define(g=>({update(v){if(v.docChanged&&!v.transactions.some(w=>w.annotation(Yl.Transaction.remote))){let w=g.state.doc.toString();c.fileSaveDebouncer(w)}}})),f={doc:a,extensions:[...l,kn.EditorView.editable.of(!1),Yl.EditorState.readOnly.of(!0)]},d=[...l];this.bIsEditable?d.push(u):d.push(kn.EditorView.editable.of(!1),Yl.EditorState.readOnly.of(!0));let h={doc:o,extensions:d};s.addClasses(["cm-s-obsidian","mod-cm6","markdown-source-view","cm-content"]);let m=this.plugin.gitManager instanceof Se&&(this.state.bRef===void 0||this.state.bRef==="");this.mergeView=new bp({b:h,a:f,collapseUnchanged:{minSize:6,margin:4},renderRevertControl:m?()=>this.renderButtons():void 0,revertControls:m?"a-to-b":void 0,diffConfig:{scanLimit:this.bIsEditable?1e3:1e4},parent:s}),this.refreshing=!1}}};p();var _D=require("obsidian");p();p();p();var WO="5";var zO,VO,YO;typeof window!="undefined"&&((YO=(VO=(zO=window.__svelte)!=null?zO:window.__svelte={}).v)!=null?YO:VO.v=new Set).add(WO);p();p();p();var tf="[",bi="[!",Va="]",ns={};var Ke=Symbol(),An=Symbol("filename"),XO=Symbol("hmr"),ZO="http://www.w3.org/1999/xhtml";p();p();p();p();var Ip=!0;p();var L=!1;p();var is=Array.isArray,KO=Array.prototype.indexOf,qn=Array.prototype.includes,Zl=Array.from,$y=Object.keys,Jt=Object.defineProperty,Ir=Object.getOwnPropertyDescriptor,Iy=Object.getOwnPropertyDescriptors,Fy=Object.prototype,QO=Array.prototype,Kl=Object.getPrototypeOf,Oy=Object.isExtensible;function My(t){return typeof t=="function"}var Fr=()=>{};function Fp(t){for(var e=0;e{t=n,e=i});return{promise:r,resolve:t,reject:e}}p();p();var Wt=Symbol("$state"),rf=Symbol("legacy props"),JO=Symbol(""),Mp=Symbol("proxy path"),_i=new class extends Error{constructor(){super(...arguments);qe(this,"name","StaleReactionError");qe(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Ql=3,Or=8;p();p();function Dp(t){if(L){let e=new Error(`lifecycle_outside_component \`${t}(...)\` can only be used during component initialisation -https://svelte.dev/e/lifecycle_outside_component`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function NO(){if(M){let t=new Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/async_derived_orphan")}function Cy(){if(M){let t=new Error("bind_invalid_checkbox_value\nUsing `bind:value` together with a checkbox input is not allowed. Use `bind:checked` instead\nhttps://svelte.dev/e/bind_invalid_checkbox_value");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/bind_invalid_checkbox_value")}function HO(){if(M){let t=new Error(`derived_references_self +https://svelte.dev/e/lifecycle_outside_component`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function eM(){if(L){let t=new Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/async_derived_orphan")}function Dy(){if(L){let t=new Error("bind_invalid_checkbox_value\nUsing `bind:value` together with a checkbox input is not allowed. Use `bind:checked` instead\nhttps://svelte.dev/e/bind_invalid_checkbox_value");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/bind_invalid_checkbox_value")}function tM(){if(L){let t=new Error(`derived_references_self A derived value cannot reference itself recursively -https://svelte.dev/e/derived_references_self`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/derived_references_self")}function Py(t,e,r){if(M){let i=new Error(`each_key_duplicate +https://svelte.dev/e/derived_references_self`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/derived_references_self")}function Ly(t,e,r){if(L){let n=new Error(`each_key_duplicate ${r?`Keyed each block has duplicate key \`${r}\` at indexes ${t} and ${e}`:`Keyed each block has duplicate key at indexes ${t} and ${e}`} -https://svelte.dev/e/each_key_duplicate`);throw i.name="Svelte error",i}else throw new Error("https://svelte.dev/e/each_key_duplicate")}function UO(t){if(M){let e=new Error(`effect_in_teardown +https://svelte.dev/e/each_key_duplicate`);throw n.name="Svelte error",n}else throw new Error("https://svelte.dev/e/each_key_duplicate")}function rM(t){if(L){let e=new Error(`effect_in_teardown \`${t}\` cannot be used inside an effect cleanup function -https://svelte.dev/e/effect_in_teardown`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_in_teardown")}function GO(){if(M){let t=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function jO(t){if(M){let e=new Error(`effect_orphan +https://svelte.dev/e/effect_in_teardown`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_in_teardown")}function nM(){if(L){let t=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function iM(t){if(L){let e=new Error(`effect_orphan \`${t}\` can only be used inside an effect (e.g. during component initialisation) -https://svelte.dev/e/effect_orphan`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_orphan")}function qO(){if(M){let t=new Error(`effect_update_depth_exceeded +https://svelte.dev/e/effect_orphan`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/effect_orphan")}function sM(){if(L){let t=new Error(`effect_update_depth_exceeded Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state -https://svelte.dev/e/effect_update_depth_exceeded`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function zO(){if(M){let t=new Error(`hydration_failed +https://svelte.dev/e/effect_update_depth_exceeded`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function aM(){if(L){let t=new Error(`hydration_failed Failed to hydrate the application -https://svelte.dev/e/hydration_failed`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/hydration_failed")}function VO(t){if(M){let e=new Error(`props_invalid_value +https://svelte.dev/e/hydration_failed`);throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/hydration_failed")}function oM(t){if(L){let e=new Error(`props_invalid_value Cannot do \`bind:${t}={undefined}\` when \`${t}\` has a fallback value -https://svelte.dev/e/props_invalid_value`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/props_invalid_value")}function WO(t){if(M){let e=new Error(`rune_outside_svelte +https://svelte.dev/e/props_invalid_value`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/props_invalid_value")}function lM(t){if(L){let e=new Error(`rune_outside_svelte The \`${t}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files -https://svelte.dev/e/rune_outside_svelte`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/rune_outside_svelte")}function YO(){if(M){let t=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function XO(){if(M){let t=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ZO(){if(M){let t=new Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function KO(){if(M){let t=new Error("svelte_boundary_reset_onerror\nA `` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}p();p();p();var Xs="font-weight: bold",Zs="font-weight: normal";function QO(t,e){M?console.warn(`%c[svelte] await_waterfall +https://svelte.dev/e/rune_outside_svelte`);throw e.name="Svelte error",e}else throw new Error("https://svelte.dev/e/rune_outside_svelte")}function cM(){if(L){let t=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function uM(){if(L){let t=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_prototype_fixed")}function fM(){if(L){let t=new Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function dM(){if(L){let t=new Error("svelte_boundary_reset_onerror\nA `` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw t.name="Svelte error",t}else throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}p();p();p();var Zs="font-weight: bold",Ks="font-weight: normal";function hM(t,e){L?console.warn(`%c[svelte] await_waterfall %cAn async derived, \`${t}\` (${e}) was not read immediately after it resolved. This often indicates an unnecessary waterfall, which can slow down your app -https://svelte.dev/e/await_waterfall`,Xs,Zs):console.warn("https://svelte.dev/e/await_waterfall")}function JO(t,e,r){M?console.warn(`%c[svelte] hydration_attribute_changed +https://svelte.dev/e/await_waterfall`,Zs,Ks):console.warn("https://svelte.dev/e/await_waterfall")}function pM(t,e,r){L?console.warn(`%c[svelte] hydration_attribute_changed %cThe \`${t}\` attribute on \`${e}\` changed its value between server and client renders. The client value, \`${r}\`, will be ignored in favour of the server value -https://svelte.dev/e/hydration_attribute_changed`,Xs,Zs):console.warn("https://svelte.dev/e/hydration_attribute_changed")}function Wa(t){M?console.warn(`%c[svelte] hydration_mismatch +https://svelte.dev/e/hydration_attribute_changed`,Zs,Ks):console.warn("https://svelte.dev/e/hydration_attribute_changed")}function Ya(t){L?console.warn(`%c[svelte] hydration_mismatch %c${t?`Hydration failed because the initial UI does not match what was rendered on the server. The error occurred near ${t}`:"Hydration failed because the initial UI does not match what was rendered on the server"} -https://svelte.dev/e/hydration_mismatch`,Xs,Zs):console.warn("https://svelte.dev/e/hydration_mismatch")}function eM(){M?console.warn(`%c[svelte] lifecycle_double_unmount +https://svelte.dev/e/hydration_mismatch`,Zs,Ks):console.warn("https://svelte.dev/e/hydration_mismatch")}function mM(){L?console.warn(`%c[svelte] lifecycle_double_unmount %cTried to unmount a component that was not mounted -https://svelte.dev/e/lifecycle_double_unmount`,Xs,Zs):console.warn("https://svelte.dev/e/lifecycle_double_unmount")}function Fp(t){M?console.warn(`%c[svelte] state_proxy_equality_mismatch +https://svelte.dev/e/lifecycle_double_unmount`,Zs,Ks):console.warn("https://svelte.dev/e/lifecycle_double_unmount")}function Lp(t){L?console.warn(`%c[svelte] state_proxy_equality_mismatch %cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${t}\` will produce unexpected results -https://svelte.dev/e/state_proxy_equality_mismatch`,Xs,Zs):console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function tM(){M?console.warn(`%c[svelte] state_proxy_unmount +https://svelte.dev/e/state_proxy_equality_mismatch`,Zs,Ks):console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function gM(){L?console.warn(`%c[svelte] state_proxy_unmount %cTried to unmount a state proxy, rather than a component -https://svelte.dev/e/state_proxy_unmount`,Xs,Zs):console.warn("https://svelte.dev/e/state_proxy_unmount")}function rM(){M?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",Xs,Zs):console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function iM(t){M?console.warn(`%c[svelte] transition_slide_display +https://svelte.dev/e/state_proxy_unmount`,Zs,Ks):console.warn("https://svelte.dev/e/state_proxy_unmount")}function vM(){L?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",Zs,Ks):console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function wM(t){L?console.warn(`%c[svelte] transition_slide_display %cThe \`slide\` transition does not work correctly for elements with \`display: ${t}\` -https://svelte.dev/e/transition_slide_display`,Xs,Zs):console.warn("https://svelte.dev/e/transition_slide_display")}var ie=!1;function Ht(t){ie=t}var ge;function je(t){if(t===null)throw Wa(),rs;return ge=t}function rr(){return je(Zt(ge))}function H(t){if(ie){if(Zt(ge)!==null)throw Wa(),rs;ge=t}}function Ya(t=1){if(ie){for(var e=t,r=ge;e--;)r=Zt(r);ge=r}}function ns(t=!0){for(var e=0,r=ge;;){if(r.nodeType===Mr){var i=r.data;if(i===Va){if(e===0)return r;e-=1}else(i===Xu||i===wn)&&(e+=1)}var n=Zt(r);t&&r.remove(),r=n}}function Ip(t){if(!t||t.nodeType!==Mr)throw Wa(),rs;return t.data}p();p();p();p();function Op(t){return t===this.v}function Ry(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function Mp(t){return!Ry(t,this.v)}p();var ir=!1,ss=!1,Ui=!1;p();p();p();var Ku=null;function Dr(t,e){return t.label=e,Dp(t.v,e),t}function Dp(t,e){var r;return(r=t==null?void 0:t[Rp])==null||r.call(t,e),t}p();function bn(t){let e=new Error,r=VV();return r.length===0?null:(r.unshift(` -`),tr(e,"stack",{value:r.join(` -`)}),tr(e,"name",{value:t}),e)}function VV(){let t=Error.stackTraceLimit;Error.stackTraceLimit=1/0;let e=new Error().stack;if(Error.stackTraceLimit=t,!e)return[];let r=e.split(` -`),i=[];for(let n=0;n{e===Xa&&sM()})}Xa.push(t)}function aM(){for(;Xa.length>0;)sM()}p();var Iy=new WeakMap;function Bp(t){var e=ne;if(e===null)return le.f|=8388608,t;if(M&&t instanceof Error&&!Iy.has(t)&&Iy.set(t,WV(t,e)),e.f&32768)En(t,e);else{if(!(e.f&128))throw M&&!e.parent&&t instanceof Error&&oM(t),t;e.b.error(t)}}function En(t,e){for(;e!==null;){if(e.f&128)try{e.b.error(t);return}catch(r){t=r}e=e.parent}throw M&&t instanceof Error&&oM(t),t}function WV(t,e){var a,o,l;let r=Ir(t,"message");if(!(r&&!r.configurable)){for(var i=Qu?" ":" ",n=` -${i}in ${((a=e.fn)==null?void 0:a.name)||""}`,s=e.ctx;s!==null;)n+=` -${i}in ${(o=s.function)==null?void 0:o[xi].split("/").pop()}`,s=s.p;return{message:t.message+` -${n} +https://svelte.dev/e/transition_slide_display`,Zs,Ks):console.warn("https://svelte.dev/e/transition_slide_display")}var re=!1;function Bt(t){re=t}var ge;function Ge(t){if(t===null)throw Ya(),ns;return ge=t}function er(){return Ge(Yt(ge))}function G(t){if(re){if(Yt(ge)!==null)throw Ya(),ns;ge=t}}function Xa(t=1){if(re){for(var e=t,r=ge;e--;)r=Yt(r);ge=r}}function ss(t=!0){for(var e=0,r=ge;;){if(r.nodeType===Or){var n=r.data;if(n===Va){if(e===0)return r;e-=1}else(n===tf||n===bi)&&(e+=1)}var i=Yt(r);t&&r.remove(),r=i}}function Np(t){if(!t||t.nodeType!==Or)throw Ya(),ns;return t.data}p();p();p();p();function Bp(t){return t===this.v}function Ny(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function Hp(t){return!Ny(t,this.v)}p();var tr=!1,as=!1,Wn=!1;p();p();p();var nf=null;function Mr(t,e){return t.label=e,Up(t.v,e),t}function Up(t,e){var r;return(r=t==null?void 0:t[Mp])==null||r.call(t,e),t}p();function xi(t){let e=new Error,r=FV();return r.length===0?null:(r.unshift(` +`),Jt(e,"stack",{value:r.join(` +`)}),Jt(e,"name",{value:t}),e)}function FV(){let t=Error.stackTraceLimit;Error.stackTraceLimit=1/0;let e=new Error().stack;if(Error.stackTraceLimit=t,!e)return[];let r=e.split(` +`),n=[];for(let i=0;i{e===Za&&bM()})}Za.push(t)}function _M(){for(;Za.length>0;)bM()}p();var Uy=new WeakMap;function jp(t){var e=ne;if(e===null)return le.f|=8388608,t;if(L&&t instanceof Error&&!Uy.has(t)&&Uy.set(t,OV(t,e)),e.f&32768)Ai(t,e);else{if(!(e.f&128))throw L&&!e.parent&&t instanceof Error&&xM(t),t;e.b.error(t)}}function Ai(t,e){for(;e!==null;){if(e.f&128)try{e.b.error(t);return}catch(r){t=r}e=e.parent}throw L&&t instanceof Error&&xM(t),t}function OV(t,e){var a,o,l;let r=Ir(t,"message");if(!(r&&!r.configurable)){for(var n=sf?" ":" ",i=` +${n}in ${((a=e.fn)==null?void 0:a.name)||""}`,s=e.ctx;s!==null;)i+=` +${n}in ${(o=s.function)==null?void 0:o[An].split("/").pop()}`,s=s.p;return{message:t.message+` +${i} `,stack:(l=t.stack)==null?void 0:l.split(` `).filter(c=>!c.includes("svelte/src/internal")).join(` -`)}}}function oM(t){let e=Iy.get(t);e&&(tr(t,"message",{value:e.message}),tr(t,"stack",{value:e.stack}))}p();p();var YV=-7169;function Be(t,e){t.f=t.f&YV|e}function Xl(t){t.f&512||t.deps===null?Be(t,1024):Be(t,4096)}function lM(t){if(t!==null)for(let e of t)!(e.f&2)||!(e.f&32768)||(e.f^=32768,lM(e.deps))}function Np(t,e,r){t.f&2048?e.add(t):t.f&4096&&r.add(t),lM(t.deps),Be(t,1024)}var Zl=new Set,ye=null,tf=null,Rt=null,Br=[],Up=null,Oy=!1,Za=!1,Kl,Ql,Ka,Jl,rf,nf,Qa,os,ec,kn,My,Dy,uM,By=class By{constructor(){pe(this,kn);ze(this,"committed",!1);ze(this,"current",new Map);ze(this,"previous",new Map);pe(this,Kl,new Set);pe(this,Ql,new Set);pe(this,Ka,0);pe(this,Jl,0);pe(this,rf,null);pe(this,nf,new Set);pe(this,Qa,new Set);pe(this,os,new Map);ze(this,"is_fork",!1);pe(this,ec,!1)}is_deferred(){return this.is_fork||$(this,Jl)>0}skip_effect(e){$(this,os).has(e)||$(this,os).set(e,{d:[],m:[]})}unskip_effect(e){var r=$(this,os).get(e);if(r){$(this,os).delete(e);for(var i of r.d)Be(i,2048),vr(i);for(i of r.m)Be(i,4096),vr(i)}}process(e){var n;Br=[],this.apply();var r=[],i=[];for(let s of e)bt(this,kn,My).call(this,s,r,i);if(this.is_deferred()){bt(this,kn,Dy).call(this,i),bt(this,kn,Dy).call(this,r);for(let[s,a]of $(this,os))hM(s,a)}else{for(let s of $(this,Kl))s();$(this,Kl).clear(),$(this,Ka)===0&&bt(this,kn,uM).call(this),tf=this,ye=null,cM(i),cM(r),tf=null,(n=$(this,rf))==null||n.resolve()}Rt=null}capture(e,r){r!==Je&&!this.previous.has(e)&&this.previous.set(e,r),e.f&8388608||(this.current.set(e,e.v),Rt==null||Rt.set(e,e.v))}activate(){ye=this,this.apply()}deactivate(){ye===this&&(ye=null,Rt=null)}flush(){if(this.activate(),Br.length>0){if(Ly(),ye!==null&&ye!==this)return}else $(this,Ka)===0&&this.process([]);this.deactivate()}discard(){for(let e of $(this,Ql))e(this);$(this,Ql).clear()}increment(e){fe(this,Ka,$(this,Ka)+1),e&&fe(this,Jl,$(this,Jl)+1)}decrement(e){fe(this,Ka,$(this,Ka)-1),e&&fe(this,Jl,$(this,Jl)-1),!$(this,ec)&&(fe(this,ec,!0),yt(()=>{fe(this,ec,!1),this.is_deferred()?Br.length>0&&this.flush():this.revive()}))}revive(){for(let e of $(this,nf))$(this,Qa).delete(e),Be(e,2048),vr(e);for(let e of $(this,Qa))Be(e,4096),vr(e);this.flush()}oncommit(e){$(this,Kl).add(e)}ondiscard(e){$(this,Ql).add(e)}settled(){var e;return((e=$(this,rf))!=null?e:fe(this,rf,Pp())).promise}static ensure(){if(ye===null){let e=ye=new By;Zl.add(ye),Za||yt(()=>{ye===e&&e.flush()})}return ye}apply(){if(!(!ir||!this.is_fork&&Zl.size===1)){Rt=new Map(this.current);for(let e of Zl)if(e!==this)for(let[r,i]of e.previous)Rt.has(r)||Rt.set(r,i)}}};Kl=new WeakMap,Ql=new WeakMap,Ka=new WeakMap,Jl=new WeakMap,rf=new WeakMap,nf=new WeakMap,Qa=new WeakMap,os=new WeakMap,ec=new WeakMap,kn=new WeakSet,My=function(e,r,i){var d;e.f^=1024;for(var n=e.first,s=null;n!==null;){var a=n.f,o=(a&96)!==0,l=o&&(a&1024)!==0,c=l||(a&8192)!==0||$(this,os).has(n);if(ir&&s===null&&a&128&&((d=n.b)!=null&&d.is_pending)&&(s=n),!c&&n.fn!==null){o?n.f^=1024:s!==null&&a&16777228?s.b.defer_effect(n):a&4?r.push(n):ir&&a&16777224?i.push(n):ea(n)&&(a&16&&$(this,Qa).add(n),Js(n));var u=n.first;if(u!==null){n=u;continue}}var f=n.parent;for(n=n.next;n===null&&f!==null;)f===s&&(s=null),n=f.next,f=f.parent}},Dy=function(e){for(var r=0;r1){this.previous.clear();var e=Rt,r=!0;for(let s of Zl){if(s===this){r=!1;continue}let a=[];for(let[l,c]of this.current){if(s.current.has(l))if(r&&c!==s.current.get(l))s.current.set(l,c);else continue;a.push(l)}if(a.length===0)continue;let o=[...s.current.keys()].filter(l=>!this.current.has(l));if(o.length>0){var i=Br;Br=[];let l=new Set,c=new Map;for(let u of a)fM(u,o,l,c);if(Br.length>0){ye=s,s.apply();for(let u of Br)bt(n=s,kn,My).call(n,u,[],[]);s.deactivate()}Br=i}}ye=null,Rt=e}this.committed=!0,Zl.delete(this)};var Hr=By;function Ja(t){var e=Za;Za=!0;try{var r;for(t&&(ye!==null&&Ly(),r=t());;){if(aM(),Br.length===0&&(ye==null||ye.flush(),Br.length===0))return Up=null,r;Ly()}}finally{Za=e}}function Ly(){var s;Oy=!0;var t=M?new Set:null;try{for(var e=0;Br.length>0;){var r=Hr.ensure();if(e++>1e3){if(M){var i=new Map;for(let a of r.current.keys())for(let[o,l]of(s=a.updated)!=null?s:[]){var n=i.get(o);n||(n={error:l.error,count:0},i.set(o,n)),n.count+=l.count}for(let a of i.values())a.error&&console.error(a.error)}ZV()}if(r.process(Br),An.clear(),M)for(let a of r.current.keys())t.add(a)}}finally{if(Br=[],Oy=!1,Up=null,M)for(let a of t)a.updated=null}}function ZV(){try{qO()}catch(t){M&&tr(t,"stack",{value:""}),En(t,Up)}}var Lr=null;function cM(t){var e=t.length;if(e!==0){for(var r=0;r0)){An.clear();for(let n of Lr){if(n.f&24576)continue;let s=[n],a=n.parent;for(;a!==null;)Lr.has(a)&&(Lr.delete(a),s.push(a)),a=a.parent;for(let o=s.length-1;o>=0;o--){let l=s[o];l.f&24576||Js(l)}}Lr.clear()}}Lr=null}}function fM(t,e,r,i){if(!r.has(t)&&(r.add(t),t.reactions!==null))for(let n of t.reactions){let s=n.f;s&2?fM(n,e,r,i):s&4194320&&!(s&2048)&&dM(n,e,i)&&(Be(n,2048),vr(n))}}function dM(t,e,r){let i=r.get(t);if(i!==void 0)return i;if(t.deps!==null)for(let n of t.deps){if(Hi.call(e,n))return!0;if(n.f&2&&dM(n,e,r))return r.set(n,!0),!0}return r.set(t,!1),!1}function vr(t){for(var e=Up=t;e.parent!==null;){e=e.parent;var r=e.f;if(Oy&&e===ne&&r&16&&!(r&262144))return;if(r&96){if(!(r&1024))return;e.f^=1024}}Br.push(e)}function hM(t,e){if(!(t.f&32&&t.f&1024)){t.f&2048?e.d.push(t):t.f&4096&&e.m.push(t),Be(t,1024);for(var r=t.first;r!==null;)hM(r,e),r=r.next}}p();p();p();function mM(t){let e=0,r=sr(0),i;return M&&Dr(r,"createSubscriber version"),()=>{Qs()&&(R(r),Kt(()=>(e===0&&(i=We(()=>t(()=>eo(r)))),e+=1,()=>{yt(()=>{e-=1,e===0&&(i==null||i(),i=void 0,eo(r))})})))}}var QV=589952;function jy(t,e,r){new Hy(t,e,r)}var ri,sf,Tn,to,Cn,Si,Gr,Pn,ls,ta,ro,cs,nc,io,sc,ac,Rn,Vp,St,gM,vM,Uy,qp,zp,Gy,Hy=class{constructor(e,r,i){pe(this,St);ze(this,"parent");ze(this,"is_pending",!1);pe(this,ri);pe(this,sf,ie?ge:null);pe(this,Tn);pe(this,to);pe(this,Cn);pe(this,Si,null);pe(this,Gr,null);pe(this,Pn,null);pe(this,ls,null);pe(this,ta,null);pe(this,ro,0);pe(this,cs,0);pe(this,nc,!1);pe(this,io,!1);pe(this,sc,new Set);pe(this,ac,new Set);pe(this,Rn,null);pe(this,Vp,mM(()=>(fe(this,Rn,sr($(this,ro))),M&&Dr($(this,Rn),"$effect.pending()"),()=>{fe(this,Rn,null)})));fe(this,ri,e),fe(this,Tn,r),fe(this,to,i),this.parent=ne.b,this.is_pending=!!$(this,Tn).pending,fe(this,Cn,ii(()=>{if(ne.b=this,ie){let s=$(this,sf);rr(),s.nodeType===Mr&&s.data===wn?bt(this,St,vM).call(this):(bt(this,St,gM).call(this),$(this,cs)===0&&(this.is_pending=!1))}else{var n=bt(this,St,Uy).call(this);try{fe(this,Si,Ut(()=>i(n)))}catch(s){this.error(s)}$(this,cs)>0?bt(this,St,zp).call(this):this.is_pending=!1}return()=>{var s;(s=$(this,ta))==null||s.remove()}},QV)),ie&&fe(this,ri,ge)}defer_effect(e){Np(e,$(this,sc),$(this,ac))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!$(this,Tn).pending}update_pending_count(e){bt(this,St,Gy).call(this,e),fe(this,ro,$(this,ro)+e),!(!$(this,Rn)||$(this,nc))&&(fe(this,nc,!0),yt(()=>{fe(this,nc,!1),$(this,Rn)&&Vi($(this,Rn),$(this,ro))}))}get_effect_pending(){return $(this,Vp).call(this),R($(this,Rn))}error(e){var r=$(this,Tn).onerror;let i=$(this,Tn).failed;if($(this,io)||!r&&!i)throw e;$(this,Si)&&(dt($(this,Si)),fe(this,Si,null)),$(this,Gr)&&(dt($(this,Gr)),fe(this,Gr,null)),$(this,Pn)&&(dt($(this,Pn)),fe(this,Pn,null)),ie&&(je($(this,sf)),Ya(),je(ns()));var n=!1,s=!1;let a=()=>{if(n){rM();return}n=!0,s&&KO(),Hr.ensure(),fe(this,ro,0),$(this,Pn)!==null&&$n($(this,Pn),()=>{fe(this,Pn,null)}),this.is_pending=this.has_pending_snippet(),fe(this,Si,bt(this,St,qp).call(this,()=>(fe(this,io,!1),Ut(()=>$(this,to).call(this,$(this,ri)))))),$(this,cs)>0?bt(this,St,zp).call(this):this.is_pending=!1};yt(()=>{try{s=!0,r==null||r(e,a),s=!1}catch(o){En(o,$(this,Cn)&&$(this,Cn).parent)}i&&fe(this,Pn,bt(this,St,qp).call(this,()=>{Hr.ensure(),fe(this,io,!0);try{return Ut(()=>{i($(this,ri),()=>e,()=>a)})}catch(o){return En(o,$(this,Cn).parent),null}finally{fe(this,io,!1)}}))})}};ri=new WeakMap,sf=new WeakMap,Tn=new WeakMap,to=new WeakMap,Cn=new WeakMap,Si=new WeakMap,Gr=new WeakMap,Pn=new WeakMap,ls=new WeakMap,ta=new WeakMap,ro=new WeakMap,cs=new WeakMap,nc=new WeakMap,io=new WeakMap,sc=new WeakMap,ac=new WeakMap,Rn=new WeakMap,Vp=new WeakMap,St=new WeakSet,gM=function(){try{fe(this,Si,Ut(()=>$(this,to).call(this,$(this,ri))))}catch(e){this.error(e)}},vM=function(){let e=$(this,Tn).pending;e&&(fe(this,Gr,Ut(()=>e($(this,ri)))),yt(()=>{var r=bt(this,St,Uy).call(this);fe(this,Si,bt(this,St,qp).call(this,()=>(Hr.ensure(),Ut(()=>$(this,to).call(this,r))))),$(this,cs)>0?bt(this,St,zp).call(this):($n($(this,Gr),()=>{fe(this,Gr,null)}),this.is_pending=!1)}))},Uy=function(){var e=$(this,ri);return this.is_pending&&(fe(this,ta,Ft()),$(this,ri).before($(this,ta)),e=$(this,ta)),e},qp=function(e){var r=ne,i=le,n=ke;Gt($(this,Cn)),$t($(this,Cn)),as($(this,Cn).ctx);try{return e()}catch(s){return Bp(s),null}finally{Gt(r),$t(i),as(n)}},zp=function(){let e=$(this,Tn).pending;$(this,Si)!==null&&(fe(this,ls,document.createDocumentFragment()),$(this,ls).append($(this,ta)),Wp($(this,Si),$(this,ls))),$(this,Gr)===null&&fe(this,Gr,Ut(()=>e($(this,ri))))},Gy=function(e){var r;if(!this.has_pending_snippet()){this.parent&&bt(r=this.parent,St,Gy).call(r,e);return}if(fe(this,cs,$(this,cs)+e),$(this,cs)===0){this.is_pending=!1;for(let i of $(this,sc))Be(i,2048),vr(i);for(let i of $(this,ac))Be(i,4096),vr(i);$(this,sc).clear(),$(this,ac).clear(),$(this,Gr)&&$n($(this,Gr),()=>{fe(this,Gr,null)}),$(this,ls)&&($(this,ri).before($(this,ls)),fe(this,ls,null))}};p();function Yp(t,e,r,i){let n=xn()?no:so;var s=t.filter(d=>!d.settled);if(r.length===0&&s.length===0){i(e.map(n));return}var a=ye,o=ne,l=wM(),c=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(d=>d.promise)):null;function u(d){l();try{i(d)}catch(h){o.f&16384||En(h,o)}a==null||a.deactivate(),af()}if(r.length===0){c.then(()=>u(e.map(n)));return}function f(){l(),Promise.all(r.map(d=>zy(d))).then(d=>u([...e.map(n),...d])).catch(d=>En(d,o))}c?c.then(f):f()}function wM(){var t=ne,e=le,r=ke,i=ye;if(M)var n=_n;return function(a=!0){Gt(t),$t(e),as(r),a&&(i==null||i.activate()),M&&(qy(null),Wl(n))}}function af(){Gt(null),$t(null),as(null),M&&(qy(null),Wl(null))}var of=null;function qy(t){of=t}var lf=new Set;function no(t){var e=2050,r=le!==null&&le.f&2?le:null;ne!==null&&(ne.f|=524288);let i={ctx:ke,deps:null,effects:null,equals:Op,f:e,fn:t,reactions:null,rv:0,v:Je,wv:0,parent:r!=null?r:ne,ac:null};return M&&Ui&&(i.created=bn("created at")),i}function zy(t,e,r){let i=ne;i===null&&NO();var n=i.b,s=void 0,a=sr(Je);M&&(a.label=e);var o=!le,l=new Map;return yM(()=>{var h;M&&(of=ne);var c=Pp();s=c.promise;try{Promise.resolve(t()).then(c.resolve,c.reject).then(()=>{u===ye&&u.committed&&u.deactivate(),af()})}catch(m){c.reject(m),af()}M&&(of=null);var u=ye;if(o){var f=n.is_rendered();n.update_pending_count(1),u.increment(f),(h=l.get(u))==null||h.reject(yn),l.delete(u),l.set(u,c)}let d=(m,g=void 0)=>{if(of=null,u.activate(),g)g!==yn&&(a.f|=8388608,Vi(a,g));else{a.f&8388608&&(a.f^=8388608),Vi(a,m);for(let[v,w]of l){if(l.delete(v),v===u)break;w.reject(yn)}M&&r!==void 0&&(lf.add(a),setTimeout(()=>{lf.has(a)&&(QO(a.label,r),lf.delete(a))}))}o&&(n.update_pending_count(-1),u.decrement(f))};c.promise.then(d,m=>d(null,m||"unknown"))}),ar(()=>{for(let c of l.values())c.reject(yn)}),M&&(a.f|=4194304),new Promise(c=>{function u(f){function d(){f===s?c(a):u(s)}f.then(d,d)}u(s)})}function Et(t){let e=no(t);return ir||Kp(e),e}function so(t){let e=no(t);return e.equals=Mp,e}function Xp(t){var e=t.effects;if(e!==null){t.effects=null;for(var r=0;r5){let l=bn("updated at");if(l!==null){let c=t.updated.get(l.stack);c||(c={error:l,count:0},t.updated.set(l.stack,c)),c.count++}}}ne!==null&&(t.set_during_effect=!0)}if(t.f&2){let o=t;t.f&2048&&cf(o),Xl(o)}t.wv=ic(),_M(t,2048),xn()&&ne!==null&&ne.f&1024&&!(ne.f&96)&&(si===null?xM([t]):si.push(t)),!i.is_fork&&ao.size>0&&!Yy&&jp()}return e}function jp(){Yy=!1;for(let t of ao)t.f&1024&&Be(t,4096),ea(t)&&Js(t);ao.clear()}function eo(t){ae(t,t.v+1)}function _M(t,e){var u;var r=t.reactions;if(r!==null)for(var i=xn(),n=r.length,s=0;s{if(ra===a)return f();var d=le,h=ra;$t(null),Xy(a);var m=f();return $t(d),Xy(h),m};i&&(r.set("length",De(t.length,s)),M&&(t=nW(t)));var l="";let c=!1;function u(f){if(!c){c=!0,l=f,Dr(n,`${l} version`);for(let[d,h]of r)Dr(h,lo(l,d));c=!1}}return new Proxy(t,{defineProperty(f,d,h){(!("value"in h)||h.configurable===!1||h.enumerable===!1||h.writable===!1)&&YO();var m=r.get(d);return m===void 0?m=o(()=>{var g=De(h.value,s);return r.set(d,g),M&&typeof d=="string"&&Dr(g,lo(l,d)),g}):ae(m,h.value,!0),!0},deleteProperty(f,d){var h=r.get(d);if(h===void 0){if(d in f){let m=o(()=>De(Je,s));r.set(d,m),eo(n),M&&Dr(m,lo(l,d))}}else ae(h,Je),eo(n);return!0},get(f,d,h){var w;if(d===Wt)return t;if(M&&d===Rp)return u;var m=r.get(d),g=d in f;if(m===void 0&&(!g||(w=Ir(f,d))!=null&&w.writable)&&(m=o(()=>{var b=Xe(g?f[d]:Je),k=De(b,s);return M&&Dr(k,lo(l,d)),k}),r.set(d,m)),m!==void 0){var v=R(m);return v===Je?void 0:v}return Reflect.get(f,d,h)},getOwnPropertyDescriptor(f,d){var h=Reflect.getOwnPropertyDescriptor(f,d);if(h&&"value"in h){var m=r.get(d);m&&(h.value=R(m))}else if(h===void 0){var g=r.get(d),v=g==null?void 0:g.v;if(g!==void 0&&v!==Je)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return h},has(f,d){var v;if(d===Wt)return!0;var h=r.get(d),m=h!==void 0&&h.v!==Je||Reflect.has(f,d);if(h!==void 0||ne!==null&&(!m||(v=Ir(f,d))!=null&&v.writable)){h===void 0&&(h=o(()=>{var w=m?Xe(f[d]):Je,b=De(w,s);return M&&Dr(b,lo(l,d)),b}),r.set(d,h));var g=R(h);if(g===Je)return!1}return m},set(f,d,h,m){var y;var g=r.get(d),v=d in f;if(i&&d==="length")for(var w=h;wDe(Je,s)),r.set(w+"",b),M&&Dr(b,lo(l,w)))}if(g===void 0)(!v||(y=Ir(f,d))!=null&&y.writable)&&(g=o(()=>De(void 0,s)),M&&Dr(g,lo(l,d)),ae(g,Xe(h)),r.set(d,g));else{v=g.v!==Je;var k=o(()=>Xe(h));ae(g,k)}var x=Reflect.getOwnPropertyDescriptor(f,d);if(x!=null&&x.set&&x.set.call(m,h),!v){if(i&&typeof d=="string"){var E=r.get("length"),A=Number(d);Number.isInteger(A)&&A>=E.v&&ae(E,A+1)}eo(n)}return!0},ownKeys(f){R(n);var d=Reflect.ownKeys(f).filter(g=>{var v=r.get(g);return v===void 0||v.v!==Je});for(var[h,m]of r)m.v!==Je&&!(h in f)&&d.push(h);return d},setPrototypeOf(){XO()}})}function lo(t,e){var r;return typeof e=="symbol"?`${t}[Symbol(${(r=e.description)!=null?r:""})]`:rW.test(e)?`${t}.${e}`:/^\d+$/.test(e)?`${t}[${e}]`:`${t}['${e}']`}function Qp(t){try{if(t!==null&&typeof t=="object"&&Wt in t)return t[Wt]}catch(e){}return t}var iW=new Set(["copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift"]);function nW(t){return new Proxy(t,{get(e,r,i){var n=Reflect.get(e,r,i);return iW.has(r)?function(...s){bM();var a=n.apply(this,s);return jp(),a}:n}})}function SM(){let t=Array.prototype,e=Array.__svelte_cleanup;e&&e();let{indexOf:r,lastIndexOf:i,includes:n}=t;t.indexOf=function(s,a){let o=r.call(this,s,a);if(o===-1){for(let l=a!=null?a:0;l{t.indexOf=r,t.lastIndexOf=i,t.includes=n}}var Zy,EM,Qu,kM,AM;function Jp(){if(Zy===void 0){Zy=window,EM=document,Qu=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,r=Text.prototype;kM=Ir(e,"firstChild").get,AM=Ir(e,"nextSibling").get,Ay(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Ay(r)&&(r.__t=void 0),M&&(t.__svelte_meta=null,SM())}}function Ft(t=""){return document.createTextNode(t)}function Qt(t){return kM.call(t)}function Zt(t){return AM.call(t)}function G(t,e){if(!ie)return Qt(t);var r=Qt(ge);if(r===null)r=ge.appendChild(Ft());else if(e&&r.nodeType!==Vl){var i=Ft();return r==null||r.before(i),je(i),i}return e&&tm(r),je(r),r}function zr(t,e=!1){var n,s;if(!ie){var r=Qt(t);return r instanceof Comment&&r.data===""?Zt(r):r}if(e){if(((n=ge)==null?void 0:n.nodeType)!==Vl){var i=Ft();return(s=ge)==null||s.before(i),je(i),i}tm(ge)}return ge}function te(t,e=1,r=!1){let i=ie?ge:t;for(var n;e--;)n=i,i=Zt(i);if(!ie)return i;if(r){if((i==null?void 0:i.nodeType)!==Vl){var s=Ft();return i===null?n==null||n.after(s):i.before(s),je(s),s}tm(i)}return je(i),i}function oc(t){t.textContent=""}function em(){if(!ir||Lr!==null)return!1;var t=ne.f;return(t&32768)!==0}function tm(t){if(t.nodeValue.length<65536)return;let e=t.nextSibling;for(;e!==null&&e.nodeType===Vl;)e.remove(),t.nodeValue+=e.nodeValue,e=t.nextSibling}p();p();function Ky(t){ie&&Qt(t)!==null&&oc(t)}var TM=!1;function Qy(){TM||(TM=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var e;if(!t.defaultPrevented)for(let r of t.target.elements)(e=r.__on_r)==null||e.call(r)})},{capture:!0}))}function Wi(t){var e=le,r=ne;$t(null),Gt(null);try{return t()}finally{$t(e),Gt(r)}}function Jy(t,e,r,i=r){t.addEventListener(e,()=>Wi(r));let n=t.__on_r;n?t.__on_r=()=>{n(),i(!0)}:t.__on_r=()=>i(!0),Qy()}function CM(t){ne===null&&(le===null&&jO(t),GO()),Ei&&UO(t)}function aW(t,e){var r=e.last;r===null?e.last=e.first=t:(r.next=t,t.prev=r,e.last=t)}function Fn(t,e,r){var o;var i=ne;if(M)for(;i!==null&&i.f&131072;)i=i.parent;i!==null&&i.f&8192&&(t|=8192);var n={ctx:ke,deps:null,nodes:null,f:t|2048|512,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(M&&(n.component_function=Gi),r)try{Js(n),n.f|=32768}catch(l){throw dt(n),l}else e!==null&&vr(n);var s=n;if(r&&s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&524288)&&(s=s.first,t&16&&t&65536&&s!==null&&(s.f|=65536)),s!==null&&(s.parent=i,i!==null&&aW(s,i),le!==null&&le.f&2&&!(t&64))){var a=le;((o=a.effects)!=null?o:a.effects=[]).push(s)}return n}function Qs(){return le!==null&&!qr}function ar(t){let e=Fn(8,null,!1);return Be(e,1024),e.teardown=t,e}function or(t){var n;CM("$effect"),M&&tr(t,"name",{value:"$effect"});var e=ne.f,r=!le&&(e&32)!==0&&(e&32768)===0;if(r){var i=ke;((n=i.e)!=null?n:i.e=[]).push(t)}else return Fy(t)}function Fy(t){return Fn(1048580,t,!1)}function tb(t){Hr.ensure();let e=Fn(524352,t,!0);return()=>{dt(e)}}function PM(t){Hr.ensure();let e=Fn(524352,t,!0);return(r={})=>new Promise(i=>{r.outro?$n(e,()=>{dt(e),i(void 0)}):(dt(e),i(void 0))})}function Vr(t){return Fn(4,t,!1)}function yM(t){return Fn(4718592,t,!0)}function Kt(t,e=0){return Fn(8|e,t,!0)}function Ne(t,e=[],r=[],i=[]){Yp(i,e,r,n=>{Fn(8,()=>t(...n.map(R)),!0)})}function ii(t,e=0){var r=Fn(16|e,t,!0);return M&&(r.dev_stack=_n),r}function Ut(t){return Fn(524320,t,!0)}function rb(t){var e=t.teardown;if(e!==null){let r=Ei,i=le;eb(!0),$t(null);try{e.call(null)}finally{eb(r),$t(i)}}}function ib(t,e=!1){var r=t.first;for(t.first=t.last=null;r!==null;){let n=r.ac;n!==null&&Wi(()=>{n.abort(yn)});var i=r.next;r.f&64?r.parent=null:dt(r,e),r=i}}function RM(t){for(var e=t.first;e!==null;){var r=e.next;e.f&32||dt(e),e=r}}function dt(t,e=!0){var r=!1;(e||t.f&262144)&&t.nodes!==null&&t.nodes.end!==null&&($M(t.nodes.start,t.nodes.end),r=!0),ib(t,e&&!r),ff(t,0),Be(t,16384);var i=t.nodes&&t.nodes.t;if(i!==null)for(let s of i)s.stop();rb(t);var n=t.parent;n!==null&&n.first!==null&&Ny(t),M&&(t.component_function=null),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function $M(t,e){for(;t!==null;){var r=t===e?null:Zt(t);t.remove(),t=r}}function Ny(t){var e=t.parent,r=t.prev,i=t.next;r!==null&&(r.next=i),i!==null&&(i.prev=r),e!==null&&(e.first===t&&(e.first=i),e.last===t&&(e.last=r))}function $n(t,e,r=!0){var i=[];FM(t,i,!0);var n=()=>{r&&dt(t),e&&e()},s=i.length;if(s>0){var a=()=>--s||n();for(var o of i)o.out(a)}else n()}function FM(t,e,r){if(!(t.f&8192)){t.f^=8192;var i=t.nodes&&t.nodes.t;if(i!==null)for(let o of i)(o.is_global||r)&&e.push(o);for(var n=t.first;n!==null;){var s=n.next,a=(n.f&65536)!==0||(n.f&32)!==0&&(t.f&16)!==0;FM(n,e,a?r:!1),n=s}}}function uf(t){IM(t,!0)}function IM(t,e){if(t.f&8192){t.f^=8192,t.f&1024||(Be(t,2048),vr(t));for(var r=t.first;r!==null;){var i=r.next,n=(r.f&65536)!==0||(r.f&32)!==0;IM(r,n?e:!1),r=i}var s=t.nodes&&t.nodes.t;if(s!==null)for(let a of s)(a.is_global||e)&&a.in()}}function Wp(t,e){if(t.nodes)for(var r=t.nodes.start,i=t.nodes.end;r!==null;){var n=r===i?null:Zt(r);e.append(r),r=n}}p();var OM=null;var rm=!1,Ei=!1;function eb(t){Ei=t}var le=null,qr=!1;function $t(t){le=t}var ne=null;function Gt(t){ne=t}var ni=null;function Kp(t){le!==null&&(!ir||le.f&2)&&(ni===null?ni=[t]:ni.push(t))}var Wr=null,ai=0,si=null;function xM(t){si=t}var MM=1,co=0,ra=co;function Xy(t){ra=t}function ic(){return++MM}function ea(t){var e=t.f;if(e&2048)return!0;if(e&2&&(t.f&=-32769),e&4096){for(var r=t.deps,i=r.length,n=0;nt.wv)return!0}e&512&&Rt===null&&Be(t,1024)}return!1}function DM(t,e,r=!0){var i=t.reactions;if(i!==null&&!(!ir&&ni!==null&&Hi.call(ni,t)))for(var n=0;n{t.ac.abort(yn)}),t.ac=null);try{t.f|=2097152;var u=t.fn,f=u(),d=t.deps,h=(g=ye)==null?void 0:g.is_fork;if(Wr!==null){var m;if(h||ff(t,ai),d!==null&&ai>0)for(d.length=ai+Wr.length,m=0;m{requestAnimationFrame(()=>t()),setTimeout(()=>t())});await Promise.resolve(),Ja()}function R(t){var h,m,g;var e=t.f,r=(e&2)!==0;if((h=OM)==null||h.add(t),le!==null&&!qr){var i=ne!==null&&(ne.f&16384)!==0;if(!i&&(ni===null||!Hi.call(ni,t))){var n=le.deps;if(le.f&2097152)t.rvr==null?void 0:r.call(this,s))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?yt(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function oi(t,e,r,i,n){var s={capture:i,passive:n},a=HM(t,e,r,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ar(()=>{e.removeEventListener(t,a,s)})}function kt(t){for(var e=0;e{throw w});throw d}}finally{t.__root=e,delete t.currentTarget,$t(u),Gt(f)}}}p();p();function sm(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function In(t,e){var r=ne;r.nodes===null&&(r.nodes={start:t,end:e,a:null,t:null})}function ue(t,e){var r=(e&1)!==0,i=(e&2)!==0,n,s=!t.startsWith("");return()=>{if(ie)return In(ge,null),ge;n===void 0&&(n=sm(s?t:""+t),r||(n=Qt(n)));var a=i||Qu?document.importNode(n,!0):n.cloneNode(!0);if(r){var o=Qt(a),l=a.lastChild;In(o,l)}else In(a,a);return a}}function fs(){if(ie)return In(ge,null),ge;var t=document.createDocumentFragment(),e=document.createComment(""),r=Ft();return t.append(e,r),In(e,r),t}function oe(t,e){if(ie){var r=ne;(!(r.f&32768)||r.nodes.end===null)&&(r.nodes.end=ge),rr();return}t!==null&&t.before(e)}p();var dW=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected","webkitdirectory","defer","disablepictureinpicture","disableremoteplayback"];var Ple=[...dW,"formNoValidate","isMap","noModule","playsInline","readOnly","value","volume","defaultValue","defaultChecked","srcObject","noValidate","allowFullscreen","disablePictureInPicture","disableRemotePlayback"];var hW=["touchstart","touchmove"];function GM(t){return hW.includes(t)}var pW=["$state","$state.raw","$derived","$derived.by"],Rle=[...pW,"$state.eager","$state.snapshot","$props","$props.id","$bindable","$effect","$effect.pre","$effect.tracking","$effect.root","$effect.pending","$inspect","$inspect().with","$inspect.trace","$host"];var am=!0;function Ue(t,e){var i;var r=e==null?"":typeof e=="object"?e+"":e;r!==((i=t.__t)!=null?i:t.__t=t.nodeValue)&&(t.__t=r,t.nodeValue=r+"")}function ia(t,e){return jM(t,e)}function ob(t,e){var a;Jp(),e.intro=(a=e.intro)!=null?a:!1;let r=e.target,i=ie,n=ge;try{for(var s=Qt(r);s&&(s.nodeType!==Mr||s.data!==Xu);)s=Zt(s);if(!s)throw rs;Ht(!0),je(s);let o=jM(t,{...e,anchor:s});return Ht(!1),o}catch(o){if(o instanceof Error&&o.message.split(` -`).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==rs&&console.warn("Failed to hydrate: ",o),e.recover===!1&&zO(),Jp(),oc(r),Ht(!1),ia(t,e)}finally{Ht(i),je(n)}}var cc=new Map;function jM(t,{target:e,anchor:r,props:i={},events:n,context:s,intro:a=!0}){Jp();var o=new Set,l=f=>{for(var d=0;d{var f=r!=null?r:e.appendChild(Ft());return jy(f,{pending:()=>{}},d=>{ot({});var h=ke;if(s&&(h.c=s),n&&(i.$$events=n),ie&&In(d,null),am=a,c=t(d,i)||{},am=!0,ie&&(ne.nodes.end=ge,ge===null||ge.nodeType!==Mr||ge.data!==Va))throw Wa(),rs;lt()}),()=>{var m;for(var d of o){e.removeEventListener(d,lc);var h=cc.get(d);--h===0?(document.removeEventListener(d,lc),cc.delete(d)):cc.set(d,h)}nm.delete(l),f!==r&&((m=f.parentNode)==null||m.removeChild(f))}});return ab.set(c,u),c}var ab=new WeakMap;function ds(t,e){let r=ab.get(t);return r?(ab.delete(t),r(e)):(M&&(Wt in t?tM():eM()),Promise.resolve())}p();p();p();var Yi,On,li,uo,df,hf,om,hs=class{constructor(e,r=!0){ze(this,"anchor");pe(this,Yi,new Map);pe(this,On,new Map);pe(this,li,new Map);pe(this,uo,new Set);pe(this,df,!0);pe(this,hf,()=>{var e=ye;if($(this,Yi).has(e)){var r=$(this,Yi).get(e),i=$(this,On).get(r);if(i)uf(i),$(this,uo).delete(r);else{var n=$(this,li).get(r);n&&($(this,On).set(r,n.effect),$(this,li).delete(r),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(let[s,a]of $(this,Yi)){if($(this,Yi).delete(s),s===e)break;let o=$(this,li).get(a);o&&(dt(o.effect),$(this,li).delete(a))}for(let[s,a]of $(this,On)){if(s===r||$(this,uo).has(s))continue;let o=()=>{if(Array.from($(this,Yi).values()).includes(s)){var c=document.createDocumentFragment();Wp(a,c),c.append(Ft()),$(this,li).set(s,{effect:a,fragment:c})}else dt(a);$(this,uo).delete(s),$(this,On).delete(s)};$(this,df)||!i?($(this,uo).add(s),$n(a,o,!1)):o()}}});pe(this,om,e=>{$(this,Yi).delete(e);let r=Array.from($(this,Yi).values());for(let[i,n]of $(this,li))r.includes(i)||(dt(n.effect),$(this,li).delete(i))});this.anchor=e,fe(this,df,r)}ensure(e,r){var i=ye,n=em();if(r&&!$(this,On).has(e)&&!$(this,li).has(e))if(n){var s=document.createDocumentFragment(),a=Ft();s.append(a),$(this,li).set(e,{effect:Ut(()=>r(a)),fragment:s})}else $(this,On).set(e,Ut(()=>r(this.anchor)));if($(this,Yi).set(i,e),n){for(let[o,l]of $(this,On))o===e?i.unskip_effect(l):i.skip_effect(l);for(let[o,l]of $(this,li))o===e?i.unskip_effect(l.effect):i.skip_effect(l.effect);i.oncommit($(this,hf)),i.ondiscard($(this,om))}else ie&&(this.anchor=ge),$(this,hf).call(this)}};Yi=new WeakMap,On=new WeakMap,li=new WeakMap,uo=new WeakMap,df=new WeakMap,hf=new WeakMap,om=new WeakMap;if(M){let t=function(e){if(!(e in globalThis)){let r;Object.defineProperty(globalThis,e,{configurable:!0,get:()=>{if(r!==void 0)return r;WO(e)},set:i=>{r=i}})}};t("$state"),t("$effect"),t("$derived"),t("$inspect"),t("$props"),t("$bindable")}function fo(t){ke===null&&$p("onMount"),ss&&ke.l!==null?vW(ke).m.push(t):or(()=>{let e=We(t);if(typeof e=="function")return e})}function vW(t){var r;var e=t.l;return(r=e.u)!=null?r:e.u={a:[],b:[],m:[]}}p();p();var VM=new Map;function WM(t,e){var r=VM.get(t);r||(r=new Set,VM.set(t,r)),r.add(e)}p();p();p();p();p();p();p();p();p();function Ae(t,e,r=!1){ie&&rr();var i=new hs(t),n=r?65536:0;function s(a,o){if(ie){let c=Ip(t)===wn;if(a===c){var l=ns();je(l),i.anchor=l,Ht(!1),i.ensure(a,o),Ht(!0);return}}i.ensure(a,o)}ii(()=>{var a=!1;e((o,l=!0)=>{a=!0,s(l,o)}),a||s(!1,null)},n)}p();var Cfe=Symbol("NaN");p();p();function ci(t,e){return e}function EW(t,e,r){var f;for(var i=[],n=e.length,s,a=e.length,o=0;o{if(s){if(s.pending.delete(d),s.done.add(d),s.pending.size===0){var h=t.outrogroups;lb(ql(s.done)),h.delete(s),h.size===0&&(t.outrogroups=null)}}else a-=1},!1)}if(a===0){var l=i.length===0&&r!==null;if(l){var c=r,u=c.parentNode;oc(u),u.append(c),t.items.clear()}lb(e,!l)}else s={pending:new Set(e),done:new Set},((f=t.outrogroups)!=null?f:t.outrogroups=new Set).add(s)}function lb(t,e=!0){for(var r=0;r{var w=r();return is(w)?w:w==null?[]:ql(w)}),d,h=!0;function m(){v.fallback=u,kW(v,d,a,e,i),u!==null&&(d.length===0?u.f&33554432?(u.f^=33554432,mf(u,null,a)):uf(u):$n(u,()=>{u=null}))}var g=ii(()=>{d=R(f);var w=d.length;let b=!1;if(ie){var k=Ip(a)===wn;k!==(w===0)&&(a=ns(),je(a),Ht(!1),b=!0)}for(var x=new Set,E=ye,A=em(),y=0;ys(a)):(u=Ut(()=>s(uc!=null?uc:uc=Ft())),u.f|=33554432)),w>x.size&&(M?TW(d,i):Py("","","")),ie&&w>0&&je(ns()),!h)if(A){for(let[P,D]of o)x.has(P)||E.skip_effect(D.e);E.oncommit(m),E.ondiscard(()=>{})}else m();b&&Ht(!0),R(f)}),v={effect:g,flags:e,items:o,outrogroups:null,fallback:u};h=!1,ie&&(a=ge)}function pf(t){for(;t!==null&&!(t.f&32);)t=t.next;return t}function kW(t,e,r,i,n){var T,P,D,B,N,ce,Pe,ve,se;var s=(i&8)!==0,a=e.length,o=t.items,l=pf(t.effect.first),c,u=null,f,d=[],h=[],m,g,v,w;if(s)for(w=0;w0){var _=i&4&&a===0?r:null;if(s){for(w=0;w{var xe,we;if(f!==void 0)for(v of f)(we=(xe=v.nodes)==null?void 0:xe.a)==null||we.apply()})}function AW(t,e,r,i,n,s,a,o){var l=a&1?a&16?sr(r):oo(r,!1,!1):null,c=a&2?sr(n):null;return M&&l&&(l.trace=()=>{var u;o()[(u=c==null?void 0:c.v)!=null?u:n]}),{v:l,i:c,e:Ut(()=>(s(e,l!=null?l:r,c!=null?c:n,o),()=>{t.delete(i)}))}}function mf(t,e,r){if(t.nodes)for(var i=t.nodes.start,n=t.nodes.end,s=e&&!(e.f&33554432)?e.nodes.start:r;i!==null;){var a=Zt(i);if(s.before(i),i===n)return;i=a}}function na(t,e,r){e===null?t.effect.first=r:e.next=r,r===null?t.effect.last=e:r.prev=e}function TW(t,e){let r=new Map,i=t.length;for(let n=0;nperformance.now():()=>Date.now(),Xi={tick:t=>(Tp?requestAnimationFrame:Or)(t),now:()=>CW(),tasks:new Set};function XM(){let t=Xi.now();Xi.tasks.forEach(e=>{e.c(t)||(Xi.tasks.delete(e),e.f())}),Xi.tasks.size!==0&&Xi.tick(XM)}function ZM(t){let e;return Xi.tasks.size===0&&Xi.tick(XM),{promise:new Promise(r=>{Xi.tasks.add(e={c:t,f:r})}),abort(){Xi.tasks.delete(e)}}}function lm(t,e){Wi(()=>{t.dispatchEvent(new CustomEvent(e))})}function FW(t){if(t==="float")return"cssFloat";if(t==="offset")return"cssOffset";if(t.startsWith("--"))return t;let e=t.split("-");return e.length===1?e[0]:e[0]+e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function KM(t){let e={},r=t.split(";");for(let i of r){let[n,s]=i.split(":");if(!n||s===void 0)break;let a=FW(n.trim());e[a]=s.trim()}return e}var IW=t=>t;function Zi(t,e,r,i){var k,x;var n=(t&1)!==0,s=(t&2)!==0,a=n&&s,o=(t&4)!==0,l=a?"both":n?"in":"out",c,u=e.inert,f=e.style.overflow,d,h;function m(){return Wi(()=>{var E;return c!=null?c:c=r()(e,(E=i==null?void 0:i())!=null?E:{},{direction:l})})}var g={is_global:o,in(){var E;if(e.inert=u,!n){h==null||h.abort(),(E=h==null?void 0:h.reset)==null||E.call(h);return}s||d==null||d.abort(),d=cb(e,m(),h,1,()=>{lm(e,"introend"),d==null||d.abort(),d=c=void 0,e.style.overflow=f})},out(E){if(!s){E==null||E(),c=void 0;return}e.inert=!0,h=cb(e,m(),d,0,()=>{lm(e,"outroend"),E==null||E()})},stop:()=>{d==null||d.abort(),h==null||h.abort()}},v=ne;if(((x=(k=v.nodes).t)!=null?x:k.t=[]).push(g),n&&am){var w=o;if(!w){for(var b=v.parent;b&&b.f&65536;)for(;(b=b.parent)&&!(b.f&16););w=!b||(b.f&32768)!==0}w&&Vr(()=>{We(()=>g.in())})}}function cb(t,e,r,i,n){var s=i===1;if(Ty(e)){var a,o=!1;return yt(()=>{if(!o){var v=e({direction:s?"in":"out"});a=cb(t,v,r,i,n)}}),{abort:()=>{o=!0,a==null||a.abort()},deactivate:()=>a.deactivate(),reset:()=>a.reset(),t:()=>a.t()}}if(r==null||r.deactivate(),!(e!=null&&e.duration)&&!(e!=null&&e.delay))return lm(t,s?"introstart":"outrostart"),n(),{abort:Or,deactivate:Or,reset:Or,t:()=>i};let{delay:l=0,css:c,tick:u,easing:f=IW}=e;var d=[];if(s&&r===void 0&&(u&&u(0,1),c)){var h=KM(c(0,1));d.push(h,h)}var m=()=>1-i,g=t.animate(d,{duration:l,fill:"forwards"});return g.onfinish=()=>{var _;g.cancel(),lm(t,s?"introstart":"outrostart");var v=(_=r==null?void 0:r.t())!=null?_:1-i;r==null||r.abort();var w=i-v,b=e.duration*Math.abs(w),k=[];if(b>0){var x=!1;if(c)for(var E=Math.ceil(b/16.666666666666668),A=0;A<=E;A+=1){var y=v+w*f(A/E),S=KM(c(y,1-y));k.push(S),x||(x=S.overflow==="hidden")}x&&(t.style.overflow="hidden"),m=()=>{var T=g.currentTime;return v+w*f(T/b)},u&&ZM(()=>{if(g.playState!=="running")return!1;var T=m();return u(T,1-T),!0})}g=t.animate(k,{duration:b,fill:"forwards"}),g.onfinish=()=>{m=()=>i,u==null||u(i,1-i),n()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=Or)},deactivate:()=>{n=Or},reset:()=>{i===0&&(u==null||u(1,0))},t:()=>m()}}p();p();function Ki(t,e){Vr(()=>{var n;var r=t.getRootNode(),i=r.host?r:(n=r.head)!=null?n:r.ownerDocument.head;if(!i.querySelector("#"+e.hash)){let s=document.createElement("style");s.id=e.hash,s.textContent=e.code,i.appendChild(s),M&&WM(e.hash,s)}})}p();p();p();p();p();p();var JM=[...` -\r\f\xA0\v\uFEFF`];function eD(t,e,r){var i=t==null?"":""+t;if(e&&(i=i?i+" "+e:e),r){for(var n in r)if(r[n])i=i?i+" "+n:n;else if(i.length)for(var s=n.length,a=0;(a=i.indexOf(n,a))>=0;){var o=a+s;(a===0||JM.includes(i[a-1]))&&(o===i.length||JM.includes(i[o]))?i=(a===0?"":i.substring(0,a))+i.substring(o+1):a=o}}return i===""?null:i}p();function ht(t,e,r,i,n,s){var a=t.__className;if(ie||a!==r||a===void 0){var o=eD(r,i,s);(!ie||o!==t.getAttribute("class"))&&(o==null?t.removeAttribute("class"):e?t.className=o:t.setAttribute("class",o)),t.__className=r}else if(s&&n!==s)for(var l in s){var c=!!s[l];(n==null||c!==!!n[l])&&t.classList.toggle(l,c)}return s}p();p();var UW=Symbol("class"),GW=Symbol("style"),jW=Symbol("is custom element"),qW=Symbol("is html");function be(t,e,r,i){var n=zW(t);if(ie&&(n[e]=t.getAttribute(e),e==="src"||e==="srcset"||e==="href"&&t.nodeName==="LINK")){i||WW(t,e,r!=null?r:"");return}n[e]!==(n[e]=r)&&(e==="loading"&&(t[BO]=r),r==null?t.removeAttribute(e):typeof r!="string"&&VW(t).includes(e)?t[e]=r:t.setAttribute(e,r))}function zW(t){var e;return(e=t.__attributes)!=null?e:t.__attributes={[jW]:t.nodeName.includes("-"),[qW]:t.namespaceURI===MO}}var tD=new Map;function VW(t){var e=t.getAttribute("is")||t.nodeName,r=tD.get(e);if(r)return r;tD.set(e,r=[]);for(var i,n=t,s=Element.prototype;s!==n;){i=Ey(n);for(var a in i)i[a].set&&r.push(a);n=zl(n)}return r}function WW(t,e,r){var i;M&&(e==="srcset"&&YW(t,r)||ub((i=t.getAttribute(e))!=null?i:"",r)||JO(e,t.outerHTML.replace(t.innerHTML,t.innerHTML&&"..."),String(r)))}function ub(t,e){return t===e?!0:new URL(t,document.baseURI).href===new URL(e,document.baseURI).href}function rD(t){return t.split(",").map(e=>e.trim().split(" ").filter(Boolean))}function YW(t,e){var r=rD(t.srcset),i=rD(e);return i.length===r.length&&i.every(([n,s],a)=>s===r[a][1]&&(ub(r[a][0],n)||ub(n,r[a][0])))}p();p();p();function hb(t,e,r=e){var i=new WeakSet;Jy(t,"input",async n=>{M&&t.type==="checkbox"&&Cy();var s=n?t.defaultValue:t.value;if(s=fb(t)?db(s):s,r(s),ye!==null&&i.add(ye),await im(),s!==(s=e())){var a=t.selectionStart,o=t.selectionEnd,l=t.value.length;if(t.value=s!=null?s:"",o!==null){var c=t.value.length;a===o&&o===l&&c>l?(t.selectionStart=c,t.selectionEnd=c):(t.selectionStart=a,t.selectionEnd=Math.min(o,c))}}}),(ie&&t.defaultValue!==t.value||We(e)==null&&t.value)&&(r(fb(t)?db(t.value):t.value),ye!==null&&i.add(ye)),Kt(()=>{var a;M&&t.type==="checkbox"&&Cy();var n=e();if(t===document.activeElement){var s=(a=tf)!=null?a:ye;if(i.has(s))return}fb(t)&&n===db(t.value)||t.type==="date"&&!n&&!t.value||n!==t.value&&(t.value=n!=null?n:"")})}function fb(t){var e=t.type;return e==="number"||e==="range"}function db(t){return t===""?null:+t}p();p();p();p();p();function nD(t,e){return t===e||(t==null?void 0:t[Wt])===e}function st(t={},e,r,i){return Vr(()=>{var n,s;return Kt(()=>{n=s,s=(i==null?void 0:i())||[],We(()=>{t!==r(...s)&&(e(t,...s),n&&nD(r(...n),t)&&e(null,...n))})}),()=>{yt(()=>{s&&nD(r(...s),t)&&e(null,...s)})}}),t}p();p();p();p();p();p();p();p();p();var um=!1,Yme=Symbol();function mb(t){var e=um;try{return um=!1,[t(),um]}finally{um=e}}function ki(t,e,r,i){var k,x;var n=!ss||(r&2)!==0,s=(r&8)!==0,a=(r&16)!==0,o=i,l=!0,c=()=>(l&&(l=!1,o=a?We(i):i),o),u;if(s){var f=Wt in t||Zu in t;u=(x=(k=Ir(t,e))==null?void 0:k.set)!=null?x:f&&e in t?E=>t[e]=E:void 0}var d,h=!1;s?[d,h]=mb(()=>t[e]):d=t[e],d===void 0&&i!==void 0&&(d=c(),u&&(n&&VO(e),u(d)));var m;if(n?m=()=>{var E=t[e];return E===void 0?c():(l=!0,E)}:m=()=>{var E=t[e];return E!==void 0&&(o=void 0),E===void 0?o:E},n&&!(r&4))return m;if(u){var g=t.$$legacy;return function(E,A){return arguments.length>0?((!n||!A||g||h)&&u(A?m():E),E):m()}}var v=!1,w=(r&1?no:so)(()=>(v=!1,m()));M&&(w.label=e),s&&R(w);var b=ne;return function(E,A){if(arguments.length>0){let y=A?R(w):n&&s?Xe(E):E;return ae(w,y),v=!0,o!==void 0&&(o=y),E}return Ei&&v||b.f&16384?w.v:R(w)}}p();p();p();function sD(t){return new gb(t)}var ms,Ai,gb=class{constructor(e){pe(this,ms);pe(this,Ai);var s,a;var r=new Map,i=(o,l)=>{var c=oo(l,!1,!1);return r.set(o,c),c};let n=new Proxy({...e.props||{},$$events:{}},{get(o,l){var c;return R((c=r.get(l))!=null?c:i(l,Reflect.get(o,l)))},has(o,l){var c;return l===Zu?!0:(R((c=r.get(l))!=null?c:i(l,Reflect.get(o,l))),Reflect.has(o,l))},set(o,l,c){var u;return ae((u=r.get(l))!=null?u:i(l,c),c),Reflect.set(o,l,c)}});fe(this,Ai,(e.hydrate?ob:ia)(e.component,{target:e.target,anchor:e.anchor,props:n,context:e.context,intro:(s=e.intro)!=null?s:!1,recover:e.recover})),!ir&&(!((a=e==null?void 0:e.props)!=null&&a.$$host)||e.sync===!1)&&Ja(),fe(this,ms,n.$$events);for(let o of Object.keys($(this,Ai)))o==="$set"||o==="$destroy"||o==="$on"||tr(this,o,{get(){return $(this,Ai)[o]},set(l){$(this,Ai)[o]=l},enumerable:!0});$(this,Ai).$set=o=>{Object.assign(n,o)},$(this,Ai).$destroy=()=>{ds($(this,Ai))}}$set(e){$(this,Ai).$set(e)}$on(e,r){$(this,ms)[e]=$(this,ms)[e]||[];let i=(...n)=>r.call(this,...n);return $(this,ms)[e].push(i),()=>{$(this,ms)[e]=$(this,ms)[e].filter(n=>n!==i)}}$destroy(){$(this,Ai).$destroy()}};ms=new WeakMap,Ai=new WeakMap;var l9;typeof HTMLElement=="function"&&(l9=class extends HTMLElement{constructor(e,r,i){super();ze(this,"$$ctor");ze(this,"$$s");ze(this,"$$c");ze(this,"$$cn",!1);ze(this,"$$d",{});ze(this,"$$r",!1);ze(this,"$$p_d",{});ze(this,"$$l",{});ze(this,"$$l_u",new Map);ze(this,"$$me");ze(this,"$$shadowRoot",null);this.$$ctor=e,this.$$s=r,i&&(this.$$shadowRoot=this.attachShadow(i))}addEventListener(e,r,i){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(r),this.$$c){let n=this.$$c.$on(e,r);this.$$l_u.set(r,n)}super.addEventListener(e,r,i)}removeEventListener(e,r,i){if(super.removeEventListener(e,r,i),this.$$c){let n=this.$$l_u.get(r);n&&(n(),this.$$l_u.delete(r))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(n){return s=>{let a=document.createElement("slot");n!=="default"&&(a.name=n),oe(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let r={},i=c9(this);for(let n of this.$$s)n in i&&(n==="default"&&!this.$$d.children?(this.$$d.children=e(n),r.default=!0):r[n]=e(n));for(let n of this.attributes){let s=this.$$g_p(n.name);s in this.$$d||(this.$$d[s]=vb(s,n.value,this.$$p_d,"toProp"))}for(let n in this.$$p_d)!(n in this.$$d)&&this[n]!==void 0&&(this.$$d[n]=this[n],delete this[n]);this.$$c=sD({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:r,$$host:this}}),this.$$me=tb(()=>{Kt(()=>{var n;this.$$r=!0;for(let s of Sy(this.$$c)){if(!((n=this.$$p_d[s])!=null&&n.reflect))continue;this.$$d[s]=this.$$c[s];let a=vb(s,this.$$d[s],this.$$p_d,"toAttribute");a==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,a)}this.$$r=!1})});for(let n in this.$$l)for(let s of this.$$l[n]){let a=this.$$c.$on(n,s);this.$$l_u.set(s,a)}this.$$l={}}}attributeChangedCallback(e,r,i){var n;this.$$r||(e=this.$$g_p(e),this.$$d[e]=vb(e,i,this.$$p_d,"toProp"),(n=this.$$c)==null||n.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return Sy(this.$$p_d).find(r=>this.$$p_d[r].attribute===e||!this.$$p_d[r].attribute&&r.toLowerCase()===e)||e}});function vb(t,e,r,i){var s;let n=(s=r[t])==null?void 0:s.type;if(e=n==="Boolean"&&typeof e!="boolean"?e!=null:e,!i||!r[t])return e;if(i==="toAttribute")switch(n){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e==null?null:e;default:return e}else switch(n){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}function c9(t){let e={};return t.childNodes.forEach(r=>{e[r.slot||"default"]=!0}),e}p();p();function ho(t,e,r,i){function n(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function o(u){try{c(i.next(u))}catch(f){a(f)}}function l(u){try{c(i.throw(u))}catch(f){a(f)}}function c(u){u.done?s(u.value):n(u.value).then(o,l)}c((i=i.apply(t,e||[])).next())})}var _b=require("obsidian");p();var yb=require("obsidian");p();function u9(t){let e=t-1;return e*e*e+1}var wb=!1;function Dn(t,{delay:e=0,duration:r=400,easing:i=u9,axis:n="y"}={}){let s=getComputedStyle(t);M&&!wb&&/(contents|inline|table)/.test(s.display)&&(wb=!0,Promise.resolve().then(()=>wb=!1),iM(s.display));let a=+s.opacity,o=n==="y"?"height":"width",l=parseFloat(s[o]),c=n==="y"?["top","bottom"]:["left","right"],u=c.map(w=>`${w[0].toUpperCase()}${w.slice(1)}`),f=parseFloat(s[`padding${u[0]}`]),d=parseFloat(s[`padding${u[1]}`]),h=parseFloat(s[`margin${u[0]}`]),m=parseFloat(s[`margin${u[1]}`]),g=parseFloat(s[`border${u[0]}Width`]),v=parseFloat(s[`border${u[1]}Width`]);return{delay:e,duration:r,easing:i,css:w=>`overflow: hidden;opacity: ${Math.min(w*20,1)*a};${o}: ${w*l}px;padding-${c[0]}: ${w*f}px;padding-${c[1]}: ${w*d}px;margin-${c[0]}: ${w*h}px;margin-${c[1]}: ${w*m}px;border-${c[0]}-width: ${w*g}px;border-${c[1]}-width: ${w*v}px;min-${o}: 0`}}p();var fm=require("obsidian");var f9=ue('
'),d9=ue('
'),h9={hash:"svelte-1c0jiav",code:"main.svelte-1c0jiav .nav-file-title:where(.svelte-1c0jiav) {align-items:center;}"};function gf(t,e){ot(e,!0),Ki(t,h9);let r=Xe([]),i=Et(()=>e.view.leaf.getRoot().side=="left"?"right":"left");or(()=>{for(let w of r)w&&(0,fm.setIcon)(w,w.getAttr("data-icon"))});function n(w){w.stopPropagation(),pl(e.diff.path)?s(w):a(w)}function s(w){var b;w.stopPropagation();let k=e.view.app.vault.getAbstractFileByPath(e.diff.vaultPath);k instanceof fm.TFile&&((b=Mi(e.view.app,w))===null||b===void 0||b.openFile(k).catch(x=>e.view.plugin.displayError(x)))}function a(w){var b;e.view.plugin.tools.openDiff({event:w,aFile:(b=e.diff.fromPath)!==null&&b!==void 0?b:e.diff.path,aRef:`${e.diff.hash}^`,bFile:e.diff.path,bRef:e.diff.hash})}var o=d9();o.__click=n;var l=G(o),c=G(l),u=G(c,!0);H(c);var f=te(c,2),d=G(f),h=G(d);{var m=w=>{var b=f9();b.__click=s,st(b,k=>r[0]=k,()=>r==null?void 0:r[0]),oi("auxclick",b,s),oe(w,b)};Ae(h,w=>{ml(e.diff.vaultPath,e.view.app)&&w(m)})}H(d);var g=te(d,2),v=G(g,!0);H(g),H(f),H(l),H(o),Ne(w=>{be(l,"data-path",e.diff.vaultPath),be(l,"data-tooltip-position",R(i)),be(l,"aria-label",e.diff.vaultPath),Ue(u,w),be(g,"data-type",e.diff.status),Ue(v,e.diff.status)},[()=>pn(e.diff.vaultPath)]),oi("auxclick",o,w=>{w.stopPropagation(),w.button==2?hn(e.view.app,w,e.diff.vaultPath,e.view.leaf,"git-history"):n(w)}),oe(t,o),lt()}kt(["click"]);p();var p9=ue("
"),m9=ue(''),g9=ue('
'),v9=ue("
"),w9={hash:"svelte-d9h7mp",code:"main.svelte-d9h7mp .nav-folder-title-content:where(.svelte-d9h7mp) {display:flex;align-items:center;}"};function vf(t,e){ot(e,!0),Ki(t,w9);let r=ki(e,"topLevel",3,!1),i=ki(e,"closed",15),n=Et(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function s(l,c){l.stopPropagation(),i(i()[c.path]=!i()[c.path],!0)}var a=v9();let o;ui(a,21,()=>e.hierarchy.children,ci,(l,c)=>{var u=fs(),f=zr(u);{var d=m=>{var g=p9(),v=G(g);gf(v,{get diff(){return R(c).data},get view(){return e.view}}),H(g),oe(m,g)},h=m=>{var g=g9();let v;var w=G(g);w.__click=S=>s(S,R(c));var b=te(G(w),2);let k;var x=te(b,2),E=G(x,!0);H(x),H(w);var A=te(w,2);{var y=S=>{var _=m9(),T=G(_);vf(T,{get hierarchy(){return R(c)},get plugin(){return e.plugin},get view(){return e.view},get closed(){return i()},set closed(P){i(P)}}),H(_),Zi(3,_,()=>Dn,()=>({duration:150})),oe(S,_)};Ae(A,S=>{i()[R(c).path]||S(y)})}H(g),Ne(()=>{v=ht(g,1,"tree-item nav-folder",null,v,{"is-collapsed":i()[R(c).path]}),be(w,"data-tooltip-position",R(n)),be(w,"aria-label",R(c).vaultPath),k=ht(b,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,k,{"is-collapsed":i()[R(c).path]}),Ue(E,R(c).title)}),oe(m,g)};Ae(f,m=>{R(c).data?m(d):m(h,!1)})}oe(l,u)}),H(a),Ne(()=>o=ht(a,1,"svelte-d9h7mp",null,o,{topLevel:r()})),oe(t,a),lt()}kt(["click"]);var y9=ue('
'),b9=ue('
'),_9=ue('
'),x9=ue(''),S9=ue('
'),E9={hash:"svelte-1edsiy5",code:""};function bb(t,e){ot(e,!0),Ki(t,E9);let r=Et(()=>({title:"",path:"",vaultPath:"",children:e.plugin.gitManager.getTreeStructure(e.log.diff.files)})),i=Et(()=>e.view.leaf.getRoot().side=="left"?"right":"left"),n=De(!0),s=De(Xe({}));function a(S){let _=S.author.name;if(e.plugin.settings.authorInHistoryView=="full")return _;if(e.plugin.settings.authorInHistoryView=="initials")return _.split(" ").filter(P=>P.length>0).map(P=>P[0].toUpperCase()).join("")}var o=S9(),l=G(o);let c;var u=G(l);u.__click=()=>ae(n,!R(n));var f=G(u);let d;var h=te(f,2),m=G(h);{var g=S=>{var _=y9(),T=G(_,!0);H(_),Ne(P=>Ue(T,P),[()=>e.log.refs.join(", ")]),oe(S,_)};Ae(m,S=>{e.log.refs.length>0&&S(g)})}var v=te(m,2);{var w=S=>{var _=b9(),T=G(_,!0);H(_),Ne(P=>Ue(T,P),[()=>a(e.log)]),oe(S,_)};Ae(v,S=>{var _;e.plugin.settings.authorInHistoryView!="hide"&&((_=e.log.author)!=null&&_.name)&&S(w)})}var b=te(v,2);{var k=S=>{var _=_9(),T=G(_,!0);H(_),Ne(P=>Ue(T,P),[()=>(0,yb.moment)(e.log.date).format(e.plugin.settings.commitDateFormat)]),oe(S,_)};Ae(b,S=>{e.plugin.settings.dateInHistoryView&&S(k)})}var x=te(b,2),E=G(x,!0);H(x),H(h),H(u);var A=te(u,2);{var y=S=>{var _=x9(),T=G(_);{var P=B=>{vf(B,{get hierarchy(){return R(r)},get plugin(){return e.plugin},get view(){return e.view},topLevel:!0,get closed(){return R(s)},set closed(N){ae(s,N,!0)}})},D=B=>{var N=fs(),ce=zr(N);ui(ce,17,()=>e.log.diff.files,ci,(Pe,ve)=>{gf(Pe,{get view(){return e.view},get diff(){return R(ve)}})}),oe(B,N)};Ae(T,B=>{e.showTree?B(P):B(D,!1)})}H(_),Zi(3,_,()=>Dn,()=>({duration:150})),oe(S,_)};Ae(A,S=>{R(n)||S(y)})}H(l),H(o),Ne(S=>{c=ht(l,1,"tree-item nav-folder",null,c,{"is-collapsed":R(n)}),be(u,"aria-label",S),be(u,"data-tooltip-position",R(i)),d=ht(f,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,d,{"is-collapsed":R(n)}),Ue(E,e.log.message)},[()=>{var S;return`${e.log.refs.length>0?e.log.refs.join(", ")+` +`)}}}function xM(t){let e=Uy.get(t);e&&(Jt(t,"message",{value:e.message}),Jt(t,"stack",{value:e.stack}))}p();p();var MV=-7169;function Le(t,e){t.f=t.f&MV|e}function tc(t){t.f&512||t.deps===null?Le(t,1024):Le(t,4096)}function SM(t){if(t!==null)for(let e of t)!(e.f&2)||!(e.f&32768)||(e.f^=32768,SM(e.deps))}function qp(t,e,r){t.f&2048?e.add(t):t.f&4096&&r.add(t),SM(t.deps),Le(t,1024)}var rc=new Set,ye=null,lf=null,Rt=null,Lr=[],zp=null,Gy=!1,Ka=!1,nc,ic,Qa,sc,cf,uf,Ja,ls,ac,Ci,jy,qy,kM,zy=class zy{constructor(){me(this,Ci);qe(this,"committed",!1);qe(this,"current",new Map);qe(this,"previous",new Map);me(this,nc,new Set);me(this,ic,new Set);me(this,Qa,0);me(this,sc,0);me(this,cf,null);me(this,uf,new Set);me(this,Ja,new Set);me(this,ls,new Map);qe(this,"is_fork",!1);me(this,ac,!1)}is_deferred(){return this.is_fork||$(this,sc)>0}skip_effect(e){$(this,ls).has(e)||$(this,ls).set(e,{d:[],m:[]})}unskip_effect(e){var r=$(this,ls).get(e);if(r){$(this,ls).delete(e);for(var n of r.d)Le(n,2048),gr(n);for(n of r.m)Le(n,4096),gr(n)}}process(e){var i;Lr=[],this.apply();var r=[],n=[];for(let s of e)wt(this,Ci,jy).call(this,s,r,n);if(this.is_deferred()){wt(this,Ci,qy).call(this,n),wt(this,Ci,qy).call(this,r);for(let[s,a]of $(this,ls))TM(s,a)}else{for(let s of $(this,nc))s();$(this,nc).clear(),$(this,Qa)===0&&wt(this,Ci,kM).call(this),lf=this,ye=null,EM(n),EM(r),lf=null,(i=$(this,cf))==null||i.resolve()}Rt=null}capture(e,r){r!==Ke&&!this.previous.has(e)&&this.previous.set(e,r),e.f&8388608||(this.current.set(e,e.v),Rt==null||Rt.set(e,e.v))}activate(){ye=this,this.apply()}deactivate(){ye===this&&(ye=null,Rt=null)}flush(){if(this.activate(),Lr.length>0){if(Wy(),ye!==null&&ye!==this)return}else $(this,Qa)===0&&this.process([]);this.deactivate()}discard(){for(let e of $(this,ic))e(this);$(this,ic).clear()}increment(e){de(this,Qa,$(this,Qa)+1),e&&de(this,sc,$(this,sc)+1)}decrement(e){de(this,Qa,$(this,Qa)-1),e&&de(this,sc,$(this,sc)-1),!$(this,ac)&&(de(this,ac,!0),vt(()=>{de(this,ac,!1),this.is_deferred()?Lr.length>0&&this.flush():this.revive()}))}revive(){for(let e of $(this,uf))$(this,Ja).delete(e),Le(e,2048),gr(e);for(let e of $(this,Ja))Le(e,4096),gr(e);this.flush()}oncommit(e){$(this,nc).add(e)}ondiscard(e){$(this,ic).add(e)}settled(){var e;return((e=$(this,cf))!=null?e:de(this,cf,Op())).promise}static ensure(){if(ye===null){let e=ye=new zy;rc.add(ye),Ka||vt(()=>{ye===e&&e.flush()})}return ye}apply(){if(!(!tr||!this.is_fork&&rc.size===1)){Rt=new Map(this.current);for(let e of rc)if(e!==this)for(let[r,n]of e.previous)Rt.has(r)||Rt.set(r,n)}}};nc=new WeakMap,ic=new WeakMap,Qa=new WeakMap,sc=new WeakMap,cf=new WeakMap,uf=new WeakMap,Ja=new WeakMap,ls=new WeakMap,ac=new WeakMap,Ci=new WeakSet,jy=function(e,r,n){var d;e.f^=1024;for(var i=e.first,s=null;i!==null;){var a=i.f,o=(a&96)!==0,l=o&&(a&1024)!==0,c=l||(a&8192)!==0||$(this,ls).has(i);if(tr&&s===null&&a&128&&((d=i.b)!=null&&d.is_pending)&&(s=i),!c&&i.fn!==null){o?i.f^=1024:s!==null&&a&16777228?s.b.defer_effect(i):a&4?r.push(i):tr&&a&16777224?n.push(i):ta(i)&&(a&16&&$(this,Ja).add(i),ea(i));var u=i.first;if(u!==null){i=u;continue}}var f=i.parent;for(i=i.next;i===null&&f!==null;)f===s&&(s=null),i=f.next,f=f.parent}},qy=function(e){for(var r=0;r1){this.previous.clear();var e=Rt,r=!0;for(let s of rc){if(s===this){r=!1;continue}let a=[];for(let[l,c]of this.current){if(s.current.has(l))if(r&&c!==s.current.get(l))s.current.set(l,c);else continue;a.push(l)}if(a.length===0)continue;let o=[...s.current.keys()].filter(l=>!this.current.has(l));if(o.length>0){var n=Lr;Lr=[];let l=new Set,c=new Map;for(let u of a)AM(u,o,l,c);if(Lr.length>0){ye=s,s.apply();for(let u of Lr)wt(i=s,Ci,jy).call(i,u,[],[]);s.deactivate()}Lr=n}}ye=null,Rt=e}this.committed=!0,rc.delete(this)};var Br=zy;function eo(t){var e=Ka;Ka=!0;try{var r;for(t&&(ye!==null&&Wy(),r=t());;){if(_M(),Lr.length===0&&(ye==null||ye.flush(),Lr.length===0))return zp=null,r;Wy()}}finally{Ka=e}}function Wy(){var s;Gy=!0;var t=L?new Set:null;try{for(var e=0;Lr.length>0;){var r=Br.ensure();if(e++>1e3){if(L){var n=new Map;for(let a of r.current.keys())for(let[o,l]of(s=a.updated)!=null?s:[]){var i=n.get(o);i||(i={error:l.error,count:0},n.set(o,i)),i.count+=l.count}for(let a of n.values())a.error&&console.error(a.error)}LV()}if(r.process(Lr),Ti.clear(),L)for(let a of r.current.keys())t.add(a)}}finally{if(Lr=[],Gy=!1,zp=null,L)for(let a of t)a.updated=null}}function LV(){try{sM()}catch(t){L&&Jt(t,"stack",{value:""}),Ai(t,zp)}}var Dr=null;function EM(t){var e=t.length;if(e!==0){for(var r=0;r0)){Ti.clear();for(let i of Dr){if(i.f&24576)continue;let s=[i],a=i.parent;for(;a!==null;)Dr.has(a)&&(Dr.delete(a),s.push(a)),a=a.parent;for(let o=s.length-1;o>=0;o--){let l=s[o];l.f&24576||ea(l)}}Dr.clear()}}Dr=null}}function AM(t,e,r,n){if(!r.has(t)&&(r.add(t),t.reactions!==null))for(let i of t.reactions){let s=i.f;s&2?AM(i,e,r,n):s&4194320&&!(s&2048)&&CM(i,e,n)&&(Le(i,2048),gr(i))}}function CM(t,e,r){let n=r.get(t);if(n!==void 0)return n;if(t.deps!==null)for(let i of t.deps){if(qn.call(e,i))return!0;if(i.f&2&&CM(i,e,r))return r.set(i,!0),!0}return r.set(t,!1),!1}function gr(t){for(var e=zp=t;e.parent!==null;){e=e.parent;var r=e.f;if(Gy&&e===ne&&r&16&&!(r&262144))return;if(r&96){if(!(r&1024))return;e.f^=1024}}Lr.push(e)}function TM(t,e){if(!(t.f&32&&t.f&1024)){t.f&2048?e.d.push(t):t.f&4096&&e.m.push(t),Le(t,1024);for(var r=t.first;r!==null;)TM(r,e),r=r.next}}p();p();p();function RM(t){let e=0,r=nr(0),n;return L&&Mr(r,"createSubscriber version"),()=>{Js()&&(R(r),Xt(()=>(e===0&&(n=ze(()=>t(()=>to(r)))),e+=1,()=>{vt(()=>{e-=1,e===0&&(n==null||n(),n=void 0,to(r))})})))}}var BV=589952;function Ky(t,e,r){new Yy(t,e,r)}var tn,ff,Pi,ro,Ri,Cn,Ur,$i,cs,ra,no,us,uc,io,fc,dc,Ii,Kp,xt,$M,IM,Xy,Xp,Zp,Zy,Yy=class{constructor(e,r,n){me(this,xt);qe(this,"parent");qe(this,"is_pending",!1);me(this,tn);me(this,ff,re?ge:null);me(this,Pi);me(this,ro);me(this,Ri);me(this,Cn,null);me(this,Ur,null);me(this,$i,null);me(this,cs,null);me(this,ra,null);me(this,no,0);me(this,us,0);me(this,uc,!1);me(this,io,!1);me(this,fc,new Set);me(this,dc,new Set);me(this,Ii,null);me(this,Kp,RM(()=>(de(this,Ii,nr($(this,no))),L&&Mr($(this,Ii),"$effect.pending()"),()=>{de(this,Ii,null)})));de(this,tn,e),de(this,Pi,r),de(this,ro,n),this.parent=ne.b,this.is_pending=!!$(this,Pi).pending,de(this,Ri,rn(()=>{if(ne.b=this,re){let s=$(this,ff);er(),s.nodeType===Or&&s.data===bi?wt(this,xt,IM).call(this):(wt(this,xt,$M).call(this),$(this,us)===0&&(this.is_pending=!1))}else{var i=wt(this,xt,Xy).call(this);try{de(this,Cn,Ht(()=>n(i)))}catch(s){this.error(s)}$(this,us)>0?wt(this,xt,Zp).call(this):this.is_pending=!1}return()=>{var s;(s=$(this,ra))==null||s.remove()}},BV)),re&&de(this,tn,ge)}defer_effect(e){qp(e,$(this,fc),$(this,dc))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!$(this,Pi).pending}update_pending_count(e){wt(this,xt,Zy).call(this,e),de(this,no,$(this,no)+e),!(!$(this,Ii)||$(this,uc))&&(de(this,uc,!0),vt(()=>{de(this,uc,!1),$(this,Ii)&&Zn($(this,Ii),$(this,no))}))}get_effect_pending(){return $(this,Kp).call(this),R($(this,Ii))}error(e){var r=$(this,Pi).onerror;let n=$(this,Pi).failed;if($(this,io)||!r&&!n)throw e;$(this,Cn)&&(ut($(this,Cn)),de(this,Cn,null)),$(this,Ur)&&(ut($(this,Ur)),de(this,Ur,null)),$(this,$i)&&(ut($(this,$i)),de(this,$i,null)),re&&(Ge($(this,ff)),Xa(),Ge(ss()));var i=!1,s=!1;let a=()=>{if(i){vM();return}i=!0,s&&dM(),Br.ensure(),de(this,no,0),$(this,$i)!==null&&Fi($(this,$i),()=>{de(this,$i,null)}),this.is_pending=this.has_pending_snippet(),de(this,Cn,wt(this,xt,Xp).call(this,()=>(de(this,io,!1),Ht(()=>$(this,ro).call(this,$(this,tn)))))),$(this,us)>0?wt(this,xt,Zp).call(this):this.is_pending=!1};vt(()=>{try{s=!0,r==null||r(e,a),s=!1}catch(o){Ai(o,$(this,Ri)&&$(this,Ri).parent)}n&&de(this,$i,wt(this,xt,Xp).call(this,()=>{Br.ensure(),de(this,io,!0);try{return Ht(()=>{n($(this,tn),()=>e,()=>a)})}catch(o){return Ai(o,$(this,Ri).parent),null}finally{de(this,io,!1)}}))})}};tn=new WeakMap,ff=new WeakMap,Pi=new WeakMap,ro=new WeakMap,Ri=new WeakMap,Cn=new WeakMap,Ur=new WeakMap,$i=new WeakMap,cs=new WeakMap,ra=new WeakMap,no=new WeakMap,us=new WeakMap,uc=new WeakMap,io=new WeakMap,fc=new WeakMap,dc=new WeakMap,Ii=new WeakMap,Kp=new WeakMap,xt=new WeakSet,$M=function(){try{de(this,Cn,Ht(()=>$(this,ro).call(this,$(this,tn))))}catch(e){this.error(e)}},IM=function(){let e=$(this,Pi).pending;e&&(de(this,Ur,Ht(()=>e($(this,tn)))),vt(()=>{var r=wt(this,xt,Xy).call(this);de(this,Cn,wt(this,xt,Xp).call(this,()=>(Br.ensure(),Ht(()=>$(this,ro).call(this,r))))),$(this,us)>0?wt(this,xt,Zp).call(this):(Fi($(this,Ur),()=>{de(this,Ur,null)}),this.is_pending=!1)}))},Xy=function(){var e=$(this,tn);return this.is_pending&&(de(this,ra,It()),$(this,tn).before($(this,ra)),e=$(this,ra)),e},Xp=function(e){var r=ne,n=le,i=ke;Ut($(this,Ri)),$t($(this,Ri)),os($(this,Ri).ctx);try{return e()}catch(s){return jp(s),null}finally{Ut(r),$t(n),os(i)}},Zp=function(){let e=$(this,Pi).pending;$(this,Cn)!==null&&(de(this,cs,document.createDocumentFragment()),$(this,cs).append($(this,ra)),Qp($(this,Cn),$(this,cs))),$(this,Ur)===null&&de(this,Ur,Ht(()=>e($(this,tn))))},Zy=function(e){var r;if(!this.has_pending_snippet()){this.parent&&wt(r=this.parent,xt,Zy).call(r,e);return}if(de(this,us,$(this,us)+e),$(this,us)===0){this.is_pending=!1;for(let n of $(this,fc))Le(n,2048),gr(n);for(let n of $(this,dc))Le(n,4096),gr(n);$(this,fc).clear(),$(this,dc).clear(),$(this,Ur)&&Fi($(this,Ur),()=>{de(this,Ur,null)}),$(this,cs)&&($(this,tn).before($(this,cs)),de(this,cs,null))}};p();function Jp(t,e,r,n){let i=Ei()?so:ao;var s=t.filter(d=>!d.settled);if(r.length===0&&s.length===0){n(e.map(i));return}var a=ye,o=ne,l=FM(),c=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(d=>d.promise)):null;function u(d){l();try{n(d)}catch(h){o.f&16384||Ai(h,o)}a==null||a.deactivate(),df()}if(r.length===0){c.then(()=>u(e.map(i)));return}function f(){l(),Promise.all(r.map(d=>Jy(d))).then(d=>u([...e.map(i),...d])).catch(d=>Ai(d,o))}c?c.then(f):f()}function FM(){var t=ne,e=le,r=ke,n=ye;if(L)var i=Si;return function(a=!0){Ut(t),$t(e),os(r),a&&(n==null||n.activate()),L&&(Qy(null),Jl(i))}}function df(){Ut(null),$t(null),os(null),L&&(Qy(null),Jl(null))}var hf=null;function Qy(t){hf=t}var pf=new Set;function so(t){var e=2050,r=le!==null&&le.f&2?le:null;ne!==null&&(ne.f|=524288);let n={ctx:ke,deps:null,effects:null,equals:Bp,f:e,fn:t,reactions:null,rv:0,v:Ke,wv:0,parent:r!=null?r:ne,ac:null};return L&&Wn&&(n.created=xi("created at")),n}function Jy(t,e,r){let n=ne;n===null&&eM();var i=n.b,s=void 0,a=nr(Ke);L&&(a.label=e);var o=!le,l=new Map;return OM(()=>{var h;L&&(hf=ne);var c=Op();s=c.promise;try{Promise.resolve(t()).then(c.resolve,c.reject).then(()=>{u===ye&&u.committed&&u.deactivate(),df()})}catch(m){c.reject(m),df()}L&&(hf=null);var u=ye;if(o){var f=i.is_rendered();i.update_pending_count(1),u.increment(f),(h=l.get(u))==null||h.reject(_i),l.delete(u),l.set(u,c)}let d=(m,g=void 0)=>{if(hf=null,u.activate(),g)g!==_i&&(a.f|=8388608,Zn(a,g));else{a.f&8388608&&(a.f^=8388608),Zn(a,m);for(let[v,w]of l){if(l.delete(v),v===u)break;w.reject(_i)}L&&r!==void 0&&(pf.add(a),setTimeout(()=>{pf.has(a)&&(hM(a.label,r),pf.delete(a))}))}o&&(i.update_pending_count(-1),u.decrement(f))};c.promise.then(d,m=>d(null,m||"unknown"))}),ir(()=>{for(let c of l.values())c.reject(_i)}),L&&(a.f|=4194304),new Promise(c=>{function u(f){function d(){f===s?c(a):u(s)}f.then(d,d)}u(s)})}function St(t){let e=so(t);return tr||rm(e),e}function ao(t){let e=so(t);return e.equals=Hp,e}function em(t){var e=t.effects;if(e!==null){t.effects=null;for(var r=0;r5){let l=xi("updated at");if(l!==null){let c=t.updated.get(l.stack);c||(c={error:l,count:0},t.updated.set(l.stack,c)),c.count++}}}ne!==null&&(t.set_during_effect=!0)}if(t.f&2){let o=t;t.f&2048&&mf(o),tc(o)}t.wv=cc(),DM(t,2048),Ei()&&ne!==null&&ne.f&1024&&!(ne.f&96)&&(sn===null?LM([t]):sn.push(t)),!n.is_fork&&oo.size>0&&!rb&&Yp()}return e}function Yp(){rb=!1;for(let t of oo)t.f&1024&&Le(t,4096),ta(t)&&ea(t);oo.clear()}function to(t){se(t,t.v+1)}function DM(t,e){var u;var r=t.reactions;if(r!==null)for(var n=Ei(),i=r.length,s=0;s{if(na===a)return f();var d=le,h=na;$t(null),nb(a);var m=f();return $t(d),nb(h),m};n&&(r.set("length",Me(t.length,s)),L&&(t=WV(t)));var l="";let c=!1;function u(f){if(!c){c=!0,l=f,Mr(i,`${l} version`);for(let[d,h]of r)Mr(h,co(l,d));c=!1}}return new Proxy(t,{defineProperty(f,d,h){(!("value"in h)||h.configurable===!1||h.enumerable===!1||h.writable===!1)&&cM();var m=r.get(d);return m===void 0?m=o(()=>{var g=Me(h.value,s);return r.set(d,g),L&&typeof d=="string"&&Mr(g,co(l,d)),g}):se(m,h.value,!0),!0},deleteProperty(f,d){var h=r.get(d);if(h===void 0){if(d in f){let m=o(()=>Me(Ke,s));r.set(d,m),to(i),L&&Mr(m,co(l,d))}}else se(h,Ke),to(i);return!0},get(f,d,h){var w;if(d===Wt)return t;if(L&&d===Mp)return u;var m=r.get(d),g=d in f;if(m===void 0&&(!g||(w=Ir(f,d))!=null&&w.writable)&&(m=o(()=>{var b=Ye(g?f[d]:Ke),k=Me(b,s);return L&&Mr(k,co(l,d)),k}),r.set(d,m)),m!==void 0){var v=R(m);return v===Ke?void 0:v}return Reflect.get(f,d,h)},getOwnPropertyDescriptor(f,d){var h=Reflect.getOwnPropertyDescriptor(f,d);if(h&&"value"in h){var m=r.get(d);m&&(h.value=R(m))}else if(h===void 0){var g=r.get(d),v=g==null?void 0:g.v;if(g!==void 0&&v!==Ke)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return h},has(f,d){var v;if(d===Wt)return!0;var h=r.get(d),m=h!==void 0&&h.v!==Ke||Reflect.has(f,d);if(h!==void 0||ne!==null&&(!m||(v=Ir(f,d))!=null&&v.writable)){h===void 0&&(h=o(()=>{var w=m?Ye(f[d]):Ke,b=Me(w,s);return L&&Mr(b,co(l,d)),b}),r.set(d,h));var g=R(h);if(g===Ke)return!1}return m},set(f,d,h,m){var y;var g=r.get(d),v=d in f;if(n&&d==="length")for(var w=h;wMe(Ke,s)),r.set(w+"",b),L&&Mr(b,co(l,w)))}if(g===void 0)(!v||(y=Ir(f,d))!=null&&y.writable)&&(g=o(()=>Me(void 0,s)),L&&Mr(g,co(l,d)),se(g,Ye(h)),r.set(d,g));else{v=g.v!==Ke;var k=o(()=>Ye(h));se(g,k)}var x=Reflect.getOwnPropertyDescriptor(f,d);if(x!=null&&x.set&&x.set.call(m,h),!v){if(n&&typeof d=="string"){var E=r.get("length"),A=Number(d);Number.isInteger(A)&&A>=E.v&&se(E,A+1)}to(i)}return!0},ownKeys(f){R(i);var d=Reflect.ownKeys(f).filter(g=>{var v=r.get(g);return v===void 0||v.v!==Ke});for(var[h,m]of r)m.v!==Ke&&!(h in f)&&d.push(h);return d},setPrototypeOf(){uM()}})}function co(t,e){var r;return typeof e=="symbol"?`${t}[Symbol(${(r=e.description)!=null?r:""})]`:jV.test(e)?`${t}.${e}`:/^\d+$/.test(e)?`${t}[${e}]`:`${t}['${e}']`}function nm(t){try{if(t!==null&&typeof t=="object"&&Wt in t)return t[Wt]}catch(e){}return t}var qV=new Set(["copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift"]);function WV(t){return new Proxy(t,{get(e,r,n){var i=Reflect.get(e,r,n);return qV.has(r)?function(...s){MM();var a=i.apply(this,s);return Yp(),a}:i}})}function NM(){let t=Array.prototype,e=Array.__svelte_cleanup;e&&e();let{indexOf:r,lastIndexOf:n,includes:i}=t;t.indexOf=function(s,a){let o=r.call(this,s,a);if(o===-1){for(let l=a!=null?a:0;l{t.indexOf=r,t.lastIndexOf=n,t.includes=i}}var ib,BM,sf,HM,UM;function im(){if(ib===void 0){ib=window,BM=document,sf=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,r=Text.prototype;HM=Ir(e,"firstChild").get,UM=Ir(e,"nextSibling").get,Oy(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Oy(r)&&(r.__t=void 0),L&&(t.__svelte_meta=null,NM())}}function It(t=""){return document.createTextNode(t)}function Zt(t){return HM.call(t)}function Yt(t){return UM.call(t)}function j(t,e){if(!re)return Zt(t);var r=Zt(ge);if(r===null)r=ge.appendChild(It());else if(e&&r.nodeType!==Ql){var n=It();return r==null||r.before(n),Ge(n),n}return e&&am(r),Ge(r),r}function qr(t,e=!1){var i,s;if(!re){var r=Zt(t);return r instanceof Comment&&r.data===""?Yt(r):r}if(e){if(((i=ge)==null?void 0:i.nodeType)!==Ql){var n=It();return(s=ge)==null||s.before(n),Ge(n),n}am(ge)}return ge}function ee(t,e=1,r=!1){let n=re?ge:t;for(var i;e--;)i=n,n=Yt(n);if(!re)return n;if(r){if((n==null?void 0:n.nodeType)!==Ql){var s=It();return n===null?i==null||i.after(s):n.before(s),Ge(s),s}am(n)}return Ge(n),n}function hc(t){t.textContent=""}function sm(){if(!tr||Dr!==null)return!1;var t=ne.f;return(t&32768)!==0}function am(t){if(t.nodeValue.length<65536)return;let e=t.nextSibling;for(;e!==null&&e.nodeType===Ql;)e.remove(),t.nodeValue+=e.nodeValue,e=t.nextSibling}p();p();function sb(t){re&&Zt(t)!==null&&hc(t)}var GM=!1;function ab(){GM||(GM=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var e;if(!t.defaultPrevented)for(let r of t.target.elements)(e=r.__on_r)==null||e.call(r)})},{capture:!0}))}function Kn(t){var e=le,r=ne;$t(null),Ut(null);try{return t()}finally{$t(e),Ut(r)}}function ob(t,e,r,n=r){t.addEventListener(e,()=>Kn(r));let i=t.__on_r;i?t.__on_r=()=>{i(),n(!0)}:t.__on_r=()=>n(!0),ab()}function jM(t){ne===null&&(le===null&&iM(t),nM()),Tn&&rM(t)}function VV(t,e){var r=e.last;r===null?e.last=e.first=t:(r.next=t,t.prev=r,e.last=t)}function Oi(t,e,r){var o;var n=ne;if(L)for(;n!==null&&n.f&131072;)n=n.parent;n!==null&&n.f&8192&&(t|=8192);var i={ctx:ke,deps:null,nodes:null,f:t|2048|512,first:null,fn:e,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};if(L&&(i.component_function=zn),r)try{ea(i),i.f|=32768}catch(l){throw ut(i),l}else e!==null&&gr(i);var s=i;if(r&&s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&524288)&&(s=s.first,t&16&&t&65536&&s!==null&&(s.f|=65536)),s!==null&&(s.parent=n,n!==null&&VV(s,n),le!==null&&le.f&2&&!(t&64))){var a=le;((o=a.effects)!=null?o:a.effects=[]).push(s)}return i}function Js(){return le!==null&&!jr}function ir(t){let e=Oi(8,null,!1);return Le(e,1024),e.teardown=t,e}function sr(t){var i;jM("$effect"),L&&Jt(t,"name",{value:"$effect"});var e=ne.f,r=!le&&(e&32)!==0&&(e&32768)===0;if(r){var n=ke;((i=n.e)!=null?i:n.e=[]).push(t)}else return Hy(t)}function Hy(t){return Oi(1048580,t,!1)}function cb(t){Br.ensure();let e=Oi(524352,t,!0);return()=>{ut(e)}}function qM(t){Br.ensure();let e=Oi(524352,t,!0);return(r={})=>new Promise(n=>{r.outro?Fi(e,()=>{ut(e),n(void 0)}):(ut(e),n(void 0))})}function Wr(t){return Oi(4,t,!1)}function OM(t){return Oi(4718592,t,!0)}function Xt(t,e=0){return Oi(8|e,t,!0)}function Ne(t,e=[],r=[],n=[]){Jp(n,e,r,i=>{Oi(8,()=>t(...i.map(R)),!0)})}function rn(t,e=0){var r=Oi(16|e,t,!0);return L&&(r.dev_stack=Si),r}function Ht(t){return Oi(524320,t,!0)}function ub(t){var e=t.teardown;if(e!==null){let r=Tn,n=le;lb(!0),$t(null);try{e.call(null)}finally{lb(r),$t(n)}}}function fb(t,e=!1){var r=t.first;for(t.first=t.last=null;r!==null;){let i=r.ac;i!==null&&Kn(()=>{i.abort(_i)});var n=r.next;r.f&64?r.parent=null:ut(r,e),r=n}}function WM(t){for(var e=t.first;e!==null;){var r=e.next;e.f&32||ut(e),e=r}}function ut(t,e=!0){var r=!1;(e||t.f&262144)&&t.nodes!==null&&t.nodes.end!==null&&(zM(t.nodes.start,t.nodes.end),r=!0),fb(t,e&&!r),vf(t,0),Le(t,16384);var n=t.nodes&&t.nodes.t;if(n!==null)for(let s of n)s.stop();ub(t);var i=t.parent;i!==null&&i.first!==null&&Vy(t),L&&(t.component_function=null),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function zM(t,e){for(;t!==null;){var r=t===e?null:Yt(t);t.remove(),t=r}}function Vy(t){var e=t.parent,r=t.prev,n=t.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),e!==null&&(e.first===t&&(e.first=n),e.last===t&&(e.last=r))}function Fi(t,e,r=!0){var n=[];VM(t,n,!0);var i=()=>{r&&ut(t),e&&e()},s=n.length;if(s>0){var a=()=>--s||i();for(var o of n)o.out(a)}else i()}function VM(t,e,r){if(!(t.f&8192)){t.f^=8192;var n=t.nodes&&t.nodes.t;if(n!==null)for(let o of n)(o.is_global||r)&&e.push(o);for(var i=t.first;i!==null;){var s=i.next,a=(i.f&65536)!==0||(i.f&32)!==0&&(t.f&16)!==0;VM(i,e,a?r:!1),i=s}}}function gf(t){YM(t,!0)}function YM(t,e){if(t.f&8192){t.f^=8192,t.f&1024||(Le(t,2048),gr(t));for(var r=t.first;r!==null;){var n=r.next,i=(r.f&65536)!==0||(r.f&32)!==0;YM(r,i?e:!1),r=n}var s=t.nodes&&t.nodes.t;if(s!==null)for(let a of s)(a.is_global||e)&&a.in()}}function Qp(t,e){if(t.nodes)for(var r=t.nodes.start,n=t.nodes.end;r!==null;){var i=r===n?null:Yt(r);e.append(r),r=i}}p();var XM=null;var om=!1,Tn=!1;function lb(t){Tn=t}var le=null,jr=!1;function $t(t){le=t}var ne=null;function Ut(t){ne=t}var nn=null;function rm(t){le!==null&&(!tr||le.f&2)&&(nn===null?nn=[t]:nn.push(t))}var zr=null,an=0,sn=null;function LM(t){sn=t}var ZM=1,uo=0,na=uo;function nb(t){na=t}function cc(){return++ZM}function ta(t){var e=t.f;if(e&2048)return!0;if(e&2&&(t.f&=-32769),e&4096){for(var r=t.deps,n=r.length,i=0;it.wv)return!0}e&512&&Rt===null&&Le(t,1024)}return!1}function KM(t,e,r=!0){var n=t.reactions;if(n!==null&&!(!tr&&nn!==null&&qn.call(nn,t)))for(var i=0;i{t.ac.abort(_i)}),t.ac=null);try{t.f|=2097152;var u=t.fn,f=u(),d=t.deps,h=(g=ye)==null?void 0:g.is_fork;if(zr!==null){var m;if(h||vf(t,an),d!==null&&an>0)for(d.length=an+zr.length,m=0;m{requestAnimationFrame(()=>t()),setTimeout(()=>t())});await Promise.resolve(),eo()}function R(t){var h,m,g;var e=t.f,r=(e&2)!==0;if((h=XM)==null||h.add(t),le!==null&&!jr){var n=ne!==null&&(ne.f&16384)!==0;if(!n&&(nn===null||!qn.call(nn,t))){var i=le.deps;if(le.f&2097152)t.rvr==null?void 0:r.call(this,s))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?vt(()=>{e.addEventListener(t,i,n)}):e.addEventListener(t,i,n),i}function on(t,e,r,n,i){var s={capture:n,passive:i},a=tD(t,e,r,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ir(()=>{e.removeEventListener(t,a,s)})}function Et(t){for(var e=0;e{throw w});throw d}}finally{t.__root=e,delete t.currentTarget,$t(u),Ut(f)}}}p();p();function um(t){var e=document.createElement("template");return e.innerHTML=t.replaceAll("",""),e.content}function Mi(t,e){var r=ne;r.nodes===null&&(r.nodes={start:t,end:e,a:null,t:null})}function fe(t,e){var r=(e&1)!==0,n=(e&2)!==0,i,s=!t.startsWith("");return()=>{if(re)return Mi(ge,null),ge;i===void 0&&(i=um(s?t:""+t),r||(i=Zt(i)));var a=n||sf?document.importNode(i,!0):i.cloneNode(!0);if(r){var o=Zt(a),l=a.lastChild;Mi(o,l)}else Mi(a,a);return a}}function ds(){if(re)return Mi(ge,null),ge;var t=document.createDocumentFragment(),e=document.createComment(""),r=It();return t.append(e,r),Mi(e,r),t}function ae(t,e){if(re){var r=ne;(!(r.f&32768)||r.nodes.end===null)&&(r.nodes.end=ge),er();return}t!==null&&t.before(e)}p();var JV=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected","webkitdirectory","defer","disablepictureinpicture","disableremoteplayback"];var Tce=[...JV,"formNoValidate","isMap","noModule","playsInline","readOnly","value","volume","defaultValue","defaultChecked","srcObject","noValidate","allowFullscreen","disablePictureInPicture","disableRemotePlayback"];var e9=["touchstart","touchmove"];function nD(t){return e9.includes(t)}var t9=["$state","$state.raw","$derived","$derived.by"],Pce=[...t9,"$state.eager","$state.snapshot","$props","$props.id","$bindable","$effect","$effect.pre","$effect.tracking","$effect.root","$effect.pending","$inspect","$inspect().with","$inspect.trace","$host"];var fm=!0;function He(t,e){var n;var r=e==null?"":typeof e=="object"?e+"":e;r!==((n=t.__t)!=null?n:t.__t=t.nodeValue)&&(t.__t=r,t.nodeValue=r+"")}function ia(t,e){return iD(t,e)}function mb(t,e){var a;im(),e.intro=(a=e.intro)!=null?a:!1;let r=e.target,n=re,i=ge;try{for(var s=Zt(r);s&&(s.nodeType!==Or||s.data!==tf);)s=Yt(s);if(!s)throw ns;Bt(!0),Ge(s);let o=iD(t,{...e,anchor:s});return Bt(!1),o}catch(o){if(o instanceof Error&&o.message.split(` +`).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==ns&&console.warn("Failed to hydrate: ",o),e.recover===!1&&aM(),im(),hc(r),Bt(!1),ia(t,e)}finally{Bt(n),Ge(i)}}var mc=new Map;function iD(t,{target:e,anchor:r,props:n={},events:i,context:s,intro:a=!0}){im();var o=new Set,l=f=>{for(var d=0;d{var f=r!=null?r:e.appendChild(It());return Ky(f,{pending:()=>{}},d=>{at({});var h=ke;if(s&&(h.c=s),i&&(n.$$events=i),re&&Mi(d,null),fm=a,c=t(d,n)||{},fm=!0,re&&(ne.nodes.end=ge,ge===null||ge.nodeType!==Or||ge.data!==Va))throw Ya(),ns;ot()}),()=>{var m;for(var d of o){e.removeEventListener(d,pc);var h=mc.get(d);--h===0?(document.removeEventListener(d,pc),mc.delete(d)):mc.set(d,h)}cm.delete(l),f!==r&&((m=f.parentNode)==null||m.removeChild(f))}});return pb.set(c,u),c}var pb=new WeakMap;function hs(t,e){let r=pb.get(t);return r?(pb.delete(t),r(e)):(L&&(Wt in t?gM():mM()),Promise.resolve())}p();p();p();var Qn,Di,ln,fo,wf,yf,dm,ps=class{constructor(e,r=!0){qe(this,"anchor");me(this,Qn,new Map);me(this,Di,new Map);me(this,ln,new Map);me(this,fo,new Set);me(this,wf,!0);me(this,yf,()=>{var e=ye;if($(this,Qn).has(e)){var r=$(this,Qn).get(e),n=$(this,Di).get(r);if(n)gf(n),$(this,fo).delete(r);else{var i=$(this,ln).get(r);i&&($(this,Di).set(r,i.effect),$(this,ln).delete(r),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(let[s,a]of $(this,Qn)){if($(this,Qn).delete(s),s===e)break;let o=$(this,ln).get(a);o&&(ut(o.effect),$(this,ln).delete(a))}for(let[s,a]of $(this,Di)){if(s===r||$(this,fo).has(s))continue;let o=()=>{if(Array.from($(this,Qn).values()).includes(s)){var c=document.createDocumentFragment();Qp(a,c),c.append(It()),$(this,ln).set(s,{effect:a,fragment:c})}else ut(a);$(this,fo).delete(s),$(this,Di).delete(s)};$(this,wf)||!n?($(this,fo).add(s),Fi(a,o,!1)):o()}}});me(this,dm,e=>{$(this,Qn).delete(e);let r=Array.from($(this,Qn).values());for(let[n,i]of $(this,ln))r.includes(n)||(ut(i.effect),$(this,ln).delete(n))});this.anchor=e,de(this,wf,r)}ensure(e,r){var n=ye,i=sm();if(r&&!$(this,Di).has(e)&&!$(this,ln).has(e))if(i){var s=document.createDocumentFragment(),a=It();s.append(a),$(this,ln).set(e,{effect:Ht(()=>r(a)),fragment:s})}else $(this,Di).set(e,Ht(()=>r(this.anchor)));if($(this,Qn).set(n,e),i){for(let[o,l]of $(this,Di))o===e?n.unskip_effect(l):n.skip_effect(l);for(let[o,l]of $(this,ln))o===e?n.unskip_effect(l.effect):n.skip_effect(l.effect);n.oncommit($(this,yf)),n.ondiscard($(this,dm))}else re&&(this.anchor=ge),$(this,yf).call(this)}};Qn=new WeakMap,Di=new WeakMap,ln=new WeakMap,fo=new WeakMap,wf=new WeakMap,yf=new WeakMap,dm=new WeakMap;if(L){let t=function(e){if(!(e in globalThis)){let r;Object.defineProperty(globalThis,e,{configurable:!0,get:()=>{if(r!==void 0)return r;lM(e)},set:n=>{r=n}})}};t("$state"),t("$effect"),t("$derived"),t("$inspect"),t("$props"),t("$bindable")}function ho(t){ke===null&&Dp("onMount"),as&&ke.l!==null?i9(ke).m.push(t):sr(()=>{let e=ze(t);if(typeof e=="function")return e})}function i9(t){var r;var e=t.l;return(r=e.u)!=null?r:e.u={a:[],b:[],m:[]}}p();p();var oD=new Map;function lD(t,e){var r=oD.get(t);r||(r=new Set,oD.set(t,r)),r.add(e)}p();p();p();p();p();p();p();p();p();function Ae(t,e,r=!1){re&&er();var n=new ps(t),i=r?65536:0;function s(a,o){if(re){let c=Np(t)===bi;if(a===c){var l=ss();Ge(l),n.anchor=l,Bt(!1),n.ensure(a,o),Bt(!0);return}}n.ensure(a,o)}rn(()=>{var a=!1;e((o,l=!0)=>{a=!0,s(l,o)}),a||s(!1,null)},i)}p();var Cde=Symbol("NaN");p();p();function cn(t,e){return e}function f9(t,e,r){var f;for(var n=[],i=e.length,s,a=e.length,o=0;o{if(s){if(s.pending.delete(d),s.done.add(d),s.pending.size===0){var h=t.outrogroups;gb(Zl(s.done)),h.delete(s),h.size===0&&(t.outrogroups=null)}}else a-=1},!1)}if(a===0){var l=n.length===0&&r!==null;if(l){var c=r,u=c.parentNode;hc(u),u.append(c),t.items.clear()}gb(e,!l)}else s={pending:new Set(e),done:new Set},((f=t.outrogroups)!=null?f:t.outrogroups=new Set).add(s)}function gb(t,e=!0){for(var r=0;r{var w=r();return is(w)?w:w==null?[]:Zl(w)}),d,h=!0;function m(){v.fallback=u,d9(v,d,a,e,n),u!==null&&(d.length===0?u.f&33554432?(u.f^=33554432,_f(u,null,a)):gf(u):Fi(u,()=>{u=null}))}var g=rn(()=>{d=R(f);var w=d.length;let b=!1;if(re){var k=Np(a)===bi;k!==(w===0)&&(a=ss(),Ge(a),Bt(!1),b=!0)}for(var x=new Set,E=ye,A=sm(),y=0;ys(a)):(u=Ht(()=>s(gc!=null?gc:gc=It())),u.f|=33554432)),w>x.size&&(L?p9(d,n):Ly("","","")),re&&w>0&&Ge(ss()),!h)if(A){for(let[P,N]of o)x.has(P)||E.skip_effect(N.e);E.oncommit(m),E.ondiscard(()=>{})}else m();b&&Bt(!0),R(f)}),v={effect:g,flags:e,items:o,outrogroups:null,fallback:u};h=!1,re&&(a=ge)}function bf(t){for(;t!==null&&!(t.f&32);)t=t.next;return t}function d9(t,e,r,n,i){var C,P,N,B,H,ce,Pe,ve,ie;var s=(n&8)!==0,a=e.length,o=t.items,l=bf(t.effect.first),c,u=null,f,d=[],h=[],m,g,v,w;if(s)for(w=0;w0){var _=n&4&&a===0?r:null;if(s){for(w=0;w{var xe,we;if(f!==void 0)for(v of f)(we=(xe=v.nodes)==null?void 0:xe.a)==null||we.apply()})}function h9(t,e,r,n,i,s,a,o){var l=a&1?a&16?nr(r):lo(r,!1,!1):null,c=a&2?nr(i):null;return L&&l&&(l.trace=()=>{var u;o()[(u=c==null?void 0:c.v)!=null?u:i]}),{v:l,i:c,e:Ht(()=>(s(e,l!=null?l:r,c!=null?c:i,o),()=>{t.delete(n)}))}}function _f(t,e,r){if(t.nodes)for(var n=t.nodes.start,i=t.nodes.end,s=e&&!(e.f&33554432)?e.nodes.start:r;n!==null;){var a=Yt(n);if(s.before(n),n===i)return;n=a}}function sa(t,e,r){e===null?t.effect.first=r:e.next=r,r===null?t.effect.last=e:r.prev=e}function p9(t,e){let r=new Map,n=t.length;for(let i=0;iperformance.now():()=>Date.now(),Jn={tick:t=>(Ip?requestAnimationFrame:Fr)(t),now:()=>m9(),tasks:new Set};function uD(){let t=Jn.now();Jn.tasks.forEach(e=>{e.c(t)||(Jn.tasks.delete(e),e.f())}),Jn.tasks.size!==0&&Jn.tick(uD)}function fD(t){let e;return Jn.tasks.size===0&&Jn.tick(uD),{promise:new Promise(r=>{Jn.tasks.add(e={c:t,f:r})}),abort(){Jn.tasks.delete(e)}}}function hm(t,e){Kn(()=>{t.dispatchEvent(new CustomEvent(e))})}function y9(t){if(t==="float")return"cssFloat";if(t==="offset")return"cssOffset";if(t.startsWith("--"))return t;let e=t.split("-");return e.length===1?e[0]:e[0]+e.slice(1).map(r=>r[0].toUpperCase()+r.slice(1)).join("")}function dD(t){let e={},r=t.split(";");for(let n of r){let[i,s]=n.split(":");if(!i||s===void 0)break;let a=y9(i.trim());e[a]=s.trim()}return e}var b9=t=>t;function ei(t,e,r,n){var k,x;var i=(t&1)!==0,s=(t&2)!==0,a=i&&s,o=(t&4)!==0,l=a?"both":i?"in":"out",c,u=e.inert,f=e.style.overflow,d,h;function m(){return Kn(()=>{var E;return c!=null?c:c=r()(e,(E=n==null?void 0:n())!=null?E:{},{direction:l})})}var g={is_global:o,in(){var E;if(e.inert=u,!i){h==null||h.abort(),(E=h==null?void 0:h.reset)==null||E.call(h);return}s||d==null||d.abort(),d=vb(e,m(),h,1,()=>{hm(e,"introend"),d==null||d.abort(),d=c=void 0,e.style.overflow=f})},out(E){if(!s){E==null||E(),c=void 0;return}e.inert=!0,h=vb(e,m(),d,0,()=>{hm(e,"outroend"),E==null||E()})},stop:()=>{d==null||d.abort(),h==null||h.abort()}},v=ne;if(((x=(k=v.nodes).t)!=null?x:k.t=[]).push(g),i&&fm){var w=o;if(!w){for(var b=v.parent;b&&b.f&65536;)for(;(b=b.parent)&&!(b.f&16););w=!b||(b.f&32768)!==0}w&&Wr(()=>{ze(()=>g.in())})}}function vb(t,e,r,n,i){var s=n===1;if(My(e)){var a,o=!1;return vt(()=>{if(!o){var v=e({direction:s?"in":"out"});a=vb(t,v,r,n,i)}}),{abort:()=>{o=!0,a==null||a.abort()},deactivate:()=>a.deactivate(),reset:()=>a.reset(),t:()=>a.t()}}if(r==null||r.deactivate(),!(e!=null&&e.duration)&&!(e!=null&&e.delay))return hm(t,s?"introstart":"outrostart"),i(),{abort:Fr,deactivate:Fr,reset:Fr,t:()=>n};let{delay:l=0,css:c,tick:u,easing:f=b9}=e;var d=[];if(s&&r===void 0&&(u&&u(0,1),c)){var h=dD(c(0,1));d.push(h,h)}var m=()=>1-n,g=t.animate(d,{duration:l,fill:"forwards"});return g.onfinish=()=>{var _;g.cancel(),hm(t,s?"introstart":"outrostart");var v=(_=r==null?void 0:r.t())!=null?_:1-n;r==null||r.abort();var w=n-v,b=e.duration*Math.abs(w),k=[];if(b>0){var x=!1;if(c)for(var E=Math.ceil(b/16.666666666666668),A=0;A<=E;A+=1){var y=v+w*f(A/E),S=dD(c(y,1-y));k.push(S),x||(x=S.overflow==="hidden")}x&&(t.style.overflow="hidden"),m=()=>{var C=g.currentTime;return v+w*f(C/b)},u&&fD(()=>{if(g.playState!=="running")return!1;var C=m();return u(C,1-C),!0})}g=t.animate(k,{duration:b,fill:"forwards"}),g.onfinish=()=>{m=()=>n,u==null||u(n,1-n),i()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=Fr)},deactivate:()=>{i=Fr},reset:()=>{n===0&&(u==null||u(1,0))},t:()=>m()}}p();p();function ti(t,e){Wr(()=>{var i;var r=t.getRootNode(),n=r.host?r:(i=r.head)!=null?i:r.ownerDocument.head;if(!n.querySelector("#"+e.hash)){let s=document.createElement("style");s.id=e.hash,s.textContent=e.code,n.appendChild(s),L&&lD(e.hash,s)}})}p();p();p();p();p();p();var pD=[...` +\r\f\xA0\v\uFEFF`];function mD(t,e,r){var n=t==null?"":""+t;if(e&&(n=n?n+" "+e:e),r){for(var i in r)if(r[i])n=n?n+" "+i:i;else if(n.length)for(var s=i.length,a=0;(a=n.indexOf(i,a))>=0;){var o=a+s;(a===0||pD.includes(n[a-1]))&&(o===n.length||pD.includes(n[o]))?n=(a===0?"":n.substring(0,a))+n.substring(o+1):a=o}}return n===""?null:n}p();function ft(t,e,r,n,i,s){var a=t.__className;if(re||a!==r||a===void 0){var o=mD(r,n,s);(!re||o!==t.getAttribute("class"))&&(o==null?t.removeAttribute("class"):e?t.className=o:t.setAttribute("class",o)),t.__className=r}else if(s&&i!==s)for(var l in s){var c=!!s[l];(i==null||c!==!!i[l])&&t.classList.toggle(l,c)}return s}p();p();var T9=Symbol("class"),P9=Symbol("style"),R9=Symbol("is custom element"),$9=Symbol("is html");function _e(t,e,r,n){var i=I9(t);if(re&&(i[e]=t.getAttribute(e),e==="src"||e==="srcset"||e==="href"&&t.nodeName==="LINK")){n||O9(t,e,r!=null?r:"");return}i[e]!==(i[e]=r)&&(e==="loading"&&(t[JO]=r),r==null?t.removeAttribute(e):typeof r!="string"&&F9(t).includes(e)?t[e]=r:t.setAttribute(e,r))}function I9(t){var e;return(e=t.__attributes)!=null?e:t.__attributes={[R9]:t.nodeName.includes("-"),[$9]:t.namespaceURI===ZO}}var gD=new Map;function F9(t){var e=t.getAttribute("is")||t.nodeName,r=gD.get(e);if(r)return r;gD.set(e,r=[]);for(var n,i=t,s=Element.prototype;s!==i;){n=Iy(i);for(var a in n)n[a].set&&r.push(a);i=Kl(i)}return r}function O9(t,e,r){var n;L&&(e==="srcset"&&M9(t,r)||wb((n=t.getAttribute(e))!=null?n:"",r)||pM(e,t.outerHTML.replace(t.innerHTML,t.innerHTML&&"..."),String(r)))}function wb(t,e){return t===e?!0:new URL(t,document.baseURI).href===new URL(e,document.baseURI).href}function vD(t){return t.split(",").map(e=>e.trim().split(" ").filter(Boolean))}function M9(t,e){var r=vD(t.srcset),n=vD(e);return n.length===r.length&&n.every(([i,s],a)=>s===r[a][1]&&(wb(r[a][0],i)||wb(i,r[a][0])))}p();p();p();function _b(t,e,r=e){var n=new WeakSet;ob(t,"input",async i=>{L&&t.type==="checkbox"&&Dy();var s=i?t.defaultValue:t.value;if(s=yb(t)?bb(s):s,r(s),ye!==null&&n.add(ye),await lm(),s!==(s=e())){var a=t.selectionStart,o=t.selectionEnd,l=t.value.length;if(t.value=s!=null?s:"",o!==null){var c=t.value.length;a===o&&o===l&&c>l?(t.selectionStart=c,t.selectionEnd=c):(t.selectionStart=a,t.selectionEnd=Math.min(o,c))}}}),(re&&t.defaultValue!==t.value||ze(e)==null&&t.value)&&(r(yb(t)?bb(t.value):t.value),ye!==null&&n.add(ye)),Xt(()=>{var a;L&&t.type==="checkbox"&&Dy();var i=e();if(t===document.activeElement){var s=(a=lf)!=null?a:ye;if(n.has(s))return}yb(t)&&i===bb(t.value)||t.type==="date"&&!i&&!t.value||i!==t.value&&(t.value=i!=null?i:"")})}function yb(t){var e=t.type;return e==="number"||e==="range"}function bb(t){return t===""?null:+t}p();p();p();p();p();function yD(t,e){return t===e||(t==null?void 0:t[Wt])===e}function it(t={},e,r,n){return Wr(()=>{var i,s;return Xt(()=>{i=s,s=(n==null?void 0:n())||[],ze(()=>{t!==r(...s)&&(e(t,...s),i&&yD(r(...i),t)&&e(null,...i))})}),()=>{vt(()=>{s&&yD(r(...s),t)&&e(null,...s)})}}),t}p();p();p();p();p();p();p();p();p();var mm=!1,Vge=Symbol();function Sb(t){var e=mm;try{return mm=!1,[t(),mm]}finally{mm=e}}function Pn(t,e,r,n){var k,x;var i=!as||(r&2)!==0,s=(r&8)!==0,a=(r&16)!==0,o=n,l=!0,c=()=>(l&&(l=!1,o=a?ze(n):n),o),u;if(s){var f=Wt in t||rf in t;u=(x=(k=Ir(t,e))==null?void 0:k.set)!=null?x:f&&e in t?E=>t[e]=E:void 0}var d,h=!1;s?[d,h]=Sb(()=>t[e]):d=t[e],d===void 0&&n!==void 0&&(d=c(),u&&(i&&oM(e),u(d)));var m;if(i?m=()=>{var E=t[e];return E===void 0?c():(l=!0,E)}:m=()=>{var E=t[e];return E!==void 0&&(o=void 0),E===void 0?o:E},i&&!(r&4))return m;if(u){var g=t.$$legacy;return function(E,A){return arguments.length>0?((!i||!A||g||h)&&u(A?m():E),E):m()}}var v=!1,w=(r&1?so:ao)(()=>(v=!1,m()));L&&(w.label=e),s&&R(w);var b=ne;return function(E,A){if(arguments.length>0){let y=A?R(w):i&&s?Ye(E):E;return se(w,y),v=!0,o!==void 0&&(o=y),E}return Tn&&v||b.f&16384?w.v:R(w)}}p();p();p();function bD(t){return new Eb(t)}var gs,Rn,Eb=class{constructor(e){me(this,gs);me(this,Rn);var s,a;var r=new Map,n=(o,l)=>{var c=lo(l,!1,!1);return r.set(o,c),c};let i=new Proxy({...e.props||{},$$events:{}},{get(o,l){var c;return R((c=r.get(l))!=null?c:n(l,Reflect.get(o,l)))},has(o,l){var c;return l===rf?!0:(R((c=r.get(l))!=null?c:n(l,Reflect.get(o,l))),Reflect.has(o,l))},set(o,l,c){var u;return se((u=r.get(l))!=null?u:n(l,c),c),Reflect.set(o,l,c)}});de(this,Rn,(e.hydrate?mb:ia)(e.component,{target:e.target,anchor:e.anchor,props:i,context:e.context,intro:(s=e.intro)!=null?s:!1,recover:e.recover})),!tr&&(!((a=e==null?void 0:e.props)!=null&&a.$$host)||e.sync===!1)&&eo(),de(this,gs,i.$$events);for(let o of Object.keys($(this,Rn)))o==="$set"||o==="$destroy"||o==="$on"||Jt(this,o,{get(){return $(this,Rn)[o]},set(l){$(this,Rn)[o]=l},enumerable:!0});$(this,Rn).$set=o=>{Object.assign(i,o)},$(this,Rn).$destroy=()=>{hs($(this,Rn))}}$set(e){$(this,Rn).$set(e)}$on(e,r){$(this,gs)[e]=$(this,gs)[e]||[];let n=(...i)=>r.call(this,...i);return $(this,gs)[e].push(n),()=>{$(this,gs)[e]=$(this,gs)[e].filter(i=>i!==n)}}$destroy(){$(this,Rn).$destroy()}};gs=new WeakMap,Rn=new WeakMap;var X9;typeof HTMLElement=="function"&&(X9=class extends HTMLElement{constructor(e,r,n){super();qe(this,"$$ctor");qe(this,"$$s");qe(this,"$$c");qe(this,"$$cn",!1);qe(this,"$$d",{});qe(this,"$$r",!1);qe(this,"$$p_d",{});qe(this,"$$l",{});qe(this,"$$l_u",new Map);qe(this,"$$me");qe(this,"$$shadowRoot",null);this.$$ctor=e,this.$$s=r,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,r,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(r),this.$$c){let i=this.$$c.$on(e,r);this.$$l_u.set(r,i)}super.addEventListener(e,r,n)}removeEventListener(e,r,n){if(super.removeEventListener(e,r,n),this.$$c){let i=this.$$l_u.get(r);i&&(i(),this.$$l_u.delete(r))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(i){return s=>{let a=document.createElement("slot");i!=="default"&&(a.name=i),ae(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let r={},n=Z9(this);for(let i of this.$$s)i in n&&(i==="default"&&!this.$$d.children?(this.$$d.children=e(i),r.default=!0):r[i]=e(i));for(let i of this.attributes){let s=this.$$g_p(i.name);s in this.$$d||(this.$$d[s]=kb(s,i.value,this.$$p_d,"toProp"))}for(let i in this.$$p_d)!(i in this.$$d)&&this[i]!==void 0&&(this.$$d[i]=this[i],delete this[i]);this.$$c=bD({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:r,$$host:this}}),this.$$me=cb(()=>{Xt(()=>{var i;this.$$r=!0;for(let s of $y(this.$$c)){if(!((i=this.$$p_d[s])!=null&&i.reflect))continue;this.$$d[s]=this.$$c[s];let a=kb(s,this.$$d[s],this.$$p_d,"toAttribute");a==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,a)}this.$$r=!1})});for(let i in this.$$l)for(let s of this.$$l[i]){let a=this.$$c.$on(i,s);this.$$l_u.set(s,a)}this.$$l={}}}attributeChangedCallback(e,r,n){var i;this.$$r||(e=this.$$g_p(e),this.$$d[e]=kb(e,n,this.$$p_d,"toProp"),(i=this.$$c)==null||i.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return $y(this.$$p_d).find(r=>this.$$p_d[r].attribute===e||!this.$$p_d[r].attribute&&r.toLowerCase()===e)||e}});function kb(t,e,r,n){var s;let i=(s=r[t])==null?void 0:s.type;if(e=i==="Boolean"&&typeof e!="boolean"?e!=null:e,!n||!r[t])return e;if(n==="toAttribute")switch(i){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e==null?null:e;default:return e}else switch(i){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}function Z9(t){let e={};return t.childNodes.forEach(r=>{e[r.slot||"default"]=!0}),e}p();p();function po(t,e,r,n){function i(s){return s instanceof r?s:new r(function(a){a(s)})}return new(r||(r=Promise))(function(s,a){function o(u){try{c(n.next(u))}catch(f){a(f)}}function l(u){try{c(n.throw(u))}catch(f){a(f)}}function c(u){u.done?s(u.value):i(u.value).then(o,l)}c((n=n.apply(t,e||[])).next())})}var Pb=require("obsidian");p();var Cb=require("obsidian");p();function K9(t){let e=t-1;return e*e*e+1}var Ab=!1;function Ni(t,{delay:e=0,duration:r=400,easing:n=K9,axis:i="y"}={}){let s=getComputedStyle(t);L&&!Ab&&/(contents|inline|table)/.test(s.display)&&(Ab=!0,Promise.resolve().then(()=>Ab=!1),wM(s.display));let a=+s.opacity,o=i==="y"?"height":"width",l=parseFloat(s[o]),c=i==="y"?["top","bottom"]:["left","right"],u=c.map(w=>`${w[0].toUpperCase()}${w.slice(1)}`),f=parseFloat(s[`padding${u[0]}`]),d=parseFloat(s[`padding${u[1]}`]),h=parseFloat(s[`margin${u[0]}`]),m=parseFloat(s[`margin${u[1]}`]),g=parseFloat(s[`border${u[0]}Width`]),v=parseFloat(s[`border${u[1]}Width`]);return{delay:e,duration:r,easing:n,css:w=>`overflow: hidden;opacity: ${Math.min(w*20,1)*a};${o}: ${w*l}px;padding-${c[0]}: ${w*f}px;padding-${c[1]}: ${w*d}px;margin-${c[0]}: ${w*h}px;margin-${c[1]}: ${w*m}px;border-${c[0]}-width: ${w*g}px;border-${c[1]}-width: ${w*v}px;min-${o}: 0`}}p();var gm=require("obsidian");var Q9=fe('
'),J9=fe('
'),e7={hash:"svelte-1c0jiav",code:"main.svelte-1c0jiav .nav-file-title:where(.svelte-1c0jiav) {align-items:center;}"};function xf(t,e){at(e,!0),ti(t,e7);let r=Ye([]),n=St(()=>e.view.leaf.getRoot().side=="left"?"right":"left");sr(()=>{for(let w of r)w&&(0,gm.setIcon)(w,w.getAttr("data-icon"))});function i(w){w.stopPropagation(),ml(e.diff.path)?s(w):a(w)}function s(w){var b;w.stopPropagation();let k=e.view.app.vault.getAbstractFileByPath(e.diff.vaultPath);k instanceof gm.TFile&&((b=Bn(e.view.app,w))===null||b===void 0||b.openFile(k).catch(x=>e.view.plugin.displayError(x)))}function a(w){var b;e.view.plugin.tools.openDiff({event:w,aFile:(b=e.diff.fromPath)!==null&&b!==void 0?b:e.diff.path,aRef:`${e.diff.hash}^`,bFile:e.diff.path,bRef:e.diff.hash})}var o=J9();o.__click=i;var l=j(o),c=j(l),u=j(c,!0);G(c);var f=ee(c,2),d=j(f),h=j(d);{var m=w=>{var b=Q9();b.__click=s,it(b,k=>r[0]=k,()=>r==null?void 0:r[0]),on("auxclick",b,s),ae(w,b)};Ae(h,w=>{gl(e.diff.vaultPath,e.view.app)&&w(m)})}G(d);var g=ee(d,2),v=j(g,!0);G(g),G(f),G(l),G(o),Ne(w=>{_e(l,"data-path",e.diff.vaultPath),_e(l,"data-tooltip-position",R(n)),_e(l,"aria-label",e.diff.vaultPath),He(u,w),_e(g,"data-type",e.diff.status),He(v,e.diff.status)},[()=>vi(e.diff.vaultPath)]),on("auxclick",o,w=>{w.stopPropagation(),w.button==2?gi(e.view.app,w,e.diff.vaultPath,e.view.leaf,"git-history"):i(w)}),ae(t,o),ot()}Et(["click"]);p();var t7=fe("
"),r7=fe(''),n7=fe('
'),i7=fe("
"),s7={hash:"svelte-d9h7mp",code:"main.svelte-d9h7mp .nav-folder-title-content:where(.svelte-d9h7mp) {display:flex;align-items:center;}"};function Sf(t,e){at(e,!0),ti(t,s7);let r=Pn(e,"topLevel",3,!1),n=Pn(e,"closed",15),i=St(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function s(l,c){l.stopPropagation(),n(n()[c.path]=!n()[c.path],!0)}var a=i7();let o;un(a,21,()=>e.hierarchy.children,cn,(l,c)=>{var u=ds(),f=qr(u);{var d=m=>{var g=t7(),v=j(g);xf(v,{get diff(){return R(c).data},get view(){return e.view}}),G(g),ae(m,g)},h=m=>{var g=n7();let v;var w=j(g);w.__click=S=>s(S,R(c));var b=ee(j(w),2);let k;var x=ee(b,2),E=j(x,!0);G(x),G(w);var A=ee(w,2);{var y=S=>{var _=r7(),C=j(_);Sf(C,{get hierarchy(){return R(c)},get plugin(){return e.plugin},get view(){return e.view},get closed(){return n()},set closed(P){n(P)}}),G(_),ei(3,_,()=>Ni,()=>({duration:150})),ae(S,_)};Ae(A,S=>{n()[R(c).path]||S(y)})}G(g),Ne(()=>{v=ft(g,1,"tree-item nav-folder",null,v,{"is-collapsed":n()[R(c).path]}),_e(w,"data-tooltip-position",R(i)),_e(w,"aria-label",R(c).vaultPath),k=ft(b,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,k,{"is-collapsed":n()[R(c).path]}),He(E,R(c).title)}),ae(m,g)};Ae(f,m=>{R(c).data?m(d):m(h,!1)})}ae(l,u)}),G(a),Ne(()=>o=ft(a,1,"svelte-d9h7mp",null,o,{topLevel:r()})),ae(t,a),ot()}Et(["click"]);var a7=fe('
'),o7=fe('
'),l7=fe('
'),c7=fe(''),u7=fe('
'),f7={hash:"svelte-1edsiy5",code:""};function Tb(t,e){at(e,!0),ti(t,f7);let r=St(()=>({title:"",path:"",vaultPath:"",children:e.plugin.gitManager.getTreeStructure(e.log.diff.files)})),n=St(()=>e.view.leaf.getRoot().side=="left"?"right":"left"),i=Me(!0),s=Me(Ye({}));function a(S){let _=S.author.name;if(e.plugin.settings.authorInHistoryView=="full")return _;if(e.plugin.settings.authorInHistoryView=="initials")return _.split(" ").filter(P=>P.length>0).map(P=>P[0].toUpperCase()).join("")}var o=u7(),l=j(o);let c;var u=j(l);u.__click=()=>se(i,!R(i));var f=j(u);let d;var h=ee(f,2),m=j(h);{var g=S=>{var _=a7(),C=j(_,!0);G(_),Ne(P=>He(C,P),[()=>e.log.refs.join(", ")]),ae(S,_)};Ae(m,S=>{e.log.refs.length>0&&S(g)})}var v=ee(m,2);{var w=S=>{var _=o7(),C=j(_,!0);G(_),Ne(P=>He(C,P),[()=>a(e.log)]),ae(S,_)};Ae(v,S=>{var _;e.plugin.settings.authorInHistoryView!="hide"&&((_=e.log.author)!=null&&_.name)&&S(w)})}var b=ee(v,2);{var k=S=>{var _=l7(),C=j(_,!0);G(_),Ne(P=>He(C,P),[()=>(0,Cb.moment)(e.log.date).format(e.plugin.settings.commitDateFormat)]),ae(S,_)};Ae(b,S=>{e.plugin.settings.dateInHistoryView&&S(k)})}var x=ee(b,2),E=j(x,!0);G(x),G(h),G(u);var A=ee(u,2);{var y=S=>{var _=c7(),C=j(_);{var P=B=>{Sf(B,{get hierarchy(){return R(r)},get plugin(){return e.plugin},get view(){return e.view},topLevel:!0,get closed(){return R(s)},set closed(H){se(s,H,!0)}})},N=B=>{var H=ds(),ce=qr(H);un(ce,17,()=>e.log.diff.files,cn,(Pe,ve)=>{xf(Pe,{get view(){return e.view},get diff(){return R(ve)}})}),ae(B,H)};Ae(C,B=>{e.showTree?B(P):B(N,!1)})}G(_),ei(3,_,()=>Ni,()=>({duration:150})),ae(S,_)};Ae(A,S=>{R(i)||S(y)})}G(l),G(o),Ne(S=>{c=ft(l,1,"tree-item nav-folder",null,c,{"is-collapsed":R(i)}),_e(u,"aria-label",S),_e(u,"data-tooltip-position",R(n)),d=ft(f,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,d,{"is-collapsed":R(i)}),He(E,e.log.message)},[()=>{var S;return`${e.log.refs.length>0?e.log.refs.join(", ")+` `:""}${(S=e.log.author)==null?void 0:S.name} -${(0,yb.moment)(e.log.date).format(e.plugin.settings.commitDateFormat)} -${e.log.message}`}]),oe(t,o),lt()}kt(["click"]);var k9=ue(''),A9=ue('
'),T9={hash:"svelte-12n6twc",code:""};function xb(t,e){ot(e,!0),Ki(t,T9);let r=ki(e,"plugin",15),i=De(!1),n=Xe([]),s=De(void 0),a=De(Xe(r().settings.treeStructure)),o;or(()=>{o&&o.empty()}),fo(()=>{e.view.registerEvent(e.view.app.workspace.on("obsidian-git:head-change",()=>void c().catch(console.error)))}),or(()=>{n.forEach(x=>(0,_b.setIcon)(x,x.getAttr("data-icon")))}),fo(()=>{let x=new IntersectionObserver(A=>{A[0].isIntersecting&&!R(i)&&u().catch(console.error)}),E=document.querySelector("#sentinel");return E&&x.observe(E),()=>{x.disconnect()}}),c().catch(console.error);function l(){c().catch(console.error)}function c(){return ho(this,void 0,void 0,function*(){var x;if(!r().gitReady){ae(s,void 0);return}ae(i,!0);let E=r().gitManager instanceof Se,A;((x=R(s)===null||R(s)===void 0?void 0:R(s).length)!==null&&x!==void 0?x:0)==0?A=E?50:10:A=R(s).length,ae(s,yield r().gitManager.log(void 0,!1,A),!0),ae(i,!1)})}function u(){return ho(this,void 0,void 0,function*(){var x;if(!r().gitReady||R(s)===void 0)return;ae(i,!0);let A=r().gitManager instanceof Se?50:10,y=yield r().gitManager.log(void 0,!1,A,(x=R(s).last())===null||x===void 0?void 0:x.hash);R(s).push(...y.slice(1)),ae(i,!1)})}var f=A9(),d=G(f),h=G(d),m=G(h);m.__click=()=>{ae(a,!R(a)),(0,_b.setIcon)(n[0],R(a)?"list":"folder"),r(r().settings.treeStructure=R(a),!0),r().saveSettings()},st(m,x=>n[0]=x,()=>n==null?void 0:n[0]);var g=te(m,2);let v;g.__click=l,st(g,x=>n[1]=x,()=>n==null?void 0:n[1]),H(h),H(d);var w=te(d,2),b=G(w);{var k=x=>{var E=k9();ui(E,21,()=>R(s),ci,(A,y)=>{bb(A,{get view(){return e.view},get showTree(){return R(a)},get log(){return R(y)},get plugin(){return r()}})}),H(E),oe(x,E)};Ae(b,x=>{R(s)&&x(k)})}Ya(4),H(w),H(f),Ne(()=>{be(m,"data-icon",R(a)?"list":"folder"),v=ht(g,1,"clickable-icon nav-action-button",null,v,{loading:R(i)})}),oe(t,f),lt()}kt(["click"]);var wf=class extends aD.ItemView{constructor(e,r){super(e),this.plugin=r,this.hoverPopover=null}getViewType(){return gi.type}getDisplayText(){return gi.name}getIcon(){return gi.icon}onClose(){return this._view&&ds(this._view),super.onClose()}reload(){this._view&&ds(this._view),this._view=ia(xb,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};p();var oD=require("obsidian"),dm=class extends oD.FuzzySuggestModal{constructor(r,i){super(r.app);this.branches=i;this.setPlaceholder("Select branch to checkout")}getItems(){return this.branches}getItemText(r){return r}onChooseItem(r,i){this.resolve(r)}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}};p();var uD=require("obsidian");p();var go=require("obsidian");p();var yf=require("obsidian");p();var lD=require("obsidian");var fc=class extends lD.Modal{constructor({app:r,path:i,filesToDeleteCount:n,filesToDiscardCount:s}){super(r);this.resolve=null;this.path=i,this.deleteCount=n,this.discardCount=s}openAndGetResult(){return this.open(),new Promise(r=>{this.resolve=r})}onOpen(){let r=this.deleteCount+this.discardCount,{contentEl:i,titleEl:n}=this,s="";this.path!=""&&(r>1?s=`files in "${this.path}"`:s=`"${this.path}"`),n.setText(`${this.discardCount==0?"Delete":"Discard"} ${s}`),this.deleteCount>0&&i.createEl("p").setText(`Are you sure you want to DELETE the ${Su(this.deleteCount,"untracked file")}? They are deleted according to your Obsidian trash settting.`),this.discardCount>0&&i.createEl("p").setText(`Are you sure you want to discard ALL changes in ${Su(this.discardCount,"tracked file")}?`);let a=i.createDiv({cls:"modal-button-container"});if(this.deleteCount>0){let l=a.createEl("button",{cls:"mod-warning",text:`${this.discardCount>0?"Discard":"Delete"} all ${Su(r,"file")}`});l.addEventListener("click",()=>{this.resolve&&this.resolve("delete"),this.close()}),l.addEventListener("keypress",()=>{this.resolve&&this.resolve("delete"),this.close()})}if(this.discardCount>0){let l=a.createEl("button",{cls:"mod-warning",text:`Discard all ${Su(this.discardCount,"tracked file")}`});l.addEventListener("click",()=>{this.resolve&&this.resolve("discard"),this.close()}),l.addEventListener("keypress",()=>{this.resolve&&this.resolve("discard"),this.close()})}let o=a.createEl("button",{text:"Cancel"});o.addEventListener("click",()=>(this.resolve&&this.resolve(!1),this.close())),o.addEventListener("keypress",()=>(this.resolve&&this.resolve(!1),this.close()))}onClose(){let{contentEl:r}=this;r.empty()}};var C9=ue('
'),P9=ue('
');function bf(t,e){ot(e,!0);let r=Xe([]),i=Et(()=>e.view.leaf.getRoot().side=="left"?"right":"left");or(()=>{for(let A of r)A&&(0,yf.setIcon)(A,A.getAttr("data-icon"))});function n(A){A.stopPropagation(),pl(e.change.path)?a(A):l(A)}function s(A){e.view.app.vault.getAbstractFileByPath(e.change.vaultPath)&&gl(e.view.app,A,e.view,e.change.vaultPath)}function a(A){var y;A.stopPropagation();let S=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);S instanceof yf.TFile&&((y=Mi(e.view.app,A))===null||y===void 0||y.openFile(S).catch(_=>e.view.plugin.displayError(_)))}function o(A){A.stopPropagation(),e.manager.stage(e.change.path,!1).catch(y=>e.view.plugin.displayError(y)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function l(A){A.stopPropagation(),e.view.plugin.tools.openDiff({aFile:e.change.path,aRef:"",event:A})}function c(A){A.stopPropagation();let y=e.change.workingDir=="U";new fc({app:e.view.app,filesToDeleteCount:y?1:0,filesToDiscardCount:y?0:1,path:e.change.vaultPath}).openAndGetResult().then(S=>ho(this,void 0,void 0,function*(){if(S=="delete"){let _=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);_ instanceof yf.TFile?yield e.view.app.fileManager.trashFile(_):yield e.view.app.vault.adapter.remove(e.change.vaultPath)}else S=="discard"&&(yield e.manager.discard(e.change.path).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")}));e.view.app.workspace.trigger("obsidian-git:refresh")}),S=>e.view.plugin.displayError(S))}var u=P9();u.__mouseover=s,u.__click=n;var f=G(u),d=G(f),h=G(d,!0);H(d);var m=te(d,2),g=G(m),v=G(g);{var w=A=>{var y=C9();y.__click=a,st(y,S=>r[0]=S,()=>r==null?void 0:r[0]),oi("auxclick",y,a),oe(A,y)};Ae(v,A=>{ml(e.change.vaultPath,e.view.app)&&A(w)})}var b=te(v,2);b.__click=c,st(b,A=>r[1]=A,()=>r==null?void 0:r[1]);var k=te(b,2);k.__click=o,st(k,A=>r[2]=A,()=>r==null?void 0:r[2]),H(g);var x=te(g,2),E=G(x,!0);H(x),H(m),H(f),H(u),Ne(A=>{be(f,"data-path",e.change.vaultPath),be(f,"data-tooltip-position",R(i)),be(f,"aria-label",e.change.vaultPath),Ue(h,A),be(x,"data-type",e.change.workingDir),Ue(E,e.change.workingDir)},[()=>pn(e.change.vaultPath)]),oi("auxclick",u,A=>{A.stopPropagation(),A.button==2?hn(e.view.app,A,e.change.vaultPath,e.view.leaf,"git-source-control"):n(A)}),oe(t,u),lt()}kt(["mouseover","click"]);p();var cD=require("obsidian");var R9=ue('
');function _f(t,e){ot(e,!0);let r=Et(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function i(d){e.view.app.vault.getAbstractFileByPath(e.change.vaultPath)&&gl(e.view.app,d,e.view,e.change.vaultPath)}function n(d){var h;d.stopPropagation();let m=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);m instanceof cD.TFile&&((h=Mi(e.view.app,d))===null||h===void 0||h.openFile(m).catch(g=>e.view.plugin.displayError(g)))}var s=R9();s.__mouseover=i,s.__click=n;var a=G(s),o=G(a),l=G(o,!0);H(o);var c=te(o,2),u=G(c),f=G(u,!0);H(u),H(c),H(a),H(s),Ne(d=>{be(a,"data-path",e.change.vaultPath),be(a,"data-tooltip-position",R(r)),be(a,"aria-label",e.change.vaultPath),Ue(l,d),be(u,"data-type",e.change.workingDir),Ue(f,e.change.workingDir)},[()=>pn(e.change.vaultPath)]),oi("auxclick",s,d=>{d.stopPropagation(),d.button==2?hn(e.view.app,d,e.change.vaultPath,e.view.leaf,"git-source-control"):n(d)}),oe(t,s),lt()}kt(["mouseover","click"]);p();var hm=require("obsidian");var $9=ue('
'),F9=ue('
');function xf(t,e){ot(e,!0);let r=Xe([]),i=Et(()=>e.view.leaf.getRoot().side=="left"?"right":"left");or(()=>{for(let x of r)x&&(0,hm.setIcon)(x,x.getAttr("data-icon"))});function n(x){x.stopPropagation(),pl(e.change.path)?a(x):o(x)}function s(x){e.view.app.vault.getFileByPath(e.change.vaultPath)&&gl(e.view.app,x,e.view,e.change.vaultPath)}function a(x){var E;x.stopPropagation();let A=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);A instanceof hm.TFile&&((E=Mi(e.view.app,x))===null||E===void 0||E.openFile(A).catch(y=>e.view.plugin.displayError(y)))}function o(x){var E;x.stopPropagation(),e.view.plugin.tools.openDiff({aFile:(E=e.change.from)!==null&&E!==void 0?E:e.change.path,bFile:e.change.path,aRef:"HEAD",bRef:"",event:x})}function l(x){x.stopPropagation(),e.manager.unstage(e.change.path,!1).catch(E=>e.view.plugin.displayError(E)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}var c=F9();c.__mouseover=s,c.__click=n;var u=G(c),f=G(u),d=G(f,!0);H(f);var h=te(f,2),m=G(h),g=G(m);{var v=x=>{var E=$9();E.__click=a,st(E,A=>r[0]=A,()=>r==null?void 0:r[0]),oe(x,E)};Ae(g,x=>{ml(e.change.vaultPath,e.view.app)&&x(v)})}var w=te(g,2);w.__click=l,st(w,x=>r[1]=x,()=>r==null?void 0:r[1]),H(m);var b=te(m,2),k=G(b,!0);H(b),H(h),H(u),H(c),Ne(x=>{be(u,"data-path",e.change.vaultPath),be(u,"data-tooltip-position",R(i)),be(u,"aria-label",e.change.vaultPath),Ue(d,x),be(b,"data-type",e.change.index),Ue(k,e.change.index)},[()=>pn(e.change.vaultPath)]),oi("auxclick",c,x=>{x.stopPropagation(),x.button==2?hn(e.view.app,x,e.change.vaultPath,e.view.leaf,"git-source-control"):n(x)}),oe(t,c),lt()}kt(["mouseover","click"]);p();p();var I9=ue(''),O9=ue("
");function po(t,e){ot(e,!0);var r=O9(),i=G(r);{var n=s=>{var a=I9(),o=G(a),l=G(o),c=G(l,!0);H(l),H(o),H(a),Ne(()=>{be(o,"aria-label","And "+(e.files.length-500)+" more files"),Ue(c,"And "+(e.files.length-500)+" more files")}),oe(s,a)};Ae(i,s=>{e.files.length>500&&s(n)})}H(r),oe(t,r),lt()}var D9=ue("
"),L9=ue('
'),B9=ue('
',1),N9=ue(''),H9=ue('
'),U9=ue("
");function mo(t,e){ot(e,!0);let r=ki(e,"topLevel",3,!1),i=ki(e,"closed",15);fo(()=>{var h,m;for(let g of e.hierarchy.children)((m=(h=g.children)===null||h===void 0?void 0:h.length)!==null&&m!==void 0?m:0)>100&&i(i()[g.title]=!0,!0)});let n=Et(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function s(h,m){h.stopPropagation(),e.plugin.gitManager.stageAll({dir:m}).catch(g=>e.plugin.displayError(g)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function a(h,m){h.stopPropagation(),e.plugin.gitManager.unstageAll({dir:m}).catch(g=>e.plugin.displayError(g)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function o(h,m){h.stopPropagation(),e.plugin.discardAll(m.vaultPath)}function l(h,m){h.stopPropagation(),i(i()[m.path]=!i()[m.path],!0)}var c=U9();let u;var f=G(c);ui(f,17,()=>Eu(e.hierarchy.children,500),ci,(h,m)=>{var g=fs(),v=zr(g);{var w=k=>{var x=D9(),E=G(x);{var A=S=>{xf(S,{get change(){return R(m).data},get manager(){return e.plugin.gitManager},get view(){return e.view}})},y=S=>{var _=fs(),T=zr(_);{var P=B=>{bf(B,{get change(){return R(m).data},get manager(){return e.plugin.gitManager},get view(){return e.view}})},D=B=>{var N=fs(),ce=zr(N);{var Pe=ve=>{_f(ve,{get change(){return R(m).data},get view(){return e.view}})};Ae(ce,ve=>{e.fileType==2&&ve(Pe)},!0)}oe(B,N)};Ae(T,B=>{e.fileType==1?B(P):B(D,!1)},!0)}oe(S,_)};Ae(E,S=>{e.fileType==0?S(A):S(y,!1)})}H(x),oe(k,x)},b=k=>{var x=H9();x.__click=se=>l(se,R(m));let E;var A=G(x),y=te(G(A),2);let S;var _=te(y,2),T=G(_,!0);H(_);var P=te(_,2),D=G(P),B=G(D);{var N=se=>{var xe=L9();xe.__click=we=>a(we,R(m).path),oe(se,xe)},ce=se=>{var xe=B9(),we=zr(xe);we.__click=Q=>o(Q,R(m));var z=te(we,2);z.__click=Q=>s(Q,R(m).path),oe(se,xe)};Ae(B,se=>{e.fileType==0?se(N):se(ce,!1)})}Ya(2),H(D),H(P),H(A);var Pe=te(A,2);{var ve=se=>{var xe=N9(),we=G(xe);mo(we,{get hierarchy(){return R(m)},get plugin(){return e.plugin},get view(){return e.view},get fileType(){return e.fileType},get closed(){return i()},set closed(z){i(z)}}),H(xe),Zi(3,xe,()=>Dn,()=>({duration:150})),oe(se,xe)};Ae(Pe,se=>{i()[R(m).path]||se(ve)})}H(x),Ne(()=>{E=ht(x,1,"tree-item nav-folder",null,E,{"is-collapsed":i()[R(m).path]}),be(A,"data-tooltip-position",R(n)),be(A,"aria-label",R(m).vaultPath),S=ht(y,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,S,{"is-collapsed":i()[R(m).path]}),Ue(T,R(m).title)}),oi("auxclick",x,se=>hn(e.view.app,se,R(m).vaultPath,e.view.leaf,"git-source-control")),oe(k,x)};Ae(v,k=>{R(m).data?k(w):k(b,!1)})}oe(h,g)});var d=te(f,2);po(d,{get files(){return e.hierarchy.children}}),H(c),Ne(()=>u=ht(c,1,"",null,u,{topLevel:r()})),oe(t,c),lt()}kt(["click"]);var G9=ue('
'),j9=ue(" ",1),q9=ue(''),z9=ue(" ",1),V9=ue(''),W9=ue(" ",1),Y9=ue(''),X9=ue('
'),Z9=ue(''),K9=ue('
'),Q9={hash:"svelte-5wq9p",code:`.commit-msg-input.svelte-5wq9p {width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field);}.git-commit-msg.svelte-5wq9p {position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto;}main.svelte-5wq9p .git-tools:where(.svelte-5wq9p) .files-count:where(.svelte-5wq9p) {padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center;}.nav-folder-title.svelte-5wq9p {align-items:center;}.git-commit-msg-clear-button.svelte-5wq9p {position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out;}.git-commit-msg-clear-button.svelte-5wq9p:after {content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;mask-image:url("data:image/svg+xml,");mask-repeat:no-repeat;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat;}`};function Sb(t,e){ot(e,!0),Ki(t,Q9);let r=ki(e,"plugin",7),i=ki(e,"view",7),n=De(!1),s=De(void 0),a=De(Xe([])),o=Et(()=>r().settings.commitMessage),l=Xe([]),c=De(void 0),u=De(void 0),f=De(void 0),d=De(!0),h=De(!0),m=De(!0),g=De(0),v=De(Xe({})),w=De(Xe({})),b=De(Xe({})),k=Et(()=>r().settings.treeStructure);fo(()=>{i().registerEvent(i().app.workspace.on("obsidian-git:loading-status",()=>ae(n,!0))),i().registerEvent(i().app.workspace.on("obsidian-git:status-changed",()=>void A().catch(console.error))),i().plugin.cachedStatus==null?i().plugin.refresh().catch(console.error):A().catch(console.error),i().scope=new go.Scope(r().app.scope),i().scope.register(["Ctrl"],"Enter",Z=>E())}),or(()=>{l.forEach(Z=>(0,go.setIcon)(Z,Z.getAttr("data-icon")))}),or(()=>{l.forEach(Z=>{var L,V;!Z||Z.id!="push"||(go.Platform.isMobile?(Z.removeClass("button-border"),R(g)>0&&Z.addClass("button-border")):((L=Z.firstElementChild)===null||L===void 0||L.removeAttribute("color"),R(g)>0&&((V=Z.firstElementChild)===null||V===void 0||V.setAttr("color","var(--text-accent)"))))})});function x(){if(ae(n,!0),R(s)){let Z=R(s).staged.length>0;r().promiseQueue.addTask(()=>r().commit({fromAuto:!1,commitMessage:R(o),onlyStaged:Z}).then(()=>ae(o,r().settings.commitMessage)).finally(y))}}function E(){if(ae(n,!0),R(s)){let Z=R(s).staged.length>0;r().promiseQueue.addTask(()=>r().commitAndSync({fromAutoBackup:!1,commitMessage:R(o),onlyStaged:Z}).then(()=>{ae(o,r().settings.commitMessage)}).finally(y))}}function A(){return ho(this,void 0,void 0,function*(){if(!r().gitReady){ae(s,void 0);return}if(ae(g,yield r().gitManager.getUnpushedCommits(),!0),ae(s,r().cachedStatus,!0),ae(n,!1),r().lastPulledFiles&&r().lastPulledFiles!=R(a)&&(ae(a,r().lastPulledFiles,!0),ae(f,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(a))},!0)),R(s)){let Z=(L,V)=>L.vaultPath.split("/").last().localeCompare(pn(V.vaultPath));R(s).changed.sort(Z),R(s).staged.sort(Z),ae(c,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(s).changed)},!0),ae(u,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(s).staged)},!0)}else ae(c,void 0),ae(u,void 0)})}function y(){i().app.workspace.trigger("obsidian-git:refresh")}function S(Z){Z.stopPropagation(),ae(n,!0),r().promiseQueue.addTask(()=>r().gitManager.stageAll({status:R(s)}).finally(y))}function _(Z){Z.stopPropagation(),ae(n,!0),r().promiseQueue.addTask(()=>r().gitManager.unstageAll({status:R(s)}).finally(y))}function T(){ae(n,!0),r().promiseQueue.addTask(()=>r().push().finally(y))}function P(){ae(n,!0),r().promiseQueue.addTask(()=>r().pullChangesFromRemote().finally(y))}function D(Z){Z.stopPropagation(),r().discardAll()}let B=Et(()=>(R(o).match(/\n/g)||[]).length+1||1);var N=K9(),ce=G(N),Pe=G(ce),ve=G(Pe);ve.__click=E,st(ve,Z=>l[0]=Z,()=>l==null?void 0:l[0]);var se=te(ve,2);se.__click=x,st(se,Z=>l[1]=Z,()=>l==null?void 0:l[1]);var xe=te(se,2);xe.__click=S,st(xe,Z=>l[2]=Z,()=>l==null?void 0:l[2]);var we=te(xe,2);we.__click=_,st(we,Z=>l[3]=Z,()=>l==null?void 0:l[3]);var z=te(we,2);z.__click=T,st(z,Z=>l[4]=Z,()=>l==null?void 0:l[4]);var Q=te(z,2);Q.__click=P,st(Q,Z=>l[5]=Z,()=>l==null?void 0:l[5]);var j=te(Q,2);j.__click=()=>{ae(k,!R(k)),(0,go.setIcon)(l[6],R(k)?"list":"folder"),r().settings.treeStructure=R(k),r().saveSettings()},st(j,Z=>l[6]=Z,()=>l==null?void 0:l[6]);var Le=te(j,2);let lr;Le.__click=y,st(Le,Z=>l[7]=Z,()=>l==null?void 0:l[7]),H(Pe),H(ce);var It=te(ce,2),Fe=G(It);Ky(Fe);var At=te(Fe,2);{var Tt=Z=>{var L=G9();L.__click=()=>ae(o,""),be(L,"aria-label","Clear"),oe(Z,L)};Ae(At,Z=>{R(o)&&Z(Tt)})}H(It);var jt=te(It,2),Ze=G(jt);{var q=Z=>{var L=Z9(),V=G(L);let Te;var qe=G(V);qe.__click=()=>ae(h,!R(h));var Ot=G(qe);let yo;var Cb=te(Ot,4),km=G(Cb),Pb=G(km);Pb.__click=_,st(Pb,cr=>l[8]=cr,()=>l==null?void 0:l[8]),H(km);var Rb=te(km,2),yD=G(Rb,!0);H(Rb),H(Cb),H(qe);var bD=te(qe,2);{var _D=cr=>{var yr=q9(),bo=G(yr);{var gs=ur=>{mo(ur,{get hierarchy(){return R(u)},get plugin(){return r()},get view(){return i()},get fileType(){return 0},topLevel:!0,get closed(){return R(v)},set closed(Ti){ae(v,Ti,!0)}})},_o=ur=>{var Ti=j9(),sa=zr(Ti);ui(sa,17,()=>Eu(R(s).staged,500),ci,(vs,hc)=>{xf(vs,{get change(){return R(hc)},get view(){return i()},get manager(){return r().gitManager}})});var aa=te(sa,2);po(aa,{get files(){return R(s).staged}}),oe(ur,Ti)};Ae(bo,ur=>{R(k)?ur(gs):ur(_o,!1)})}H(yr),Zi(3,yr,()=>Dn,()=>({duration:150})),oe(cr,yr)};Ae(bD,cr=>{R(h)&&cr(_D)})}H(V);var Ef=te(V,2);let $b;var kf=G(Ef);kf.__click=()=>ae(d,!R(d));var Fb=G(kf);let Ib;var Ob=te(Fb,4),Am=G(Ob),Mb=G(Am);Mb.__click=D;var Db=te(Mb,2);Db.__click=S,st(Db,cr=>l[9]=cr,()=>l==null?void 0:l[9]),H(Am);var Lb=te(Am,2),xD=G(Lb,!0);H(Lb),H(Ob),H(kf);var SD=te(kf,2);{var ED=cr=>{var yr=V9(),bo=G(yr);{var gs=ur=>{mo(ur,{get hierarchy(){return R(c)},get plugin(){return r()},get view(){return i()},get fileType(){return 1},topLevel:!0,get closed(){return R(w)},set closed(Ti){ae(w,Ti,!0)}})},_o=ur=>{var Ti=z9(),sa=zr(Ti);ui(sa,17,()=>Eu(R(s).changed,500),ci,(vs,hc)=>{bf(vs,{get change(){return R(hc)},get view(){return i()},get manager(){return r().gitManager}})});var aa=te(sa,2);po(aa,{get files(){return R(s).changed}}),oe(ur,Ti)};Ae(bo,ur=>{R(k)?ur(gs):ur(_o,!1)})}H(yr),Zi(3,yr,()=>Dn,()=>({duration:150})),oe(cr,yr)};Ae(SD,cr=>{R(d)&&cr(ED)})}H(Ef);var kD=te(Ef,2);{var AD=cr=>{var yr=X9();let bo;var gs=G(yr);gs.__click=()=>ae(m,!R(m));var _o=te(G(gs),4),ur=G(_o,!0);H(_o),H(gs);var Ti=te(gs,2);{var sa=aa=>{var vs=Y9(),hc=G(vs);{var TD=xo=>{mo(xo,{get hierarchy(){return R(f)},get plugin(){return r()},get view(){return i()},get fileType(){return 2},topLevel:!0,get closed(){return R(b)},set closed(Af){ae(b,Af,!0)}})},CD=xo=>{var Af=W9(),Bb=zr(Af);ui(Bb,17,()=>R(a),ci,(RD,$D)=>{_f(RD,{get change(){return R($D)},get view(){return i()}})});var PD=te(Bb,2);po(PD,{get files(){return R(a)}}),oe(xo,Af)};Ae(hc,xo=>{R(k)?xo(TD):xo(CD,!1)})}H(vs),Zi(3,vs,()=>Dn,()=>({duration:150})),oe(aa,vs)};Ae(Ti,aa=>{R(m)&&aa(sa)})}H(yr),Ne(()=>{bo=ht(yr,1,"pulled nav-folder",null,bo,{"is-collapsed":!R(m)}),Ue(ur,R(a).length)}),oe(cr,yr)};Ae(kD,cr=>{R(a).length>0&&R(f)&&cr(AD)})}H(L),Ne(()=>{Te=ht(V,1,"staged tree-item nav-folder",null,Te,{"is-collapsed":!R(h)}),yo=ht(Ot,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,yo,{"is-collapsed":!R(h)}),Ue(yD,R(s).staged.length),$b=ht(Ef,1,"changes tree-item nav-folder",null,$b,{"is-collapsed":!R(d)}),Ib=ht(Fb,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,Ib,{"is-collapsed":!R(d)}),Ue(xD,R(s).changed.length)}),oe(Z,L)};Ae(Ze,Z=>{R(s)&&R(u)&&R(c)&&Z(q)})}H(jt),H(N),Ne(()=>{be(N,"data-type",zt.type),be(j,"data-icon",R(k)?"list":"folder"),lr=ht(Le,1,"clickable-icon nav-action-button",null,lr,{loading:R(n)}),be(Fe,"rows",R(B))}),hb(Fe,()=>R(o),Z=>ae(o,Z)),oe(t,N),lt()}kt(["click"]);var Sf=class extends uD.ItemView{constructor(e,r){super(e),this.plugin=r,this.hoverPopover=null}getViewType(){return zt.type}getDisplayText(){return zt.name}getIcon(){return zt.icon}onClose(){return this._view&&ds(this._view),super.onClose()}reload(){this._view&&ds(this._view),this._view=ia(Sb,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};p();var pm=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;this.statusBarEl.addClass("mod-clickable"),this.statusBarEl.onClickEvent(i=>{this.plugin.switchBranch().catch(n=>r.displayError(n))})}async display(){if(this.plugin.gitReady){let e=await this.plugin.gitManager.branchInfo();e.current!=null?this.statusBarEl.setText(e.current):this.statusBarEl.empty()}else this.statusBarEl.empty()}remove(){this.statusBarEl.remove()}};p();var fD=require("obsidian");var mm=class{constructor(e){this.plugin=e}get editor(){var i;let e=(i=this.plugin.app.workspace.activeEditor)==null?void 0:i.editor,r=e==null?void 0:e.cm;if(!(!e||!Bi.hasHunksData(r.state)))return{editor:r,obEditor:e}}get gitManager(){return this.plugin.gitManager}resetHunk(e){if(!this.editor)return;let{editor:r,obEditor:i}=this.editor,n=Bi.getHunk(r.state,!1,e);if(n){let s,a;n.type==="delete"?(s=n.added.start+1,a=n.added.start+1):(s=n.added.start-0,a=n.added.start-1+n.added.count);let o=r.state.doc.line(s).from,l=n.type==="delete"?r.state.doc.line(a).from:r.state.doc.line(a).to+1,c=n.removed.lines.join(` -`);n.removed.lines.length>0&&!n.removed.no_nl_at_eof&&(c+=` -`),i.replaceRange(c,i.offsetToPos(o),i.offsetToPos(l)),i.setSelection(i.offsetToPos(o))}}async stageHunk(e){if(!await this.plugin.isAllInitialized()||!this.editor)return;let{editor:r}=this.editor,i=Bi.getHunk(r.state,!1,e),n=!1;if(i||(i=Bi.getHunk(r.state,!0,e),n=!0),!i)return;let s=r.state.field(fD.editorInfoField).file.path,a=Nt.createPatch(s,[i],"100644",n).join(` +${(0,Cb.moment)(e.log.date).format(e.plugin.settings.commitDateFormat)} +${e.log.message}`}]),ae(t,o),ot()}Et(["click"]);var d7=fe(''),h7=fe('
'),p7={hash:"svelte-12n6twc",code:""};function Rb(t,e){at(e,!0),ti(t,p7);let r=Pn(e,"plugin",15),n=Me(!1),i=Ye([]),s=Me(void 0),a=Me(Ye(r().settings.treeStructure)),o;sr(()=>{o&&o.empty()}),ho(()=>{e.view.registerEvent(e.view.app.workspace.on("obsidian-git:head-change",()=>void c().catch(console.error)))}),sr(()=>{i.forEach(x=>(0,Pb.setIcon)(x,x.getAttr("data-icon")))}),ho(()=>{let x=new IntersectionObserver(A=>{A[0].isIntersecting&&!R(n)&&u().catch(console.error)}),E=document.querySelector("#sentinel");return E&&x.observe(E),()=>{x.disconnect()}}),c().catch(console.error);function l(){c().catch(console.error)}function c(){return po(this,void 0,void 0,function*(){var x;if(!r().gitReady){se(s,void 0);return}se(n,!0);let E=r().gitManager instanceof Se,A;((x=R(s)===null||R(s)===void 0?void 0:R(s).length)!==null&&x!==void 0?x:0)==0?A=E?50:10:A=R(s).length,se(s,yield r().gitManager.log(void 0,!1,A),!0),se(n,!1)})}function u(){return po(this,void 0,void 0,function*(){var x;if(!r().gitReady||R(s)===void 0)return;se(n,!0);let A=r().gitManager instanceof Se?50:10,y=yield r().gitManager.log(void 0,!1,A,(x=R(s).last())===null||x===void 0?void 0:x.hash);R(s).push(...y.slice(1)),se(n,!1)})}var f=h7(),d=j(f),h=j(d),m=j(h);m.__click=()=>{se(a,!R(a)),(0,Pb.setIcon)(i[0],R(a)?"list":"folder"),r(r().settings.treeStructure=R(a),!0),r().saveSettings()},it(m,x=>i[0]=x,()=>i==null?void 0:i[0]);var g=ee(m,2);let v;g.__click=l,it(g,x=>i[1]=x,()=>i==null?void 0:i[1]),G(h),G(d);var w=ee(d,2),b=j(w);{var k=x=>{var E=d7();un(E,21,()=>R(s),cn,(A,y)=>{Tb(A,{get view(){return e.view},get showTree(){return R(a)},get log(){return R(y)},get plugin(){return r()}})}),G(E),ae(x,E)};Ae(b,x=>{R(s)&&x(k)})}Xa(4),G(w),G(f),Ne(()=>{_e(m,"data-icon",R(a)?"list":"folder"),v=ft(g,1,"clickable-icon nav-action-button",null,v,{loading:R(n)})}),ae(t,f),ot()}Et(["click"]);var Ef=class extends _D.ItemView{constructor(e,r){super(e),this.plugin=r,this.hoverPopover=null}getViewType(){return gn.type}getDisplayText(){return gn.name}getIcon(){return gn.icon}onClose(){return this._view&&hs(this._view),super.onClose()}reload(){this._view&&hs(this._view),this._view=ia(Rb,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};p();var xD=require("obsidian"),vm=class extends xD.FuzzySuggestModal{constructor(r,n){super(r.app);this.branches=n;this.setPlaceholder("Select branch to checkout")}getItems(){return this.branches}getItemText(r){return r}onChooseItem(r,n){this.resolve(r)}openAndGetReslt(){return new Promise(r=>{this.resolve=r,this.open()})}onClose(){new Promise(r=>setTimeout(r,10)).then(()=>{this.resolve&&this.resolve(void 0)})}};p();var kD=require("obsidian");p();var vo=require("obsidian");p();var kf=require("obsidian");p();var SD=require("obsidian");var vc=class extends SD.Modal{constructor({app:r,path:n,filesToDeleteCount:i,filesToDiscardCount:s}){super(r);this.resolve=null;this.path=n,this.deleteCount=i,this.discardCount=s}openAndGetResult(){return this.open(),new Promise(r=>{this.resolve=r})}onOpen(){let r=this.deleteCount+this.discardCount,{contentEl:n,titleEl:i}=this,s="";this.path!=""&&(r>1?s=`files in "${this.path}"`:s=`"${this.path}"`),i.setText(`${this.discardCount==0?"Delete":"Discard"} ${s}`),this.deleteCount>0&&n.createEl("p").setText(`Are you sure you want to DELETE the ${Pu(this.deleteCount,"untracked file")}? They are deleted according to your Obsidian trash settting.`),this.discardCount>0&&n.createEl("p").setText(`Are you sure you want to discard ALL changes in ${Pu(this.discardCount,"tracked file")}?`);let a=n.createDiv({cls:"modal-button-container"});if(this.deleteCount>0){let l=a.createEl("button",{cls:"mod-warning",text:`${this.discardCount>0?"Discard":"Delete"} all ${Pu(r,"file")}`});l.addEventListener("click",()=>{this.resolve&&this.resolve("delete"),this.close()}),l.addEventListener("keypress",()=>{this.resolve&&this.resolve("delete"),this.close()})}if(this.discardCount>0){let l=a.createEl("button",{cls:"mod-warning",text:`Discard all ${Pu(this.discardCount,"tracked file")}`});l.addEventListener("click",()=>{this.resolve&&this.resolve("discard"),this.close()}),l.addEventListener("keypress",()=>{this.resolve&&this.resolve("discard"),this.close()})}let o=a.createEl("button",{text:"Cancel"});o.addEventListener("click",()=>(this.resolve&&this.resolve(!1),this.close())),o.addEventListener("keypress",()=>(this.resolve&&this.resolve(!1),this.close()))}onClose(){let{contentEl:r}=this;r.empty()}};var m7=fe('
'),g7=fe('
');function Af(t,e){at(e,!0);let r=Ye([]),n=St(()=>e.view.leaf.getRoot().side=="left"?"right":"left");sr(()=>{for(let A of r)A&&(0,kf.setIcon)(A,A.getAttr("data-icon"))});function i(A){A.stopPropagation(),ml(e.change.path)?a(A):l(A)}function s(A){e.view.app.vault.getAbstractFileByPath(e.change.vaultPath)&&vl(e.view.app,A,e.view,e.change.vaultPath)}function a(A){var y;A.stopPropagation();let S=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);S instanceof kf.TFile&&((y=Bn(e.view.app,A))===null||y===void 0||y.openFile(S).catch(_=>e.view.plugin.displayError(_)))}function o(A){A.stopPropagation(),e.manager.stage(e.change.path,!1).catch(y=>e.view.plugin.displayError(y)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function l(A){A.stopPropagation(),e.view.plugin.tools.openDiff({aFile:e.change.path,aRef:"",event:A})}function c(A){A.stopPropagation();let y=e.change.workingDir=="U";new vc({app:e.view.app,filesToDeleteCount:y?1:0,filesToDiscardCount:y?0:1,path:e.change.vaultPath}).openAndGetResult().then(S=>po(this,void 0,void 0,function*(){if(S=="delete"){let _=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);_ instanceof kf.TFile?yield e.view.app.fileManager.trashFile(_):yield e.view.app.vault.adapter.remove(e.change.vaultPath)}else S=="discard"&&(yield e.manager.discard(e.change.path).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")}));e.view.app.workspace.trigger("obsidian-git:refresh")}),S=>e.view.plugin.displayError(S))}var u=g7();u.__mouseover=s,u.__click=i;var f=j(u),d=j(f),h=j(d,!0);G(d);var m=ee(d,2),g=j(m),v=j(g);{var w=A=>{var y=m7();y.__click=a,it(y,S=>r[0]=S,()=>r==null?void 0:r[0]),on("auxclick",y,a),ae(A,y)};Ae(v,A=>{gl(e.change.vaultPath,e.view.app)&&A(w)})}var b=ee(v,2);b.__click=c,it(b,A=>r[1]=A,()=>r==null?void 0:r[1]);var k=ee(b,2);k.__click=o,it(k,A=>r[2]=A,()=>r==null?void 0:r[2]),G(g);var x=ee(g,2),E=j(x,!0);G(x),G(m),G(f),G(u),Ne(A=>{_e(f,"data-path",e.change.vaultPath),_e(f,"data-tooltip-position",R(n)),_e(f,"aria-label",e.change.vaultPath),He(h,A),_e(x,"data-type",e.change.workingDir),He(E,e.change.workingDir)},[()=>vi(e.change.vaultPath)]),on("auxclick",u,A=>{A.stopPropagation(),A.button==2?gi(e.view.app,A,e.change.vaultPath,e.view.leaf,"git-source-control"):i(A)}),ae(t,u),ot()}Et(["mouseover","click"]);p();var ED=require("obsidian");var v7=fe('
');function Cf(t,e){at(e,!0);let r=St(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function n(d){e.view.app.vault.getAbstractFileByPath(e.change.vaultPath)&&vl(e.view.app,d,e.view,e.change.vaultPath)}function i(d){var h;d.stopPropagation();let m=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);m instanceof ED.TFile&&((h=Bn(e.view.app,d))===null||h===void 0||h.openFile(m).catch(g=>e.view.plugin.displayError(g)))}var s=v7();s.__mouseover=n,s.__click=i;var a=j(s),o=j(a),l=j(o,!0);G(o);var c=ee(o,2),u=j(c),f=j(u,!0);G(u),G(c),G(a),G(s),Ne(d=>{_e(a,"data-path",e.change.vaultPath),_e(a,"data-tooltip-position",R(r)),_e(a,"aria-label",e.change.vaultPath),He(l,d),_e(u,"data-type",e.change.workingDir),He(f,e.change.workingDir)},[()=>vi(e.change.vaultPath)]),on("auxclick",s,d=>{d.stopPropagation(),d.button==2?gi(e.view.app,d,e.change.vaultPath,e.view.leaf,"git-source-control"):i(d)}),ae(t,s),ot()}Et(["mouseover","click"]);p();var wm=require("obsidian");var w7=fe('
'),y7=fe('
');function Tf(t,e){at(e,!0);let r=Ye([]),n=St(()=>e.view.leaf.getRoot().side=="left"?"right":"left");sr(()=>{for(let x of r)x&&(0,wm.setIcon)(x,x.getAttr("data-icon"))});function i(x){x.stopPropagation(),ml(e.change.path)?a(x):o(x)}function s(x){e.view.app.vault.getFileByPath(e.change.vaultPath)&&vl(e.view.app,x,e.view,e.change.vaultPath)}function a(x){var E;x.stopPropagation();let A=e.view.app.vault.getAbstractFileByPath(e.change.vaultPath);A instanceof wm.TFile&&((E=Bn(e.view.app,x))===null||E===void 0||E.openFile(A).catch(y=>e.view.plugin.displayError(y)))}function o(x){var E;x.stopPropagation(),e.view.plugin.tools.openDiff({aFile:(E=e.change.from)!==null&&E!==void 0?E:e.change.path,bFile:e.change.path,aRef:"HEAD",bRef:"",event:x})}function l(x){x.stopPropagation(),e.manager.unstage(e.change.path,!1).catch(E=>e.view.plugin.displayError(E)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}var c=y7();c.__mouseover=s,c.__click=i;var u=j(c),f=j(u),d=j(f,!0);G(f);var h=ee(f,2),m=j(h),g=j(m);{var v=x=>{var E=w7();E.__click=a,it(E,A=>r[0]=A,()=>r==null?void 0:r[0]),ae(x,E)};Ae(g,x=>{gl(e.change.vaultPath,e.view.app)&&x(v)})}var w=ee(g,2);w.__click=l,it(w,x=>r[1]=x,()=>r==null?void 0:r[1]),G(m);var b=ee(m,2),k=j(b,!0);G(b),G(h),G(u),G(c),Ne(x=>{_e(u,"data-path",e.change.vaultPath),_e(u,"data-tooltip-position",R(n)),_e(u,"aria-label",e.change.vaultPath),He(d,x),_e(b,"data-type",e.change.index),He(k,e.change.index)},[()=>vi(e.change.vaultPath)]),on("auxclick",c,x=>{x.stopPropagation(),x.button==2?gi(e.view.app,x,e.change.vaultPath,e.view.leaf,"git-source-control"):i(x)}),ae(t,c),ot()}Et(["mouseover","click"]);p();p();var b7=fe(''),_7=fe("
");function mo(t,e){at(e,!0);var r=_7(),n=j(r);{var i=s=>{var a=b7(),o=j(a),l=j(o),c=j(l,!0);G(l),G(o),G(a),Ne(()=>{_e(o,"aria-label","And "+(e.files.length-500)+" more files"),He(c,"And "+(e.files.length-500)+" more files")}),ae(s,a)};Ae(n,s=>{e.files.length>500&&s(i)})}G(r),ae(t,r),ot()}var S7=fe("
"),E7=fe('
'),k7=fe('
',1),A7=fe(''),C7=fe('
'),T7=fe("
");function go(t,e){at(e,!0);let r=Pn(e,"topLevel",3,!1),n=Pn(e,"closed",15);ho(()=>{var h,m;for(let g of e.hierarchy.children)((m=(h=g.children)===null||h===void 0?void 0:h.length)!==null&&m!==void 0?m:0)>100&&n(n()[g.title]=!0,!0)});let i=St(()=>e.view.leaf.getRoot().side=="left"?"right":"left");function s(h,m){h.stopPropagation(),e.plugin.gitManager.stageAll({dir:m}).catch(g=>e.plugin.displayError(g)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function a(h,m){h.stopPropagation(),e.plugin.gitManager.unstageAll({dir:m}).catch(g=>e.plugin.displayError(g)).finally(()=>{e.view.app.workspace.trigger("obsidian-git:refresh")})}function o(h,m){h.stopPropagation(),e.plugin.discardAll(m.vaultPath)}function l(h,m){h.stopPropagation(),n(n()[m.path]=!n()[m.path],!0)}var c=T7();let u;var f=j(c);un(f,17,()=>Ru(e.hierarchy.children,500),cn,(h,m)=>{var g=ds(),v=qr(g);{var w=k=>{var x=S7(),E=j(x);{var A=S=>{Tf(S,{get change(){return R(m).data},get manager(){return e.plugin.gitManager},get view(){return e.view}})},y=S=>{var _=ds(),C=qr(_);{var P=B=>{Af(B,{get change(){return R(m).data},get manager(){return e.plugin.gitManager},get view(){return e.view}})},N=B=>{var H=ds(),ce=qr(H);{var Pe=ve=>{Cf(ve,{get change(){return R(m).data},get view(){return e.view}})};Ae(ce,ve=>{e.fileType==2&&ve(Pe)},!0)}ae(B,H)};Ae(C,B=>{e.fileType==1?B(P):B(N,!1)},!0)}ae(S,_)};Ae(E,S=>{e.fileType==0?S(A):S(y,!1)})}G(x),ae(k,x)},b=k=>{var x=C7();let E;var A=j(x);A.__click=ie=>l(ie,R(m));var y=ee(j(A),2);let S;var _=ee(y,2),C=j(_,!0);G(_);var P=ee(_,2),N=j(P),B=j(N);{var H=ie=>{var xe=E7();xe.__click=we=>a(we,R(m).path),ae(ie,xe)},ce=ie=>{var xe=k7(),we=qr(xe);we.__click=X=>o(X,R(m));var W=ee(we,2);W.__click=X=>s(X,R(m).path),ae(ie,xe)};Ae(B,ie=>{e.fileType==0?ie(H):ie(ce,!1)})}Xa(2),G(N),G(P),G(A);var Pe=ee(A,2);{var ve=ie=>{var xe=A7(),we=j(xe);go(we,{get hierarchy(){return R(m)},get plugin(){return e.plugin},get view(){return e.view},get fileType(){return e.fileType},get closed(){return n()},set closed(W){n(W)}}),G(xe),ei(3,xe,()=>Ni,()=>({duration:150})),ae(ie,xe)};Ae(Pe,ie=>{n()[R(m).path]||ie(ve)})}G(x),Ne(()=>{E=ft(x,1,"tree-item nav-folder",null,E,{"is-collapsed":n()[R(m).path]}),_e(A,"data-tooltip-position",R(i)),_e(A,"aria-label",R(m).vaultPath),S=ft(y,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,S,{"is-collapsed":n()[R(m).path]}),He(C,R(m).title)}),on("auxclick",x,ie=>gi(e.view.app,ie,R(m).vaultPath,e.view.leaf,"git-source-control")),ae(k,x)};Ae(v,k=>{R(m).data?k(w):k(b,!1)})}ae(h,g)});var d=ee(f,2);mo(d,{get files(){return e.hierarchy.children}}),G(c),Ne(()=>u=ft(c,1,"",null,u,{topLevel:r()})),ae(t,c),ot()}Et(["click"]);var P7=fe('
'),R7=fe(" ",1),$7=fe(''),I7=fe(" ",1),F7=fe(''),O7=fe(" ",1),M7=fe(''),D7=fe('
'),L7=fe(''),N7=fe('
'),B7={hash:"svelte-5wq9p",code:`.commit-msg-input.svelte-5wq9p {width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field);}.git-commit-msg.svelte-5wq9p {position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto;}main.svelte-5wq9p .git-tools:where(.svelte-5wq9p) .files-count:where(.svelte-5wq9p) {padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center;}.nav-folder-title.svelte-5wq9p {align-items:center;}.git-commit-msg-clear-button.svelte-5wq9p {position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out;}.git-commit-msg-clear-button.svelte-5wq9p:after {content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;mask-image:url("data:image/svg+xml,");mask-repeat:no-repeat;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat;}`};function $b(t,e){at(e,!0),ti(t,B7);let r=Pn(e,"plugin",7),n=Pn(e,"view",7),i=Me(!1),s=Me(void 0),a=Me(Ye([])),o=St(()=>r().settings.commitMessage),l=Ye([]),c=Me(void 0),u=Me(void 0),f=Me(void 0),d=Me(!0),h=Me(!0),m=Me(!0),g=Me(0),v=Me(Ye({})),w=Me(Ye({})),b=Me(Ye({})),k=St(()=>r().settings.treeStructure);ho(()=>{n().registerEvent(n().app.workspace.on("obsidian-git:loading-status",()=>se(i,!0))),n().registerEvent(n().app.workspace.on("obsidian-git:status-changed",()=>void A().catch(console.error))),n().plugin.cachedStatus==null?n().plugin.refresh().catch(console.error):A().catch(console.error),n().scope=new vo.Scope(r().app.scope),n().scope.register(["Ctrl"],"Enter",O=>E())}),sr(()=>{l.forEach(O=>(0,vo.setIcon)(O,O.getAttr("data-icon")))}),sr(()=>{l.forEach(O=>{var oe,Ce;!O||O.id!="push"||(vo.Platform.isMobile?(O.removeClass("button-border"),R(g)>0&&O.addClass("button-border")):((oe=O.firstElementChild)===null||oe===void 0||oe.removeAttribute("color"),R(g)>0&&((Ce=O.firstElementChild)===null||Ce===void 0||Ce.setAttr("color","var(--text-accent)"))))})});function x(){if(se(i,!0),R(s)){let O=R(s).staged.length>0;r().promiseQueue.addTask(()=>r().commit({fromAuto:!1,commitMessage:R(o),onlyStaged:O}).then(()=>se(o,r().settings.commitMessage)).finally(y))}}function E(){if(se(i,!0),R(s)){let O=R(s).staged.length>0;r().promiseQueue.addTask(()=>r().commitAndSync({fromAutoBackup:!1,commitMessage:R(o),onlyStaged:O}).then(()=>{se(o,r().settings.commitMessage)}).finally(y))}}function A(){return po(this,void 0,void 0,function*(){if(!r().gitReady){se(s,void 0);return}if(se(g,yield r().gitManager.getUnpushedCommits(),!0),se(s,r().cachedStatus,!0),se(i,!1),r().lastPulledFiles&&r().lastPulledFiles!=R(a)&&(se(a,r().lastPulledFiles,!0),se(f,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(a))},!0)),R(s)){let O=(oe,Ce)=>oe.vaultPath.split("/").last().localeCompare(vi(Ce.vaultPath));R(s).changed.sort(O),R(s).staged.sort(O),se(c,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(s).changed)},!0),se(u,{title:"",path:"",vaultPath:"",children:r().gitManager.getTreeStructure(R(s).staged)},!0)}else se(c,void 0),se(u,void 0)})}function y(){n().app.workspace.trigger("obsidian-git:refresh")}function S(O){O.stopPropagation(),se(i,!0),r().promiseQueue.addTask(()=>r().gitManager.stageAll({status:R(s)}).finally(y))}function _(O){O.stopPropagation(),se(i,!0),r().promiseQueue.addTask(()=>r().gitManager.unstageAll({status:R(s)}).finally(y))}function C(){se(i,!0),r().promiseQueue.addTask(()=>r().push().finally(y))}function P(){se(i,!0),r().promiseQueue.addTask(()=>r().pullChangesFromRemote().finally(y))}function N(O){O.stopPropagation(),r().discardAll()}let B=St(()=>(R(o).match(/\n/g)||[]).length+1||1);var H=N7(),ce=j(H),Pe=j(ce),ve=j(Pe);ve.__click=E,it(ve,O=>l[0]=O,()=>l==null?void 0:l[0]);var ie=ee(ve,2);ie.__click=x,it(ie,O=>l[1]=O,()=>l==null?void 0:l[1]);var xe=ee(ie,2);xe.__click=S,it(xe,O=>l[2]=O,()=>l==null?void 0:l[2]);var we=ee(xe,2);we.__click=_,it(we,O=>l[3]=O,()=>l==null?void 0:l[3]);var W=ee(we,2);W.__click=C,it(W,O=>l[4]=O,()=>l==null?void 0:l[4]);var X=ee(W,2);X.__click=P,it(X,O=>l[5]=O,()=>l==null?void 0:l[5]);var q=ee(X,2);q.__click=()=>{se(k,!R(k)),(0,vo.setIcon)(l[6],R(k)?"list":"folder"),r().settings.treeStructure=R(k),r().saveSettings()},it(q,O=>l[6]=O,()=>l==null?void 0:l[6]);var De=ee(q,2);let ar;De.__click=y,it(De,O=>l[7]=O,()=>l==null?void 0:l[7]),G(Pe),G(ce);var Ft=ee(ce,2),Ie=j(Ft);sb(Ie);var kt=ee(Ie,2);{var At=O=>{var oe=P7();oe.__click=()=>se(o,""),_e(oe,"aria-label","Clear"),ae(O,oe)};Ae(kt,O=>{R(o)&&O(At)})}G(Ft);var je=ee(Ft,2),Z=j(je);{var M=O=>{var oe=L7(),Ce=j(oe);let Ot;var wr=j(Ce);wr.__click=()=>se(h,!R(h));var bo=j(wr);let Db;var Lb=ee(bo,4),$m=j(Lb),Nb=j($m);Nb.__click=_,it(Nb,or=>l[8]=or,()=>l==null?void 0:l[8]),G($m);var Bb=ee($m,2),OD=j(Bb,!0);G(Bb),G(Lb),G(wr);var MD=ee(wr,2);{var DD=or=>{var yr=$7(),_o=j(yr);{var vs=lr=>{go(lr,{get hierarchy(){return R(u)},get plugin(){return r()},get view(){return n()},get fileType(){return 0},topLevel:!0,get closed(){return R(v)},set closed($n){se(v,$n,!0)}})},xo=lr=>{var $n=R7(),aa=qr($n);un(aa,17,()=>Ru(R(s).staged,500),cn,(ws,yc)=>{Tf(ws,{get change(){return R(yc)},get view(){return n()},get manager(){return r().gitManager}})});var oa=ee(aa,2);mo(oa,{get files(){return R(s).staged}}),ae(lr,$n)};Ae(_o,lr=>{R(k)?lr(vs):lr(xo,!1)})}G(yr),ei(3,yr,()=>Ni,()=>({duration:150})),ae(or,yr)};Ae(MD,or=>{R(h)&&or(DD)})}G(Ce);var Rf=ee(Ce,2);let Hb;var $f=j(Rf);$f.__click=()=>se(d,!R(d));var Ub=j($f);let Gb;var jb=ee(Ub,4),Im=j(jb),qb=j(Im);qb.__click=N;var Wb=ee(qb,2);Wb.__click=S,it(Wb,or=>l[9]=or,()=>l==null?void 0:l[9]),G(Im);var zb=ee(Im,2),LD=j(zb,!0);G(zb),G(jb),G($f);var ND=ee($f,2);{var BD=or=>{var yr=F7(),_o=j(yr);{var vs=lr=>{go(lr,{get hierarchy(){return R(c)},get plugin(){return r()},get view(){return n()},get fileType(){return 1},topLevel:!0,get closed(){return R(w)},set closed($n){se(w,$n,!0)}})},xo=lr=>{var $n=I7(),aa=qr($n);un(aa,17,()=>Ru(R(s).changed,500),cn,(ws,yc)=>{Af(ws,{get change(){return R(yc)},get view(){return n()},get manager(){return r().gitManager}})});var oa=ee(aa,2);mo(oa,{get files(){return R(s).changed}}),ae(lr,$n)};Ae(_o,lr=>{R(k)?lr(vs):lr(xo,!1)})}G(yr),ei(3,yr,()=>Ni,()=>({duration:150})),ae(or,yr)};Ae(ND,or=>{R(d)&&or(BD)})}G(Rf);var HD=ee(Rf,2);{var UD=or=>{var yr=D7();let _o;var vs=j(yr);vs.__click=()=>se(m,!R(m));var xo=ee(j(vs),4),lr=j(xo,!0);G(xo),G(vs);var $n=ee(vs,2);{var aa=oa=>{var ws=M7(),yc=j(ws);{var GD=So=>{go(So,{get hierarchy(){return R(f)},get plugin(){return r()},get view(){return n()},get fileType(){return 2},topLevel:!0,get closed(){return R(b)},set closed(If){se(b,If,!0)}})},jD=So=>{var If=O7(),Vb=qr(If);un(Vb,17,()=>R(a),cn,(WD,zD)=>{Cf(WD,{get change(){return R(zD)},get view(){return n()}})});var qD=ee(Vb,2);mo(qD,{get files(){return R(a)}}),ae(So,If)};Ae(yc,So=>{R(k)?So(GD):So(jD,!1)})}G(ws),ei(3,ws,()=>Ni,()=>({duration:150})),ae(oa,ws)};Ae($n,oa=>{R(m)&&oa(aa)})}G(yr),Ne(()=>{_o=ft(yr,1,"pulled nav-folder",null,_o,{"is-collapsed":!R(m)}),He(lr,R(a).length)}),ae(or,yr)};Ae(HD,or=>{R(a).length>0&&R(f)&&or(UD)})}G(oe),Ne(()=>{Ot=ft(Ce,1,"staged tree-item nav-folder",null,Ot,{"is-collapsed":!R(h)}),Db=ft(bo,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,Db,{"is-collapsed":!R(h)}),He(OD,R(s).staged.length),Hb=ft(Rf,1,"changes tree-item nav-folder",null,Hb,{"is-collapsed":!R(d)}),Gb=ft(Ub,1,"tree-item-icon nav-folder-collapse-indicator collapse-icon",null,Gb,{"is-collapsed":!R(d)}),He(LD,R(s).changed.length)}),ae(O,oe)};Ae(Z,O=>{R(s)&&R(u)&&R(c)&&O(M)})}G(je),G(H),Ne(()=>{_e(H,"data-type",jt.type),_e(q,"data-icon",R(k)?"list":"folder"),ar=ft(De,1,"clickable-icon nav-action-button",null,ar,{loading:R(i)}),_e(Ie,"rows",R(B))}),_b(Ie,()=>R(o),O=>se(o,O)),ae(t,H),ot()}Et(["click"]);var Pf=class extends kD.ItemView{constructor(e,r){super(e),this.plugin=r,this.hoverPopover=null}getViewType(){return jt.type}getDisplayText(){return jt.name}getIcon(){return jt.icon}onClose(){return this._view&&hs(this._view),super.onClose()}reload(){this._view&&hs(this._view),this._view=ia($b,{target:this.contentEl,props:{plugin:this.plugin,view:this}})}onOpen(){return this.reload(),super.onOpen()}};p();var ym=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;this.statusBarEl.addClass("mod-clickable"),this.statusBarEl.onClickEvent(n=>{this.plugin.switchBranch().catch(i=>r.displayError(i))})}async display(){if(this.plugin.gitReady){let e=await this.plugin.gitManager.branchInfo();e.current!=null?this.statusBarEl.setText(e.current):this.statusBarEl.empty()}else this.statusBarEl.empty()}remove(){this.statusBarEl.remove()}};p();var AD=require("obsidian");var bm=class{constructor(e){this.plugin=e}get editor(){var n;let e=(n=this.plugin.app.workspace.activeEditor)==null?void 0:n.editor,r=e==null?void 0:e.cm;if(!(!e||!Gn.hasHunksData(r.state)))return{editor:r,obEditor:e}}get gitManager(){return this.plugin.gitManager}resetHunk(e){if(!this.editor)return;let{editor:r,obEditor:n}=this.editor,i=Gn.getHunk(r.state,!1,e);if(i){let s,a;i.type==="delete"?(s=i.added.start+1,a=i.added.start+1):(s=i.added.start-0,a=i.added.start-1+i.added.count);let o=r.state.doc.line(s).from,l=i.type==="delete"?r.state.doc.line(a).from:r.state.doc.line(a).to+1,c=i.removed.lines.join(` +`);i.removed.lines.length>0&&!i.removed.no_nl_at_eof&&(c+=` +`),n.replaceRange(c,n.offsetToPos(o),n.offsetToPos(l)),n.setSelection(n.offsetToPos(o))}}async stageHunk(e){if(!await this.plugin.isAllInitialized()||!this.editor)return;let{editor:r}=this.editor,n=Gn.getHunk(r.state,!1,e),i=!1;if(n||(n=Gn.getHunk(r.state,!0,e),i=!0),!n)return;let s=r.state.field(AD.editorInfoField).file.path,a=Nt.createPatch(s,[n],"100644",i).join(` `)+` -`;await this.gitManager.applyPatch(a),this.plugin.app.workspace.trigger("obsidian-git:refresh")}goToHunk(e){if(!this.editor)return;let{editor:r,obEditor:i}=this.editor,n=Bi.getHunks(r.state,!1),s=i.getCursor().line+1,a=Nt.findNearestHunk(s,n,e,!0);if(a==null)return;let o=n[a];if(o){let l=o.added.start-1;i.setCursor(l,0),i.scrollIntoView({from:{line:l,ch:0},to:{line:l+1,ch:0}},!0)}}};p();p();var vo=require("obsidian");var gm=class{constructor(e){this.plg=e;this.codeMirrorExtensions=[];this.handleWorkspaceLeaf=e=>{if(!this.lineAuthorInfoProvider){console.warn("Git: undefined lineAuthorInfoProvider. Unexpected situation.");return}let r=e==null?void 0:e.view;!(r instanceof vo.MarkdownView)||r.file==null||(r==null?void 0:r.allowNoFile)===!0||this.lineAuthorInfoProvider.trackChanged(r.file).catch(console.error)}}onLoadPlugin(){this.plg.registerEditorExtension(this.codeMirrorExtensions),YF(()=>this.plg.settings.lineAuthor,e=>{this.plg.settings.lineAuthor=e,this.plg.saveSettings()})}conditionallyActivateBySettings(){this.plg.settings.lineAuthor.show&&this.activateFeature()}activateFeature(){try{if(!this.isAvailableOnCurrentPlatform().available)return;nI(this.plg.settings.lineAuthor),this.lineAuthorInfoProvider=new tp(this.plg),this.createEventHandlers(),this.activateCodeMirrorExtensions(),console.log(this.plg.manifest.name+": Enabled line authoring.")}catch(e){console.warn("Git: Error while loading line authoring feature.",e),this.deactivateFeature()}}deactivateFeature(){var e;this.destroyEventHandlers(),this.deactivateCodeMirrorExtensions(),(e=this.lineAuthorInfoProvider)==null||e.destroy(),this.lineAuthorInfoProvider=void 0,console.log(this.plg.manifest.name+": Disabled line authoring.")}isAvailableOnCurrentPlatform(){return{available:this.plg.useSimpleGit&&vo.Platform.isDesktopApp,gitManager:this.plg.gitManager instanceof Se?this.plg.gitManager:void 0}}refreshLineAuthorViews(){this.plg.settings.lineAuthor.show&&(this.deactivateFeature(),this.activateFeature())}activateCodeMirrorExtensions(){this.codeMirrorExtensions.push(mI),this.plg.app.workspace.updateOptions(),this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}deactivateCodeMirrorExtensions(){for(let e of this.codeMirrorExtensions)this.codeMirrorExtensions.remove(e);this.plg.app.workspace.updateOptions()}createEventHandlers(){this.gutterContextMenuEvent=this.createGutterContextMenuHandler(),this.fileOpenEvent=this.createFileOpenEvent(),this.workspaceLeafChangeEvent=this.createWorkspaceLeafChangeEvent(),this.fileModificationEvent=this.createVaultFileModificationHandler(),this.headChangeEvent=this.createHeadChangeEvent(),this.refreshOnCssChangeEvent=this.createCssRefreshHandler(),this.fileRenameEvent=this.createFileRenameEvent(),JF(),this.plg.registerEvent(this.gutterContextMenuEvent),this.plg.registerEvent(this.refreshOnCssChangeEvent),this.plg.registerEvent(this.fileOpenEvent),this.plg.registerEvent(this.workspaceLeafChangeEvent),this.plg.registerEvent(this.fileModificationEvent),this.plg.registerEvent(this.headChangeEvent),this.plg.registerEvent(this.fileRenameEvent)}destroyEventHandlers(){this.plg.app.workspace.offref(this.gutterContextMenuEvent),this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.workspace.offref(this.fileOpenEvent),this.plg.app.workspace.offref(this.workspaceLeafChangeEvent),this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.vault.offref(this.fileModificationEvent),this.plg.app.workspace.offref(this.headChangeEvent),this.plg.app.vault.offref(this.fileRenameEvent)}createFileOpenEvent(){return this.plg.app.workspace.on("file-open",e=>{var r;return void((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(e).catch(console.error))})}createWorkspaceLeafChangeEvent(){return this.plg.app.workspace.on("active-leaf-change",this.handleWorkspaceLeaf)}createFileRenameEvent(){return this.plg.app.vault.on("rename",(e,r)=>{var i;return e instanceof vo.TFile&&((i=this.lineAuthorInfoProvider)==null?void 0:i.trackChanged(e))})}createVaultFileModificationHandler(){return this.plg.app.vault.on("modify",e=>{var r;return e instanceof vo.TFile&&((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(e))})}createHeadChangeEvent(){return this.plg.app.workspace.on("obsidian-git:head-change",()=>{this.refreshLineAuthorViews()})}createCssRefreshHandler(){return this.plg.app.workspace.on("css-change",()=>this.refreshLineAuthorViews())}createGutterContextMenuHandler(){return this.plg.app.workspace.on("editor-menu",rI)}};p();var dc=require("obsidian");p();p();var wo=require("@codemirror/state"),wm=require("@codemirror/view");var vm=class extends wm.GutterMarker{constructor(r,i){super();this.type=r;this.staged=i}toDOM(r){let i=document.createElement("div");return i.className=`git-gutter-marker git-${this.type} ${this.staged?"staged":"unstaged"}`,this.type=="changedelete"&&i.setText("~"),i}},Eb=wo.StateField.define({create:()=>wo.RangeSet.empty,update:(t,e)=>{let r=e.state.field(Fr,!1);if(!r)return wo.RangeSet.empty;let i=e.effects.some(s=>s.is(Uu)),n=e.effects.some(s=>s.is(Ol));if(i||n||(e.docChanged||t.size==0)&&r.isDirty==!1){let s=new Set,a=dD(e,r.hunks,!1,s),o=dD(e,r.stagedHunks,!0,s);return t=wo.RangeSet.of([...a,...o],!0),t}else e.docChanged&&(t=t.map(e.changes));return t}});function dD(t,e,r,i){let n=[];for(let a=0;a0?e[a-1]:void 0,l=a{var e;return(e=t.state.field(Eb,!1))!=null?e:wo.RangeSet.empty},initialSpacer:t=>new vm("delete",!1),domEventHandlers:{click:(t,e,r)=>{var n;return((n=Bi.getHunkAtPos(t.state,e.from,!1))!=null?n:Bi.getHunkAtPos(t.state,e.from,!0))&&(Ys(t,e.from),r.preventDefault()),!1}}});var ym=class{constructor(e){this.plugin=e}async trackChanged(e){return this.trackChangedHelper(e).catch(r=>(console.warn("Git: Error in trackChanged."+r),Promise.reject(r)))}async trackChangedHelper(e){if(e){if(e.path===void 0){console.warn("Git: Attempted to track change of undefined filepath. Unforeseen situation.");return}return this.computeSigns(e.path)}}destroy(){}async computeSigns(e){let i=await this.plugin.editorIntegration.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager.show("",e).catch(()=>{});this.notifySignComputationResultToSubscribers(e,{compareText:i,compareTextHead:void 0})}notifySignComputationResultToSubscribers(e,r){Jn.ifFilepathDefinedTransformSubscribers(e,i=>i.forEach(n=>n.notifyGitCompare(r)))}},pD=[TO,CO,hD,Eb,Sp],mD=[Fr,fy];p();var kb=require("obsidian"),bm=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;e.addClass("git-changes-status-bar"),r.settings.hunks.statusBar==="colored"&&e.addClass("git-changes-status-bar-colored"),e.setAttr("aria-label","Git diff of the current editor"),this.statusBarEl.setAttribute("data-tooltip-position","top"),r.app.workspace.on("active-leaf-change",i=>{(!i||i.getRoot()==r.app.workspace.rootSplit&&!(i.view instanceof kb.MarkdownView))&&this.statusBarEl.empty()})}display(e,r){var o;let i=this.plugin.app.workspace.getActiveViewOfType(kb.MarkdownView);if(!i||((o=i.file)==null?void 0:o.path)!==(r==null?void 0:r.path))return;let n=0,s=0,a=0;for(let l of e)n+=Math.max(0,l.added.count-l.removed.count),s+=Math.min(l.added.count,l.removed.count),a+=Math.max(0,l.removed.count-l.added.count);this.statusBarEl.empty(),n>0&&this.statusBarEl.createSpan({text:`+${n} `,cls:"git-add"}),s>0&&this.statusBarEl.createSpan({text:`~${s} `,cls:"git-change"}),a>0&&this.statusBarEl.createSpan({text:`-${a}`,cls:"git-delete"})}remove(){this.statusBarEl.remove()}};var _m=class{constructor(e){this.plg=e;this.codeMirrorExtensions=[];this.handleWorkspaceLeaf=e=>{if(!this.signsProvider){console.warn("Git: undefined signsProvider. Unexpected situation.");return}let r=e==null?void 0:e.view;!(r instanceof dc.MarkdownView)||r.file==null||(r==null?void 0:r.allowNoFile)===!0||this.signsProvider.trackChanged(r.file).catch(console.error)}}onLoadPlugin(){this.plg.registerEditorExtension(this.codeMirrorExtensions)}conditionallyActivateBySettings(){(this.plg.settings.hunks.showSigns||this.plg.settings.hunks.statusBar!="disabled"||this.plg.settings.hunks.hunkCommands)&&this.activateFeature()}activateFeature(){try{if(!this.isAvailableOnCurrentPlatform().available)return;if(this.signsProvider=new ym(this.plg),this.createEventHandlers(),this.activateCodeMirrorExtensions(),this.plg.settings.hunks.statusBar!="disabled"){let e=this.plg.addStatusBarItem();this.changeStatusBar=new bm(e,this.plg)}}catch(e){console.warn("Git: Error while loading signs feature.",e),this.deactivateFeature()}}deactivateFeature(){var e,r;this.destroyEventHandlers(),this.deactivateCodeMirrorExtensions(),(e=this.signsProvider)==null||e.destroy(),this.signsProvider=void 0,(r=this.changeStatusBar)==null||r.remove(),this.changeStatusBar=void 0}isAvailableOnCurrentPlatform(){return{available:this.plg.useSimpleGit&&dc.Platform.isDesktopApp,gitManager:this.plg.gitManager instanceof Se?this.plg.gitManager:void 0}}refresh(){this.plg.settings.hunks.showSigns&&this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}activateCodeMirrorExtensions(){this.codeMirrorExtensions.push(mD),this.plg.settings.hunks.showSigns&&this.codeMirrorExtensions.push(...pD),this.plg.app.workspace.updateOptions(),this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}deactivateCodeMirrorExtensions(){for(let e of this.codeMirrorExtensions)this.codeMirrorExtensions.remove(e);this.plg.app.workspace.updateOptions()}createEventHandlers(){this.workspaceLeafChangeEvent=this.createWorkspaceLeafChangeEvent(),this.fileRenameEvent=this.createFileRenameEvent(),this.pluginRefreshedEvent=this.createPluginRefreshedEvent(),this.intervalRefreshEvent=this.createIntervalRefreshEvent(),this.plg.registerEvent(this.workspaceLeafChangeEvent),this.plg.registerEvent(this.fileRenameEvent),this.plg.registerEvent(this.pluginRefreshedEvent),this.plg.registerInterval(this.intervalRefreshEvent)}destroyEventHandlers(){this.plg.app.workspace.offref(this.workspaceLeafChangeEvent),this.plg.app.vault.offref(this.fileRenameEvent),this.plg.app.workspace.offref(this.pluginRefreshedEvent),this.plg.app.workspace.offref(this.gutterContextMenuEvent),window.clearInterval(this.intervalRefreshEvent)}createWorkspaceLeafChangeEvent(){return this.plg.app.workspace.on("active-leaf-change",this.handleWorkspaceLeaf)}createFileRenameEvent(){return this.plg.app.vault.on("rename",(e,r)=>{var i;return Jn.ifFilepathDefinedTransformSubscribers(r,n=>n.forEach(s=>{s.changeToNewFilepath(e.path)})),e instanceof dc.TFile&&((i=this.signsProvider)==null?void 0:i.trackChanged(e))})}createPluginRefreshedEvent(){return this.plg.app.workspace.on("obsidian-git:refresh",()=>{this.refresh()})}createIntervalRefreshEvent(){return window.setInterval(()=>{var e,r;(e=this.plg.app.workspace.activeEditor)!=null&&e.file&&((r=this.signsProvider)==null||r.trackChanged(this.plg.app.workspace.activeEditor.file).catch(console.error))},10*1e3)}};p();var gD=require("@codemirror/state"),xm=require("obsidian");var Ab=class{constructor(e){this.state=e;this.subscribeMe()}notifyLineAuthoring(e,r){if(this.view===void 0){console.warn(`Git: View is not defined for editor cache key. Unforeseen situation. id: ${e}`);return}let i=this.view.state,n=WF(e,r,i);this.view.dispatch(n)}notifyGitCompare(e){if(this.view===void 0){console.warn("Git: View is not defined for editor cache key. Unforeseen situation. id: ");return}if(this.removeIfStale())return;let r=this.view.state,i=r.field(Fr);if(!i||i.compareText!=e.compareText||i.compareTextHead!=e.compareTextHead){let n=aO(e,r);this.view.dispatch(n)}}updateToNewState(e){return this.state=e,!this.lastSeenPath&&this.filepath&&this.subscribeMe(),this}removeIfStale(){var e;return((e=this.view)==null?void 0:e.state.field(Tb,!1))!=this||this.view.destroyed?(this.unsubscribeMe(this.lastSeenPath),!0):!1}changeToNewFilepath(e){this.unsubscribeMe(this.lastSeenPath),this.subscribeMe(e)}subscribeMe(e){e!=null||(e=this.filepath),e!==void 0&&(Jn.ifFilepathDefinedTransformSubscribers(e,r=>r.add(this)),this.lastSeenPath=e)}unsubscribeMe(e){Jn.ifFilepathDefinedTransformSubscribers(e,r=>r.delete(this))}get filepath(){var e,r;return(r=(e=this.state.field(xm.editorInfoField))==null?void 0:e.file)==null?void 0:r.path}get view(){return this.state.field(xm.editorEditorField)}},Tb=gD.StateField.define({create:t=>new Ab(t),update:(t,e)=>t.updateToNewState(e.state),compare:(t,e)=>t===e});var Sm=class{constructor(e){this.plg=e;this.lineAuthoringFeature=new gm(this.plg);this.signsFeature=new _m(this.plg)}onUnloadPlugin(){this.lineAuthoringFeature.deactivateFeature(),this.signsFeature.deactivateFeature()}onLoadPlugin(){this.plg.registerEditorExtension(Tb),this.lineAuthoringFeature.onLoadPlugin(),this.signsFeature.onLoadPlugin()}onReady(){this.lineAuthoringFeature.conditionallyActivateBySettings(),this.signsFeature.conditionallyActivateBySettings()}activateLineAuthoring(){this.lineAuthoringFeature.activateFeature()}deactiveLineAuthoring(){this.lineAuthoringFeature.deactivateFeature()}refreshSignsSettings(){let e=this.plg.settings.hunks;e.showSigns||e.statusBar!="disabled"||e.hunkCommands?(this.signsFeature.deactivateFeature(),this.signsFeature.activateFeature()):this.signsFeature.deactivateFeature()}};var Em=class extends _e.Plugin{constructor(){super(...arguments);this.automaticsManager=new Du(this);this.tools=new Yu(this);this.localStorage=new Ep(this);this.state={gitAction:0,offlineMode:!1};this.gitReady=!1;this.promiseQueue=new Dd(this);this.intervalsToClear=[];this.editorIntegration=new Sm(this);this.hunkActions=new mm(this)}setPluginState(r){var i;this.state=Object.assign(this.state,r),(i=this.statusBar)==null||i.display()}async updateCachedStatus(){var r,i;return this.app.workspace.trigger("obsidian-git:loading-status"),this.cachedStatus=await this.gitManager.status(),this.cachedStatus.conflicted.length>0?(this.localStorage.setConflict(!0),await((r=this.branchBar)==null?void 0:r.display())):(this.localStorage.setConflict(!1),await((i=this.branchBar)==null?void 0:i.display())),this.app.workspace.trigger("obsidian-git:status-changed",this.cachedStatus),this.cachedStatus}async refresh(){if(!this.gitReady)return;let r=this.app.workspace.getLeavesOfType(zt.type),i=this.app.workspace.getLeavesOfType(gi.type);(this.settings.changedFilesInStatusBar||r.some(n=>{var s;return!((s=n.isDeferred)!=null&&s)})||i.some(n=>{var s;return!((s=n.isDeferred)!=null&&s)}))&&await this.updateCachedStatus().catch(n=>this.displayError(n)),this.app.workspace.trigger("obsidian-git:refreshed")}refreshUpdatedHead(){}async onload(){console.log("loading "+this.manifest.name+" plugin: v"+this.manifest.version),Ii.plugin=this,this.localStorage.migrate(),await this.loadSettings(),await this.migrateSettings(),this.settingsTab=new rp(this.app,this),this.addSettingTab(this.settingsTab),this.localStorage.getPluginDisabled()||(this.registerStuff(),this.app.workspace.onLayoutReady(()=>this.init({fromReload:!1}).catch(r=>this.displayError(r))))}onExternalSettingsChange(){this.reloadSettings().catch(r=>this.displayError(r))}async reloadSettings(){let r=JSON.stringify(this.settings);await this.loadSettings();let i=JSON.stringify(this.settings);r!==i&&(this.log("Reloading settings"),this.unloadPlugin(),await this.init({fromReload:!0}),this.app.workspace.getLeavesOfType(zt.type).forEach(n=>{var s;if(!((s=n.isDeferred)!=null&&s))return n.view.reload()}),this.app.workspace.getLeavesOfType(gi.type).forEach(n=>{var s;if(!((s=n.isDeferred)!=null&&s))return n.view.reload()}))}registerStuff(){this.registerEvent(this.app.workspace.on("obsidian-git:refresh",()=>{this.refresh().catch(r=>this.displayError(r))})),this.registerEvent(this.app.workspace.on("obsidian-git:head-change",()=>{this.refreshUpdatedHead()})),this.registerEvent(this.app.workspace.on("file-menu",(r,i,n)=>{this.handleFileMenu(r,i,n,"file-manu")})),this.registerEvent(this.app.workspace.on("obsidian-git:menu",(r,i,n)=>{this.handleFileMenu(r,i,n,"obsidian-git:menu")})),this.registerEvent(this.app.workspace.on("active-leaf-change",r=>{this.onActiveLeafChange(r)})),this.registerEvent(this.app.vault.on("modify",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("delete",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("create",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("rename",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerView(zt.type,r=>new Sf(r,this)),this.registerView(gi.type,r=>new wf(r,this)),this.registerView(Bs.type,r=>new qa(r,this)),this.registerView(Ls.type,r=>new za(r,this)),this.addRibbonIcon("git-pull-request","Open Git source control",async()=>{var n;let r=this.app.workspace.getLeavesOfType(zt.type),i;r.length===0?(i=(n=this.app.workspace.getRightLeaf(!1))!=null?n:this.app.workspace.getLeaf(),await i.setViewState({type:zt.type})):i=r.first(),await this.app.workspace.revealLeaf(i)}),this.registerHoverLinkSource(zt.type,{display:"Git View",defaultMod:!0}),this.editorIntegration.onLoadPlugin(),this.setRefreshDebouncer(),PO(this)}setRefreshDebouncer(){var r;(r=this.debRefresh)==null||r.cancel(),this.debRefresh=(0,_e.debounce)(()=>{this.settings.refreshSourceControl&&this.refresh().catch(console.error)},this.settings.refreshSourceControlTimer,!0)}async addFileToGitignore(r,i){let n=this.gitManager.getRelativeRepoPath(r,!0),s=zP({isFolder:i,gitRelativePath:n});await this.app.vault.adapter.append(this.gitManager.getRelativeVaultPath(".gitignore"),` -`+s),this.app.workspace.trigger("obsidian-git:refresh")}handleFileMenu(r,i,n,s){if(!this.gitReady||!this.settings.showFileMenu||!i)return;let a;if(typeof i=="string"?a=i:a=i.path,n=="file-explorer-context-menu"&&(r.addItem(o=>{o.setTitle("Git: Stage").setIcon("plus-circle").setSection("action").onClick(l=>{this.promiseQueue.addTask(async()=>{i instanceof _e.TFile?await this.stageFile(i):(await this.gitManager.stageAll({dir:this.gitManager.getRelativeRepoPath(a,!0)}),this.app.workspace.trigger("obsidian-git:refresh"))})})}),r.addItem(o=>{o.setTitle("Git: Unstage").setIcon("minus-circle").setSection("action").onClick(l=>{this.promiseQueue.addTask(async()=>{i instanceof _e.TFile?await this.unstageFile(i):(await this.gitManager.unstageAll({dir:this.gitManager.getRelativeRepoPath(a,!0)}),this.app.workspace.trigger("obsidian-git:refresh"))})})}),r.addItem(o=>{o.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(l=>{this.addFileToGitignore(a,i instanceof _e.TFolder).catch(c=>this.displayError(c))})})),n=="git-source-control"){r.addItem(l=>{l.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(c=>{this.addFileToGitignore(a,i instanceof _e.TFolder).catch(u=>this.displayError(u))})});let o=this.app.vault.adapter;s==="obsidian-git:menu"&&o instanceof _e.FileSystemAdapter&&(r.addItem(l=>{l.setTitle("Open in default app").setIcon("arrow-up-right").setSection("action").onClick(c=>{this.app.openWithDefaultApp(a)})}),r.addItem(l=>{l.setTitle("Show in system explorer").setIcon("arrow-up-right").setSection("action").onClick(c=>{window.electron.shell.showItemInFolder(wD.join(o.getBasePath(),a))})}))}}async migrateSettings(){this.settings.mergeOnPull!=null&&(this.settings.syncMethod=this.settings.mergeOnPull?"merge":"rebase",this.settings.mergeOnPull=void 0,await this.saveSettings()),this.settings.autoCommitMessage===void 0&&(this.settings.autoCommitMessage=this.settings.commitMessage,await this.saveSettings()),this.settings.gitPath!=null&&(this.localStorage.setGitPath(this.settings.gitPath),this.settings.gitPath=void 0,await this.saveSettings()),this.settings.username!=null&&(this.localStorage.setPassword(this.settings.username),this.settings.username=void 0,await this.saveSettings())}unloadPlugin(){var r,i;this.gitReady=!1,this.editorIntegration.onUnloadPlugin(),this.automaticsManager.unload(),(r=this.branchBar)==null||r.remove(),(i=this.statusBar)==null||i.remove(),this.statusBar=void 0,this.branchBar=void 0,this.gitManager.unload(),this.promiseQueue.clear();for(let n of this.intervalsToClear)window.clearInterval(n);this.intervalsToClear=[],this.debRefresh.cancel()}onunload(){this.unloadPlugin(),console.log("unloading "+this.manifest.name+" plugin")}async loadSettings(){let r=await this.loadData();r==null&&(r={showedMobileNotice:!0}),this.settings=ZA(rt,r)}async saveSettings(){var r;(r=this.settingsTab)==null||r.beforeSaveSettings(),await this.saveData(this.settings)}get useSimpleGit(){return _e.Platform.isDesktopApp}async init({fromReload:r=!1}){var i;if(this.settings.showStatusBar&&!this.statusBar){let n=this.addStatusBarItem();this.statusBar=new ip(n,this),this.intervalsToClear.push(window.setInterval(()=>{var s;return(s=this.statusBar)==null?void 0:s.display()},1e3))}try{this.useSimpleGit?(this.gitManager=new Se(this),await this.gitManager.setGitInstance()):this.gitManager=new Di(this);let n=await this.gitManager.checkRequirements(),s=this.localStorage.getPausedAutomatics();switch(n){case"missing-git":this.displayError(`Cannot run git command. Trying to run: '${this.localStorage.getGitPath()||"git"}' .`);break;case"missing-repo":new _e.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo.",1e4);break;case"valid":if(this.gitReady=!0,this.setPluginState({gitAction:0}),_e.Platform.isDesktop&&this.settings.showBranchStatusBar&&!this.branchBar){let a=this.addStatusBarItem();this.branchBar=new pm(a,this),this.intervalsToClear.push(window.setInterval(()=>{var o;return void((o=this.branchBar)==null?void 0:o.display().catch(console.error))},6e4))}await((i=this.branchBar)==null?void 0:i.display()),this.editorIntegration.onReady(),this.app.workspace.trigger("obsidian-git:refresh"),this.app.workspace.trigger("obsidian-git:head-change"),!r&&this.settings.autoPullOnBoot&&!s&&this.promiseQueue.addTask(()=>this.pullChangesFromRemote()),s||await this.automaticsManager.init(),s&&new _e.Notice("Automatic routines are currently paused.");break;default:this.log("Something weird happened. The 'checkRequirements' result is "+n)}}catch(n){this.displayError(n),console.error(n)}}async createNewRepo(){try{await this.gitManager.init(),new _e.Notice("Initialized new repo"),await this.init({fromReload:!0})}catch(r){this.displayError(r)}}async cloneNewRepo(){let i=await new Qe(this,{placeholder:"Enter remote URL"}).openAndGetResult();if(i){let n="Vault Root",s=await new Qe(this,{options:this.gitManager instanceof Di?[n]:[],placeholder:"Enter directory for clone. It needs to be empty or not existent.",allowEmpty:this.gitManager instanceof Di}).openAndGetResult();if(s==null)return;if(s===n&&(s="."),s=(0,_e.normalizePath)(s),s==="/"&&(s="."),s==="."){let f=await new Qe(this,{options:["NO","YES"],placeholder:`Does your remote repo contain a ${this.app.vault.configDir} directory at the root?`,onlySelection:!0}).openAndGetResult();if(f===void 0){new _e.Notice("Aborted clone");return}else if(f==="YES"){let d="DELETE ALL YOUR LOCAL CONFIG AND PLUGINS";if(await new Qe(this,{options:["Abort clone",d],placeholder:`To avoid conflicts, the local ${this.app.vault.configDir} directory needs to be deleted.`,onlySelection:!0}).openAndGetResult()===d)await this.app.vault.adapter.rmdir(this.app.vault.configDir,!0);else{new _e.Notice("Aborted clone");return}}}let a=await new Qe(this,{placeholder:"Specify depth of clone. Leave empty for full clone.",allowEmpty:!0}).openAndGetResult(),o;if(a===void 0){new _e.Notice("Aborted clone");return}if(a!==""&&(o=parseInt(a),isNaN(o))){new _e.Notice("Invalid depth. Aborting clone.");return}new _e.Notice(`Cloning new repo into "${s}"`);let l=this.settings.basePath,c=s&&s!==".";c&&(this.settings.basePath=s);try{await this.gitManager.clone(zw(i),s,o),new _e.Notice("Cloned new repo."),new _e.Notice("Please restart Obsidian"),c&&await this.saveSettings()}catch(u){this.displayError(u),this.settings.basePath=l,await this.saveSettings()}}}async isAllInitialized(){return this.gitReady||await this.init({fromReload:!0}),this.gitReady}async pullChangesFromRemote(){if(!await this.isAllInitialized())return;let r=await this.pull();if(r!==!1){if(r||this.displayMessage("Pull: Everything is up-to-date"),this.gitManager instanceof Se){let i=await this.updateCachedStatus();i.conflicted.length>0&&(this.displayError(`You have conflicts in ${i.conflicted.length} ${i.conflicted.length==1?"file":"files"}`),await this.handleConflict(i.conflicted))}this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0})}}async commitAndSync({fromAutoBackup:r,requestCustomMessage:i=!1,commitMessage:n,onlyStaged:s=!1}){!await this.isAllInitialized()||(this.settings.syncMethod=="reset"&&this.settings.pullBeforePush&&await this.pull(),!await this.commit({fromAuto:r,requestCustomMessage:i,commitMessage:n,onlyStaged:s}))||(this.settings.syncMethod!="reset"&&this.settings.pullBeforePush&&await this.pull(),this.settings.disablePush||(await this.remotesAreSet()&&await this.gitManager.canPush()?await this.push():this.displayMessage("No commits to push")),this.setPluginState({gitAction:0}))}async commit({fromAuto:r,requestCustomMessage:i=!1,onlyStaged:n=!1,commitMessage:s,amend:a=!1}){if(!await this.isAllInitialized())return!1;try{let o=this.localStorage.getConflict(),l,c=[],u=[];if(this.gitManager instanceof Se){if(await this.mayDeleteConflictFile(),l=await this.updateCachedStatus(),l.conflicted.length==0&&(o=!1),r&&l.conflicted.length>0)return this.displayError(`Did not commit, because you have conflicts in ${l.conflicted.length} ${l.conflicted.length==1?"file":"files"}. Please resolve them and commit per command.`),await this.handleConflict(l.conflicted),!1;c=l.staged,u=l.changed}else{if(r&&o)return this.displayError("Did not commit, because you have conflicts. Please resolve them and commit per command."),!1;{o&&await this.mayDeleteConflictFile();let f=this.gitManager;n?c=await f.getStagedFiles():u=(await f.getUnstagedFiles()).map(({path:h,type:m})=>({vaultPath:this.gitManager.getRelativeVaultPath(h),path:h,type:m}))}}if(await this.tools.hasTooBigFiles(n?c:[...c,...u]))return this.setPluginState({gitAction:0}),!1;if(u.length+c.length!==0||o){let f=s!=null?s:s=r?this.settings.autoCommitMessage:this.settings.commitMessage;if(r&&this.settings.customMessageOnAutoBackup||i){!this.settings.disablePopups&&r&&new _e.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort");let m=await new np(this).openAndGetResult();if(m!=null&&m!=""&&m!="...")f=m;else return this.setPluginState({gitAction:0}),!1}else if(this.gitManager instanceof Se&&this.settings.commitMessageScript){let m=this.settings.commitMessageScript,g=this.localStorage.getHostname()||"",v=m.replace("{{hostname}}",g);v=v.replace("{{date}}",(0,_e.moment)().format(this.settings.commitDateFormat));let w=await ku("sh",["-c",v],{cwd:this.gitManager.absoluteRepoPath});w.code!=0?this.displayError(w.stderr):w.stdout.trim().length==0?this.displayMessage("Stdout from commit message script is empty. Using default message."):f=w.stdout}if(!f||f.trim()==="")return new _e.Notice("Commit aborted: No commit message provided"),this.setPluginState({gitAction:0}),!1;let d;n?d=await this.gitManager.commit({message:f,amend:a}):d=await this.gitManager.commitAll({message:f,status:l,unstagedFiles:u,amend:a}),this.gitManager instanceof Se&&await this.updateCachedStatus();let h=!1;d===void 0&&(h=!0,d=u.length+c.length||0),this.displayMessage(`Committed${h?" approx.":""} ${d} ${d==1?"file":"files"}`)}else this.displayMessage("No changes to commit");return this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(o){return this.displayError(o),!1}}async push(){if(!await this.isAllInitialized()||!await this.remotesAreSet())return!1;let r=this.localStorage.getConflict();try{this.gitManager instanceof Se&&await this.mayDeleteConflictFile();let i;if(this.gitManager instanceof Se&&(i=await this.updateCachedStatus()).conflicted.length>0)return this.displayError(`Cannot push. You have conflicts in ${i.conflicted.length} ${i.conflicted.length==1?"file":"files"}`),await this.handleConflict(i.conflicted),!1;if(this.gitManager instanceof Di&&r)return this.displayError("Cannot push. You have conflicts"),!1;this.log("Pushing....");let n=await this.gitManager.push();return n!==void 0&&(n===null?this.displayMessage("Pushed to remote"):n>0?this.displayMessage(`Pushed ${n} ${n==1?"file":"files"} to remote`):this.displayMessage("No commits to push")),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(i){return i instanceof cl?this.handleNoNetworkError(i):this.displayError(i),!1}}async pull(){if(!await this.remotesAreSet())return!1;try{this.log("Pulling....");let r=await this.gitManager.pull()||[];return this.setPluginState({offlineMode:!1}),r.length>0&&(this.displayMessage(`Pulled ${r.length} ${r.length==1?"file":"files"} from remote`),this.lastPulledFiles=r),r.length}catch(r){return this.displayError(r),!1}}async fetch(){if(await this.remotesAreSet())try{await this.gitManager.fetch(),this.displayMessage("Fetched from remote"),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh")}catch(r){this.displayError(r)}}async mayDeleteConflictFile(){let r=this.app.vault.getAbstractFileByPath(al);r&&(this.app.workspace.iterateAllLeaves(i=>{var n;i.view instanceof _e.MarkdownView&&((n=i.view.file)==null?void 0:n.path)==r.path&&i.detach()}),await this.app.vault.delete(r))}async stageFile(r){return await this.isAllInitialized()?(await this.gitManager.stage(r.path,!0),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async unstageFile(r){return await this.isAllInitialized()?(await this.gitManager.unstage(r.path,!0),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async switchBranch(){var n;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo(),i=await new dm(this,r.branches).openAndGetReslt();if(i!=null)return await this.gitManager.checkout(i),this.displayMessage(`Switched to ${i}`),this.app.workspace.trigger("obsidian-git:refresh"),await((n=this.branchBar)==null?void 0:n.display()),i}async switchRemoteBranch(){var s;if(!await this.isAllInitialized())return;let r=await this.selectRemoteBranch()||"",[i,n]=Zn(r);if(n!=null&&i!=null)return await this.gitManager.checkout(n,i),this.displayMessage(`Switched to ${r}`),await((s=this.branchBar)==null?void 0:s.display()),r}async createBranch(){var i;if(!await this.isAllInitialized())return;let r=await new Qe(this,{placeholder:"Create new branch"}).openAndGetResult();if(r!=null)return await this.gitManager.createBranch(r),this.displayMessage(`Created new branch ${r}`),await((i=this.branchBar)==null?void 0:i.display()),r}async deleteBranch(){var n;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo();r.current&&r.branches.remove(r.current);let i=await new Qe(this,{options:r.branches,placeholder:"Delete branch",onlySelection:!0}).openAndGetResult();if(i!=null){let s=!1;if(!await this.gitManager.branchIsMerged(i)){let o=await new Qe(this,{options:["YES","NO"],placeholder:"This branch isn't merged into HEAD. Force delete?",onlySelection:!0}).openAndGetResult();if(o!=="YES")return;s=o==="YES"}return await this.gitManager.deleteBranch(i,s),this.displayMessage(`Deleted branch ${i}`),await((n=this.branchBar)==null?void 0:n.display()),i}}async remotesAreSet(){return this.settings.updateSubmodules||this.gitManager instanceof Se&&await this.gitManager.getConfig("push.autoSetupRemote","all")=="true"||(await this.gitManager.branchInfo()).tracking?!0:(new _e.Notice("No upstream branch is set. Please select one."),await this.setUpstreamBranch())}async setUpstreamBranch(){let r=await this.selectRemoteBranch();return r==null?(this.displayError("Aborted. No upstream-branch is set!",1e4),this.setPluginState({gitAction:0}),!1):(await this.gitManager.updateUpstreamBranch(r),this.displayMessage(`Set upstream branch to ${r}`),this.setPluginState({gitAction:0}),!0)}async discardAll(r){if(!await this.isAllInitialized())return!1;let i=await this.gitManager.status({path:r}),n=0,s=0;for(let o of i.changed)o.workingDir=="U"?n++:s++;if(n+s==0)return!1;let a=await new fc({app:this.app,filesToDeleteCount:n,filesToDiscardCount:s,path:r!=null?r:""}).openAndGetResult();switch(a){case!1:return a;case"discard":await this.gitManager.discardAll({dir:r,status:this.cachedStatus});break;case"delete":{await this.gitManager.discardAll({dir:r,status:this.cachedStatus});let o=await this.gitManager.getUntrackedPaths({path:r,status:this.cachedStatus});for(let l of o){let c=this.gitManager.getRelativeVaultPath(l),u=this.app.vault.getAbstractFileByPath(c);u?await this.app.fileManager.trashFile(u):l.endsWith("/")?await this.app.vault.adapter.rmdir(c,!0):await this.app.vault.adapter.remove(c)}break}default:wh(a)}return this.app.workspace.trigger("obsidian-git:refresh"),a}async handleConflict(r){this.localStorage.setConflict(!0);let i;r!==void 0&&(i=["# Conflicts","Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`","(This file will automatically be deleted before commit)","[[#Additional Instructions]] available below file list","",...r.map(n=>{let s=this.app.vault.getAbstractFileByPath(n);return s instanceof _e.TFile?`- [[${this.app.metadataCache.fileToLinktext(s,"/")}]]`:`- Not a file: ${n}`}),` +`;await this.gitManager.applyPatch(a),this.plugin.app.workspace.trigger("obsidian-git:refresh")}goToHunk(e){if(!this.editor)return;let{editor:r,obEditor:n}=this.editor,i=Gn.getHunks(r.state,!1),s=n.getCursor().line+1,a=Nt.findNearestHunk(s,i,e,!0);if(a==null)return;let o=i[a];if(o){let l=o.added.start-1;n.setCursor(l,0),n.scrollIntoView({from:{line:l,ch:0},to:{line:l+1,ch:0}},!0)}}};p();p();var wo=require("obsidian");var _m=class{constructor(e){this.plg=e;this.codeMirrorExtensions=[];this.handleWorkspaceLeaf=e=>{if(!this.lineAuthorInfoProvider){console.warn("Git: undefined lineAuthorInfoProvider. Unexpected situation.");return}let r=e==null?void 0:e.view;!(r instanceof wo.MarkdownView)||r.file==null||(r==null?void 0:r.allowNoFile)===!0||this.lineAuthorInfoProvider.trackChanged(r.file).catch(console.error)}}onLoadPlugin(){this.plg.registerEditorExtension(this.codeMirrorExtensions),cF(()=>this.plg.settings.lineAuthor,e=>{this.plg.settings.lineAuthor=e,this.plg.saveSettings()})}conditionallyActivateBySettings(){this.plg.settings.lineAuthor.show&&this.activateFeature()}activateFeature(){try{if(!this.isAvailableOnCurrentPlatform().available)return;yF(this.plg.settings.lineAuthor),this.lineAuthorInfoProvider=new ap(this.plg),this.createEventHandlers(),this.activateCodeMirrorExtensions(),console.log(this.plg.manifest.name+": Enabled line authoring.")}catch(e){console.warn("Git: Error while loading line authoring feature.",e),this.deactivateFeature()}}deactivateFeature(){var e;this.destroyEventHandlers(),this.deactivateCodeMirrorExtensions(),(e=this.lineAuthorInfoProvider)==null||e.destroy(),this.lineAuthorInfoProvider=void 0,console.log(this.plg.manifest.name+": Disabled line authoring.")}isAvailableOnCurrentPlatform(){return{available:this.plg.useSimpleGit&&wo.Platform.isDesktopApp,gitManager:this.plg.gitManager instanceof Se?this.plg.gitManager:void 0}}refreshLineAuthorViews(){this.plg.settings.lineAuthor.show&&(this.deactivateFeature(),this.activateFeature())}activateCodeMirrorExtensions(){this.codeMirrorExtensions.push(RF),this.plg.app.workspace.updateOptions(),this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}deactivateCodeMirrorExtensions(){for(let e of this.codeMirrorExtensions)this.codeMirrorExtensions.remove(e);this.plg.app.workspace.updateOptions()}createEventHandlers(){this.gutterContextMenuEvent=this.createGutterContextMenuHandler(),this.fileOpenEvent=this.createFileOpenEvent(),this.workspaceLeafChangeEvent=this.createWorkspaceLeafChangeEvent(),this.fileModificationEvent=this.createVaultFileModificationHandler(),this.headChangeEvent=this.createHeadChangeEvent(),this.refreshOnCssChangeEvent=this.createCssRefreshHandler(),this.fileRenameEvent=this.createFileRenameEvent(),pF(),this.plg.registerEvent(this.gutterContextMenuEvent),this.plg.registerEvent(this.refreshOnCssChangeEvent),this.plg.registerEvent(this.fileOpenEvent),this.plg.registerEvent(this.workspaceLeafChangeEvent),this.plg.registerEvent(this.fileModificationEvent),this.plg.registerEvent(this.headChangeEvent),this.plg.registerEvent(this.fileRenameEvent)}destroyEventHandlers(){this.plg.app.workspace.offref(this.gutterContextMenuEvent),this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.workspace.offref(this.fileOpenEvent),this.plg.app.workspace.offref(this.workspaceLeafChangeEvent),this.plg.app.workspace.offref(this.refreshOnCssChangeEvent),this.plg.app.vault.offref(this.fileModificationEvent),this.plg.app.workspace.offref(this.headChangeEvent),this.plg.app.vault.offref(this.fileRenameEvent)}createFileOpenEvent(){return this.plg.app.workspace.on("file-open",e=>{var r;return void((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(e).catch(console.error))})}createWorkspaceLeafChangeEvent(){return this.plg.app.workspace.on("active-leaf-change",this.handleWorkspaceLeaf)}createFileRenameEvent(){return this.plg.app.vault.on("rename",(e,r)=>{var n;return e instanceof wo.TFile&&((n=this.lineAuthorInfoProvider)==null?void 0:n.trackChanged(e))})}createVaultFileModificationHandler(){return this.plg.app.vault.on("modify",e=>{var r;return e instanceof wo.TFile&&((r=this.lineAuthorInfoProvider)==null?void 0:r.trackChanged(e))})}createHeadChangeEvent(){return this.plg.app.workspace.on("obsidian-git:head-change",()=>{this.refreshLineAuthorViews()})}createCssRefreshHandler(){return this.plg.app.workspace.on("css-change",()=>this.refreshLineAuthorViews())}createGutterContextMenuHandler(){return this.plg.app.workspace.on("editor-menu",vF)}};p();var wc=require("obsidian");p();p();var yo=require("@codemirror/state"),Sm=require("@codemirror/view");var xm=class extends Sm.GutterMarker{constructor(r,n){super();this.type=r;this.staged=n}toDOM(r){let n=document.createElement("div");return n.className=`git-gutter-marker git-${this.type} ${this.staged?"staged":"unstaged"}`,this.type=="changedelete"&&n.setText("~"),n}},Ib=yo.StateField.define({create:()=>yo.RangeSet.empty,update:(t,e)=>{let r=e.state.field($r,!1);if(!r)return yo.RangeSet.empty;let n=e.effects.some(s=>s.is(Vu)),i=e.effects.some(s=>s.is(Hl));if(n||i||(e.docChanged||t.size==0)&&r.isDirty==!1){let s=new Set,a=CD(e,r.hunks,!1,s),o=CD(e,r.stagedHunks,!0,s);return t=yo.RangeSet.of([...a,...o],!0),t}else e.docChanged&&(t=t.map(e.changes));return t}});function CD(t,e,r,n){let i=[];for(let a=0;a0?e[a-1]:void 0,l=a{var e;return(e=t.state.field(Ib,!1))!=null?e:yo.RangeSet.empty},initialSpacer:t=>new xm("delete",!1),domEventHandlers:{click:(t,e,r)=>{var i;return((i=Gn.getHunkAtPos(t.state,e.from,!1))!=null?i:Gn.getHunkAtPos(t.state,e.from,!0))&&(Xs(t,e.from),r.preventDefault()),!1}}});var Em=class{constructor(e){this.plugin=e}async trackChanged(e){return this.trackChangedHelper(e).catch(r=>(console.warn("Git: Error in trackChanged."+r),Promise.reject(r)))}async trackChangedHelper(e){if(e){if(e.path===void 0){console.warn("Git: Attempted to track change of undefined filepath. Unforeseen situation.");return}return this.computeSigns(e.path)}}destroy(){}async computeSigns(e){let n=await this.plugin.editorIntegration.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager.show("",e).catch(()=>{});this.notifySignComputationResultToSubscribers(e,{compareText:n,compareTextHead:void 0})}notifySignComputationResultToSubscribers(e,r){es.ifFilepathDefinedTransformSubscribers(e,n=>n.forEach(i=>i.notifyGitCompare(r)))}},PD=[GO,jO,TD,Ib,Tp],RD=[$r,yy];p();var Fb=require("obsidian"),km=class{constructor(e,r){this.statusBarEl=e;this.plugin=r;e.addClass("git-changes-status-bar"),r.settings.hunks.statusBar==="colored"&&e.addClass("git-changes-status-bar-colored"),e.setAttr("aria-label","Git diff of the current editor"),this.statusBarEl.setAttribute("data-tooltip-position","top"),r.app.workspace.on("active-leaf-change",n=>{(!n||n.getRoot()==r.app.workspace.rootSplit&&!(n.view instanceof Fb.MarkdownView))&&this.statusBarEl.empty()})}display(e,r){var o;let n=this.plugin.app.workspace.getActiveViewOfType(Fb.MarkdownView);if(!n||((o=n.file)==null?void 0:o.path)!==(r==null?void 0:r.path))return;let i=0,s=0,a=0;for(let l of e)i+=Math.max(0,l.added.count-l.removed.count),s+=Math.min(l.added.count,l.removed.count),a+=Math.max(0,l.removed.count-l.added.count);this.statusBarEl.empty(),i>0&&this.statusBarEl.createSpan({text:`+${i} `,cls:"git-add"}),s>0&&this.statusBarEl.createSpan({text:`~${s} `,cls:"git-change"}),a>0&&this.statusBarEl.createSpan({text:`-${a}`,cls:"git-delete"})}remove(){this.statusBarEl.remove()}};var Am=class{constructor(e){this.plg=e;this.codeMirrorExtensions=[];this.handleWorkspaceLeaf=e=>{if(!this.signsProvider){console.warn("Git: undefined signsProvider. Unexpected situation.");return}let r=e==null?void 0:e.view;!(r instanceof wc.MarkdownView)||r.file==null||(r==null?void 0:r.allowNoFile)===!0||this.signsProvider.trackChanged(r.file).catch(console.error)}}onLoadPlugin(){this.plg.registerEditorExtension(this.codeMirrorExtensions)}conditionallyActivateBySettings(){(this.plg.settings.hunks.showSigns||this.plg.settings.hunks.statusBar!="disabled"||this.plg.settings.hunks.hunkCommands)&&this.activateFeature()}activateFeature(){try{if(!this.isAvailableOnCurrentPlatform().available)return;if(this.signsProvider=new Em(this.plg),this.createEventHandlers(),this.activateCodeMirrorExtensions(),this.plg.settings.hunks.statusBar!="disabled"){let e=this.plg.addStatusBarItem();this.changeStatusBar=new km(e,this.plg)}}catch(e){console.warn("Git: Error while loading signs feature.",e),this.deactivateFeature()}}deactivateFeature(){var e,r;this.destroyEventHandlers(),this.deactivateCodeMirrorExtensions(),(e=this.signsProvider)==null||e.destroy(),this.signsProvider=void 0,(r=this.changeStatusBar)==null||r.remove(),this.changeStatusBar=void 0}isAvailableOnCurrentPlatform(){return{available:this.plg.useSimpleGit&&wc.Platform.isDesktopApp,gitManager:this.plg.gitManager instanceof Se?this.plg.gitManager:void 0}}refresh(){this.plg.settings.hunks.showSigns&&this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}activateCodeMirrorExtensions(){this.codeMirrorExtensions.push(RD),this.plg.settings.hunks.showSigns&&this.codeMirrorExtensions.push(...PD),this.plg.app.workspace.updateOptions(),this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf)}deactivateCodeMirrorExtensions(){for(let e of this.codeMirrorExtensions)this.codeMirrorExtensions.remove(e);this.plg.app.workspace.updateOptions()}createEventHandlers(){this.workspaceLeafChangeEvent=this.createWorkspaceLeafChangeEvent(),this.fileRenameEvent=this.createFileRenameEvent(),this.pluginRefreshedEvent=this.createPluginRefreshedEvent(),this.intervalRefreshEvent=this.createIntervalRefreshEvent(),this.plg.registerEvent(this.workspaceLeafChangeEvent),this.plg.registerEvent(this.fileRenameEvent),this.plg.registerEvent(this.pluginRefreshedEvent),this.plg.registerInterval(this.intervalRefreshEvent)}destroyEventHandlers(){this.plg.app.workspace.offref(this.workspaceLeafChangeEvent),this.plg.app.vault.offref(this.fileRenameEvent),this.plg.app.workspace.offref(this.pluginRefreshedEvent),this.plg.app.workspace.offref(this.gutterContextMenuEvent),window.clearInterval(this.intervalRefreshEvent)}createWorkspaceLeafChangeEvent(){return this.plg.app.workspace.on("active-leaf-change",this.handleWorkspaceLeaf)}createFileRenameEvent(){return this.plg.app.vault.on("rename",(e,r)=>{var n;return es.ifFilepathDefinedTransformSubscribers(r,i=>i.forEach(s=>{s.changeToNewFilepath(e.path)})),e instanceof wc.TFile&&((n=this.signsProvider)==null?void 0:n.trackChanged(e))})}createPluginRefreshedEvent(){return this.plg.app.workspace.on("obsidian-git:refresh",()=>{this.refresh()})}createIntervalRefreshEvent(){return window.setInterval(()=>{var e,r;(e=this.plg.app.workspace.activeEditor)!=null&&e.file&&((r=this.signsProvider)==null||r.trackChanged(this.plg.app.workspace.activeEditor.file).catch(console.error))},10*1e3)}};p();var $D=require("@codemirror/state"),Cm=require("obsidian");var Ob=class{constructor(e){this.state=e;this.subscribeMe()}notifyLineAuthoring(e,r){if(this.view===void 0){console.warn(`Git: View is not defined for editor cache key. Unforeseen situation. id: ${e}`);return}let n=this.view.state,i=lF(e,r,n);this.view.dispatch(i)}notifyGitCompare(e){if(this.view===void 0){console.warn("Git: View is not defined for editor cache key. Unforeseen situation. id: ");return}if(this.removeIfStale())return;let r=this.view.state,n=r.field($r);if(!n||n.compareText!=e.compareText||n.compareTextHead!=e.compareTextHead){let i=_O(e,r);this.view.dispatch(i)}}updateToNewState(e){return this.state=e,!this.lastSeenPath&&this.filepath&&this.subscribeMe(),this}removeIfStale(){var e;return((e=this.view)==null?void 0:e.state.field(Mb,!1))!=this||this.view.destroyed?(this.unsubscribeMe(this.lastSeenPath),!0):!1}changeToNewFilepath(e){this.unsubscribeMe(this.lastSeenPath),this.subscribeMe(e)}subscribeMe(e){e!=null||(e=this.filepath),e!==void 0&&(es.ifFilepathDefinedTransformSubscribers(e,r=>r.add(this)),this.lastSeenPath=e)}unsubscribeMe(e){es.ifFilepathDefinedTransformSubscribers(e,r=>r.delete(this))}get filepath(){var e,r;return(r=(e=this.state.field(Cm.editorInfoField))==null?void 0:e.file)==null?void 0:r.path}get view(){return this.state.field(Cm.editorEditorField)}},Mb=$D.StateField.define({create:t=>new Ob(t),update:(t,e)=>t.updateToNewState(e.state),compare:(t,e)=>t===e});var Tm=class{constructor(e){this.plg=e;this.lineAuthoringFeature=new _m(this.plg);this.signsFeature=new Am(this.plg)}onUnloadPlugin(){this.lineAuthoringFeature.deactivateFeature(),this.signsFeature.deactivateFeature()}onLoadPlugin(){this.plg.registerEditorExtension(Mb),this.lineAuthoringFeature.onLoadPlugin(),this.signsFeature.onLoadPlugin()}onReady(){this.lineAuthoringFeature.conditionallyActivateBySettings(),this.signsFeature.conditionallyActivateBySettings()}activateLineAuthoring(){this.lineAuthoringFeature.activateFeature()}deactiveLineAuthoring(){this.lineAuthoringFeature.deactivateFeature()}refreshSignsSettings(){let e=this.plg.settings.hunks;e.showSigns||e.statusBar!="disabled"||e.hunkCommands?(this.signsFeature.deactivateFeature(),this.signsFeature.activateFeature()):this.signsFeature.deactivateFeature()}};var Pm=class extends be.Plugin{constructor(){super(...arguments);this.automaticsManager=new Gu(this);this.tools=new ef(this);this.localStorage=new Pp(this);this.state={gitAction:0,offlineMode:!1};this.gitReady=!1;this.promiseQueue=new Gd(this);this.intervalsToClear=[];this.editorIntegration=new Tm(this);this.hunkActions=new bm(this)}setPluginState(r){var n;this.state=Object.assign(this.state,r),(n=this.statusBar)==null||n.display()}async updateCachedStatus(){var r,n;return this.app.workspace.trigger("obsidian-git:loading-status"),this.cachedStatus=await this.gitManager.status(),this.cachedStatus.conflicted.length>0?(this.localStorage.setConflict(!0),await((r=this.branchBar)==null?void 0:r.display())):(this.localStorage.setConflict(!1),await((n=this.branchBar)==null?void 0:n.display())),this.app.workspace.trigger("obsidian-git:status-changed",this.cachedStatus),this.cachedStatus}async refresh(){if(!this.gitReady)return;let r=this.app.workspace.getLeavesOfType(jt.type),n=this.app.workspace.getLeavesOfType(gn.type);(this.settings.changedFilesInStatusBar||r.some(i=>{var s;return!((s=i.isDeferred)!=null&&s)})||n.some(i=>{var s;return!((s=i.isDeferred)!=null&&s)}))&&await this.updateCachedStatus().catch(i=>this.displayError(i)),this.app.workspace.trigger("obsidian-git:refreshed")}refreshUpdatedHead(){}async onload(){console.log("loading "+this.manifest.name+" plugin: v"+this.manifest.version),Ln.plugin=this,this.localStorage.migrate(),await this.loadSettings(),await this.migrateSettings(),this.settingsTab=new op(this.app,this),this.addSettingTab(this.settingsTab),this.localStorage.getPluginDisabled()||(this.registerStuff(),this.app.workspace.onLayoutReady(()=>this.init({fromReload:!1}).catch(r=>this.displayError(r))))}onExternalSettingsChange(){this.reloadSettings().catch(r=>this.displayError(r))}async reloadSettings(){let r=JSON.stringify(this.settings);await this.loadSettings();let n=JSON.stringify(this.settings);r!==n&&(this.log("Reloading settings"),this.unloadPlugin(),await this.init({fromReload:!0}),this.app.workspace.getLeavesOfType(jt.type).forEach(i=>{var s;if(!((s=i.isDeferred)!=null&&s))return i.view.reload()}),this.app.workspace.getLeavesOfType(gn.type).forEach(i=>{var s;if(!((s=i.isDeferred)!=null&&s))return i.view.reload()}))}registerStuff(){this.registerEvent(this.app.workspace.on("obsidian-git:refresh",()=>{this.refresh().catch(r=>this.displayError(r))})),this.registerEvent(this.app.workspace.on("obsidian-git:head-change",()=>{this.refreshUpdatedHead()})),this.registerEvent(this.app.workspace.on("file-menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"file-manu")})),this.registerEvent(this.app.workspace.on("obsidian-git:menu",(r,n,i)=>{this.handleFileMenu(r,n,i,"obsidian-git:menu")})),this.registerEvent(this.app.workspace.on("active-leaf-change",r=>{this.onActiveLeafChange(r)})),this.registerEvent(this.app.vault.on("modify",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("delete",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("create",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerEvent(this.app.vault.on("rename",()=>{var r;this.debRefresh(),(r=this.autoCommitDebouncer)==null||r.call(this)})),this.registerView(jt.type,r=>new Pf(r,this)),this.registerView(gn.type,r=>new Ef(r,this)),this.registerView(Bs.type,r=>new Wa(r,this)),this.registerView(Ns.type,r=>new za(r,this)),this.addRibbonIcon("git-pull-request","Open Git source control",async()=>{var i;let r=this.app.workspace.getLeavesOfType(jt.type),n;r.length===0?(n=(i=this.app.workspace.getRightLeaf(!1))!=null?i:this.app.workspace.getLeaf(),await n.setViewState({type:jt.type})):n=r.first(),await this.app.workspace.revealLeaf(n)}),this.registerHoverLinkSource(jt.type,{display:"Git View",defaultMod:!0}),this.editorIntegration.onLoadPlugin(),this.setRefreshDebouncer(),qO(this)}setRefreshDebouncer(){var r;(r=this.debRefresh)==null||r.cancel(),this.debRefresh=(0,be.debounce)(()=>{this.settings.refreshSourceControl&&this.refresh().catch(console.error)},this.settings.refreshSourceControlTimer,!0)}async addFileToGitignore(r,n){let i=this.gitManager.getRelativeRepoPath(r,!0),s=eR({isFolder:n,gitRelativePath:i});await this.app.vault.adapter.append(this.gitManager.getRelativeVaultPath(".gitignore"),` +`+s),this.app.workspace.trigger("obsidian-git:refresh")}handleFileMenu(r,n,i,s){if(!this.gitReady||!this.settings.showFileMenu||!n)return;let a;if(typeof n=="string"?a=n:a=n.path,i=="file-explorer-context-menu"&&(r.addItem(o=>{o.setTitle("Git: Stage").setIcon("plus-circle").setSection("action").onClick(l=>{this.promiseQueue.addTask(async()=>{n instanceof be.TFile?await this.stageFile(n):(await this.gitManager.stageAll({dir:this.gitManager.getRelativeRepoPath(a,!0)}),this.app.workspace.trigger("obsidian-git:refresh"))})})}),r.addItem(o=>{o.setTitle("Git: Unstage").setIcon("minus-circle").setSection("action").onClick(l=>{this.promiseQueue.addTask(async()=>{n instanceof be.TFile?await this.unstageFile(n):(await this.gitManager.unstageAll({dir:this.gitManager.getRelativeRepoPath(a,!0)}),this.app.workspace.trigger("obsidian-git:refresh"))})})}),r.addItem(o=>{o.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(l=>{this.addFileToGitignore(a,n instanceof be.TFolder).catch(c=>this.displayError(c))})})),i=="git-source-control"){r.addItem(l=>{l.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(c=>{this.addFileToGitignore(a,n instanceof be.TFolder).catch(u=>this.displayError(u))})});let o=this.app.vault.adapter;s==="obsidian-git:menu"&&o instanceof be.FileSystemAdapter&&(r.addItem(l=>{l.setTitle("Open in default app").setIcon("arrow-up-right").setSection("action").onClick(c=>{this.app.openWithDefaultApp(a)})}),r.addItem(l=>{l.setTitle("Show in system explorer").setIcon("arrow-up-right").setSection("action").onClick(c=>{window.electron.shell.showItemInFolder(FD.join(o.getBasePath(),a))})}))}}async migrateSettings(){this.settings.mergeOnPull!=null&&(this.settings.syncMethod=this.settings.mergeOnPull?"merge":"rebase",this.settings.mergeOnPull=void 0,await this.saveSettings()),this.settings.autoCommitMessage===void 0&&(this.settings.autoCommitMessage=this.settings.commitMessage,await this.saveSettings()),this.settings.gitPath!=null&&(this.localStorage.setGitPath(this.settings.gitPath),this.settings.gitPath=void 0,await this.saveSettings()),this.settings.username!=null&&(this.localStorage.setPassword(this.settings.username),this.settings.username=void 0,await this.saveSettings())}unloadPlugin(){var r,n;this.gitReady=!1,this.editorIntegration.onUnloadPlugin(),this.automaticsManager.unload(),(r=this.branchBar)==null||r.remove(),(n=this.statusBar)==null||n.remove(),this.statusBar=void 0,this.branchBar=void 0,this.gitManager.unload(),this.promiseQueue.clear();for(let i of this.intervalsToClear)window.clearInterval(i);this.intervalsToClear=[],this.debRefresh.cancel()}onunload(){this.unloadPlugin(),console.log("unloading "+this.manifest.name+" plugin")}async loadSettings(){let r=await this.loadData();r==null&&(r={showedMobileNotice:!0}),this.settings=sC(et,r)}async saveSettings(){var r;(r=this.settingsTab)==null||r.beforeSaveSettings(),await this.saveData(this.settings)}get useSimpleGit(){return be.Platform.isDesktopApp}async init({fromReload:r=!1}){var n;if(this.settings.showStatusBar&&!this.statusBar){let i=this.addStatusBarItem();this.statusBar=new lp(i,this),this.intervalsToClear.push(window.setInterval(()=>{var s;return(s=this.statusBar)==null?void 0:s.display()},1e3))}try{this.useSimpleGit?(this.gitManager=new Se(this),await this.gitManager.setGitInstance()):this.gitManager=new Hn(this);let i=await this.gitManager.checkRequirements(),s=this.localStorage.getPausedAutomatics();switch(i){case"missing-git":this.displayError(`Cannot run git command. Trying to run: '${this.localStorage.getGitPath()||"git"}' .`);break;case"missing-repo":new be.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo.",1e4);break;case"valid":if(this.gitReady=!0,this.setPluginState({gitAction:0}),be.Platform.isDesktop&&this.settings.showBranchStatusBar&&!this.branchBar){let a=this.addStatusBarItem();this.branchBar=new ym(a,this),this.intervalsToClear.push(window.setInterval(()=>{var o;return void((o=this.branchBar)==null?void 0:o.display().catch(console.error))},6e4))}await((n=this.branchBar)==null?void 0:n.display()),this.editorIntegration.onReady(),this.app.workspace.trigger("obsidian-git:refresh"),this.app.workspace.trigger("obsidian-git:head-change"),!r&&this.settings.autoPullOnBoot&&!s&&this.promiseQueue.addTask(()=>this.pullChangesFromRemote()),s||await this.automaticsManager.init(),s&&new be.Notice("Automatic routines are currently paused.");break;default:this.log("Something weird happened. The 'checkRequirements' result is "+i)}}catch(i){this.displayError(i),console.error(i)}}async createNewRepo(){try{await this.gitManager.init(),new be.Notice("Initialized new repo"),await this.init({fromReload:!0})}catch(r){this.displayError(r)}}async cloneNewRepo(){let n=await new Ze(this,{placeholder:"Enter remote URL"}).openAndGetResult();if(n){let i="Vault Root",s=await new Ze(this,{options:this.gitManager instanceof Hn?[i]:[],placeholder:"Enter directory for clone. It needs to be empty or not existent.",allowEmpty:this.gitManager instanceof Hn}).openAndGetResult();if(s==null)return;if(s===i&&(s="."),s=(0,be.normalizePath)(s),s==="/"&&(s="."),s==="."){let f=await new Ze(this,{options:["NO","YES"],placeholder:`Does your remote repo contain a ${this.app.vault.configDir} directory at the root?`,onlySelection:!0}).openAndGetResult();if(f===void 0){new be.Notice("Aborted clone");return}else if(f==="YES"){let d="DELETE ALL YOUR LOCAL CONFIG AND PLUGINS";if(await new Ze(this,{options:["Abort clone",d],placeholder:`To avoid conflicts, the local ${this.app.vault.configDir} directory needs to be deleted.`,onlySelection:!0}).openAndGetResult()===d)await this.app.vault.adapter.rmdir(this.app.vault.configDir,!0);else{new be.Notice("Aborted clone");return}}}let a=await new Ze(this,{placeholder:"Specify depth of clone. Leave empty for full clone.",allowEmpty:!0}).openAndGetResult(),o;if(a===void 0){new be.Notice("Aborted clone");return}if(a!==""&&(o=parseInt(a),isNaN(o))){new be.Notice("Invalid depth. Aborting clone.");return}new be.Notice(`Cloning new repo into "${s}"`);let l=this.settings.basePath,c=s&&s!==".";c&&(this.settings.basePath=s);try{await this.gitManager.clone(Kw(n),s,o),new be.Notice("Cloned new repo."),new be.Notice("Please restart Obsidian"),c&&await this.saveSettings()}catch(u){this.displayError(u),this.settings.basePath=l,await this.saveSettings()}}}async isAllInitialized(){return this.gitReady||await this.init({fromReload:!0}),this.gitReady}async pullChangesFromRemote(){if(!await this.isAllInitialized())return;let r=await this.pull();if(r!==!1){if(r||this.displayMessage("Pull: Everything is up-to-date"),this.gitManager instanceof Se){let n=await this.updateCachedStatus();n.conflicted.length>0&&(this.displayError(`You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted))}this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0})}}async commitAndSync({fromAutoBackup:r,requestCustomMessage:n=!1,commitMessage:i,onlyStaged:s=!1}){!await this.isAllInitialized()||(this.settings.syncMethod=="reset"&&this.settings.pullBeforePush&&await this.pull(),!await this.commit({fromAuto:r,requestCustomMessage:n,commitMessage:i,onlyStaged:s}))||(this.settings.syncMethod!="reset"&&this.settings.pullBeforePush&&await this.pull(),this.settings.disablePush||(await this.remotesAreSet()&&await this.gitManager.canPush()?await this.push():this.displayMessage("No commits to push")),this.setPluginState({gitAction:0}))}async commit({fromAuto:r,requestCustomMessage:n=!1,onlyStaged:i=!1,commitMessage:s,amend:a=!1}){if(!await this.isAllInitialized())return!1;try{let o=this.localStorage.getConflict(),l,c=[],u=[];if(this.gitManager instanceof Se){if(await this.mayDeleteConflictFile(),l=await this.updateCachedStatus(),l.conflicted.length==0&&(o=!1),r&&l.conflicted.length>0)return this.displayError(`Did not commit, because you have conflicts in ${l.conflicted.length} ${l.conflicted.length==1?"file":"files"}. Please resolve them and commit per command.`),await this.handleConflict(l.conflicted),!1;c=l.staged,u=l.changed}else{if(r&&o)return this.displayError("Did not commit, because you have conflicts. Please resolve them and commit per command."),!1;{o&&await this.mayDeleteConflictFile();let f=this.gitManager;i?c=await f.getStagedFiles():u=(await f.getUnstagedFiles()).map(({path:h,type:m})=>({vaultPath:this.gitManager.getRelativeVaultPath(h),path:h,type:m}))}}if(await this.tools.hasTooBigFiles(i?c:[...c,...u]))return this.setPluginState({gitAction:0}),!1;if(u.length+c.length!==0||o){let f=s!=null?s:s=r?this.settings.autoCommitMessage:this.settings.commitMessage;if(r&&this.settings.customMessageOnAutoBackup||n){!this.settings.disablePopups&&r&&new be.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort");let m=await new cp(this).openAndGetResult();if(m!=null&&m!=""&&m!="...")f=m;else return this.setPluginState({gitAction:0}),!1}else if(this.gitManager instanceof Se&&this.settings.commitMessageScript){let m=this.settings.commitMessageScript,g=this.localStorage.getHostname()||"",v=m.replace("{{hostname}}",g);v=v.replace("{{date}}",(0,be.moment)().format(this.settings.commitDateFormat));let w="sh";if(be.Platform.isWin){w=process.env.PROGRAMFILES+"\\Git\\bin\\sh.exe";let k=!1;try{await Rm.access(w,Rm.constants.X_OK),k=!0}catch(x){k=!1}if(!k)return this.displayError(`Cannot find sh.exe at ${w}. Please make sure Git is properly installed.`),!1}let b=await $u(w,["-c",v],{cwd:this.gitManager.absoluteRepoPath});b.code!=0?this.displayError(b.stderr):b.stdout.trim().length==0?this.displayMessage("Stdout from commit message script is empty. Using default message."):f=b.stdout}if(!f||f.trim()==="")return new be.Notice("Commit aborted: No commit message provided"),this.setPluginState({gitAction:0}),!1;let d;i?d=await this.gitManager.commit({message:f,amend:a}):d=await this.gitManager.commitAll({message:f,status:l,unstagedFiles:u,amend:a}),this.gitManager instanceof Se&&await this.updateCachedStatus();let h=!1;d===void 0&&(h=!0,d=u.length+c.length||0),this.displayMessage(`Committed${h?" approx.":""} ${d} ${d==1?"file":"files"}`)}else this.displayMessage("No changes to commit");return this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(o){return this.displayError(o),!1}}async push(){if(!await this.isAllInitialized()||!await this.remotesAreSet())return!1;let r=this.localStorage.getConflict();try{this.gitManager instanceof Se&&await this.mayDeleteConflictFile();let n;if(this.gitManager instanceof Se&&(n=await this.updateCachedStatus()).conflicted.length>0)return this.displayError(`Cannot push. You have conflicts in ${n.conflicted.length} ${n.conflicted.length==1?"file":"files"}`),await this.handleConflict(n.conflicted),!1;if(this.gitManager instanceof Hn&&r)return this.displayError("Cannot push. You have conflicts"),!1;this.log("Pushing....");let i=await this.gitManager.push();return i!==void 0&&(i===null?this.displayMessage("Pushed to remote"):i>0?this.displayMessage(`Pushed ${i} ${i==1?"file":"files"} to remote`):this.displayMessage("No commits to push")),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh"),!0}catch(n){return n instanceof ul?this.handleNoNetworkError(n):this.displayError(n),!1}}async pull(){if(!await this.remotesAreSet())return!1;try{this.log("Pulling....");let r=await this.gitManager.pull()||[];return this.setPluginState({offlineMode:!1}),r.length>0&&(this.displayMessage(`Pulled ${r.length} ${r.length==1?"file":"files"} from remote`),this.lastPulledFiles=r),r.length}catch(r){return this.displayError(r),!1}}async fetch(){if(await this.remotesAreSet())try{await this.gitManager.fetch(),this.displayMessage("Fetched from remote"),this.setPluginState({offlineMode:!1}),this.app.workspace.trigger("obsidian-git:refresh")}catch(r){this.displayError(r)}}async mayDeleteConflictFile(){let r=this.app.vault.getAbstractFileByPath(ol);r&&(this.app.workspace.iterateAllLeaves(n=>{var i;n.view instanceof be.MarkdownView&&((i=n.view.file)==null?void 0:i.path)==r.path&&n.detach()}),await this.app.vault.delete(r))}async stageFile(r){return await this.isAllInitialized()?(await this.gitManager.stage(r.path,!0),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async unstageFile(r){return await this.isAllInitialized()?(await this.gitManager.unstage(r.path,!0),this.app.workspace.trigger("obsidian-git:refresh"),this.setPluginState({gitAction:0}),!0):!1}async switchBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo(),n=await new vm(this,r.branches).openAndGetReslt();if(n!=null)return await this.gitManager.checkout(n),this.displayMessage(`Switched to ${n}`),this.app.workspace.trigger("obsidian-git:refresh"),await((i=this.branchBar)==null?void 0:i.display()),n}async switchRemoteBranch(){var s;if(!await this.isAllInitialized())return;let r=await this.selectRemoteBranch()||"",[n,i]=Qi(r);if(i!=null&&n!=null)return await this.gitManager.checkout(i,n),this.displayMessage(`Switched to ${r}`),await((s=this.branchBar)==null?void 0:s.display()),r}async createBranch(){var n;if(!await this.isAllInitialized())return;let r=await new Ze(this,{placeholder:"Create new branch"}).openAndGetResult();if(r!=null)return await this.gitManager.createBranch(r),this.displayMessage(`Created new branch ${r}`),await((n=this.branchBar)==null?void 0:n.display()),r}async deleteBranch(){var i;if(!await this.isAllInitialized())return;let r=await this.gitManager.branchInfo();r.current&&r.branches.remove(r.current);let n=await new Ze(this,{options:r.branches,placeholder:"Delete branch",onlySelection:!0}).openAndGetResult();if(n!=null){let s=!1;if(!await this.gitManager.branchIsMerged(n)){let o=await new Ze(this,{options:["YES","NO"],placeholder:"This branch isn't merged into HEAD. Force delete?",onlySelection:!0}).openAndGetResult();if(o!=="YES")return;s=o==="YES"}return await this.gitManager.deleteBranch(n,s),this.displayMessage(`Deleted branch ${n}`),await((i=this.branchBar)==null?void 0:i.display()),n}}async remotesAreSet(){return this.settings.updateSubmodules||this.gitManager instanceof Se&&await this.gitManager.getConfig("push.autoSetupRemote","all")=="true"||(await this.gitManager.branchInfo()).tracking?!0:(new be.Notice("No upstream branch is set. Please select one."),await this.setUpstreamBranch())}async setUpstreamBranch(){let r=await this.selectRemoteBranch();return r==null?(this.displayError("Aborted. No upstream-branch is set!",1e4),this.setPluginState({gitAction:0}),!1):(await this.gitManager.updateUpstreamBranch(r),this.displayMessage(`Set upstream branch to ${r}`),this.setPluginState({gitAction:0}),!0)}async discardAll(r){if(!await this.isAllInitialized())return!1;let n=await this.gitManager.status({path:r}),i=0,s=0;for(let o of n.changed)o.workingDir=="U"?i++:s++;if(i+s==0)return!1;let a=await new vc({app:this.app,filesToDeleteCount:i,filesToDiscardCount:s,path:r!=null?r:""}).openAndGetResult();switch(a){case!1:return a;case"discard":await this.gitManager.discardAll({dir:r,status:this.cachedStatus});break;case"delete":{await this.gitManager.discardAll({dir:r,status:this.cachedStatus});let o=await this.gitManager.getUntrackedPaths({path:r,status:this.cachedStatus});for(let l of o){let c=this.gitManager.getRelativeVaultPath(l),u=this.app.vault.getAbstractFileByPath(c);u?await this.app.fileManager.trashFile(u):l.endsWith("/")?await this.app.vault.adapter.rmdir(c,!0):await this.app.vault.adapter.remove(c)}break}default:Eh(a)}return this.app.workspace.trigger("obsidian-git:refresh"),a}async handleConflict(r){this.localStorage.setConflict(!0);let n;r!==void 0&&(n=["# Conflicts","Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`","(This file will automatically be deleted before commit)","[[#Additional Instructions]] available below file list","",...r.map(i=>{let s=this.app.vault.getAbstractFileByPath(i);return s instanceof be.TFile?`- [[${this.app.metadataCache.fileToLinktext(s,"/")}]]`:`- Not a file: ${i}`}),` # Additional Instructions I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. @@ -410,8 +410,8 @@ I strongly recommend to use "Source mode" for viewing the conflicted files. For ======= File changes in remote repository >>>>>>> origin/main -\`\`\``]),await this.tools.writeAndOpenFile(i==null?void 0:i.join(` -`))}async editRemotes(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),n=await new Qe(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}).openAndGetResult();if(n){let s=await this.gitManager.getRemoteUrl(n),o=await new Qe(this,{initialValue:s,placeholder:"Enter remote URL"}).openAndGetResult();if(o)return await this.gitManager.setRemote(n,zw(o)),n}}async selectRemoteBranch(){let r=await this.gitManager.getRemotes(),i;r.length===0&&(i=await this.editRemotes(),i==null&&(r=await this.gitManager.getRemotes()));let n=new Qe(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}),s=i!=null?i:await n.openAndGetResult();if(s){this.displayMessage("Fetching remote branches"),await this.gitManager.fetch(s);let a=await this.gitManager.getRemoteBranches(s),l=await new Qe(this,{options:a,placeholder:"Select or create a new remote branch by typing its name and selecting it"}).openAndGetResult();return l==null?void 0:l.startsWith(s+"/")?l:`${s}/${l}`}}async removeRemote(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),n=await new Qe(this,{options:r,placeholder:"Select a remote"}).openAndGetResult();n&&await this.gitManager.removeRemote(n)}onActiveLeafChange(r){var a,o;let i=r==null?void 0:r.view;if(!(i!=null&&i.getState().file)&&!(i instanceof qa||i instanceof za))return;let n=this.app.workspace.getLeavesOfType(zt.type).first(),s=this.app.workspace.getLeavesOfType(gi.type).first();if((a=n==null?void 0:n.view.containerEl.querySelector("div.tree-item-self.is-active"))==null||a.removeClass("is-active"),(o=s==null?void 0:s.view.containerEl.querySelector("div.tree-item-self.is-active"))==null||o.removeClass("is-active"),(r==null?void 0:r.view)instanceof qa||(r==null?void 0:r.view)instanceof za){let c=r.view.state.bFile.replace(/["\\]/g,"\\$&");this.lastDiffViewState=r.view.getState();let u;n&&r.view.state.aRef=="HEAD"?u=n.view.containerEl.querySelector(`div.staged div.tree-item-self[data-path="${c}"]`):n&&r.view.state.aRef==""?u=n.view.containerEl.querySelector(`div.changes div.tree-item-self[data-path="${c}"]`):s&&(u=s.view.containerEl.querySelector(`div.tree-item-self[data-path='${c}']`)),u==null||u.addClass("is-active")}else this.lastDiffViewState=void 0}handleNoNetworkError(r){this.state.offlineMode?this.log("Encountered network error, but already in offline mode"):this.displayError("Git: Going into offline mode. Future network errors will no longer be displayed.",2e3),this.setPluginState({gitAction:0,offlineMode:!0})}displayMessage(r,i=4*1e3){var n;(n=this.statusBar)==null||n.displayMessage(r.toLowerCase(),i),this.settings.disablePopups||(!this.settings.disablePopupsForNoChanges||!r.startsWith("No changes"))&&new _e.Notice(r,5*1e3),this.log(r)}displayError(r,i=10*1e3){var s;if(r instanceof vD.Errors.UserCanceledError){new _e.Notice("Aborted");return}let n;r instanceof Error?n=r:n=new Error(String(r)),this.setPluginState({gitAction:0}),this.settings.showErrorNotices&&new _e.Notice(n.message,i),console.error(`${this.manifest.id}:`,n.stack),(s=this.statusBar)==null||s.displayMessage(n.message.toLowerCase(),i)}log(...r){console.log(`${this.manifest.id}:`,...r)}}; +\`\`\``]),await this.tools.writeAndOpenFile(n==null?void 0:n.join(` +`))}async editRemotes(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new Ze(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}).openAndGetResult();if(i){let s=await this.gitManager.getRemoteUrl(i),o=await new Ze(this,{initialValue:s,placeholder:"Enter remote URL"}).openAndGetResult();if(o)return await this.gitManager.setRemote(i,Kw(o)),i}}async selectRemoteBranch(){let r=await this.gitManager.getRemotes(),n;r.length===0&&(n=await this.editRemotes(),n==null&&(r=await this.gitManager.getRemotes()));let i=new Ze(this,{options:r,placeholder:"Select or create a new remote by typing its name and selecting it"}),s=n!=null?n:await i.openAndGetResult();if(s){this.displayMessage("Fetching remote branches"),await this.gitManager.fetch(s);let a=await this.gitManager.getRemoteBranches(s),l=await new Ze(this,{options:a,placeholder:"Select or create a new remote branch by typing its name and selecting it"}).openAndGetResult();return l==null?void 0:l.startsWith(s+"/")?l:`${s}/${l}`}}async removeRemote(){if(!await this.isAllInitialized())return;let r=await this.gitManager.getRemotes(),i=await new Ze(this,{options:r,placeholder:"Select a remote"}).openAndGetResult();i&&await this.gitManager.removeRemote(i)}onActiveLeafChange(r){var a,o;let n=r==null?void 0:r.view;if(!(n!=null&&n.getState().file)&&!(n instanceof Wa||n instanceof za))return;let i=this.app.workspace.getLeavesOfType(jt.type).first(),s=this.app.workspace.getLeavesOfType(gn.type).first();if((a=i==null?void 0:i.view.containerEl.querySelector("div.tree-item-self.is-active"))==null||a.removeClass("is-active"),(o=s==null?void 0:s.view.containerEl.querySelector("div.tree-item-self.is-active"))==null||o.removeClass("is-active"),(r==null?void 0:r.view)instanceof Wa||(r==null?void 0:r.view)instanceof za){let c=r.view.state.bFile.replace(/["\\]/g,"\\$&");this.lastDiffViewState=r.view.getState();let u;i&&r.view.state.aRef=="HEAD"?u=i.view.containerEl.querySelector(`div.staged div.tree-item-self[data-path="${c}"]`):i&&r.view.state.aRef==""?u=i.view.containerEl.querySelector(`div.changes div.tree-item-self[data-path="${c}"]`):s&&(u=s.view.containerEl.querySelector(`div.tree-item-self[data-path='${c}']`)),u==null||u.addClass("is-active")}else this.lastDiffViewState=void 0}handleNoNetworkError(r){this.state.offlineMode?this.log("Encountered network error, but already in offline mode"):this.displayError("Git: Going into offline mode. Future network errors will no longer be displayed.",2e3),this.setPluginState({gitAction:0,offlineMode:!0})}displayMessage(r,n=4*1e3){var i;(i=this.statusBar)==null||i.displayMessage(r.toLowerCase(),n),this.settings.disablePopups||(!this.settings.disablePopupsForNoChanges||!r.startsWith("No changes"))&&new be.Notice(r,5*1e3),this.log(r)}displayError(r,n=10*1e3){var s;if(r instanceof ID.Errors.UserCanceledError){new be.Notice("Aborted");return}let i;r instanceof Error?i=r:i=new Error(String(r)),this.setPluginState({gitAction:0}),this.settings.showErrorNotices&&new be.Notice(i.message,n),console.error(`${this.manifest.id}:`,i.stack),(s=this.statusBar)==null||s.displayMessage(i.message.toLowerCase(),n)}log(...r){console.log(`${this.manifest.id}:`,...r)}}; /*! Bundled license information: ieee754/index.js: diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json index f472bdc..e30618f 100644 --- a/.obsidian/plugins/obsidian-git/manifest.json +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -6,5 +6,5 @@ "description": "Integrate Git version control with automatic backup and other advanced features.", "isDesktopOnly": false, "fundingUrl": "https://ko-fi.com/vinzent", - "version": "2.38.0" + "version": "2.38.1" } diff --git a/.obsidian/plugins/templater-obsidian/main.js b/.obsidian/plugins/templater-obsidian/main.js index 7333bb4..77f91ac 100644 --- a/.obsidian/plugins/templater-obsidian/main.js +++ b/.obsidian/plugins/templater-obsidian/main.js @@ -3,43 +3,43 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ -var ja=Object.create;var Yn=Object.defineProperty;var va=Object.getOwnPropertyDescriptor;var wa=Object.getOwnPropertyNames;var ba=Object.getPrototypeOf,Ea=Object.prototype.hasOwnProperty;var zi=n=>Yn(n,"__esModule",{value:!0});var Ta=(n,e)=>{zi(n);for(var t in e)Yn(n,t,{get:e[t],enumerable:!0})},ka=(n,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of wa(e))!Ea.call(n,r)&&r!=="default"&&Yn(n,r,{get:()=>e[r],enumerable:!(t=va(e,r))||t.enumerable});return n},X=n=>ka(zi(Yn(n!=null?ja(ba(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var Ji=(()=>{for(var n=new Uint8Array(128),e=0;e<64;e++)n[e<26?e+65:e<52?e+71:e<62?e-4:e*4-205]=e;return t=>{for(var r=t.length,i=new Uint8Array((r-(t[r-1]=="=")-(t[r-2]=="="))*3/4|0),o=0,a=0;o>4,i[a++]=c<<4|d>>2,i[a++]=d<<6|m}return i}})();Ta(exports,{default:()=>qi});var Tr=X(require("obsidian"));var L=X(require("obsidian"));var Qi=X(require("obsidian"));function oe(n){let e=new Qi.Notice("",8e3),t=createFragment(r=>{r.createEl("b",{text:"Templater Error"}),r.createEl("span",{text:":"}),r.createEl("br"),r.createEl("span",{text:n.message}),n instanceof P&&n.console_msg&&(r.createEl("br"),r.createEl("span",{text:"Check console for more information"}),console.error("Templater Error:",n.message,` -`,n.console_msg))});e.noticeEl.appendChild(t)}var P=class extends Error{constructor(e,t){super(e);this.console_msg=t;this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}};async function Se(n,e){try{return await n()}catch(t){return t instanceof P?oe(t):oe(new P(e,t.message)),null}}function Ce(n,e){try{return n()}catch(t){return oe(new P(e,t.message)),null}}var re=function(){function n(){}return n.explainIfInvalidTSDocTagName=function(e){if(e[0]!=="@")return'A TSDoc tag name must start with an "@" symbol';if(!n._tsdocTagNameRegExp.test(e))return"A TSDoc tag name must start with a letter and contain only letters and numbers"},n.validateTSDocTagName=function(e){var t=n.explainIfInvalidTSDocTagName(e);if(t)throw new Error(t)},n.explainIfInvalidLinkUrl=function(e){if(e.length===0)return"The URL cannot be empty";if(!n._urlSchemeRegExp.test(e))return'An @link URL must begin with a scheme comprised only of letters and numbers followed by "://". (For general URLs, use an HTML "" tag instead.)';if(!n._urlSchemeAfterRegExp.test(e))return'An @link URL must have at least one character after "://"'},n.explainIfInvalidHtmlName=function(e){if(!n._htmlNameRegExp.test(e))return"An HTML name must be an ASCII letter followed by zero or more letters, digits, or hyphens"},n.validateHtmlName=function(e){var t=n.explainIfInvalidHtmlName(e);if(t)throw new Error(t)},n.explainIfInvalidPackageName=function(e){if(e.length===0)return"The package name cannot be an empty string";if(!n._validPackageNameRegExp.test(e))return"The package name ".concat(JSON.stringify(e)," is not a valid package name")},n.explainIfInvalidImportPath=function(e,t){if(e.length>0){if(e.indexOf("//")>=0)return'An import path must not contain "//"';if(e[e.length-1]==="/")return'An import path must not end with "/"';if(!t&&e[0]==="/")return'An import path must not start with "/" unless prefixed by a package name'}},n.isSystemSelector=function(e){return n._systemSelectors.has(e)},n.explainIfInvalidUnquotedIdentifier=function(e){if(e.length===0)return"The identifier cannot be an empty string";if(n._identifierBadCharRegExp.test(e))return"The identifier cannot non-word characters";if(n._identifierNumberStartRegExp.test(e))return"The identifier must not start with a number"},n.explainIfInvalidUnquotedMemberIdentifier=function(e){var t=n.explainIfInvalidUnquotedIdentifier(e);if(t!==void 0)return t;if(n.isSystemSelector(e))return'The identifier "'.concat(e,'" must be quoted because it is a TSDoc system selector name')},n._tsdocTagNameRegExp=/^@[a-z][a-z0-9]*$/i,n._urlSchemeRegExp=/^[a-z][a-z0-9]*\:\/\//i,n._urlSchemeAfterRegExp=/^[a-z][a-z0-9]*\:\/\/./i,n._htmlNameRegExp=/^[a-z]+[a-z0-9\-]*$/i,n._identifierBadCharRegExp=/[^a-z0-9_$]/i,n._identifierNumberStartRegExp=/^[0-9]/,n._validPackageNameRegExp=/^(?:@[a-z0-9\-_\.]+\/)?[a-z0-9\-_\.]+$/i,n._systemSelectors=new Set(["instance","static","constructor","class","enum","function","interface","namespace","type","variable"]),n}();var Nr=function(){function n(){this._docNodeDefinitionsByKind=new Map,this._docNodeDefinitionsByConstructor=new Map}return n.prototype.registerDocNodes=function(e,t){var r=re.explainIfInvalidPackageName(e);if(r)throw new Error("Invalid NPM package name: "+r);for(var i=0,o=t;i0&&i.appendNodes(r),i}return Object.defineProperty(e.prototype,"nodes",{get:function(){return this._nodes},enumerable:!1,configurable:!0}),e.prototype.appendNode=function(t){if(!this.configuration.docNodeManager.isAllowedChild(this.kind,t.kind))throw new Error("The TSDocConfiguration does not allow a ".concat(this.kind," node to")+" contain a node of type ".concat(t.kind));this._nodes.push(t)},e.prototype.appendNodes=function(t){for(var r=0,i=t;r0){var i=this.nodes[this.nodes.length-1];i.kind===g.Paragraph&&(r=i)}r||(r=new st({configuration:this.configuration}),this.appendNode(r)),r.appendNode(t)},e.prototype.appendNodesInParagraph=function(t){for(var r=0,i=t;r1){var e=this._chunks.join("");this._chunks.length=1,this._chunks[0]=e}return this._chunks[0]},n}();var eo=function(){function n(){}return n.transform=function(e){for(var t=[],r=!1,i=[],o=[],a=!1,l=0,c=e.nodes;l0&&(r&&(i.push(" "),r=!1),i.push(S),o.push(d),a=!0),b&&a&&(r=!0);break;case g.SoftBreak:a&&(r=!0),o.push(d);break;default:r&&(i.push(" "),r=!1),i.length>0&&(t.push(new Ve({configuration:e.configuration,text:i.join("")})),i.length=0,o.length=0),t.push(d),a=!0}}i.length>0&&(t.push(new Ve({configuration:e.configuration,text:i.join("")})),i.length=0,o.length=0);var k=new st({configuration:e.configuration});return k.appendNodes(t),k},n}();var qr=function(){function n(){}return n.trimSpacesInParagraph=function(e){return eo.transform(e)},n}();var Lr=function(n,e,t){if(t||arguments.length===2)for(var r=0,i=e.length,o;r0&&(this._ensureLineSkipped(),this._renderNodes(a.modifierTagSet.nodes));break;case g.DeclarationReference:var l=e;this._writeContent(l.packageName),this._writeContent(l.importPath),(l.packageName!==void 0||l.importPath!==void 0)&&this._writeContent("#"),this._renderNodes(l.memberReferences);break;case g.ErrorText:var c=e;this._writeContent(c.text);break;case g.EscapedText:var d=e;this._writeContent(d.encodedText);break;case g.FencedCode:var m=e;this._ensureAtStartOfLine(),this._writeContent("```"),this._writeContent(m.language),this._writeNewline(),this._writeContent(m.code),this._writeContent("```"),this._writeNewline(),this._writeNewline();break;case g.HtmlAttribute:var _=e;this._writeContent(_.name),this._writeContent(_.spacingAfterName),this._writeContent("="),this._writeContent(_.spacingAfterEquals),this._writeContent(_.value),this._writeContent(_.spacingAfterValue);break;case g.HtmlEndTag:var w=e;this._writeContent("");break;case g.HtmlStartTag:var b=e;this._writeContent("<"),this._writeContent(b.name),this._writeContent(b.spacingAfterName);for(var S=b.spacingAfterName===void 0||b.spacingAfterName.length===0,k=0,E=b.htmlAttributes;k":">");break;case g.InheritDocTag:var $=e;this._renderInlineTag($,function(){$.declarationReference&&(t._writeContent(" "),t._renderNode($.declarationReference))});break;case g.InlineTag:var K=e;this._renderInlineTag(K,function(){K.tagContent.length>0&&(t._writeContent(" "),t._writeContent(K.tagContent))});break;case g.LinkTag:var D=e;this._renderInlineTag(D,function(){(D.urlDestination!==void 0||D.codeDestination!==void 0)&&(D.urlDestination!==void 0?(t._writeContent(" "),t._writeContent(D.urlDestination)):D.codeDestination!==void 0&&(t._writeContent(" "),t._renderNode(D.codeDestination))),D.linkText!==void 0&&(t._writeContent(" "),t._writeContent("|"),t._writeContent(" "),t._writeContent(D.linkText))});break;case g.MemberIdentifier:var H=e;H.hasQuotes?(this._writeContent('"'),this._writeContent(H.identifier),this._writeContent('"')):this._writeContent(H.identifier);break;case g.MemberReference:var F=e;F.hasDot&&this._writeContent("."),F.selector&&this._writeContent("("),F.memberSymbol?this._renderNode(F.memberSymbol):this._renderNode(F.memberIdentifier),F.selector&&(this._writeContent(":"),this._renderNode(F.selector),this._writeContent(")"));break;case g.MemberSelector:var J=e;this._writeContent(J.selector);break;case g.MemberSymbol:var te=e;this._writeContent("["),this._renderNode(te.symbolReference),this._writeContent("]");break;case g.Section:var ne=e;this._renderNodes(ne.nodes);break;case g.Paragraph:var Q=qr.trimSpacesInParagraph(e);Q.nodes.length>0&&(this._hangingParagraph?this._hangingParagraph=!1:this._ensureLineSkipped(),this._renderNodes(Q.nodes),this._writeNewline());break;case g.ParamBlock:var h=e;this._ensureLineSkipped(),this._renderNode(h.blockTag),this._writeContent(" "),this._writeContent(h.parameterName),this._writeContent(" - "),this._hangingParagraph=!0,this._renderNode(h.content),this._hangingParagraph=!1;break;case g.ParamCollection:var C=e;this._renderNodes(C.blocks);break;case g.PlainText:var f=e;this._writeContent(f.text);break}},n.prototype._renderInlineTag=function(e,t){this._writeContent("{"),this._writeContent(e.tagName),t(),this._writeContent("}")},n.prototype._renderNodes=function(e){for(var t=0,r=e;t1){for(var r=!0,i=0,o=t;i0?this.params:void 0,this.typeParams.count>0?this.typeParams:void 0,this.returnsBlock],this.customBlocks,!0),this.seeBlocks,!0),[this.inheritDocTag],!1),this.modifierTagSet.nodes,!0)},e.prototype.emitAsTsdoc=function(){var t=new ct,r=new lt;return r.renderComment(t,this),t.toString()},e}(T);var qa=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),La=function(n,e,t){if(t||arguments.length===2)for(var r=0,i=e.length,o;r=t},n._scanTextContent=function(e,t,r){for(var i=0,o=e;i=t||(r+=n._scanTextContent(a.getChildNodes(),t,r),r>=t))break}return r},n._countNonSpaceCharacters=function(e){for(var t=0,r=e.length,i=0;ithis.buffer.length)return{line:0,column:0};for(var t=1,r=1,i=0;ithis.buffer.length)throw new Error("TextRange.pos cannot exceed the associated text buffer length");if(this.end>this.buffer.length)throw new Error("TextRange.end cannot exceed the associated text buffer length")},n.empty=new n("",0,0),n}();var _n=function(){function n(e){this.messageId=e.messageId,this.unformattedText=e.messageText,this.textRange=e.textRange,this.tokenSequence=e.tokenSequence,this.docNode=e.docNode,this._text=void 0}return n._formatMessageText=function(e,t){if(e||(e="An unknown error occurred"),t.pos!==0||t.end!==0){var r=t.getLocation(t.pos);if(r.line)return"(".concat(r.line,",").concat(r.column,"): ")+e}return e},Object.defineProperty(n.prototype,"text",{get:function(){return this._text===void 0&&(this._text=n._formatMessageText(this.unformattedText,this.textRange)),this._text},enumerable:!1,configurable:!0}),n.prototype.toString=function(){return this.text},n}();var Hr=function(){function n(){this._messages=[]}return Object.defineProperty(n.prototype,"messages",{get:function(){return this._messages},enumerable:!1,configurable:!0}),n.prototype.addMessage=function(e){this._messages.push(e)},n.prototype.addMessageForTextRange=function(e,t,r){this.addMessage(new _n({messageId:e,messageText:t,textRange:r}))},n.prototype.addMessageForTokenSequence=function(e,t,r,i){this.addMessage(new _n({messageId:e,messageText:t,textRange:r.getContainingTextRange(),tokenSequence:r,docNode:i}))},n.prototype.addMessageForDocErrorText=function(e){var t;e.textExcerpt?t=e.textExcerpt:t=e.errorLocation,this.addMessage(new _n({messageId:e.messageId,messageText:e.errorMessage,textRange:t.getContainingTextRange(),tokenSequence:t,docNode:e}))},n}();var $r=function(){function n(e,t){this.commentRange=ze.empty,this.lines=[],this.tokens=[],this.configuration=e,this.sourceRange=t,this.docComment=new Wn({configuration:this.configuration}),this.log=new Hr}return n}();var yt=function(){function n(e){this.parserContext=e.parserContext,this._startIndex=e.startIndex,this._endIndex=e.endIndex,this._validateBounds()}return n.createEmpty=function(e){return new n({parserContext:e,startIndex:0,endIndex:0})},Object.defineProperty(n.prototype,"startIndex",{get:function(){return this._startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"endIndex",{get:function(){return this._endIndex},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"tokens",{get:function(){return this.parserContext.tokens.slice(this._startIndex,this._endIndex)},enumerable:!1,configurable:!0}),n.prototype.getNewSequence=function(e,t){return new n({parserContext:this.parserContext,startIndex:e,endIndex:t})},n.prototype.getContainingTextRange=function(){return this.isEmpty()?ze.empty:this.parserContext.sourceRange.getNewRange(this.parserContext.tokens[this._startIndex].range.pos,this.parserContext.tokens[this._endIndex-1].range.end)},n.prototype.isEmpty=function(){return this._startIndex===this._endIndex},n.prototype.toString=function(){return this.tokens.map(function(e){return e.toString()}).join("")},n.prototype._validateBounds=function(){if(this.startIndex<0)throw new Error("TokenSequence.startIndex cannot be negative");if(this.endIndex<0)throw new Error("TokenSequence.endIndex cannot be negative");if(this.endIndexthis.parserContext.tokens.length)throw new Error("TokenSequence.startIndex cannot exceed the associated token array");if(this.endIndex>this.parserContext.tokens.length)throw new Error("TokenSequence.endIndex cannot exceed the associated token array")},n}();var pe;(function(n){n[n.BeginComment1=0]="BeginComment1",n[n.BeginComment2=1]="BeginComment2",n[n.CollectingFirstLine=2]="CollectingFirstLine",n[n.CollectingLine=3]="CollectingLine",n[n.AdvancingLine=4]="AdvancingLine",n[n.Done=5]="Done"})(pe||(pe={}));var ro=function(){function n(){}return n.extract=function(e){for(var t=e.sourceRange,r=t.buffer,i=0,o=0,a=0,l=0,c=t.pos,d=pe.BeginComment1,m=[];d!==pe.Done;){if(c>=t.end)switch(d){case pe.BeginComment1:case pe.BeginComment2:return e.log.addMessageForTextRange(v.CommentNotFound,'Expecting a "/**" comment',t),!1;default:return e.log.addMessageForTextRange(v.CommentMissingClosingDelimiter,"Unexpected end of input",t),!1}var _=r[c],w=c;++c;var b=cUn(n,"__esModule",{value:!0});var ka=(n,e)=>{Qi(n);for(var t in e)Un(n,t,{get:e[t],enumerable:!0})},Sa=(n,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ba(e))!Ta.call(n,r)&&r!=="default"&&Un(n,r,{get:()=>e[r],enumerable:!(t=wa(e,r))||t.enumerable});return n},X=n=>Sa(Qi(Un(n!=null?va(Ea(n)):{},"default",n&&n.__esModule&&"default"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var Xi=(()=>{for(var n=new Uint8Array(128),e=0;e<64;e++)n[e<26?e+65:e<52?e+71:e<62?e-4:e*4-205]=e;return t=>{for(var r=t.length,i=new Uint8Array((r-(t[r-1]=="=")-(t[r-2]=="="))*3/4|0),o=0,a=0;o>4,i[a++]=c<<4|d>>2,i[a++]=d<<6|m}return i}})();ka(exports,{default:()=>Hi});var kr=X(require("obsidian"));var L=X(require("obsidian"));var Zi=X(require("obsidian"));function oe(n){let e=new Zi.Notice("",8e3),t=createFragment(r=>{r.createEl("b",{text:"Templater Error"}),r.createEl("span",{text:":"}),r.createEl("br"),r.createEl("span",{text:n.message}),n instanceof D&&n.console_msg&&(r.createEl("br"),r.createEl("span",{text:"Check console for more information"}),console.error("Templater Error:",n.message,` +`,n.console_msg))});e.noticeEl.appendChild(t)}var D=class extends Error{constructor(e,t){super(e);this.console_msg=t;this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}};async function Se(n,e){try{return await n()}catch(t){return t instanceof D?oe(t):oe(new D(e,t.message)),null}}function Ce(n,e){try{return n()}catch(t){return oe(new D(e,t.message)),null}}var re=function(){function n(){}return n.explainIfInvalidTSDocTagName=function(e){if(e[0]!=="@")return'A TSDoc tag name must start with an "@" symbol';if(!n._tsdocTagNameRegExp.test(e))return"A TSDoc tag name must start with a letter and contain only letters and numbers"},n.validateTSDocTagName=function(e){var t=n.explainIfInvalidTSDocTagName(e);if(t)throw new Error(t)},n.explainIfInvalidLinkUrl=function(e){if(e.length===0)return"The URL cannot be empty";if(!n._urlSchemeRegExp.test(e))return'An @link URL must begin with a scheme comprised only of letters and numbers followed by "://". (For general URLs, use an HTML "" tag instead.)';if(!n._urlSchemeAfterRegExp.test(e))return'An @link URL must have at least one character after "://"'},n.explainIfInvalidHtmlName=function(e){if(!n._htmlNameRegExp.test(e))return"An HTML name must be an ASCII letter followed by zero or more letters, digits, or hyphens"},n.validateHtmlName=function(e){var t=n.explainIfInvalidHtmlName(e);if(t)throw new Error(t)},n.explainIfInvalidPackageName=function(e){if(e.length===0)return"The package name cannot be an empty string";if(!n._validPackageNameRegExp.test(e))return"The package name ".concat(JSON.stringify(e)," is not a valid package name")},n.explainIfInvalidImportPath=function(e,t){if(e.length>0){if(e.indexOf("//")>=0)return'An import path must not contain "//"';if(e[e.length-1]==="/")return'An import path must not end with "/"';if(!t&&e[0]==="/")return'An import path must not start with "/" unless prefixed by a package name'}},n.isSystemSelector=function(e){return n._systemSelectors.has(e)},n.explainIfInvalidUnquotedIdentifier=function(e){if(e.length===0)return"The identifier cannot be an empty string";if(n._identifierBadCharRegExp.test(e))return"The identifier cannot non-word characters";if(n._identifierNumberStartRegExp.test(e))return"The identifier must not start with a number"},n.explainIfInvalidUnquotedMemberIdentifier=function(e){var t=n.explainIfInvalidUnquotedIdentifier(e);if(t!==void 0)return t;if(n.isSystemSelector(e))return'The identifier "'.concat(e,'" must be quoted because it is a TSDoc system selector name')},n._tsdocTagNameRegExp=/^@[a-z][a-z0-9]*$/i,n._urlSchemeRegExp=/^[a-z][a-z0-9]*\:\/\//i,n._urlSchemeAfterRegExp=/^[a-z][a-z0-9]*\:\/\/./i,n._htmlNameRegExp=/^[a-z]+[a-z0-9\-]*$/i,n._identifierBadCharRegExp=/[^a-z0-9_$]/i,n._identifierNumberStartRegExp=/^[0-9]/,n._validPackageNameRegExp=/^(?:@[a-z0-9\-_\.]+\/)?[a-z0-9\-_\.]+$/i,n._systemSelectors=new Set(["instance","static","constructor","class","enum","function","interface","namespace","type","variable"]),n}();var Mr=function(){function n(){this._docNodeDefinitionsByKind=new Map,this._docNodeDefinitionsByConstructor=new Map}return n.prototype.registerDocNodes=function(e,t){var r=re.explainIfInvalidPackageName(e);if(r)throw new Error("Invalid NPM package name: "+r);for(var i=0,o=t;i0&&i.appendNodes(r),i}return Object.defineProperty(e.prototype,"nodes",{get:function(){return this._nodes},enumerable:!1,configurable:!0}),e.prototype.appendNode=function(t){if(!this.configuration.docNodeManager.isAllowedChild(this.kind,t.kind))throw new Error("The TSDocConfiguration does not allow a ".concat(this.kind," node to")+" contain a node of type ".concat(t.kind));this._nodes.push(t)},e.prototype.appendNodes=function(t){for(var r=0,i=t;r0){var i=this.nodes[this.nodes.length-1];i.kind===g.Paragraph&&(r=i)}r||(r=new st({configuration:this.configuration}),this.appendNode(r)),r.appendNode(t)},e.prototype.appendNodesInParagraph=function(t){for(var r=0,i=t;r1){var e=this._chunks.join("");this._chunks.length=1,this._chunks[0]=e}return this._chunks[0]},n}();var no=function(){function n(){}return n.transform=function(e){for(var t=[],r=!1,i=[],o=[],a=!1,l=0,c=e.nodes;l0&&(r&&(i.push(" "),r=!1),i.push(S),o.push(d),a=!0),b&&a&&(r=!0);break;case g.SoftBreak:a&&(r=!0),o.push(d);break;default:r&&(i.push(" "),r=!1),i.length>0&&(t.push(new Ve({configuration:e.configuration,text:i.join("")})),i.length=0,o.length=0),t.push(d),a=!0}}i.length>0&&(t.push(new Ve({configuration:e.configuration,text:i.join("")})),i.length=0,o.length=0);var k=new st({configuration:e.configuration});return k.appendNodes(t),k},n}();var Lr=function(){function n(){}return n.trimSpacesInParagraph=function(e){return no.transform(e)},n}();var Hr=function(n,e,t){if(t||arguments.length===2)for(var r=0,i=e.length,o;r0&&(this._ensureLineSkipped(),this._renderNodes(a.modifierTagSet.nodes));break;case g.DeclarationReference:var l=e;this._writeContent(l.packageName),this._writeContent(l.importPath),(l.packageName!==void 0||l.importPath!==void 0)&&this._writeContent("#"),this._renderNodes(l.memberReferences);break;case g.ErrorText:var c=e;this._writeContent(c.text);break;case g.EscapedText:var d=e;this._writeContent(d.encodedText);break;case g.FencedCode:var m=e;this._ensureAtStartOfLine(),this._writeContent("```"),this._writeContent(m.language),this._writeNewline(),this._writeContent(m.code),this._writeContent("```"),this._writeNewline(),this._writeNewline();break;case g.HtmlAttribute:var _=e;this._writeContent(_.name),this._writeContent(_.spacingAfterName),this._writeContent("="),this._writeContent(_.spacingAfterEquals),this._writeContent(_.value),this._writeContent(_.spacingAfterValue);break;case g.HtmlEndTag:var w=e;this._writeContent("");break;case g.HtmlStartTag:var b=e;this._writeContent("<"),this._writeContent(b.name),this._writeContent(b.spacingAfterName);for(var S=b.spacingAfterName===void 0||b.spacingAfterName.length===0,k=0,E=b.htmlAttributes;k":">");break;case g.InheritDocTag:var $=e;this._renderInlineTag($,function(){$.declarationReference&&(t._writeContent(" "),t._renderNode($.declarationReference))});break;case g.InlineTag:var K=e;this._renderInlineTag(K,function(){K.tagContent.length>0&&(t._writeContent(" "),t._writeContent(K.tagContent))});break;case g.LinkTag:var P=e;this._renderInlineTag(P,function(){(P.urlDestination!==void 0||P.codeDestination!==void 0)&&(P.urlDestination!==void 0?(t._writeContent(" "),t._writeContent(P.urlDestination)):P.codeDestination!==void 0&&(t._writeContent(" "),t._renderNode(P.codeDestination))),P.linkText!==void 0&&(t._writeContent(" "),t._writeContent("|"),t._writeContent(" "),t._writeContent(P.linkText))});break;case g.MemberIdentifier:var H=e;H.hasQuotes?(this._writeContent('"'),this._writeContent(H.identifier),this._writeContent('"')):this._writeContent(H.identifier);break;case g.MemberReference:var F=e;F.hasDot&&this._writeContent("."),F.selector&&this._writeContent("("),F.memberSymbol?this._renderNode(F.memberSymbol):this._renderNode(F.memberIdentifier),F.selector&&(this._writeContent(":"),this._renderNode(F.selector),this._writeContent(")"));break;case g.MemberSelector:var J=e;this._writeContent(J.selector);break;case g.MemberSymbol:var te=e;this._writeContent("["),this._renderNode(te.symbolReference),this._writeContent("]");break;case g.Section:var ne=e;this._renderNodes(ne.nodes);break;case g.Paragraph:var Q=Lr.trimSpacesInParagraph(e);Q.nodes.length>0&&(this._hangingParagraph?this._hangingParagraph=!1:this._ensureLineSkipped(),this._renderNodes(Q.nodes),this._writeNewline());break;case g.ParamBlock:var h=e;this._ensureLineSkipped(),this._renderNode(h.blockTag),this._writeContent(" "),this._writeContent(h.parameterName),this._writeContent(" - "),this._hangingParagraph=!0,this._renderNode(h.content),this._hangingParagraph=!1;break;case g.ParamCollection:var C=e;this._renderNodes(C.blocks);break;case g.PlainText:var f=e;this._writeContent(f.text);break}},n.prototype._renderInlineTag=function(e,t){this._writeContent("{"),this._writeContent(e.tagName),t(),this._writeContent("}")},n.prototype._renderNodes=function(e){for(var t=0,r=e;t1){for(var r=!0,i=0,o=t;i0?this.params:void 0,this.typeParams.count>0?this.typeParams:void 0,this.returnsBlock],this.customBlocks,!0),this.seeBlocks,!0),[this.inheritDocTag],!1),this.modifierTagSet.nodes,!0)},e.prototype.emitAsTsdoc=function(){var t=new ct,r=new lt;return r.renderComment(t,this),t.toString()},e}(T);var La=function(){var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},n(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");n(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),Ha=function(n,e,t){if(t||arguments.length===2)for(var r=0,i=e.length,o;r=t},n._scanTextContent=function(e,t,r){for(var i=0,o=e;i=t||(r+=n._scanTextContent(a.getChildNodes(),t,r),r>=t))break}return r},n._countNonSpaceCharacters=function(e){for(var t=0,r=e.length,i=0;ithis.buffer.length)return{line:0,column:0};for(var t=1,r=1,i=0;ithis.buffer.length)throw new Error("TextRange.pos cannot exceed the associated text buffer length");if(this.end>this.buffer.length)throw new Error("TextRange.end cannot exceed the associated text buffer length")},n.empty=new n("",0,0),n}();var xn=function(){function n(e){this.messageId=e.messageId,this.unformattedText=e.messageText,this.textRange=e.textRange,this.tokenSequence=e.tokenSequence,this.docNode=e.docNode,this._text=void 0}return n._formatMessageText=function(e,t){if(e||(e="An unknown error occurred"),t.pos!==0||t.end!==0){var r=t.getLocation(t.pos);if(r.line)return"(".concat(r.line,",").concat(r.column,"): ")+e}return e},Object.defineProperty(n.prototype,"text",{get:function(){return this._text===void 0&&(this._text=n._formatMessageText(this.unformattedText,this.textRange)),this._text},enumerable:!1,configurable:!0}),n.prototype.toString=function(){return this.text},n}();var $r=function(){function n(){this._messages=[]}return Object.defineProperty(n.prototype,"messages",{get:function(){return this._messages},enumerable:!1,configurable:!0}),n.prototype.addMessage=function(e){this._messages.push(e)},n.prototype.addMessageForTextRange=function(e,t,r){this.addMessage(new xn({messageId:e,messageText:t,textRange:r}))},n.prototype.addMessageForTokenSequence=function(e,t,r,i){this.addMessage(new xn({messageId:e,messageText:t,textRange:r.getContainingTextRange(),tokenSequence:r,docNode:i}))},n.prototype.addMessageForDocErrorText=function(e){var t;e.textExcerpt?t=e.textExcerpt:t=e.errorLocation,this.addMessage(new xn({messageId:e.messageId,messageText:e.errorMessage,textRange:t.getContainingTextRange(),tokenSequence:t,docNode:e}))},n}();var Kr=function(){function n(e,t){this.commentRange=ze.empty,this.lines=[],this.tokens=[],this.configuration=e,this.sourceRange=t,this.docComment=new Vn({configuration:this.configuration}),this.log=new $r}return n}();var jt=function(){function n(e){this.parserContext=e.parserContext,this._startIndex=e.startIndex,this._endIndex=e.endIndex,this._validateBounds()}return n.createEmpty=function(e){return new n({parserContext:e,startIndex:0,endIndex:0})},Object.defineProperty(n.prototype,"startIndex",{get:function(){return this._startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"endIndex",{get:function(){return this._endIndex},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"tokens",{get:function(){return this.parserContext.tokens.slice(this._startIndex,this._endIndex)},enumerable:!1,configurable:!0}),n.prototype.getNewSequence=function(e,t){return new n({parserContext:this.parserContext,startIndex:e,endIndex:t})},n.prototype.getContainingTextRange=function(){return this.isEmpty()?ze.empty:this.parserContext.sourceRange.getNewRange(this.parserContext.tokens[this._startIndex].range.pos,this.parserContext.tokens[this._endIndex-1].range.end)},n.prototype.isEmpty=function(){return this._startIndex===this._endIndex},n.prototype.toString=function(){return this.tokens.map(function(e){return e.toString()}).join("")},n.prototype._validateBounds=function(){if(this.startIndex<0)throw new Error("TokenSequence.startIndex cannot be negative");if(this.endIndex<0)throw new Error("TokenSequence.endIndex cannot be negative");if(this.endIndexthis.parserContext.tokens.length)throw new Error("TokenSequence.startIndex cannot exceed the associated token array");if(this.endIndex>this.parserContext.tokens.length)throw new Error("TokenSequence.endIndex cannot exceed the associated token array")},n}();var pe;(function(n){n[n.BeginComment1=0]="BeginComment1",n[n.BeginComment2=1]="BeginComment2",n[n.CollectingFirstLine=2]="CollectingFirstLine",n[n.CollectingLine=3]="CollectingLine",n[n.AdvancingLine=4]="AdvancingLine",n[n.Done=5]="Done"})(pe||(pe={}));var oo=function(){function n(){}return n.extract=function(e){for(var t=e.sourceRange,r=t.buffer,i=0,o=0,a=0,l=0,c=t.pos,d=pe.BeginComment1,m=[];d!==pe.Done;){if(c>=t.end)switch(d){case pe.BeginComment1:case pe.BeginComment2:return e.log.addMessageForTextRange(v.CommentNotFound,'Expecting a "/**" comment',t),!1;default:return e.log.addMessageForTextRange(v.CommentMissingClosingDelimiter,"Unexpected end of input",t),!1}var _=r[c],w=c;++c;var b=ca)&&m.push(t.getNewRange(a,l)),a=c,l=c,d=pe.AdvancingLine):_==="*"&&b==="/"?(l>a&&m.push(t.getNewRange(a,l)),a=0,l=0,++c,o=c,d=pe.Done):n._whitespaceCharacterRegExp.test(_)||(l=c);break;case pe.AdvancingLine:_==="*"?b==="/"?(a=0,l=0,++c,o=c,d=pe.Done):(b===" "&&++c,a=c,l=c,d=pe.CollectingLine):_===` -`?(m.push(t.getNewRange(w,w)),a=c):n._whitespaceCharacterRegExp.test(_)||(l=c,d=pe.CollectingLine);break}}return e.commentRange=t.getNewRange(i,o),e.lines=m,!0},n._whitespaceCharacterRegExp=/^\s$/,n}();var xn=function(){function n(){}return n.readTokens=function(e){n._ensureInitialized();for(var t=[],r=void 0,i=0,o=e;i":u.GreaterThan,"=":u.Equals,"'":u.SingleQuote,'"':u.DoubleQuote,"/":u.Slash,"-":u.Hyphen,"@":u.AtSign,"{":u.LeftCurlyBracket,"}":u.RightCurlyBracket,"`":u.Backtick,".":u.Period,":":u.Colon,",":u.Comma,"[":u.LeftSquareBracket,"]":u.RightSquareBracket,"|":u.Pipe,"(":u.LeftParenthesis,")":u.RightParenthesis,"#":u.PoundSymbol,"+":u.Plus,$:u.DollarSign},o=0,a=Object.getOwnPropertyNames(i);o?@[\\]^`{|}~",n._wordCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",n}();var Kr=function(){function n(e,t){if(this._parserContext=e,this.tokens=e.tokens,t){if(t.parserContext!==this._parserContext)throw new Error("The embeddedTokenSequence must use the same parser context");this._readerStartIndex=t.startIndex,this._readerEndIndex=t.endIndex}else this._readerStartIndex=0,this._readerEndIndex=this.tokens.length;this._currentIndex=this._readerStartIndex,this._accumulatedStartIndex=this._readerStartIndex}return n.prototype.extractAccumulatedSequence=function(){if(this._accumulatedStartIndex===this._currentIndex)throw new Error("Parser assertion failed: The queue should not be empty when extractAccumulatedSequence() is called");var e=new yt({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex});return this._accumulatedStartIndex=this._currentIndex,e},n.prototype.isAccumulatedSequenceEmpty=function(){return this._accumulatedStartIndex===this._currentIndex},n.prototype.tryExtractAccumulatedSequence=function(){if(!this.isAccumulatedSequenceEmpty())return this.extractAccumulatedSequence()},n.prototype.assertAccumulatedSequenceIsEmpty=function(){if(!this.isAccumulatedSequenceEmpty()){var e=new yt({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex}),t=e.tokens.map(function(r){return r.toString()});throw new Error(`Parser assertion failed: The queue should be empty, but it contains: -`+JSON.stringify(t))}},n.prototype.peekToken=function(){return this.tokens[this._currentIndex]},n.prototype.peekTokenKind=function(){return this._currentIndex>=this._readerEndIndex?u.EndOfInput:this.tokens[this._currentIndex].kind},n.prototype.peekTokenAfterKind=function(){return this._currentIndex+1>=this._readerEndIndex?u.EndOfInput:this.tokens[this._currentIndex+1].kind},n.prototype.peekTokenAfterAfterKind=function(){return this._currentIndex+2>=this._readerEndIndex?u.EndOfInput:this.tokens[this._currentIndex+2].kind},n.prototype.readToken=function(){if(this._currentIndex>=this._readerEndIndex)throw new Error("Cannot read past end of stream");var e=this.tokens[this._currentIndex];if(e.kind===u.EndOfInput)throw new Error("The EndOfInput token cannot be read");return this._currentIndex++,e},n.prototype.peekPreviousTokenKind=function(){return this._currentIndex===0?u.EndOfInput:this.tokens[this._currentIndex-1].kind},n.prototype.createMarker=function(){return this._currentIndex},n.prototype.backtrackToMarker=function(e){if(e>this._currentIndex)throw new Error("The marker has expired");this._currentIndex=e,e" character should be escaped using a backslash to avoid confusion with an HTML tag'));break;case u.Backtick:this._pushAccumulatedPlainText(e),e.peekTokenAfterKind()===u.Backtick&&e.peekTokenAfterAfterKind()===u.Backtick?this._pushNode(this._parseFencedCode(e)):this._pushNode(this._parseCodeSpan(e));break;default:e.readToken();break}this._pushAccumulatedPlainText(e),this._performValidationChecks()},n.prototype._performValidationChecks=function(){var e=this._parserContext.docComment;e.deprecatedBlock&&(lr.hasAnyTextContent(e.deprecatedBlock)||this._parserContext.log.addMessageForTokenSequence(v.MissingDeprecationMessage,"The ".concat(e.deprecatedBlock.blockTag.tagName," block must include a deprecation message,")+" e.g. describing the recommended alternative",e.deprecatedBlock.blockTag.getTokenSequence(),e.deprecatedBlock)),e.inheritDocTag&&(e.remarksBlock&&this._parserContext.log.addMessageForTokenSequence(v.InheritDocIncompatibleTag,'A "'.concat(e.remarksBlock.blockTag.tagName,'" block must not be used, because that')+" content is provided by the @inheritDoc tag",e.remarksBlock.blockTag.getTokenSequence(),e.remarksBlock.blockTag),lr.hasAnyTextContent(e.summarySection)&&this._parserContext.log.addMessageForTextRange(v.InheritDocIncompatibleSummary,"The summary section must not have any content, because that content is provided by the @inheritDoc tag",this._parserContext.commentRange))},n.prototype._validateTagDefinition=function(e,t,r,i,o){if(e){var a=e.syntaxKind===R.InlineTag;a!==r?r?this._parserContext.log.addMessageForTokenSequence(v.TagShouldNotHaveBraces,'The TSDoc tag "'.concat(t,'" is not an inline tag; it must not be enclosed in "{ }" braces'),i,o):this._parserContext.log.addMessageForTokenSequence(v.InlineTagMissingBraces,'The TSDoc tag "'.concat(t,'" is an inline tag; it must be enclosed in "{ }" braces'),i,o):this._parserContext.configuration.validation.reportUnsupportedTags&&(this._parserContext.configuration.isTagSupported(e)||this._parserContext.log.addMessageForTokenSequence(v.UnsupportedTag,'The TSDoc tag "'.concat(t,'" is not supported by this tool'),i,o))}else this._parserContext.configuration.validation.ignoreUndefinedTags||this._parserContext.log.addMessageForTokenSequence(v.UndefinedTag,'The TSDoc tag "'.concat(t,'" is not defined in this configuration'),i,o)},n.prototype._pushAccumulatedPlainText=function(e){e.isAccumulatedSequenceEmpty()||this._pushNode(new Ve({parsed:!0,configuration:this._configuration,textExcerpt:e.extractAccumulatedSequence()}))},n.prototype._parseAndPushBlock=function(e){var t=this._parserContext.docComment,r=this._parserContext.configuration,i=t.modifierTagSet,o=this._parseBlockTag(e);if(o.kind!==g.BlockTag){this._pushNode(o);return}var a=o,l=r.tryGetTagDefinitionWithUpperCase(a.tagNameWithUpperCase);if(this._validateTagDefinition(l,a.tagName,!1,a.getTokenSequence(),a),l)switch(l.syntaxKind){case R.BlockTag:if(a.tagNameWithUpperCase===G.param.tagNameWithUpperCase){var c=this._parseParamBlock(e,a,G.param.tagName);this._parserContext.docComment.params.add(c),this._currentSection=c.content;return}else if(a.tagNameWithUpperCase===G.typeParam.tagNameWithUpperCase){var c=this._parseParamBlock(e,a,G.typeParam.tagName);this._parserContext.docComment.typeParams.add(c),this._currentSection=c.content;return}else{var d=new zt({configuration:this._configuration,blockTag:a});this._addBlockToDocComment(d),this._currentSection=d.content}return;case R.ModifierTag:i.addTag(a);return}this._pushNode(a)},n.prototype._addBlockToDocComment=function(e){var t=this._parserContext.docComment;switch(e.blockTag.tagNameWithUpperCase){case G.remarks.tagNameWithUpperCase:t.remarksBlock=e;break;case G.privateRemarks.tagNameWithUpperCase:t.privateRemarks=e;break;case G.deprecated.tagNameWithUpperCase:t.deprecatedBlock=e;break;case G.returns.tagNameWithUpperCase:t.returnsBlock=e;break;case G.see.tagNameWithUpperCase:t._appendSeeBlock(e);break;default:t.appendCustomBlock(e)}},n.prototype._tryParseJSDocTypeOrValueRest=function(e,t,r,i){for(var o,a=1;a>0;){var l=e.peekTokenKind();switch(l){case t:o===void 0&&a++;break;case r:o===void 0&&a--;break;case u.Backslash:o!==void 0&&(e.readToken(),l=e.peekTokenKind());break;case u.DoubleQuote:case u.SingleQuote:case u.Backtick:o===l?o=void 0:o===void 0&&(o=l);break}if(l===u.EndOfInput){e.backtrackToMarker(i);return}e.readToken()}return e.tryExtractAccumulatedSequence()},n.prototype._tryParseUnsupportedJSDocType=function(e,t,r){if(e.assertAccumulatedSequenceIsEmpty(),!(e.peekTokenKind()!==u.LeftCurlyBracket||e.peekTokenAfterKind()===u.AtSign)){var i=e.createMarker();e.readToken();var o=this._tryParseJSDocTypeOrValueRest(e,u.LeftCurlyBracket,u.RightCurlyBracket,i);if(o){this._parserContext.log.addMessageForTokenSequence(v.ParamTagWithInvalidType,"The "+r+" block should not include a JSDoc-style '{type}'",o,t);var a=this._tryReadSpacingAndNewlines(e);a&&(o=o.getNewSequence(o.startIndex,a.endIndex))}return o}},n.prototype._tryParseJSDocOptionalNameRest=function(e){if(e.assertAccumulatedSequenceIsEmpty(),e.peekTokenKind()!==u.EndOfInput){var t=e.createMarker();return this._tryParseJSDocTypeOrValueRest(e,u.LeftSquareBracket,u.RightSquareBracket,t)}},n.prototype._parseParamBlock=function(e,t,r){var i=e.createMarker(),o=this._tryReadSpacingAndNewlines(e),a=this._tryParseUnsupportedJSDocType(e,t,r),l;e.peekTokenKind()===u.LeftSquareBracket&&(e.readToken(),l=e.extractAccumulatedSequence());for(var c="",d=!1;!d;)switch(e.peekTokenKind()){case u.AsciiWord:case u.Period:case u.DollarSign:c+=e.readToken();break;default:d=!0;break}var m=re.explainIfInvalidUnquotedIdentifier(c);if(m!==void 0){e.backtrackToMarker(i);var _=new An({configuration:this._configuration,blockTag:t,parameterName:""}),w=c.length>0?"The "+r+" block should be followed by a valid parameter name: "+m:"The "+r+" block should be followed by a parameter name";return this._parserContext.log.addMessageForTokenSequence(v.ParamTagWithInvalidName,w,t.getTokenSequence(),t),_}var b=e.extractAccumulatedSequence(),S;if(l){S=this._tryParseJSDocOptionalNameRest(e);var k=l;S&&(k=t.getTokenSequence().getNewSequence(l.startIndex,S.endIndex)),this._parserContext.log.addMessageForTokenSequence(v.ParamTagWithInvalidOptionalName,"The "+r+" should not include a JSDoc-style optional name; it must not be enclosed in '[ ]' brackets.",k,t)}var E=this._tryReadSpacingAndNewlines(e),O=this._tryParseUnsupportedJSDocType(e,t,r),$,K,D;return e.peekTokenKind()===u.Hyphen?(e.readToken(),$=e.extractAccumulatedSequence(),K=this._tryReadSpacingAndNewlines(e),D=this._tryParseUnsupportedJSDocType(e,t,r)):this._parserContext.log.addMessageForTokenSequence(v.ParamTagMissingHyphen,"The "+r+" block should be followed by a parameter name and then a hyphen",t.getTokenSequence(),t),new An({parsed:!0,configuration:this._configuration,blockTag:t,spacingBeforeParameterNameExcerpt:o,unsupportedJsdocTypeBeforeParameterNameExcerpt:a,unsupportedJsdocOptionalNameOpenBracketExcerpt:l,parameterNameExcerpt:b,parameterName:c,unsupportedJsdocOptionalNameRestExcerpt:S,spacingAfterParameterNameExcerpt:E,unsupportedJsdocTypeAfterParameterNameExcerpt:O,hyphenExcerpt:$,spacingAfterHyphenExcerpt:K,unsupportedJsdocTypeAfterHyphenExcerpt:D})},n.prototype._pushNode=function(e){this._configuration.docNodeManager.isAllowedChild(g.Paragraph,e.kind)?this._currentSection.appendNodeInParagraph(e):this._currentSection.appendNode(e)},n.prototype._parseBackslashEscape=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.readToken(),e.peekTokenKind()===u.EndOfInput)return this._backtrackAndCreateError(e,t,v.UnnecessaryBackslash,"A backslash must precede another character that is being escaped");var r=e.readToken();if(!xn.isPunctuation(r.kind))return this._backtrackAndCreateError(e,t,v.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");var i=e.extractAccumulatedSequence();return new zn({parsed:!0,configuration:this._configuration,escapeStyle:cr.CommonMarkBackslash,encodedTextExcerpt:i,decodedText:r.toString()})},n.prototype._parseBlockTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==u.AtSign)return this._backtrackAndCreateError(e,t,v.MissingTag,'Expecting a TSDoc tag starting with "@"');switch(e.peekPreviousTokenKind()){case u.EndOfInput:case u.Spacing:case u.Newline:break;default:return this._backtrackAndCreateError(e,t,v.AtSignInWord,'The "@" character looks like part of a TSDoc tag; use a backslash to escape it')}var r=e.readToken().toString();if(e.peekTokenKind()!==u.AsciiWord)return this._backtrackAndCreateError(e,t,v.AtSignWithoutTagName,'Expecting a TSDoc tag name after "@"; if it is not a tag, use a backslash to escape this character');for(var i=e.createMarker();e.peekTokenKind()===u.AsciiWord;)r+=e.readToken().toString();switch(e.peekTokenKind()){case u.Spacing:case u.Newline:case u.EndOfInput:break;default:var o=e.peekToken().range.toString()[0];return this._backtrackAndCreateError(e,t,v.CharactersAfterBlockTag,'The token "'.concat(r,'" looks like a TSDoc tag but contains an invalid character')+" ".concat(JSON.stringify(o),'; if it is not a tag, use a backslash to escape the "@"'))}if(re.explainIfInvalidTSDocTagName(r)){var a=this._createFailureForTokensSince(e,v.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",i);return this._backtrackAndCreateErrorForFailure(e,t,"",a)}return new Un({parsed:!0,configuration:this._configuration,tagName:r,tagNameExcerpt:e.extractAccumulatedSequence()})},n.prototype._parseInlineTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==u.LeftCurlyBracket)return this._backtrackAndCreateError(e,t,v.MissingTag,'Expecting a TSDoc tag starting with "{"');e.readToken();var r=e.extractAccumulatedSequence(),i=e.createMarker();if(e.peekTokenKind()!==u.AtSign)return this._backtrackAndCreateError(e,t,v.MalformedInlineTag,'Expecting a TSDoc tag starting with "{@"');for(var o=e.readToken().toString();e.peekTokenKind()===u.AsciiWord;)o+=e.readToken().toString();if(o==="@"){var a=this._createFailureForTokensSince(e,v.MalformedInlineTag,'Expecting a TSDoc inline tag name after the "{@" characters',i);return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}if(re.explainIfInvalidTSDocTagName(o)){var a=this._createFailureForTokensSince(e,v.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",i);return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}var l=e.extractAccumulatedSequence(),c=this._tryReadSpacingAndNewlines(e);if(c===void 0&&e.peekTokenKind()!==u.RightCurlyBracket){var d=e.peekToken().range.toString()[0],a=this._createFailureForToken(e,v.CharactersAfterInlineTag,"The character ".concat(JSON.stringify(d)," cannot appear after the TSDoc tag name; expecting a space"));return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}for(var m=!1;!m;)switch(e.peekTokenKind()){case u.EndOfInput:return this._backtrackAndCreateErrorRange(e,t,i,v.InlineTagMissingRightBrace,'The TSDoc inline tag name is missing its closing "}"');case u.Backslash:if(e.readToken(),!xn.isPunctuation(e.peekTokenKind())){var a=this._createFailureForToken(e,v.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"Error reading inline TSDoc tag: ",a)}e.readToken();break;case u.LeftCurlyBracket:{var a=this._createFailureForToken(e,v.InlineTagUnescapedBrace,'The "{" character must be escaped with a backslash when used inside a TSDoc inline tag');return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}case u.RightCurlyBracket:m=!0;break;default:e.readToken();break}var _=e.tryExtractAccumulatedSequence();e.readToken();var w=e.extractAccumulatedSequence(),b={parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:r,tagNameExcerpt:l,tagName:o,spacingAfterTagNameExcerpt:c,tagContentExcerpt:_,closingDelimiterExcerpt:w},S=o.toUpperCase(),k=new Kr(this._parserContext,_||yt.createEmpty(this._parserContext)),E;switch(S){case G.inheritDoc.tagNameWithUpperCase:E=this._parseInheritDocTag(b,k);break;case G.link.tagNameWithUpperCase:E=this._parseLinkTag(b,k);break;default:E=new Jt(b)}var O=this._parserContext.configuration.tryGetTagDefinitionWithUpperCase(S);return this._validateTagDefinition(O,o,!0,l,E),E},n.prototype._parseInheritDocTag=function(e,t){var r=new Jt(e),i=pr({},e);if(t.peekTokenKind()!==u.EndOfInput){if(i.declarationReference=this._parseDeclarationReference(t,e.tagNameExcerpt,r),!i.declarationReference)return r;if(t.peekTokenKind()!==u.EndOfInput)return t.readToken(),this._parserContext.log.addMessageForTokenSequence(v.InheritDocTagSyntax,"Unexpected character after declaration reference",t.extractAccumulatedSequence(),r),r}return new gn(i)},n.prototype._parseLinkTag=function(e,t){var r=new Jt(e),i=pr({},e);if(!e.tagContentExcerpt)return this._parserContext.log.addMessageForTokenSequence(v.LinkTagEmpty,"The @link tag content is missing",i.tagNameExcerpt,r),r;for(var o=t.peekTokenKind()===u.Slash&&t.peekTokenAfterKind()===u.Slash,a=t.createMarker(),l=o;!l;)switch(t.peekTokenKind()){case u.AsciiWord:case u.Period:case u.Hyphen:case u.Plus:t.readToken();break;case u.Colon:t.readToken(),o=t.peekTokenKind()===u.Slash&&t.peekTokenAfterKind()===u.Slash,l=!0;break;default:l=!0}if(t.backtrackToMarker(a),o){if(!this._parseLinkTagUrlDestination(t,i,e.tagNameExcerpt,r))return r}else if(!this._parseLinkTagCodeDestination(t,i,e.tagNameExcerpt,r))return r;if(t.peekTokenKind()===u.Spacing)throw new Error("Unconsumed spacing encountered after construct");if(t.peekTokenKind()===u.Pipe){t.readToken(),i.pipeExcerpt=t.extractAccumulatedSequence(),i.spacingAfterPipeExcerpt=this._tryReadSpacingAndNewlines(t),l=!1;for(var c=void 0;!l;)switch(t.peekTokenKind()){case u.EndOfInput:l=!0;break;case u.Pipe:case u.LeftCurlyBracket:var d=t.readToken().toString();return this._parserContext.log.addMessageForTokenSequence(v.LinkTagUnescapedText,'The "'.concat(d,'" character may not be used in the link text without escaping it'),t.extractAccumulatedSequence(),r),r;case u.Spacing:case u.Newline:t.readToken();break;default:c=t.createMarker()+1,t.readToken()}var m=t.tryExtractAccumulatedSequence();m&&(c===void 0?i.spacingAfterLinkTextExcerpt=m:c>=m.endIndex?i.linkTextExcerpt=m:(i.linkTextExcerpt=m.getNewSequence(m.startIndex,c),i.spacingAfterLinkTextExcerpt=m.getNewSequence(c,m.endIndex)))}else if(t.peekTokenKind()!==u.EndOfInput)return t.readToken(),this._parserContext.log.addMessageForTokenSequence(v.LinkTagDestinationSyntax,"Unexpected character after link destination",t.extractAccumulatedSequence(),r),r;return new er(i)},n.prototype._parseLinkTagUrlDestination=function(e,t,r,i){for(var o="",a=!1;!a;)switch(e.peekTokenKind()){case u.Spacing:case u.Newline:case u.EndOfInput:case u.Pipe:case u.RightCurlyBracket:a=!0;break;default:o+=e.readToken();break}if(o.length===0)throw new Error("Missing URL in _parseLinkTagUrlDestination()");var l=e.extractAccumulatedSequence(),c=re.explainIfInvalidLinkUrl(o);return c?(this._parserContext.log.addMessageForTokenSequence(v.LinkTagInvalidUrl,c,l,i),!1):(t.urlDestinationExcerpt=l,t.spacingAfterDestinationExcerpt=this._tryReadSpacingAndNewlines(e),!0)},n.prototype._parseLinkTagCodeDestination=function(e,t,r,i){return t.codeDestination=this._parseDeclarationReference(e,r,i),!!t.codeDestination},n.prototype._parseDeclarationReference=function(e,t,r){e.assertAccumulatedSequenceIsEmpty();for(var i=e.createMarker(),o=!1,a=!0,l=!1,c=!1;!c;)switch(e.peekTokenKind()){case u.DoubleQuote:case u.EndOfInput:case u.LeftCurlyBracket:case u.LeftParenthesis:case u.LeftSquareBracket:case u.Newline:case u.Pipe:case u.RightCurlyBracket:case u.RightParenthesis:case u.RightSquareBracket:case u.SingleQuote:case u.Spacing:c=!0;break;case u.PoundSymbol:o=!0,c=!0;break;case u.Slash:case u.AtSign:a&&(l=!0),e.readToken();break;case u.AsciiWord:case u.Period:case u.Hyphen:e.readToken();break;default:a=!1,e.readToken()}if(!o&&l){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingHash,'The declaration reference appears to contain a package name or import path, but it is missing the "#" delimiter',e.extractAccumulatedSequence(),r);return}e.backtrackToMarker(i);var d,m,_,w;if(o){if(e.peekTokenKind()!==u.Period){var b=e.peekTokenKind()===u.AtSign,S=!1;for(c=!1;!c;)switch(e.peekTokenKind()){case u.EndOfInput:throw new Error("Expecting pound symbol");case u.Slash:b&&!S?(e.readToken(),S=!0):c=!0;break;case u.PoundSymbol:c=!0;break;default:e.readToken()}if(!e.isAccumulatedSequenceEmpty()){d=e.extractAccumulatedSequence();var k=re.explainIfInvalidPackageName(d.toString());if(k){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMalformedPackageName,k,d,r);return}}}for(c=!1;!c;)switch(e.peekTokenKind()){case u.EndOfInput:throw new Error("Expecting pound symbol");case u.PoundSymbol:c=!0;break;default:e.readToken()}if(!e.isAccumulatedSequenceEmpty()){m=e.extractAccumulatedSequence();var k=re.explainIfInvalidImportPath(m.toString(),!!d);if(k){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMalformedImportPath,k,m,r);return}}if(e.peekTokenKind()!==u.PoundSymbol)throw new Error("Expecting pound symbol");if(e.readToken(),_=e.extractAccumulatedSequence(),w=this._tryReadSpacingAndNewlines(e),d===void 0&&m===void 0){this._parserContext.log.addMessageForTokenSequence(v.ReferenceHashSyntax,"The hash character must be preceded by a package name or import path",_,r);return}}var E=[];for(c=!1;!c;)switch(e.peekTokenKind()){case u.Period:case u.LeftParenthesis:case u.AsciiWord:case u.Colon:case u.LeftSquareBracket:case u.DoubleQuote:var O=E.length>0,$=this._parseMemberReference(e,O,t,r);if(!$)return;E.push($);break;default:c=!0}if(d===void 0&&m===void 0&&E.length===0){this._parserContext.log.addMessageForTokenSequence(v.MissingReference,"Expecting a declaration reference",t,r);return}return new Vn({parsed:!0,configuration:this._configuration,packageNameExcerpt:d,importPathExcerpt:m,importHashExcerpt:_,spacingAfterImportHashExcerpt:w,memberReferences:E})},n.prototype._parseMemberReference=function(e,t,r,i){var o={parsed:!0,configuration:this._configuration};if(t){if(e.peekTokenKind()!==u.Period){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingDot,"Expecting a period before the next component of a declaration reference",r,i);return}e.readToken(),o.dotExcerpt=e.extractAccumulatedSequence(),o.spacingAfterDotExcerpt=this._tryReadSpacingAndNewlines(e)}if(e.peekTokenKind()===u.LeftParenthesis&&(e.readToken(),o.leftParenthesisExcerpt=e.extractAccumulatedSequence(),o.spacingAfterLeftParenthesisExcerpt=this._tryReadSpacingAndNewlines(e)),e.peekTokenKind()===u.LeftSquareBracket){if(o.memberSymbol=this._parseMemberSymbol(e,i),!o.memberSymbol)return}else if(o.memberIdentifier=this._parseMemberIdentifier(e,r,i),!o.memberIdentifier)return;if(o.spacingAfterMemberExcerpt=this._tryReadSpacingAndNewlines(e),e.peekTokenKind()===u.Colon){if(e.readToken(),o.colonExcerpt=e.extractAccumulatedSequence(),o.spacingAfterColonExcerpt=this._tryReadSpacingAndNewlines(e),!o.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(v.ReferenceSelectorMissingParens,"Syntax error in declaration reference: the member selector must be enclosed in parentheses",o.colonExcerpt,i);return}if(o.selector=this._parseMemberSelector(e,o.colonExcerpt,i),!o.selector)return;o.spacingAfterSelectorExcerpt=this._tryReadSpacingAndNewlines(e)}else if(o.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingColon,"Expecting a colon after the identifier because the expression is in parentheses",o.leftParenthesisExcerpt,i);return}if(o.leftParenthesisExcerpt){if(e.peekTokenKind()!==u.RightParenthesis){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingRightParen,"Expecting a matching right parenthesis",o.leftParenthesisExcerpt,i);return}e.readToken(),o.rightParenthesisExcerpt=e.extractAccumulatedSequence(),o.spacingAfterRightParenthesisExcerpt=this._tryReadSpacingAndNewlines(e)}return new tr(o)},n.prototype._parseMemberSymbol=function(e,t){if(e.peekTokenKind()!==u.LeftSquareBracket)throw new Error('Expecting "["');e.readToken();var r=e.extractAccumulatedSequence(),i=this._tryReadSpacingAndNewlines(e),o=this._parseDeclarationReference(e,r,t);if(!o){this._parserContext.log.addMessageForTokenSequence(v.ReferenceSymbolSyntax,"Missing declaration reference in symbol reference",r,t);return}if(e.peekTokenKind()!==u.RightSquareBracket){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingRightBracket,"Missing closing square bracket for symbol reference",r,t);return}e.readToken();var a=e.extractAccumulatedSequence();return new rr({parsed:!0,configuration:this._configuration,leftBracketExcerpt:r,spacingAfterLeftBracketExcerpt:i,symbolReference:o,rightBracketExcerpt:a})},n.prototype._parseMemberIdentifier=function(e,t,r){var i=void 0,o=void 0;if(e.peekTokenKind()===u.DoubleQuote){for(e.readToken(),i=e.extractAccumulatedSequence();e.peekTokenKind()!==u.DoubleQuote;){if(e.peekTokenKind()===u.EndOfInput){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingQuote,"Unexpected end of input inside quoted member identifier",i,r);return}e.readToken()}if(e.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(v.ReferenceEmptyIdentifier,"The quoted identifier cannot be empty",i,r);return}var a=e.extractAccumulatedSequence();return e.readToken(),o=e.extractAccumulatedSequence(),new hn({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:i,identifierExcerpt:a,rightQuoteExcerpt:o})}else{for(var l=!1;!l;)switch(e.peekTokenKind()){case u.AsciiWord:case u.DollarSign:e.readToken();break;default:l=!0;break}if(e.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingIdentifier,"Syntax error in declaration reference: expecting a member identifier",t,r);return}var a=e.extractAccumulatedSequence(),c=a.toString(),d=re.explainIfInvalidUnquotedMemberIdentifier(c);if(d){this._parserContext.log.addMessageForTokenSequence(v.ReferenceUnquotedIdentifier,d,a,r);return}return new hn({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:i,identifierExcerpt:a,rightQuoteExcerpt:o})}},n.prototype._parseMemberSelector=function(e,t,r){e.peekTokenKind()!==u.AsciiWord&&this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingLabel,"Expecting a selector label after the colon",t,r);var i=e.readToken().toString(),o=e.extractAccumulatedSequence(),a=new nr({parsed:!0,configuration:this._configuration,selectorExcerpt:o,selector:i});if(a.errorMessage){this._parserContext.log.addMessageForTokenSequence(v.ReferenceSelectorSyntax,a.errorMessage,o,r);return}return a},n.prototype._parseHtmlStartTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),r=e.readToken();if(r.kind!==u.LessThan)throw new Error('Expecting an HTML tag starting with "<"');var i=e.extractAccumulatedSequence(),o=this._parseHtmlName(e);if(yn(o))return this._backtrackAndCreateErrorForFailure(e,t,"Invalid HTML element: ",o);for(var a=this._tryReadSpacingAndNewlines(e),l=[];e.peekTokenKind()===u.AsciiWord;){var c=this._parseHtmlAttribute(e);if(yn(c))return this._backtrackAndCreateErrorForFailure(e,t,"The HTML element has an invalid attribute: ",c);l.push(c)}e.assertAccumulatedSequenceIsEmpty();var d=e.createMarker(),m=!1;if(e.peekTokenKind()===u.Slash&&(e.readToken(),m=!0),e.peekTokenKind()!==u.GreaterThan){var _=this._createFailureForTokensSince(e,v.HtmlTagMissingGreaterThan,'Expecting an attribute or ">" or "/>"',d);return this._backtrackAndCreateErrorForFailure(e,t,"The HTML tag has invalid syntax: ",_)}e.readToken();var w=e.extractAccumulatedSequence();return new Zn({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:i,nameExcerpt:o,spacingAfterNameExcerpt:a,htmlAttributes:l,selfClosingTag:m,closingDelimiterExcerpt:w})},n.prototype._parseHtmlAttribute=function(e){e.assertAccumulatedSequenceIsEmpty();var t=this._parseHtmlName(e);if(yn(t))return t;var r=this._tryReadSpacingAndNewlines(e);if(e.peekTokenKind()!==u.Equals)return this._createFailureForToken(e,v.HtmlTagMissingEquals,'Expecting "=" after HTML attribute name');e.readToken();var i=e.extractAccumulatedSequence(),o=this._tryReadSpacingAndNewlines(e),a=this._parseHtmlString(e);if(yn(a))return a;var l=e.extractAccumulatedSequence(),c=this._tryReadSpacingAndNewlines(e);return new Qn({parsed:!0,configuration:this._configuration,nameExcerpt:t,spacingAfterNameExcerpt:r,equalsExcerpt:i,spacingAfterEqualsExcerpt:o,valueExcerpt:l,spacingAfterValueExcerpt:c})},n.prototype._parseHtmlString=function(e){var t=e.createMarker(),r=e.peekTokenKind();if(r!==u.DoubleQuote&&r!==u.SingleQuote)return this._createFailureForToken(e,v.HtmlTagMissingString,"Expecting an HTML string starting with a single-quote or double-quote character");e.readToken();for(var i="";;){var o=e.peekTokenKind();if(o===r){e.readToken();break}if(o===u.EndOfInput||o===u.Newline)return this._createFailureForToken(e,v.HtmlStringMissingQuote,"The HTML string is missing its closing quote",t);i+=e.readToken().toString()}return e.peekTokenKind()===u.AsciiWord?this._createFailureForToken(e,v.TextAfterHtmlString,"The next character after a closing quote must be spacing or punctuation"):i},n.prototype._parseHtmlEndTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),r=e.peekToken();if(r.kind!==u.LessThan)return this._backtrackAndCreateError(e,t,v.MissingHtmlEndTag,'Expecting an HTML tag starting with "" for the HTML tag');return this._backtrackAndCreateErrorForFailure(e,t,"",c)}e.readToken();var d=e.extractAccumulatedSequence();return new Xn({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:o,nameExcerpt:a,spacingAfterNameExcerpt:l,closingDelimiterExcerpt:d})},n.prototype._parseHtmlName=function(e){var t=e.createMarker();if(e.peekTokenKind()===u.Spacing)return this._createFailureForTokensSince(e,v.MalformedHtmlName,"A space is not allowed here",t);for(var r=!1;!r;)switch(e.peekTokenKind()){case u.Hyphen:case u.Period:case u.AsciiWord:e.readToken();break;default:r=!0;break}var i=e.tryExtractAccumulatedSequence();if(!i)return this._createFailureForToken(e,v.MalformedHtmlName,"Expecting an HTML name");var o=i.toString(),a=re.explainIfInvalidHtmlName(o);return a?this._createFailureForTokensSince(e,v.MalformedHtmlName,a,t):this._configuration.validation.reportUnsupportedHtmlElements&&!this._configuration.isHtmlElementSupported(o)?this._createFailureForToken(e,v.UnsupportedHtmlElementName,"The HTML element name ".concat(JSON.stringify(o)," is not defined by your TSDoc configuration"),t):i},n.prototype._parseFencedCode=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),r=t+2;switch(e.peekPreviousTokenKind()){case u.Newline:case u.EndOfInput:break;default:return this._backtrackAndCreateErrorRange(e,t,r,v.CodeFenceOpeningIndent,"The opening backtick for a code fence must appear at the start of the line")}var i="";if(i+=e.readToken(),i+=e.readToken(),i+=e.readToken(),i!=="```")throw new Error("Expecting three backticks");for(var o=e.extractAccumulatedSequence();e.peekTokenKind()===u.Spacing;)e.readToken();for(var a=e.tryExtractAccumulatedSequence(),l=!1,c=void 0;!l;)switch(e.peekTokenKind()){case u.Spacing:case u.Newline:c===void 0&&(c=e.createMarker()),e.peekTokenKind()===u.Newline&&(l=!0),e.readToken();break;case u.Backtick:var d=this._createFailureForToken(e,v.CodeFenceSpecifierSyntax,"The language specifier cannot contain backtick characters");return this._backtrackAndCreateErrorRangeForFailure(e,t,r,"Error parsing code fence: ",d);case u.EndOfInput:var m=this._createFailureForToken(e,v.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(e,t,r,"Error parsing code fence: ",m);default:c=void 0,e.readToken();break}var _=e.extractAccumulatedSequence(),w=_.getNewSequence(_.startIndex,c),b=_.getNewSequence(c,_.endIndex),S=-1,k=-1;l=!1;for(var E;!l;)switch(e.peekTokenKind()){case u.EndOfInput:var m=this._createFailureForToken(e,v.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(e,t,r,"Error parsing code fence: ",m);case u.Newline:for(E=e.readToken(),S=e.createMarker();e.peekTokenKind()===u.Spacing;)E=e.readToken();if(e.peekTokenKind()!==u.Backtick||(k=e.createMarker(),e.readToken(),e.peekTokenKind()!==u.Backtick)||(e.readToken(),e.peekTokenKind()!==u.Backtick))break;e.readToken(),l=!0;break;default:e.readToken();break}E.kind!==u.Newline&&this._parserContext.log.addMessageForTextRange(v.CodeFenceClosingIndent,"The closing delimiter for a code fence must not be indented",E.range);var O=e.extractAccumulatedSequence(),$=O.getNewSequence(O.startIndex,S),K=O.getNewSequence(S,k),D=O.getNewSequence(k,O.endIndex);for(l=!1;!l;)switch(e.peekTokenKind()){case u.Spacing:e.readToken();break;case u.Newline:l=!0,e.readToken();break;case u.EndOfInput:l=!0;break;default:this._parserContext.log.addMessageForTextRange(v.CodeFenceClosingSyntax,"Unexpected characters after closing delimiter for code fence",e.peekToken().range),l=!0;break}var H=e.tryExtractAccumulatedSequence();return new Jn({parsed:!0,configuration:this._configuration,openingFenceExcerpt:o,spacingAfterOpeningFenceExcerpt:a,languageExcerpt:w,spacingAfterLanguageExcerpt:b,codeExcerpt:$,spacingBeforeClosingFenceExcerpt:K,closingFenceExcerpt:D,spacingAfterClosingFenceExcerpt:H})},n.prototype._parseCodeSpan=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==u.Backtick)throw new Error('Expecting a code span starting with a backtick character "`"');e.readToken();for(var r=e.extractAccumulatedSequence(),i=void 0,o=void 0;;){var a=e.peekTokenKind();if(a===u.Backtick){if(e.isAccumulatedSequenceEmpty())return this._backtrackAndCreateErrorRange(e,t,t+1,v.CodeSpanEmpty,"A code span must contain at least one character between the backticks");i=e.extractAccumulatedSequence(),e.readToken(),o=e.extractAccumulatedSequence();break}if(a===u.EndOfInput||a===u.Newline)return this._backtrackAndCreateError(e,t,v.CodeSpanMissingDelimiter,"The code span is missing its closing backtick");e.readToken()}return new Gn({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:r,codeExcerpt:i,closingDelimiterExcerpt:o})},n.prototype._tryReadSpacingAndNewlines=function(e){var t=!1;do switch(e.peekTokenKind()){case u.Spacing:case u.Newline:e.readToken();break;default:t=!0;break}while(!t);return e.tryExtractAccumulatedSequence()},n.prototype._createError=function(e,t,r){e.readToken();var i=e.extractAccumulatedSequence(),o=new Pt({parsed:!0,configuration:this._configuration,textExcerpt:i,messageId:t,errorMessage:r,errorLocation:i});return this._parserContext.log.addMessageForDocErrorText(o),o},n.prototype._backtrackAndCreateError=function(e,t,r,i){return e.backtrackToMarker(t),this._createError(e,r,i)},n.prototype._backtrackAndCreateErrorRange=function(e,t,r,i,o){for(e.backtrackToMarker(t);e.createMarker()!==r;)e.readToken();e.peekTokenKind()!==u.EndOfInput&&e.readToken();var a=e.extractAccumulatedSequence(),l=new Pt({parsed:!0,configuration:this._configuration,textExcerpt:a,messageId:i,errorMessage:o,errorLocation:a});return this._parserContext.log.addMessageForDocErrorText(l),l},n.prototype._backtrackAndCreateErrorForFailure=function(e,t,r,i){e.backtrackToMarker(t),e.readToken();var o=e.extractAccumulatedSequence(),a=new Pt({parsed:!0,configuration:this._configuration,textExcerpt:o,messageId:i.failureMessageId,errorMessage:r+i.failureMessage,errorLocation:i.failureLocation});return this._parserContext.log.addMessageForDocErrorText(a),a},n.prototype._backtrackAndCreateErrorRangeForFailure=function(e,t,r,i,o){for(e.backtrackToMarker(t);e.createMarker()!==r;)e.readToken();e.peekTokenKind()!==u.EndOfInput&&e.readToken();var a=e.extractAccumulatedSequence(),l=new Pt({parsed:!0,configuration:this._configuration,textExcerpt:a,messageId:o.failureMessageId,errorMessage:i+o.failureMessage,errorLocation:o.failureLocation});return this._parserContext.log.addMessageForDocErrorText(l),l},n.prototype._createFailureForToken=function(e,t,r,i){i||(i=e.createMarker());var o=new yt({parserContext:this._parserContext,startIndex:i,endIndex:i+1});return{failureMessageId:t,failureMessage:r,failureLocation:o}},n.prototype._createFailureForTokensSince=function(e,t,r,i){var o=e.createMarker();if(osetTimeout(e,n))}function so(){return/(<%(?:-|_)?\s*[*~]{0,1})\+((?:.|\s)*?%>)/g}function rs(n,e){e=(0,Te.normalizePath)(e);let t=n.vault.getAbstractFileByPath(e);if(!t)throw new P(`Folder "${e}" doesn't exist`);if(!(t instanceof Te.TFolder))throw new P(`${e} is a file, not a folder`);return t}function Mt(n,e){e=(0,Te.normalizePath)(e);let t=n.vault.getAbstractFileByPath(e);if(!t)throw new P(`File "${e}" doesn't exist`);if(!(t instanceof Te.TFile))throw new P(`${e} is a folder, not a file`);return t}function Je(n,e){let t=rs(n,e),r=[];return Te.Vault.recurseChildren(t,i=>{i instanceof Te.TFile&&r.push(i)}),r.sort((i,o)=>i.path.localeCompare(o.path)),r}async function co(n,e){return await Promise.all(e.map(async r=>{let i=await n.vault.cachedRead(r);return is(r,i)}))}function is(n,e){let r=new Rr().parseString(e),i=new Yr(n);return i.description=os(r.docComment.summarySection),i.returns=as(r.docComment.returnsBlock),i.arguments=ss(r.docComment.params),i}function os(n){try{return n.nodes.map(t=>t.getChildNodes().filter(r=>r instanceof Ve).map(r=>r.text).join(` +`?(m.push(t.getNewRange(w,w)),a=c):n._whitespaceCharacterRegExp.test(_)||(l=c,d=pe.CollectingLine);break}}return e.commentRange=t.getNewRange(i,o),e.lines=m,!0},n._whitespaceCharacterRegExp=/^\s$/,n}();var yn=function(){function n(){}return n.readTokens=function(e){n._ensureInitialized();for(var t=[],r=void 0,i=0,o=e;i":u.GreaterThan,"=":u.Equals,"'":u.SingleQuote,'"':u.DoubleQuote,"/":u.Slash,"-":u.Hyphen,"@":u.AtSign,"{":u.LeftCurlyBracket,"}":u.RightCurlyBracket,"`":u.Backtick,".":u.Period,":":u.Colon,",":u.Comma,"[":u.LeftSquareBracket,"]":u.RightSquareBracket,"|":u.Pipe,"(":u.LeftParenthesis,")":u.RightParenthesis,"#":u.PoundSymbol,"+":u.Plus,$:u.DollarSign},o=0,a=Object.getOwnPropertyNames(i);o?@[\\]^`{|}~",n._wordCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",n}();var Rr=function(){function n(e,t){if(this._parserContext=e,this.tokens=e.tokens,t){if(t.parserContext!==this._parserContext)throw new Error("The embeddedTokenSequence must use the same parser context");this._readerStartIndex=t.startIndex,this._readerEndIndex=t.endIndex}else this._readerStartIndex=0,this._readerEndIndex=this.tokens.length;this._currentIndex=this._readerStartIndex,this._accumulatedStartIndex=this._readerStartIndex}return n.prototype.extractAccumulatedSequence=function(){if(this._accumulatedStartIndex===this._currentIndex)throw new Error("Parser assertion failed: The queue should not be empty when extractAccumulatedSequence() is called");var e=new jt({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex});return this._accumulatedStartIndex=this._currentIndex,e},n.prototype.isAccumulatedSequenceEmpty=function(){return this._accumulatedStartIndex===this._currentIndex},n.prototype.tryExtractAccumulatedSequence=function(){if(!this.isAccumulatedSequenceEmpty())return this.extractAccumulatedSequence()},n.prototype.assertAccumulatedSequenceIsEmpty=function(){if(!this.isAccumulatedSequenceEmpty()){var e=new jt({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex}),t=e.tokens.map(function(r){return r.toString()});throw new Error(`Parser assertion failed: The queue should be empty, but it contains: +`+JSON.stringify(t))}},n.prototype.peekToken=function(){return this.tokens[this._currentIndex]},n.prototype.peekTokenKind=function(){return this._currentIndex>=this._readerEndIndex?u.EndOfInput:this.tokens[this._currentIndex].kind},n.prototype.peekTokenAfterKind=function(){return this._currentIndex+1>=this._readerEndIndex?u.EndOfInput:this.tokens[this._currentIndex+1].kind},n.prototype.peekTokenAfterAfterKind=function(){return this._currentIndex+2>=this._readerEndIndex?u.EndOfInput:this.tokens[this._currentIndex+2].kind},n.prototype.readToken=function(){if(this._currentIndex>=this._readerEndIndex)throw new Error("Cannot read past end of stream");var e=this.tokens[this._currentIndex];if(e.kind===u.EndOfInput)throw new Error("The EndOfInput token cannot be read");return this._currentIndex++,e},n.prototype.peekPreviousTokenKind=function(){return this._currentIndex===0?u.EndOfInput:this.tokens[this._currentIndex-1].kind},n.prototype.createMarker=function(){return this._currentIndex},n.prototype.backtrackToMarker=function(e){if(e>this._currentIndex)throw new Error("The marker has expired");this._currentIndex=e,e" character should be escaped using a backslash to avoid confusion with an HTML tag'));break;case u.Backtick:this._pushAccumulatedPlainText(e),e.peekTokenAfterKind()===u.Backtick&&e.peekTokenAfterAfterKind()===u.Backtick?this._pushNode(this._parseFencedCode(e)):this._pushNode(this._parseCodeSpan(e));break;default:e.readToken();break}this._pushAccumulatedPlainText(e),this._performValidationChecks()},n.prototype._performValidationChecks=function(){var e=this._parserContext.docComment;e.deprecatedBlock&&(pr.hasAnyTextContent(e.deprecatedBlock)||this._parserContext.log.addMessageForTokenSequence(v.MissingDeprecationMessage,"The ".concat(e.deprecatedBlock.blockTag.tagName," block must include a deprecation message,")+" e.g. describing the recommended alternative",e.deprecatedBlock.blockTag.getTokenSequence(),e.deprecatedBlock)),e.inheritDocTag&&(e.remarksBlock&&this._parserContext.log.addMessageForTokenSequence(v.InheritDocIncompatibleTag,'A "'.concat(e.remarksBlock.blockTag.tagName,'" block must not be used, because that')+" content is provided by the @inheritDoc tag",e.remarksBlock.blockTag.getTokenSequence(),e.remarksBlock.blockTag),pr.hasAnyTextContent(e.summarySection)&&this._parserContext.log.addMessageForTextRange(v.InheritDocIncompatibleSummary,"The summary section must not have any content, because that content is provided by the @inheritDoc tag",this._parserContext.commentRange))},n.prototype._validateTagDefinition=function(e,t,r,i,o){if(e){var a=e.syntaxKind===R.InlineTag;a!==r?r?this._parserContext.log.addMessageForTokenSequence(v.TagShouldNotHaveBraces,'The TSDoc tag "'.concat(t,'" is not an inline tag; it must not be enclosed in "{ }" braces'),i,o):this._parserContext.log.addMessageForTokenSequence(v.InlineTagMissingBraces,'The TSDoc tag "'.concat(t,'" is an inline tag; it must be enclosed in "{ }" braces'),i,o):this._parserContext.configuration.validation.reportUnsupportedTags&&(this._parserContext.configuration.isTagSupported(e)||this._parserContext.log.addMessageForTokenSequence(v.UnsupportedTag,'The TSDoc tag "'.concat(t,'" is not supported by this tool'),i,o))}else this._parserContext.configuration.validation.ignoreUndefinedTags||this._parserContext.log.addMessageForTokenSequence(v.UndefinedTag,'The TSDoc tag "'.concat(t,'" is not defined in this configuration'),i,o)},n.prototype._pushAccumulatedPlainText=function(e){e.isAccumulatedSequenceEmpty()||this._pushNode(new Ve({parsed:!0,configuration:this._configuration,textExcerpt:e.extractAccumulatedSequence()}))},n.prototype._parseAndPushBlock=function(e){var t=this._parserContext.docComment,r=this._parserContext.configuration,i=t.modifierTagSet,o=this._parseBlockTag(e);if(o.kind!==g.BlockTag){this._pushNode(o);return}var a=o,l=r.tryGetTagDefinitionWithUpperCase(a.tagNameWithUpperCase);if(this._validateTagDefinition(l,a.tagName,!1,a.getTokenSequence(),a),l)switch(l.syntaxKind){case R.BlockTag:if(a.tagNameWithUpperCase===G.param.tagNameWithUpperCase){var c=this._parseParamBlock(e,a,G.param.tagName);this._parserContext.docComment.params.add(c),this._currentSection=c.content;return}else if(a.tagNameWithUpperCase===G.typeParam.tagNameWithUpperCase){var c=this._parseParamBlock(e,a,G.typeParam.tagName);this._parserContext.docComment.typeParams.add(c),this._currentSection=c.content;return}else{var d=new Jt({configuration:this._configuration,blockTag:a});this._addBlockToDocComment(d),this._currentSection=d.content}return;case R.ModifierTag:i.addTag(a);return}this._pushNode(a)},n.prototype._addBlockToDocComment=function(e){var t=this._parserContext.docComment;switch(e.blockTag.tagNameWithUpperCase){case G.remarks.tagNameWithUpperCase:t.remarksBlock=e;break;case G.privateRemarks.tagNameWithUpperCase:t.privateRemarks=e;break;case G.deprecated.tagNameWithUpperCase:t.deprecatedBlock=e;break;case G.returns.tagNameWithUpperCase:t.returnsBlock=e;break;case G.see.tagNameWithUpperCase:t._appendSeeBlock(e);break;default:t.appendCustomBlock(e)}},n.prototype._tryParseJSDocTypeOrValueRest=function(e,t,r,i){for(var o,a=1;a>0;){var l=e.peekTokenKind();switch(l){case t:o===void 0&&a++;break;case r:o===void 0&&a--;break;case u.Backslash:o!==void 0&&(e.readToken(),l=e.peekTokenKind());break;case u.DoubleQuote:case u.SingleQuote:case u.Backtick:o===l?o=void 0:o===void 0&&(o=l);break}if(l===u.EndOfInput){e.backtrackToMarker(i);return}e.readToken()}return e.tryExtractAccumulatedSequence()},n.prototype._tryParseUnsupportedJSDocType=function(e,t,r){if(e.assertAccumulatedSequenceIsEmpty(),!(e.peekTokenKind()!==u.LeftCurlyBracket||e.peekTokenAfterKind()===u.AtSign)){var i=e.createMarker();e.readToken();var o=this._tryParseJSDocTypeOrValueRest(e,u.LeftCurlyBracket,u.RightCurlyBracket,i);if(o){this._parserContext.log.addMessageForTokenSequence(v.ParamTagWithInvalidType,"The "+r+" block should not include a JSDoc-style '{type}'",o,t);var a=this._tryReadSpacingAndNewlines(e);a&&(o=o.getNewSequence(o.startIndex,a.endIndex))}return o}},n.prototype._tryParseJSDocOptionalNameRest=function(e){if(e.assertAccumulatedSequenceIsEmpty(),e.peekTokenKind()!==u.EndOfInput){var t=e.createMarker();return this._tryParseJSDocTypeOrValueRest(e,u.LeftSquareBracket,u.RightSquareBracket,t)}},n.prototype._parseParamBlock=function(e,t,r){var i=e.createMarker(),o=this._tryReadSpacingAndNewlines(e),a=this._tryParseUnsupportedJSDocType(e,t,r),l;e.peekTokenKind()===u.LeftSquareBracket&&(e.readToken(),l=e.extractAccumulatedSequence());for(var c="",d=!1;!d;)switch(e.peekTokenKind()){case u.AsciiWord:case u.Period:case u.DollarSign:c+=e.readToken();break;default:d=!0;break}var m=re.explainIfInvalidUnquotedIdentifier(c);if(m!==void 0){e.backtrackToMarker(i);var _=new _n({configuration:this._configuration,blockTag:t,parameterName:""}),w=c.length>0?"The "+r+" block should be followed by a valid parameter name: "+m:"The "+r+" block should be followed by a parameter name";return this._parserContext.log.addMessageForTokenSequence(v.ParamTagWithInvalidName,w,t.getTokenSequence(),t),_}var b=e.extractAccumulatedSequence(),S;if(l){S=this._tryParseJSDocOptionalNameRest(e);var k=l;S&&(k=t.getTokenSequence().getNewSequence(l.startIndex,S.endIndex)),this._parserContext.log.addMessageForTokenSequence(v.ParamTagWithInvalidOptionalName,"The "+r+" should not include a JSDoc-style optional name; it must not be enclosed in '[ ]' brackets.",k,t)}var E=this._tryReadSpacingAndNewlines(e),O=this._tryParseUnsupportedJSDocType(e,t,r),$,K,P;return e.peekTokenKind()===u.Hyphen?(e.readToken(),$=e.extractAccumulatedSequence(),K=this._tryReadSpacingAndNewlines(e),P=this._tryParseUnsupportedJSDocType(e,t,r)):this._parserContext.log.addMessageForTokenSequence(v.ParamTagMissingHyphen,"The "+r+" block should be followed by a parameter name and then a hyphen",t.getTokenSequence(),t),new _n({parsed:!0,configuration:this._configuration,blockTag:t,spacingBeforeParameterNameExcerpt:o,unsupportedJsdocTypeBeforeParameterNameExcerpt:a,unsupportedJsdocOptionalNameOpenBracketExcerpt:l,parameterNameExcerpt:b,parameterName:c,unsupportedJsdocOptionalNameRestExcerpt:S,spacingAfterParameterNameExcerpt:E,unsupportedJsdocTypeAfterParameterNameExcerpt:O,hyphenExcerpt:$,spacingAfterHyphenExcerpt:K,unsupportedJsdocTypeAfterHyphenExcerpt:P})},n.prototype._pushNode=function(e){this._configuration.docNodeManager.isAllowedChild(g.Paragraph,e.kind)?this._currentSection.appendNodeInParagraph(e):this._currentSection.appendNode(e)},n.prototype._parseBackslashEscape=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.readToken(),e.peekTokenKind()===u.EndOfInput)return this._backtrackAndCreateError(e,t,v.UnnecessaryBackslash,"A backslash must precede another character that is being escaped");var r=e.readToken();if(!yn.isPunctuation(r.kind))return this._backtrackAndCreateError(e,t,v.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");var i=e.extractAccumulatedSequence();return new Jn({parsed:!0,configuration:this._configuration,escapeStyle:lr.CommonMarkBackslash,encodedTextExcerpt:i,decodedText:r.toString()})},n.prototype._parseBlockTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==u.AtSign)return this._backtrackAndCreateError(e,t,v.MissingTag,'Expecting a TSDoc tag starting with "@"');switch(e.peekPreviousTokenKind()){case u.EndOfInput:case u.Spacing:case u.Newline:break;default:return this._backtrackAndCreateError(e,t,v.AtSignInWord,'The "@" character looks like part of a TSDoc tag; use a backslash to escape it')}var r=e.readToken().toString();if(e.peekTokenKind()!==u.AsciiWord)return this._backtrackAndCreateError(e,t,v.AtSignWithoutTagName,'Expecting a TSDoc tag name after "@"; if it is not a tag, use a backslash to escape this character');for(var i=e.createMarker();e.peekTokenKind()===u.AsciiWord;)r+=e.readToken().toString();switch(e.peekTokenKind()){case u.Spacing:case u.Newline:case u.EndOfInput:break;default:var o=e.peekToken().range.toString()[0];return this._backtrackAndCreateError(e,t,v.CharactersAfterBlockTag,'The token "'.concat(r,'" looks like a TSDoc tag but contains an invalid character')+" ".concat(JSON.stringify(o),'; if it is not a tag, use a backslash to escape the "@"'))}if(re.explainIfInvalidTSDocTagName(r)){var a=this._createFailureForTokensSince(e,v.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",i);return this._backtrackAndCreateErrorForFailure(e,t,"",a)}return new Gn({parsed:!0,configuration:this._configuration,tagName:r,tagNameExcerpt:e.extractAccumulatedSequence()})},n.prototype._parseInlineTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==u.LeftCurlyBracket)return this._backtrackAndCreateError(e,t,v.MissingTag,'Expecting a TSDoc tag starting with "{"');e.readToken();var r=e.extractAccumulatedSequence(),i=e.createMarker();if(e.peekTokenKind()!==u.AtSign)return this._backtrackAndCreateError(e,t,v.MalformedInlineTag,'Expecting a TSDoc tag starting with "{@"');for(var o=e.readToken().toString();e.peekTokenKind()===u.AsciiWord;)o+=e.readToken().toString();if(o==="@"){var a=this._createFailureForTokensSince(e,v.MalformedInlineTag,'Expecting a TSDoc inline tag name after the "{@" characters',i);return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}if(re.explainIfInvalidTSDocTagName(o)){var a=this._createFailureForTokensSince(e,v.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",i);return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}var l=e.extractAccumulatedSequence(),c=this._tryReadSpacingAndNewlines(e);if(c===void 0&&e.peekTokenKind()!==u.RightCurlyBracket){var d=e.peekToken().range.toString()[0],a=this._createFailureForToken(e,v.CharactersAfterInlineTag,"The character ".concat(JSON.stringify(d)," cannot appear after the TSDoc tag name; expecting a space"));return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}for(var m=!1;!m;)switch(e.peekTokenKind()){case u.EndOfInput:return this._backtrackAndCreateErrorRange(e,t,i,v.InlineTagMissingRightBrace,'The TSDoc inline tag name is missing its closing "}"');case u.Backslash:if(e.readToken(),!yn.isPunctuation(e.peekTokenKind())){var a=this._createFailureForToken(e,v.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"Error reading inline TSDoc tag: ",a)}e.readToken();break;case u.LeftCurlyBracket:{var a=this._createFailureForToken(e,v.InlineTagUnescapedBrace,'The "{" character must be escaped with a backslash when used inside a TSDoc inline tag');return this._backtrackAndCreateErrorRangeForFailure(e,t,i,"",a)}case u.RightCurlyBracket:m=!0;break;default:e.readToken();break}var _=e.tryExtractAccumulatedSequence();e.readToken();var w=e.extractAccumulatedSequence(),b={parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:r,tagNameExcerpt:l,tagName:o,spacingAfterTagNameExcerpt:c,tagContentExcerpt:_,closingDelimiterExcerpt:w},S=o.toUpperCase(),k=new Rr(this._parserContext,_||jt.createEmpty(this._parserContext)),E;switch(S){case G.inheritDoc.tagNameWithUpperCase:E=this._parseInheritDocTag(b,k);break;case G.link.tagNameWithUpperCase:E=this._parseLinkTag(b,k);break;default:E=new Qt(b)}var O=this._parserContext.configuration.tryGetTagDefinitionWithUpperCase(S);return this._validateTagDefinition(O,o,!0,l,E),E},n.prototype._parseInheritDocTag=function(e,t){var r=new Qt(e),i=ur({},e);if(t.peekTokenKind()!==u.EndOfInput){if(i.declarationReference=this._parseDeclarationReference(t,e.tagNameExcerpt,r),!i.declarationReference)return r;if(t.peekTokenKind()!==u.EndOfInput)return t.readToken(),this._parserContext.log.addMessageForTokenSequence(v.InheritDocTagSyntax,"Unexpected character after declaration reference",t.extractAccumulatedSequence(),r),r}return new hn(i)},n.prototype._parseLinkTag=function(e,t){var r=new Qt(e),i=ur({},e);if(!e.tagContentExcerpt)return this._parserContext.log.addMessageForTokenSequence(v.LinkTagEmpty,"The @link tag content is missing",i.tagNameExcerpt,r),r;for(var o=t.peekTokenKind()===u.Slash&&t.peekTokenAfterKind()===u.Slash,a=t.createMarker(),l=o;!l;)switch(t.peekTokenKind()){case u.AsciiWord:case u.Period:case u.Hyphen:case u.Plus:t.readToken();break;case u.Colon:t.readToken(),o=t.peekTokenKind()===u.Slash&&t.peekTokenAfterKind()===u.Slash,l=!0;break;default:l=!0}if(t.backtrackToMarker(a),o){if(!this._parseLinkTagUrlDestination(t,i,e.tagNameExcerpt,r))return r}else if(!this._parseLinkTagCodeDestination(t,i,e.tagNameExcerpt,r))return r;if(t.peekTokenKind()===u.Spacing)throw new Error("Unconsumed spacing encountered after construct");if(t.peekTokenKind()===u.Pipe){t.readToken(),i.pipeExcerpt=t.extractAccumulatedSequence(),i.spacingAfterPipeExcerpt=this._tryReadSpacingAndNewlines(t),l=!1;for(var c=void 0;!l;)switch(t.peekTokenKind()){case u.EndOfInput:l=!0;break;case u.Pipe:case u.LeftCurlyBracket:var d=t.readToken().toString();return this._parserContext.log.addMessageForTokenSequence(v.LinkTagUnescapedText,'The "'.concat(d,'" character may not be used in the link text without escaping it'),t.extractAccumulatedSequence(),r),r;case u.Spacing:case u.Newline:t.readToken();break;default:c=t.createMarker()+1,t.readToken()}var m=t.tryExtractAccumulatedSequence();m&&(c===void 0?i.spacingAfterLinkTextExcerpt=m:c>=m.endIndex?i.linkTextExcerpt=m:(i.linkTextExcerpt=m.getNewSequence(m.startIndex,c),i.spacingAfterLinkTextExcerpt=m.getNewSequence(c,m.endIndex)))}else if(t.peekTokenKind()!==u.EndOfInput)return t.readToken(),this._parserContext.log.addMessageForTokenSequence(v.LinkTagDestinationSyntax,"Unexpected character after link destination",t.extractAccumulatedSequence(),r),r;return new tr(i)},n.prototype._parseLinkTagUrlDestination=function(e,t,r,i){for(var o="",a=!1;!a;)switch(e.peekTokenKind()){case u.Spacing:case u.Newline:case u.EndOfInput:case u.Pipe:case u.RightCurlyBracket:a=!0;break;default:o+=e.readToken();break}if(o.length===0)throw new Error("Missing URL in _parseLinkTagUrlDestination()");var l=e.extractAccumulatedSequence(),c=re.explainIfInvalidLinkUrl(o);return c?(this._parserContext.log.addMessageForTokenSequence(v.LinkTagInvalidUrl,c,l,i),!1):(t.urlDestinationExcerpt=l,t.spacingAfterDestinationExcerpt=this._tryReadSpacingAndNewlines(e),!0)},n.prototype._parseLinkTagCodeDestination=function(e,t,r,i){return t.codeDestination=this._parseDeclarationReference(e,r,i),!!t.codeDestination},n.prototype._parseDeclarationReference=function(e,t,r){e.assertAccumulatedSequenceIsEmpty();for(var i=e.createMarker(),o=!1,a=!0,l=!1,c=!1;!c;)switch(e.peekTokenKind()){case u.DoubleQuote:case u.EndOfInput:case u.LeftCurlyBracket:case u.LeftParenthesis:case u.LeftSquareBracket:case u.Newline:case u.Pipe:case u.RightCurlyBracket:case u.RightParenthesis:case u.RightSquareBracket:case u.SingleQuote:case u.Spacing:c=!0;break;case u.PoundSymbol:o=!0,c=!0;break;case u.Slash:case u.AtSign:a&&(l=!0),e.readToken();break;case u.AsciiWord:case u.Period:case u.Hyphen:e.readToken();break;default:a=!1,e.readToken()}if(!o&&l){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingHash,'The declaration reference appears to contain a package name or import path, but it is missing the "#" delimiter',e.extractAccumulatedSequence(),r);return}e.backtrackToMarker(i);var d,m,_,w;if(o){if(e.peekTokenKind()!==u.Period){var b=e.peekTokenKind()===u.AtSign,S=!1;for(c=!1;!c;)switch(e.peekTokenKind()){case u.EndOfInput:throw new Error("Expecting pound symbol");case u.Slash:b&&!S?(e.readToken(),S=!0):c=!0;break;case u.PoundSymbol:c=!0;break;default:e.readToken()}if(!e.isAccumulatedSequenceEmpty()){d=e.extractAccumulatedSequence();var k=re.explainIfInvalidPackageName(d.toString());if(k){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMalformedPackageName,k,d,r);return}}}for(c=!1;!c;)switch(e.peekTokenKind()){case u.EndOfInput:throw new Error("Expecting pound symbol");case u.PoundSymbol:c=!0;break;default:e.readToken()}if(!e.isAccumulatedSequenceEmpty()){m=e.extractAccumulatedSequence();var k=re.explainIfInvalidImportPath(m.toString(),!!d);if(k){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMalformedImportPath,k,m,r);return}}if(e.peekTokenKind()!==u.PoundSymbol)throw new Error("Expecting pound symbol");if(e.readToken(),_=e.extractAccumulatedSequence(),w=this._tryReadSpacingAndNewlines(e),d===void 0&&m===void 0){this._parserContext.log.addMessageForTokenSequence(v.ReferenceHashSyntax,"The hash character must be preceded by a package name or import path",_,r);return}}var E=[];for(c=!1;!c;)switch(e.peekTokenKind()){case u.Period:case u.LeftParenthesis:case u.AsciiWord:case u.Colon:case u.LeftSquareBracket:case u.DoubleQuote:var O=E.length>0,$=this._parseMemberReference(e,O,t,r);if(!$)return;E.push($);break;default:c=!0}if(d===void 0&&m===void 0&&E.length===0){this._parserContext.log.addMessageForTokenSequence(v.MissingReference,"Expecting a declaration reference",t,r);return}return new zn({parsed:!0,configuration:this._configuration,packageNameExcerpt:d,importPathExcerpt:m,importHashExcerpt:_,spacingAfterImportHashExcerpt:w,memberReferences:E})},n.prototype._parseMemberReference=function(e,t,r,i){var o={parsed:!0,configuration:this._configuration};if(t){if(e.peekTokenKind()!==u.Period){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingDot,"Expecting a period before the next component of a declaration reference",r,i);return}e.readToken(),o.dotExcerpt=e.extractAccumulatedSequence(),o.spacingAfterDotExcerpt=this._tryReadSpacingAndNewlines(e)}if(e.peekTokenKind()===u.LeftParenthesis&&(e.readToken(),o.leftParenthesisExcerpt=e.extractAccumulatedSequence(),o.spacingAfterLeftParenthesisExcerpt=this._tryReadSpacingAndNewlines(e)),e.peekTokenKind()===u.LeftSquareBracket){if(o.memberSymbol=this._parseMemberSymbol(e,i),!o.memberSymbol)return}else if(o.memberIdentifier=this._parseMemberIdentifier(e,r,i),!o.memberIdentifier)return;if(o.spacingAfterMemberExcerpt=this._tryReadSpacingAndNewlines(e),e.peekTokenKind()===u.Colon){if(e.readToken(),o.colonExcerpt=e.extractAccumulatedSequence(),o.spacingAfterColonExcerpt=this._tryReadSpacingAndNewlines(e),!o.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(v.ReferenceSelectorMissingParens,"Syntax error in declaration reference: the member selector must be enclosed in parentheses",o.colonExcerpt,i);return}if(o.selector=this._parseMemberSelector(e,o.colonExcerpt,i),!o.selector)return;o.spacingAfterSelectorExcerpt=this._tryReadSpacingAndNewlines(e)}else if(o.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingColon,"Expecting a colon after the identifier because the expression is in parentheses",o.leftParenthesisExcerpt,i);return}if(o.leftParenthesisExcerpt){if(e.peekTokenKind()!==u.RightParenthesis){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingRightParen,"Expecting a matching right parenthesis",o.leftParenthesisExcerpt,i);return}e.readToken(),o.rightParenthesisExcerpt=e.extractAccumulatedSequence(),o.spacingAfterRightParenthesisExcerpt=this._tryReadSpacingAndNewlines(e)}return new nr(o)},n.prototype._parseMemberSymbol=function(e,t){if(e.peekTokenKind()!==u.LeftSquareBracket)throw new Error('Expecting "["');e.readToken();var r=e.extractAccumulatedSequence(),i=this._tryReadSpacingAndNewlines(e),o=this._parseDeclarationReference(e,r,t);if(!o){this._parserContext.log.addMessageForTokenSequence(v.ReferenceSymbolSyntax,"Missing declaration reference in symbol reference",r,t);return}if(e.peekTokenKind()!==u.RightSquareBracket){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingRightBracket,"Missing closing square bracket for symbol reference",r,t);return}e.readToken();var a=e.extractAccumulatedSequence();return new ir({parsed:!0,configuration:this._configuration,leftBracketExcerpt:r,spacingAfterLeftBracketExcerpt:i,symbolReference:o,rightBracketExcerpt:a})},n.prototype._parseMemberIdentifier=function(e,t,r){var i=void 0,o=void 0;if(e.peekTokenKind()===u.DoubleQuote){for(e.readToken(),i=e.extractAccumulatedSequence();e.peekTokenKind()!==u.DoubleQuote;){if(e.peekTokenKind()===u.EndOfInput){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingQuote,"Unexpected end of input inside quoted member identifier",i,r);return}e.readToken()}if(e.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(v.ReferenceEmptyIdentifier,"The quoted identifier cannot be empty",i,r);return}var a=e.extractAccumulatedSequence();return e.readToken(),o=e.extractAccumulatedSequence(),new An({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:i,identifierExcerpt:a,rightQuoteExcerpt:o})}else{for(var l=!1;!l;)switch(e.peekTokenKind()){case u.AsciiWord:case u.DollarSign:e.readToken();break;default:l=!0;break}if(e.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingIdentifier,"Syntax error in declaration reference: expecting a member identifier",t,r);return}var a=e.extractAccumulatedSequence(),c=a.toString(),d=re.explainIfInvalidUnquotedMemberIdentifier(c);if(d){this._parserContext.log.addMessageForTokenSequence(v.ReferenceUnquotedIdentifier,d,a,r);return}return new An({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:i,identifierExcerpt:a,rightQuoteExcerpt:o})}},n.prototype._parseMemberSelector=function(e,t,r){e.peekTokenKind()!==u.AsciiWord&&this._parserContext.log.addMessageForTokenSequence(v.ReferenceMissingLabel,"Expecting a selector label after the colon",t,r);var i=e.readToken().toString(),o=e.extractAccumulatedSequence(),a=new rr({parsed:!0,configuration:this._configuration,selectorExcerpt:o,selector:i});if(a.errorMessage){this._parserContext.log.addMessageForTokenSequence(v.ReferenceSelectorSyntax,a.errorMessage,o,r);return}return a},n.prototype._parseHtmlStartTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),r=e.readToken();if(r.kind!==u.LessThan)throw new Error('Expecting an HTML tag starting with "<"');var i=e.extractAccumulatedSequence(),o=this._parseHtmlName(e);if(jn(o))return this._backtrackAndCreateErrorForFailure(e,t,"Invalid HTML element: ",o);for(var a=this._tryReadSpacingAndNewlines(e),l=[];e.peekTokenKind()===u.AsciiWord;){var c=this._parseHtmlAttribute(e);if(jn(c))return this._backtrackAndCreateErrorForFailure(e,t,"The HTML element has an invalid attribute: ",c);l.push(c)}e.assertAccumulatedSequenceIsEmpty();var d=e.createMarker(),m=!1;if(e.peekTokenKind()===u.Slash&&(e.readToken(),m=!0),e.peekTokenKind()!==u.GreaterThan){var _=this._createFailureForTokensSince(e,v.HtmlTagMissingGreaterThan,'Expecting an attribute or ">" or "/>"',d);return this._backtrackAndCreateErrorForFailure(e,t,"The HTML tag has invalid syntax: ",_)}e.readToken();var w=e.extractAccumulatedSequence();return new er({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:i,nameExcerpt:o,spacingAfterNameExcerpt:a,htmlAttributes:l,selfClosingTag:m,closingDelimiterExcerpt:w})},n.prototype._parseHtmlAttribute=function(e){e.assertAccumulatedSequenceIsEmpty();var t=this._parseHtmlName(e);if(jn(t))return t;var r=this._tryReadSpacingAndNewlines(e);if(e.peekTokenKind()!==u.Equals)return this._createFailureForToken(e,v.HtmlTagMissingEquals,'Expecting "=" after HTML attribute name');e.readToken();var i=e.extractAccumulatedSequence(),o=this._tryReadSpacingAndNewlines(e),a=this._parseHtmlString(e);if(jn(a))return a;var l=e.extractAccumulatedSequence(),c=this._tryReadSpacingAndNewlines(e);return new Xn({parsed:!0,configuration:this._configuration,nameExcerpt:t,spacingAfterNameExcerpt:r,equalsExcerpt:i,spacingAfterEqualsExcerpt:o,valueExcerpt:l,spacingAfterValueExcerpt:c})},n.prototype._parseHtmlString=function(e){var t=e.createMarker(),r=e.peekTokenKind();if(r!==u.DoubleQuote&&r!==u.SingleQuote)return this._createFailureForToken(e,v.HtmlTagMissingString,"Expecting an HTML string starting with a single-quote or double-quote character");e.readToken();for(var i="";;){var o=e.peekTokenKind();if(o===r){e.readToken();break}if(o===u.EndOfInput||o===u.Newline)return this._createFailureForToken(e,v.HtmlStringMissingQuote,"The HTML string is missing its closing quote",t);i+=e.readToken().toString()}return e.peekTokenKind()===u.AsciiWord?this._createFailureForToken(e,v.TextAfterHtmlString,"The next character after a closing quote must be spacing or punctuation"):i},n.prototype._parseHtmlEndTag=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),r=e.peekToken();if(r.kind!==u.LessThan)return this._backtrackAndCreateError(e,t,v.MissingHtmlEndTag,'Expecting an HTML tag starting with "" for the HTML tag');return this._backtrackAndCreateErrorForFailure(e,t,"",c)}e.readToken();var d=e.extractAccumulatedSequence();return new Zn({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:o,nameExcerpt:a,spacingAfterNameExcerpt:l,closingDelimiterExcerpt:d})},n.prototype._parseHtmlName=function(e){var t=e.createMarker();if(e.peekTokenKind()===u.Spacing)return this._createFailureForTokensSince(e,v.MalformedHtmlName,"A space is not allowed here",t);for(var r=!1;!r;)switch(e.peekTokenKind()){case u.Hyphen:case u.Period:case u.AsciiWord:e.readToken();break;default:r=!0;break}var i=e.tryExtractAccumulatedSequence();if(!i)return this._createFailureForToken(e,v.MalformedHtmlName,"Expecting an HTML name");var o=i.toString(),a=re.explainIfInvalidHtmlName(o);return a?this._createFailureForTokensSince(e,v.MalformedHtmlName,a,t):this._configuration.validation.reportUnsupportedHtmlElements&&!this._configuration.isHtmlElementSupported(o)?this._createFailureForToken(e,v.UnsupportedHtmlElementName,"The HTML element name ".concat(JSON.stringify(o)," is not defined by your TSDoc configuration"),t):i},n.prototype._parseFencedCode=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker(),r=t+2;switch(e.peekPreviousTokenKind()){case u.Newline:case u.EndOfInput:break;default:return this._backtrackAndCreateErrorRange(e,t,r,v.CodeFenceOpeningIndent,"The opening backtick for a code fence must appear at the start of the line")}var i="";if(i+=e.readToken(),i+=e.readToken(),i+=e.readToken(),i!=="```")throw new Error("Expecting three backticks");for(var o=e.extractAccumulatedSequence();e.peekTokenKind()===u.Spacing;)e.readToken();for(var a=e.tryExtractAccumulatedSequence(),l=!1,c=void 0;!l;)switch(e.peekTokenKind()){case u.Spacing:case u.Newline:c===void 0&&(c=e.createMarker()),e.peekTokenKind()===u.Newline&&(l=!0),e.readToken();break;case u.Backtick:var d=this._createFailureForToken(e,v.CodeFenceSpecifierSyntax,"The language specifier cannot contain backtick characters");return this._backtrackAndCreateErrorRangeForFailure(e,t,r,"Error parsing code fence: ",d);case u.EndOfInput:var m=this._createFailureForToken(e,v.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(e,t,r,"Error parsing code fence: ",m);default:c=void 0,e.readToken();break}var _=e.extractAccumulatedSequence(),w=_.getNewSequence(_.startIndex,c),b=_.getNewSequence(c,_.endIndex),S=-1,k=-1;l=!1;for(var E;!l;)switch(e.peekTokenKind()){case u.EndOfInput:var m=this._createFailureForToken(e,v.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(e,t,r,"Error parsing code fence: ",m);case u.Newline:for(E=e.readToken(),S=e.createMarker();e.peekTokenKind()===u.Spacing;)E=e.readToken();if(e.peekTokenKind()!==u.Backtick||(k=e.createMarker(),e.readToken(),e.peekTokenKind()!==u.Backtick)||(e.readToken(),e.peekTokenKind()!==u.Backtick))break;e.readToken(),l=!0;break;default:e.readToken();break}E.kind!==u.Newline&&this._parserContext.log.addMessageForTextRange(v.CodeFenceClosingIndent,"The closing delimiter for a code fence must not be indented",E.range);var O=e.extractAccumulatedSequence(),$=O.getNewSequence(O.startIndex,S),K=O.getNewSequence(S,k),P=O.getNewSequence(k,O.endIndex);for(l=!1;!l;)switch(e.peekTokenKind()){case u.Spacing:e.readToken();break;case u.Newline:l=!0,e.readToken();break;case u.EndOfInput:l=!0;break;default:this._parserContext.log.addMessageForTextRange(v.CodeFenceClosingSyntax,"Unexpected characters after closing delimiter for code fence",e.peekToken().range),l=!0;break}var H=e.tryExtractAccumulatedSequence();return new Qn({parsed:!0,configuration:this._configuration,openingFenceExcerpt:o,spacingAfterOpeningFenceExcerpt:a,languageExcerpt:w,spacingAfterLanguageExcerpt:b,codeExcerpt:$,spacingBeforeClosingFenceExcerpt:K,closingFenceExcerpt:P,spacingAfterClosingFenceExcerpt:H})},n.prototype._parseCodeSpan=function(e){e.assertAccumulatedSequenceIsEmpty();var t=e.createMarker();if(e.peekTokenKind()!==u.Backtick)throw new Error('Expecting a code span starting with a backtick character "`"');e.readToken();for(var r=e.extractAccumulatedSequence(),i=void 0,o=void 0;;){var a=e.peekTokenKind();if(a===u.Backtick){if(e.isAccumulatedSequenceEmpty())return this._backtrackAndCreateErrorRange(e,t,t+1,v.CodeSpanEmpty,"A code span must contain at least one character between the backticks");i=e.extractAccumulatedSequence(),e.readToken(),o=e.extractAccumulatedSequence();break}if(a===u.EndOfInput||a===u.Newline)return this._backtrackAndCreateError(e,t,v.CodeSpanMissingDelimiter,"The code span is missing its closing backtick");e.readToken()}return new Wn({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:r,codeExcerpt:i,closingDelimiterExcerpt:o})},n.prototype._tryReadSpacingAndNewlines=function(e){var t=!1;do switch(e.peekTokenKind()){case u.Spacing:case u.Newline:e.readToken();break;default:t=!0;break}while(!t);return e.tryExtractAccumulatedSequence()},n.prototype._createError=function(e,t,r){e.readToken();var i=e.extractAccumulatedSequence(),o=new Nt({parsed:!0,configuration:this._configuration,textExcerpt:i,messageId:t,errorMessage:r,errorLocation:i});return this._parserContext.log.addMessageForDocErrorText(o),o},n.prototype._backtrackAndCreateError=function(e,t,r,i){return e.backtrackToMarker(t),this._createError(e,r,i)},n.prototype._backtrackAndCreateErrorRange=function(e,t,r,i,o){for(e.backtrackToMarker(t);e.createMarker()!==r;)e.readToken();e.peekTokenKind()!==u.EndOfInput&&e.readToken();var a=e.extractAccumulatedSequence(),l=new Nt({parsed:!0,configuration:this._configuration,textExcerpt:a,messageId:i,errorMessage:o,errorLocation:a});return this._parserContext.log.addMessageForDocErrorText(l),l},n.prototype._backtrackAndCreateErrorForFailure=function(e,t,r,i){e.backtrackToMarker(t),e.readToken();var o=e.extractAccumulatedSequence(),a=new Nt({parsed:!0,configuration:this._configuration,textExcerpt:o,messageId:i.failureMessageId,errorMessage:r+i.failureMessage,errorLocation:i.failureLocation});return this._parserContext.log.addMessageForDocErrorText(a),a},n.prototype._backtrackAndCreateErrorRangeForFailure=function(e,t,r,i,o){for(e.backtrackToMarker(t);e.createMarker()!==r;)e.readToken();e.peekTokenKind()!==u.EndOfInput&&e.readToken();var a=e.extractAccumulatedSequence(),l=new Nt({parsed:!0,configuration:this._configuration,textExcerpt:a,messageId:o.failureMessageId,errorMessage:i+o.failureMessage,errorLocation:o.failureLocation});return this._parserContext.log.addMessageForDocErrorText(l),l},n.prototype._createFailureForToken=function(e,t,r,i){i||(i=e.createMarker());var o=new jt({parserContext:this._parserContext,startIndex:i,endIndex:i+1});return{failureMessageId:t,failureMessage:r,failureLocation:o}},n.prototype._createFailureForTokensSince=function(e,t,r,i){var o=e.createMarker();if(osetTimeout(e,n))}function lo(){return/(<%(?:-|_)?\s*[*~]{0,1})\+((?:.|\s)*?%>)/g}function Wr(n,e){e=(0,Te.normalizePath)(e);let t=n.vault.getAbstractFileByPath(e);if(!t)throw new D(`Folder "${e}" doesn't exist`);if(!(t instanceof Te.TFolder))throw new D(`${e} is a file, not a folder`);return t}function pt(n,e){e=(0,Te.normalizePath)(e);let t=n.vault.getAbstractFileByPath(e);if(!t)throw new D(`File "${e}" doesn't exist`);if(!(t instanceof Te.TFile))throw new D(`${e} is a folder, not a file`);return t}function Je(n,e){let t=Wr(n,e),r=[];return Te.Vault.recurseChildren(t,i=>{i instanceof Te.TFile&&r.push(i)}),r.sort((i,o)=>i.path.localeCompare(o.path)),r}async function po(n,e){return await Promise.all(e.map(async r=>{let i=await n.vault.cachedRead(r);return is(r,i)}))}function is(n,e){let r=new Yr().parseString(e),i=new Ur(n);return i.description=os(r.docComment.summarySection),i.returns=as(r.docComment.returnsBlock),i.arguments=ss(r.docComment.params),i}function os(n){try{return n.nodes.map(t=>t.getChildNodes().filter(r=>r instanceof Ve).map(r=>r.text).join(` `)).join(` -`)}catch{console.error("Failed to parse summary section")}}function as(n){if(!n)return"";try{return n.content.nodes[0].getChildNodes()[0].text.trim()}catch{return""}}function ss(n){try{return n.blocks.map(r=>{let i=r.parameterName,o=r.content.getChildNodes()[0].getChildNodes().filter(a=>a instanceof Ve).map(a=>a.text).join(" ");return new Ur(i,o)})}catch{return[]}}function Ot(n,e,t){if(t<0||t===n.length)return;let r=n[e];n[e]=n[t],n[t]=r}function vt(n){return n.workspace.activeEditor?.file??n.workspace.getActiveFile()}function lo(n){let e=n.lastIndexOf("/");return e!==-1?n.slice(0,e):""}function jn(n){return n!==null&&typeof n=="object"}function po(n){let e=n.toString(),t=e.indexOf("(");return e.substring(t+1,e.indexOf(")")).replace(/ /g,"").split(",")}function Gr(n,e,t){let r=n instanceof HTMLOListElement?"li":"p",i=n.createEl(r),o=n.createEl("b",{text:e});return i.appendChild(o),i.appendChild(document.createTextNode(`: ${t}`)),i}function ur(n,e){if(Object.keys(e).length!==0){for(let t in e)if(e.hasOwnProperty(t))if(n.hasOwnProperty(t)){let r=n[t],i=e[t];if(Array.isArray(r)||Array.isArray(i)){let o=Array.isArray(r)?r:[r],a=Array.isArray(i)?i:[i];n[t]=o.concat(a).unique()}else jn(r)&&jn(i)?ur(r,i):i!=null&&i!==""&&(n[t]=i)}else n[t]=e[t]}}function vn(n){let e={},t=(0,Te.getFrontMatterInfo)(n);return t.frontmatter&&(e=(0,Te.parseYaml)(t.frontmatter)),{frontmatter:e,content:n.slice(t.contentStart)}}var Bo=X(require("obsidian"));var Mo=X(require("obsidian"));var ie="top",ue="bottom",ce="right",ae="left",fr="auto",wt=[ie,ue,ce,ae],pt="start",Bt="end",uo="clippingParents",dr="viewport",Zt="popper",fo="reference",Wr=wt.reduce(function(n,e){return n.concat([e+"-"+pt,e+"-"+Bt])},[]),mr=[].concat(wt,[fr]).reduce(function(n,e){return n.concat([e,e+"-"+pt,e+"-"+Bt])},[]),cs="beforeRead",ls="read",ps="afterRead",us="beforeMain",fs="main",ds="afterMain",ms="beforeWrite",gs="write",hs="afterWrite",mo=[cs,ls,ps,us,fs,ds,ms,gs,hs];function me(n){return n?(n.nodeName||"").toLowerCase():null}function Z(n){if(n==null)return window;if(n.toString()!=="[object Window]"){var e=n.ownerDocument;return e&&e.defaultView||window}return n}function Me(n){var e=Z(n).Element;return n instanceof e||n instanceof Element}function fe(n){var e=Z(n).HTMLElement;return n instanceof e||n instanceof HTMLElement}function en(n){if(typeof ShadowRoot=="undefined")return!1;var e=Z(n).ShadowRoot;return n instanceof e||n instanceof ShadowRoot}function As(n){var e=n.state;Object.keys(e.elements).forEach(function(t){var r=e.styles[t]||{},i=e.attributes[t]||{},o=e.elements[t];!fe(o)||!me(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(a){var l=i[a];l===!1?o.removeAttribute(a):o.setAttribute(a,l===!0?"":l)}))})}function _s(n){var e=n.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(r){var i=e.elements[r],o=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:t[r]),l=a.reduce(function(c,d){return c[d]="",c},{});!fe(i)||!me(i)||(Object.assign(i.style,l),Object.keys(o).forEach(function(c){i.removeAttribute(c)}))})}}var go={name:"applyStyles",enabled:!0,phase:"write",fn:As,effect:_s,requires:["computeStyles"]};function ge(n){return n.split("-")[0]}var qe=Math.max,It=Math.min,ut=Math.round;function tn(){var n=navigator.userAgentData;return n!=null&&n.brands&&Array.isArray(n.brands)?n.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function wn(){return!/^((?!chrome|android).)*safari/i.test(tn())}function Oe(n,e,t){e===void 0&&(e=!1),t===void 0&&(t=!1);var r=n.getBoundingClientRect(),i=1,o=1;e&&fe(n)&&(i=n.offsetWidth>0&&ut(r.width)/n.offsetWidth||1,o=n.offsetHeight>0&&ut(r.height)/n.offsetHeight||1);var a=Me(n)?Z(n):window,l=a.visualViewport,c=!wn()&&t,d=(r.left+(c&&l?l.offsetLeft:0))/i,m=(r.top+(c&&l?l.offsetTop:0))/o,_=r.width/i,w=r.height/o;return{width:_,height:w,top:m,right:d+_,bottom:m+w,left:d,x:d,y:m}}function Ft(n){var e=Oe(n),t=n.offsetWidth,r=n.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:n.offsetLeft,y:n.offsetTop,width:t,height:r}}function bn(n,e){var t=e.getRootNode&&e.getRootNode();if(n.contains(e))return!0;if(t&&en(t)){var r=e;do{if(r&&n.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function we(n){return Z(n).getComputedStyle(n)}function Vr(n){return["table","td","th"].indexOf(me(n))>=0}function Ae(n){return((Me(n)?n.ownerDocument:n.document)||window.document).documentElement}function ft(n){return me(n)==="html"?n:n.assignedSlot||n.parentNode||(en(n)?n.host:null)||Ae(n)}function ho(n){return!fe(n)||we(n).position==="fixed"?null:n.offsetParent}function xs(n){var e=/firefox/i.test(tn()),t=/Trident/i.test(tn());if(t&&fe(n)){var r=we(n);if(r.position==="fixed")return null}var i=ft(n);for(en(i)&&(i=i.host);fe(i)&&["html","body"].indexOf(me(i))<0;){var o=we(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||e&&o.willChange==="filter"||e&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function Le(n){for(var e=Z(n),t=ho(n);t&&Vr(t)&&we(t).position==="static";)t=ho(t);return t&&(me(t)==="html"||me(t)==="body"&&we(t).position==="static")?e:t||xs(n)||e}function qt(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}function Lt(n,e,t){return qe(n,It(e,t))}function Ao(n,e,t){var r=Lt(n,e,t);return r>t?t:r}function En(){return{top:0,right:0,bottom:0,left:0}}function Tn(n){return Object.assign({},En(),n)}function kn(n,e){return e.reduce(function(t,r){return t[r]=n,t},{})}var ys=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,Tn(typeof e!="number"?e:kn(e,wt))};function js(n){var e,t=n.state,r=n.name,i=n.options,o=t.elements.arrow,a=t.modifiersData.popperOffsets,l=ge(t.placement),c=qt(l),d=[ae,ce].indexOf(l)>=0,m=d?"height":"width";if(!(!o||!a)){var _=ys(i.padding,t),w=Ft(o),b=c==="y"?ie:ae,S=c==="y"?ue:ce,k=t.rects.reference[m]+t.rects.reference[c]-a[c]-t.rects.popper[m],E=a[c]-t.rects.reference[c],O=Le(o),$=O?c==="y"?O.clientHeight||0:O.clientWidth||0:0,K=k/2-E/2,D=_[b],H=$-w[m]-_[S],F=$/2-w[m]/2+K,J=Lt(D,F,H),te=c;t.modifiersData[r]=(e={},e[te]=J,e.centerOffset=J-F,e)}}function vs(n){var e=n.state,t=n.options,r=t.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=e.elements.popper.querySelector(i),!i)||!bn(e.elements.popper,i)||(e.elements.arrow=i))}var _o={name:"arrow",enabled:!0,phase:"main",fn:js,effect:vs,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Be(n){return n.split("-")[1]}var ws={top:"auto",right:"auto",bottom:"auto",left:"auto"};function bs(n,e){var t=n.x,r=n.y,i=e.devicePixelRatio||1;return{x:ut(t*i)/i||0,y:ut(r*i)/i||0}}function xo(n){var e,t=n.popper,r=n.popperRect,i=n.placement,o=n.variation,a=n.offsets,l=n.position,c=n.gpuAcceleration,d=n.adaptive,m=n.roundOffsets,_=n.isFixed,w=a.x,b=w===void 0?0:w,S=a.y,k=S===void 0?0:S,E=typeof m=="function"?m({x:b,y:k}):{x:b,y:k};b=E.x,k=E.y;var O=a.hasOwnProperty("x"),$=a.hasOwnProperty("y"),K=ae,D=ie,H=window;if(d){var F=Le(t),J="clientHeight",te="clientWidth";if(F===Z(t)&&(F=Ae(t),we(F).position!=="static"&&l==="absolute"&&(J="scrollHeight",te="scrollWidth")),F=F,i===ie||(i===ae||i===ce)&&o===Bt){D=ue;var ne=_&&F===H&&H.visualViewport?H.visualViewport.height:F[J];k-=ne-r.height,k*=c?1:-1}if(i===ae||(i===ie||i===ue)&&o===Bt){K=ce;var Q=_&&F===H&&H.visualViewport?H.visualViewport.width:F[te];b-=Q-r.width,b*=c?1:-1}}var h=Object.assign({position:l},d&&ws),C=m===!0?bs({x:b,y:k},Z(t)):{x:b,y:k};if(b=C.x,k=C.y,c){var f;return Object.assign({},h,(f={},f[D]=$?"0":"",f[K]=O?"0":"",f.transform=(H.devicePixelRatio||1)<=1?"translate("+b+"px, "+k+"px)":"translate3d("+b+"px, "+k+"px, 0)",f))}return Object.assign({},h,(e={},e[D]=$?k+"px":"",e[K]=O?b+"px":"",e.transform="",e))}function Es(n){var e=n.state,t=n.options,r=t.gpuAcceleration,i=r===void 0?!0:r,o=t.adaptive,a=o===void 0?!0:o,l=t.roundOffsets,c=l===void 0?!0:l,d={placement:ge(e.placement),variation:Be(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:i,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,xo(Object.assign({},d,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:c})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,xo(Object.assign({},d,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var yo={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Es,data:{}};var gr={passive:!0};function Ts(n){var e=n.state,t=n.instance,r=n.options,i=r.scroll,o=i===void 0?!0:i,a=r.resize,l=a===void 0?!0:a,c=Z(e.elements.popper),d=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&d.forEach(function(m){m.addEventListener("scroll",t.update,gr)}),l&&c.addEventListener("resize",t.update,gr),function(){o&&d.forEach(function(m){m.removeEventListener("scroll",t.update,gr)}),l&&c.removeEventListener("resize",t.update,gr)}}var jo={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Ts,data:{}};var ks={left:"right",right:"left",bottom:"top",top:"bottom"};function nn(n){return n.replace(/left|right|bottom|top/g,function(e){return ks[e]})}var Ss={start:"end",end:"start"};function hr(n){return n.replace(/start|end/g,function(e){return Ss[e]})}function Ht(n){var e=Z(n),t=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:t,scrollTop:r}}function $t(n){return Oe(Ae(n)).left+Ht(n).scrollLeft}function zr(n,e){var t=Z(n),r=Ae(n),i=t.visualViewport,o=r.clientWidth,a=r.clientHeight,l=0,c=0;if(i){o=i.width,a=i.height;var d=wn();(d||!d&&e==="fixed")&&(l=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:l+$t(n),y:c}}function Jr(n){var e,t=Ae(n),r=Ht(n),i=(e=n.ownerDocument)==null?void 0:e.body,o=qe(t.scrollWidth,t.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=qe(t.scrollHeight,t.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),l=-r.scrollLeft+$t(n),c=-r.scrollTop;return we(i||t).direction==="rtl"&&(l+=qe(t.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:l,y:c}}function Kt(n){var e=we(n),t=e.overflow,r=e.overflowX,i=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+i+r)}function Ar(n){return["html","body","#document"].indexOf(me(n))>=0?n.ownerDocument.body:fe(n)&&Kt(n)?n:Ar(ft(n))}function bt(n,e){var t;e===void 0&&(e=[]);var r=Ar(n),i=r===((t=n.ownerDocument)==null?void 0:t.body),o=Z(r),a=i?[o].concat(o.visualViewport||[],Kt(r)?r:[]):r,l=e.concat(a);return i?l:l.concat(bt(ft(a)))}function rn(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function Cs(n,e){var t=Oe(n,!1,e==="fixed");return t.top=t.top+n.clientTop,t.left=t.left+n.clientLeft,t.bottom=t.top+n.clientHeight,t.right=t.left+n.clientWidth,t.width=n.clientWidth,t.height=n.clientHeight,t.x=t.left,t.y=t.top,t}function vo(n,e,t){return e===dr?rn(zr(n,t)):Me(e)?Cs(e,t):rn(Jr(Ae(n)))}function Ds(n){var e=bt(ft(n)),t=["absolute","fixed"].indexOf(we(n).position)>=0,r=t&&fe(n)?Le(n):n;return Me(r)?e.filter(function(i){return Me(i)&&bn(i,r)&&me(i)!=="body"}):[]}function Qr(n,e,t,r){var i=e==="clippingParents"?Ds(n):[].concat(e),o=[].concat(i,[t]),a=o[0],l=o.reduce(function(c,d){var m=vo(n,d,r);return c.top=qe(m.top,c.top),c.right=It(m.right,c.right),c.bottom=It(m.bottom,c.bottom),c.left=qe(m.left,c.left),c},vo(n,a,r));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function Sn(n){var e=n.reference,t=n.element,r=n.placement,i=r?ge(r):null,o=r?Be(r):null,a=e.x+e.width/2-t.width/2,l=e.y+e.height/2-t.height/2,c;switch(i){case ie:c={x:a,y:e.y-t.height};break;case ue:c={x:a,y:e.y+e.height};break;case ce:c={x:e.x+e.width,y:l};break;case ae:c={x:e.x-t.width,y:l};break;default:c={x:e.x,y:e.y}}var d=i?qt(i):null;if(d!=null){var m=d==="y"?"height":"width";switch(o){case pt:c[d]=c[d]-(e[m]/2-t[m]/2);break;case Bt:c[d]=c[d]+(e[m]/2-t[m]/2);break;default:}}return c}function He(n,e){e===void 0&&(e={});var t=e,r=t.placement,i=r===void 0?n.placement:r,o=t.strategy,a=o===void 0?n.strategy:o,l=t.boundary,c=l===void 0?uo:l,d=t.rootBoundary,m=d===void 0?dr:d,_=t.elementContext,w=_===void 0?Zt:_,b=t.altBoundary,S=b===void 0?!1:b,k=t.padding,E=k===void 0?0:k,O=Tn(typeof E!="number"?E:kn(E,wt)),$=w===Zt?fo:Zt,K=n.rects.popper,D=n.elements[S?$:w],H=Qr(Me(D)?D:D.contextElement||Ae(n.elements.popper),c,m,a),F=Oe(n.elements.reference),J=Sn({reference:F,element:K,strategy:"absolute",placement:i}),te=rn(Object.assign({},K,J)),ne=w===Zt?te:F,Q={top:H.top-ne.top+O.top,bottom:ne.bottom-H.bottom+O.bottom,left:H.left-ne.left+O.left,right:ne.right-H.right+O.right},h=n.modifiersData.offset;if(w===Zt&&h){var C=h[i];Object.keys(Q).forEach(function(f){var Ie=[ce,ue].indexOf(f)>=0?1:-1,Ee=[ie,ue].indexOf(f)>=0?"y":"x";Q[f]+=C[Ee]*Ie})}return Q}function Xr(n,e){e===void 0&&(e={});var t=e,r=t.placement,i=t.boundary,o=t.rootBoundary,a=t.padding,l=t.flipVariations,c=t.allowedAutoPlacements,d=c===void 0?mr:c,m=Be(r),_=m?l?Wr:Wr.filter(function(S){return Be(S)===m}):wt,w=_.filter(function(S){return d.indexOf(S)>=0});w.length===0&&(w=_);var b=w.reduce(function(S,k){return S[k]=He(n,{placement:k,boundary:i,rootBoundary:o,padding:a})[ge(k)],S},{});return Object.keys(b).sort(function(S,k){return b[S]-b[k]})}function Ps(n){if(ge(n)===fr)return[];var e=nn(n);return[hr(n),e,hr(e)]}function Ns(n){var e=n.state,t=n.options,r=n.name;if(!e.modifiersData[r]._skip){for(var i=t.mainAxis,o=i===void 0?!0:i,a=t.altAxis,l=a===void 0?!0:a,c=t.fallbackPlacements,d=t.padding,m=t.boundary,_=t.rootBoundary,w=t.altBoundary,b=t.flipVariations,S=b===void 0?!0:b,k=t.allowedAutoPlacements,E=e.options.placement,O=ge(E),$=O===E,K=c||($||!S?[nn(E)]:Ps(E)),D=[E].concat(K).reduce(function(B,N){return B.concat(ge(N)===fr?Xr(e,{placement:N,boundary:m,rootBoundary:_,padding:d,flipVariations:S,allowedAutoPlacements:k}):N)},[]),H=e.rects.reference,F=e.rects.popper,J=new Map,te=!0,ne=D[0],Q=0;Q=0,Ee=Ie?"width":"height",_e=He(e,{placement:h,boundary:m,rootBoundary:_,altBoundary:w,padding:d}),xe=Ie?f?ce:ae:f?ue:ie;H[Ee]>F[Ee]&&(xe=nn(xe));var Ye=nn(xe),ke=[];if(o&&ke.push(_e[C]<=0),l&&ke.push(_e[xe]<=0,_e[Ye]<=0),ke.every(function(B){return B})){ne=h,te=!1;break}J.set(h,ke)}if(te)for(var Yt=S?3:1,Ue=function(N){var q=D.find(function(ee){var tt=J.get(ee);if(tt)return tt.slice(0,N).every(function(W){return W})});if(q)return ne=q,"break"},et=Yt;et>0;et--){var ye=Ue(et);if(ye==="break")break}e.placement!==ne&&(e.modifiersData[r]._skip=!0,e.placement=ne,e.reset=!0)}}var wo={name:"flip",enabled:!0,phase:"main",fn:Ns,requiresIfExists:["offset"],data:{_skip:!1}};function bo(n,e,t){return t===void 0&&(t={x:0,y:0}),{top:n.top-e.height-t.y,right:n.right-e.width+t.x,bottom:n.bottom-e.height+t.y,left:n.left-e.width-t.x}}function Eo(n){return[ie,ce,ue,ae].some(function(e){return n[e]>=0})}function Ms(n){var e=n.state,t=n.name,r=e.rects.reference,i=e.rects.popper,o=e.modifiersData.preventOverflow,a=He(e,{elementContext:"reference"}),l=He(e,{altBoundary:!0}),c=bo(a,r),d=bo(l,i,o),m=Eo(c),_=Eo(d);e.modifiersData[t]={referenceClippingOffsets:c,popperEscapeOffsets:d,isReferenceHidden:m,hasPopperEscaped:_},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":m,"data-popper-escaped":_})}var To={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Ms};function Os(n,e,t){var r=ge(n),i=[ae,ie].indexOf(r)>=0?-1:1,o=typeof t=="function"?t(Object.assign({},e,{placement:n})):t,a=o[0],l=o[1];return a=a||0,l=(l||0)*i,[ae,ce].indexOf(r)>=0?{x:l,y:a}:{x:a,y:l}}function Bs(n){var e=n.state,t=n.options,r=n.name,i=t.offset,o=i===void 0?[0,0]:i,a=mr.reduce(function(m,_){return m[_]=Os(_,e.rects,o),m},{}),l=a[e.placement],c=l.x,d=l.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=c,e.modifiersData.popperOffsets.y+=d),e.modifiersData[r]=a}var ko={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Bs};function Is(n){var e=n.state,t=n.name;e.modifiersData[t]=Sn({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var So={name:"popperOffsets",enabled:!0,phase:"read",fn:Is,data:{}};function Zr(n){return n==="x"?"y":"x"}function Fs(n){var e=n.state,t=n.options,r=n.name,i=t.mainAxis,o=i===void 0?!0:i,a=t.altAxis,l=a===void 0?!1:a,c=t.boundary,d=t.rootBoundary,m=t.altBoundary,_=t.padding,w=t.tether,b=w===void 0?!0:w,S=t.tetherOffset,k=S===void 0?0:S,E=He(e,{boundary:c,rootBoundary:d,padding:_,altBoundary:m}),O=ge(e.placement),$=Be(e.placement),K=!$,D=qt(O),H=Zr(D),F=e.modifiersData.popperOffsets,J=e.rects.reference,te=e.rects.popper,ne=typeof k=="function"?k(Object.assign({},e.rects,{placement:e.placement})):k,Q=typeof ne=="number"?{mainAxis:ne,altAxis:ne}:Object.assign({mainAxis:0,altAxis:0},ne),h=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,C={x:0,y:0};if(!!F){if(o){var f,Ie=D==="y"?ie:ae,Ee=D==="y"?ue:ce,_e=D==="y"?"height":"width",xe=F[D],Ye=xe+E[Ie],ke=xe-E[Ee],Yt=b?-te[_e]/2:0,Ue=$===pt?J[_e]:te[_e],et=$===pt?-te[_e]:-J[_e],ye=e.elements.arrow,B=b&&ye?Ft(ye):{width:0,height:0},N=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:En(),q=N[Ie],ee=N[Ee],tt=Lt(0,J[_e],B[_e]),W=K?J[_e]/2-Yt-tt-q-Q.mainAxis:Ue-tt-q-Q.mainAxis,je=K?-J[_e]/2+Yt+tt+ee+Q.mainAxis:et+tt+ee+Q.mainAxis,kt=e.elements.arrow&&Le(e.elements.arrow),Mn=kt?D==="y"?kt.clientTop||0:kt.clientLeft||0:0,nt=(f=h==null?void 0:h[D])!=null?f:0,rt=xe+W-nt-Mn,ht=xe+je-nt,St=Lt(b?It(Ye,rt):Ye,xe,b?qe(ke,ht):ke);F[D]=St,C[D]=St-xe}if(l){var On,Bn=D==="x"?ie:ae,In=D==="x"?ue:ce,it=F[H],Ut=H==="y"?"height":"width",Fn=it+E[Bn],qn=it-E[In],pn=[ie,ae].indexOf(O)!==-1,Ct=(On=h==null?void 0:h[H])!=null?On:0,Ln=pn?Fn:it-J[Ut]-te[Ut]-Ct+Q.altAxis,Ge=pn?it+J[Ut]+te[Ut]-Ct-Q.altAxis:qn,se=b&&pn?Ao(Ln,it,Ge):Lt(b?Ln:Fn,it,b?Ge:qn);F[H]=se,C[H]=se-it}e.modifiersData[r]=C}}var Co={name:"preventOverflow",enabled:!0,phase:"main",fn:Fs,requiresIfExists:["offset"]};function ei(n){return{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}}function ti(n){return n===Z(n)||!fe(n)?Ht(n):ei(n)}function qs(n){var e=n.getBoundingClientRect(),t=ut(e.width)/n.offsetWidth||1,r=ut(e.height)/n.offsetHeight||1;return t!==1||r!==1}function ni(n,e,t){t===void 0&&(t=!1);var r=fe(e),i=fe(e)&&qs(e),o=Ae(e),a=Oe(n,i,t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!t)&&((me(e)!=="body"||Kt(o))&&(l=ti(e)),fe(e)?(c=Oe(e,!0),c.x+=e.clientLeft,c.y+=e.clientTop):o&&(c.x=$t(o))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function Ls(n){var e=new Map,t=new Set,r=[];n.forEach(function(o){e.set(o.name,o)});function i(o){t.add(o.name);var a=[].concat(o.requires||[],o.requiresIfExists||[]);a.forEach(function(l){if(!t.has(l)){var c=e.get(l);c&&i(c)}}),r.push(o)}return n.forEach(function(o){t.has(o.name)||i(o)}),r}function ri(n){var e=Ls(n);return mo.reduce(function(t,r){return t.concat(e.filter(function(i){return i.phase===r}))},[])}function ii(n){var e;return function(){return e||(e=new Promise(function(t){Promise.resolve().then(function(){e=void 0,t(n())})})),e}}function oi(n){var e=n.reduce(function(t,r){var i=t[r.name];return t[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,t},{});return Object.keys(e).map(function(t){return e[t]})}var Do={placement:"bottom",modifiers:[],strategy:"absolute"};function Po(){for(var n=arguments.length,e=new Array(n),t=0;t(n%e+e)%e,Oo=class{constructor(e,t,r){this.owner=e,this.containerEl=t,t.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),t.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),r.register([],"ArrowUp",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),r.register([],"ArrowDown",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),r.register([],"Enter",i=>{if(!i.isComposing)return this.useSelectedItem(i),!1})}onSuggestionClick(e,t){e.preventDefault();let r=this.suggestions.indexOf(t);this.setSelectedItem(r,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,t){let r=this.suggestions.indexOf(t);this.setSelectedItem(r,!1)}setSuggestions(e){this.containerEl.empty();let t=[];e.forEach(r=>{let i=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(r,i),t.push(i)}),this.values=e,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(e){let t=this.values[this.selectedItem];t&&this.owner.selectSuggestion(t,e)}setSelectedItem(e,t){let r=$s(e,this.suggestions.length),i=this.suggestions[this.selectedItem],o=this.suggestions[r];i?.removeClass("is-selected"),o?.addClass("is-selected"),this.selectedItem=r,t&&o.scrollIntoView(!1)}},Cn=class{constructor(e,t){this.app=e,this.inputEl=t,this.scope=new Mo.Scope,this.suggestEl=createDiv("suggestion-container");let r=this.suggestEl.createDiv("suggestion");this.suggest=new Oo(this,r,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",i=>{i.preventDefault()})}onInputChanged(){let e=this.inputEl.value,t=this.getSuggestions(e);if(!t){this.close();return}t.length>0?(this.suggest.setSuggestions(t),this.open(this.app.dom.appContainerEl,this.inputEl)):this.close()}open(e,t){this.app.keymap.pushScope(this.scope),e.appendChild(this.suggestEl),this.popper=ai(t,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:r,instance:i})=>{let o=`${r.rects.reference.width}px`;r.styles.popper.width!==o&&(r.styles.popper.width=o,i.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}};var $e;(function(t){t[t.TemplateFiles=0]="TemplateFiles",t[t.ScriptFiles=1]="ScriptFiles"})($e||($e={}));var on=class extends Cn{constructor(e,t,r){super(t.app,e);this.inputEl=e;this.plugin=t;this.mode=r}get_folder(e){switch(e){case 0:return this.plugin.settings.templates_folder;case 1:return this.plugin.settings.user_scripts_folder}}get_error_msg(e){switch(e){case 0:return"Templates folder doesn't exist";case 1:return"User Scripts folder doesn't exist"}}getSuggestions(e){let t=Ce(()=>Je(this.plugin.app,this.get_folder(this.mode)),this.get_error_msg(this.mode));if(!t)return[];let r=[],i=e.toLowerCase();return t.forEach(o=>{o instanceof Bo.TFile&&o.extension==="md"&&o.path.toLowerCase().contains(i)&&r.push(o)}),r.slice(0,1e3)}renderSuggestion(e,t){t.setText(e.path)}selectSuggestion(e){this.inputEl.value=e.path,this.inputEl.trigger("input"),this.close()}};var Io=X(require("obsidian"));var Dn=class extends Cn{constructor(e,t){super(e,t)}getSuggestions(e){let t=this.app.vault.getAllLoadedFiles(),r=[],i=e.toLowerCase();return t.forEach(o=>{o instanceof Io.TFolder&&o.path.toLowerCase().contains(i)&&r.push(o)}),r.slice(0,1e3)}renderSuggestion(e,t){t.setText(e.path)}selectSuggestion(e){this.inputEl.value=e.path,this.inputEl.trigger("input"),this.close()}};var dt;(function(o){o[o.Off=0]="Off",o[o.RenderDescriptionParameterReturn=1]="RenderDescriptionParameterReturn",o[o.RenderDescriptionParameterList=2]="RenderDescriptionParameterList",o[o.RenderDescriptionReturn=3]="RenderDescriptionReturn",o[o.RenderDescriptionOnly=4]="RenderDescriptionOnly"})(dt||(dt={}));function Fo(n){return isBoolean(n)?n:[1,3].includes(n)}function qo(n){return isBoolean(n)?n:[1,2].includes(n)}function Lo(n){return isBoolean(n)?n:n!=0}var Ho={command_timeout:5,templates_folder:"",templates_pairs:[["",""]],trigger_on_file_creation:!1,auto_jump_to_cursor:!1,enable_system_commands:!1,shell_path:"",user_scripts_folder:"",enable_folder_templates:!0,folder_templates:[{folder:"",template:""}],enable_file_templates:!1,file_templates:[{regex:".*",template:""}],syntax_highlighting:!0,syntax_highlighting_mobile:!1,enabled_templates_hotkeys:[""],startup_templates:[""],intellisense_render:dt.RenderDescriptionParameterReturn},si=class extends L.PluginSettingTab{constructor(e){super(e.app,e);this.plugin=e;this.icon="templater-icon"}display(){this.containerEl.empty(),this.add_template_folder_setting(),this.add_internal_functions_setting(),this.add_syntax_highlighting_settings(),this.add_auto_jump_to_cursor(),this.add_trigger_on_new_file_creation_setting(),this.plugin.settings.trigger_on_file_creation&&(this.add_folder_templates_setting(),this.add_file_templates_setting()),this.add_templates_hotkeys_setting(),this.add_startup_templates_setting(),this.add_user_script_functions_setting(),this.add_user_system_command_functions_setting(),this.add_donating_setting()}add_template_folder_setting(){new L.Setting(this.containerEl).setName("Template folder location").setDesc("Files in this folder will be available as templates.").addSearch(e=>{new Dn(this.app,e.inputEl),e.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.templates_folder).onChange(t=>{t=t.trim(),t=t.replace(/\/$/,""),this.plugin.settings.templates_folder=t,this.plugin.save_settings()}),e.containerEl.addClass("templater_search")})}add_internal_functions_setting(){let e=document.createDocumentFragment();e.append("Templater provides multiples predefined variables / functions that you can use.",e.createEl("br"),"Check the ",e.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," to get a list of all the available internal variables / functions."),new L.Setting(this.containerEl).setName("Internal variables and functions").setDesc(e)}add_syntax_highlighting_settings(){let e=document.createDocumentFragment();e.append("Adds syntax highlighting for Templater commands in edit mode.");let t=document.createDocumentFragment();t.append("Adds syntax highlighting for Templater commands in edit mode on mobile. Use with caution: this may break live preview on mobile platforms."),new L.Setting(this.containerEl).setName("Syntax highlighting on desktop").setDesc(e).addToggle(r=>{r.setValue(this.plugin.settings.syntax_highlighting).onChange(i=>{this.plugin.settings.syntax_highlighting=i,this.plugin.save_settings(),this.plugin.event_handler.update_syntax_highlighting()})}),new L.Setting(this.containerEl).setName("Syntax highlighting on mobile").setDesc(t).addToggle(r=>{r.setValue(this.plugin.settings.syntax_highlighting_mobile).onChange(i=>{this.plugin.settings.syntax_highlighting_mobile=i,this.plugin.save_settings(),this.plugin.event_handler.update_syntax_highlighting()})})}add_auto_jump_to_cursor(){let e=document.createDocumentFragment();e.append("Automatically triggers ",e.createEl("code",{text:"tp.file.cursor"})," after inserting a template.",e.createEl("br"),"You can also set a hotkey to manually trigger ",e.createEl("code",{text:"tp.file.cursor"}),"."),new L.Setting(this.containerEl).setName("Automatic jump to cursor").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.auto_jump_to_cursor).onChange(r=>{this.plugin.settings.auto_jump_to_cursor=r,this.plugin.save_settings()})})}add_trigger_on_new_file_creation_setting(){let e=document.createDocumentFragment();e.append("Templater will listen for the new file creation event, and, if it matches a rule you've set, replace every command it finds in the new file's content. ","This makes Templater compatible with other plugins like the Daily note core plugin, Calendar plugin, Review plugin, Note refactor plugin, etc. ",e.createEl("br"),e.createEl("br"),"Make sure to set up rules under either folder templates or file regex template below.",e.createEl("br"),e.createEl("br"),e.createEl("b",{text:"Warning: "}),"This can be dangerous if you create new files with unknown / unsafe content on creation. Make sure that every new file's content is safe on creation."),new L.Setting(this.containerEl).setName("Trigger Templater on new file creation").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.trigger_on_file_creation).onChange(r=>{this.plugin.settings.trigger_on_file_creation=r,this.plugin.save_settings(),this.plugin.event_handler.update_trigger_file_on_creation(),this.display()})})}add_templates_hotkeys_setting(){new L.Setting(this.containerEl).setName("Template hotkeys").setHeading();let e=document.createDocumentFragment();e.append("Template hotkeys allows you to bind a template to a hotkey."),new L.Setting(this.containerEl).setDesc(e),this.plugin.settings.enabled_templates_hotkeys.forEach((t,r)=>{new L.Setting(this.containerEl).addSearch(o=>{new on(o.inputEl,this.plugin,$e.TemplateFiles),o.setPlaceholder("Example: folder1/template_file").setValue(t).onChange(a=>{if(a&&this.plugin.settings.enabled_templates_hotkeys.contains(a)){oe(new P("This template is already bound to a hotkey"));return}this.plugin.command_handler.add_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[r],a),this.plugin.settings.enabled_templates_hotkeys[r]=a,this.plugin.save_settings()}),o.containerEl.addClass("templater_search")}).addExtraButton(o=>{o.setIcon("any-key").setTooltip("Configure Hotkey").onClick(()=>{this.app.setting.openTabById("hotkeys");let a=this.app.setting.activeTab;a.searchComponent.inputEl.value=t,a.updateHotkeyVisibility()})}).addExtraButton(o=>{o.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{Ot(this.plugin.settings.enabled_templates_hotkeys,r,r-1),this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{Ot(this.plugin.settings.enabled_templates_hotkeys,r,r+1),this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.command_handler.remove_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[r]),this.plugin.settings.enabled_templates_hotkeys.splice(r,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(t=>{t.setButtonText("Add new hotkey for template").setCta().onClick(()=>{this.plugin.settings.enabled_templates_hotkeys.push(""),this.plugin.save_settings(),this.display()})})}add_folder_templates_setting(){new L.Setting(this.containerEl).setName("Folder templates").setHeading();let e=document.createDocumentFragment();e.append("Folder templates are triggered when a new ",e.createEl("strong",{text:"empty "}),"file is created in a given folder.",e.createEl("br"),"Templater will fill the empty file with the specified template.",e.createEl("br"),"The deepest match is used. A global default template would be defined on the root ",e.createEl("code",{text:"/"}),"."),new L.Setting(this.containerEl).setDesc(e);let t=document.createDocumentFragment();t.append("When enabled, Templater will make use of the folder templates defined below. This option is mutually exclusive with file regex templates below, so enabling one will disable the other."),new L.Setting(this.containerEl).setName("Enable folder templates").setDesc(t).addToggle(r=>{r.setValue(this.plugin.settings.enable_folder_templates).onChange(i=>{this.plugin.settings.enable_folder_templates=i,i&&(this.plugin.settings.enable_file_templates=!1),this.plugin.save_settings(),this.display()})}),!!this.plugin.settings.enable_folder_templates&&(this.plugin.settings.folder_templates.forEach((r,i)=>{new L.Setting(this.containerEl).addSearch(a=>{new Dn(this.app,a.inputEl),a.setPlaceholder("Folder").setValue(r.folder).onChange(l=>{if(l&&this.plugin.settings.folder_templates.some(c=>c.folder==l)){oe(new P("This folder already has a template associated with it"));return}this.plugin.settings.folder_templates[i].folder=l,this.plugin.save_settings()}),a.containerEl.addClass("templater_search")}).addSearch(a=>{new on(a.inputEl,this.plugin,$e.TemplateFiles),a.setPlaceholder("Template").setValue(r.template).onChange(l=>{this.plugin.settings.folder_templates[i].template=l,this.plugin.save_settings()}),a.containerEl.addClass("templater_search")}).addExtraButton(a=>{a.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{Ot(this.plugin.settings.folder_templates,i,i-1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{Ot(this.plugin.settings.folder_templates,i,i+1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.folder_templates.splice(i,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(r=>{r.setButtonText("Add new folder template").setTooltip("Add additional folder template").setCta().onClick(()=>{this.plugin.settings.folder_templates.push({folder:"",template:""}),this.plugin.save_settings(),this.display()})}))}add_file_templates_setting(){new L.Setting(this.containerEl).setName("File regex templates").setHeading();let e=document.createDocumentFragment();e.append("File regex templates are triggered when a new ",e.createEl("strong",{text:"empty"})," file is created that matches one of them. Templater will fill the empty file with the specified template.",e.createEl("br"),"The first match from the top is used, so the order of the rules is important.",e.createEl("br"),"Use ",e.createEl("code",{text:".*"})," as a final catch-all, if you need it."),new L.Setting(this.containerEl).setDesc(e);let t=document.createDocumentFragment();t.append("When enabled, Templater will make use of the file regex templates defined below. This option is mutually exclusive with folder templates above, so enabling one will disable the other."),new L.Setting(this.containerEl).setName("Enable file regex templates").setDesc(t).addToggle(r=>{r.setValue(this.plugin.settings.enable_file_templates).onChange(i=>{this.plugin.settings.enable_file_templates=i,i&&(this.plugin.settings.enable_folder_templates=!1),this.plugin.save_settings(),this.display()})}),!!this.plugin.settings.enable_file_templates&&(this.plugin.settings.file_templates.forEach((r,i)=>{new L.Setting(this.containerEl).addText(a=>{a.setPlaceholder("File regex").setValue(r.regex).onChange(l=>{this.plugin.settings.file_templates[i].regex=l,this.plugin.save_settings()}),a.inputEl.addClass("templater_search")}).addSearch(a=>{new on(a.inputEl,this.plugin,$e.TemplateFiles),a.setPlaceholder("Template").setValue(r.template).onChange(l=>{this.plugin.settings.file_templates[i].template=l,this.plugin.save_settings()}),a.containerEl.addClass("templater_search")}).addExtraButton(a=>{a.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{Ot(this.plugin.settings.file_templates,i,i-1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{Ot(this.plugin.settings.file_templates,i,i+1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.file_templates.splice(i,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(r=>{r.setButtonText("Add new file regex").setTooltip("Add additional file regex").setCta().onClick(()=>{this.plugin.settings.file_templates.push({regex:"",template:""}),this.plugin.save_settings(),this.display()})}))}add_startup_templates_setting(){new L.Setting(this.containerEl).setName("Startup templates").setHeading();let e=document.createDocumentFragment();e.append("Startup templates are templates that will get executed once when Templater starts.",e.createEl("br"),"These templates won't output anything.",e.createEl("br"),"This can be useful to set up templates adding hooks to Obsidian events for example."),new L.Setting(this.containerEl).setDesc(e),this.plugin.settings.startup_templates.forEach((t,r)=>{new L.Setting(this.containerEl).addSearch(o=>{new on(o.inputEl,this.plugin,$e.TemplateFiles),o.setPlaceholder("Example: folder1/template_file").setValue(t).onChange(a=>{if(a&&this.plugin.settings.startup_templates.contains(a)){oe(new P("This startup template already exist"));return}this.plugin.settings.startup_templates[r]=a,this.plugin.save_settings()}),o.containerEl.addClass("templater_search")}).addExtraButton(o=>{o.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.startup_templates.splice(r,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(t=>{t.setButtonText("Add new startup template").setCta().onClick(()=>{this.plugin.settings.startup_templates.push(""),this.plugin.save_settings(),this.display()})})}add_user_script_functions_setting(){new L.Setting(this.containerEl).setName("User script functions").setHeading();let e=document.createDocumentFragment();e.append("All JavaScript files in this folder will be loaded as CommonJS modules, to import custom user functions.",e.createEl("br"),"The folder needs to be accessible from the vault.",e.createEl("br"),"Check the ",e.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," for more information."),new L.Setting(this.containerEl).setName("Script files folder location").setDesc(e).addSearch(r=>{new Dn(this.app,r.inputEl),r.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.user_scripts_folder).onChange(i=>{this.plugin.settings.user_scripts_folder=i,this.plugin.save_settings()}),r.containerEl.addClass("templater_search")}),new L.Setting(this.containerEl).setName("User script intellisense").setDesc("Determine how you'd like to have user script intellisense render. Note values will not render if not in the script.").addDropdown(r=>{r.addOption("0","Turn off intellisense").addOption("1","Render method description, parameters list, and return").addOption("2","Render method description and parameters list").addOption("3","Render method description and return").addOption("4","Render method description").setValue(this.plugin.settings.intellisense_render.toString()).onChange(i=>{this.plugin.settings.intellisense_render=parseInt(i),this.plugin.save_settings()})}),e=document.createDocumentFragment();let t;if(!this.plugin.settings.user_scripts_folder)t="No user scripts folder set";else{let r=Ce(()=>Je(this.app,this.plugin.settings.user_scripts_folder),"User scripts folder doesn't exist");if(!r||r.length===0)t="No user scripts detected";else{let i=0;for(let o of r)o.extension==="js"&&(i++,e.append(e.createEl("li",{text:`tp.user.${o.basename}`})));t=`Detected ${i} User Script(s)`}}new L.Setting(this.containerEl).setName(t).setDesc(e).addExtraButton(r=>{r.setIcon("sync").setTooltip("Refresh").onClick(()=>{this.display()})})}add_user_system_command_functions_setting(){let e=document.createDocumentFragment();if(e.append("Allows you to create user functions linked to system commands.",e.createEl("br"),e.createEl("b",{text:"Warning: "}),"It can be dangerous to execute arbitrary system commands from untrusted sources. Only run system commands that you understand, from trusted sources."),new L.Setting(this.containerEl).setName("User system command functions").setHeading(),new L.Setting(this.containerEl).setName("Enable user system command functions").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.enable_system_commands).onChange(r=>{this.plugin.settings.enable_system_commands=r,this.plugin.save_settings(),this.display()})}),this.plugin.settings.enable_system_commands){new L.Setting(this.containerEl).setName("Timeout").setDesc("Maximum timeout in seconds for a system command.").addText(o=>{o.setPlaceholder("Timeout").setValue(this.plugin.settings.command_timeout.toString()).onChange(a=>{let l=Number(a);if(isNaN(l)){oe(new P("Timeout must be a number"));return}this.plugin.settings.command_timeout=l,this.plugin.save_settings()})}),e=document.createDocumentFragment(),e.append("Full path to the shell binary to execute the command with.",e.createEl("br"),"This setting is optional and will default to the system's default shell if not specified.",e.createEl("br"),"You can use forward slashes ('/') as path separators on all platforms if in doubt."),new L.Setting(this.containerEl).setName("Shell binary location").setDesc(e).addText(o=>{o.setPlaceholder("Example: /bin/bash, ...").setValue(this.plugin.settings.shell_path).onChange(a=>{this.plugin.settings.shell_path=a,this.plugin.save_settings()})});let t=1;this.plugin.settings.templates_pairs.forEach(o=>{let a=this.containerEl.createEl("div");a.addClass("templater_div");let l=this.containerEl.createEl("h4",{text:"User function n\xB0"+t});l.addClass("templater_title"),new L.Setting(this.containerEl).addExtraButton(d=>{d.setIcon("cross").setTooltip("Delete").onClick(()=>{let m=this.plugin.settings.templates_pairs.indexOf(o);m>-1&&(this.plugin.settings.templates_pairs.splice(m,1),this.plugin.save_settings(),this.display())})}).addText(d=>{let m=d.setPlaceholder("Function name").setValue(o[0]).onChange(_=>{let w=this.plugin.settings.templates_pairs.indexOf(o);w>-1&&(this.plugin.settings.templates_pairs[w][0]=_,this.plugin.save_settings())});return m.inputEl.addClass("templater_template"),m}).addTextArea(d=>{let m=d.setPlaceholder("System command").setValue(o[1]).onChange(_=>{let w=this.plugin.settings.templates_pairs.indexOf(o);w>-1&&(this.plugin.settings.templates_pairs[w][1]=_,this.plugin.save_settings())});return m.inputEl.setAttr("rows",2),m.inputEl.addClass("templater_cmd"),m}).infoEl.remove(),a.appendChild(l),a.appendChild(this.containerEl.lastChild),t+=1});let r=this.containerEl.createEl("div");r.addClass("templater_div2"),new L.Setting(this.containerEl).addButton(o=>{o.setButtonText("Add new user function").setCta().onClick(()=>{this.plugin.settings.templates_pairs.push(["",""]),this.plugin.save_settings(),this.display()})}).infoEl.remove(),r.appendChild(this.containerEl.lastChild)}}add_donating_setting(){let e=new L.Setting(this.containerEl).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development."),t=document.createElement("a");t.setAttribute("href","https://github.com/sponsors/silentvoid13"),t.addClass("templater_donating");let r=document.createElement("img");r.src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86",t.appendChild(r);let i=document.createElement("a");i.setAttribute("href","https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"),i.addClass("templater_donating");let o=document.createElement("img");o.src="https://img.shields.io/badge/paypal-silentvoid13-yellow?style=social&logo=paypal",i.appendChild(o),e.settingEl.appendChild(t),e.settingEl.appendChild(i)}};var _r=X(require("obsidian"));var an;(function(t){t[t.InsertTemplate=0]="InsertTemplate",t[t.CreateNoteTemplate=1]="CreateNoteTemplate"})(an||(an={}));var ci=class extends _r.FuzzySuggestModal{constructor(e){super(e.app);this.plugin=e,this.setPlaceholder("Type name of a template...")}getItems(){if(!this.plugin.settings.templates_folder)return this.app.vault.getMarkdownFiles();let e=Ce(()=>Je(this.plugin.app,this.plugin.settings.templates_folder),`Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`);return e||[]}getItemText(e){let t=e.path;if(e.path.startsWith(this.plugin.settings.templates_folder)&&(0,_r.normalizePath)(this.plugin.settings.templates_folder)!="/"){let r=this.plugin.settings.templates_folder.length,i=this.plugin.settings.templates_folder.endsWith("/")?r:r+1;t=e.path.slice(i)}return t.split(".").slice(0,-1).join(".")}onChooseItem(e){switch(this.open_mode){case 0:this.plugin.templater.append_template_to_active_file(e);break;case 1:this.plugin.templater.create_new_note_from_template(e,this.creation_folder);break}}start(){try{this.open()}catch(e){oe(e)}}insert_template(){this.open_mode=0,this.start()}create_new_note_from_template(e){this.creation_folder=e,this.open_mode=1,this.start()}};var $o="Error_MobileUnsupportedTemplate",Ko='';var de=X(require("obsidian"));var mt=X(require("obsidian"));var be=class{constructor(e){this.plugin=e;this.static_functions=new Map;this.dynamic_functions=new Map}getName(){return this.name}async init(){await this.create_static_templates(),this.static_object=Object.fromEntries(this.static_functions)}async generate_object(e){return this.config=e,await this.create_dynamic_templates(),{...this.static_object,...Object.fromEntries(this.dynamic_functions)}}};var li=class extends be{constructor(){super(...arguments);this.name="date"}async create_static_templates(){this.static_functions.set("now",this.generate_now()),this.static_functions.set("tomorrow",this.generate_tomorrow()),this.static_functions.set("weekday",this.generate_weekday()),this.static_functions.set("yesterday",this.generate_yesterday())}async create_dynamic_templates(){}async teardown(){}generate_now(){return(e="YYYY-MM-DD",t,r,i)=>{if(r&&!(0,mt.moment)(r,i).isValid())throw new P("Invalid reference date format, try specifying one with the argument 'reference_format'");let o;return typeof t=="string"?o=mt.moment.duration(t):typeof t=="number"&&(o=mt.moment.duration(t,"days")),(0,mt.moment)(r,i).add(o).format(e)}}generate_tomorrow(){return(e="YYYY-MM-DD")=>(0,mt.moment)().add(1,"days").format(e)}generate_weekday(){return(e="YYYY-MM-DD",t,r,i)=>{if(r&&!(0,mt.moment)(r,i).isValid())throw new P("Invalid reference date format, try specifying one with the argument 'reference_format'");return(0,mt.moment)(r,i).weekday(t).format(e)}}generate_yesterday(){return(e="YYYY-MM-DD")=>(0,mt.moment)().add(-1,"days").format(e)}};var le=X(require("obsidian"));var Ro=10,pi=class extends be{constructor(){super(...arguments);this.name="file";this.include_depth=0;this.create_new_depth=0;this.linkpath_regex=new RegExp("^\\[\\[(.*)\\]\\]$")}async create_static_templates(){this.static_functions.set("creation_date",this.generate_creation_date()),this.static_functions.set("create_new",this.generate_create_new()),this.static_functions.set("cursor",this.generate_cursor()),this.static_functions.set("cursor_append",this.generate_cursor_append()),this.static_functions.set("exists",this.generate_exists()),this.static_functions.set("find_tfile",this.generate_find_tfile()),this.static_functions.set("folder",this.generate_folder()),this.static_functions.set("include",this.generate_include()),this.static_functions.set("last_modified_date",this.generate_last_modified_date()),this.static_functions.set("move",this.generate_move()),this.static_functions.set("path",this.generate_path()),this.static_functions.set("rename",this.generate_rename()),this.static_functions.set("selection",this.generate_selection())}async create_dynamic_templates(){this.dynamic_functions.set("content",await this.generate_content()),this.dynamic_functions.set("tags",this.generate_tags()),this.dynamic_functions.set("title",this.generate_title())}async teardown(){}async generate_content(){return await this.plugin.app.vault.read(this.config.target_file)}generate_create_new(){return async(e,t,r=!1,i)=>{if(this.create_new_depth+=1,this.create_new_depth>Ro)throw this.create_new_depth=0,new P("Reached create_new depth limit (max = 10)");let o=await this.plugin.templater.create_new_note_from_template(e,i,t,r);return this.create_new_depth-=1,o}}generate_creation_date(){return(e="YYYY-MM-DD HH:mm")=>(0,le.moment)(this.config.target_file.stat.ctime).format(e)}generate_cursor(){return e=>`<% tp.file.cursor(${e??""}) %>`}generate_cursor_append(){return e=>{let t=this.plugin.app.workspace.activeEditor;if(!t||!t.editor){oe(new P("No active editor, can't append to cursor."));return}return t.editor.getDoc().replaceSelection(e),""}}generate_exists(){return async e=>{let t=(0,le.normalizePath)(e);return await this.plugin.app.vault.exists(t)}}generate_find_tfile(){return e=>{let t=(0,le.normalizePath)(e);return this.plugin.app.metadataCache.getFirstLinkpathDest(t,"")}}generate_folder(){return(e=!1)=>{let t=this.config.target_file.parent,r;return e?r=t.path:r=t.name,r}}generate_include(){return async e=>{if(this.include_depth+=1,this.include_depth>Ro)throw this.include_depth-=1,new P("Reached inclusion depth limit (max = 10)");let t;if(e instanceof le.TFile)t=await this.plugin.app.vault.read(e);else{let r;if((r=this.linkpath_regex.exec(e))===null)throw this.include_depth-=1,new P("Invalid file format, provide an obsidian link between quotes.");let{path:i,subpath:o}=(0,le.parseLinktext)(r[1]),a=this.plugin.app.metadataCache.getFirstLinkpathDest(i,"");if(!a)throw this.include_depth-=1,new P(`File ${e} doesn't exist`);if(t=await this.plugin.app.vault.read(a),o){let l=this.plugin.app.metadataCache.getFileCache(a);if(l){let c=(0,le.resolveSubpath)(l,o);c&&(t=t.slice(c.start.offset,c.end?.offset))}}}try{let r=await this.plugin.templater.parser.parse_commands(t,this.plugin.templater.current_functions_object);return this.include_depth-=1,r}catch(r){throw this.include_depth-=1,r}}}generate_last_modified_date(){return(e="YYYY-MM-DD HH:mm")=>(0,le.moment)(this.config.target_file.stat.mtime).format(e)}generate_move(){return async(e,t)=>{let r=t||this.config.target_file,i=(0,le.normalizePath)(`${e}.${r.extension}`),o=i.replace(/\\/g,"/").split("/");if(o.pop(),o.length){let a=o.join("/");this.plugin.app.vault.getAbstractFileByPath(a)||await this.plugin.app.vault.createFolder(a)}return await this.plugin.app.fileManager.renameFile(r,i),""}}generate_path(){return(e=!1)=>{let t="";if(le.Platform.isMobile){let r=this.plugin.app.vault.adapter.fs.uri,i=this.plugin.app.vault.adapter.basePath;t=`${r}/${i}`}else if(this.plugin.app.vault.adapter instanceof le.FileSystemAdapter)t=this.plugin.app.vault.adapter.getBasePath();else throw new P("app.vault is not a FileSystemAdapter instance");return e?this.config.target_file.path:`${t}/${this.config.target_file.path}`}}generate_rename(){return async e=>{if(e.match(/[\\/:]+/g))throw new P("File name cannot contain any of these characters: \\ / :");let t=(0,le.normalizePath)(`${this.config.target_file.parent.path}/${e}.${this.config.target_file.extension}`);return await this.plugin.app.fileManager.renameFile(this.config.target_file,t),""}}generate_selection(){return()=>{let e=this.plugin.app.workspace.activeEditor;if(!e||!e.editor)throw new P("Active editor is null, can't read selection.");return e.editor.getSelection()}}generate_tags(){let e=this.plugin.app.metadataCache.getFileCache(this.config.target_file);return e?(0,le.getAllTags)(e):null}generate_title(){return this.config.target_file.basename}};var Yo=X(require("obsidian"));var ui=class extends be{constructor(){super(...arguments);this.name="web"}async create_static_templates(){this.static_functions.set("daily_quote",this.generate_daily_quote()),this.static_functions.set("request",this.generate_request()),this.static_functions.set("random_picture",this.generate_random_picture())}async create_dynamic_templates(){}async teardown(){}async getRequest(e){try{let t=await(0,Yo.requestUrl)(e);if(t.status<200&&t.status>=300)throw new P("Error performing GET request");return t}catch{throw new P("Error performing GET request")}}generate_daily_quote(){return async()=>{try{let t=(await this.getRequest("https://raw.githubusercontent.com/Zachatoo/quotes-database/refs/heads/main/quotes.json")).json,r=t[Math.floor(Math.random()*t.length)],{quote:i,author:o}=r;return`> [!quote] ${i} -> \u2014 ${o}`}catch{return new P("Error generating daily quote"),"Error generating daily quote"}}}generate_random_picture(){return async(e,t,r=!1)=>{try{let i=await this.getRequest(`https://templater-unsplash-2.fly.dev/${t?"?q="+t:""}`).then(a=>a.json),o=i.full;if(e&&!r)if(e.includes("x")){let[a,l]=e.split("x");o=o.concat(`&w=${a}&h=${l}`)}else o=o.concat(`&w=${e}`);return r?`![photo by ${i.photog}(${i.photogUrl}) on Unsplash|${e}](${o})`:`![photo by ${i.photog}(${i.photogUrl}) on Unsplash](${o})`}catch{return new P("Error generating random picture"),"Error generating random picture"}}}generate_request(){return async(e,t)=>{try{let i=await(await this.getRequest(e)).json;return t&&i?t.split(".").reduce((o,a)=>{if(o&&o.hasOwnProperty(a))return o[a];throw new Error(`Path ${t} not found in the JSON response`)},i):i}catch(r){throw console.error(r),new P("Error fetching and extracting value")}}}};var fi=class extends be{constructor(){super(...arguments);this.name="hooks";this.event_refs=[]}async create_static_templates(){this.static_functions.set("on_all_templates_executed",this.generate_on_all_templates_executed())}async create_dynamic_templates(){}async teardown(){this.event_refs.forEach(e=>{e.e.offref(e)}),this.event_refs=[]}generate_on_all_templates_executed(){return e=>{let t=this.plugin.app.workspace.on("templater:all-templates-executed",async()=>{await jt(1),e()});t&&this.event_refs.push(t)}}};var di=class extends be{constructor(){super(...arguments);this.name="frontmatter"}async create_static_templates(){}async create_dynamic_templates(){let e=this.plugin.app.metadataCache.getFileCache(this.config.target_file);this.dynamic_functions=new Map(Object.entries(e?.frontmatter||{}))}async teardown(){}};var Qe=X(require("obsidian"));var mi=class extends Qe.Modal{constructor(e,t,r,i){super(e);this.prompt_text=t;this.default_value=r;this.multi_line=i;this.submitted=!1}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty(),this.submitted||this.reject(new P("Cancelled prompt"))}createForm(){let e=this.contentEl.createDiv();e.addClass("templater-prompt-div");let t;this.multi_line?t=new Qe.TextAreaComponent(e):t=new Qe.TextComponent(e);let r=this.contentEl.createDiv();r.addClass("templater-button-div");let i=new Qe.ButtonComponent(r);i.buttonEl.addClass("mod-cta"),i.setButtonText("Submit").onClick(o=>{this.resolveAndClose(o)}),this.value=this.default_value??"",t.inputEl.addClass("templater-prompt-input"),t.setPlaceholder("Type text here"),t.setValue(this.value),t.onChange(o=>this.value=o),t.inputEl.focus(),t.inputEl.addEventListener("keydown",o=>this.enterCallback(o))}enterCallback(e){e.isComposing||e.keyCode===229||(this.multi_line?Qe.Platform.isDesktop&&e.key==="Enter"&&!e.shiftKey&&this.resolveAndClose(e):e.key==="Enter"&&this.resolveAndClose(e))}resolveAndClose(e){this.submitted=!0,e.preventDefault(),this.resolve(this.value),this.close()}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}};var Uo=X(require("obsidian")),gi=class extends Uo.FuzzySuggestModal{constructor(e,t,r,i,o){super(e);this.text_items=t;this.items=r;this.submitted=!1;this.setPlaceholder(i),o&&(this.limit=o)}getItems(){return this.items}onClose(){this.submitted||this.reject(new P("Cancelled prompt"))}selectSuggestion(e,t){this.submitted=!0,this.close(),this.onChooseSuggestion(e,t)}getItemText(e){return this.text_items instanceof Function?this.text_items(e):this.text_items[this.items.indexOf(e)]||"Undefined Text Item"}onChooseItem(e){this.resolve(e)}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}};var De=X(require("obsidian")),hi=class extends De.Modal{constructor(e,t,r,i,o){super(e);this.text_items=t;this.items=r;this.submitted=!1;this.selectedItems=[];this.setTitle(i),this.listEl=this.contentEl.createDiv("templater-multisuggester-list");let a=this.contentEl.createDiv("templater-multisuggester-div"),l=new De.TextComponent(a);l.inputEl.addClass("templater-multisuggester-input"),this.suggester=new Go(e,l.inputEl,this.getItemText.bind(this),r,o).onSelect(this.onChooseItem.bind(this));let c=this.contentEl.createDiv("modal-button-container");new De.ButtonComponent(c).setButtonText("Save").setCta().onClick(()=>this.save()),new De.ButtonComponent(c).setButtonText("Cancel").onClick(()=>this.close())}onOpen(){this.display()}display(){this.listEl.empty(),this.selectedItems.forEach(e=>{let t=this.listEl.createDiv("mobile-option-setting-item");t.createSpan("mobile-option-setting-item-name").setText(this.getItemText(e)),t.createDiv("clickable-icon mobile-option-setting-item-option-icon",r=>{(0,De.setIcon)(r,"lucide-x"),r.addEventListener("click",()=>{this.onRemoveItem(e)})})})}getItemText(e){return this.text_items instanceof Function?this.text_items(e):this.text_items[this.items.indexOf(e)]||"Undefined Text Item"}onChooseItem(e){this.selectedItems.push(e);let t=this.items.filter(r=>!this.selectedItems.some(i=>i===r));this.suggester.setItems(t),this.display()}onRemoveItem(e){this.selectedItems=this.selectedItems.filter(r=>r!==e);let t=this.items.filter(r=>!this.selectedItems.some(i=>i===r));this.suggester.setItems(t),this.display()}save(){this.submitted=!0,this.close(),this.resolve(this.selectedItems)}onClose(){this.submitted||this.reject(new P("Cancelled prompt"))}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}},Go=class extends De.AbstractInputSuggest{constructor(e,t,r,i,o){super(e,t);this.getItemText=r;this.items=i;o&&(this.limit=o)}getSuggestions(e){let t=(0,De.prepareFuzzySearch)(e);return this.items.reduce((r,i)=>{let o=this.getItemText(i);return t(o)&&r.push(i),r},[])}renderSuggestion(e,t){t.createDiv("suggestion-content").setText(this.getItemText(e))}setItems(e){this.items=e}selectSuggestion(e,t){this.setValue(""),this.close(),super.selectSuggestion(e,t)}};var Ai=class extends be{constructor(){super(...arguments);this.name="system"}async create_static_templates(){this.static_functions.set("clipboard",this.generate_clipboard()),this.static_functions.set("prompt",this.generate_prompt()),this.static_functions.set("suggester",this.generate_suggester()),this.static_functions.set("multi_suggester",this.generate_multi_suggester())}async create_dynamic_templates(){}async teardown(){}generate_clipboard(){return async()=>await navigator.clipboard.readText()}generate_prompt(){return async(e,t,r=!1,i=!1)=>{let o=new mi(this.plugin.app,e,t,i),a=new Promise((l,c)=>o.openAndGetValue(l,c));try{return await a}catch(l){if(r)throw l;return null}}}generate_suggester(){return async(e,t,r=!1,i="",o)=>{let a=new gi(this.plugin.app,e,t,i,o),l=new Promise((c,d)=>a.openAndGetValue(c,d));try{return await l}catch(c){if(r)throw c;return null}}}generate_multi_suggester(){return async(e,t,r=!1,i="",o)=>{let a=new hi(this.plugin.app,e,t,i,o),l=new Promise((c,d)=>a.openAndGetValue(c,d));try{return await l}catch(c){if(r)throw c;return[]}}}};var _i=class extends be{constructor(){super(...arguments);this.name="config"}async create_static_templates(){}async create_dynamic_templates(){}async teardown(){}async generate_object(e){return e}};var xi=class{constructor(e){this.plugin=e;this.modules_array=[];this.modules_array.push(new li(this.plugin)),this.modules_array.push(new pi(this.plugin)),this.modules_array.push(new ui(this.plugin)),this.modules_array.push(new di(this.plugin)),this.modules_array.push(new fi(this.plugin)),this.modules_array.push(new Ai(this.plugin)),this.modules_array.push(new _i(this.plugin))}async init(){for(let e of this.modules_array)await e.init()}async teardown(){for(let e of this.modules_array)await e.teardown()}async generate_object(e){let t={};for(let r of this.modules_array)t[r.getName()]=await r.generate_object(e);return t}};var Pn=X(require("obsidian"));var yi=class{constructor(e){this.plugin=e;if(Pn.Platform.isMobile||!(this.plugin.app.vault.adapter instanceof Pn.FileSystemAdapter))this.cwd="";else{this.cwd=this.plugin.app.vault.adapter.getBasePath();let{promisify:t}=require("util"),{exec:r}=require("child_process");this.exec_promise=t(r)}}async generate_system_functions(e){let t=new Map,r=await this.plugin.templater.functions_generator.generate_object(e,Xe.INTERNAL);for(let i of this.plugin.settings.templates_pairs){let o=i[0],a=i[1];!o||!a||(Pn.Platform.isMobile?t.set(o,()=>new Promise(l=>l($o))):(a=await this.plugin.templater.parser.parse_commands(a,r),t.set(o,async l=>{let c={...process.env,...l},d={timeout:this.plugin.settings.command_timeout*1e3,cwd:this.cwd,env:c,...this.plugin.settings.shell_path&&{shell:this.plugin.settings.shell_path}};try{let{stdout:m}=await this.exec_promise(a,d);return m.trimRight()}catch(m){throw new P(`Error with User Template ${o}`,m)}})))}return t}async generate_object(e){let t=await this.generate_system_functions(e);return Object.fromEntries(t)}};var ji=class{constructor(e){this.plugin=e}async generate_user_script_functions(){let e=new Map,t=Ce(()=>Je(this.plugin.app,this.plugin.settings.user_scripts_folder),`Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`);if(!t)return new Map;for(let r of t)r.extension.toLowerCase()==="js"&&await this.load_user_script_function(r,e);return e}async load_user_script_function(e,t){let r=c=>window.require&&window.require(c),i={},o={exports:i},a=await this.plugin.app.vault.read(e);try{window.eval("(function anonymous(require, module, exports){"+a+` -})`)(r,o,i)}catch(c){throw new P(`Failed to load user script at "${e.path}".`,c.message)}let l=i.default??o.exports;if(!l)throw new P(`Failed to load user script at "${e.path}". No exports detected.`);if(typeof l=="function")t.set(e.basename,l);else if(typeof l=="object"&&l!==null){if(!Object.values(l).every(d=>typeof d=="function"))throw new P(`Exported object in "${e.path}" must contain only functions.`);t.set(e.basename,l)}else throw new P(`Invalid export in "${e.path}". Must be a function or object of functions.`)}async generate_object(){let e=await this.generate_user_script_functions();return Object.fromEntries(e)}};var vi=class{constructor(e){this.plugin=e;this.user_system_functions=new yi(e),this.user_script_functions=new ji(e)}async generate_object(e){let t={},r={};return this.plugin.settings.enable_system_commands&&(t=await this.user_system_functions.generate_object(e)),this.plugin.settings.user_scripts_folder&&(r=await this.user_script_functions.generate_object()),{...t,...r}}};var Ks=X(require("obsidian")),Xe;(function(t){t[t.INTERNAL=0]="INTERNAL",t[t.USER_INTERNAL=1]="USER_INTERNAL"})(Xe||(Xe={}));var wi=class{constructor(e){this.plugin=e;this.internal_functions=new xi(this.plugin),this.user_functions=new vi(this.plugin)}async init(){await this.internal_functions.init()}async teardown(){await this.internal_functions.teardown()}additional_functions(){return{app:this.plugin.app,obsidian:Ks}}async generate_object(e,t=1){let r={},i=this.additional_functions(),o=await this.internal_functions.generate_object(e),a={};switch(Object.assign(r,i),t){case 0:Object.assign(r,o);break;case 1:a=await this.user_functions.generate_object(e),Object.assign(r,{...o,user:a});break}return r}};var Xs={},M,Ke=new Array(32).fill(void 0);Ke.push(void 0,null,!0,!1);function Pe(n){return Ke[n]}var Nn=Ke.length;function Rs(n){n<36||(Ke[n]=Nn,Nn=n)}function bi(n){let e=Pe(n);return Rs(n),e}var Wo=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Wo.decode();var xr=new Uint8Array;function yr(){return xr.byteLength===0&&(xr=new Uint8Array(M.memory.buffer)),xr}function Et(n,e){return Wo.decode(yr().subarray(n,n+e))}function Tt(n){Nn===Ke.length&&Ke.push(Ke.length+1);let e=Nn;return Nn=Ke[e],Ke[e]=n,e}var Re=0,jr=new TextEncoder("utf-8"),Ys=typeof jr.encodeInto=="function"?function(n,e){return jr.encodeInto(n,e)}:function(n,e){let t=jr.encode(n);return e.set(t),{read:n.length,written:t.length}};function gt(n,e,t){if(t===void 0){let l=jr.encode(n),c=e(l.length);return yr().subarray(c,c+l.length).set(l),Re=l.length,c}let r=n.length,i=e(r),o=yr(),a=0;for(;a127)break;o[i+a]=l}if(a!==r){a!==0&&(n=n.slice(a)),i=t(i,r,r=a+n.length*3);let l=yr().subarray(i+a,i+r);a+=Ys(n,l).written}return Re=a,i}function Us(n){return n==null}var vr=new Int32Array;function Ne(){return vr.byteLength===0&&(vr=new Int32Array(M.memory.buffer)),vr}function Ei(n){let e=typeof n;if(e=="number"||e=="boolean"||n==null)return`${n}`;if(e=="string")return`"${n}"`;if(e=="symbol"){let i=n.description;return i==null?"Symbol":`Symbol(${i})`}if(e=="function"){let i=n.name;return typeof i=="string"&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(n)){let i=n.length,o="[";i>0&&(o+=Ei(n[0]));for(let a=1;a1)r=t[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message} -${n.stack}`:r}function Gs(n,e){if(!(n instanceof e))throw new Error(`expected instance of ${e.name}`);return n.ptr}var wr=32;function Ws(n){if(wr==1)throw new Error("out of js stack");return Ke[--wr]=n,wr}function Ti(n,e){try{return n.apply(this,e)}catch(t){M.__wbindgen_exn_store(Tt(t))}}var Rt=class{static __wrap(e){let t=Object.create(Rt.prototype);return t.ptr=e,t}__destroy_into_raw(){let e=this.ptr;return this.ptr=0,e}free(){let e=this.__destroy_into_raw();M.__wbg_parserconfig_free(e)}get interpolate(){let e=M.__wbg_get_parserconfig_interpolate(this.ptr);return String.fromCodePoint(e)}set interpolate(e){M.__wbg_set_parserconfig_interpolate(this.ptr,e.codePointAt(0))}get execution(){let e=M.__wbg_get_parserconfig_execution(this.ptr);return String.fromCodePoint(e)}set execution(e){M.__wbg_set_parserconfig_execution(this.ptr,e.codePointAt(0))}get single_whitespace(){let e=M.__wbg_get_parserconfig_single_whitespace(this.ptr);return String.fromCodePoint(e)}set single_whitespace(e){M.__wbg_set_parserconfig_single_whitespace(this.ptr,e.codePointAt(0))}get multiple_whitespace(){let e=M.__wbg_get_parserconfig_multiple_whitespace(this.ptr);return String.fromCodePoint(e)}set multiple_whitespace(e){M.__wbg_set_parserconfig_multiple_whitespace(this.ptr,e.codePointAt(0))}constructor(e,t,r,i,o,a,l){let c=gt(e,M.__wbindgen_malloc,M.__wbindgen_realloc),d=Re,m=gt(t,M.__wbindgen_malloc,M.__wbindgen_realloc),_=Re,w=gt(l,M.__wbindgen_malloc,M.__wbindgen_realloc),b=Re,S=M.parserconfig_new(c,d,m,_,r.codePointAt(0),i.codePointAt(0),o.codePointAt(0),a.codePointAt(0),w,b);return Rt.__wrap(S)}get opening_tag(){try{let r=M.__wbindgen_add_to_stack_pointer(-16);M.parserconfig_opening_tag(r,this.ptr);var e=Ne()[r/4+0],t=Ne()[r/4+1];return Et(e,t)}finally{M.__wbindgen_add_to_stack_pointer(16),M.__wbindgen_free(e,t)}}set opening_tag(e){let t=gt(e,M.__wbindgen_malloc,M.__wbindgen_realloc),r=Re;M.parserconfig_set_opening_tag(this.ptr,t,r)}get closing_tag(){try{let r=M.__wbindgen_add_to_stack_pointer(-16);M.parserconfig_closing_tag(r,this.ptr);var e=Ne()[r/4+0],t=Ne()[r/4+1];return Et(e,t)}finally{M.__wbindgen_add_to_stack_pointer(16),M.__wbindgen_free(e,t)}}set closing_tag(e){let t=gt(e,M.__wbindgen_malloc,M.__wbindgen_realloc),r=Re;M.parserconfig_set_closing_tag(this.ptr,t,r)}get global_var(){try{let r=M.__wbindgen_add_to_stack_pointer(-16);M.parserconfig_global_var(r,this.ptr);var e=Ne()[r/4+0],t=Ne()[r/4+1];return Et(e,t)}finally{M.__wbindgen_add_to_stack_pointer(16),M.__wbindgen_free(e,t)}}set global_var(e){let t=gt(e,M.__wbindgen_malloc,M.__wbindgen_realloc),r=Re;M.parserconfig_set_global_var(this.ptr,t,r)}},sn=class{static __wrap(e){let t=Object.create(sn.prototype);return t.ptr=e,t}__destroy_into_raw(){let e=this.ptr;return this.ptr=0,e}free(){let e=this.__destroy_into_raw();M.__wbg_renderer_free(e)}constructor(e){Gs(e,Rt);var t=e.ptr;e.ptr=0;let r=M.renderer_new(t);return sn.__wrap(r)}render_content(e,t){try{let a=M.__wbindgen_add_to_stack_pointer(-16),l=gt(e,M.__wbindgen_malloc,M.__wbindgen_realloc),c=Re;M.renderer_render_content(a,this.ptr,l,c,Ws(t));var r=Ne()[a/4+0],i=Ne()[a/4+1],o=Ne()[a/4+2];if(o)throw bi(i);return bi(r)}finally{M.__wbindgen_add_to_stack_pointer(16),Ke[wr++]=void 0}}};async function Vs(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}let t=await n.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{let t=await WebAssembly.instantiate(n,e);return t instanceof WebAssembly.Instance?{instance:t,module:n}:t}}function zs(){let n={};return n.wbg={},n.wbg.__wbindgen_object_drop_ref=function(e){bi(e)},n.wbg.__wbindgen_string_new=function(e,t){let r=Et(e,t);return Tt(r)},n.wbg.__wbindgen_string_get=function(e,t){let r=Pe(t),i=typeof r=="string"?r:void 0;var o=Us(i)?0:gt(i,M.__wbindgen_malloc,M.__wbindgen_realloc),a=Re;Ne()[e/4+1]=a,Ne()[e/4+0]=o},n.wbg.__wbg_call_97ae9d8645dc388b=function(){return Ti(function(e,t){let r=Pe(e).call(Pe(t));return Tt(r)},arguments)},n.wbg.__wbg_new_8d2af00bc1e329ee=function(e,t){let r=new Error(Et(e,t));return Tt(r)},n.wbg.__wbg_message_fe2af63ccc8985bc=function(e){let t=Pe(e).message;return Tt(t)},n.wbg.__wbg_newwithargs_8fe23e3842840c8e=function(e,t,r,i){let o=new Function(Et(e,t),Et(r,i));return Tt(o)},n.wbg.__wbg_call_168da88779e35f61=function(){return Ti(function(e,t,r){let i=Pe(e).call(Pe(t),Pe(r));return Tt(i)},arguments)},n.wbg.__wbg_call_3999bee59e9f7719=function(){return Ti(function(e,t,r,i){let o=Pe(e).call(Pe(t),Pe(r),Pe(i));return Tt(o)},arguments)},n.wbg.__wbindgen_debug_string=function(e,t){let r=Ei(Pe(t)),i=gt(r,M.__wbindgen_malloc,M.__wbindgen_realloc),o=Re;Ne()[e/4+1]=o,Ne()[e/4+0]=i},n.wbg.__wbindgen_throw=function(e,t){throw new Error(Et(e,t))},n}function Js(n,e){}function Qs(n,e){return M=n.exports,Vo.__wbindgen_wasm_module=e,vr=new Int32Array,xr=new Uint8Array,M}async function Vo(n){typeof n=="undefined"&&(n=new URL("rusty_engine_bg.wasm",Xs.url));let e=zs();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n)),Js(e);let{instance:t,module:r}=await Vs(await n,e);return Qs(t,r)}var zo=Vo;var Jo=Ji("AGFzbQEAAAABvwEaYAJ/fwBgAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgAX8AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gAABgBX9/f39/AX9gAX8BfmAAAX9gBn9/f39/fwBgB39/f39/f38AYAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAFf35/f38AYAR/fX9/AGAEf3x/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCn9/f39/f39/f38Bf2ACfn8BfwLkAgsDd2JnGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAUDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxVfX3diaW5kZ2VuX3N0cmluZ19nZXQAAAN3YmcbX193YmdfY2FsbF85N2FlOWQ4NjQ1ZGMzODhiAAEDd2JnGl9fd2JnX25ld184ZDJhZjAwYmMxZTMyOWVlAAEDd2JnHl9fd2JnX21lc3NhZ2VfZmUyYWY2M2NjYzg5ODViYwACA3diZyJfX3diZ19uZXd3aXRoYXJnc184ZmUyM2UzODQyODQwYzhlAAgDd2JnG19fd2JnX2NhbGxfMTY4ZGE4ODc3OWUzNWY2MQADA3diZxtfX3diZ19jYWxsXzM5OTliZWU1OWU5Zjc3MTkACAN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA7kBtwECBwAGAgYEBAcBBQMKCAAEBgYAAwcCAAEADgETAQQXAQICAQAAAwcZAQAFAQwABgACAgAAAgAEBAAGAQAAAAAEBw0CAQUEBQYCDBgAAQAAAAQBAQEAAQABBAQEBgMDBwMJAwQIAAAABQkAAgEAAAAABwAAAgICAgAFBQMEFgoGEQ8QAAUHAwIBAgABBQEBCAACAQEBBQEAAgECAgACAQEBAgAJCQICAgIAAAAAAwMDAQECAgsLCwUEBQFwATs7BQMBABEGCQF/AUGAgMAACwfcBRkGbWVtb3J5AgAXX193YmdfcGFyc2VyY29uZmlnX2ZyZWUAUSJfX3diZ19nZXRfcGFyc2VyY29uZmlnX2ludGVycG9sYXRlAH4iX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19pbnRlcnBvbGF0ZQB3IF9fd2JnX2dldF9wYXJzZXJjb25maWdfZXhlY3V0aW9uAH8gX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19leGVjdXRpb24AeChfX3diZ19nZXRfcGFyc2VyY29uZmlnX3NpbmdsZV93aGl0ZXNwYWNlAIABKF9fd2JnX3NldF9wYXJzZXJjb25maWdfc2luZ2xlX3doaXRlc3BhY2UAeSpfX3diZ19nZXRfcGFyc2VyY29uZmlnX211bHRpcGxlX3doaXRlc3BhY2UAgQEqX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19tdWx0aXBsZV93aGl0ZXNwYWNlAHoQcGFyc2VyY29uZmlnX25ldwBVGHBhcnNlcmNvbmZpZ19vcGVuaW5nX3RhZwBGHHBhcnNlcmNvbmZpZ19zZXRfb3BlbmluZ190YWcAYxhwYXJzZXJjb25maWdfY2xvc2luZ190YWcARxxwYXJzZXJjb25maWdfc2V0X2Nsb3NpbmdfdGFnAGQXcGFyc2VyY29uZmlnX2dsb2JhbF92YXIASBtwYXJzZXJjb25maWdfc2V0X2dsb2JhbF92YXIAZRNfX3diZ19yZW5kZXJlcl9mcmVlAE8McmVuZGVyZXJfbmV3ACAXcmVuZGVyZXJfcmVuZGVyX2NvbnRlbnQAORFfX3diaW5kZ2VuX21hbGxvYwB1El9fd2JpbmRnZW5fcmVhbGxvYwCFAR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAKsBD19fd2JpbmRnZW5fZnJlZQCaARRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfAQllAQBBAQs6mAGdAaoBPzzBAZUBlgFOkgGOAWotYsEBwQFnKl3BAXaIAUyJAYgBhwGQAY8BiQGJAYwBigGLAZgBX8EBaKABXo4BvwG+AYQBOElwoQHBAWioAWCjAVclqQGcAcEBwAEK2dYCtwG8IAIPfwF+IwBBEGsiCyQAAkACQCAAQfUBTwRAQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiICQQBBEEEIEJcBQQJ0ayIBIAEgAksbIABNDQIgAEEEakEIEJcBIQRBrK7AACgCAEUNAUEAIARrIQMCQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG4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EBBBIAQoAgAiBSAAKAIAaiIGQdSDwAApAAA3AAAgBCAFQRBqNgIAIAZBCGpB3IPAACkAADcAACADQQE2AiwgAyABKAIIQShqIgU2AiggAyAANgIYIANB3ABqQQE2AgAgA0ICNwJMIANB8IPAADYCSCADIANBKGo2AlgCQAJAAkACQAJAAkAgA0EYakGYisAAIANByABqEB5FBEAgAigCACEIAkAgAigCCCIBRQ0AIAFBBHQhCkGQhMAAIQZBACEBQQAhBANAAn8gASAIaiIHQQRqIgkgBygCAEUNABoCQCAERQ0AIANBEGogBCgCACAEKAIEQQAgBiAGLQAAQQJGG0EBEBAgA0EIaiADKAIQIAMoAhRBACAHQQ1qIgQgBC0AAEECRhtBABAQIANBGGogAygCCCADKAIMEBIgA0EBNgI0IANBATYCLCADIAU2AiggAyADQRhqNgIwIAMgADYCRCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0HEAGpBmIrAACADQcgAahAeDQUgAygCHEUNACADKAIYEBULIAdBDmohBgJAIAdBDGotAABFBEAgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQfSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcgA0ECNgI0IANBoIXAADYCMCADQQE2AiwgAyAFNgIoIAMgADYCGCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0EYakGYisAAIANByABqEB5FDQFBq4HAAEErIANByABqQdiBwABBqIXAABBSAAsgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQcSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcLQQALIQQgCiABQRBqIgFHDQALIARFDQAgAyAEKAIAIAQoAgRBACAGIAYtAABBAkYbQQEQECADQRhqIAMoAgAgAygCBBASIANBNGpBATYCACADQQE2AiwgAyAFNgIoIAMgA0EYajYCMCADIAA2AkQgA0HcAGpBAjYCACADQgM3AkwgA0GYhMAANgJIIAMgA0EoajYCWCADQcQAakGYisAAIANByABqEB4NBSADKAIcRQ0AIAMoAhgQFQsgAEEEaigCACAAQQhqIgQoAgAiAWtBJ00EQCAAIAFBKBBBIAQoAgAhAQsgBCABQShqNgIAIAAoAgAgAWoiAUHIhcAAKQAANwAAIAFBCGpB0IXAACkAADcAACABQRBqQdiFwAApAAA3AAAgAUEYakHghcAAKQAANwAAIAFBIGpB6IXAACkAADcAACADQTxqQQI2AgAgA0E0akEBNgIAIANBoIXAADYCOCADIAU2AjAgA0EBNgIsIAMgBTYCKCADIAA2AhggA0HcAGoiAUEDNgIAIANCBDcCTCADQZiGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQUgA0EBNgIsIAMgBTYCKCADIAA2AhggAUEBNgIAIANCAjcCTCADQdCGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQYgAkEEaigCAARAIAgQFQsgA0HgAGokAA8LQauBwABBKyADQcgAakHYgcAAQYCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQYSFwAAQUgALQauBwABBKyADQcgAakHYgcAAQdSEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiFwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiGwAAQUgALQauBwABBKyADQcgAakHYgcAAQeCGwAAQUgAL7QkCCH8GfiMAQdAAayIDJAACQAJAAkAQVCIEBEAgA0EgakIANwMAIANBHGpBkIrAADYCACAEIAQpAwAiC0IBfDcDACADQQA2AhggAyALNwMIIAMgBEEIaikDADcDECADQqeAgIDwBDcDSCADQo2AgICgDjcDQCADQoqAgIDgDTcDOCADQtyAgIDACzcDMCADQQhqIANBMGoQGSADQQA2AjggA0IENwMwIAJFBEAgAEEANgIIIABCATcCAEEEIQRBBCEBDAQLIAEgAmohCEEAIQIDQAJ/IAEsAAAiBEF/SgRAIARB/wFxIQQgAUEBagwBCyABLQABQT9xIQUgBEEfcSEGIARBX00EQCAGQQZ0IAVyIQQgAUECagwBCyABLQACQT9xIAVBBnRyIQUgBEFwSQRAIAUgBkEMdHIhBCABQQNqDAELIAZBEnRBgIDwAHEgAS0AA0E/cSAFQQZ0cnIiBEGAgMQA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ASACIANqQQFqIgM2AhAgAyAHT0EAIAMgDE0bRQRAIAYgA08NAQwDCwsgB0EEELUBAAsgASAGNgIQCyABLQAkIAEoAgAiAiABKAIEIgRHckUNASABQQE6ACUgBCACawshAyAIRQ0AIAIgCGohCyADRQRAQQAhAgwBCyADQX9qIgEgAyABIAtqLQAAQQ1GGyECCyAAIAI2AgQgACALNgIAIAVBEGokAAv+BAEKfyMAQTBrIgMkACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCICADQQA2AhggA0EANgIQAkACQAJAIAIoAggiCkUEQCACQRRqKAIAIgRFDQEgAigCACEBIAIoAhAhACAEQX9qQf////8BcUEBaiIHIQQDQCABQQRqKAIAIgUEQCADKAIgIAEoAgAgBSADKAIkKAIMEQMADQQLIAAoAgAgA0EIaiAAQQRqKAIAEQEADQMgAEEIaiEAIAFBCGohASAEQX9qIgQNAAsMAQsgAkEMaigCACIARQ0AIABBBXQhCyAAQX9qQf///z9xQQFqIQcgAigCACEBA0AgAUEEaigCACIABEAgAygCICABKAIAIAAgAygCJCgCDBEDAA0DCyADIAQgCmoiBUEcai0AADoAKCADIAVBBGopAgBCIIk3AwggBUEYaigCACEGIAIoAhAhCEEAIQlBACEAAkACQAJAIAVBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQTdHDQEgDCgCACgCACEGC0EBIQALIAMgBjYCFCADIAA2AhAgBUEQaigCACEAAkACQAJAIAVBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQTdHDQEgBigCACgCACEAC0EBIQkLIAMgADYCHCADIAk2AhggCCAFKAIAQQN0aiIAKAIAIANBCGogACgCBBEBAA0CIAFBCGohASALIARBIGoiBEcNAAsLQQAhACAHIAIoAgRJIgFFDQEgAygCICACKAIAIAdBA3RqQQAgARsiASgCACABKAIEIAMoAiQoAgwRAwBFDQELQQEhAAsgA0EwaiQAIAALwgQBCH8jAEHQAGsiBCQAIARBEGogASACIAMoAgAgA0EIaigCABAOAkACQAJAAkACQAJAIAQoAhBFBEAgBEEeai0AAA0EIARBxABqKAIAIQYgBCgCQCEHIARBHGot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AkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAAoAggiAyAAQQRqKAIARgR/IAAgAxBAIAAoAggFIAMLIAAoAgBqIAE6AAAgACAAKAIIQQFqNgIIDAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEEgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJABBAAvVAgEDfyMAQRBrIgIkAAJAAn8CQCABQYABTwRAIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAILIAAoAggiAyAAQQRqKAIARgRAIAAgAxBDIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCyABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAAL1wIBA38jAEEQayICJAACQAJ/AkACQCABQYABTwRAIAJBADYCDCABQYAQSQ0BIAFBgIAETw0CIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAwsgACgCCCIDIABBBGooAgBGBEAgACADEEMgACgCCCEDCyAAIANBAWo2AgggACgCACADaiABOgAADAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiAC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AiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQRBqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQSxqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogA0EIaiAEKAIANgIAIAMgAikDCDcCAAsgAEHoj8AANgIEIAAgAzYCACACQTBqJAALkAEBAn8CQAJ/AkACQAJAAn9BASIDIAFBAEgNABogAigCCEUNAiACKAIEIgQNASABDQNBAQwECyEDQQAhAQwECyACKAIAIARBASABEJkBDAILIAENAEEBDAELIAFBARCeAQsiAgRAIAAgAjYCBEEAIQMMAQsgACABNgIEQQEhAQsgACADNgIAIABBCGogATYCAAunAQECfwJAAkACQAJAAkACQAJAAn8gAgRAQQEiBCABQQBIDQEaIAMoAghFDQMgAygCBCIFDQIgAQ0EDAYLIAAgATYCBEEBCyEEQQAhAQwGCyADKAIAIAUgAiABEJkBIgNFDQIMBAsgAUUNAgsgASACEJ4BIgMNAgsgACABNgIEIAIhAQwCCyACIQML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AX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEDNgIAIAJCAjcCDCACQfSWwAA2AgggAkEDNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpBhJfAABB0AAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBAzYCACADQgI3AgwgA0HAk8AANgIIIANBAzYCJCADIANBIGo2AhggAyADNgIoIAMgA0EEajYCICADQQhqIAIQdAALVgECfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCADIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGYisAAIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGAjsAAIAJBCGoQHiACQSBqJAALZwAjAEEwayIBJABB2K3AAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUH0jsAANgIIIAFBAzYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQZyPwAAQdAALIAFBMGokAAtZAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbSRwAAgAkEIahAeIAJBIGokAAtnAQJ/IAEoAgAhAwJAAkACQCABQQhqKAIAIgFFBEBBASECDAELIAFBf0wNASABQQEQngEiAkUNAgsgAiADIAEQuQEhAiAAIAE2AgggACABNgIEIAAgAjYCAA8LEHMACyABQQEQswEAC1YBAX8jAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBmIrAACACQQhqEB4gAkEgaiQAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQQhqIgMoAgAEQCAAKAIEEBULIAAgATYCBCAAQQA2AgAgAEEMaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQRRqIgMoAgAEQCAAKAIQEBULIAAgATYCECAAQQA2AgAgAEEYaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQTBqIgMoAgAEQCAAKAIsEBULIAAgATYCLCAAQQA2AgAgAEE0aiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8jAEEQayIFJAAgASgCACACKAIAIAMoAgAgBCgCABAIIQEgBUEIahCDASAFKAIMIQIgACAFKAIIIgNBAEc2AgAgACACIAEgAxs2AgQgBUEQaiQAC08BAn8gACgCACIDQQRqKAIAIANBCGoiBCgCACIAayACSQRAIAMgACACEEEgBCgCACEACyADKAIAIABqIAEgAhC5ARogBCAAIAJqNgIAQQALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQQiAEKAIAIQALIAMoAgAgAGogASACELkBGiAEIAAgAmo2AgBBAAtRAQF/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAchASAEQQhqEIMBIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALSgECfyAAQQRqKAIAIABBCGoiBCgCACIDayACSQRAIAAgAyACEEEgBCgCACEDCyAAKAIAIANqIAEgAhC5ARogBCACIANqNgIAQQALPwEBfyMAQSBrIgAkACAAQRxqQQA2AgAgAEGwkMAANgIYIABCATcCDCAAQcyQwAA2AgggAEEIakGkkcAAEHQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLTAECfyMAQRBrIgMkACABKAIAIAIoAgAQAyEBIANBCGoQgwEgAygCDCECIAAgAygCCCIEQQBHNgIAIAAgAiABIAQbNgIEIANBEGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAQANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRAwALRwEBfyMAQSBrIgIkACACQRRqQQA2AgAgAkGAk8AANgIQIAJCATcCBCACQSs2AhwgAiAANgIYIAIgAkEYajYCACACIAEQdAALRgECfyABKAIEIQIgASgCACEDQQhBBBCeASIBRQRAQQhBBBCzAQALIAEgAjYCBCABIAM2AgAgAEH4j8AANgIEIAAgATYCAAs5AQF/IAFBEHZAACECIABBADYCCCAAQQAgAUGAgHxxIAJBf0YiARs2AgQgAEEAIAJBEHQgARs2AgALZAEDfyMAQRBrIgEkACAAKAIMIgJFBEBBmI7AAEHIj8AAEG8ACyAAKAIIIgNFBEBBmI7AAEHYj8AAEG8ACyABIAI2AgggASAANgIEIAEgAzYCACABKAIAIAEoAgQgASgCCBBQAAs/AQF/IwBBIGsiACQAIABBHGpBADYCACAAQcyRwAA2AhggAEIBNwIMIABBjJLAADYCCCAAQQhqQZSSwAAQdAALPgEBfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQfyTwAA2AgwgAkGAk8AANgIIIAJBCGoQcgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0EJ4BIgBFDQAgAA8LAAsiACMAQRBrIgAkACAAQQhqIAEQfSAAQQhqEFMgAEEQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEcaiABNgIADwsQrQEACxCuAQALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE2AgAPCxCtAQALEK4BAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATYCAA8LEK0BAAsQrgEACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQrQEACxCuAQALQAEBfyMAQRBrIgQkACAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgAgBCgCACAEKAIEIAQoAgggBCgCDBATAAs3ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcakHEh8AANgIACzUBAX8gASgCGEHDjsAAQQsgAUEcaigCACgCDBEDACECIABBADoABSAAIAI6AAQgACABNgIACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQrQEACxCuAQALJQACQCAABEAgACgCAEF/Rg0BIABBIGooAgAPCxCtAQALEK4BAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEkaigCAA8LEK0BAAsQrgEACyUAAkAgAARAIAAoAgBBf0YNASAAQShqKAIADwsQrQEACxCuAQALJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECzoBAn9B3K3AAC0AACEBQdytwABBADoAAEHgrcAAKAIAIQJB4K3AAEEANgIAIAAgAjYCBCAAIAE2AgALIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQFQsLHwACQCABQXxNBEAgACABQQQgAhCZASIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAslACAARQRAQciMwABBMBCsAQALIAAgAiADIAQgBSABKAIQEQoACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQgACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQcACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERUACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERIACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERQACx4AIAAgAUEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsUACAAQQRqKAIABEAgACgCABAVCwshACAARQRAQciMwABBMBCsAQALIAAgAiADIAEoAhARBAALHwAgAEUEQEHIjMAAQTAQrAEACyAAIAIgASgCEBEBAAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxkAIAAoAgAiACgCACAAQQhqKAIAIAEQtwELEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEHgpsAAQQUgAUEcaigCACgCDBEDAAsTACAAKAIAIgBBJE8EQCAAEAALCxAAIAAgAWpBf2pBACABa3ELFAAgACgCACAAQQhqKAIAIAEQtwELDAAgACABIAIgAxAYCwsAIAEEQCAAEBULCw8AIABBAXQiAEEAIABrcgsUACAAKAIAIAEg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BAAAAAQAAAARAAAAEgAAABMAAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAHYFEABPAAAApQEAABoAAAAUAAAAAAAAAAEAAAAVAAAAL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwDoBRAATwAAALcBAAAmAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5SnNWYWx1ZSgpAAAAeAYQAAgAAACABhAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAACQAAAAEAAAABAAAACUAAAAmAAAAJwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVBY2Nlc3NFcnJvcm1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQKAAAATgcQABUAAABjBxAADgAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc4QHEAAYAAAAUgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzrAcQABwAAABGAgAAHwAAAKwHEAAcAAAARwIAAB4AAAAoAAAADAAAAAQAAAApAAAAJAAAAAgAAAAEAAAAKgAAACsAAAAQAAAABAAAACwAAAAtAAAAJAAAAAgAAAAEAAAALgAAAC8AAABIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93MAgQABwAAAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9oYXNoYnJvd24tMC4xMi4zL3NyYy9yYXcvbW9kLnJzAFQIEABPAAAAWgAAACgAAAAwAAAABAAAAAQAAAAxAAAAMgAAADMAAAAwAAAAAAAAAAEAAAAHAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA+AgQABEAAADcCBAAHAAAAAYCAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9ybGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAFcJEAAYAAAAZAIAACAAAAAuLgAAgAkQAAIAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAjAkQACAAAACsCRAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAOQAAAAAAAAABAAAAOgAAAGA6IACACRAAAAAAAA0KEAACAAAAfSB9MHgwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIHN0YXJ0IGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCAAAADtChAAEgAAAP8KEAAiAAAAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwA0CxAAHwAAADQAAAAFAAAAcmFuZ2UgZW5kIGluZGV4IGQLEAAQAAAA/woQACIAAAA0CxAAHwAAAEkAAAAFAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAlAsQABYAAACqCxAADQAAADQLEAAfAAAAXAAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzANgLEAAfAAAAGgYAABUAAADYCxAAHwAAAEgGAAAVAAAA2AsQAB8AAABJBgAA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");var ki=class{async init(){await zo(Jo);let e=new Rt("<%","%>","\0","*","-","_","tR");this.renderer=new sn(e)}async parse_commands(e,t){return this.renderer.render_content(e,t)}};var Ze;(function(a){a[a.CreateNewFromTemplate=0]="CreateNewFromTemplate",a[a.AppendActiveFile=1]="AppendActiveFile",a[a.OverwriteFile=2]="OverwriteFile",a[a.OverwriteActiveFile=3]="OverwriteActiveFile",a[a.DynamicProcessor=4]="DynamicProcessor",a[a.StartupTemplate=5]="StartupTemplate"})(Ze||(Ze={}));var cn=class{constructor(e){this.plugin=e;this.functions_generator=new wi(this.plugin),this.parser=new ki}async setup(){this.files_with_pending_templates=new Set,await this.parser.init(),await this.functions_generator.init(),this.plugin.registerMarkdownPostProcessor((e,t)=>this.process_dynamic_templates(e,t))}create_running_config(e,t,r){let i=vt(this.plugin.app);return{template_file:e,target_file:t,run_mode:r,active_file:i}}async read_and_parse_template(e){let t=await this.plugin.app.vault.read(e.template_file);return this.parse_template(e,t)}async parse_template(e,t){let r=await this.functions_generator.generate_object(e,Xe.USER_INTERNAL);return this.current_functions_object=r,await this.parser.parse_commands(t,r)}start_templater_task(e){this.files_with_pending_templates.add(e)}async end_templater_task(e){this.files_with_pending_templates.delete(e),this.files_with_pending_templates.size===0&&(this.plugin.app.workspace.trigger("templater:all-templates-executed"),await this.functions_generator.teardown())}async create_new_note_from_template(e,t,r,i=!0){if(!t)switch(this.plugin.app.vault.getConfig("newFileLocation")){case"current":{let _=vt(this.plugin.app);_&&(t=_.parent);break}case"folder":t=this.plugin.app.fileManager.getNewFileParent("");break;case"root":t=this.plugin.app.vault.getRoot();break;default:break}let o=e instanceof de.TFile&&e.extension||"md",a=await Se(async()=>{let m=t instanceof de.TFolder?t.path:t,_=this.plugin.app.vault.getAvailablePath((0,de.normalizePath)(`${m??""}/${r||"Untitled"}`),o),w=lo(_);return w&&!this.plugin.app.vault.getAbstractFileByPathInsensitive(w)&&await this.plugin.app.vault.createFolder(w),this.plugin.app.vault.create(_,"")},`Couldn't create ${o} file.`);if(a==null)return;let{path:l}=a;this.start_templater_task(l);let c,d;if(e instanceof de.TFile?(c=this.create_running_config(e,a,0),d=await Se(async()=>this.read_and_parse_template(c),"Template parsing error, aborting.")):(c=this.create_running_config(void 0,a,0),d=await Se(async()=>this.parse_template(c,e),"Template parsing error, aborting.")),d==null){await this.plugin.app.vault.delete(a),await this.end_templater_task(l);return}if(await this.plugin.app.vault.modify(a,d),this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:a,content:d}),i){let m=this.plugin.app.workspace.getLeaf(!1);if(!m){oe(new P("No active leaf"));return}await m.openFile(a,{state:{mode:"source"}}),await this.plugin.editor_handler.jump_to_next_cursor_location(a,!0),m.setEphemeralState({rename:"all"})}return await this.end_templater_task(l),a}async append_template_to_active_file(e){let t=this.plugin.app.workspace.getActiveViewOfType(de.MarkdownView),r=this.plugin.app.workspace.activeEditor;if(!r||!r.file||!r.editor){oe(new P("No active editor, can't append templates."));return}let{path:i}=r.file;this.start_templater_task(i);let o=this.create_running_config(e,r.file,1),a=await Se(async()=>this.read_and_parse_template(o),"Template parsing error, aborting.");if(a==null){await this.end_templater_task(i);return}let{content:l,frontmatter:c}=vn(a),m=r.editor.getDoc(),_=m.listSelections();m.replaceSelection(l),t&&(Object.keys(c).length>0&&t instanceof de.MarkdownView&&typeof t.metadataEditor?.insertProperties=="function"&&t.metadataEditor.insertProperties(c),await jt(100),await t.save()),this.plugin.app.workspace.trigger("templater:template-appended",{view:t,editor:r,content:a,oldSelections:_,newSelections:m.listSelections()}),await this.plugin.editor_handler.jump_to_next_cursor_location(r.file,!0),await this.end_templater_task(i)}async write_template_to_file(e,t){let{path:r}=t;this.start_templater_task(r);let i=this.plugin.app.workspace.getActiveViewOfType(de.MarkdownView),o=this.plugin.app.workspace.activeEditor,a=vt(this.plugin.app),l=this.create_running_config(e,t,2),c=await Se(async()=>this.read_and_parse_template(l),"Template parsing error, aborting.");if(c==null){await this.end_templater_task(r);return}let{content:d,frontmatter:m}=vn(c);if(a?.path===t.path&&o&&o.editor&&i){let _="",{content:w,frontmatter:b}=vn(o.editor.getValue());ur(b,m),Object.keys(b).length>0&&(_+=`--- +`)}catch{console.error("Failed to parse summary section")}}function as(n){if(!n)return"";try{return n.content.nodes[0].getChildNodes()[0].text.trim()}catch{return""}}function ss(n){try{return n.blocks.map(r=>{let i=r.parameterName,o=r.content.getChildNodes()[0].getChildNodes().filter(a=>a instanceof Ve).map(a=>a.text).join(" ");return new Gr(i,o)})}catch{return[]}}function Ot(n,e,t){if(t<0||t===n.length)return;let r=n[e];n[e]=n[t],n[t]=r}function wt(n){return n.workspace.activeEditor?.file??n.workspace.getActiveFile()}function fr(n){let e=n.lastIndexOf("/");return e!==-1?n.slice(0,e):""}function vn(n){return n!==null&&typeof n=="object"}function uo(n){let e=n.toString(),t=e.indexOf("(");return e.substring(t+1,e.indexOf(")")).replace(/ /g,"").split(",")}function Vr(n,e,t){let r=n instanceof HTMLOListElement?"li":"p",i=n.createEl(r),o=n.createEl("b",{text:e});return i.appendChild(o),i.appendChild(document.createTextNode(`: ${t}`)),i}function dr(n,e){if(Object.keys(e).length!==0){for(let t in e)if(e.hasOwnProperty(t))if(n.hasOwnProperty(t)){let r=n[t],i=e[t];if(Array.isArray(r)||Array.isArray(i)){let o=Array.isArray(r)?r:[r],a=Array.isArray(i)?i:[i];n[t]=o.concat(a).unique()}else vn(r)&&vn(i)?dr(r,i):i!=null&&i!==""&&(n[t]=i)}else n[t]=e[t]}}function wn(n){let e={},t=(0,Te.getFrontMatterInfo)(n);return t.frontmatter&&(e=(0,Te.parseYaml)(t.frontmatter)),{frontmatter:e,content:n.slice(t.contentStart)}}var Io=X(require("obsidian"));var Oo=X(require("obsidian"));var ie="top",ue="bottom",ce="right",ae="left",mr="auto",bt=[ie,ue,ce,ae],ut="start",Bt="end",fo="clippingParents",gr="viewport",en="popper",mo="reference",zr=bt.reduce(function(n,e){return n.concat([e+"-"+ut,e+"-"+Bt])},[]),hr=[].concat(bt,[mr]).reduce(function(n,e){return n.concat([e,e+"-"+ut,e+"-"+Bt])},[]),cs="beforeRead",ls="read",ps="afterRead",us="beforeMain",fs="main",ds="afterMain",ms="beforeWrite",gs="write",hs="afterWrite",go=[cs,ls,ps,us,fs,ds,ms,gs,hs];function me(n){return n?(n.nodeName||"").toLowerCase():null}function Z(n){if(n==null)return window;if(n.toString()!=="[object Window]"){var e=n.ownerDocument;return e&&e.defaultView||window}return n}function Me(n){var e=Z(n).Element;return n instanceof e||n instanceof Element}function fe(n){var e=Z(n).HTMLElement;return n instanceof e||n instanceof HTMLElement}function tn(n){if(typeof ShadowRoot=="undefined")return!1;var e=Z(n).ShadowRoot;return n instanceof e||n instanceof ShadowRoot}function As(n){var e=n.state;Object.keys(e.elements).forEach(function(t){var r=e.styles[t]||{},i=e.attributes[t]||{},o=e.elements[t];!fe(o)||!me(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(a){var l=i[a];l===!1?o.removeAttribute(a):o.setAttribute(a,l===!0?"":l)}))})}function _s(n){var e=n.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(r){var i=e.elements[r],o=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:t[r]),l=a.reduce(function(c,d){return c[d]="",c},{});!fe(i)||!me(i)||(Object.assign(i.style,l),Object.keys(o).forEach(function(c){i.removeAttribute(c)}))})}}var ho={name:"applyStyles",enabled:!0,phase:"write",fn:As,effect:_s,requires:["computeStyles"]};function ge(n){return n.split("-")[0]}var qe=Math.max,It=Math.min,ft=Math.round;function nn(){var n=navigator.userAgentData;return n!=null&&n.brands&&Array.isArray(n.brands)?n.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function bn(){return!/^((?!chrome|android).)*safari/i.test(nn())}function Oe(n,e,t){e===void 0&&(e=!1),t===void 0&&(t=!1);var r=n.getBoundingClientRect(),i=1,o=1;e&&fe(n)&&(i=n.offsetWidth>0&&ft(r.width)/n.offsetWidth||1,o=n.offsetHeight>0&&ft(r.height)/n.offsetHeight||1);var a=Me(n)?Z(n):window,l=a.visualViewport,c=!bn()&&t,d=(r.left+(c&&l?l.offsetLeft:0))/i,m=(r.top+(c&&l?l.offsetTop:0))/o,_=r.width/i,w=r.height/o;return{width:_,height:w,top:m,right:d+_,bottom:m+w,left:d,x:d,y:m}}function Ft(n){var e=Oe(n),t=n.offsetWidth,r=n.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:n.offsetLeft,y:n.offsetTop,width:t,height:r}}function En(n,e){var t=e.getRootNode&&e.getRootNode();if(n.contains(e))return!0;if(t&&tn(t)){var r=e;do{if(r&&n.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function we(n){return Z(n).getComputedStyle(n)}function Jr(n){return["table","td","th"].indexOf(me(n))>=0}function Ae(n){return((Me(n)?n.ownerDocument:n.document)||window.document).documentElement}function dt(n){return me(n)==="html"?n:n.assignedSlot||n.parentNode||(tn(n)?n.host:null)||Ae(n)}function Ao(n){return!fe(n)||we(n).position==="fixed"?null:n.offsetParent}function xs(n){var e=/firefox/i.test(nn()),t=/Trident/i.test(nn());if(t&&fe(n)){var r=we(n);if(r.position==="fixed")return null}var i=dt(n);for(tn(i)&&(i=i.host);fe(i)&&["html","body"].indexOf(me(i))<0;){var o=we(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||e&&o.willChange==="filter"||e&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function Le(n){for(var e=Z(n),t=Ao(n);t&&Jr(t)&&we(t).position==="static";)t=Ao(t);return t&&(me(t)==="html"||me(t)==="body"&&we(t).position==="static")?e:t||xs(n)||e}function qt(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}function Lt(n,e,t){return qe(n,It(e,t))}function _o(n,e,t){var r=Lt(n,e,t);return r>t?t:r}function Tn(){return{top:0,right:0,bottom:0,left:0}}function kn(n){return Object.assign({},Tn(),n)}function Sn(n,e){return e.reduce(function(t,r){return t[r]=n,t},{})}var ys=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,kn(typeof e!="number"?e:Sn(e,bt))};function js(n){var e,t=n.state,r=n.name,i=n.options,o=t.elements.arrow,a=t.modifiersData.popperOffsets,l=ge(t.placement),c=qt(l),d=[ae,ce].indexOf(l)>=0,m=d?"height":"width";if(!(!o||!a)){var _=ys(i.padding,t),w=Ft(o),b=c==="y"?ie:ae,S=c==="y"?ue:ce,k=t.rects.reference[m]+t.rects.reference[c]-a[c]-t.rects.popper[m],E=a[c]-t.rects.reference[c],O=Le(o),$=O?c==="y"?O.clientHeight||0:O.clientWidth||0:0,K=k/2-E/2,P=_[b],H=$-w[m]-_[S],F=$/2-w[m]/2+K,J=Lt(P,F,H),te=c;t.modifiersData[r]=(e={},e[te]=J,e.centerOffset=J-F,e)}}function vs(n){var e=n.state,t=n.options,r=t.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=e.elements.popper.querySelector(i),!i)||!En(e.elements.popper,i)||(e.elements.arrow=i))}var xo={name:"arrow",enabled:!0,phase:"main",fn:js,effect:vs,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Be(n){return n.split("-")[1]}var ws={top:"auto",right:"auto",bottom:"auto",left:"auto"};function bs(n,e){var t=n.x,r=n.y,i=e.devicePixelRatio||1;return{x:ft(t*i)/i||0,y:ft(r*i)/i||0}}function yo(n){var e,t=n.popper,r=n.popperRect,i=n.placement,o=n.variation,a=n.offsets,l=n.position,c=n.gpuAcceleration,d=n.adaptive,m=n.roundOffsets,_=n.isFixed,w=a.x,b=w===void 0?0:w,S=a.y,k=S===void 0?0:S,E=typeof m=="function"?m({x:b,y:k}):{x:b,y:k};b=E.x,k=E.y;var O=a.hasOwnProperty("x"),$=a.hasOwnProperty("y"),K=ae,P=ie,H=window;if(d){var F=Le(t),J="clientHeight",te="clientWidth";if(F===Z(t)&&(F=Ae(t),we(F).position!=="static"&&l==="absolute"&&(J="scrollHeight",te="scrollWidth")),F=F,i===ie||(i===ae||i===ce)&&o===Bt){P=ue;var ne=_&&F===H&&H.visualViewport?H.visualViewport.height:F[J];k-=ne-r.height,k*=c?1:-1}if(i===ae||(i===ie||i===ue)&&o===Bt){K=ce;var Q=_&&F===H&&H.visualViewport?H.visualViewport.width:F[te];b-=Q-r.width,b*=c?1:-1}}var h=Object.assign({position:l},d&&ws),C=m===!0?bs({x:b,y:k},Z(t)):{x:b,y:k};if(b=C.x,k=C.y,c){var f;return Object.assign({},h,(f={},f[P]=$?"0":"",f[K]=O?"0":"",f.transform=(H.devicePixelRatio||1)<=1?"translate("+b+"px, "+k+"px)":"translate3d("+b+"px, "+k+"px, 0)",f))}return Object.assign({},h,(e={},e[P]=$?k+"px":"",e[K]=O?b+"px":"",e.transform="",e))}function Es(n){var e=n.state,t=n.options,r=t.gpuAcceleration,i=r===void 0?!0:r,o=t.adaptive,a=o===void 0?!0:o,l=t.roundOffsets,c=l===void 0?!0:l,d={placement:ge(e.placement),variation:Be(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:i,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,yo(Object.assign({},d,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:c})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,yo(Object.assign({},d,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var jo={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Es,data:{}};var Ar={passive:!0};function Ts(n){var e=n.state,t=n.instance,r=n.options,i=r.scroll,o=i===void 0?!0:i,a=r.resize,l=a===void 0?!0:a,c=Z(e.elements.popper),d=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&d.forEach(function(m){m.addEventListener("scroll",t.update,Ar)}),l&&c.addEventListener("resize",t.update,Ar),function(){o&&d.forEach(function(m){m.removeEventListener("scroll",t.update,Ar)}),l&&c.removeEventListener("resize",t.update,Ar)}}var vo={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Ts,data:{}};var ks={left:"right",right:"left",bottom:"top",top:"bottom"};function rn(n){return n.replace(/left|right|bottom|top/g,function(e){return ks[e]})}var Ss={start:"end",end:"start"};function _r(n){return n.replace(/start|end/g,function(e){return Ss[e]})}function Ht(n){var e=Z(n),t=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:t,scrollTop:r}}function $t(n){return Oe(Ae(n)).left+Ht(n).scrollLeft}function Qr(n,e){var t=Z(n),r=Ae(n),i=t.visualViewport,o=r.clientWidth,a=r.clientHeight,l=0,c=0;if(i){o=i.width,a=i.height;var d=bn();(d||!d&&e==="fixed")&&(l=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:l+$t(n),y:c}}function Xr(n){var e,t=Ae(n),r=Ht(n),i=(e=n.ownerDocument)==null?void 0:e.body,o=qe(t.scrollWidth,t.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=qe(t.scrollHeight,t.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),l=-r.scrollLeft+$t(n),c=-r.scrollTop;return we(i||t).direction==="rtl"&&(l+=qe(t.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:l,y:c}}function Kt(n){var e=we(n),t=e.overflow,r=e.overflowX,i=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+i+r)}function xr(n){return["html","body","#document"].indexOf(me(n))>=0?n.ownerDocument.body:fe(n)&&Kt(n)?n:xr(dt(n))}function Et(n,e){var t;e===void 0&&(e=[]);var r=xr(n),i=r===((t=n.ownerDocument)==null?void 0:t.body),o=Z(r),a=i?[o].concat(o.visualViewport||[],Kt(r)?r:[]):r,l=e.concat(a);return i?l:l.concat(Et(dt(a)))}function on(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function Cs(n,e){var t=Oe(n,!1,e==="fixed");return t.top=t.top+n.clientTop,t.left=t.left+n.clientLeft,t.bottom=t.top+n.clientHeight,t.right=t.left+n.clientWidth,t.width=n.clientWidth,t.height=n.clientHeight,t.x=t.left,t.y=t.top,t}function wo(n,e,t){return e===gr?on(Qr(n,t)):Me(e)?Cs(e,t):on(Xr(Ae(n)))}function Ps(n){var e=Et(dt(n)),t=["absolute","fixed"].indexOf(we(n).position)>=0,r=t&&fe(n)?Le(n):n;return Me(r)?e.filter(function(i){return Me(i)&&En(i,r)&&me(i)!=="body"}):[]}function Zr(n,e,t,r){var i=e==="clippingParents"?Ps(n):[].concat(e),o=[].concat(i,[t]),a=o[0],l=o.reduce(function(c,d){var m=wo(n,d,r);return c.top=qe(m.top,c.top),c.right=It(m.right,c.right),c.bottom=It(m.bottom,c.bottom),c.left=qe(m.left,c.left),c},wo(n,a,r));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function Cn(n){var e=n.reference,t=n.element,r=n.placement,i=r?ge(r):null,o=r?Be(r):null,a=e.x+e.width/2-t.width/2,l=e.y+e.height/2-t.height/2,c;switch(i){case ie:c={x:a,y:e.y-t.height};break;case ue:c={x:a,y:e.y+e.height};break;case ce:c={x:e.x+e.width,y:l};break;case ae:c={x:e.x-t.width,y:l};break;default:c={x:e.x,y:e.y}}var d=i?qt(i):null;if(d!=null){var m=d==="y"?"height":"width";switch(o){case ut:c[d]=c[d]-(e[m]/2-t[m]/2);break;case Bt:c[d]=c[d]+(e[m]/2-t[m]/2);break;default:}}return c}function He(n,e){e===void 0&&(e={});var t=e,r=t.placement,i=r===void 0?n.placement:r,o=t.strategy,a=o===void 0?n.strategy:o,l=t.boundary,c=l===void 0?fo:l,d=t.rootBoundary,m=d===void 0?gr:d,_=t.elementContext,w=_===void 0?en:_,b=t.altBoundary,S=b===void 0?!1:b,k=t.padding,E=k===void 0?0:k,O=kn(typeof E!="number"?E:Sn(E,bt)),$=w===en?mo:en,K=n.rects.popper,P=n.elements[S?$:w],H=Zr(Me(P)?P:P.contextElement||Ae(n.elements.popper),c,m,a),F=Oe(n.elements.reference),J=Cn({reference:F,element:K,strategy:"absolute",placement:i}),te=on(Object.assign({},K,J)),ne=w===en?te:F,Q={top:H.top-ne.top+O.top,bottom:ne.bottom-H.bottom+O.bottom,left:H.left-ne.left+O.left,right:ne.right-H.right+O.right},h=n.modifiersData.offset;if(w===en&&h){var C=h[i];Object.keys(Q).forEach(function(f){var Ie=[ce,ue].indexOf(f)>=0?1:-1,Ee=[ie,ue].indexOf(f)>=0?"y":"x";Q[f]+=C[Ee]*Ie})}return Q}function ei(n,e){e===void 0&&(e={});var t=e,r=t.placement,i=t.boundary,o=t.rootBoundary,a=t.padding,l=t.flipVariations,c=t.allowedAutoPlacements,d=c===void 0?hr:c,m=Be(r),_=m?l?zr:zr.filter(function(S){return Be(S)===m}):bt,w=_.filter(function(S){return d.indexOf(S)>=0});w.length===0&&(w=_);var b=w.reduce(function(S,k){return S[k]=He(n,{placement:k,boundary:i,rootBoundary:o,padding:a})[ge(k)],S},{});return Object.keys(b).sort(function(S,k){return b[S]-b[k]})}function Ds(n){if(ge(n)===mr)return[];var e=rn(n);return[_r(n),e,_r(e)]}function Ns(n){var e=n.state,t=n.options,r=n.name;if(!e.modifiersData[r]._skip){for(var i=t.mainAxis,o=i===void 0?!0:i,a=t.altAxis,l=a===void 0?!0:a,c=t.fallbackPlacements,d=t.padding,m=t.boundary,_=t.rootBoundary,w=t.altBoundary,b=t.flipVariations,S=b===void 0?!0:b,k=t.allowedAutoPlacements,E=e.options.placement,O=ge(E),$=O===E,K=c||($||!S?[rn(E)]:Ds(E)),P=[E].concat(K).reduce(function(B,N){return B.concat(ge(N)===mr?ei(e,{placement:N,boundary:m,rootBoundary:_,padding:d,flipVariations:S,allowedAutoPlacements:k}):N)},[]),H=e.rects.reference,F=e.rects.popper,J=new Map,te=!0,ne=P[0],Q=0;Q=0,Ee=Ie?"width":"height",_e=He(e,{placement:h,boundary:m,rootBoundary:_,altBoundary:w,padding:d}),xe=Ie?f?ce:ae:f?ue:ie;H[Ee]>F[Ee]&&(xe=rn(xe));var Ye=rn(xe),ke=[];if(o&&ke.push(_e[C]<=0),l&&ke.push(_e[xe]<=0,_e[Ye]<=0),ke.every(function(B){return B})){ne=h,te=!1;break}J.set(h,ke)}if(te)for(var Ut=S?3:1,Ue=function(N){var q=P.find(function(ee){var tt=J.get(ee);if(tt)return tt.slice(0,N).every(function(W){return W})});if(q)return ne=q,"break"},et=Ut;et>0;et--){var ye=Ue(et);if(ye==="break")break}e.placement!==ne&&(e.modifiersData[r]._skip=!0,e.placement=ne,e.reset=!0)}}var bo={name:"flip",enabled:!0,phase:"main",fn:Ns,requiresIfExists:["offset"],data:{_skip:!1}};function Eo(n,e,t){return t===void 0&&(t={x:0,y:0}),{top:n.top-e.height-t.y,right:n.right-e.width+t.x,bottom:n.bottom-e.height+t.y,left:n.left-e.width-t.x}}function To(n){return[ie,ce,ue,ae].some(function(e){return n[e]>=0})}function Ms(n){var e=n.state,t=n.name,r=e.rects.reference,i=e.rects.popper,o=e.modifiersData.preventOverflow,a=He(e,{elementContext:"reference"}),l=He(e,{altBoundary:!0}),c=Eo(a,r),d=Eo(l,i,o),m=To(c),_=To(d);e.modifiersData[t]={referenceClippingOffsets:c,popperEscapeOffsets:d,isReferenceHidden:m,hasPopperEscaped:_},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":m,"data-popper-escaped":_})}var ko={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Ms};function Os(n,e,t){var r=ge(n),i=[ae,ie].indexOf(r)>=0?-1:1,o=typeof t=="function"?t(Object.assign({},e,{placement:n})):t,a=o[0],l=o[1];return a=a||0,l=(l||0)*i,[ae,ce].indexOf(r)>=0?{x:l,y:a}:{x:a,y:l}}function Bs(n){var e=n.state,t=n.options,r=n.name,i=t.offset,o=i===void 0?[0,0]:i,a=hr.reduce(function(m,_){return m[_]=Os(_,e.rects,o),m},{}),l=a[e.placement],c=l.x,d=l.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=c,e.modifiersData.popperOffsets.y+=d),e.modifiersData[r]=a}var So={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Bs};function Is(n){var e=n.state,t=n.name;e.modifiersData[t]=Cn({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var Co={name:"popperOffsets",enabled:!0,phase:"read",fn:Is,data:{}};function ti(n){return n==="x"?"y":"x"}function Fs(n){var e=n.state,t=n.options,r=n.name,i=t.mainAxis,o=i===void 0?!0:i,a=t.altAxis,l=a===void 0?!1:a,c=t.boundary,d=t.rootBoundary,m=t.altBoundary,_=t.padding,w=t.tether,b=w===void 0?!0:w,S=t.tetherOffset,k=S===void 0?0:S,E=He(e,{boundary:c,rootBoundary:d,padding:_,altBoundary:m}),O=ge(e.placement),$=Be(e.placement),K=!$,P=qt(O),H=ti(P),F=e.modifiersData.popperOffsets,J=e.rects.reference,te=e.rects.popper,ne=typeof k=="function"?k(Object.assign({},e.rects,{placement:e.placement})):k,Q=typeof ne=="number"?{mainAxis:ne,altAxis:ne}:Object.assign({mainAxis:0,altAxis:0},ne),h=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,C={x:0,y:0};if(!!F){if(o){var f,Ie=P==="y"?ie:ae,Ee=P==="y"?ue:ce,_e=P==="y"?"height":"width",xe=F[P],Ye=xe+E[Ie],ke=xe-E[Ee],Ut=b?-te[_e]/2:0,Ue=$===ut?J[_e]:te[_e],et=$===ut?-te[_e]:-J[_e],ye=e.elements.arrow,B=b&&ye?Ft(ye):{width:0,height:0},N=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Tn(),q=N[Ie],ee=N[Ee],tt=Lt(0,J[_e],B[_e]),W=K?J[_e]/2-Ut-tt-q-Q.mainAxis:Ue-tt-q-Q.mainAxis,je=K?-J[_e]/2+Ut+tt+ee+Q.mainAxis:et+tt+ee+Q.mainAxis,St=e.elements.arrow&&Le(e.elements.arrow),On=St?P==="y"?St.clientTop||0:St.clientLeft||0:0,nt=(f=h==null?void 0:h[P])!=null?f:0,rt=xe+W-nt-On,At=xe+je-nt,Ct=Lt(b?It(Ye,rt):Ye,xe,b?qe(ke,At):ke);F[P]=Ct,C[P]=Ct-xe}if(l){var Bn,In=P==="x"?ie:ae,Fn=P==="x"?ue:ce,it=F[H],Gt=H==="y"?"height":"width",qn=it+E[In],Ln=it-E[Fn],un=[ie,ae].indexOf(O)!==-1,Pt=(Bn=h==null?void 0:h[H])!=null?Bn:0,Hn=un?qn:it-J[Gt]-te[Gt]-Pt+Q.altAxis,Ge=un?it+J[Gt]+te[Gt]-Pt-Q.altAxis:Ln,se=b&&un?_o(Hn,it,Ge):Lt(b?Hn:qn,it,b?Ge:Ln);F[H]=se,C[H]=se-it}e.modifiersData[r]=C}}var Po={name:"preventOverflow",enabled:!0,phase:"main",fn:Fs,requiresIfExists:["offset"]};function ni(n){return{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}}function ri(n){return n===Z(n)||!fe(n)?Ht(n):ni(n)}function qs(n){var e=n.getBoundingClientRect(),t=ft(e.width)/n.offsetWidth||1,r=ft(e.height)/n.offsetHeight||1;return t!==1||r!==1}function ii(n,e,t){t===void 0&&(t=!1);var r=fe(e),i=fe(e)&&qs(e),o=Ae(e),a=Oe(n,i,t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!t)&&((me(e)!=="body"||Kt(o))&&(l=ri(e)),fe(e)?(c=Oe(e,!0),c.x+=e.clientLeft,c.y+=e.clientTop):o&&(c.x=$t(o))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function Ls(n){var e=new Map,t=new Set,r=[];n.forEach(function(o){e.set(o.name,o)});function i(o){t.add(o.name);var a=[].concat(o.requires||[],o.requiresIfExists||[]);a.forEach(function(l){if(!t.has(l)){var c=e.get(l);c&&i(c)}}),r.push(o)}return n.forEach(function(o){t.has(o.name)||i(o)}),r}function oi(n){var e=Ls(n);return go.reduce(function(t,r){return t.concat(e.filter(function(i){return i.phase===r}))},[])}function ai(n){var e;return function(){return e||(e=new Promise(function(t){Promise.resolve().then(function(){e=void 0,t(n())})})),e}}function si(n){var e=n.reduce(function(t,r){var i=t[r.name];return t[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,t},{});return Object.keys(e).map(function(t){return e[t]})}var Do={placement:"bottom",modifiers:[],strategy:"absolute"};function No(){for(var n=arguments.length,e=new Array(n),t=0;t(n%e+e)%e,Bo=class{constructor(e,t,r){this.owner=e,this.containerEl=t,t.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),t.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),r.register([],"ArrowUp",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),r.register([],"ArrowDown",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),r.register([],"Enter",i=>{if(!i.isComposing)return this.useSelectedItem(i),!1})}onSuggestionClick(e,t){e.preventDefault();let r=this.suggestions.indexOf(t);this.setSelectedItem(r,!1),this.useSelectedItem(e)}onSuggestionMouseover(e,t){let r=this.suggestions.indexOf(t);this.setSelectedItem(r,!1)}setSuggestions(e){this.containerEl.empty();let t=[];e.forEach(r=>{let i=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(r,i),t.push(i)}),this.values=e,this.suggestions=t,this.setSelectedItem(0,!1)}useSelectedItem(e){let t=this.values[this.selectedItem];t&&this.owner.selectSuggestion(t,e)}setSelectedItem(e,t){let r=$s(e,this.suggestions.length),i=this.suggestions[this.selectedItem],o=this.suggestions[r];i?.removeClass("is-selected"),o?.addClass("is-selected"),this.selectedItem=r,t&&o.scrollIntoView(!1)}},Pn=class{constructor(e,t){this.app=e,this.inputEl=t,this.scope=new Oo.Scope,this.suggestEl=createDiv("suggestion-container");let r=this.suggestEl.createDiv("suggestion");this.suggest=new Bo(this,r,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",i=>{i.preventDefault()})}onInputChanged(){let e=this.inputEl.value,t=this.getSuggestions(e);if(!t){this.close();return}t.length>0?(this.suggest.setSuggestions(t),this.open(this.app.dom.appContainerEl,this.inputEl)):this.close()}open(e,t){this.app.keymap.pushScope(this.scope),e.appendChild(this.suggestEl),this.popper=ci(t,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:r,instance:i})=>{let o=`${r.rects.reference.width}px`;r.styles.popper.width!==o&&(r.styles.popper.width=o,i.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}};var $e;(function(t){t[t.TemplateFiles=0]="TemplateFiles",t[t.ScriptFiles=1]="ScriptFiles"})($e||($e={}));var an=class extends Pn{constructor(e,t,r){super(t.app,e);this.inputEl=e;this.plugin=t;this.mode=r}get_folder(e){switch(e){case 0:return this.plugin.settings.templates_folder;case 1:return this.plugin.settings.user_scripts_folder}}get_error_msg(e){switch(e){case 0:return"Templates folder doesn't exist";case 1:return"User Scripts folder doesn't exist"}}getSuggestions(e){let t=Ce(()=>Je(this.plugin.app,this.get_folder(this.mode)),this.get_error_msg(this.mode));if(!t)return[];let r=[],i=e.toLowerCase();return t.forEach(o=>{o instanceof Io.TFile&&o.extension==="md"&&o.path.toLowerCase().contains(i)&&r.push(o)}),r.slice(0,1e3)}renderSuggestion(e,t){t.setText(e.path)}selectSuggestion(e){this.inputEl.value=e.path,this.inputEl.trigger("input"),this.close()}};var Fo=X(require("obsidian"));var Dn=class extends Pn{constructor(e,t){super(e,t)}getSuggestions(e){let t=this.app.vault.getAllLoadedFiles(),r=[],i=e.toLowerCase();return t.forEach(o=>{o instanceof Fo.TFolder&&o.path.toLowerCase().contains(i)&&r.push(o)}),r.slice(0,1e3)}renderSuggestion(e,t){t.setText(e.path)}selectSuggestion(e){this.inputEl.value=e.path,this.inputEl.trigger("input"),this.close()}};var mt;(function(o){o[o.Off=0]="Off",o[o.RenderDescriptionParameterReturn=1]="RenderDescriptionParameterReturn",o[o.RenderDescriptionParameterList=2]="RenderDescriptionParameterList",o[o.RenderDescriptionReturn=3]="RenderDescriptionReturn",o[o.RenderDescriptionOnly=4]="RenderDescriptionOnly"})(mt||(mt={}));function qo(n){return isBoolean(n)?n:[1,3].includes(n)}function Lo(n){return isBoolean(n)?n:[1,2].includes(n)}function Ho(n){return isBoolean(n)?n:n!=0}var $o={command_timeout:5,templates_folder:"",templates_pairs:[["",""]],trigger_on_file_creation:!1,auto_jump_to_cursor:!1,enable_system_commands:!1,shell_path:"",user_scripts_folder:"",enable_folder_templates:!0,folder_templates:[{folder:"",template:""}],enable_file_templates:!1,file_templates:[{regex:".*",template:""}],syntax_highlighting:!0,syntax_highlighting_mobile:!1,enabled_templates_hotkeys:[""],startup_templates:[""],intellisense_render:mt.RenderDescriptionParameterReturn},li=class extends L.PluginSettingTab{constructor(e){super(e.app,e);this.plugin=e;this.icon="templater-icon"}display(){this.containerEl.empty(),this.add_template_folder_setting(),this.add_internal_functions_setting(),this.add_syntax_highlighting_settings(),this.add_auto_jump_to_cursor(),this.add_trigger_on_new_file_creation_setting(),this.plugin.settings.trigger_on_file_creation&&(this.add_folder_templates_setting(),this.add_file_templates_setting()),this.add_templates_hotkeys_setting(),this.add_startup_templates_setting(),this.add_user_script_functions_setting(),this.add_user_system_command_functions_setting(),this.add_donating_setting()}add_template_folder_setting(){new L.Setting(this.containerEl).setName("Template folder location").setDesc("Files in this folder will be available as templates.").addSearch(e=>{new Dn(this.app,e.inputEl),e.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.templates_folder).onChange(t=>{t=t.trim(),t=t.replace(/\/$/,""),this.plugin.settings.templates_folder=t,this.plugin.save_settings()}),e.containerEl.addClass("templater_search")})}add_internal_functions_setting(){let e=document.createDocumentFragment();e.append("Templater provides multiples predefined variables / functions that you can use.",e.createEl("br"),"Check the ",e.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," to get a list of all the available internal variables / functions."),new L.Setting(this.containerEl).setName("Internal variables and functions").setDesc(e)}add_syntax_highlighting_settings(){let e=document.createDocumentFragment();e.append("Adds syntax highlighting for Templater commands in edit mode.");let t=document.createDocumentFragment();t.append("Adds syntax highlighting for Templater commands in edit mode on mobile. Use with caution: this may break live preview on mobile platforms."),new L.Setting(this.containerEl).setName("Syntax highlighting on desktop").setDesc(e).addToggle(r=>{r.setValue(this.plugin.settings.syntax_highlighting).onChange(i=>{this.plugin.settings.syntax_highlighting=i,this.plugin.save_settings(),this.plugin.event_handler.update_syntax_highlighting()})}),new L.Setting(this.containerEl).setName("Syntax highlighting on mobile").setDesc(t).addToggle(r=>{r.setValue(this.plugin.settings.syntax_highlighting_mobile).onChange(i=>{this.plugin.settings.syntax_highlighting_mobile=i,this.plugin.save_settings(),this.plugin.event_handler.update_syntax_highlighting()})})}add_auto_jump_to_cursor(){let e=document.createDocumentFragment();e.append("Automatically triggers ",e.createEl("code",{text:"tp.file.cursor"})," after inserting a template.",e.createEl("br"),"You can also set a hotkey to manually trigger ",e.createEl("code",{text:"tp.file.cursor"}),"."),new L.Setting(this.containerEl).setName("Automatic jump to cursor").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.auto_jump_to_cursor).onChange(r=>{this.plugin.settings.auto_jump_to_cursor=r,this.plugin.save_settings()})})}add_trigger_on_new_file_creation_setting(){let e=document.createDocumentFragment();e.append("Templater will listen for the new file creation event, and, if it matches a rule you've set, replace every command it finds in the new file's content. ","This makes Templater compatible with other plugins like the Daily note core plugin, Calendar plugin, Review plugin, Note refactor plugin, etc. ",e.createEl("br"),e.createEl("br"),"Make sure to set up rules under either folder templates or file regex template below.",e.createEl("br"),e.createEl("br"),e.createEl("b",{text:"Warning: "}),"This can be dangerous if you create new files with unknown / unsafe content on creation. Make sure that every new file's content is safe on creation."),new L.Setting(this.containerEl).setName("Trigger Templater on new file creation").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.trigger_on_file_creation).onChange(r=>{this.plugin.settings.trigger_on_file_creation=r,this.plugin.save_settings(),this.plugin.event_handler.update_trigger_file_on_creation(),this.display()})})}add_templates_hotkeys_setting(){new L.Setting(this.containerEl).setName("Template hotkeys").setHeading();let e=document.createDocumentFragment();e.append("Template hotkeys allows you to bind a template to a hotkey."),new L.Setting(this.containerEl).setDesc(e),this.plugin.settings.enabled_templates_hotkeys.forEach((t,r)=>{new L.Setting(this.containerEl).addSearch(o=>{new an(o.inputEl,this.plugin,$e.TemplateFiles),o.setPlaceholder("Example: folder1/template_file").setValue(t).onChange(a=>{if(a&&this.plugin.settings.enabled_templates_hotkeys.contains(a)){oe(new D("This template is already bound to a hotkey"));return}this.plugin.command_handler.add_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[r],a),this.plugin.settings.enabled_templates_hotkeys[r]=a,this.plugin.save_settings()}),o.containerEl.addClass("templater_search")}).addExtraButton(o=>{o.setIcon("any-key").setTooltip("Configure Hotkey").onClick(()=>{this.app.setting.openTabById("hotkeys");let a=this.app.setting.activeTab;a.searchComponent.inputEl.value=t,a.updateHotkeyVisibility()})}).addExtraButton(o=>{o.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{Ot(this.plugin.settings.enabled_templates_hotkeys,r,r-1),this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{Ot(this.plugin.settings.enabled_templates_hotkeys,r,r+1),this.plugin.save_settings(),this.display()})}).addExtraButton(o=>{o.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.command_handler.remove_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[r]),this.plugin.settings.enabled_templates_hotkeys.splice(r,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(t=>{t.setButtonText("Add new hotkey for template").setCta().onClick(()=>{this.plugin.settings.enabled_templates_hotkeys.push(""),this.plugin.save_settings(),this.display()})})}add_folder_templates_setting(){new L.Setting(this.containerEl).setName("Folder templates").setHeading();let e=document.createDocumentFragment();e.append("Folder templates are triggered when a new ",e.createEl("strong",{text:"empty "}),"file is created in a given folder.",e.createEl("br"),"Templater will fill the empty file with the specified template.",e.createEl("br"),"The deepest match is used. A global default template would be defined on the root ",e.createEl("code",{text:"/"}),"."),new L.Setting(this.containerEl).setDesc(e);let t=document.createDocumentFragment();t.append("When enabled, Templater will make use of the folder templates defined below. This option is mutually exclusive with file regex templates below, so enabling one will disable the other."),new L.Setting(this.containerEl).setName("Enable folder templates").setDesc(t).addToggle(r=>{r.setValue(this.plugin.settings.enable_folder_templates).onChange(i=>{this.plugin.settings.enable_folder_templates=i,i&&(this.plugin.settings.enable_file_templates=!1),this.plugin.save_settings(),this.display()})}),!!this.plugin.settings.enable_folder_templates&&(this.plugin.settings.folder_templates.forEach((r,i)=>{new L.Setting(this.containerEl).addSearch(a=>{new Dn(this.app,a.inputEl),a.setPlaceholder("Folder").setValue(r.folder).onChange(l=>{if(l&&this.plugin.settings.folder_templates.some(c=>c.folder==l)){oe(new D("This folder already has a template associated with it"));return}this.plugin.settings.folder_templates[i].folder=l,this.plugin.save_settings()}),a.containerEl.addClass("templater_search")}).addSearch(a=>{new an(a.inputEl,this.plugin,$e.TemplateFiles),a.setPlaceholder("Template").setValue(r.template).onChange(l=>{this.plugin.settings.folder_templates[i].template=l,this.plugin.save_settings()}),a.containerEl.addClass("templater_search")}).addExtraButton(a=>{a.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{Ot(this.plugin.settings.folder_templates,i,i-1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{Ot(this.plugin.settings.folder_templates,i,i+1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.folder_templates.splice(i,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(r=>{r.setButtonText("Add new folder template").setTooltip("Add additional folder template").setCta().onClick(()=>{this.plugin.settings.folder_templates.push({folder:"",template:""}),this.plugin.save_settings(),this.display()})}))}add_file_templates_setting(){new L.Setting(this.containerEl).setName("File regex templates").setHeading();let e=document.createDocumentFragment();e.append("File regex templates are triggered when a new ",e.createEl("strong",{text:"empty"})," file is created that matches one of them. Templater will fill the empty file with the specified template.",e.createEl("br"),"The first match from the top is used, so the order of the rules is important.",e.createEl("br"),"Use ",e.createEl("code",{text:".*"})," as a final catch-all, if you need it."),new L.Setting(this.containerEl).setDesc(e);let t=document.createDocumentFragment();t.append("When enabled, Templater will make use of the file regex templates defined below. This option is mutually exclusive with folder templates above, so enabling one will disable the other."),new L.Setting(this.containerEl).setName("Enable file regex templates").setDesc(t).addToggle(r=>{r.setValue(this.plugin.settings.enable_file_templates).onChange(i=>{this.plugin.settings.enable_file_templates=i,i&&(this.plugin.settings.enable_folder_templates=!1),this.plugin.save_settings(),this.display()})}),!!this.plugin.settings.enable_file_templates&&(this.plugin.settings.file_templates.forEach((r,i)=>{new L.Setting(this.containerEl).addText(a=>{a.setPlaceholder("File regex").setValue(r.regex).onChange(l=>{this.plugin.settings.file_templates[i].regex=l,this.plugin.save_settings()}),a.inputEl.addClass("templater_search")}).addSearch(a=>{new an(a.inputEl,this.plugin,$e.TemplateFiles),a.setPlaceholder("Template").setValue(r.template).onChange(l=>{this.plugin.settings.file_templates[i].template=l,this.plugin.save_settings()}),a.containerEl.addClass("templater_search")}).addExtraButton(a=>{a.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{Ot(this.plugin.settings.file_templates,i,i-1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{Ot(this.plugin.settings.file_templates,i,i+1),this.plugin.save_settings(),this.display()})}).addExtraButton(a=>{a.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.file_templates.splice(i,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(r=>{r.setButtonText("Add new file regex").setTooltip("Add additional file regex").setCta().onClick(()=>{this.plugin.settings.file_templates.push({regex:"",template:""}),this.plugin.save_settings(),this.display()})}))}add_startup_templates_setting(){new L.Setting(this.containerEl).setName("Startup templates").setHeading();let e=document.createDocumentFragment();e.append("Startup templates are templates that will get executed once when Templater starts.",e.createEl("br"),"These templates won't output anything.",e.createEl("br"),"This can be useful to set up templates adding hooks to Obsidian events for example."),new L.Setting(this.containerEl).setDesc(e),this.plugin.settings.startup_templates.forEach((t,r)=>{new L.Setting(this.containerEl).addSearch(o=>{new an(o.inputEl,this.plugin,$e.TemplateFiles),o.setPlaceholder("Example: folder1/template_file").setValue(t).onChange(a=>{if(a&&this.plugin.settings.startup_templates.contains(a)){oe(new D("This startup template already exist"));return}this.plugin.settings.startup_templates[r]=a,this.plugin.save_settings()}),o.containerEl.addClass("templater_search")}).addExtraButton(o=>{o.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.startup_templates.splice(r,1),this.plugin.save_settings(),this.display()})}).infoEl.remove()}),new L.Setting(this.containerEl).addButton(t=>{t.setButtonText("Add new startup template").setCta().onClick(()=>{this.plugin.settings.startup_templates.push(""),this.plugin.save_settings(),this.display()})})}add_user_script_functions_setting(){new L.Setting(this.containerEl).setName("User script functions").setHeading();let e=document.createDocumentFragment();e.append("All JavaScript files in this folder will be loaded as CommonJS modules, to import custom user functions.",e.createEl("br"),"The folder needs to be accessible from the vault.",e.createEl("br"),"Check the ",e.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," for more information."),new L.Setting(this.containerEl).setName("Script files folder location").setDesc(e).addSearch(r=>{new Dn(this.app,r.inputEl),r.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.user_scripts_folder).onChange(i=>{this.plugin.settings.user_scripts_folder=i,this.plugin.save_settings()}),r.containerEl.addClass("templater_search")}),new L.Setting(this.containerEl).setName("User script intellisense").setDesc("Determine how you'd like to have user script intellisense render. Note values will not render if not in the script.").addDropdown(r=>{r.addOption("0","Turn off intellisense").addOption("1","Render method description, parameters list, and return").addOption("2","Render method description and parameters list").addOption("3","Render method description and return").addOption("4","Render method description").setValue(this.plugin.settings.intellisense_render.toString()).onChange(i=>{this.plugin.settings.intellisense_render=parseInt(i),this.plugin.save_settings()})}),e=document.createDocumentFragment();let t;if(!this.plugin.settings.user_scripts_folder)t="No user scripts folder set";else{let r=Ce(()=>Je(this.app,this.plugin.settings.user_scripts_folder),"User scripts folder doesn't exist");if(!r||r.length===0)t="No user scripts detected";else{let i=0;for(let o of r)o.extension==="js"&&(i++,e.append(e.createEl("li",{text:`tp.user.${o.basename}`})));t=`Detected ${i} User Script(s)`}}new L.Setting(this.containerEl).setName(t).setDesc(e).addExtraButton(r=>{r.setIcon("sync").setTooltip("Refresh").onClick(()=>{this.display()})})}add_user_system_command_functions_setting(){let e=document.createDocumentFragment();if(e.append("Allows you to create user functions linked to system commands.",e.createEl("br"),e.createEl("b",{text:"Warning: "}),"It can be dangerous to execute arbitrary system commands from untrusted sources. Only run system commands that you understand, from trusted sources."),new L.Setting(this.containerEl).setName("User system command functions").setHeading(),new L.Setting(this.containerEl).setName("Enable user system command functions").setDesc(e).addToggle(t=>{t.setValue(this.plugin.settings.enable_system_commands).onChange(r=>{this.plugin.settings.enable_system_commands=r,this.plugin.save_settings(),this.display()})}),this.plugin.settings.enable_system_commands){new L.Setting(this.containerEl).setName("Timeout").setDesc("Maximum timeout in seconds for a system command.").addText(o=>{o.setPlaceholder("Timeout").setValue(this.plugin.settings.command_timeout.toString()).onChange(a=>{let l=Number(a);if(isNaN(l)){oe(new D("Timeout must be a number"));return}this.plugin.settings.command_timeout=l,this.plugin.save_settings()})}),e=document.createDocumentFragment(),e.append("Full path to the shell binary to execute the command with.",e.createEl("br"),"This setting is optional and will default to the system's default shell if not specified.",e.createEl("br"),"You can use forward slashes ('/') as path separators on all platforms if in doubt."),new L.Setting(this.containerEl).setName("Shell binary location").setDesc(e).addText(o=>{o.setPlaceholder("Example: /bin/bash, ...").setValue(this.plugin.settings.shell_path).onChange(a=>{this.plugin.settings.shell_path=a,this.plugin.save_settings()})});let t=1;this.plugin.settings.templates_pairs.forEach(o=>{let a=this.containerEl.createEl("div");a.addClass("templater_div");let l=this.containerEl.createEl("h4",{text:"User function n\xB0"+t});l.addClass("templater_title"),new L.Setting(this.containerEl).addExtraButton(d=>{d.setIcon("cross").setTooltip("Delete").onClick(()=>{let m=this.plugin.settings.templates_pairs.indexOf(o);m>-1&&(this.plugin.settings.templates_pairs.splice(m,1),this.plugin.save_settings(),this.display())})}).addText(d=>{let m=d.setPlaceholder("Function name").setValue(o[0]).onChange(_=>{let w=this.plugin.settings.templates_pairs.indexOf(o);w>-1&&(this.plugin.settings.templates_pairs[w][0]=_,this.plugin.save_settings())});return m.inputEl.addClass("templater_template"),m}).addTextArea(d=>{let m=d.setPlaceholder("System command").setValue(o[1]).onChange(_=>{let w=this.plugin.settings.templates_pairs.indexOf(o);w>-1&&(this.plugin.settings.templates_pairs[w][1]=_,this.plugin.save_settings())});return m.inputEl.setAttr("rows",2),m.inputEl.addClass("templater_cmd"),m}).infoEl.remove(),a.appendChild(l),a.appendChild(this.containerEl.lastChild),t+=1});let r=this.containerEl.createEl("div");r.addClass("templater_div2"),new L.Setting(this.containerEl).addButton(o=>{o.setButtonText("Add new user function").setCta().onClick(()=>{this.plugin.settings.templates_pairs.push(["",""]),this.plugin.save_settings(),this.display()})}).infoEl.remove(),r.appendChild(this.containerEl.lastChild)}}add_donating_setting(){let e=new L.Setting(this.containerEl).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development."),t=document.createElement("a");t.setAttribute("href","https://github.com/sponsors/silentvoid13"),t.addClass("templater_donating");let r=document.createElement("img");r.src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86",t.appendChild(r);let i=document.createElement("a");i.setAttribute("href","https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"),i.addClass("templater_donating");let o=document.createElement("img");o.src="https://img.shields.io/badge/paypal-silentvoid13-yellow?style=social&logo=paypal",i.appendChild(o),e.settingEl.appendChild(t),e.settingEl.appendChild(i)}};var yr=X(require("obsidian"));var sn;(function(t){t[t.InsertTemplate=0]="InsertTemplate",t[t.CreateNoteTemplate=1]="CreateNoteTemplate"})(sn||(sn={}));var pi=class extends yr.FuzzySuggestModal{constructor(e){super(e.app);this.plugin=e,this.setPlaceholder("Type name of a template...")}getItems(){if(!this.plugin.settings.templates_folder)return this.app.vault.getMarkdownFiles();let e=Ce(()=>Je(this.plugin.app,this.plugin.settings.templates_folder),`Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`);return e||[]}getItemText(e){let t=e.path;if(e.path.startsWith(this.plugin.settings.templates_folder)&&(0,yr.normalizePath)(this.plugin.settings.templates_folder)!="/"){let r=this.plugin.settings.templates_folder.length,i;r===0?i=0:this.plugin.settings.templates_folder.endsWith("/")?i=r:i=r+1,t=e.path.slice(i)}return t.split(".").slice(0,-1).join(".")}onChooseItem(e){switch(this.open_mode){case 0:this.plugin.templater.append_template_to_active_file(e);break;case 1:this.plugin.templater.create_new_note_from_template(e,this.creation_folder);break}}start(){try{this.open()}catch(e){oe(e)}}insert_template(){this.open_mode=0,this.start()}create_new_note_from_template(e){this.creation_folder=e,this.open_mode=1,this.start()}};var Ko="Error_MobileUnsupportedTemplate",Ro='';var de=X(require("obsidian"));var gt=X(require("obsidian"));var be=class{constructor(e){this.plugin=e;this.static_functions=new Map;this.dynamic_functions=new Map}getName(){return this.name}async init(){await this.create_static_templates(),this.static_object=Object.fromEntries(this.static_functions)}async generate_object(e){return this.config=e,await this.create_dynamic_templates(),{...this.static_object,...Object.fromEntries(this.dynamic_functions)}}};var ui=class extends be{constructor(){super(...arguments);this.name="date"}async create_static_templates(){this.static_functions.set("now",this.generate_now()),this.static_functions.set("tomorrow",this.generate_tomorrow()),this.static_functions.set("weekday",this.generate_weekday()),this.static_functions.set("yesterday",this.generate_yesterday())}async create_dynamic_templates(){}async teardown(){}generate_now(){return(e="YYYY-MM-DD",t,r,i)=>{if(r&&!(0,gt.moment)(r,i).isValid())throw new D("Invalid reference date format, try specifying one with the argument 'reference_format'");let o;return typeof t=="string"?o=gt.moment.duration(t):typeof t=="number"&&(o=gt.moment.duration(t,"days")),(0,gt.moment)(r,i).add(o).format(e)}}generate_tomorrow(){return(e="YYYY-MM-DD")=>(0,gt.moment)().add(1,"days").format(e)}generate_weekday(){return(e="YYYY-MM-DD",t,r,i)=>{if(r&&!(0,gt.moment)(r,i).isValid())throw new D("Invalid reference date format, try specifying one with the argument 'reference_format'");return(0,gt.moment)(r,i).weekday(t).format(e)}}generate_yesterday(){return(e="YYYY-MM-DD")=>(0,gt.moment)().add(-1,"days").format(e)}};var le=X(require("obsidian"));var Yo=10,fi=class extends be{constructor(){super(...arguments);this.name="file";this.include_depth=0;this.create_new_depth=0;this.linkpath_regex=new RegExp("^\\[\\[(.*)\\]\\]$")}async create_static_templates(){this.static_functions.set("creation_date",this.generate_creation_date()),this.static_functions.set("create_new",this.generate_create_new()),this.static_functions.set("cursor",this.generate_cursor()),this.static_functions.set("cursor_append",this.generate_cursor_append()),this.static_functions.set("exists",this.generate_exists()),this.static_functions.set("find_tfile",this.generate_find_tfile()),this.static_functions.set("folder",this.generate_folder()),this.static_functions.set("include",this.generate_include()),this.static_functions.set("last_modified_date",this.generate_last_modified_date()),this.static_functions.set("move",this.generate_move()),this.static_functions.set("path",this.generate_path()),this.static_functions.set("rename",this.generate_rename()),this.static_functions.set("selection",this.generate_selection())}async create_dynamic_templates(){this.dynamic_functions.set("content",await this.generate_content()),this.dynamic_functions.set("tags",this.generate_tags()),this.dynamic_functions.set("title",this.generate_title())}async teardown(){}async generate_content(){return await this.plugin.app.vault.read(this.config.target_file)}generate_create_new(){return async(e,t,r=!1,i)=>{if(this.create_new_depth+=1,this.create_new_depth>Yo)throw this.create_new_depth=0,new D("Reached create_new depth limit (max = 10)");let o=await this.plugin.templater.create_new_note_from_template(e,i,t,r);return this.create_new_depth-=1,o}}generate_creation_date(){return(e="YYYY-MM-DD HH:mm")=>(0,le.moment)(this.config.target_file.stat.ctime).format(e)}generate_cursor(){return e=>`<% tp.file.cursor(${e??""}) %>`}generate_cursor_append(){return e=>{let t=this.plugin.app.workspace.activeEditor;if(!t||!t.editor){oe(new D("No active editor, can't append to cursor."));return}return t.editor.getDoc().replaceSelection(e),""}}generate_exists(){return async e=>{let t=(0,le.normalizePath)(e);return await this.plugin.app.vault.exists(t)}}generate_find_tfile(){return e=>{let t=(0,le.normalizePath)(e);return this.plugin.app.metadataCache.getFirstLinkpathDest(t,"")}}generate_folder(){return(e=!1)=>{let t=this.config.target_file.parent,r;return e?r=t.path:r=t.name,r}}generate_include(){return async e=>{if(this.include_depth+=1,this.include_depth>Yo)throw this.include_depth-=1,new D("Reached inclusion depth limit (max = 10)");let t;if(e instanceof le.TFile)t=await this.plugin.app.vault.read(e);else{let r;if((r=this.linkpath_regex.exec(e))===null)throw this.include_depth-=1,new D("Invalid file format, provide an obsidian link between quotes.");let{path:i,subpath:o}=(0,le.parseLinktext)(r[1]),a=this.plugin.app.metadataCache.getFirstLinkpathDest(i,"");if(!a)throw this.include_depth-=1,new D(`File ${e} doesn't exist`);if(t=await this.plugin.app.vault.read(a),o){let l=this.plugin.app.metadataCache.getFileCache(a);if(l){let c=(0,le.resolveSubpath)(l,o);c&&(t=t.slice(c.start.offset,c.end?.offset))}}}try{let r=await this.plugin.templater.parser.parse_commands(t,this.plugin.templater.current_functions_object);return this.include_depth-=1,r}catch(r){throw this.include_depth-=1,r}}}generate_last_modified_date(){return(e="YYYY-MM-DD HH:mm")=>(0,le.moment)(this.config.target_file.stat.mtime).format(e)}generate_move(){return async(e,t)=>{let r=t||this.config.target_file,i=(0,le.normalizePath)(`${e}.${r.extension}`),o=i.replace(/\\/g,"/").split("/");if(o.pop(),o.length){let a=o.join("/");this.plugin.app.vault.getAbstractFileByPath(a)||await this.plugin.app.vault.createFolder(a)}return await this.plugin.app.fileManager.renameFile(r,i),""}}generate_path(){return(e=!1)=>{let t="";if(le.Platform.isMobile){let r=this.plugin.app.vault.adapter.fs.uri,i=this.plugin.app.vault.adapter.basePath;t=`${r}/${i}`}else if(this.plugin.app.vault.adapter instanceof le.FileSystemAdapter)t=this.plugin.app.vault.adapter.getBasePath();else throw new D("app.vault is not a FileSystemAdapter instance");return e?this.config.target_file.path:`${t}/${this.config.target_file.path}`}}generate_rename(){return async e=>{if(e.match(/[\\/:]+/g))throw new D("File name cannot contain any of these characters: \\ / :");let t=(0,le.normalizePath)(`${this.config.target_file.parent.path}/${e}.${this.config.target_file.extension}`);return await this.plugin.app.fileManager.renameFile(this.config.target_file,t),""}}generate_selection(){return()=>{let e=this.plugin.app.workspace.activeEditor;if(!e||!e.editor)throw new D("Active editor is null, can't read selection.");return e.editor.getSelection()}}generate_tags(){let e=this.plugin.app.metadataCache.getFileCache(this.config.target_file);return e?(0,le.getAllTags)(e):null}generate_title(){return this.config.target_file.basename}};var Uo=X(require("obsidian"));var di=class extends be{constructor(){super(...arguments);this.name="web"}async create_static_templates(){this.static_functions.set("daily_quote",this.generate_daily_quote()),this.static_functions.set("request",this.generate_request()),this.static_functions.set("random_picture",this.generate_random_picture())}async create_dynamic_templates(){}async teardown(){}async getRequest(e){try{let t=await(0,Uo.requestUrl)(e);if(t.status<200&&t.status>=300)throw new D("Error performing GET request");return t}catch{throw new D("Error performing GET request")}}generate_daily_quote(){return async()=>{try{let t=(await this.getRequest("https://raw.githubusercontent.com/Zachatoo/quotes-database/refs/heads/main/quotes.json")).json,r=t[Math.floor(Math.random()*t.length)],{quote:i,author:o}=r;return`> [!quote] ${i} +> \u2014 ${o}`}catch{return new D("Error generating daily quote"),"Error generating daily quote"}}}generate_random_picture(){return async(e,t,r=!1)=>{try{let i=await this.getRequest(`https://templater-unsplash-2.fly.dev/${t?"?q="+t:""}`).then(a=>a.json),o=i.full;if(e&&!r)if(e.includes("x")){let[a,l]=e.split("x");o=o.concat(`&w=${a}&h=${l}`)}else o=o.concat(`&w=${e}`);return r?`![photo by ${i.photog}(${i.photogUrl}) on Unsplash|${e}](${o})`:`![photo by ${i.photog}(${i.photogUrl}) on Unsplash](${o})`}catch{return new D("Error generating random picture"),"Error generating random picture"}}}generate_request(){return async(e,t)=>{try{let i=await(await this.getRequest(e)).json;return t&&i?t.split(".").reduce((o,a)=>{if(o&&o.hasOwnProperty(a))return o[a];throw new Error(`Path ${t} not found in the JSON response`)},i):i}catch(r){throw console.error(r),new D("Error fetching and extracting value")}}}};var mi=class extends be{constructor(){super(...arguments);this.name="hooks";this.event_refs=[]}async create_static_templates(){this.static_functions.set("on_all_templates_executed",this.generate_on_all_templates_executed())}async create_dynamic_templates(){}async teardown(){this.event_refs.forEach(e=>{e.e.offref(e)}),this.event_refs=[]}generate_on_all_templates_executed(){return e=>{let t=this.plugin.app.workspace.on("templater:all-templates-executed",async()=>{await vt(1),e()});t&&this.event_refs.push(t)}}};var gi=class extends be{constructor(){super(...arguments);this.name="frontmatter"}async create_static_templates(){}async create_dynamic_templates(){let e=this.plugin.app.metadataCache.getFileCache(this.config.target_file);this.dynamic_functions=new Map(Object.entries(e?.frontmatter||{}))}async teardown(){}};var Qe=X(require("obsidian"));var hi=class extends Qe.Modal{constructor(e,t,r,i){super(e);this.prompt_text=t;this.default_value=r;this.multi_line=i;this.submitted=!1}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty(),this.submitted||this.reject(new D("Cancelled prompt"))}createForm(){let e=this.contentEl.createDiv();e.addClass("templater-prompt-div");let t;this.multi_line?t=new Qe.TextAreaComponent(e):t=new Qe.TextComponent(e);let r=this.contentEl.createDiv();r.addClass("templater-button-div");let i=new Qe.ButtonComponent(r);i.buttonEl.addClass("mod-cta"),i.setButtonText("Submit").onClick(o=>{this.resolveAndClose(o)}),this.value=this.default_value??"",t.inputEl.addClass("templater-prompt-input"),t.setPlaceholder("Type text here"),t.setValue(this.value),t.onChange(o=>this.value=o),t.inputEl.focus(),t.inputEl.addEventListener("keydown",o=>this.enterCallback(o))}enterCallback(e){e.isComposing||e.keyCode===229||(this.multi_line?Qe.Platform.isDesktop&&e.key==="Enter"&&!e.shiftKey&&this.resolveAndClose(e):e.key==="Enter"&&this.resolveAndClose(e))}resolveAndClose(e){this.submitted=!0,e.preventDefault(),this.resolve(this.value),this.close()}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}};var Go=X(require("obsidian")),Ai=class extends Go.FuzzySuggestModal{constructor(e,t,r,i,o){super(e);this.text_items=t;this.items=r;this.submitted=!1;this.setPlaceholder(i),o&&(this.limit=o)}getItems(){return this.items}onClose(){this.submitted||this.reject(new D("Cancelled prompt"))}selectSuggestion(e,t){this.submitted=!0,this.close(),this.onChooseSuggestion(e,t)}getItemText(e){return this.text_items instanceof Function?this.text_items(e):this.text_items[this.items.indexOf(e)]||"Undefined Text Item"}onChooseItem(e){this.resolve(e)}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}};var Pe=X(require("obsidian")),_i=class extends Pe.Modal{constructor(e,t,r,i,o){super(e);this.text_items=t;this.items=r;this.submitted=!1;this.selectedItems=[];this.setTitle(i),this.listEl=this.contentEl.createDiv("templater-multisuggester-list");let a=this.contentEl.createDiv("templater-multisuggester-div"),l=new Pe.TextComponent(a);l.inputEl.addClass("templater-multisuggester-input"),this.suggester=new Wo(e,l.inputEl,this.getItemText.bind(this),r,o).onSelect(this.onChooseItem.bind(this));let c=this.contentEl.createDiv("modal-button-container");new Pe.ButtonComponent(c).setButtonText("Save").setCta().onClick(()=>this.save()),new Pe.ButtonComponent(c).setButtonText("Cancel").onClick(()=>this.close())}onOpen(){this.display()}display(){this.listEl.empty(),this.selectedItems.forEach(e=>{let t=this.listEl.createDiv("mobile-option-setting-item");t.createSpan("mobile-option-setting-item-name").setText(this.getItemText(e)),t.createDiv("clickable-icon mobile-option-setting-item-option-icon",r=>{(0,Pe.setIcon)(r,"lucide-x"),r.addEventListener("click",()=>{this.onRemoveItem(e)})})})}getItemText(e){return this.text_items instanceof Function?this.text_items(e):this.text_items[this.items.indexOf(e)]||"Undefined Text Item"}onChooseItem(e){this.selectedItems.push(e);let t=this.items.filter(r=>!this.selectedItems.some(i=>i===r));this.suggester.setItems(t),this.display()}onRemoveItem(e){this.selectedItems=this.selectedItems.filter(r=>r!==e);let t=this.items.filter(r=>!this.selectedItems.some(i=>i===r));this.suggester.setItems(t),this.display()}save(){this.submitted=!0,this.close(),this.resolve(this.selectedItems)}onClose(){this.submitted||this.reject(new D("Cancelled prompt"))}async openAndGetValue(e,t){this.resolve=e,this.reject=t,this.open()}},Wo=class extends Pe.AbstractInputSuggest{constructor(e,t,r,i,o){super(e,t);this.getItemText=r;this.items=i;o&&(this.limit=o)}getSuggestions(e){let t=(0,Pe.prepareFuzzySearch)(e);return this.items.reduce((r,i)=>{let o=this.getItemText(i);return t(o)&&r.push(i),r},[])}renderSuggestion(e,t){t.createDiv("suggestion-content").setText(this.getItemText(e))}setItems(e){this.items=e}selectSuggestion(e,t){this.setValue(""),this.close(),super.selectSuggestion(e,t)}};var xi=class extends be{constructor(){super(...arguments);this.name="system"}async create_static_templates(){this.static_functions.set("clipboard",this.generate_clipboard()),this.static_functions.set("prompt",this.generate_prompt()),this.static_functions.set("suggester",this.generate_suggester()),this.static_functions.set("multi_suggester",this.generate_multi_suggester())}async create_dynamic_templates(){}async teardown(){}generate_clipboard(){return async()=>await navigator.clipboard.readText()}generate_prompt(){return async(e,t,r=!1,i=!1)=>{let o=new hi(this.plugin.app,e,t,i),a=new Promise((l,c)=>o.openAndGetValue(l,c));try{return await a}catch(l){if(r)throw l;return null}}}generate_suggester(){return async(e,t,r=!1,i="",o)=>{let a=new Ai(this.plugin.app,e,t,i,o),l=new Promise((c,d)=>a.openAndGetValue(c,d));try{return await l}catch(c){if(r)throw c;return null}}}generate_multi_suggester(){return async(e,t,r=!1,i="",o)=>{let a=new _i(this.plugin.app,e,t,i,o),l=new Promise((c,d)=>a.openAndGetValue(c,d));try{return await l}catch(c){if(r)throw c;return[]}}}};var yi=class extends be{constructor(){super(...arguments);this.name="config"}async create_static_templates(){}async create_dynamic_templates(){}async teardown(){}async generate_object(e){return e}};var ji=class{constructor(e){this.plugin=e;this.modules_array=[];this.modules_array.push(new ui(this.plugin)),this.modules_array.push(new fi(this.plugin)),this.modules_array.push(new di(this.plugin)),this.modules_array.push(new gi(this.plugin)),this.modules_array.push(new mi(this.plugin)),this.modules_array.push(new xi(this.plugin)),this.modules_array.push(new yi(this.plugin))}async init(){for(let e of this.modules_array)await e.init()}async teardown(){for(let e of this.modules_array)await e.teardown()}async generate_object(e){let t={};for(let r of this.modules_array)t[r.getName()]=await r.generate_object(e);return t}};var Nn=X(require("obsidian"));var vi=class{constructor(e){this.plugin=e;if(Nn.Platform.isMobile||!(this.plugin.app.vault.adapter instanceof Nn.FileSystemAdapter))this.cwd="";else{this.cwd=this.plugin.app.vault.adapter.getBasePath();let{promisify:t}=require("util"),{exec:r}=require("child_process");this.exec_promise=t(r)}}async generate_system_functions(e){let t=new Map,r=await this.plugin.templater.functions_generator.generate_object(e,Xe.INTERNAL);for(let i of this.plugin.settings.templates_pairs){let o=i[0],a=i[1];!o||!a||(Nn.Platform.isMobile?t.set(o,()=>new Promise(l=>l(Ko))):(a=await this.plugin.templater.parser.parse_commands(a,r),t.set(o,async l=>{let c={...process.env,...l},d={timeout:this.plugin.settings.command_timeout*1e3,cwd:this.cwd,env:c,...this.plugin.settings.shell_path&&{shell:this.plugin.settings.shell_path}};try{let{stdout:m}=await this.exec_promise(a,d);return m.trimRight()}catch(m){throw new D(`Error with User Template ${o}`,m)}})))}return t}async generate_object(e){let t=await this.generate_system_functions(e);return Object.fromEntries(t)}};var wi=class{constructor(e){this.plugin=e}async generate_user_script_functions(){let e=new Map,t=Ce(()=>Je(this.plugin.app,this.plugin.settings.user_scripts_folder),`Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`);if(!t)return new Map;for(let r of t)r.extension.toLowerCase()==="js"&&await this.load_user_script_function(r,e);return e}async load_user_script_function(e,t){let r=c=>window.require&&window.require(c),i={},o={exports:i},a=await this.plugin.app.vault.read(e);try{window.eval("(function anonymous(require, module, exports){"+a+` +})`)(r,o,i)}catch(c){throw new D(`Failed to load user script at "${e.path}".`,c.message)}let l=i.default??o.exports;if(!l)throw new D(`Failed to load user script at "${e.path}". No exports detected.`);if(typeof l=="function")t.set(e.basename,l);else if(typeof l=="object"&&l!==null){if(!Object.values(l).every(d=>typeof d=="function"))throw new D(`Exported object in "${e.path}" must contain only functions.`);t.set(e.basename,l)}else throw new D(`Invalid export in "${e.path}". Must be a function or object of functions.`)}async generate_object(){let e=await this.generate_user_script_functions();return Object.fromEntries(e)}};var bi=class{constructor(e){this.plugin=e;this.user_system_functions=new vi(e),this.user_script_functions=new wi(e)}async generate_object(e){let t={},r={};return this.plugin.settings.enable_system_commands&&(t=await this.user_system_functions.generate_object(e)),this.plugin.settings.user_scripts_folder&&(r=await this.user_script_functions.generate_object()),{...t,...r}}};var Ks=X(require("obsidian")),Xe;(function(t){t[t.INTERNAL=0]="INTERNAL",t[t.USER_INTERNAL=1]="USER_INTERNAL"})(Xe||(Xe={}));var Ei=class{constructor(e){this.plugin=e;this.internal_functions=new ji(this.plugin),this.user_functions=new bi(this.plugin)}async init(){await this.internal_functions.init()}async teardown(){await this.internal_functions.teardown()}additional_functions(){return{app:this.plugin.app,obsidian:Ks}}async generate_object(e,t=1){let r={},i=this.additional_functions(),o=await this.internal_functions.generate_object(e),a={};switch(Object.assign(r,i),t){case 0:Object.assign(r,o);break;case 1:a=await this.user_functions.generate_object(e),Object.assign(r,{...o,user:a});break}return r}};var Xs={},M,Ke=new Array(32).fill(void 0);Ke.push(void 0,null,!0,!1);function De(n){return Ke[n]}var Mn=Ke.length;function Rs(n){n<36||(Ke[n]=Mn,Mn=n)}function Ti(n){let e=De(n);return Rs(n),e}var Vo=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Vo.decode();var jr=new Uint8Array;function vr(){return jr.byteLength===0&&(jr=new Uint8Array(M.memory.buffer)),jr}function Tt(n,e){return Vo.decode(vr().subarray(n,n+e))}function kt(n){Mn===Ke.length&&Ke.push(Ke.length+1);let e=Mn;return Mn=Ke[e],Ke[e]=n,e}var Re=0,wr=new TextEncoder("utf-8"),Ys=typeof wr.encodeInto=="function"?function(n,e){return wr.encodeInto(n,e)}:function(n,e){let t=wr.encode(n);return e.set(t),{read:n.length,written:t.length}};function ht(n,e,t){if(t===void 0){let l=wr.encode(n),c=e(l.length);return vr().subarray(c,c+l.length).set(l),Re=l.length,c}let r=n.length,i=e(r),o=vr(),a=0;for(;a127)break;o[i+a]=l}if(a!==r){a!==0&&(n=n.slice(a)),i=t(i,r,r=a+n.length*3);let l=vr().subarray(i+a,i+r);a+=Ys(n,l).written}return Re=a,i}function Us(n){return n==null}var br=new Int32Array;function Ne(){return br.byteLength===0&&(br=new Int32Array(M.memory.buffer)),br}function ki(n){let e=typeof n;if(e=="number"||e=="boolean"||n==null)return`${n}`;if(e=="string")return`"${n}"`;if(e=="symbol"){let i=n.description;return i==null?"Symbol":`Symbol(${i})`}if(e=="function"){let i=n.name;return typeof i=="string"&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(n)){let i=n.length,o="[";i>0&&(o+=ki(n[0]));for(let a=1;a1)r=t[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message} +${n.stack}`:r}function Gs(n,e){if(!(n instanceof e))throw new Error(`expected instance of ${e.name}`);return n.ptr}var Er=32;function Ws(n){if(Er==1)throw new Error("out of js stack");return Ke[--Er]=n,Er}function Si(n,e){try{return n.apply(this,e)}catch(t){M.__wbindgen_exn_store(kt(t))}}var Rt=class{static __wrap(e){let t=Object.create(Rt.prototype);return t.ptr=e,t}__destroy_into_raw(){let e=this.ptr;return this.ptr=0,e}free(){let e=this.__destroy_into_raw();M.__wbg_parserconfig_free(e)}get interpolate(){let e=M.__wbg_get_parserconfig_interpolate(this.ptr);return String.fromCodePoint(e)}set interpolate(e){M.__wbg_set_parserconfig_interpolate(this.ptr,e.codePointAt(0))}get execution(){let e=M.__wbg_get_parserconfig_execution(this.ptr);return String.fromCodePoint(e)}set execution(e){M.__wbg_set_parserconfig_execution(this.ptr,e.codePointAt(0))}get single_whitespace(){let e=M.__wbg_get_parserconfig_single_whitespace(this.ptr);return String.fromCodePoint(e)}set single_whitespace(e){M.__wbg_set_parserconfig_single_whitespace(this.ptr,e.codePointAt(0))}get multiple_whitespace(){let e=M.__wbg_get_parserconfig_multiple_whitespace(this.ptr);return String.fromCodePoint(e)}set multiple_whitespace(e){M.__wbg_set_parserconfig_multiple_whitespace(this.ptr,e.codePointAt(0))}constructor(e,t,r,i,o,a,l){let c=ht(e,M.__wbindgen_malloc,M.__wbindgen_realloc),d=Re,m=ht(t,M.__wbindgen_malloc,M.__wbindgen_realloc),_=Re,w=ht(l,M.__wbindgen_malloc,M.__wbindgen_realloc),b=Re,S=M.parserconfig_new(c,d,m,_,r.codePointAt(0),i.codePointAt(0),o.codePointAt(0),a.codePointAt(0),w,b);return Rt.__wrap(S)}get opening_tag(){try{let r=M.__wbindgen_add_to_stack_pointer(-16);M.parserconfig_opening_tag(r,this.ptr);var e=Ne()[r/4+0],t=Ne()[r/4+1];return Tt(e,t)}finally{M.__wbindgen_add_to_stack_pointer(16),M.__wbindgen_free(e,t)}}set opening_tag(e){let t=ht(e,M.__wbindgen_malloc,M.__wbindgen_realloc),r=Re;M.parserconfig_set_opening_tag(this.ptr,t,r)}get closing_tag(){try{let r=M.__wbindgen_add_to_stack_pointer(-16);M.parserconfig_closing_tag(r,this.ptr);var e=Ne()[r/4+0],t=Ne()[r/4+1];return Tt(e,t)}finally{M.__wbindgen_add_to_stack_pointer(16),M.__wbindgen_free(e,t)}}set closing_tag(e){let t=ht(e,M.__wbindgen_malloc,M.__wbindgen_realloc),r=Re;M.parserconfig_set_closing_tag(this.ptr,t,r)}get global_var(){try{let r=M.__wbindgen_add_to_stack_pointer(-16);M.parserconfig_global_var(r,this.ptr);var e=Ne()[r/4+0],t=Ne()[r/4+1];return Tt(e,t)}finally{M.__wbindgen_add_to_stack_pointer(16),M.__wbindgen_free(e,t)}}set global_var(e){let t=ht(e,M.__wbindgen_malloc,M.__wbindgen_realloc),r=Re;M.parserconfig_set_global_var(this.ptr,t,r)}},cn=class{static __wrap(e){let t=Object.create(cn.prototype);return t.ptr=e,t}__destroy_into_raw(){let e=this.ptr;return this.ptr=0,e}free(){let e=this.__destroy_into_raw();M.__wbg_renderer_free(e)}constructor(e){Gs(e,Rt);var t=e.ptr;e.ptr=0;let r=M.renderer_new(t);return cn.__wrap(r)}render_content(e,t){try{let a=M.__wbindgen_add_to_stack_pointer(-16),l=ht(e,M.__wbindgen_malloc,M.__wbindgen_realloc),c=Re;M.renderer_render_content(a,this.ptr,l,c,Ws(t));var r=Ne()[a/4+0],i=Ne()[a/4+1],o=Ne()[a/4+2];if(o)throw Ti(i);return Ti(r)}finally{M.__wbindgen_add_to_stack_pointer(16),Ke[Er++]=void 0}}};async function Vs(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}let t=await n.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{let t=await WebAssembly.instantiate(n,e);return t instanceof WebAssembly.Instance?{instance:t,module:n}:t}}function zs(){let n={};return n.wbg={},n.wbg.__wbindgen_object_drop_ref=function(e){Ti(e)},n.wbg.__wbindgen_string_new=function(e,t){let r=Tt(e,t);return kt(r)},n.wbg.__wbindgen_string_get=function(e,t){let r=De(t),i=typeof r=="string"?r:void 0;var o=Us(i)?0:ht(i,M.__wbindgen_malloc,M.__wbindgen_realloc),a=Re;Ne()[e/4+1]=a,Ne()[e/4+0]=o},n.wbg.__wbg_call_97ae9d8645dc388b=function(){return Si(function(e,t){let r=De(e).call(De(t));return kt(r)},arguments)},n.wbg.__wbg_new_8d2af00bc1e329ee=function(e,t){let r=new Error(Tt(e,t));return kt(r)},n.wbg.__wbg_message_fe2af63ccc8985bc=function(e){let t=De(e).message;return kt(t)},n.wbg.__wbg_newwithargs_8fe23e3842840c8e=function(e,t,r,i){let o=new Function(Tt(e,t),Tt(r,i));return kt(o)},n.wbg.__wbg_call_168da88779e35f61=function(){return Si(function(e,t,r){let i=De(e).call(De(t),De(r));return kt(i)},arguments)},n.wbg.__wbg_call_3999bee59e9f7719=function(){return Si(function(e,t,r,i){let o=De(e).call(De(t),De(r),De(i));return kt(o)},arguments)},n.wbg.__wbindgen_debug_string=function(e,t){let r=ki(De(t)),i=ht(r,M.__wbindgen_malloc,M.__wbindgen_realloc),o=Re;Ne()[e/4+1]=o,Ne()[e/4+0]=i},n.wbg.__wbindgen_throw=function(e,t){throw new Error(Tt(e,t))},n}function Js(n,e){}function Qs(n,e){return M=n.exports,zo.__wbindgen_wasm_module=e,br=new Int32Array,jr=new Uint8Array,M}async function zo(n){typeof n=="undefined"&&(n=new URL("rusty_engine_bg.wasm",Xs.url));let e=zs();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n)),Js(e);let{instance:t,module:r}=await Vs(await n,e);return Qs(t,r)}var Jo=zo;var Qo=Xi("AGFzbQEAAAABvwEaYAJ/fwBgAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgAX8AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gAABgBX9/f39/AX9gAX8BfmAAAX9gBn9/f39/fwBgB39/f39/f38AYAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAFf35/f38AYAR/fX9/AGAEf3x/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCn9/f39/f39/f38Bf2ACfn8BfwLkAgsDd2JnGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAUDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxVfX3diaW5kZ2VuX3N0cmluZ19nZXQAAAN3YmcbX193YmdfY2FsbF85N2FlOWQ4NjQ1ZGMzODhiAAEDd2JnGl9fd2JnX25ld184ZDJhZjAwYmMxZTMyOWVlAAEDd2JnHl9fd2JnX21lc3NhZ2VfZmUyYWY2M2NjYzg5ODViYwACA3diZyJfX3diZ19uZXd3aXRoYXJnc184ZmUyM2UzODQyODQwYzhlAAgDd2JnG19fd2JnX2NhbGxfMTY4ZGE4ODc3OWUzNWY2MQADA3diZxtfX3diZ19jYWxsXzM5OTliZWU1OWU5Zjc3MTkACAN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA7kBtwECBwAGAgYEBAcBBQMKCAAEBgYAAwcCAAEADgETAQQXAQICAQAAAwcZAQAFAQwABgACAgAAAgAEBAAGAQAAAAAEBw0CAQUEBQYCDBgAAQAAAAQBAQEAAQABBAQEBgMDBwMJAwQIAAAABQkAAgEAAAAABwAAAgICAgAFBQMEFgoGEQ8QAAUHAwIBAgABBQEBCAACAQEBBQEAAgECAgACAQEBAgAJCQICAgIAAAAAAwMDAQECAgsLCwUEBQFwATs7BQMBABEGCQF/AUGAgMAACwfcBRkGbWVtb3J5AgAXX193YmdfcGFyc2VyY29uZmlnX2ZyZWUAUSJfX3diZ19nZXRfcGFyc2VyY29uZmlnX2ludGVycG9sYXRlAH4iX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19pbnRlcnBvbGF0ZQB3IF9fd2JnX2dldF9wYXJzZXJjb25maWdfZXhlY3V0aW9uAH8gX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19leGVjdXRpb24AeChfX3diZ19nZXRfcGFyc2VyY29uZmlnX3NpbmdsZV93aGl0ZXNwYWNlAIABKF9fd2JnX3NldF9wYXJzZXJjb25maWdfc2luZ2xlX3doaXRlc3BhY2UAeSpfX3diZ19nZXRfcGFyc2VyY29uZmlnX211bHRpcGxlX3doaXRlc3BhY2UAgQEqX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19tdWx0aXBsZV93aGl0ZXNwYWNlAHoQcGFyc2VyY29uZmlnX25ldwBVGHBhcnNlcmNvbmZpZ19vcGVuaW5nX3RhZwBGHHBhcnNlcmNvbmZpZ19zZXRfb3BlbmluZ190YWcAYxhwYXJzZXJjb25maWdfY2xvc2luZ190YWcARxxwYXJzZXJjb25maWdfc2V0X2Nsb3NpbmdfdGFnAGQXcGFyc2VyY29uZmlnX2dsb2JhbF92YXIASBtwYXJzZXJjb25maWdfc2V0X2dsb2JhbF92YXIAZRNfX3diZ19yZW5kZXJlcl9mcmVlAE8McmVuZGVyZXJfbmV3ACAXcmVuZGVyZXJfcmVuZGVyX2NvbnRlbnQAORFfX3diaW5kZ2VuX21hbGxvYwB1El9fd2JpbmRnZW5fcmVhbGxvYwCFAR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAKsBD19fd2JpbmRnZW5fZnJlZQCaARRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfAQllAQBBAQs6mAGdAaoBPzzBAZUBlgFOkgGOAWotYsEBwQFnKl3BAXaIAUyJAYgBhwGQAY8BiQGJAYwBigGLAZgBX8EBaKABXo4BvwG+AYQBOElwoQHBAWioAWCjAVclqQGcAcEBwAEK2dYCtwG8IAIPfwF+IwBBEGsiCyQAAkACQCAAQfUBTwRAQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiICQQBBEEEIEJcBQQJ0ayIBIAEgAksbIABNDQIgAEEEakEIEJcBIQRBrK7AACgCAEUNAUEAIARrIQMCQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG4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EBBBIAQoAgAiBSAAKAIAaiIGQdSDwAApAAA3AAAgBCAFQRBqNgIAIAZBCGpB3IPAACkAADcAACADQQE2AiwgAyABKAIIQShqIgU2AiggAyAANgIYIANB3ABqQQE2AgAgA0ICNwJMIANB8IPAADYCSCADIANBKGo2AlgCQAJAAkACQAJAAkAgA0EYakGYisAAIANByABqEB5FBEAgAigCACEIAkAgAigCCCIBRQ0AIAFBBHQhCkGQhMAAIQZBACEBQQAhBANAAn8gASAIaiIHQQRqIgkgBygCAEUNABoCQCAERQ0AIANBEGogBCgCACAEKAIEQQAgBiAGLQAAQQJGG0EBEBAgA0EIaiADKAIQIAMoAhRBACAHQQ1qIgQgBC0AAEECRhtBABAQIANBGGogAygCCCADKAIMEBIgA0EBNgI0IANBATYCLCADIAU2AiggAyADQRhqNgIwIAMgADYCRCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0HEAGpBmIrAACADQcgAahAeDQUgAygCHEUNACADKAIYEBULIAdBDmohBgJAIAdBDGotAABFBEAgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQfSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcgA0ECNgI0IANBoIXAADYCMCADQQE2AiwgAyAFNgIoIAMgADYCGCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0EYakGYisAAIANByABqEB5FDQFBq4HAAEErIANByABqQdiBwABBqIXAABBSAAsgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQcSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcLQQALIQQgCiABQRBqIgFHDQALIARFDQAgAyAEKAIAIAQoAgRBACAGIAYtAABBAkYbQQEQECADQRhqIAMoAgAgAygCBBASIANBNGpBATYCACADQQE2AiwgAyAFNgIoIAMgA0EYajYCMCADIAA2AkQgA0HcAGpBAjYCACADQgM3AkwgA0GYhMAANgJIIAMgA0EoajYCWCADQcQAakGYisAAIANByABqEB4NBSADKAIcRQ0AIAMoAhgQFQsgAEEEaigCACAAQQhqIgQoAgAiAWtBJ00EQCAAIAFBKBBBIAQoAgAhAQsgBCABQShqNgIAIAAoAgAgAWoiAUHIhcAAKQAANwAAIAFBCGpB0IXAACkAADcAACABQRBqQdiFwAApAAA3AAAgAUEYakHghcAAKQAANwAAIAFBIGpB6IXAACkAADcAACADQTxqQQI2AgAgA0E0akEBNgIAIANBoIXAADYCOCADIAU2AjAgA0EBNgIsIAMgBTYCKCADIAA2AhggA0HcAGoiAUEDNgIAIANCBDcCTCADQZiGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQUgA0EBNgIsIAMgBTYCKCADIAA2AhggAUEBNgIAIANCAjcCTCADQdCGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQYgAkEEaigCAARAIAgQFQsgA0HgAGokAA8LQauBwABBKyADQcgAakHYgcAAQYCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQYSFwAAQUgALQauBwABBKyADQcgAakHYgcAAQdSEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiFwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiGwAAQUgALQauBwABBKyADQcgAakHYgcAAQeCGwAAQUgAL7QkCCH8GfiMAQdAAayIDJAACQAJAAkAQVCIEBEAgA0EgakIANwMAIANBHGpBkIrAADYCACAEIAQpAwAiC0IBfDcDACADQQA2AhggAyALNwMIIAMgBEEIaikDADcDECADQqeAgIDwBDcDSCADQo2AgICgDjcDQCADQoqAgIDgDTcDOCADQtyAgIDACzcDMCADQQhqIANBMGoQGSADQQA2AjggA0IENwMwIAJFBEAgAEEANgIIIABCATcCAEEEIQRBBCEBDAQLIAEgAmohCEEAIQIDQAJ/IAEsAAAiBEF/SgRAIARB/wFxIQQgAUEBagwBCyABLQABQT9xIQUgBEEfcSEGIARBX00EQCAGQQZ0IAVyIQQgAUECagwBCyABLQACQT9xIAVBBnRyIQUgBEFwSQRAIAUgBkEMdHIhBCABQQNqDAELIAZBEnRBgIDwAHEgAS0AA0E/cSAFQQZ0cnIiBEGAgMQA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ASACIANqQQFqIgM2AhAgAyAHT0EAIAMgDE0bRQRAIAYgA08NAQwDCwsgB0EEELUBAAsgASAGNgIQCyABLQAkIAEoAgAiAiABKAIEIgRHckUNASABQQE6ACUgBCACawshAyAIRQ0AIAIgCGohCyADRQRAQQAhAgwBCyADQX9qIgEgAyABIAtqLQAAQQ1GGyECCyAAIAI2AgQgACALNgIAIAVBEGokAAv+BAEKfyMAQTBrIgMkACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCICADQQA2AhggA0EANgIQAkACQAJAIAIoAggiCkUEQCACQRRqKAIAIgRFDQEgAigCACEBIAIoAhAhACAEQX9qQf////8BcUEBaiIHIQQDQCABQQRqKAIAIgUEQCADKAIgIAEoAgAgBSADKAIkKAIMEQMADQQLIAAoAgAgA0EIaiAAQQRqKAIAEQEADQMgAEEIaiEAIAFBCGohASAEQX9qIgQNAAsMAQsgAkEMaigCACIARQ0AIABBBXQhCyAAQX9qQf///z9xQQFqIQcgAigCACEBA0AgAUEEaigCACIABEAgAygCICABKAIAIAAgAygCJCgCDBEDAA0DCyADIAQgCmoiBUEcai0AADoAKCADIAVBBGopAgBCIIk3AwggBUEYaigCACEGIAIoAhAhCEEAIQlBACEAAkACQAJAIAVBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQTdHDQEgDCgCACgCACEGC0EBIQALIAMgBjYCFCADIAA2AhAgBUEQaigCACEAAkACQAJAIAVBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQTdHDQEgBigCACgCACEAC0EBIQkLIAMgADYCHCADIAk2AhggCCAFKAIAQQN0aiIAKAIAIANBCGogACgCBBEBAA0CIAFBCGohASALIARBIGoiBEcNAAsLQQAhACAHIAIoAgRJIgFFDQEgAygCICACKAIAIAdBA3RqQQAgARsiASgCACABKAIEIAMoAiQoAgwRAwBFDQELQQEhAAsgA0EwaiQAIAALwgQBCH8jAEHQAGsiBCQAIARBEGogASACIAMoAgAgA0EIaigCABAOAkACQAJAAkACQAJAIAQoAhBFBEAgBEEeai0AAA0EIARBxABqKAIAIQYgBCgCQCEHIARBHGot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AkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAAoAggiAyAAQQRqKAIARgR/IAAgAxBAIAAoAggFIAMLIAAoAgBqIAE6AAAgACAAKAIIQQFqNgIIDAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEEgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJABBAAvVAgEDfyMAQRBrIgIkAAJAAn8CQCABQYABTwRAIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAILIAAoAggiAyAAQQRqKAIARgRAIAAgAxBDIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCyABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAAL1wIBA38jAEEQayICJAACQAJ/AkACQCABQYABTwRAIAJBADYCDCABQYAQSQ0BIAFBgIAETw0CIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAwsgACgCCCIDIABBBGooAgBGBEAgACADEEMgACgCCCEDCyAAIANBAWo2AgggACgCACADaiABOgAADAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAALtgIBB38CQCACQQ9NBEAgACEDDAELIABBACAAa0EDcSIEaiEFIAQEQCAAIQMgASEGA0AgAyAGLQAAOgAAIAZBAWohBiADQQFqIgMgBUkNAAsLIAUgAiAEayIIQXxxIgdqIQMCQCABIARqIgRBA3EEQCAHQQFIDQEgBEEDdCICQRhxIQkgBEF8cSIGQQRqIQFBACACa0EYcSECIAYoAgAhBgNAIAUgBiAJdiABKAIAIgYgAnRyNgIAIAFBBGohASAFQQRqIgUgA0kNAAsMAQsgB0EBSA0AIAQhAQNAIAUgASgCADYCACABQQRqIQEgBUEEaiIFIANJDQALCyAIQQNxIQIgBCAHaiEBCyACBEAgAiADaiECA0AgAyABLQAAOgAAIAFBAWohASADQQFqIgMgAkkNAAsLIAALvgIBBX8CQAJAAkACQCACQQNqQXxxIAJrIgRFDQAgAyAEIAQgA0sbIgRFDQAgAUH/AXEhB0EBIQYDQCACIAVqLQAAIAdGDQQgBCAFQQFqIgVHDQALIAQgA0F4aiIGSw0CDAELIANBeGohBkEAIQQLIAFB/wFxQYGChAhsIQUDQCACIARqIgcoAgAgBXMiCEF/cyAIQf/9+3dqcSAHQQRqKAIAIAVzIgdBf3MgB0H//ft3anFyQYCBgoR4cUUEQCAEQQhqIgQgBk0NAQsLIAQgA00NACAEIAMQtAEACwJAIAMgBEYNACAEIANrIQMgAiAEaiECQQAhBSABQf8BcSEBA0AgASACIAVqLQAARwRAIAMgBUEBaiIFag0BDAILCyAEIAVqIQVBASEGDAELQQAhBgsgACAFNgIEIAAgBjYCAAu+AgIFfwF+IwBBMGsiBCQAQSchAgJAIABCkM4AVARAIAAhBwwBCwNAIARBCWogAmoiA0F8aiAAIABCkM4AgCIHQpDOAH59pyIFQf//A3FB5ABuIgZBAXRBpZTAAGovAAA7AAAgA0F+aiAFIAZB5ABsa0H//wNxQQF0QaWUwABqLwAAOwAAIAJBfGohAiAAQv/B1y9WIAchAA0ACwsgB6ciA0HjAEsEQCACQX5qIgIgBEEJamogB6ciAyADQf//A3FB5ABuIgNB5ABsa0H//wNxQQF0QaWUwABqLwAAOwAACwJAIANBCk8EQCACQX5qIgIgBEEJamogA0EBdEGllMAAai8AADsAAAwBCyACQX9qIgIgBEEJamogA0EwajoAAAsgAUGAk8AAQQAgBEEJaiACakEnIAJrEBcgBEEwaiQAC7ECAQN/IwBBgAFrIgQkAAJAAkACQAJAIAEoAgAiAkEQcUUEQCACQSBxDQEgADUCACABEDIhAAwECyAAKAIAIQBBACECA0AgAiAEakH/AGpBMEHXACAAQQ9xIgNBCkkbIANqOgAAIAJBf2ohAiAAQQ9LIABBBHYhAA0ACyACQYABaiIAQYEBTw0BIAFBo5TAAEECIAIgBGpBgAFqQQAgAmsQFyEADAMLIAAoAgAhAEEAIQIDQCACIARqQf8AakEwQTcgAEEPcSIDQQpJGyADajoAACACQX9qIQIgAEEPSyAAQQR2IQANAAsgAkGAAWoiAEGBAU8NASABQaOUwABBAiACIARqQYABakEAIAJrEBchAAwCCyAAQYABELQBAAsgAEGAARC0AQALIARBgAFqJAAgAAunAgEFfyAAQgA3AhAgAAJ/QQAgAUGAAkkNABpBHyABQf///wdLDQAaIAFBBiABQQh2ZyICa3ZBAXEgAkEBdGtBPmoLIgI2AhwgAkECdEG4sMAAaiEDIAAhBAJAAkACQAJAQayuwAAoAgAiBUEBIAJ0IgZxBEAgAygCACEDIAIQkwEhAiADEK8BIAFHDQEgAyECDAILQayuwAAgBSAGcjYCACADIAA2AgAMAwsgASACdCEFA0AgAyAFQR12QQRxakEQaiIGKAIAIgJFDQIgBUEBdCEFIAIiAxCvASABRw0ACwsgAigCCCIBIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAE2AgggAEEANgIYDwsgBiAANgIACyAAIAM2AhggBCAENgIIIAQgBDYCDAu2AgEFfyAAKAIYIQQCQAJAIAAgACgCDEYEQCAAQRRBECAAQRRqIgEoAgAiAxtqKAIAIgINAUEAIQEMAgsgACgCCCICIAAoAgwiATYCDCABIAI2AggMAQsgASAAQRBqIAMbIQMDQCADIQUgAiIBQRRqIgMoAgAiAkUEQCABQRBqIQMgASgCECECCyACDQALIAVBADYCAAsCQCAERQ0AAkAgACAAKAIcQQJ0QbiwwABqIgIoAgBHBEAgBEEQQRQgBCgCECAARhtqIAE2AgAgAQ0BDAILIAIgATYCACABDQBBrK7AAEGsrsAAKAIAQX4gACgCHHdxNgIADwsgASAENgIYIAAoAhAiAgRAIAEgAjYCECACIAE2AhgLIABBFGooAgAiAEUNACABQRRqIAA2AgAgACABNgIYCwvAAgEBfyMAQTBrIgIkAAJ/AkACQAJAAkAgACgCAEEBaw4DAQIDAAsgAkEcakEBNgIAIAJCATcCDCACQYSKwAA2AgggAkEKNgIkIAIgAEEEajYCLCACIAJBIGo2AhggAiACQSxqNgIgIAEgAkEIahBcDAMLIAJBHGpBADYCACACQfCIwAA2AhggAkIBNwIMIAJB5InAADYCCCABIAJBCGoQXAwCCyACQRxqQQE2AgAgAkIBNwIMIAJBwInAADYCCCACQQo2AiQgAiAAQQRqNgIsIAIgAkEgajYCGCACIAJBLGo2AiAgASACQQhqEFwMAQsgAkEcakEBNgIAIAJCATcCDCACQaCJwAA2AgggAkEKNgIkIAIgAEEEajYCLCACIAJBIGo2AhggAiACQSxqNgIgIAEgAkEIahBcCyACQTBqJAALbwEMf0HYscAAKAIAIgJFBEBB6LHAAEH/HzYCAEEADwtB0LHAACEGA0AgAiIBKAIIIQIgASgCBCEDIAEoAgAhBCABQQxqKAIAGiABIQYgBUEBaiEFIAINAAtB6LHAACAFQf8fIAVB/x9LGzYCACAIC4sCAgR/AX4jAEEwayICJAAgAUEEaiEEIAEoAgRFBEAgASgCACEDIAJBEGoiBUEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiADQRBqKQIANwMAIAJBIGogA0EIaikCADcDACACIAMpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogBEEIaiAFKAIANgIAIAQgAikDCDcCAAsgAkEgaiIDIARBCGooAgA2AgAgAUEMakEANgIAIAQpAgAhBiABQgE3AgQgAiAGNwMYQQxBBBCeASIBRQRAQQxBBBCzAQALIAEgAikDGDcCACABQQhqIAMoAgA2AgAgAEHoj8AANgIEIAAgATYCACACQTBqJAAL7AEBAn8jAEEwayIFJAACQCABBEAgASgCACIGQX9GDQEgASAGQQFqNgIAIAUgBDYCFCAFQRhqIAFBBGogAiADIAVBFGoQGyAFQRBqIAVBKGooAgA2AgAgBSAFQSBqKQMANwMIIAUoAhwhBCAFKAIYIQYgAwRAIAIQFQsgASABKAIAQX9qNgIAAn8gBkUEQEEAIQNBAAwBCyAFQSRqIAVBEGooAgA2AgAgBSAENgIYIAUgBSkDCDcCHEEBIQMgBUEYahBNCyEBIAAgAzYCCCAAIAE2AgQgACAENgIAIAVBMGokAA8LEK0BAAsQrgEAC4UCAQN/IwBBIGsiAiQAIAJB8IbAAEEGQfaGwABBJxAGNgIUIAJBITYCGCACQQhqIAJBFGogAkEYahBtIAIoAgwhAyACKAIIRQRAIAIoAhgiBEEkTwRAIAQQAAsgACADNgIAIAAgASkCADcCBCAAQTRqIAFBMGooAgA2AgAgAEEsaiABQShqKQIANwIAIABBJGogAUEgaikCADcCACAAQRxqIAFBGGopAgA3AgAgAEEUaiABQRBqKQIANwIAIABBDGogAUEIaikCADcCACACKAIUIgBBJE8EQCAAEAALIAJBIGokAA8LIAIgAzYCHEGrgcAAQSsgAkEcakHogcAAQaCHwAAQUgAL1gEAAkAgAEEgSQ0AAkACf0EBIABB/wBJDQAaIABBgIAESQ0BAkAgAEGAgAhPBEAgAEG12XNqQbXbK0kgAEHii3RqQeILSXINBCAAQZ+odGpBnxhJIABB3uJ0akEOSXINBCAAQX5xQZ7wCkYNBCAAQWBxQeDNCkcNAQwECyAAQbugwABBKkGPocAAQcABQc+iwABBtgMQKQ8LQQAgAEHHkXVqQQdJDQAaIABBgIC8f2pB8IN0SQsPCyAAQZybwABBKEHsm8AAQaACQYyewABBrwIQKQ8LQQALwwEBA38gACgCBCIDIAAoAgBGBEBBgIDEAA8LIAAgA0F/aiIBNgIEIAEtAAAiAUEYdEEYdSICQX9MBH8gACADQX5qIgE2AgQgAkE/cQJ/IAEtAAAiAUEYdEEYdSICQUBOBEAgAUEfcQwBCyAAIANBfWoiATYCBCACQT9xAn8gAS0AACIBQRh0QRh1IgJBQE4EQCABQQ9xDAELIAAgA0F8aiIANgIEIAJBP3EgAC0AAEEHcUEGdHILQQZ0cgtBBnRyBSABCwvTAQEFfyMAQSBrIgIkAAJAIAFBAWoiAyABSQ0AQQQhBCAAQQRqKAIAIgVBAXQiASADIAEgA0sbIgFBBCABQQRLGyIBQf////8AcSABRkECdCEDIAFBBHQhBgJAIAVFBEBBACEEDAELIAIgBUEEdDYCFCACIAAoAgA2AhALIAIgBDYCGCACIAYgAyACQRBqEEsgAigCAARAIAJBCGooAgAiAEUNASACKAIEIAAQswEACyACKAIEIQMgAEEEaiABNgIAIAAgAzYCACACQSBqJAAPCxBzAAvTAQEFfyMAQSBrIgIkAAJAIAFBAWoiAyABSQ0AQQQhBCAAQQRqKAIAIgVBAXQiASADIAEgA0sbIgFBBCABQQRLGyIBQf////8DcSABRkECdCEDIAFBAnQhBgJAIAVFBEBBACEEDAELIAIgBUECdDYCFCACIAAoAgA2AhALIAIgBDYCGCACIAYgAyACQRBqEEsgAigCAARAIAJBCGooAgAiAEUNASACKAIEIAAQswEACyACKAIEIQMgAEEEaiABNgIAIAAgAzYCACACQSBqJAAPCxBzAAu3AQEEfyAAKAIAIgEgACgCBEYEQEGAgMQADwsgACABQQFqNgIAIAEtAAAiA0EYdEEYdUF/TAR/IAAgAUECajYCACABLQABQT9xIQIgA0EfcSEEIANB3wFNBEAgBEEGdCACcg8LIAAgAUEDajYCACABLQACQT9xIAJBBnRyIQIgA0HwAUkEQCACIARBDHRyDwsgACABQQRqNgIAIARBEnRBgIDwAHEgAS0AA0E/cSACQQZ0cnIFIAMLC68BAQN/IwBBIGsiAiQAAkAgAUEBaiIDIAFJDQAgAEEEaigCACIBQQF0IgQgAyAEIANLGyIDQQggA0EISxshAyACIAEEfyACIAE2AhQgAiAAKAIANgIQQQEFQQALNgIYIAIgA0EBIAJBEGoQSyACKAIABEAgAkEIaigCACIARQ0BIAIoAgQgABCzAQALIAIoAgQhASAAQQRqIAM2AgAgACABNgIAIAJBIGokAA8LEHMAC68BAQJ/IwBBIGsiAyQAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxshBCADIAEEfyADIAE2AhQgAyAAKAIANgIQQQEFQQALNgIYIAMgBEEBIANBEGoQSyADKAIABEAgA0EIaigCACIARQ0BIAMoAgQgABCzAQALIAMoAgQhASAAQQRqIAQ2AgAgACABNgIAIANBIGokAA8LEHMAC60BAQJ/IwBBIGsiAyQAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxshBCADIAEEfyADIAE2AhQgAyAAKAIANgIQQQEFQQALNgIYIAMgBCADQRBqEEogAygCAARAIANBCGooAgAiAEUNASADKAIEIAAQswEACyADKAIEIQEgAEEEaiAENgIAIAAgATYCACADQSBqJAAPCxBzAAutAQEDfyMAQSBrIgIkAAJAIAFBAWoiAyABSQ0AIABBBGooAgAiAUEBdCIEIAMgBCADSxsiA0EIIANBCEsbIQMgAiABBH8gAiABNgIUIAIgACgCADYCEEEBBUEACzYCGCACIAMgAkEQahBKIAIoAgAEQCACQQhqKAIAIgBFDQEgAigCBCAAELMBAAsgAigCBCEBIABBBGogAzYCACAAIAE2AgAgAkEgaiQADwsQcwAL7wEBA38jAEEgayIFJABBjK7AAEGMrsAAKAIAIgdBAWo2AgBB7LHAAEHsscAAKAIAQQFqIgY2AgACQAJAIAdBAEggBkECS3INACAFIAQ6ABggBSADNgIUIAUgAjYCEEGArsAAKAIAIgJBf0wNAEGArsAAIAJBAWoiAjYCAEGArsAAQYiuwAAoAgAiAwR/QYSuwAAoAgAgBSAAIAEoAhARAAAgBSAFKQMANwMIIAVBCGogAygCFBEAAEGArsAAKAIABSACC0F/ajYCACAGQQFLDQAgBA0BCwALIwBBEGsiAiQAIAIgATYCDCACIAA2AggAC58BAQN/AkAgAUEPTQRAIAAhAgwBCyAAQQAgAGtBA3EiBGohAyAEBEAgACECA0AgAkH/AToAACACQQFqIgIgA0kNAAsLIAMgASAEayIBQXxxIgRqIQIgBEEBTgRAA0AgA0F/NgIAIANBBGoiAyACSQ0ACwsgAUEDcSEBCyABBEAgASACaiEBA0AgAkH/AToAACACQQFqIgIgAUkNAAsLIAALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQQRqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQRBqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQSxqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogA0EIaiAEKAIANgIAIAMgAikDCDcCAAsgAEHoj8AANgIEIAAgAzYCACACQTBqJAALkAEBAn8CQAJ/AkACQAJAAn9BASIDIAFBAEgNABogAigCCEUNAiACKAIEIgQNASABDQNBAQwECyEDQQAhAQwECyACKAIAIARBASABEJkBDAILIAENAEEBDAELIAFBARCeAQsiAgRAIAAgAjYCBEEAIQMMAQsgACABNgIEQQEhAQsgACADNgIAIABBCGogATYCAAunAQECfwJAAkACQAJAAkACQAJAAn8gAgRAQQEiBCABQQBIDQEaIAMoAghFDQMgAygCBCIFDQIgAQ0EDAYLIAAgATYCBEEBCyEEQQAhAQwGCyADKAIAIAUgAiABEJkBIgNFDQIMBAsgAUUNAgsgASACEJ4BIgMNAgsgACABNgIEIAIhAQwCCyACIQML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AX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEDNgIAIAJCAjcCDCACQfSWwAA2AgggAkEDNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpBhJfAABB0AAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBAzYCACADQgI3AgwgA0HAk8AANgIIIANBAzYCJCADIANBIGo2AhggAyADNgIoIAMgA0EEajYCICADQQhqIAIQdAALVgECfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCADIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGYisAAIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGAjsAAIAJBCGoQHiACQSBqJAALZwAjAEEwayIBJABB2K3AAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUH0jsAANgIIIAFBAzYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQZyPwAAQdAALIAFBMGokAAtZAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbSRwAAgAkEIahAeIAJBIGokAAtnAQJ/IAEoAgAhAwJAAkACQCABQQhqKAIAIgFFBEBBASECDAELIAFBf0wNASABQQEQngEiAkUNAgsgAiADIAEQuQEhAiAAIAE2AgggACABNgIEIAAgAjYCAA8LEHMACyABQQEQswEAC1YBAX8jAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBmIrAACACQQhqEB4gAkEgaiQAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQQhqIgMoAgAEQCAAKAIEEBULIAAgATYCBCAAQQA2AgAgAEEMaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQRRqIgMoAgAEQCAAKAIQEBULIAAgATYCECAAQQA2AgAgAEEYaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQTBqIgMoAgAEQCAAKAIsEBULIAAgATYCLCAAQQA2AgAgAEE0aiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8jAEEQayIFJAAgASgCACACKAIAIAMoAgAgBCgCABAIIQEgBUEIahCDASAFKAIMIQIgACAFKAIIIgNBAEc2AgAgACACIAEgAxs2AgQgBUEQaiQAC08BAn8gACgCACIDQQRqKAIAIANBCGoiBCgCACIAayACSQRAIAMgACACEEEgBCgCACEACyADKAIAIABqIAEgAhC5ARogBCAAIAJqNgIAQQALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQQiAEKAIAIQALIAMoAgAgAGogASACELkBGiAEIAAgAmo2AgBBAAtRAQF/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAchASAEQQhqEIMBIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALSgECfyAAQQRqKAIAIABBCGoiBCgCACIDayACSQRAIAAgAyACEEEgBCgCACEDCyAAKAIAIANqIAEgAhC5ARogBCACIANqNgIAQQALPwEBfyMAQSBrIgAkACAAQRxqQQA2AgAgAEGwkMAANgIYIABCATcCDCAAQcyQwAA2AgggAEEIakGkkcAAEHQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLTAECfyMAQRBrIgMkACABKAIAIAIoAgAQAyEBIANBCGoQgwEgAygCDCECIAAgAygCCCIEQQBHNgIAIAAgAiABIAQbNgIEIANBEGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAQANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRAwALRwEBfyMAQSBrIgIkACACQRRqQQA2AgAgAkGAk8AANgIQIAJCATcCBCACQSs2AhwgAiAANgIYIAIgAkEYajYCACACIAEQdAALRgECfyABKAIEIQIgASgCACEDQQhBBBCeASIBRQRAQQhBBBCzAQALIAEgAjYCBCABIAM2AgAgAEH4j8AANgIEIAAgATYCAAs5AQF/IAFBEHZAACECIABBADYCCCAAQQAgAUGAgHxxIAJBf0YiARs2AgQgAEEAIAJBEHQgARs2AgALZAEDfyMAQRBrIgEkACAAKAIMIgJFBEBBmI7AAEHIj8AAEG8ACyAAKAIIIgNFBEBBmI7AAEHYj8AAEG8ACyABIAI2AgggASAANgIEIAEgAzYCACABKAIAIAEoAgQgASgCCBBQAAs/AQF/IwBBIGsiACQAIABBHGpBADYCACAAQcyRwAA2AhggAEIBNwIMIABBjJLAADYCCCAAQQhqQZSSwAAQdAALPgEBfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQfyTwAA2AgwgAkGAk8AANgIIIAJBCGoQcgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0EJ4BIgBFDQAgAA8LAAsiACMAQRBrIgAkACAAQQhqIAEQfSAAQQhqEFMgAEEQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEcaiABNgIADwsQrQEACxCuAQALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE2AgAPCxCtAQALEK4BAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATYCAA8LEK0BAAsQrgEACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQrQEACxCuAQALQAEBfyMAQRBrIgQkACAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgAgBCgCACAEKAIEIAQoAgggBCgCDBATAAs3ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcakHEh8AANgIACzUBAX8gASgCGEHDjsAAQQsgAUEcaigCACgCDBEDACECIABBADoABSAAIAI6AAQgACABNgIACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQrQEACxCuAQALJQACQCAABEAgACgCAEF/Rg0BIABBIGooAgAPCxCtAQALEK4BAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEkaigCAA8LEK0BAAsQrgEACyUAAkAgAARAIAAoAgBBf0YNASAAQShqKAIADwsQrQEACxCuAQALJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECzoBAn9B3K3AAC0AACEBQdytwABBADoAAEHgrcAAKAIAIQJB4K3AAEEANgIAIAAgAjYCBCAAIAE2AgALIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQFQsLHwACQCABQXxNBEAgACABQQQgAhCZASIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAslACAARQRAQciMwABBMBCsAQALIAAgAiADIAQgBSABKAIQEQoACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQgACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQcACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERUACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERIACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERQACx4AIAAgAUEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsUACAAQQRqKAIABEAgACgCABAVCwshACAARQRAQciMwABBMBCsAQALIAAgAiADIAEoAhARBAALHwAgAEUEQEHIjMAAQTAQrAEACyAAIAIgASgCEBEBAAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxkAIAAoAgAiACgCACAAQQhqKAIAIAEQtwELEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEHgpsAAQQUgAUEcaigCACgCDBEDAAsTACAAKAIAIgBBJE8EQCAAEAALCxAAIAAgAWpBf2pBACABa3ELFAAgACgCACAAQQhqKAIAIAEQtwELDAAgACABIAIgAxAYCwsAIAEEQCAAEBULCw8AIABBAXQiAEEAIABrcgsUACAAKAIAIAEg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BAAAAAQAAAARAAAAEgAAABMAAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAHYFEABPAAAApQEAABoAAAAUAAAAAAAAAAEAAAAVAAAAL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwDoBRAATwAAALcBAAAmAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5SnNWYWx1ZSgpAAAAeAYQAAgAAACABhAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAACQAAAAEAAAABAAAACUAAAAmAAAAJwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVBY2Nlc3NFcnJvcm1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQKAAAATgcQABUAAABjBxAADgAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc4QHEAAYAAAAUgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzrAcQABwAAABGAgAAHwAAAKwHEAAcAAAARwIAAB4AAAAoAAAADAAAAAQAAAApAAAAJAAAAAgAAAAEAAAAKgAAACsAAAAQAAAABAAAACwAAAAtAAAAJAAAAAgAAAAEAAAALgAAAC8AAABIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93MAgQABwAAAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9oYXNoYnJvd24tMC4xMi4zL3NyYy9yYXcvbW9kLnJzAFQIEABPAAAAWgAAACgAAAAwAAAABAAAAAQAAAAxAAAAMgAAADMAAAAwAAAAAAAAAAEAAAAHAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA+AgQABEAAADcCBAAHAAAAAYCAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9ybGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAFcJEAAYAAAAZAIAACAAAAAuLgAAgAkQAAIAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAjAkQACAAAACsCRAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAOQAAAAAAAAABAAAAOgAAAGA6IACACRAAAAAAAA0KEAACAAAAfSB9MHgwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIHN0YXJ0IGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCAAAADtChAAEgAAAP8KEAAiAAAAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwA0CxAAHwAAADQAAAAFAAAAcmFuZ2UgZW5kIGluZGV4IGQLEAAQAAAA/woQACIAAAA0CxAAHwAAAEkAAAAFAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAlAsQABYAAACqCxAADQAAADQLEAAfAAAAXAAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzANgLEAAfAAAAGgYAABUAAADYCxAAHwAAAEgGAAAVAAAA2AsQAB8AAABJBgAA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");var Ci=class{async init(){await Jo(Qo);let e=new Rt("<%","%>","\0","*","-","_","tR");this.renderer=new cn(e)}async parse_commands(e,t){return this.renderer.render_content(e,t)}};var Ze;(function(a){a[a.CreateNewFromTemplate=0]="CreateNewFromTemplate",a[a.AppendActiveFile=1]="AppendActiveFile",a[a.OverwriteFile=2]="OverwriteFile",a[a.OverwriteActiveFile=3]="OverwriteActiveFile",a[a.DynamicProcessor=4]="DynamicProcessor",a[a.StartupTemplate=5]="StartupTemplate"})(Ze||(Ze={}));var ln=class{constructor(e){this.plugin=e;this.functions_generator=new Ei(this.plugin),this.parser=new Ci}async setup(){this.files_with_pending_templates=new Set,await this.parser.init(),await this.functions_generator.init(),this.plugin.registerMarkdownPostProcessor((e,t)=>this.process_dynamic_templates(e,t))}create_running_config(e,t,r){let i=wt(this.plugin.app);return{template_file:e,target_file:t,run_mode:r,active_file:i}}async read_and_parse_template(e){let t=await this.plugin.app.vault.read(e.template_file);return this.parse_template(e,t)}async parse_template(e,t){let r=await this.functions_generator.generate_object(e,Xe.USER_INTERNAL);return this.current_functions_object=r,await this.parser.parse_commands(t,r)}start_templater_task(e){this.files_with_pending_templates.add(e)}async end_templater_task(e){this.files_with_pending_templates.delete(e),this.files_with_pending_templates.size===0&&(this.plugin.app.workspace.trigger("templater:all-templates-executed"),await this.functions_generator.teardown())}async create_new_note_from_template(e,t,r,i=!0){if(!t)switch(this.plugin.app.vault.getConfig("newFileLocation")){case"current":{let _=wt(this.plugin.app);_&&(t=_.parent);break}case"folder":t=this.plugin.app.fileManager.getNewFileParent("");break;case"root":t=this.plugin.app.vault.getRoot();break;default:break}let o=e instanceof de.TFile&&e.extension||"md",a=await Se(async()=>{let m=t instanceof de.TFolder?t.path:t,_=this.plugin.app.vault.getAvailablePath((0,de.normalizePath)(`${m??""}/${r||"Untitled"}`),o),w=fr(_);return w&&!this.plugin.app.vault.getAbstractFileByPathInsensitive(w)&&await this.plugin.app.vault.createFolder(w),this.plugin.app.vault.create(_,"")},`Couldn't create ${o} file.`);if(a==null)return;let{path:l}=a;this.start_templater_task(l);let c,d;if(e instanceof de.TFile?(c=this.create_running_config(e,a,0),d=await Se(async()=>this.read_and_parse_template(c),"Template parsing error, aborting.")):(c=this.create_running_config(void 0,a,0),d=await Se(async()=>this.parse_template(c,e),"Template parsing error, aborting.")),d==null){await this.plugin.app.vault.delete(a),await this.end_templater_task(l);return}if(await this.plugin.app.vault.modify(a,d),this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:a,content:d}),i){let m=this.plugin.app.workspace.getLeaf(!1);if(!m){oe(new D("No active leaf"));return}await m.openFile(a,{state:{mode:"source"}}),await this.plugin.editor_handler.jump_to_next_cursor_location(a,!0),m.setEphemeralState({rename:"all"})}return await this.end_templater_task(l),a}async append_template_to_active_file(e){let t=this.plugin.app.workspace.getActiveViewOfType(de.MarkdownView),r=this.plugin.app.workspace.activeEditor;if(!r||!r.file||!r.editor){oe(new D("No active editor, can't append templates."));return}let{path:i}=r.file;this.start_templater_task(i);let o=this.create_running_config(e,r.file,1),a=await Se(async()=>this.read_and_parse_template(o),"Template parsing error, aborting.");if(a==null){await this.end_templater_task(i);return}let{content:l,frontmatter:c}=wn(a),m=r.editor.getDoc(),_=m.listSelections();m.replaceSelection(l),t&&(Object.keys(c).length>0&&t instanceof de.MarkdownView&&typeof t.metadataEditor?.insertProperties=="function"&&t.metadataEditor.insertProperties(c),await vt(100),await t.save()),this.plugin.app.workspace.trigger("templater:template-appended",{view:t,editor:r,content:a,oldSelections:_,newSelections:m.listSelections()}),await this.plugin.editor_handler.jump_to_next_cursor_location(r.file,!0),await this.end_templater_task(i)}async write_template_to_file(e,t){let{path:r}=t;this.start_templater_task(r);let i=this.plugin.app.workspace.getActiveViewOfType(de.MarkdownView),o=this.plugin.app.workspace.activeEditor,a=wt(this.plugin.app),l=this.create_running_config(e,t,2),c=await Se(async()=>this.read_and_parse_template(l),"Template parsing error, aborting.");if(c==null){await this.end_templater_task(r);return}let{content:d,frontmatter:m}=wn(c);if(a?.path===t.path&&o&&o.editor&&i){let _="",{content:w,frontmatter:b}=wn(o.editor.getValue());dr(b,m),Object.keys(b).length>0&&(_+=`--- ${(0,de.stringifyYaml)(b)}--- -`),_+=w+d,o.editor.setValue(_),o.editor.setSelection({line:0,ch:0},{line:0,ch:0}),await jt(100),await i.save()}else await this.plugin.app.vault.process(t,_=>{let w="",{content:b,frontmatter:S}=vn(_);return ur(S,m),Object.keys(S).length>0&&(w+=`--- +`),_+=w+d,o.editor.setValue(_),o.editor.setSelection({line:0,ch:0},{line:0,ch:0}),await vt(100),await i.save()}else await this.plugin.app.vault.process(t,_=>{let w="",{content:b,frontmatter:S}=wn(_);return dr(S,m),Object.keys(S).length>0&&(w+=`--- ${(0,de.stringifyYaml)(S)}--- -`),w+=b+d,c=w,w});this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:t,content:c}),await this.plugin.editor_handler.jump_to_next_cursor_location(t,!0),await this.end_templater_task(r)}overwrite_active_file_commands(){let e=this.plugin.app.workspace.activeEditor;if(!e||!e.file){oe(new P("Active editor is null, can't overwrite content"));return}this.overwrite_file_commands(e.file,!0)}async overwrite_file_commands(e,t=!1){let{path:r}=e;this.start_templater_task(r);let i=this.create_running_config(e,e,t?3:2),o=await Se(async()=>this.read_and_parse_template(i),"Template parsing error, aborting.");if(o==null){await this.end_templater_task(r);return}await this.plugin.app.vault.modify(e,o),this.plugin.app.workspace.trigger("templater:overwrite-file",{file:e,content:o}),await this.plugin.editor_handler.jump_to_next_cursor_location(e,!0),await this.end_templater_task(r)}async process_dynamic_templates(e,t){let r=so(),i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT),o,a=!1,l;for(;o=i.nextNode();){let c=o.nodeValue;if(c!==null){let d=r.exec(c);if(d!==null){let m=this.plugin.app.metadataCache.getFirstLinkpathDest("",t.sourcePath);if(!m||!(m instanceof de.TFile))return;if(!a){a=!0;let _=this.create_running_config(m,m,4);l=await this.functions_generator.generate_object(_,Xe.USER_INTERNAL),this.current_functions_object=l}}for(;d!=null;){let m=d[1]+d[2],_=await Se(async()=>await this.parser.parse_commands(m,l),`Command Parsing error in dynamic command '${m}'`);if(_==null)return;let w=r.lastIndex-d[0].length,b=r.lastIndex;c=c.substring(0,w)+_+c.substring(b),r.lastIndex+=_.length-d[0].length,d=r.exec(c)}o.nodeValue=c}}}get_new_file_template_for_folder(e){do{let t=this.plugin.settings.folder_templates.find(r=>r.folder==e.path);if(t&&t.template)return t.template;e=e.parent}while(e)}get_new_file_template_for_file(e){let t=this.plugin.settings.file_templates.find(r=>new RegExp(r.regex).test(e.path));if(t&&t.template)return t.template}static async on_file_creation(e,t,r){if(!(r instanceof de.TFile)||r.extension!=="md")return;let i=(0,de.normalizePath)(e.plugin.settings.templates_folder);if(r.path.includes(i)&&i!=="/"||(await jt(300),e.files_with_pending_templates.has(r.path)))return;let o=await t.vault.read(r),a=(0,de.getFrontMatterInfo)(o),l=o.length-a.contentStart;if(l==0&&e.plugin.settings.enable_folder_templates){let c=e.get_new_file_template_for_folder(r.parent);if(!c)return;let d=await Se(async()=>Mt(t,c),`Couldn't find template ${c}`);if(d==null)return;await e.write_template_to_file(d,r)}else if(l==0&&e.plugin.settings.enable_file_templates){let c=e.get_new_file_template_for_file(r);if(!c)return;let d=await Se(async()=>Mt(t,c),`Couldn't find template ${c}`);if(d==null)return;await e.write_template_to_file(d,r)}else{let c=1e5;r.stat.size<=c?await e.overwrite_file_commands(r):console.log(`Templater skipped parsing ${r.path} because file size exceeds ${c}`)}}async execute_startup_scripts(){for(let e of this.plugin.settings.startup_templates){if(!e)continue;let t=Ce(()=>Mt(this.plugin.app,e),`Couldn't find startup template "${e}"`);if(!t)continue;let{path:r}=t;this.start_templater_task(r);let i=this.create_running_config(t,t,5);await Se(async()=>this.read_and_parse_template(i),"Startup Template parsing error, aborting."),await this.end_templater_task(r)}}};var ln=X(require("obsidian"));var br=class{constructor(e,t,r){this.plugin=e;this.templater=t;this.settings=r}setup(){this.plugin.app.workspace.onLayoutReady(()=>{if(this.settings.trigger_on_file_creation&&this.plugin.app.vault.getConfig("openBehavior")==="daily"){let t=this.plugin.app.internalPlugins.getEnabledPluginById("daily-notes");if(t){let{folder:r,format:i}=t.options,o=(0,ln.normalizePath)(`${r}/${(0,ln.moment)().format(i)}.md`),a=vt(this.plugin.app);a?.path===o&&cn.on_file_creation(this.templater,this.plugin.app,a)}}this.update_trigger_file_on_creation()}),this.update_syntax_highlighting(),this.update_file_menu()}update_syntax_highlighting(){let e=this.plugin.editor_handler.desktopShouldHighlight(),t=this.plugin.editor_handler.mobileShouldHighlight();e||t?this.plugin.editor_handler.enable_highlighter():this.plugin.editor_handler.disable_highlighter()}update_trigger_file_on_creation(){this.settings.trigger_on_file_creation?(this.trigger_on_file_creation_event=this.plugin.app.vault.on("create",e=>cn.on_file_creation(this.templater,this.plugin.app,e)),this.plugin.registerEvent(this.trigger_on_file_creation_event)):this.trigger_on_file_creation_event&&(this.plugin.app.vault.offref(this.trigger_on_file_creation_event),this.trigger_on_file_creation_event=void 0)}update_file_menu(){this.plugin.registerEvent(this.plugin.app.workspace.on("file-menu",(e,t)=>{t instanceof ln.TFolder&&e.addItem(r=>{r.setTitle("Create new note from template").setIcon("templater-icon").onClick(()=>{this.plugin.fuzzy_suggester.create_new_note_from_template(t)})})}))}};var Er=X(require("obsidian"));var Si=class{constructor(e){this.plugin=e}setup(){this.plugin.addCommand({id:"insert-templater",name:"Open insert template modal",icon:"templater-icon",hotkeys:Er.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"e"}],callback:()=>{this.plugin.fuzzy_suggester.insert_template()}}),this.plugin.addCommand({id:"replace-in-file-templater",name:"Replace templates in the active file",icon:"templater-icon",hotkeys:Er.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"r"}],callback:()=>{this.plugin.templater.overwrite_active_file_commands()}}),this.plugin.addCommand({id:"jump-to-next-cursor-location",name:"Jump to next cursor location",icon:"text-cursor",hotkeys:[{modifiers:["Alt"],key:"Tab"}],callback:()=>{this.plugin.editor_handler.jump_to_next_cursor_location()}}),this.plugin.addCommand({id:"create-new-note-from-template",name:"Create new note from template",icon:"templater-icon",hotkeys:Er.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"n"}],callback:()=>{this.plugin.fuzzy_suggester.create_new_note_from_template()}}),this.register_templates_hotkeys()}register_templates_hotkeys(){this.plugin.settings.enabled_templates_hotkeys.forEach(e=>{e&&this.add_template_hotkey(null,e)})}add_template_hotkey(e,t){if(this.remove_template_hotkey(e),t){let r=this.plugin.settings.templates_folder?this.plugin.settings.templates_folder.length+1:0,i=t.slice(r,-3);this.plugin.addCommand({id:t,name:`Insert ${i}`,icon:"templater-icon",callback:()=>{let o=Ce(()=>Mt(this.plugin.app,t),"Couldn't find the template file associated with this hotkey");!o||this.plugin.templater.append_template_to_active_file(o)}}),this.plugin.addCommand({id:`create-${t}`,name:`Create ${i}`,icon:"templater-icon",callback:()=>{let o=Ce(()=>Mt(this.plugin.app,t),"Couldn't find the template file associated with this hotkey");!o||this.plugin.templater.create_new_note_from_template(o)}})}}remove_template_hotkey(e){e&&(this.plugin.removeCommand(`${e}`),this.plugin.removeCommand(`create-${e}`))}};var Oi=X(require("obsidian"));var Ci=X(require("obsidian"));var Di=class{constructor(e){this.app=e}async jump_to_next_cursor_location(){let e=this.app.workspace.activeEditor;if(!e?.editor)return;let t=e.editor.getValue(),{cursor_matches:r,positions:i}=this.get_cursor_matches_and_positions(t);if(!i||!r)return;let o=e instanceof Ci.MarkdownView?e.currentMode.getFoldInfo():null,a=[];for(let l=r.length-1;l>=0;l--){let c=r[l],d=this.get_editor_position_from_index(t,c.index),m=this.get_editor_position_from_index(t,c.index+c[0].length);a.push({from:d,to:m,text:""})}e.editor.transaction({changes:a,selections:i.map(l=>({from:l}))}),o&&Array.isArray(o.folds)&&(i.forEach(l=>{o.folds=o.folds.filter(c=>c.from>l.line||c.to[0-9]*)\)\s*%>/g,r=Array.from(e.matchAll(t));if(r.length===0)return{};r.sort((d,m)=>Number(d.groups?.order||0)-Number(m.groups?.order||0));let i=r[0][0],o=r.filter(d=>d[0]===i),a=o[0][1]===""?[o[0]]:o,l=[],c=0;for(let d of a){let m=d.index-c;l.push(this.get_editor_position_from_index(e,m)),e=e.slice(0,m)+e.slice(m+d[0].length),c+=d[0].length}return{cursor_matches:a,positions:l}}};var ea=X(require("obsidian"));var ec={app:{name:"app",description:"This module exposes the app instance. Prefer to use this over the global app instance."},user:{name:"user",description:"This module exposes custom made scripts, written by yourself within the script file folder location"},config:{name:"config",description:`This module exposes Templater's running configuration. +`),w+=b+d,c=w,w});this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:t,content:c}),await this.plugin.editor_handler.jump_to_next_cursor_location(t,!0),await this.end_templater_task(r)}overwrite_active_file_commands(){let e=this.plugin.app.workspace.activeEditor;if(!e||!e.file){oe(new D("Active editor is null, can't overwrite content"));return}this.overwrite_file_commands(e.file,!0)}async overwrite_file_commands(e,t=!1){let{path:r}=e;this.start_templater_task(r);let i=this.create_running_config(e,e,t?3:2),o=await Se(async()=>this.read_and_parse_template(i),"Template parsing error, aborting.");if(o==null){await this.end_templater_task(r);return}await this.plugin.app.vault.modify(e,o),this.plugin.app.workspace.trigger("templater:overwrite-file",{file:e,content:o}),await this.plugin.editor_handler.jump_to_next_cursor_location(e,!0),await this.end_templater_task(r)}async process_dynamic_templates(e,t){let r=lo(),i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT),o,a=!1,l;for(;o=i.nextNode();){let c=o.nodeValue;if(c!==null){let d=r.exec(c);if(d!==null){let m=this.plugin.app.metadataCache.getFirstLinkpathDest("",t.sourcePath);if(!m||!(m instanceof de.TFile))return;if(!a){a=!0;let _=this.create_running_config(m,m,4);l=await this.functions_generator.generate_object(_,Xe.USER_INTERNAL),this.current_functions_object=l}}for(;d!=null;){let m=d[1]+d[2],_=await Se(async()=>await this.parser.parse_commands(m,l),`Command Parsing error in dynamic command '${m}'`);if(_==null)return;let w=r.lastIndex-d[0].length,b=r.lastIndex;c=c.substring(0,w)+_+c.substring(b),r.lastIndex+=_.length-d[0].length,d=r.exec(c)}o.nodeValue=c}}}get_new_file_template_for_folder(e){do{let t=this.plugin.settings.folder_templates.find(r=>r.folder==e.path);if(t&&t.template)return t.template;e=e.parent}while(e)}get_new_file_template_for_file(e){let t=this.plugin.settings.file_templates.find(r=>new RegExp(r.regex).test(e.path));if(t&&t.template)return t.template}static async on_file_creation(e,t,r){if(!(r instanceof de.TFile)||r.extension!=="md")return;let i=(0,de.normalizePath)(e.plugin.settings.templates_folder);if(r.path.includes(i)&&i!=="/"||(await vt(300),e.files_with_pending_templates.has(r.path)))return;let o=await t.vault.read(r),a=(0,de.getFrontMatterInfo)(o),l=o.length-a.contentStart;if(l==0&&e.plugin.settings.enable_folder_templates){let c=e.get_new_file_template_for_folder(r.parent);if(!c)return;let d=await Se(async()=>pt(t,c),`Couldn't find template ${c}`);if(d==null)return;await e.write_template_to_file(d,r)}else if(l==0&&e.plugin.settings.enable_file_templates){let c=e.get_new_file_template_for_file(r);if(!c)return;let d=await Se(async()=>pt(t,c),`Couldn't find template ${c}`);if(d==null)return;await e.write_template_to_file(d,r)}else{let c=1e5;r.stat.size<=c?await e.overwrite_file_commands(r):console.log(`Templater skipped parsing ${r.path} because file size exceeds ${c}`)}}async execute_startup_scripts(){for(let e of this.plugin.settings.startup_templates){if(!e)continue;let t=Ce(()=>pt(this.plugin.app,e),`Couldn't find startup template "${e}"`);if(!t)continue;let{path:r}=t;this.start_templater_task(r);let i=this.create_running_config(t,t,5);await Se(async()=>this.read_and_parse_template(i),"Startup Template parsing error, aborting."),await this.end_templater_task(r)}}};var pn=X(require("obsidian"));var Tr=class{constructor(e,t,r){this.plugin=e;this.templater=t;this.settings=r}setup(){this.plugin.app.workspace.onLayoutReady(()=>{if(this.settings.trigger_on_file_creation&&this.plugin.app.vault.getConfig("openBehavior")==="daily"){let t=this.plugin.app.internalPlugins.getEnabledPluginById("daily-notes");if(t){let{folder:r,format:i}=t.options,o=(0,pn.normalizePath)(`${r}/${(0,pn.moment)().format(i)}.md`),a=wt(this.plugin.app);a?.path===o&&ln.on_file_creation(this.templater,this.plugin.app,a)}}this.update_trigger_file_on_creation()}),this.update_syntax_highlighting(),this.update_file_menu()}update_syntax_highlighting(){let e=this.plugin.editor_handler.desktopShouldHighlight(),t=this.plugin.editor_handler.mobileShouldHighlight();e||t?this.plugin.editor_handler.enable_highlighter():this.plugin.editor_handler.disable_highlighter()}update_trigger_file_on_creation(){this.settings.trigger_on_file_creation?(this.trigger_on_file_creation_event=this.plugin.app.vault.on("create",e=>ln.on_file_creation(this.templater,this.plugin.app,e)),this.plugin.registerEvent(this.trigger_on_file_creation_event)):this.trigger_on_file_creation_event&&(this.plugin.app.vault.offref(this.trigger_on_file_creation_event),this.trigger_on_file_creation_event=void 0)}update_file_menu(){this.plugin.registerEvent(this.plugin.app.workspace.on("file-menu",(e,t)=>{t instanceof pn.TFolder&&e.addItem(r=>{r.setTitle("Create new note from template").setIcon("templater-icon").onClick(()=>{this.plugin.fuzzy_suggester.create_new_note_from_template(t)})})}))}};var Yt=X(require("obsidian"));var Pi=class{constructor(e){this.plugin=e}setup(){this.plugin.addCommand({id:"insert-templater",name:"Open insert template modal",icon:"templater-icon",hotkeys:Yt.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"e"}],callback:()=>{this.plugin.fuzzy_suggester.insert_template()}}),this.plugin.addCommand({id:"replace-in-file-templater",name:"Replace templates in the active file",icon:"templater-icon",hotkeys:Yt.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"r"}],callback:()=>{this.plugin.templater.overwrite_active_file_commands()}}),this.plugin.addCommand({id:"jump-to-next-cursor-location",name:"Jump to next cursor location",icon:"text-cursor",hotkeys:[{modifiers:["Alt"],key:"Tab"}],callback:()=>{this.plugin.editor_handler.jump_to_next_cursor_location()}}),this.plugin.addCommand({id:"create-new-note-from-template",name:"Create new note from template",icon:"templater-icon",hotkeys:Yt.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"n"}],callback:()=>{this.plugin.fuzzy_suggester.create_new_note_from_template()}}),this.register_templates_hotkeys(),this.register_cli_handler()}register_templates_hotkeys(){this.plugin.settings.enabled_templates_hotkeys.forEach(e=>{e&&this.add_template_hotkey(null,e)})}add_template_hotkey(e,t){if(this.remove_template_hotkey(e),t){let r=this.plugin.settings.templates_folder?this.plugin.settings.templates_folder.length+1:0,i=t.slice(r,-3);this.plugin.addCommand({id:t,name:`Insert ${i}`,icon:"templater-icon",callback:()=>{let o=Ce(()=>pt(this.plugin.app,t),"Couldn't find the template file associated with this hotkey");!o||this.plugin.templater.append_template_to_active_file(o)}}),this.plugin.addCommand({id:`create-${t}`,name:`Create ${i}`,icon:"templater-icon",callback:()=>{let o=Ce(()=>pt(this.plugin.app,t),"Couldn't find the template file associated with this hotkey");!o||this.plugin.templater.create_new_note_from_template(o)}})}}remove_template_hotkey(e){e&&(this.plugin.removeCommand(`${e}`),this.plugin.removeCommand(`create-${e}`))}register_cli_handler(){this.plugin.registerCliHandler("templater:create-from-template","Create a new note from a Templater template",{template:{value:"",description:"Template file path (relative to vault root or templates folder)",required:!0},file:{value:"",description:"Output file path (relative to vault root)",required:!0},open:{description:"Open the created file in the UI",required:!1}},async e=>this.handle_create_from_template(e))}resolve_template_file(e){let t=e;t.endsWith(".md")||(t=`${t}.md`);try{return pt(this.plugin.app,t)}catch{let r=this.plugin.settings.templates_folder;if(r){let i=(0,Yt.normalizePath)(`${r}/${t}`);return pt(this.plugin.app,i)}throw new Error(`Template "${e}" not found`)}}async handle_create_from_template(e){let{template:t,file:r,open:i}=e;if(!t)return"Error: template parameter is required";if(!r)return"Error: file parameter is required";try{let o=this.resolve_template_file(t),a=(0,Yt.normalizePath)(r),l=fr(a),c=a.slice(l.length+1).replace(/\.md$/,""),d;if(l)try{d=Wr(this.plugin.app,l)}catch{}let m=i==="true",_=await this.plugin.templater.create_new_note_from_template(o,d??l,c,m);return _?_.path:"Error: Failed to create note from template"}catch(o){return`Error: ${o instanceof Error?o.message:String(o)}`}}};var Ii=X(require("obsidian"));var Di=X(require("obsidian"));var Ni=class{constructor(e){this.app=e}async jump_to_next_cursor_location(){let e=this.app.workspace.activeEditor;if(!e?.editor)return;let t=e.editor.getValue(),{cursor_matches:r,positions:i}=this.get_cursor_matches_and_positions(t);if(!i||!r)return;let o=e instanceof Di.MarkdownView?e.currentMode.getFoldInfo():null,a=[];for(let l=r.length-1;l>=0;l--){let c=r[l],d=this.get_editor_position_from_index(t,c.index),m=this.get_editor_position_from_index(t,c.index+c[0].length);a.push({from:d,to:m,text:""})}e.editor.transaction({changes:a,selections:i.map(l=>({from:l}))}),o&&Array.isArray(o.folds)&&(i.forEach(l=>{o.folds=o.folds.filter(c=>c.from>l.line||c.to[0-9]*)\)\s*%>/g,r=Array.from(e.matchAll(t));if(r.length===0)return{};r.sort((d,m)=>Number(d.groups?.order||0)-Number(m.groups?.order||0));let i=r[0][0],o=r.filter(d=>d[0]===i),a=o[0][1]===""?[o[0]]:o,l=[],c=0;for(let d of a){let m=d.index-c;l.push(this.get_editor_position_from_index(e,m)),e=e.slice(0,m)+e.slice(m+d[0].length),c+=d[0].length}return{cursor_matches:a,positions:l}}};var ta=X(require("obsidian"));var ec={app:{name:"app",description:"This module exposes the app instance. Prefer to use this over the global app instance."},user:{name:"user",description:"This module exposes custom made scripts, written by yourself within the script file folder location"},config:{name:"config",description:`This module exposes Templater's running configuration. This is mostly useful when writing scripts requiring some context information. -`,functions:{template_file:{name:"template_file",description:"The `TFile` object representing the template file.",definition:"tp.config.template_file"},target_file:{name:"target_file",description:"The `TFile` object representing the target file where the template will be inserted.",definition:"tp.config.target_file"},run_mode:{name:"run_mode",description:"The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...).",definition:"tp.config.run_mode"},active_file:{name:"active_file",description:"The active file (if existing) when launching Templater.",definition:"tp.config.active_file?"}}},date:{name:"date",description:"This module contains every internal function related to dates.",functions:{now:{name:"now",description:"Retrieves the date.",definition:'tp.date.now(format: string = "YYYY-MM-DD", offset?: number\u23AEstring, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"offset",description:"Duration to offset the date from. If a number is provided, duration will be added to the date in days. You can also specify the offset as a string using the ISO 8601 format."},{name:"reference",description:"The date referential, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"Date now",example:"<% tp.date.now() %>"},{name:"Date now with format",example:'<% tp.date.now("Do MMMM YYYY") %>'},{name:"Last week",example:'<% tp.date.now("YYYY-MM-DD", -7) %>'},{name:"Next week",example:'<% tp.date.now("YYYY-MM-DD", 7) %>'},{name:"Last month",example:'<% tp.date.now("YYYY-MM-DD", "P-1M") %>'},{name:"Next year",example:'<% tp.date.now("YYYY-MM-DD", "P1Y") %>'},{name:"File's title date + 1 day (tomorrow)",example:'<% tp.date.now("YYYY-MM-DD", 1, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title date - 1 day (yesterday)",example:'<% tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD") %>'}]},tomorrow:{name:"tomorrow",description:"Retrieves tomorrow's date.",definition:'tp.date.tomorrow(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date tomorrow",example:"<% tp.date.tomorrow() %>"},{name:"Date tomorrow with format",example:'<% tp.date.tomorrow("Do MMMM YYYY") %>'}]},yesterday:{name:"yesterday",description:"Retrieves yesterday's date.",definition:'tp.date.yesterday(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date yesterday",example:"<% tp.date.yesterday() %>"},{name:"Date yesterday with format",example:'<% tp.date.yesterday("Do MMMM YYYY") %>'}]},weekday:{name:"weekday",description:"",definition:'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"weekday",description:"Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day."},{name:"reference",description:"The date referential, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"This week's Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0) %>'},{name:"Next Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 7) %>'},{name:"File's title Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title previous Monday",example:'<% tp.date.weekday("YYYY-MM-DD", -7, tp.file.title, "YYYY-MM-DD") %>'}]}},momentjs:{examples:[{name:"Date now",example:'<% moment(tp.file.title, "YYYY-MM-DD").format("YYYY-MM-DD") %>'},{name:"Get start of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").startOf("month").format("YYYY-MM-DD") %>'},{name:"Get end of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").endOf("month").format("YYYY-MM-DD") %>'}]}},file:{name:"file",description:"This module contains every internal function related to files.",functions:{content:{name:"content",description:"The string contents of the file at the time that Templater was executed. Manipulating this string will *not* update the current file.",definition:"tp.file.content",examples:[{name:"Retrieve file content",example:"<% tp.file.content %>"}]},create_new:{name:"create_new",description:"Creates a new file using a specified template or with a specified content.",definition:"tp.file.create_new(template: TFile \u23AE string, filename?: string, open_new: boolean = false, folder?: TFolder | string)",args:[{name:"template",description:"Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`."},{name:"filename",description:'The filename of the new file, defaults to "Untitled".'},{name:"open_new",description:"Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file."},{name:"folder",description:'The folder to put the new file in, defaults to Obsidian\'s default location. If you want the file to appear in a different folder, specify it with `"PATH/TO/FOLDERNAME"` or `tp.app.vault.getAbstractFileByPath("PATH/TO/FOLDERNAME")`.'}],examples:[{name:"File creation",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename") %>'},{name:"File creation with template",example:'<%* await tp.file.create_new(tp.file.find_tfile("MyTemplate"), "MyFilename") %>'},{name:"File creation and open created note",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", true) %>'},{name:"File creation in current folder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.file.folder(true)) %>'},{name:"File creation in specified folder with string path",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, "Path/To/MyFolder") %>'},{name:"File creation in specified folder with TFolder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.app.vault.getAbstractFileByPath("MyFolder")) %>'},{name:"File creation and append link to current note",example:'[[<% (await tp.file.create_new("MyFileContent", "MyFilename")).basename %>]]'}]},creation_date:{name:"creation_date",description:"Retrieves the file's creation date.",definition:'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File creation date",example:"<% tp.file.creation_date() %>"},{name:"File creation date with format",example:'<% tp.file.creation_date("dddd Do MMMM YYYY HH:mm") %>'}]},cursor:{name:"cursor",description:`Sets the cursor to this location after the template has been inserted. +`,functions:{template_file:{name:"template_file",description:"The `TFile` object representing the template file.",definition:"tp.config.template_file"},target_file:{name:"target_file",description:"The `TFile` object representing the target file where the template will be inserted.",definition:"tp.config.target_file"},run_mode:{name:"run_mode",description:"The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...).",definition:"tp.config.run_mode"},active_file:{name:"active_file",description:"The active file (if existing) when launching Templater.",definition:"tp.config.active_file?"}}},date:{name:"date",description:"This module contains every internal function related to dates.",functions:{now:{name:"now",description:"Retrieves the date.",definition:'tp.date.now(format: string = "YYYY-MM-DD", offset?: number | string, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"offset",description:"Duration to offset the date from. If a number is provided, duration will be added to the date in days. You can also specify the offset as a string using the ISO 8601 format."},{name:"reference",description:"The date to use instead of today's date, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"Date now",example:"<% tp.date.now() %>"},{name:"Date now with format",example:'<% tp.date.now("Do MMMM YYYY") %>'},{name:"Last week",example:'<% tp.date.now("YYYY-MM-DD", -7) %>'},{name:"Next week",example:'<% tp.date.now("YYYY-MM-DD", 7) %>'},{name:"Last month",example:'<% tp.date.now("YYYY-MM-DD", "P-1M") %>'},{name:"Next year",example:'<% tp.date.now("YYYY-MM-DD", "P1Y") %>'},{name:"File's title date + 1 day (tomorrow)",example:'<% tp.date.now("YYYY-MM-DD", 1, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title date - 1 day (yesterday)",example:'<% tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD") %>'}]},tomorrow:{name:"tomorrow",description:"Retrieves tomorrow's date.",definition:'tp.date.tomorrow(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date tomorrow",example:"<% tp.date.tomorrow() %>"},{name:"Date tomorrow with format",example:'<% tp.date.tomorrow("Do MMMM YYYY") %>'}]},yesterday:{name:"yesterday",description:"Retrieves yesterday's date.",definition:'tp.date.yesterday(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date yesterday",example:"<% tp.date.yesterday() %>"},{name:"Date yesterday with format",example:'<% tp.date.yesterday("Do MMMM YYYY") %>'}]},weekday:{name:"weekday",description:"",definition:'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"weekday",description:"Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day."},{name:"reference",description:"The reference date to use instead of today, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"This week's Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0) %>'},{name:"Next Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 7) %>'},{name:"File's title Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title previous Monday",example:'<% tp.date.weekday("YYYY-MM-DD", -7, tp.file.title, "YYYY-MM-DD") %>'}]}},momentjs:{examples:[{name:"Date now",example:'<% moment(tp.file.title, "YYYY-MM-DD").format("YYYY-MM-DD") %>'},{name:"Get start of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").startOf("month").format("YYYY-MM-DD") %>'},{name:"Get end of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").endOf("month").format("YYYY-MM-DD") %>'}]}},file:{name:"file",description:"This module contains every internal function related to files.",functions:{content:{name:"content",description:"The string contents of the file at the time that Templater was executed. Manipulating this string will *not* update the current file.",definition:"tp.file.content",examples:[{name:"Retrieve file content",example:"<% tp.file.content %>"}]},create_new:{name:"create_new",description:"Creates a new file using a specified template or with a specified content.",definition:"tp.file.create_new(template: TFile | string, filename: string = 'Untitled', open_new: boolean = false, folder?: TFolder | string)",args:[{name:"template",description:"Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`."},{name:"filename",description:'The filename of the new file, defaults to "Untitled".'},{name:"open_new",description:"Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file."},{name:"folder",description:'The folder to put the new file in, defaults to Obsidian\'s default location. If you want the file to appear in a different folder, specify it with `"PATH/TO/FOLDERNAME"` or `tp.app.vault.getAbstractFileByPath("PATH/TO/FOLDERNAME")`.'}],examples:[{name:"File creation",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename") %>'},{name:"File creation with template",example:'<%* await tp.file.create_new(tp.file.find_tfile("MyTemplate"), "MyFilename") %>'},{name:"File creation and open created note",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", true) %>'},{name:"File creation in current folder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.file.folder(true)) %>'},{name:"File creation in specified folder with string path",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, "Path/To/MyFolder") %>'},{name:"File creation in specified folder with TFolder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.app.vault.getAbstractFileByPath("MyFolder")) %>'},{name:"File creation and append link to current note",example:'[[<% (await tp.file.create_new("MyFileContent", "MyFilename")).basename %>]]'}]},creation_date:{name:"creation_date",description:"Retrieves the current file's creation date.",definition:'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File creation date",example:"<% tp.file.creation_date() %>"},{name:"File creation date with format",example:'<% tp.file.creation_date("dddd Do MMMM YYYY HH:mm") %>'}]},cursor:{name:"cursor",description:`Sets the cursor to this location after the template has been inserted. You can navigate between the different cursors using the configured hotkey in Obsidian settings. `,definition:"tp.file.cursor(order?: number)",args:[{name:"order",description:`The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on. If you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor. -`}],examples:[{name:"File cursor",example:"<% tp.file.cursor() %>"},{name:"File multi-cursor",example:"<% tp.file.cursor(1) %>Content<% tp.file.cursor(1) %>"}]},cursor_append:{name:"cursor_append",description:"Appends some content after the active cursor in the file.",definition:"tp.file.cursor_append(content: string)",args:[{name:"content",description:"The content to append after the active cursor."}],examples:[{name:"File cursor append",example:'<% tp.file.cursor_append("Some text") %>'}]},exists:{name:"exists",description:"Check to see if a file exists by it's file path. The full path to the file, relative to the Vault and containing the extension, must be provided.",definition:"tp.file.exists(filepath: string)",args:[{name:"filepath",description:"The full file path of the file we want to check existence for."}],examples:[{name:"File existence",example:'<% await tp.file.exists("MyFolder/MyFile.md") %>'},{name:"File existence of current file",example:'<% await tp.file.exists(tp.file.folder(true) + "/" + tp.file.title + ".md") %>'}]},find_tfile:{name:"find_tfile",description:"Search for a file and returns its `TFile` instance.",definition:"tp.file.find_tfile(filename: string)",args:[{name:"filename",description:"The filename we want to search and resolve as a `TFile`."}],examples:[{name:"File find TFile",example:'<% tp.file.find_tfile("MyFile").basename %>'}]},folder:{name:"folder",description:"Retrieves the file's folder name.",definition:"tp.file.folder(absolute: boolean = false)",args:[{name:"absolute",description:"If set to `true`, returns the vault-absolute path of the folder. If `false`, only returns the basename of the folder (the last part). Defaults to `false`."}],examples:[{name:"File folder (Folder)",example:"<% tp.file.folder() %>"},{name:"File folder with vault-absolute path (Path/To/Folder)",example:"<% tp.file.folder(true) %>"}]},include:{name:"include",description:"Includes the file's link content. Templates in the included content will be resolved.",definition:"tp.file.include(include_link: string \u23AE TFile)",args:[{name:"include_link",description:'The link to the file to include, e.g. `"[[MyFile]]"`, or a TFile object. Also supports sections or blocks inclusions.'}],examples:[{name:"File include",example:'<% await tp.file.include("[[Template1]]") %>'},{name:"File include TFile",example:'<% await tp.file.include(tp.file.find_tfile("MyFile")) %>'},{name:"File include section",example:'<% await tp.file.include("[[MyFile#Section1]]") %>'},{name:"File include block",example:'<% await tp.file.include("[[MyFile#^block1]]") %>'}]},last_modified_date:{name:"last_modified_date",description:"Retrieves the file's last modification date.",definition:'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File last modified date",example:"<% tp.file.last_modified_date() %>"},{name:"File last modified date with format",example:'<% tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm") %>'}]},move:{name:"move",description:"Moves the file to the desired vault location.",definition:"tp.file.move(new_path: string, file_to_move?: TFile)",args:[{name:"new_path",description:'The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. `"/Notes/MyNote"`.'},{name:"file_to_move",description:"The file to move, defaults to the current file."}],examples:[{name:"File move",example:'<%* await tp.file.move("/A/B/" + tp.file.title) %>'},{name:"File move and rename",example:'<%* await tp.file.move("/A/B/NewTitle") %>'}]},path:{name:"path",description:"Retrieves the file's absolute path on the system.",definition:"tp.file.path(relative: boolean = false)",args:[{name:"relative",description:"If set to `true`, only retrieves the vault's relative path."}],examples:[{name:"File path",example:"<% tp.file.path() %>"},{name:"File relative path (relative to vault root)",example:"<% tp.file.path(true) %>"}]},rename:{name:"rename",description:"Renames the file (keeps the same file extension).",definition:"tp.file.rename(new_title: string)",args:[{name:"new_title",description:"The new file title."}],examples:[{name:"File rename",example:'<%* await tp.file.rename("MyNewName") %>'},{name:"File append a 2 to the file name",example:'<%* await tp.file.rename(tp.file.title + "2") %>'}]},selection:{name:"selection",description:"Retrieves the active file's text selection.",definition:"tp.file.selection()",examples:[{name:"File selection",example:"<% tp.file.selection() %>"}]},tags:{name:"tags",description:"Retrieves the file's tags (array of string).",definition:"tp.file.tags",examples:[{name:"File tags",example:"<% tp.file.tags %>"}]},title:{name:"title",definition:"tp.file.title",description:"Retrieves the file's title.",examples:[{name:"File title",example:"<% tp.file.title %>"},{name:"Strip the Zettelkasten ID of title (if space separated)",example:'<% tp.file.title.split(" ")[1] %>'}]}}},frontmatter:{name:"frontmatter",description:"This modules exposes all the frontmatter variables of a file as variables."},hooks:{name:"hooks",description:"This module exposes hooks that allow you to execute code when a Templater event occurs.",functions:{on_all_templates_executed:{name:"on_all_templates_executed",description:"Hooks into when all actively running templates have finished executing. Most of the time this will be a single template, unless you are using `tp.file.include` or `tp.file.create_new`.\n\nMultiple invokations of this method will have their callback functions run in parallel.",definition:"tp.hooks.on_all_templates_executed(callback_function: () => any)",args:[{name:"callback_function",description:"Callback function that will be executed when all actively running templates have finished executing."}]}}},obsidian:{name:"obsidian",description:"This module exposes all the functions and classes from the Obsidian API."},system:{name:"system",description:"This module contains system related functions.",functions:{clipboard:{name:"clipboard",description:"Retrieves the clipboard's content.",definition:"tp.system.clipboard()",examples:[{name:"Clipboard",example:"<% tp.system.clipboard() %>"}]},prompt:{name:"prompt",description:"Spawns a prompt modal and returns the user's input.",definition:"tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false)",args:[{name:"prompt_text",description:"Text placed above the input field."},{name:"default_value",description:"A default value for the input field."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"multiline",description:"If set to `true`, the input field will be a multiline textarea. Defaults to `false`."}],examples:[{name:"Prompt",example:'<% await tp.system.prompt("Please enter a value") %>'},{name:"Prompt with default value",example:'<% await tp.system.prompt("What is your mood today?", "happy") %>'},{name:"Multiline prompt",example:'<% await tp.system.prompt("What is your mood today?", null, false, true) %>'},{name:"Reuse output from prompt",example:`<%* +`}],examples:[{name:"File cursor",example:"<% tp.file.cursor() %>"},{name:"File multi-cursor",example:"<% tp.file.cursor(1) %>Content<% tp.file.cursor(1) %>"}]},cursor_append:{name:"cursor_append",description:"Appends some content after the active cursor in the file.",definition:"tp.file.cursor_append(content: string)",args:[{name:"content",description:"The content to append after the active cursor."}],examples:[{name:"File cursor append",example:'<% tp.file.cursor_append("Some text") %>'}]},exists:{name:"exists",description:"Check to see if a file exists by it's file path. The full path to the file, relative to the Vault and containing the extension, must be provided.",definition:"tp.file.exists(filepath: string)",args:[{name:"filepath",description:"The full file path of the file we want to check existence for."}],examples:[{name:"File existence",example:'<% await tp.file.exists("MyFolder/MyFile.md") %>'},{name:"File existence of current file",example:'<% await tp.file.exists(tp.file.folder(true) + "/" + tp.file.title + ".md") %>'}]},find_tfile:{name:"find_tfile",description:"Search for a file and returns its `TFile` instance.",definition:"tp.file.find_tfile(filename: string)",args:[{name:"filename",description:"The filename we want to search and resolve as a `TFile`."}],examples:[{name:"File find TFile",example:'<% tp.file.find_tfile("MyFile").basename %>'}]},folder:{name:"folder",description:"Retrieves the file's folder name.",definition:"tp.file.folder(absolute: boolean = false)",args:[{name:"absolute",description:"If set to `true`, returns the vault-absolute path of the folder. If `false`, only returns the basename of the folder (the last part). Defaults to `false`."}],examples:[{name:"File folder (Folder)",example:"<% tp.file.folder() %>"},{name:"File folder with vault-absolute path (Path/To/Folder)",example:"<% tp.file.folder(true) %>"}]},include:{name:"include",description:"Includes the file's link content. Templates in the included content will be resolved.",definition:"tp.file.include(include_link: string | TFile)",args:[{name:"include_link",description:'The link to the file to include, e.g. `"[[MyFile]]"`, or a TFile object. Also supports sections or blocks inclusions.'}],examples:[{name:"File include",example:'<% await tp.file.include("[[Template1]]") %>'},{name:"File include TFile",example:'<% await tp.file.include(tp.file.find_tfile("MyFile")) %>'},{name:"File include section",example:'<% await tp.file.include("[[MyFile#Section1]]") %>'},{name:"File include block",example:'<% await tp.file.include("[[MyFile#^block1]]") %>'}]},last_modified_date:{name:"last_modified_date",description:"Retrieves the file's last modification date.",definition:'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File last modified date",example:"<% tp.file.last_modified_date() %>"},{name:"File last modified date with format",example:'<% tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm") %>'}]},move:{name:"move",description:"Moves the file to the desired vault location.",definition:"tp.file.move(new_path: string, file_to_move?: TFile)",args:[{name:"new_path",description:'The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. `"/Notes/MyNote"`.'},{name:"file_to_move",description:"The file to move, defaults to the current file."}],examples:[{name:"File move",example:'<%* await tp.file.move("/A/B/" + tp.file.title) %>'},{name:"File move and rename",example:'<%* await tp.file.move("/A/B/NewTitle") %>'}]},path:{name:"path",description:"Retrieves the file's absolute path on the system.",definition:"tp.file.path(relative: boolean = false)",args:[{name:"relative",description:"If set to `true`, only retrieves the vault's relative path."}],examples:[{name:"File path",example:"<% tp.file.path() %>"},{name:"File relative path (relative to vault root)",example:"<% tp.file.path(true) %>"}]},rename:{name:"rename",description:"Renames the file (keeps the same file extension).",definition:"tp.file.rename(new_title: string)",args:[{name:"new_title",description:"The new file title."}],examples:[{name:"File rename",example:'<%* await tp.file.rename("MyNewName") %>'},{name:"File append a 2 to the file name",example:'<%* await tp.file.rename(tp.file.title + "2") %>'}]},selection:{name:"selection",description:"Retrieves the active file's text selection.",definition:"tp.file.selection()",examples:[{name:"File selection",example:"<% tp.file.selection() %>"}]},tags:{name:"tags",description:"Retrieves the file's tags (array of string).",definition:"tp.file.tags",examples:[{name:"File tags",example:"<% tp.file.tags %>"}]},title:{name:"title",definition:"tp.file.title",description:"Retrieves the file's title.",examples:[{name:"File title",example:"<% tp.file.title %>"},{name:"Strip the Zettelkasten ID of title (if space separated)",example:'<% tp.file.title.split(" ")[1] %>'}]}}},frontmatter:{name:"frontmatter",description:"This modules exposes all the frontmatter variables of a file as variables."},hooks:{name:"hooks",description:"This module exposes hooks that allow you to execute code when a Templater event occurs.",functions:{on_all_templates_executed:{name:"on_all_templates_executed",description:"Hooks into when all actively running templates have finished executing. Most of the time this will be a single template, unless you are using `tp.file.include` or `tp.file.create_new`.\n\nMultiple invokations of this method will have their callback functions run in parallel.",definition:"tp.hooks.on_all_templates_executed(callback_function: () => any)",args:[{name:"callback_function",description:"Callback function that will be executed when all actively running templates have finished executing."}]}}},obsidian:{name:"obsidian",description:"This module exposes all the functions and classes from the Obsidian API."},system:{name:"system",description:"This module contains system related functions.",functions:{clipboard:{name:"clipboard",description:"Retrieves the clipboard's content.",definition:"tp.system.clipboard()",examples:[{name:"Clipboard",example:"<% tp.system.clipboard() %>"}]},prompt:{name:"prompt",description:"Spawns a prompt modal and returns the user's input.",definition:"tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false)",args:[{name:"prompt_text",description:"Text placed above the input field."},{name:"default_value",description:"A default value for the input field."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"multiline",description:"If set to `true`, the input field will be a multiline textarea. Defaults to `false`."}],examples:[{name:"Prompt",example:'<% await tp.system.prompt("Please enter a value") %>'},{name:"Prompt with default value",example:'<% await tp.system.prompt("What is your mood today?", "happy") %>'},{name:"Multiline prompt",example:'<% await tp.system.prompt("What is your mood today?", null, false, true) %>'},{name:"Reuse output from prompt",example:`<%* let value = await tp.system.prompt("Please enter a value"); %> # <% value %> -selected value: <% value %>`}]},suggester:{name:"suggester",description:"Spawns a suggester prompt and returns the user's chosen item.",definition:'tp.system.suggester(text_items: string[] \u23AE ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"placeholder",description:"Placeholder string of the prompt."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."}],examples:[{name:"Suggester",example:'<% await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester with mapping function (same as above example)",example:'<% await tp.system.suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester for files",example:"[[<% (await tp.system.suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).basename %>]]"},{name:"Suggester for tags",example:'<% await tp.system.suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from suggester",example:`<%* +selected value: <% value %>`}]},suggester:{name:"suggester",description:"Spawns a suggester prompt and returns the user's chosen item.",definition:'tp.system.suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"placeholder",description:"Placeholder string of the prompt."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."}],examples:[{name:"Suggester",example:'<% await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester with mapping function (same as above example)",example:'<% await tp.system.suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester for files",example:"[[<% (await tp.system.suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).basename %>]]"},{name:"Suggester for tags",example:'<% await tp.system.suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from suggester",example:`<%* let selectedValue = await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); %> # <% selectedValue %> -selected value: <% selectedValue %>`}]},multi_suggester:{name:"multi_suggester",description:"Spawns a suggester prompt that supports selecting multiple items and returns the user's chosen items.",definition:'tp.system.multi_suggester(text_items: string[] \u23AE ((item: T) => string), items: T[], throw_on_cancel: boolean = false, title: string = "", limit?: number = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"title",description:"Text placed at the top of the modal."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."}],examples:[{name:"Multi-suggester",example:'<% await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester with mapping function (same as above example)",example:'<% await tp.system.multi_suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester for files",example:"<% (await tp.system.multi_suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).map(f => `[[${f.basename}]]`) %>"},{name:"Multi-suggester for tags",example:'<% await tp.system.multi_suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from multi-suggester",example:`<%* +selected value: <% selectedValue %>`}]},multi_suggester:{name:"multi_suggester",description:"Spawns a suggester prompt that supports selecting multiple items and returns the user's chosen items.",definition:'tp.system.multi_suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, title: string = "", limit?: number = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"title",description:"Text placed at the top of the modal."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."}],examples:[{name:"Multi-suggester",example:'<% await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester with mapping function (same as above example)",example:'<% await tp.system.multi_suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester for files",example:"<% (await tp.system.multi_suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).map(f => `[[${f.basename}]]`) %>"},{name:"Multi-suggester for tags",example:'<% await tp.system.multi_suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from multi-suggester",example:`<%* let selectedValues = await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); %> # <% selectedValues %> -selected values: <% selectedValues %>`}]}}},web:{name:"web",description:"This modules contains every internal function related to the web (making web requests).",functions:{daily_quote:{name:"daily_quote",description:"Retrieves and parses the daily quote from `https://github.com/Zachatoo/quotes-database` as a callout.",definition:"tp.web.daily_quote()",examples:[{name:"Daily quote",example:"<% await tp.web.daily_quote() %>"}]},random_picture:{name:"random_picture",description:"Gets a random image from `https://unsplash.com/`.",definition:"tp.web.random_picture(size?: string, query?: string, include_size?: boolean)",args:[{name:"size",description:"Image size in the format `x`."},{name:"query",description:"Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma."},{name:"include_size",description:"Optional argument to include the specified size in the image link markdown. Defaults to false."}],examples:[{name:"Random picture",example:"<% await tp.web.random_picture() %>"},{name:"Random picture with size",example:'<% await tp.web.random_picture("200x200") %>'},{name:"Random picture with size and query",example:'<% await tp.web.random_picture("200x200", "landscape,water") %>'}]},request:{name:"request",description:"Makes a HTTP request to the specified URL. Optionally, you can specify a path to extract specific data from the response.",definition:"tp.web.request(url: string, path?: string)",args:[{name:"url",description:"The URL to which the HTTP request will be made."},{name:"path",description:"A path within the response JSON to extract specific data."}],examples:[{name:"Simple request",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos/1") %>'},{name:"Request with path",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos", "0.title") %>'}]}}}},Xo={tp:ec};var tc=["app","config","date","file","frontmatter","hooks","obsidian","system","user","web"],nc=new Set(tc);function Zo(n){return typeof n=="string"&&nc.has(n)}function Pi(n){return!!(n.definition||n.returns||n.args)}var Ni=class{constructor(e){this.plugin=e;this.documentation=Xo}get_all_modules_documentation(){let e=this.documentation.tp;return(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)&&(e=Object.values(e).filter(t=>t.name!=="user")),Object.values(e).map(t=>(t.queryKey=t.name,t))}async get_all_functions_documentation(e,t){if(e==="app")return this.get_app_functions_documentation(this.plugin.app,t);if(e==="user"){if(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)return;let r=await Se(async()=>{let i=Je(this.plugin.app,this.plugin.settings.user_scripts_folder).filter(a=>a.extension=="js");return await co(this.plugin.app,i)},"User Scripts folder doesn't exist");return!r||r.length===0?void 0:r.reduce((i,o)=>o.extension!=="js"?i:[...i,{name:o.basename,queryKey:o.basename,definition:"",description:o.description,returns:o.returns,args:o.arguments.reduce((l,c)=>(l[c.name]={name:c.name,description:c.description},l),{}),example:""}],[])}if(!!this.documentation.tp[e].functions)return Object.values(this.documentation.tp[e].functions).map(r=>(r.queryKey=r.name,r))}get_app_functions_documentation(e,t){if(!jn(e))return[];let r=t.split(".");if(r.length===0)return[];let i=e;for(let c=0;c[a-z]*)?(?\.(?[a-zA-Z_.]*)?)?$/;this.documentation=new Ni(e),this.intellisense_render_setting=e.settings.intellisense_render}onTrigger(e,t,r){let i=t.getRange({line:e.line,ch:0},{line:e.line,ch:e.ch}),o=this.tp_keyword_regex.exec(i);if(!o)return null;let a,l=o.groups&&o.groups.module||"";if(this.module_name=l,o.groups&&o.groups.fn_trigger){if(l==""||!Zo(l))return null;this.function_trigger=!0,this.function_name=o.groups.fn||"",a=this.function_name}else this.function_trigger=!1,a=this.module_name;let c={start:{line:e.line,ch:e.ch-a.length},end:{line:e.line,ch:e.ch},query:a};return this.latest_trigger_info=c,c}async getSuggestions(e){let t;return this.module_name&&this.function_trigger?t=await this.documentation.get_all_functions_documentation(this.module_name,this.function_name):t=this.documentation.get_all_modules_documentation(),t?t.filter(r=>r.queryKey.toLowerCase().startsWith(e.query.toLowerCase())):[]}renderSuggestion(e,t){if(t.createEl("b",{text:e.name}),Pi(e)){if(e.args&&this.getNumberOfArguments(e.args)>0&&qo(this.intellisense_render_setting)){t.createEl("p",{text:"Parameter list:"});let r=t.createEl("ol");for(let[i,o]of Object.entries(e.args))Gr(r,i,o.description)}e.returns&&Fo(this.intellisense_render_setting)&&Gr(t,"Returns",e.returns)}this.function_trigger&&Pi(e)&&t.createEl("code",{text:e.definition}),e.description&&Lo(this.intellisense_render_setting)&&t.createEl("div",{text:e.description})}selectSuggestion(e,t){let r=this.app.workspace.activeEditor;if(!(!r||!r.editor)&&(r.editor.replaceRange(e.queryKey,this.latest_trigger_info.start,this.latest_trigger_info.end),this.latest_trigger_info.start.ch==this.latest_trigger_info.end.ch)){let i=this.latest_trigger_info.end;i.ch+=e.queryKey.length,r.editor.setCursor(i)}}getNumberOfArguments(e){try{return new Map(Object.entries(e)).size}catch{return 0}}updateAutocompleteIntellisenseSetting(e){this.intellisense_render_setting=e}};(function(n){n(window.CodeMirror)})(function(n){"use strict";n.defineMode("javascript",function(e,t){var r=e.indentUnit,i=t.statementIndent,o=t.jsonld,a=t.json||o,l=t.trackScope!==!1,c=t.typescript,d=t.wordCharacters||/[\w$\xa1-\uffff]/,m=function(){function s(ve){return{type:ve,style:"keyword"}}var p=s("keyword a"),A=s("keyword b"),x=s("keyword c"),I=s("keyword d"),Y=s("operator"),z={type:"atom",style:"atom"};return{if:s("if"),while:p,with:p,else:A,do:A,try:A,finally:A,return:I,break:I,continue:I,new:s("new"),delete:x,void:x,throw:x,debugger:s("debugger"),var:s("var"),const:s("var"),let:s("var"),function:s("function"),catch:s("catch"),for:s("for"),switch:s("switch"),case:s("case"),default:s("default"),in:Y,typeof:Y,instanceof:Y,true:z,false:z,null:z,undefined:z,NaN:z,Infinity:z,this:s("this"),class:s("class"),super:s("atom"),yield:x,export:s("export"),import:s("import"),extends:x,await:x}}(),_=/[+\-*&%=<>!?|~^@]/,w=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function b(s){for(var p=!1,A,x=!1;(A=s.next())!=null;){if(!p){if(A=="/"&&!x)return;A=="["?x=!0:x&&A=="]"&&(x=!1)}p=!p&&A=="\\"}}var S,k;function E(s,p,A){return S=s,k=A,p}function O(s,p){var A=s.next();if(A=='"'||A=="'")return p.tokenize=$(A),p.tokenize(s,p);if(A=="."&&s.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return E("number","number");if(A=="."&&s.match(".."))return E("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(A))return E(A);if(A=="="&&s.eat(">"))return E("=>","operator");if(A=="0"&&s.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return E("number","number");if(/\d/.test(A))return s.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),E("number","number");if(A=="/")return s.eat("*")?(p.tokenize=K,K(s,p)):s.eat("/")?(s.skipToEnd(),E("comment","comment")):Vi(s,p,1)?(b(s),s.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),E("regexp","string-2")):(s.eat("="),E("operator","operator",s.current()));if(A=="`")return p.tokenize=D,D(s,p);if(A=="#"&&s.peek()=="!")return s.skipToEnd(),E("meta","meta");if(A=="#"&&s.eatWhile(d))return E("variable","property");if(A=="<"&&s.match("!--")||A=="-"&&s.match("->")&&!/\S/.test(s.string.slice(0,s.start)))return s.skipToEnd(),E("comment","comment");if(_.test(A))return(A!=">"||!p.lexical||p.lexical.type!=">")&&(s.eat("=")?(A=="!"||A=="=")&&s.eat("="):/[<>*+\-|&?]/.test(A)&&(s.eat(A),A==">"&&s.eat(A))),A=="?"&&s.eat(".")?E("."):E("operator","operator",s.current());if(d.test(A)){s.eatWhile(d);var x=s.current();if(p.lastType!="."){if(m.propertyIsEnumerable(x)){var I=m[x];return E(I.type,I.style,x)}if(x=="async"&&s.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return E("async","keyword",x)}return E("variable","variable",x)}}function $(s){return function(p,A){var x=!1,I;if(o&&p.peek()=="@"&&p.match(w))return A.tokenize=O,E("jsonld-keyword","meta");for(;(I=p.next())!=null&&!(I==s&&!x);)x=!x&&I=="\\";return x||(A.tokenize=O),E("string","string")}}function K(s,p){for(var A=!1,x;x=s.next();){if(x=="/"&&A){p.tokenize=O;break}A=x=="*"}return E("comment","comment")}function D(s,p){for(var A=!1,x;(x=s.next())!=null;){if(!A&&(x=="`"||x=="$"&&s.eat("{"))){p.tokenize=O;break}A=!A&&x=="\\"}return E("quasi","string-2",s.current())}var H="([{}])";function F(s,p){p.fatArrowAt&&(p.fatArrowAt=null);var A=s.string.indexOf("=>",s.start);if(!(A<0)){if(c){var x=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(s.string.slice(s.start,A));x&&(A=x.index)}for(var I=0,Y=!1,z=A-1;z>=0;--z){var ve=s.string.charAt(z),We=H.indexOf(ve);if(We>=0&&We<3){if(!I){++z;break}if(--I==0){ve=="("&&(Y=!0);break}}else if(We>=3&&We<6)++I;else if(d.test(ve))Y=!0;else if(/["'\/`]/.test(ve))for(;;--z){if(z==0)return;var ya=s.string.charAt(z-1);if(ya==ve&&s.string.charAt(z-2)!="\\"){z--;break}}else if(Y&&!I){++z;break}}Y&&!I&&(p.fatArrowAt=z)}}var J={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function te(s,p,A,x,I,Y){this.indented=s,this.column=p,this.type=A,this.prev=I,this.info=Y,x!=null&&(this.align=x)}function ne(s,p){if(!l)return!1;for(var A=s.localVars;A;A=A.next)if(A.name==p)return!0;for(var x=s.context;x;x=x.prev)for(var A=x.vars;A;A=A.next)if(A.name==p)return!0}function Q(s,p,A,x,I){var Y=s.cc;for(h.state=s,h.stream=I,h.marked=null,h.cc=Y,h.style=p,s.lexical.hasOwnProperty("align")||(s.lexical.align=!0);;){var z=Y.length?Y.pop():a?W:ee;if(z(A,x)){for(;Y.length&&Y[Y.length-1].lex;)Y.pop()();return h.marked?h.marked:A=="variable"&&ne(s,x)?"variable-2":p}}}var h={state:null,column:null,marked:null,cc:null};function C(){for(var s=arguments.length-1;s>=0;s--)h.cc.push(arguments[s])}function f(){return C.apply(null,arguments),!0}function Ie(s,p){for(var A=p;A;A=A.next)if(A.name==s)return!0;return!1}function Ee(s){var p=h.state;if(h.marked="def",!!l){if(p.context){if(p.lexical.info=="var"&&p.context&&p.context.block){var A=_e(s,p.context);if(A!=null){p.context=A;return}}else if(!Ie(s,p.localVars)){p.localVars=new ke(s,p.localVars);return}}t.globalVars&&!Ie(s,p.globalVars)&&(p.globalVars=new ke(s,p.globalVars))}}function _e(s,p){if(p)if(p.block){var A=_e(s,p.prev);return A?A==p.prev?p:new Ye(A,p.vars,!0):null}else return Ie(s,p.vars)?p:new Ye(p.prev,new ke(s,p.vars),!1);else return null}function xe(s){return s=="public"||s=="private"||s=="protected"||s=="abstract"||s=="readonly"}function Ye(s,p,A){this.prev=s,this.vars=p,this.block=A}function ke(s,p){this.name=s,this.next=p}var Yt=new ke("this",new ke("arguments",null));function Ue(){h.state.context=new Ye(h.state.context,h.state.localVars,!1),h.state.localVars=Yt}function et(){h.state.context=new Ye(h.state.context,h.state.localVars,!0),h.state.localVars=null}function ye(){h.state.localVars=h.state.context.vars,h.state.context=h.state.context.prev}ye.lex=!0;function B(s,p){var A=function(){var x=h.state,I=x.indented;if(x.lexical.type=="stat")I=x.lexical.indented;else for(var Y=x.lexical;Y&&Y.type==")"&&Y.align;Y=Y.prev)I=Y.indented;x.lexical=new te(I,h.stream.column(),s,null,x.lexical,p)};return A.lex=!0,A}function N(){var s=h.state;s.lexical.prev&&(s.lexical.type==")"&&(s.indented=s.lexical.indented),s.lexical=s.lexical.prev)}N.lex=!0;function q(s){function p(A){return A==s?f():s==";"||A=="}"||A==")"||A=="]"?C():f(p)}return p}function ee(s,p){return s=="var"?f(B("vardef",p),Dr,q(";"),N):s=="keyword a"?f(B("form"),kt,ee,N):s=="keyword b"?f(B("form"),ee,N):s=="keyword d"?h.stream.match(/^\s*$/,!1)?f():f(B("stat"),nt,q(";"),N):s=="debugger"?f(q(";")):s=="{"?f(B("}"),et,Hn,N,ye):s==";"?f():s=="if"?(h.state.lexical.info=="else"&&h.state.cc[h.state.cc.length-1]==N&&h.state.cc.pop()(),f(B("form"),kt,ee,N,$i)):s=="function"?f(_t):s=="for"?f(B("form"),et,Ki,ee,ye,N):s=="class"||c&&p=="interface"?(h.marked="keyword",f(B("form",s=="class"?s:p),Yi,N)):s=="variable"?c&&p=="declare"?(h.marked="keyword",f(ee)):c&&(p=="module"||p=="enum"||p=="type")&&h.stream.match(/^\s*\w/,!1)?(h.marked="keyword",p=="enum"?f(Wi):p=="type"?f(Ri,q("operator"),V,q(";")):f(B("form"),Fe,q("{"),B("}"),Hn,N,N)):c&&p=="namespace"?(h.marked="keyword",f(B("form"),W,ee,N)):c&&p=="abstract"?(h.marked="keyword",f(ee)):f(B("stat"),qn):s=="switch"?f(B("form"),kt,q("{"),B("}","switch"),et,Hn,N,N,ye):s=="case"?f(W,q(":")):s=="default"?f(q(":")):s=="catch"?f(B("form"),Ue,tt,ee,N,ye):s=="export"?f(B("stat"),ma,N):s=="import"?f(B("stat"),ga,N):s=="async"?f(ee):p=="@"?f(W,ee):C(B("stat"),W,q(";"),N)}function tt(s){if(s=="(")return f(Dt,q(")"))}function W(s,p){return Mn(s,p,!1)}function je(s,p){return Mn(s,p,!0)}function kt(s){return s!="("?C():f(B(")"),nt,q(")"),N)}function Mn(s,p,A){if(h.state.fatArrowAt==h.stream.start){var x=A?In:Bn;if(s=="(")return f(Ue,B(")"),se(Dt,")"),N,q("=>"),x,ye);if(s=="variable")return C(Ue,Fe,q("=>"),x,ye)}var I=A?ht:rt;return J.hasOwnProperty(s)?f(I):s=="function"?f(_t,I):s=="class"||c&&p=="interface"?(h.marked="keyword",f(B("form"),da,N)):s=="keyword c"||s=="async"?f(A?je:W):s=="("?f(B(")"),nt,q(")"),N,I):s=="operator"||s=="spread"?f(A?je:W):s=="["?f(B("]"),Aa,N,I):s=="{"?un(Ct,"}",null,I):s=="quasi"?C(St,I):s=="new"?f(it(A)):f()}function nt(s){return s.match(/[;\}\)\],]/)?C():C(W)}function rt(s,p){return s==","?f(nt):ht(s,p,!1)}function ht(s,p,A){var x=A==!1?rt:ht,I=A==!1?W:je;if(s=="=>")return f(Ue,A?In:Bn,ye);if(s=="operator")return/\+\+|--/.test(p)||c&&p=="!"?f(x):c&&p=="<"&&h.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?f(B(">"),se(V,">"),N,x):p=="?"?f(W,q(":"),I):f(I);if(s=="quasi")return C(St,x);if(s!=";"){if(s=="(")return un(je,")","call",x);if(s==".")return f(pn,x);if(s=="[")return f(B("]"),nt,q("]"),N,x);if(c&&p=="as")return h.marked="keyword",f(V,x);if(s=="regexp")return h.state.lastType=h.marked="operator",h.stream.backUp(h.stream.pos-h.stream.start-1),f(I)}}function St(s,p){return s!="quasi"?C():p.slice(p.length-2)!="${"?f(St):f(nt,On)}function On(s){if(s=="}")return h.marked="string-2",h.state.tokenize=D,f(St)}function Bn(s){return F(h.stream,h.state),C(s=="{"?ee:W)}function In(s){return F(h.stream,h.state),C(s=="{"?ee:je)}function it(s){return function(p){return p=="."?f(s?Fn:Ut):p=="variable"&&c?f(ca,s?ht:rt):C(s?je:W)}}function Ut(s,p){if(p=="target")return h.marked="keyword",f(rt)}function Fn(s,p){if(p=="target")return h.marked="keyword",f(ht)}function qn(s){return s==":"?f(N,ee):C(rt,q(";"),N)}function pn(s){if(s=="variable")return h.marked="property",f()}function Ct(s,p){if(s=="async")return h.marked="property",f(Ct);if(s=="variable"||h.style=="keyword"){if(h.marked="property",p=="get"||p=="set")return f(Ln);var A;return c&&h.state.fatArrowAt==h.stream.start&&(A=h.stream.match(/^\s*:\s*/,!1))&&(h.state.fatArrowAt=h.stream.pos+A[0].length),f(Ge)}else{if(s=="number"||s=="string")return h.marked=o?"property":h.style+" property",f(Ge);if(s=="jsonld-keyword")return f(Ge);if(c&&xe(p))return h.marked="keyword",f(Ct);if(s=="[")return f(W,Gt,q("]"),Ge);if(s=="spread")return f(je,Ge);if(p=="*")return h.marked="keyword",f(Ct);if(s==":")return C(Ge)}}function Ln(s){return s!="variable"?C(Ge):(h.marked="property",f(_t))}function Ge(s){if(s==":")return f(je);if(s=="(")return C(_t)}function se(s,p,A){function x(I,Y){if(A?A.indexOf(I)>-1:I==","){var z=h.state.lexical;return z.info=="call"&&(z.pos=(z.pos||0)+1),f(function(ve,We){return ve==p||We==p?C():C(s)},x)}return I==p||Y==p?f():A&&A.indexOf(";")>-1?C(s):f(q(p))}return function(I,Y){return I==p||Y==p?f():C(s,x)}}function un(s,p,A){for(var x=3;x"),V);if(s=="quasi")return C(Sr,ot)}function aa(s){if(s=="=>")return f(V)}function kr(s){return s.match(/[\}\)\]]/)?f():s==","||s==";"?f(kr):C(fn,kr)}function fn(s,p){if(s=="variable"||h.style=="keyword")return h.marked="property",f(fn);if(p=="?"||s=="number"||s=="string")return f(fn);if(s==":")return f(V);if(s=="[")return f(q("variable"),ia,q("]"),fn);if(s=="(")return C(Vt,fn);if(!s.match(/[;\}\)\],]/))return f()}function Sr(s,p){return s!="quasi"?C():p.slice(p.length-2)!="${"?f(Sr):f(V,sa)}function sa(s){if(s=="}")return h.marked="string-2",h.state.tokenize=D,f(Sr)}function Cr(s,p){return s=="variable"&&h.stream.match(/^\s*[?:]/,!1)||p=="?"?f(Cr):s==":"?f(V):s=="spread"?f(Cr):C(V)}function ot(s,p){if(p=="<")return f(B(">"),se(V,">"),N,ot);if(p=="|"||s=="."||p=="&")return f(V);if(s=="[")return f(V,q("]"),ot);if(p=="extends"||p=="implements")return h.marked="keyword",f(V);if(p=="?")return f(V,q(":"),V)}function ca(s,p){if(p=="<")return f(B(">"),se(V,">"),N,ot)}function $n(){return C(V,la)}function la(s,p){if(p=="=")return f(V)}function Dr(s,p){return p=="enum"?(h.marked="keyword",f(Wi)):C(Fe,Gt,At,ua)}function Fe(s,p){if(c&&xe(p))return h.marked="keyword",f(Fe);if(s=="variable")return Ee(p),f();if(s=="spread")return f(Fe);if(s=="[")return un(pa,"]");if(s=="{")return un(Hi,"}")}function Hi(s,p){return s=="variable"&&!h.stream.match(/^\s*:/,!1)?(Ee(p),f(At)):(s=="variable"&&(h.marked="property"),s=="spread"?f(Fe):s=="}"?C():s=="["?f(W,q("]"),q(":"),Hi):f(q(":"),Fe,At))}function pa(){return C(Fe,At)}function At(s,p){if(p=="=")return f(je)}function ua(s){if(s==",")return f(Dr)}function $i(s,p){if(s=="keyword b"&&p=="else")return f(B("form","else"),ee,N)}function Ki(s,p){if(p=="await")return f(Ki);if(s=="(")return f(B(")"),fa,N)}function fa(s){return s=="var"?f(Dr,Wt):s=="variable"?f(Wt):C(Wt)}function Wt(s,p){return s==")"?f():s==";"?f(Wt):p=="in"||p=="of"?(h.marked="keyword",f(W,Wt)):C(W,Wt)}function _t(s,p){if(p=="*")return h.marked="keyword",f(_t);if(s=="variable")return Ee(p),f(_t);if(s=="(")return f(Ue,B(")"),se(Dt,")"),N,Li,ee,ye);if(c&&p=="<")return f(B(">"),se($n,">"),N,_t)}function Vt(s,p){if(p=="*")return h.marked="keyword",f(Vt);if(s=="variable")return Ee(p),f(Vt);if(s=="(")return f(Ue,B(")"),se(Dt,")"),N,Li,ye);if(c&&p=="<")return f(B(">"),se($n,">"),N,Vt)}function Ri(s,p){if(s=="keyword"||s=="variable")return h.marked="type",f(Ri);if(p=="<")return f(B(">"),se($n,">"),N)}function Dt(s,p){return p=="@"&&f(W,Dt),s=="spread"?f(Dt):c&&xe(p)?(h.marked="keyword",f(Dt)):c&&s=="this"?f(Gt,At):C(Fe,Gt,At)}function da(s,p){return s=="variable"?Yi(s,p):Kn(s,p)}function Yi(s,p){if(s=="variable")return Ee(p),f(Kn)}function Kn(s,p){if(p=="<")return f(B(">"),se($n,">"),N,Kn);if(p=="extends"||p=="implements"||c&&s==",")return p=="implements"&&(h.marked="keyword"),f(c?V:W,Kn);if(s=="{")return f(B("}"),at,N)}function at(s,p){if(s=="async"||s=="variable"&&(p=="static"||p=="get"||p=="set"||c&&xe(p))&&h.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return h.marked="keyword",f(at);if(s=="variable"||h.style=="keyword")return h.marked="property",f(dn,at);if(s=="number"||s=="string")return f(dn,at);if(s=="[")return f(W,Gt,q("]"),dn,at);if(p=="*")return h.marked="keyword",f(at);if(c&&s=="(")return C(Vt,at);if(s==";"||s==",")return f(at);if(s=="}")return f();if(p=="@")return f(W,at)}function dn(s,p){if(p=="!"||p=="?")return f(dn);if(s==":")return f(V,At);if(p=="=")return f(je);var A=h.state.lexical.prev,x=A&&A.info=="interface";return C(x?Vt:_t)}function ma(s,p){return p=="*"?(h.marked="keyword",f(Pr,q(";"))):p=="default"?(h.marked="keyword",f(W,q(";"))):s=="{"?f(se(Ui,"}"),Pr,q(";")):C(ee)}function Ui(s,p){if(p=="as")return h.marked="keyword",f(q("variable"));if(s=="variable")return C(je,Ui)}function ga(s){return s=="string"?f():s=="("?C(W):s=="."?C(rt):C(Rn,Gi,Pr)}function Rn(s,p){return s=="{"?un(Rn,"}"):(s=="variable"&&Ee(p),p=="*"&&(h.marked="keyword"),f(ha))}function Gi(s){if(s==",")return f(Rn,Gi)}function ha(s,p){if(p=="as")return h.marked="keyword",f(Rn)}function Pr(s,p){if(p=="from")return h.marked="keyword",f(W)}function Aa(s){return s=="]"?f():C(se(je,"]"))}function Wi(){return C(B("form"),Fe,q("{"),B("}"),se(_a,"}"),N,N)}function _a(){return C(Fe,At)}function xa(s,p){return s.lastType=="operator"||s.lastType==","||_.test(p.charAt(0))||/[,.]/.test(p.charAt(0))}function Vi(s,p,A){return p.tokenize==O&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(p.lastType)||p.lastType=="quasi"&&/\{\s*$/.test(s.string.slice(0,s.pos-(A||0)))}return{startState:function(s){var p={tokenize:O,lastType:"sof",cc:[],lexical:new te((s||0)-r,0,"block",!1),localVars:t.localVars,context:t.localVars&&new Ye(null,null,!1),indented:s||0};return t.globalVars&&typeof t.globalVars=="object"&&(p.globalVars=t.globalVars),p},token:function(s,p){if(s.sol()&&(p.lexical.hasOwnProperty("align")||(p.lexical.align=!1),p.indented=s.indentation(),F(s,p)),p.tokenize!=K&&s.eatSpace())return null;var A=p.tokenize(s,p);return S=="comment"?A:(p.lastType=S=="operator"&&(k=="++"||k=="--")?"incdec":S,Q(p,A,S,k,s))},indent:function(s,p){if(s.tokenize==K||s.tokenize==D)return n.Pass;if(s.tokenize!=O)return 0;var A=p&&p.charAt(0),x=s.lexical,I;if(!/^\s*else\b/.test(p))for(var Y=s.cc.length-1;Y>=0;--Y){var z=s.cc[Y];if(z==N)x=x.prev;else if(z!=$i&&z!=ye)break}for(;(x.type=="stat"||x.type=="form")&&(A=="}"||(I=s.cc[s.cc.length-1])&&(I==rt||I==ht)&&!/^[,\.=+\-*:?[\(]/.test(p));)x=x.prev;i&&x.type==")"&&x.prev.type=="stat"&&(x=x.prev);var ve=x.type,We=A==ve;return ve=="vardef"?x.indented+(s.lastType=="operator"||s.lastType==","?x.info.length+1:0):ve=="form"&&A=="{"?x.indented:ve=="form"?x.indented+r:ve=="stat"?x.indented+(xa(s,p)?i||r:0):x.info=="switch"&&!We&&t.doubleIndentSwitch!=!1?x.indented+(/^(?:case|default)\b/.test(p)?r:2*r):x.align?x.column+(We?0:1):x.indented+(We?0:r)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:a?null:"/*",blockCommentEnd:a?null:"*/",blockCommentContinue:a?null:" * ",lineComment:a?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:a?"json":"javascript",jsonldMode:o,jsonMode:a,expressionAllowed:Vi,skipExpression:function(s){Q(s,"atom","atom","true",new n.StringStream("",2,null))}}}),n.registerHelper("wordChars","javascript",/[\w$]/),n.defineMIME("text/javascript","javascript"),n.defineMIME("text/ecmascript","javascript"),n.defineMIME("application/javascript","javascript"),n.defineMIME("application/x-javascript","javascript"),n.defineMIME("application/ecmascript","javascript"),n.defineMIME("application/json",{name:"javascript",json:!0}),n.defineMIME("application/x-json",{name:"javascript",json:!0}),n.defineMIME("application/manifest+json",{name:"javascript",json:!0}),n.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),n.defineMIME("text/typescript",{name:"javascript",typescript:!0}),n.defineMIME("application/typescript",{name:"javascript",typescript:!0})});(function(n){n(window.CodeMirror)})(function(n){"use strict";n.customOverlayMode=function(e,t,r){return{startState:function(){return{base:n.startState(e),overlay:n.startState(t),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(i){return{base:n.copyState(e,i.base),overlay:n.copyState(t,i.overlay),basePos:i.basePos,baseCur:null,overlayPos:i.overlayPos,overlayCur:null}},token:function(i,o){return(i!=o.streamSeen||Math.min(o.basePos,o.overlayPos)0&&(this.activeEditorExtensions.pop(),this.plugin.app.workspace.updateOptions())}async jump_to_next_cursor_location(e=null,t=!1){t&&!this.plugin.settings.auto_jump_to_cursor||e&&vt(this.plugin.app)!==e||await this.cursor_jumper.jump_to_next_cursor_location()}async registerCodeMirrorMode(){if(!this.desktopShouldHighlight()&&!this.mobileShouldHighlight())return;let e=window.CodeMirror.getMode({},"javascript");if(e.name==="null"){oe(new P("Javascript syntax mode couldn't be found, can't enable syntax highlighting."));return}let t=window.CodeMirror.customOverlayMode;if(t==null){oe(new P("Couldn't find customOverlayMode, can't enable syntax highlighting."));return}window.CodeMirror.defineMode(ra,function(r){let i={startState:function(){return{...window.CodeMirror.startState(e),inCommand:!1,tag_class:"",freeLine:!1}},copyState:function(o){return{...window.CodeMirror.startState(e),inCommand:o.inCommand,tag_class:o.tag_class,freeLine:o.freeLine}},blankLine:function(o){return o.inCommand?"line-background-templater-command-bg":null},token:function(o,a){if(o.sol()&&a.inCommand&&(a.freeLine=!0),a.inCommand){let c="";if(o.match(/[-_]{0,1}%>/,!0)){a.inCommand=!1,a.freeLine=!1;let m=a.tag_class;return a.tag_class="",`line-${Ii} ${Bi} ${ic} ${m}`}let d=e.token&&e.token(o,a);return o.peek()==null&&a.freeLine&&(c+=" line-background-templater-command-bg"),a.freeLine||(c+=` line-${Ii}`),`${c} ${Bi} ${d}`}let l=o.match(/<%[-_]{0,1}\s*([*+]{0,1})/,!0);if(l!=null){switch(l[1]){case"*":a.tag_class=ac;break;default:a.tag_class=oc;break}return a.inCommand=!0,`line-${Ii} ${Bi} ${rc} ${a.tag_class}`}for(;o.next()!=null&&!o.match(/<%/,!1););return null}};return t(window.CodeMirror.getMode(r,"hypermd"),i)})}updateEditorIntellisenseSetting(e){this.autocomplete.updateAutocompleteIntellisenseSetting(e)}};var qi=class extends Tr.Plugin{async onload(){await this.load_settings(),this.templater=new cn(this),await this.templater.setup(),this.editor_handler=new Fi(this),await this.editor_handler.setup(),this.fuzzy_suggester=new ci(this),this.event_handler=new br(this,this.templater,this.settings),this.event_handler.setup(),this.command_handler=new Si(this),this.command_handler.setup(),(0,Tr.addIcon)("templater-icon",Ko),this.addRibbonIcon("templater-icon","Templater",async()=>{this.fuzzy_suggester.insert_template()}).setAttribute("id","rb-templater-icon"),this.addSettingTab(new si(this)),this.app.workspace.onLayoutReady(()=>{this.templater.execute_startup_scripts()})}async onExternalSettingsChange(){await this.load_settings()}onunload(){this.templater.functions_generator.teardown()}async save_settings(){await this.saveData(this.settings),this.editor_handler.updateEditorIntellisenseSetting(this.settings.intellisense_render)}async load_settings(){this.settings=Object.assign({},Ho,await this.loadData())}}; +selected values: <% selectedValues %>`}]}}},web:{name:"web",description:"This modules contains every internal function related to the web (making web requests).",functions:{daily_quote:{name:"daily_quote",description:"Retrieves and parses the daily quote from `https://github.com/Zachatoo/quotes-database` as a callout.",definition:"tp.web.daily_quote()",examples:[{name:"Daily quote",example:"<% await tp.web.daily_quote() %>"}]},random_picture:{name:"random_picture",description:"Gets a random image from `https://unsplash.com/`.",definition:"tp.web.random_picture(size?: string, query?: string, include_size?: boolean)",args:[{name:"size",description:"Image size in the format `x`."},{name:"query",description:"Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma."},{name:"include_size",description:"Optional argument to include the specified size in the image link markdown. Defaults to false."}],examples:[{name:"Random picture",example:"<% await tp.web.random_picture() %>"},{name:"Random picture with size",example:'<% await tp.web.random_picture("200x200") %>'},{name:"Random picture with size and query",example:'<% await tp.web.random_picture("200x200", "landscape,water") %>'}]},request:{name:"request",description:"Makes a HTTP request to the specified URL. Optionally, you can specify a path to extract specific data from the response.",definition:"tp.web.request(url: string, path?: string)",args:[{name:"url",description:"The URL to which the HTTP request will be made."},{name:"path",description:"A path within the response JSON to extract specific data."}],examples:[{name:"Simple request",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos/1") %>'},{name:"Request with path",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos", "0.title") %>'}]}}}},Zo={tp:ec};var tc=["app","config","date","file","frontmatter","hooks","obsidian","system","user","web"],nc=new Set(tc);function ea(n){return typeof n=="string"&&nc.has(n)}function Mi(n){return!!(n.definition||n.returns||n.args)}var Oi=class{constructor(e){this.plugin=e;this.documentation=Zo}get_all_modules_documentation(){let e=this.documentation.tp;return(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)&&(e=Object.values(e).filter(t=>t.name!=="user")),Object.values(e).map(t=>(t.queryKey=t.name,t))}async get_all_functions_documentation(e,t){if(e==="app")return this.get_app_functions_documentation(this.plugin.app,t);if(e==="user"){if(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)return;let r=await Se(async()=>{let i=Je(this.plugin.app,this.plugin.settings.user_scripts_folder).filter(a=>a.extension=="js");return await po(this.plugin.app,i)},"User Scripts folder doesn't exist");return!r||r.length===0?void 0:r.reduce((i,o)=>o.extension!=="js"?i:[...i,{name:o.basename,queryKey:o.basename,definition:"",description:o.description,returns:o.returns,args:o.arguments.reduce((l,c)=>(l[c.name]={name:c.name,description:c.description},l),{}),example:""}],[])}if(!!this.documentation.tp[e].functions)return Object.values(this.documentation.tp[e].functions).map(r=>(r.queryKey=r.name,r))}get_app_functions_documentation(e,t){if(!vn(e))return[];let r=t.split(".");if(r.length===0)return[];let i=e;for(let c=0;c[a-z]*)?(?\.(?[a-zA-Z_.]*)?)?$/;this.documentation=new Oi(e),this.intellisense_render_setting=e.settings.intellisense_render}onTrigger(e,t,r){let i=t.getRange({line:e.line,ch:0},{line:e.line,ch:e.ch}),o=this.tp_keyword_regex.exec(i);if(!o)return null;let a,l=o.groups&&o.groups.module||"";if(this.module_name=l,o.groups&&o.groups.fn_trigger){if(l==""||!ea(l))return null;this.function_trigger=!0,this.function_name=o.groups.fn||"",a=this.function_name}else this.function_trigger=!1,a=this.module_name;let c={start:{line:e.line,ch:e.ch-a.length},end:{line:e.line,ch:e.ch},query:a};return this.latest_trigger_info=c,c}async getSuggestions(e){let t;return this.module_name&&this.function_trigger?t=await this.documentation.get_all_functions_documentation(this.module_name,this.function_name):t=this.documentation.get_all_modules_documentation(),t?t.filter(r=>r.queryKey.toLowerCase().startsWith(e.query.toLowerCase())):[]}renderSuggestion(e,t){if(t.createEl("b",{text:e.name}),Mi(e)){if(e.args&&this.getNumberOfArguments(e.args)>0&&Lo(this.intellisense_render_setting)){t.createEl("p",{text:"Parameter list:"});let r=t.createEl("ol");for(let[i,o]of Object.entries(e.args))Vr(r,i,o.description)}e.returns&&qo(this.intellisense_render_setting)&&Vr(t,"Returns",e.returns)}this.function_trigger&&Mi(e)&&t.createEl("code",{text:e.definition}),e.description&&Ho(this.intellisense_render_setting)&&t.createEl("div",{text:e.description})}selectSuggestion(e,t){let r=this.app.workspace.activeEditor;if(!(!r||!r.editor)&&(r.editor.replaceRange(e.queryKey,this.latest_trigger_info.start,this.latest_trigger_info.end),this.latest_trigger_info.start.ch==this.latest_trigger_info.end.ch)){let i=this.latest_trigger_info.end;i.ch+=e.queryKey.length,r.editor.setCursor(i)}}getNumberOfArguments(e){try{return new Map(Object.entries(e)).size}catch{return 0}}updateAutocompleteIntellisenseSetting(e){this.intellisense_render_setting=e}};(function(n){n(window.CodeMirror)})(function(n){"use strict";n.defineMode("javascript",function(e,t){var r=e.indentUnit,i=t.statementIndent,o=t.jsonld,a=t.json||o,l=t.trackScope!==!1,c=t.typescript,d=t.wordCharacters||/[\w$\xa1-\uffff]/,m=function(){function s(ve){return{type:ve,style:"keyword"}}var p=s("keyword a"),A=s("keyword b"),x=s("keyword c"),I=s("keyword d"),Y=s("operator"),z={type:"atom",style:"atom"};return{if:s("if"),while:p,with:p,else:A,do:A,try:A,finally:A,return:I,break:I,continue:I,new:s("new"),delete:x,void:x,throw:x,debugger:s("debugger"),var:s("var"),const:s("var"),let:s("var"),function:s("function"),catch:s("catch"),for:s("for"),switch:s("switch"),case:s("case"),default:s("default"),in:Y,typeof:Y,instanceof:Y,true:z,false:z,null:z,undefined:z,NaN:z,Infinity:z,this:s("this"),class:s("class"),super:s("atom"),yield:x,export:s("export"),import:s("import"),extends:x,await:x}}(),_=/[+\-*&%=<>!?|~^@]/,w=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function b(s){for(var p=!1,A,x=!1;(A=s.next())!=null;){if(!p){if(A=="/"&&!x)return;A=="["?x=!0:x&&A=="]"&&(x=!1)}p=!p&&A=="\\"}}var S,k;function E(s,p,A){return S=s,k=A,p}function O(s,p){var A=s.next();if(A=='"'||A=="'")return p.tokenize=$(A),p.tokenize(s,p);if(A=="."&&s.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return E("number","number");if(A=="."&&s.match(".."))return E("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(A))return E(A);if(A=="="&&s.eat(">"))return E("=>","operator");if(A=="0"&&s.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return E("number","number");if(/\d/.test(A))return s.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),E("number","number");if(A=="/")return s.eat("*")?(p.tokenize=K,K(s,p)):s.eat("/")?(s.skipToEnd(),E("comment","comment")):Ji(s,p,1)?(b(s),s.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),E("regexp","string-2")):(s.eat("="),E("operator","operator",s.current()));if(A=="`")return p.tokenize=P,P(s,p);if(A=="#"&&s.peek()=="!")return s.skipToEnd(),E("meta","meta");if(A=="#"&&s.eatWhile(d))return E("variable","property");if(A=="<"&&s.match("!--")||A=="-"&&s.match("->")&&!/\S/.test(s.string.slice(0,s.start)))return s.skipToEnd(),E("comment","comment");if(_.test(A))return(A!=">"||!p.lexical||p.lexical.type!=">")&&(s.eat("=")?(A=="!"||A=="=")&&s.eat("="):/[<>*+\-|&?]/.test(A)&&(s.eat(A),A==">"&&s.eat(A))),A=="?"&&s.eat(".")?E("."):E("operator","operator",s.current());if(d.test(A)){s.eatWhile(d);var x=s.current();if(p.lastType!="."){if(m.propertyIsEnumerable(x)){var I=m[x];return E(I.type,I.style,x)}if(x=="async"&&s.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return E("async","keyword",x)}return E("variable","variable",x)}}function $(s){return function(p,A){var x=!1,I;if(o&&p.peek()=="@"&&p.match(w))return A.tokenize=O,E("jsonld-keyword","meta");for(;(I=p.next())!=null&&!(I==s&&!x);)x=!x&&I=="\\";return x||(A.tokenize=O),E("string","string")}}function K(s,p){for(var A=!1,x;x=s.next();){if(x=="/"&&A){p.tokenize=O;break}A=x=="*"}return E("comment","comment")}function P(s,p){for(var A=!1,x;(x=s.next())!=null;){if(!A&&(x=="`"||x=="$"&&s.eat("{"))){p.tokenize=O;break}A=!A&&x=="\\"}return E("quasi","string-2",s.current())}var H="([{}])";function F(s,p){p.fatArrowAt&&(p.fatArrowAt=null);var A=s.string.indexOf("=>",s.start);if(!(A<0)){if(c){var x=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(s.string.slice(s.start,A));x&&(A=x.index)}for(var I=0,Y=!1,z=A-1;z>=0;--z){var ve=s.string.charAt(z),We=H.indexOf(ve);if(We>=0&&We<3){if(!I){++z;break}if(--I==0){ve=="("&&(Y=!0);break}}else if(We>=3&&We<6)++I;else if(d.test(ve))Y=!0;else if(/["'\/`]/.test(ve))for(;;--z){if(z==0)return;var ja=s.string.charAt(z-1);if(ja==ve&&s.string.charAt(z-2)!="\\"){z--;break}}else if(Y&&!I){++z;break}}Y&&!I&&(p.fatArrowAt=z)}}var J={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function te(s,p,A,x,I,Y){this.indented=s,this.column=p,this.type=A,this.prev=I,this.info=Y,x!=null&&(this.align=x)}function ne(s,p){if(!l)return!1;for(var A=s.localVars;A;A=A.next)if(A.name==p)return!0;for(var x=s.context;x;x=x.prev)for(var A=x.vars;A;A=A.next)if(A.name==p)return!0}function Q(s,p,A,x,I){var Y=s.cc;for(h.state=s,h.stream=I,h.marked=null,h.cc=Y,h.style=p,s.lexical.hasOwnProperty("align")||(s.lexical.align=!0);;){var z=Y.length?Y.pop():a?W:ee;if(z(A,x)){for(;Y.length&&Y[Y.length-1].lex;)Y.pop()();return h.marked?h.marked:A=="variable"&&ne(s,x)?"variable-2":p}}}var h={state:null,column:null,marked:null,cc:null};function C(){for(var s=arguments.length-1;s>=0;s--)h.cc.push(arguments[s])}function f(){return C.apply(null,arguments),!0}function Ie(s,p){for(var A=p;A;A=A.next)if(A.name==s)return!0;return!1}function Ee(s){var p=h.state;if(h.marked="def",!!l){if(p.context){if(p.lexical.info=="var"&&p.context&&p.context.block){var A=_e(s,p.context);if(A!=null){p.context=A;return}}else if(!Ie(s,p.localVars)){p.localVars=new ke(s,p.localVars);return}}t.globalVars&&!Ie(s,p.globalVars)&&(p.globalVars=new ke(s,p.globalVars))}}function _e(s,p){if(p)if(p.block){var A=_e(s,p.prev);return A?A==p.prev?p:new Ye(A,p.vars,!0):null}else return Ie(s,p.vars)?p:new Ye(p.prev,new ke(s,p.vars),!1);else return null}function xe(s){return s=="public"||s=="private"||s=="protected"||s=="abstract"||s=="readonly"}function Ye(s,p,A){this.prev=s,this.vars=p,this.block=A}function ke(s,p){this.name=s,this.next=p}var Ut=new ke("this",new ke("arguments",null));function Ue(){h.state.context=new Ye(h.state.context,h.state.localVars,!1),h.state.localVars=Ut}function et(){h.state.context=new Ye(h.state.context,h.state.localVars,!0),h.state.localVars=null}function ye(){h.state.localVars=h.state.context.vars,h.state.context=h.state.context.prev}ye.lex=!0;function B(s,p){var A=function(){var x=h.state,I=x.indented;if(x.lexical.type=="stat")I=x.lexical.indented;else for(var Y=x.lexical;Y&&Y.type==")"&&Y.align;Y=Y.prev)I=Y.indented;x.lexical=new te(I,h.stream.column(),s,null,x.lexical,p)};return A.lex=!0,A}function N(){var s=h.state;s.lexical.prev&&(s.lexical.type==")"&&(s.indented=s.lexical.indented),s.lexical=s.lexical.prev)}N.lex=!0;function q(s){function p(A){return A==s?f():s==";"||A=="}"||A==")"||A=="]"?C():f(p)}return p}function ee(s,p){return s=="var"?f(B("vardef",p),Dr,q(";"),N):s=="keyword a"?f(B("form"),St,ee,N):s=="keyword b"?f(B("form"),ee,N):s=="keyword d"?h.stream.match(/^\s*$/,!1)?f():f(B("stat"),nt,q(";"),N):s=="debugger"?f(q(";")):s=="{"?f(B("}"),et,$n,N,ye):s==";"?f():s=="if"?(h.state.lexical.info=="else"&&h.state.cc[h.state.cc.length-1]==N&&h.state.cc.pop()(),f(B("form"),St,ee,N,Ri)):s=="function"?f(xt):s=="for"?f(B("form"),et,Yi,ee,ye,N):s=="class"||c&&p=="interface"?(h.marked="keyword",f(B("form",s=="class"?s:p),Gi,N)):s=="variable"?c&&p=="declare"?(h.marked="keyword",f(ee)):c&&(p=="module"||p=="enum"||p=="type")&&h.stream.match(/^\s*\w/,!1)?(h.marked="keyword",p=="enum"?f(zi):p=="type"?f(Ui,q("operator"),V,q(";")):f(B("form"),Fe,q("{"),B("}"),$n,N,N)):c&&p=="namespace"?(h.marked="keyword",f(B("form"),W,ee,N)):c&&p=="abstract"?(h.marked="keyword",f(ee)):f(B("stat"),Ln):s=="switch"?f(B("form"),St,q("{"),B("}","switch"),et,$n,N,N,ye):s=="case"?f(W,q(":")):s=="default"?f(q(":")):s=="catch"?f(B("form"),Ue,tt,ee,N,ye):s=="export"?f(B("stat"),ga,N):s=="import"?f(B("stat"),ha,N):s=="async"?f(ee):p=="@"?f(W,ee):C(B("stat"),W,q(";"),N)}function tt(s){if(s=="(")return f(Dt,q(")"))}function W(s,p){return On(s,p,!1)}function je(s,p){return On(s,p,!0)}function St(s){return s!="("?C():f(B(")"),nt,q(")"),N)}function On(s,p,A){if(h.state.fatArrowAt==h.stream.start){var x=A?Fn:In;if(s=="(")return f(Ue,B(")"),se(Dt,")"),N,q("=>"),x,ye);if(s=="variable")return C(Ue,Fe,q("=>"),x,ye)}var I=A?At:rt;return J.hasOwnProperty(s)?f(I):s=="function"?f(xt,I):s=="class"||c&&p=="interface"?(h.marked="keyword",f(B("form"),ma,N)):s=="keyword c"||s=="async"?f(A?je:W):s=="("?f(B(")"),nt,q(")"),N,I):s=="operator"||s=="spread"?f(A?je:W):s=="["?f(B("]"),_a,N,I):s=="{"?fn(Pt,"}",null,I):s=="quasi"?C(Ct,I):s=="new"?f(it(A)):f()}function nt(s){return s.match(/[;\}\)\],]/)?C():C(W)}function rt(s,p){return s==","?f(nt):At(s,p,!1)}function At(s,p,A){var x=A==!1?rt:At,I=A==!1?W:je;if(s=="=>")return f(Ue,A?Fn:In,ye);if(s=="operator")return/\+\+|--/.test(p)||c&&p=="!"?f(x):c&&p=="<"&&h.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?f(B(">"),se(V,">"),N,x):p=="?"?f(W,q(":"),I):f(I);if(s=="quasi")return C(Ct,x);if(s!=";"){if(s=="(")return fn(je,")","call",x);if(s==".")return f(un,x);if(s=="[")return f(B("]"),nt,q("]"),N,x);if(c&&p=="as")return h.marked="keyword",f(V,x);if(s=="regexp")return h.state.lastType=h.marked="operator",h.stream.backUp(h.stream.pos-h.stream.start-1),f(I)}}function Ct(s,p){return s!="quasi"?C():p.slice(p.length-2)!="${"?f(Ct):f(nt,Bn)}function Bn(s){if(s=="}")return h.marked="string-2",h.state.tokenize=P,f(Ct)}function In(s){return F(h.stream,h.state),C(s=="{"?ee:W)}function Fn(s){return F(h.stream,h.state),C(s=="{"?ee:je)}function it(s){return function(p){return p=="."?f(s?qn:Gt):p=="variable"&&c?f(la,s?At:rt):C(s?je:W)}}function Gt(s,p){if(p=="target")return h.marked="keyword",f(rt)}function qn(s,p){if(p=="target")return h.marked="keyword",f(At)}function Ln(s){return s==":"?f(N,ee):C(rt,q(";"),N)}function un(s){if(s=="variable")return h.marked="property",f()}function Pt(s,p){if(s=="async")return h.marked="property",f(Pt);if(s=="variable"||h.style=="keyword"){if(h.marked="property",p=="get"||p=="set")return f(Hn);var A;return c&&h.state.fatArrowAt==h.stream.start&&(A=h.stream.match(/^\s*:\s*/,!1))&&(h.state.fatArrowAt=h.stream.pos+A[0].length),f(Ge)}else{if(s=="number"||s=="string")return h.marked=o?"property":h.style+" property",f(Ge);if(s=="jsonld-keyword")return f(Ge);if(c&&xe(p))return h.marked="keyword",f(Pt);if(s=="[")return f(W,Wt,q("]"),Ge);if(s=="spread")return f(je,Ge);if(p=="*")return h.marked="keyword",f(Pt);if(s==":")return C(Ge)}}function Hn(s){return s!="variable"?C(Ge):(h.marked="property",f(xt))}function Ge(s){if(s==":")return f(je);if(s=="(")return C(xt)}function se(s,p,A){function x(I,Y){if(A?A.indexOf(I)>-1:I==","){var z=h.state.lexical;return z.info=="call"&&(z.pos=(z.pos||0)+1),f(function(ve,We){return ve==p||We==p?C():C(s)},x)}return I==p||Y==p?f():A&&A.indexOf(";")>-1?C(s):f(q(p))}return function(I,Y){return I==p||Y==p?f():C(s,x)}}function fn(s,p,A){for(var x=3;x"),V);if(s=="quasi")return C(Cr,ot)}function sa(s){if(s=="=>")return f(V)}function Sr(s){return s.match(/[\}\)\]]/)?f():s==","||s==";"?f(Sr):C(dn,Sr)}function dn(s,p){if(s=="variable"||h.style=="keyword")return h.marked="property",f(dn);if(p=="?"||s=="number"||s=="string")return f(dn);if(s==":")return f(V);if(s=="[")return f(q("variable"),oa,q("]"),dn);if(s=="(")return C(zt,dn);if(!s.match(/[;\}\)\],]/))return f()}function Cr(s,p){return s!="quasi"?C():p.slice(p.length-2)!="${"?f(Cr):f(V,ca)}function ca(s){if(s=="}")return h.marked="string-2",h.state.tokenize=P,f(Cr)}function Pr(s,p){return s=="variable"&&h.stream.match(/^\s*[?:]/,!1)||p=="?"?f(Pr):s==":"?f(V):s=="spread"?f(Pr):C(V)}function ot(s,p){if(p=="<")return f(B(">"),se(V,">"),N,ot);if(p=="|"||s=="."||p=="&")return f(V);if(s=="[")return f(V,q("]"),ot);if(p=="extends"||p=="implements")return h.marked="keyword",f(V);if(p=="?")return f(V,q(":"),V)}function la(s,p){if(p=="<")return f(B(">"),se(V,">"),N,ot)}function Kn(){return C(V,pa)}function pa(s,p){if(p=="=")return f(V)}function Dr(s,p){return p=="enum"?(h.marked="keyword",f(zi)):C(Fe,Wt,_t,fa)}function Fe(s,p){if(c&&xe(p))return h.marked="keyword",f(Fe);if(s=="variable")return Ee(p),f();if(s=="spread")return f(Fe);if(s=="[")return fn(ua,"]");if(s=="{")return fn(Ki,"}")}function Ki(s,p){return s=="variable"&&!h.stream.match(/^\s*:/,!1)?(Ee(p),f(_t)):(s=="variable"&&(h.marked="property"),s=="spread"?f(Fe):s=="}"?C():s=="["?f(W,q("]"),q(":"),Ki):f(q(":"),Fe,_t))}function ua(){return C(Fe,_t)}function _t(s,p){if(p=="=")return f(je)}function fa(s){if(s==",")return f(Dr)}function Ri(s,p){if(s=="keyword b"&&p=="else")return f(B("form","else"),ee,N)}function Yi(s,p){if(p=="await")return f(Yi);if(s=="(")return f(B(")"),da,N)}function da(s){return s=="var"?f(Dr,Vt):s=="variable"?f(Vt):C(Vt)}function Vt(s,p){return s==")"?f():s==";"?f(Vt):p=="in"||p=="of"?(h.marked="keyword",f(W,Vt)):C(W,Vt)}function xt(s,p){if(p=="*")return h.marked="keyword",f(xt);if(s=="variable")return Ee(p),f(xt);if(s=="(")return f(Ue,B(")"),se(Dt,")"),N,$i,ee,ye);if(c&&p=="<")return f(B(">"),se(Kn,">"),N,xt)}function zt(s,p){if(p=="*")return h.marked="keyword",f(zt);if(s=="variable")return Ee(p),f(zt);if(s=="(")return f(Ue,B(")"),se(Dt,")"),N,$i,ye);if(c&&p=="<")return f(B(">"),se(Kn,">"),N,zt)}function Ui(s,p){if(s=="keyword"||s=="variable")return h.marked="type",f(Ui);if(p=="<")return f(B(">"),se(Kn,">"),N)}function Dt(s,p){return p=="@"&&f(W,Dt),s=="spread"?f(Dt):c&&xe(p)?(h.marked="keyword",f(Dt)):c&&s=="this"?f(Wt,_t):C(Fe,Wt,_t)}function ma(s,p){return s=="variable"?Gi(s,p):Rn(s,p)}function Gi(s,p){if(s=="variable")return Ee(p),f(Rn)}function Rn(s,p){if(p=="<")return f(B(">"),se(Kn,">"),N,Rn);if(p=="extends"||p=="implements"||c&&s==",")return p=="implements"&&(h.marked="keyword"),f(c?V:W,Rn);if(s=="{")return f(B("}"),at,N)}function at(s,p){if(s=="async"||s=="variable"&&(p=="static"||p=="get"||p=="set"||c&&xe(p))&&h.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return h.marked="keyword",f(at);if(s=="variable"||h.style=="keyword")return h.marked="property",f(mn,at);if(s=="number"||s=="string")return f(mn,at);if(s=="[")return f(W,Wt,q("]"),mn,at);if(p=="*")return h.marked="keyword",f(at);if(c&&s=="(")return C(zt,at);if(s==";"||s==",")return f(at);if(s=="}")return f();if(p=="@")return f(W,at)}function mn(s,p){if(p=="!"||p=="?")return f(mn);if(s==":")return f(V,_t);if(p=="=")return f(je);var A=h.state.lexical.prev,x=A&&A.info=="interface";return C(x?zt:xt)}function ga(s,p){return p=="*"?(h.marked="keyword",f(Nr,q(";"))):p=="default"?(h.marked="keyword",f(W,q(";"))):s=="{"?f(se(Wi,"}"),Nr,q(";")):C(ee)}function Wi(s,p){if(p=="as")return h.marked="keyword",f(q("variable"));if(s=="variable")return C(je,Wi)}function ha(s){return s=="string"?f():s=="("?C(W):s=="."?C(rt):C(Yn,Vi,Nr)}function Yn(s,p){return s=="{"?fn(Yn,"}"):(s=="variable"&&Ee(p),p=="*"&&(h.marked="keyword"),f(Aa))}function Vi(s){if(s==",")return f(Yn,Vi)}function Aa(s,p){if(p=="as")return h.marked="keyword",f(Yn)}function Nr(s,p){if(p=="from")return h.marked="keyword",f(W)}function _a(s){return s=="]"?f():C(se(je,"]"))}function zi(){return C(B("form"),Fe,q("{"),B("}"),se(xa,"}"),N,N)}function xa(){return C(Fe,_t)}function ya(s,p){return s.lastType=="operator"||s.lastType==","||_.test(p.charAt(0))||/[,.]/.test(p.charAt(0))}function Ji(s,p,A){return p.tokenize==O&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(p.lastType)||p.lastType=="quasi"&&/\{\s*$/.test(s.string.slice(0,s.pos-(A||0)))}return{startState:function(s){var p={tokenize:O,lastType:"sof",cc:[],lexical:new te((s||0)-r,0,"block",!1),localVars:t.localVars,context:t.localVars&&new Ye(null,null,!1),indented:s||0};return t.globalVars&&typeof t.globalVars=="object"&&(p.globalVars=t.globalVars),p},token:function(s,p){if(s.sol()&&(p.lexical.hasOwnProperty("align")||(p.lexical.align=!1),p.indented=s.indentation(),F(s,p)),p.tokenize!=K&&s.eatSpace())return null;var A=p.tokenize(s,p);return S=="comment"?A:(p.lastType=S=="operator"&&(k=="++"||k=="--")?"incdec":S,Q(p,A,S,k,s))},indent:function(s,p){if(s.tokenize==K||s.tokenize==P)return n.Pass;if(s.tokenize!=O)return 0;var A=p&&p.charAt(0),x=s.lexical,I;if(!/^\s*else\b/.test(p))for(var Y=s.cc.length-1;Y>=0;--Y){var z=s.cc[Y];if(z==N)x=x.prev;else if(z!=Ri&&z!=ye)break}for(;(x.type=="stat"||x.type=="form")&&(A=="}"||(I=s.cc[s.cc.length-1])&&(I==rt||I==At)&&!/^[,\.=+\-*:?[\(]/.test(p));)x=x.prev;i&&x.type==")"&&x.prev.type=="stat"&&(x=x.prev);var ve=x.type,We=A==ve;return ve=="vardef"?x.indented+(s.lastType=="operator"||s.lastType==","?x.info.length+1:0):ve=="form"&&A=="{"?x.indented:ve=="form"?x.indented+r:ve=="stat"?x.indented+(ya(s,p)?i||r:0):x.info=="switch"&&!We&&t.doubleIndentSwitch!=!1?x.indented+(/^(?:case|default)\b/.test(p)?r:2*r):x.align?x.column+(We?0:1):x.indented+(We?0:r)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:a?null:"/*",blockCommentEnd:a?null:"*/",blockCommentContinue:a?null:" * ",lineComment:a?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:a?"json":"javascript",jsonldMode:o,jsonMode:a,expressionAllowed:Ji,skipExpression:function(s){Q(s,"atom","atom","true",new n.StringStream("",2,null))}}}),n.registerHelper("wordChars","javascript",/[\w$]/),n.defineMIME("text/javascript","javascript"),n.defineMIME("text/ecmascript","javascript"),n.defineMIME("application/javascript","javascript"),n.defineMIME("application/x-javascript","javascript"),n.defineMIME("application/ecmascript","javascript"),n.defineMIME("application/json",{name:"javascript",json:!0}),n.defineMIME("application/x-json",{name:"javascript",json:!0}),n.defineMIME("application/manifest+json",{name:"javascript",json:!0}),n.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),n.defineMIME("text/typescript",{name:"javascript",typescript:!0}),n.defineMIME("application/typescript",{name:"javascript",typescript:!0})});(function(n){n(window.CodeMirror)})(function(n){"use strict";n.customOverlayMode=function(e,t,r){return{startState:function(){return{base:n.startState(e),overlay:n.startState(t),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(i){return{base:n.copyState(e,i.base),overlay:n.copyState(t,i.overlay),basePos:i.basePos,baseCur:null,overlayPos:i.overlayPos,overlayCur:null}},token:function(i,o){return(i!=o.streamSeen||Math.min(o.basePos,o.overlayPos)0&&(this.activeEditorExtensions.pop(),this.plugin.app.workspace.updateOptions())}async jump_to_next_cursor_location(e=null,t=!1){t&&!this.plugin.settings.auto_jump_to_cursor||e&&wt(this.plugin.app)!==e||await this.cursor_jumper.jump_to_next_cursor_location()}async registerCodeMirrorMode(){if(!this.desktopShouldHighlight()&&!this.mobileShouldHighlight())return;let e=window.CodeMirror.getMode({},"javascript");if(e.name==="null"){oe(new D("Javascript syntax mode couldn't be found, can't enable syntax highlighting."));return}let t=window.CodeMirror.customOverlayMode;if(t==null){oe(new D("Couldn't find customOverlayMode, can't enable syntax highlighting."));return}window.CodeMirror.defineMode(ia,function(r){let i={startState:function(){return{...window.CodeMirror.startState(e),inCommand:!1,tag_class:"",freeLine:!1}},copyState:function(o){return{...window.CodeMirror.startState(e),inCommand:o.inCommand,tag_class:o.tag_class,freeLine:o.freeLine}},blankLine:function(o){return o.inCommand?"line-background-templater-command-bg":null},token:function(o,a){if(o.sol()&&a.inCommand&&(a.freeLine=!0),a.inCommand){let c="";if(o.match(/[-_]{0,1}%>/,!0)){a.inCommand=!1,a.freeLine=!1;let m=a.tag_class;return a.tag_class="",`line-${qi} ${Fi} ${ic} ${m}`}let d=e.token&&e.token(o,a);return o.peek()==null&&a.freeLine&&(c+=" line-background-templater-command-bg"),a.freeLine||(c+=` line-${qi}`),`${c} ${Fi} ${d}`}let l=o.match(/<%[-_]{0,1}\s*([*+]{0,1})/,!0);if(l!=null){switch(l[1]){case"*":a.tag_class=ac;break;default:a.tag_class=oc;break}return a.inCommand=!0,`line-${qi} ${Fi} ${rc} ${a.tag_class}`}for(;o.next()!=null&&!o.match(/<%/,!1););return null}};return t(window.CodeMirror.getMode(r,"hypermd"),i)})}updateEditorIntellisenseSetting(e){this.autocomplete.updateAutocompleteIntellisenseSetting(e)}};var Hi=class extends kr.Plugin{async onload(){await this.load_settings(),this.templater=new ln(this),await this.templater.setup(),this.editor_handler=new Li(this),await this.editor_handler.setup(),this.fuzzy_suggester=new pi(this),this.event_handler=new Tr(this,this.templater,this.settings),this.event_handler.setup(),this.command_handler=new Pi(this),this.command_handler.setup(),(0,kr.addIcon)("templater-icon",Ro),this.addRibbonIcon("templater-icon","Templater",async()=>{this.fuzzy_suggester.insert_template()}).setAttribute("id","rb-templater-icon"),this.addSettingTab(new li(this)),this.app.workspace.onLayoutReady(()=>{this.templater.execute_startup_scripts()})}async onExternalSettingsChange(){await this.load_settings()}onunload(){this.templater.functions_generator.teardown()}async save_settings(){await this.saveData(this.settings),this.editor_handler.updateEditorIntellisenseSetting(this.settings.intellisense_render)}async load_settings(){this.settings=Object.assign({},$o,await this.loadData())}}; /* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/templater-obsidian/manifest.json b/.obsidian/plugins/templater-obsidian/manifest.json index 07d579b..75c3aec 100644 --- a/.obsidian/plugins/templater-obsidian/manifest.json +++ b/.obsidian/plugins/templater-obsidian/manifest.json @@ -1,9 +1,9 @@ { "id": "templater-obsidian", "name": "Templater", - "version": "2.18.1", + "version": "2.19.0", "description": "Create and use templates", - "minAppVersion": "1.5.0", + "minAppVersion": "1.12.2", "author": "SilentVoid", "authorUrl": "https://github.com/SilentVoid13", "helpUrl": "https://silentvoid13.github.io/Templater/", diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 38707fe..af6ce9b 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,13 +13,13 @@ "state": { "type": "markdown", "state": { - "file": "BlogWebsite/Article/Obsidian使用飞牛WebDAV实现多端同步.md", - "mode": "source", + "file": "YueQian/相关网站.md", + "mode": "preview", "source": false, "backlinks": false }, "icon": "lucide-file", - "title": "Obsidian使用飞牛WebDAV实现多端同步" + "title": "相关网站" } } ] @@ -89,13 +89,13 @@ "state": { "type": "outline", "state": { - "file": "BlogWebsite/Article/Obsidian使用飞牛WebDAV实现多端同步.md", + "file": "YueQian/相关网站.md", "followCursor": true, "showSearch": false, "searchQuery": "" }, "icon": "lucide-list", - "title": "Obsidian使用飞牛WebDAV实现多端同步 的大纲" + "title": "相关网站 的大纲" } }, { @@ -244,18 +244,27 @@ "obsidian-excalidraw-plugin:新建绘图文件": false, "obsidian-git:Open Git source control": false, "homepage:Open homepage": false, - "templater-obsidian:Templater": false + "templater-obsidian:Templater": false, + "remotely-save:Remotely Save": false } }, - "active": "e7a7b303c61786dc", + "active": "b1cf03bb19fff71c", "lastOpenFiles": [ + "Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEfb6a239bed5b462a85fa7ec4382c92210d7713ba345e0119c37b9a76eb31bf65.png", + "Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf40b82d71f114aeba01e4f33e6783646localFile.png", + "Collection/YoudaoyunNotes/02C语言/images", + "Collection/YoudaoyunNotes/01Linux基础/images", + "Collection/YoudaoyunNotes/02C语言/attachments", + "Collection/YoudaoyunNotes/02C语言", + "Collection/YoudaoyunNotes/01Linux基础", + "Collection/YoudaoyunNotes", + "BlogWebsite/Article/Obsidian使用飞牛WebDAV实现多端同步.md", "BlogWebsite/Article/飞牛搭配mtphotos使用passnet内网穿透服务优雅快速的分享照片访问.md", "Collection/配置备忘/openclash配置.md", "Collection/配置备忘/Typecho插件Aplayer使用教程.md", "Collection/配置备忘/navidrome.md", "YueQian/相关网站.md", "README.md", - "BlogWebsite/Article/Obsidian使用飞牛WebDAV实现多端同步.md", "BlogWebsite/Article/MarkdownTest.md", "BlogWebsite/Article/docker的容器和镜像的删除操作.md", "BlogWebsite/Article/Debian从零开始使用pnpm部署项目.md", diff --git a/Collection/YoudaoyunNotes/01Linux基础/00-简介.md b/Collection/YoudaoyunNotes/01Linux基础/00-简介.md deleted file mode 100644 index 06955cc..0000000 --- a/Collection/YoudaoyunNotes/01Linux基础/00-简介.md +++ /dev/null @@ -1,45 +0,0 @@ -李林峰 - -课程学习内容概览: - -第一阶段:Linux基础、C语言编程、数据结构与算法、阶段项目一(峰哥写) - -第二阶段:Linux文件IO、嵌入式平台应用、LVGL应用开发、工程管理工具(maka、cmake、git)、阶段项目二(自己写) - -第三阶段:Linux应用开发(Linux系统编程、Linux网络编程)、阶段项目三(自己写) - -第四阶段:C++编程、QT应用编程、阶段项目四(自己写) - -第五阶段:单片机开发、阶段项目五(自己做)、智能硬件开发、阶段项目六(选做) - -入学测试: - -考试酷:[https://www.examcoo.com/](https://www.examcoo.com/) - -第一次使用要注册账号,记住自己考试酷账号(昵称为自己的真名),密码设置为常用密码。 - -加入班级:班级编号 1090543 进行考试 - -上课屏幕共享软件:腾讯会议,会议号:503-055-9377 - -获取工具资料方法: - -在浏览器输入:[http://192.168.2.2:8080](http://192.168.2.2:8080) - -创建用户 - -![](images/WEBRESOURCE535aab41498c38bdf05ce87024623f1eimage.png) - -![](images/WEBRESOURCEfc33d1691fe1d4e612571e4a68207ed7image.png) - -![](images/WEBRESOURCE906e727a49dfe1ab4acec6bd2b0922c3image.png) - -作业的提交需要各位通信在作业文件夹下创建自己姓名的文件夹 - -![](images/WEBRESOURCE0e99510f866a1bb39a2d5de5d4753e73image.png) - -后续的作业提交时作业文件以world文档或者markdown文档形式进行提交命名格式:作业日期+完成情况(如“1.19-已完成.md”或“1.19-作业2未完成.md”) - -![](images/WEBRESOURCEe90e25a2d4896ff0028bde1f058872bbimage.png) - -![](images/WEBRESOURCE33e9383546495e823d3fef48d14f22b2image.png) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/01Linux基础/01-开发环境安装.md b/Collection/YoudaoyunNotes/01Linux基础/01-开发环境安装.md deleted file mode 100644 index ab9d56f..0000000 --- a/Collection/YoudaoyunNotes/01Linux基础/01-开发环境安装.md +++ /dev/null @@ -1,293 +0,0 @@ -1. **VMware虚拟机** - -VMware 是一款虚拟化软件,可在物理计算机(宿主系统)上创建多个独立的虚拟计算机(虚拟机)。每个虚拟机可运行独立的操作系统(如 Windows、Linux、macOS 等),并共享宿主硬件资源(CPU、内存、存储等),但彼此隔离、互不干扰。 - -![](images/WEBRESOURCE39ad1c12ce8944f5baf53adf251c6152image.png) - -![](images/WEBRESOURCEbc7c70fc9bcf45a4b1faa871d65b6ae0image.png) - -右键安装包 --> 以管理员身份运行 --> 也许会提示需要重启电脑(点击重启即可) - -![](images/WEBRESOURCE68aa3091b49e412fbe48df310e878915clipboard.png) - -![](images/WEBRESOURCE11452f3b194f4e32be15f73a556b787dclipboard.png) - -![](images/WEBRESOURCE2cc68dfc42b14db284a866849fb6057cclipboard.png) - -![](images/WEBRESOURCE2674f78eee384c64b04e88582a0e5e76clipboard.png) - -![](images/WEBRESOURCE61d26be5f462481b8afa701a030e27acclipboard.png) - -![](images/WEBRESOURCE5471a94b3aef42558868d9b0ac1dc3d9clipboard.png) - -![](images/WEBRESOURCE829ca347b9cc4d3b9763e0f526c7c621clipboard.png) - -![](images/WEBRESOURCE84a4440c8f764f1e9c4a2c6bb3155de1clipboard.png) - -![](images/WEBRESOURCE52fd203d21d9464694047b5d1b5bfad4clipboard.png) - -![](images/WEBRESOURCE1d066e57d29541b1852669d9f31e8eecclipboard.png) - -1. **Ubuntu系统制作** - -Ubuntu 是基于Debian Linux的开源操作系统,由南非企业家马克・沙特尔沃思(Mark Shuttleworth)的公司 Canonical 于 2004 年推出。其名称源于非洲语 “Ubuntu”,意为 “人类互助共生”,象征系统的社区协作精神。 - -核心特点:免费开源、易用性强、安全性高,适合从新手到开发者的全场景用户。 - -应用领域:个人桌面、服务器、云计算(如 OpenStack)、物联网设备(如树莓派)等。 - -Ubuntu 通过 “开源 + 易用” 的组合,降低了 Linux 系统的使用门槛,成为连接普通用户与开源技术的桥梁。无论是个人办公、企业服务器还是技术开发,其 “稳定、安全、易维护” 的特性都能满足核心需求,堪称 Linux 生态中最具实用性和普及度的发行版之一。 - -**制作一个自己的Ubuntu** - -1. **下载** - -![](images/WEBRESOURCE85ce4d82a39f7f58a8c4a3c9752d1e53image.png) - -![](images/WEBRESOURCEdce1d39bdf30394844f8f4495a038ee3image.png) - -1. **制作自己的Ubuntu(或者下载峰哥制作好的Ubuntu)** - -使用已经制作好的系统时直接解压-->选择打开虚拟机-->找到虚拟机文件-->开启虚拟机-->选择“我已复制该虚拟机” - -![](images/WEBRESOURCE198b05f09ff54910b7754cddac25dfffimage.png) - -选择创建新的虚拟机 - -![](images/WEBRESOURCE80ef22ee4f3943d387943037287538b6image.png) - -![](images/WEBRESOURCEee8c6774c8ddf514f5e8be0b4f25c4caimage.png) - -![](images/WEBRESOURCEba91a8a84b224d58a75674ed4d98a3beimage.png) - -![](images/WEBRESOURCEaf110ccde82f4aad86243128a0aa65a2image.png) - -![](images/WEBRESOURCE5348389a4d1c4b4eb66a03f3841938f5image.png) - -![](images/WEBRESOURCE7709d0a22d554a06864909abf2732defimage.png) - -![](images/WEBRESOURCEbc70bec4ac945be15f994ecfdadcffbbimage.png) - -![](images/WEBRESOURCEc7bb8456a3a64bc698f5909f5de32357image.png) - -![](images/WEBRESOURCE62cf6c590d864cdd91e83392b7ca81f6image.png) - -![](images/WEBRESOURCE1597955388994880ae32096facd23031image.png) - -![](images/WEBRESOURCEe5e0a4a20f1026774dfaabcd050a7551image.png) - -![](images/WEBRESOURCE0cdcf4a88e6eba4375dd290569c05c2eimage.png) - -![](images/WEBRESOURCE239add8580e01ea33a9592b219ad2e9fimage.png) - -![](images/WEBRESOURCE613c5526bad54dbda610f99c1be8d3faimage.png) - -![](images/WEBRESOURCEa3c86ec3e4414dd9865a99216bca21b8image.png) - -![](images/WEBRESOURCE10ced81c01044c5d8aef0fd21f434ae2image.png) - -![](images/WEBRESOURCE9a911191d7d346488b2985c095e246c8image.png) - -密码一个点 . - -![](images/WEBRESOURCE2ccd15caf9bd42f8a2e9d24a63c5c303image.png) - -![](images/WEBRESOURCE681f699a07f3448296f962f4788959eeimage.png) - -![](images/WEBRESOURCE9d9186b70a304a4db86565fde8a8d1e2image.png) - -![](images/WEBRESOURCE76cfd724f20c4cd6b08cdacca17fbc4eimage.png) - -1. **配置Ubuntu** - -1. **汉化Ubuntu(安装时已经选择汉语可以跳过)** - -打开Ubuntu的设置 --> 选择区域与语言 - -![](images/WEBRESOURCE0fa810ce77624fe3b787d026cfa7a685image.png) - -![](images/WEBRESOURCEb0ab22fbfdce44eb8e8a1603f0f71a73image.png) - -![](images/WEBRESOURCE1606aee8ccb74f578d3399e41829455eimage.png) - -**安装完成后汉化系统注意** - -![](images/WEBRESOURCE8b764d09a9a243939568d97dfa5958faimage.png) - -1. **配置软件源(需要进行配置)** - -![](images/WEBRESOURCE0de3cb22c41147998d4d78c3280a33d3image.png) - -![](images/WEBRESOURCE9ade1b9e6431d4fa2ad97722032c0a0eimage.png) - -![](images/WEBRESOURCE95a3eb98035f4d6588a7cc60f04e3a43image.png) - -右键桌面-->在终端打开 - -![](images/WEBRESOURCEaeb2cb5c6d2343e79081336fe42953faimage.png) - -在终端输入命令:sudo apt update - -![](images/WEBRESOURCE7d9986301c4c4b7bafec0cf836334219image.png) - -1. **安装中文输入法(安装时选择的键盘是汉语键盘则默认安装中文拼音输入法)** - -安装fcitx: 打开terminal,输入指令:sudo apt install fcitx - -![](images/WEBRESOURCE6d0549ebb27d4d30833be4fa39800022clipboard.png) - -安装完成后重启Ubuntu --> 选择fcitx - -![](images/WEBRESOURCEa9760ac9399743f0ab2d4629e2817855clipboard.png) - -下载搜狗输入法 for Linux版本进行安装:通过Ubuntu的浏览器下载 - -[https://shurufa.sogou.com/linux](https://shurufa.sogou.com/linux) - -![](images/WEBRESOURCE7341f65d145e4c9292f86ee78a012940clipboard.png) - -命令行安装: - -![](images/WEBRESOURCE1c2d8f5d9912ff36f50dc01c91bfabcdimage.png) - -打开终端 - -![](images/WEBRESOURCE99c587d679ee1e89a92072ae24e5a10fimage.png) - -依次输入下列命令 - -```bash -cd ~/Download -sudo dpkg -i sogoupinyin_4.0.1.2800_x86_64.deb -``` - -若安装失败则需要安装依赖 - -sudo apt install -f - -重新安装 - -sudo dpkg -i sogoupinyin_4.0.1.2800_x86_64.deb - -安装依赖 - -sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 - -sudo apt install libgsettings-qt1 - -将fcitx设置为开机自启动 - -sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/ - -卸载ibus - -sudo apt remove --purge ibus - -重启即可 - -若出现输入法启动失败一一直闪烁的问题则按下列步骤解决 - -打开终端,编辑/etc/gdm3/custom.conf文件: - -```shell -sudo gedit /etc/gdm3/custom.conf -``` - -找到WaylandEnable=false这一行,并取消注释(删除前面的#号): - -```shell -#WaylandEnable=false -``` - -### 安装32位兼容库(需要安装) - -```shell -sudo apt update -sudo apt install lib32ncurses6 -sudo apt install lib32stdc++6 -sudo apt install gcc-multilib - -//将C语言源程序编译为32位可执行程序 -gcc ***.c -o *** -m32 -``` - -1. **Visual Studio Code开发工具** - -开发环境主要围绕C语言的开发环境进行,每一门编程语言都会有对应的IDE(Integrated Development Environment)即集成开发环境,是用于开发软件的工具集合,它将软件开发所需的各种功能集成在一个统一的界面中,大幅提升开发效率 - -推荐使用IDE:Visual Studio Code(采用扩展组件的方式提供丰富的功能,可以根据自己的实际情况对其进行不同的配置)+ GDB(Linux调试工具) - -Windows安装方法如下 - -![](images/WEBRESOURCE007db8830b714539aa71697daf21ed53image.png) - -Ubuntu下安装(可选) - -![](images/WEBRESOURCE78fb02ac886841f196551c49c53e4fa1image.png) - -自己手动下载安装包:[Download Visual Studio Code - Mac, Linux, Windows](https://code.visualstudio.com/Download) - -![](images/WEBRESOURCE057f344b13854390b81a5a5e901dbbb9image.png) - -1. **配置windows下的vscode** - -Ubuntu下的vscode只安装一下 - -windows下则需要进行以下配置 - -![](images/WEBRESOURCE16c29539d5944f13a304f45d4e08e462image.png) - -![](images/WEBRESOURCE3954317989534229a6f3353415673eb7image.png) - -![](images/WEBRESOURCE4668f3efeae947e88d2604137a0ea6d4image.png) - -![](images/WEBRESOURCEf401109d263b40d2bd759196994c0a1fimage.png) - -Windows下除了安装与Ubuntu一致的扩展外还需额外安装或配置编程编译环境(mingw**) - -获取mingw相关库文件 - -![](images/WEBRESOURCE79a7854aa8f7b1ca68ca73aea35fc928image.png) - - 解压到一个固定存放的位置 - - 进入到bin目录拷贝复制路径添加到系统环境变量路径中 - -![](images/WEBRESOURCE965e14afbca177da23bad4b24f218311image.png) - -配置自己系统的环境变量添加这个库文件的路径,重启vscode会自动检索系统环境变量路径,可解决在Windows下的vscode中运行C语言和C语言语法检查功能。 - -![](images/WEBRESOURCE9c4cee3e5fc04fe4bba5847c6b3d477cimage.png) - -![](images/WEBRESOURCE2954fab7a4e5446890a86e2e2689b2f5image.png) - -![](images/WEBRESOURCE3734c363be3041cdb248c340eccf6608image.png) - -Ubuntu命令行安装: - -```shell -cd ~/Download -sudo dpkg -i code_1.101.2-1750797935_amd64.deb -``` - -QtCreator(采用C++进行编写,用Qt做界面,可以调试运行C/C++语言) - -1. **在苹果电脑中安装虚拟机** - -如果使用的是苹果的Mac系统,则需要安装 VMware 对应的 MacOS 版本: - -[VMware Fusion-12.2](https://download3.vmware.com/software/fusion/file/VMware-Fusion-12.2.1-18811640_x86.dmg) - -![](images/WEBRESOURCE5383a9a6b4e54ff7bd5baae5562cb75e截图.png) - -安装完毕之后的操作基本跟  - -[Ubuntu-20.04-for-VMwareFusion.zip](https://share.weiyun.com/thRIL0Jp) - -解压上述压缩包,即可在苹果  - -1. **在windows中部署Linux子系统(不推荐)** - -【有道云笔记】WSL的使用 - -[https://share.note.youdao.com/s/G4YyaN9Y](https://share.note.youdao.com/s/G4YyaN9Y) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/01Linux基础/02_Linux概述.md b/Collection/YoudaoyunNotes/01Linux基础/02_Linux概述.md deleted file mode 100644 index 6962b55..0000000 --- a/Collection/YoudaoyunNotes/01Linux基础/02_Linux概述.md +++ /dev/null @@ -1,307 +0,0 @@ -# **1. Linux简介** - -Linux最初是1991年由芬兰的Linus Torvalds发起,目的是为了避开当时的类Unix的版权问题,Linux从一开始就是开源的,由网上组织松散的开发者协作完成,并在1994年开始遵循GPL许可协议。 - -Linux、git创始人、技术狂人 —— 林纳斯·托瓦兹 - -![](images/WEBRESOURCE6f00c4094996487e8c714760360e01dfstickPicture.png) - -[内核官网](https://www.kernel.org/) - -通常谈到Linux,有两个层面的含义: - -- 一指Linux内核,它运行于整个系统内部,用户看不见摸不着,其主要功能是: - -1. 内存管理 - -1. 文件管理 - -1. 任务管理 - -1. 网络管理 - -1. 设备管理 - -- 二指Linux发行版操作系统,例如Ubuntu、RedHat、Fedora、CentOS等。所谓的发行版指的是可直接发行给用户直接使用的操作系统,它不仅包括了上述所说的内核,且包括了诸如桌面系统、编辑编译环境、Shell、浏览器等用户日常使用必备的软件。 - -![](images/WEBRESOURCE45c51d8809e541af992df6e704909de0stickPicture.png) - -各种Linux发行版操作系统 - -作为操作系统(Operating System),目前世界范围内有影响力的有: - -1. Linux(开源系统,可定制可裁剪) - -1. HarmonyOS(华为公司,先进的分布式操作系统) - -1. Windows(微软公司,针对普通家庭用户) - -1. MacOS(苹果公司,针对普通家庭用户) - -Linux与其他OS最大的区别是 - -![](images/WEBRESOURCE5296aa7dcfd14b96881247007a0e0892stickPicture.png) - -# **2. Ubuntu** - -在众多Linux发行版中,Ubuntu是用的比较多的一款。点击进入 [Ubuntu 官方主页](https://cn.ubuntu.com/download/desktop) 可以下载最新版本,Ubuntu系统每隔半年发布一个新版本,分别在每年的4月和10月,比如: - -- 2019年10月份发布的被称为:Ubuntu-19.10 - -- 2020年04月份发布的被称为:Ubuntu-20.04-LTS - -注意到  - -![](images/WEBRESOURCEec78f62ce35a4b90b4e04faf253872e0stickPicture.png) - -从网上下载了Ubuntu的 ISO 镜像文件之后,需要在虚拟机中安装了之后才能使用,以下是已经安装好并配好环境的 Ubuntu 系统,开箱即食,童叟无欺: - -- 适用于 VirtualBox: - -- Ubuntu-20.04-LTS( - -- 适用于 VMware: - -- Ubuntu-18.04-LTS( - -- Ubuntu-20.04-LTS( - -## **2.1 APT软件管理器** - -Ubuntu最大的特点是继承了Debian系统的APT软件管理体系,使得Linux下的软件管理变得非常简便。如下图所示,各种厂商在世界各地部署了Ubuntu软件服务器,统一管理Ubuntu中的deb软件包,用户只要能联网,即可从最近的服务器上直接下载安装所需的服务或软件。APT带给用户最便捷的地方在于,它能自动为用户分析和安装软件的依赖模块,从而避开了Linux软件安装中饱受诟病的依赖问题。 - -![](images/WEBRESOURCE8b9e7526b7414947be881eb4bfef5f68stickPicture.png) - -使用APT软件管理器,一般遵循如下步骤: - -1. 选择恰当的服务器(物理距离近的、速度快的) - -1. 执行 update 指令,更新服务器软件清单 - -选择完毕恰当的服务器之后,还需执行APT的  - -```shell -gec@ubuntu:~$ sudo apt update -``` - -**安装与卸载** - -```shell -# 安装 -gec@ubuntu:~$ sudo apt install xxx - -# 卸载 -gec@ubuntu:~$ sudo apt remove xxx -gec@ubuntu:~$ sudo apt remove --purge xxx #将配置文件也一并删除 - -# 修复APT管理器 -gec@ubuntu:~$ sudo apt install -f - -# 自动卸载一些已经无用的软件或服务 -gec@ubuntu:~$ sudo apt autoremove -``` - -## **2.2 Linux目录结构** - -Linux系统的目录结构中,不同的文件夹分属不同的功能,列表如下: - -Linux下一切皆文件,除网络设备 - -![](images/WEBRESOURCEbd44608fd6664867bca2f8e4561fae77image.png) - -文件1的路径:/usr/local/文件1 (根目录下的usr目录下的local的文件1) - -| 目录名 | 功能 | -| -- | -- | -| / | 根目录,所有的分区和文件的起点(类似与C盘) | -| /bin | 普通用户可用的命令所在路径 | -| /sbin | 超级用户可用的命令所在路径 | -| /etc | 各种配置文件所在路径 | -| /home | 所有普通用户的家目录所在路径 | -| /lib | 系统库文件所在路径 | -| /boot | 系统内核镜像文件所在路径 | -| /dev | 设备节点所在路径 | -| /usr | 第三方库和服务默认安装路径 | -| /proc | 系统进程数据在文件系统中的挂载路径 | -| /sys | 系统内核数据在文件系统中的挂载路径 | -| /var | 存放一些“易变”的文件,例如安装包、系统日志等 | -| /mnt | 默认的分区挂载路径 | - - -目录与目录间的关系不是分属,Linux下目录与目录或目录与文件是索引关系 - -## **2.3 命令终端** - -使用Linux的乐趣,在于其直达核心的命令终端,几乎所有的操作都可以在终端中进行,配合Linux中大量精巧的命令,真正做到让开发者敲代码时心无旁骛,摒弃任何多余的分散注意力的东西,后续课程,重点就是介绍终端中的各种命令。 - -Shell 是用户与操作系统内核之间的接口,负责 - -Shell 是一种命令行解释器(Command Line Interpreter),它接收用户输入的文本命令,将其翻译为操作系统内核能够理解的指令,并执行相应操作。 - -在Ubuntu中Shell 命令行解释器使用的是bash解释器(Bash(Bourne Again SHell)是一种命令行解释器,也是 Linux 和 macOS 系统的默认 Shell) - -命令终端(bash解释器) - -``` -1、ctrl + alt + t //打开一个终端 -2、鼠标右键打开终端 -3、点击终端图标 -``` - -![](images/WEBRESOURCE5fcadc9becb441e19779d82e2d845ea6image.png) - -终端前缀说明: - -```shell -gec@Ubuntu:~$ -``` - -> gec :当前登录的用户名称 -> Ubuntu:当前系统名称 -> ~:当前所处的路径名称(~的完整路径是"/home/gec",当用户处于自己的家目录是路径用~表示,代表这个目录是用户的主目录,不同用户的家目录是不同的) -> @ : $:这些符号的作用是用于分隔内容($表示当前用户的身份是普通用户 `#`表示当前用户身份是超级管理员用户) - - -**能用普通用户尽量不要用root** - -有许多人在使用 Linux 系统时存在一些坏习惯,比如使用  - -``` -Important: you can and should build everything as a normal user. -There is no need to be root to configure and use Buildroot. -By running all commands as a regular user, -you protect your system against packages behaving badly during compilation and installation. -``` - -翻译: - -``` -重要: 你可以且应该使用普通用户去构建所有的程序。 -没有任何必要非得要root去配置和使用系统,使用普通用户去执行命令,可以避免在程序编译和安装时出现的莫名其妙的系统错误。 -``` - -**总之** - -**终端使用小技巧** - -1. 打开相同路径下的新窗口: - -``` -ctrl + shift + n -``` - -打开相同路径下的新终端窗口 - -![](images/WEBRESOURCEa00846a6c2b74327a597f110d86d52f4stickPicture.png) - -1. 快速定位命令行光标位置: - -``` -快速定位到命令末尾: ctrl + e -快速定位到命令开头: ctrl + a -``` - -1. 快速复制、粘贴: - -``` -复制终端的文本:选中即已复制 -文本粘贴到终端:按下鼠标滚轮 -``` - -1. 自动补全单词 - -``` -在目录下唯一单词自动补全:tab -``` - -1. 历史命令浏览 - -``` -浏览上一条或下一条历史命令:方向上/下 -``` - -1. 快速切换路径 - -``` -快速切换路径到家目录:cd -快速切换路径到上一个路径位置:cd - -``` - -## **2.4 环境变量** - -环境变量是能作用于整个系统的特定变量,比如  - -下面介绍跟环境变量相关的常见操作。 - -**1) 查看系统所有的环境变量** - -命令  - -```shell -gec@ubuntu:~$ env - CLUTTER_IM_MODULE=xim - LESSCLOSE=/usr/bin/lesspipe %s %s - LANG=en_US.UTF-8 - DISPLAY=:0 - GNOME_SHELL_SESSION_MODE=ubuntu - COLORTERM=truecolor - XDG_SESSION_ID=2 - USER=gec - DESKTOP_SESSION=ubuntu - WINDOWPATH=2 - TERM=xterm-256color - SHELL=/bin/bash - VTE_VERSION=5201 - QT_IM_MODULE=fcitx - XMODIFIERS=@im=fcitx - IM_CONFIG_PHASE=2 - XDG_CURRENT_DESKTOP=ubuntu:GNOME - GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1 - GNOME_TERMINAL_SERVICE=:1.82 - XDG_SEAT=seat0 - SHLVL=1 - GDMSESSION=ubuntu - GNOME_DESKTOP_SESSION_ID=this-is-deprecated - XAUTHORITY=/run/user/1000/gdm/Xauthority - XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg - HOME=/home/gec - PATH=/usr/local/arm/5.4.0/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin - XDG_RUNTIME_DIR=/run/user/1000 -gec@ubuntu:~$ -gec@ubuntu:~$ -``` - -**2) 查看某个环境变量** - -如果需要查看某个特定的环境变量的值,可以使用命令  - -```shell -gec@ubuntu:~$ echo $PATH -PATH=/usr/local/arm/5.4.0/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin -gec@ubuntu:~$ -gec@ubuntu:~$ -``` - -**3) 设置某个环境变量** - -1. 临时设置(以PATH为例): - -```shell -gec@ubuntu:~$ export PATH=$PATH:/home/gec -``` - -注意,以上设置只对当前的终端有效。 - -1. 永久设置(以PATH为例): - -1. 打开终端的配置文件 ~/.bashrc - -```shell -gec@ubuntu:~$ export PATH=$PATH:/home/gec -``` - -注意:需要执行如下命令来加载修改过的配置文件: - -```shell -gec@ubuntu:~$ source ~/.bashrc -``` \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/01Linux基础/03_文件互通.md b/Collection/YoudaoyunNotes/01Linux基础/03_文件互通.md deleted file mode 100644 index 98c4e9f..0000000 --- a/Collection/YoudaoyunNotes/01Linux基础/03_文件互通.md +++ /dev/null @@ -1,268 +0,0 @@ -# **文件互通** - -做编程开发,经常需要将文件在不同的机器之间来回倒腾,比如安装了vmware之后,经常需要在宿主机(Widndows)和Ubuntu之间转移文件。 - -![](images/WEBRESOURCEc0365553cbf46976d46016c7ee3ca7d4image.png) - -## **1. 共享文件夹** - -使用共享文件来互通win和ubuntu的文件是最简单的,方法如下: - -- 点击虚拟机设置按钮,找到想要共享给虚拟机的文件夹。下图以Downloads文件夹为例,将其设置为Windows与Ubuntu的共享文件夹: - -![](images/WEBRESOURCE87605d40f8f547059d14da7cde016f1astickPicture.png) - -- 打开命令终端,输入 cd /mnt/hgfs 进入共享文件夹,通过命令ls,便可看到Downloads - -```bash -gec@ubuntu:~$ cd /mnt/hgfs/ -gec@ubuntu:/mnt/hgfs$ ls -Downloads -gec@ubuntu:/mnt/hgfs$ -``` - -- 通过在终端输入不同的命令,就可以在Ubuntu内部操作宿主机的共享文件了。 - -若重启虚拟机共享文件夹消失可[参考博客](https://blog.csdn.net/gcc110/article/details/134050511?spm=1001.2014.3001.5501) - -``` -在Ubuntu创建一个脚本文件:gnome-text-editor mount_hgfs -将 sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other 写入mount_hgfs文件中 -ctrl+s保存后关闭软件在终端给文件添加权限:chmod +x mount_hgfs -将文件移动到/bin:mv mount_hgfs /bin -重启系统后在终端输入命令:mount_hgfs 即可将消失的共享文件重新加载 -``` - -## **2. samba文件共享** - -samba是Linux下的一款网络磁盘服务,在ubuntu安装samba,并做好恰当的配置,即可在其他系统中方便地访问ubuntu系统的文件。 - -![](images/WEBRESOURCEe2fd4c540d704f1c9530a4d4ecb9e21estickPicture.png) - -**安装 samba** - -```cpp -gec@ubuntu:~$ sudo apt install samba -``` - -**配置 samba** - -``` -gec@ubuntu:~$ sudo vi /etc/samba/smb.conf - -# 在上述samba的配置文件的末尾追加如下信息: -# [share] 是 Windows 主机看到的samba文件夹的名称,可以任意修改 -# path 是 Ubuntu 主机通过 samba 共享出去的路径 -[share] -path=/home/gec/shareDir -browseable=yes -writable=yes -public=yes -available=yes -``` - -上述配置文件追加的信息中[share]是对共享文件的重命名,可以随意修改,path就是通过 samba 服务共享出去的目录路径。 - -**重启 samba** - -配置好smb.conf之后,重新加载配置文件并重启samba服务: - -``` -gec@ubuntu:~$ sudo service smbd reload -gec@ubuntu:~$ sudo service smbd restart -``` - -**连接 samba** - -以上述配置为例,在网络配置通畅的情况下,在windows系统中可以在运行窗口直接输入ubuntu系统的网络IP来直接访问ubuntu系统中的 /home/gec/shareDir 目录: - -访问ubuntu中的samba共享目录(假设ubuntu的IP地址是160) - -![](images/WEBRESOURCE6a19fe5c92be4a82b3da492a6e02d38astickPicture.png) - -**注意** - -``` -gec@ubuntu:~$ sudo chmod 777 /home/gec/shareDir -``` - -另外注意到,Windows 的共享文件夹本质上也是 samba 服务,因此在 Ubuntu 中也可以通过 samba 访问。 - -![](images/WEBRESOURCEecb316b50a0142919418cf4383305defstickPicture.png) - -**在windows中设置共享文件夹** - -要想把某个文件夹共享给 ubuntu,只需要右键设置指定文件夹的共享属性即可,选择“特定用户”,在弹出的窗口中选择“Everyone”即可,如下图所示: - -![](images/WEBRESOURCEe544d03066fb43a595fa2645f30b1ea7image.png) - -**在ubuntu中访问共享文件夹** - -安装 smbclient 工具: - -``` -gec@ubuntu:~$ sudo apt install smbclient -``` - -查看windows中共享的文件夹: - -``` -# 命令格式 -gec@ubuntu:~$ smbclient -L windows主机IP -U 用户名%密码 - -# 例如: -gec@ubuntu:~$ smbclient -L 192.168.90.2 -U Administrator%12345678 - - Sharename Type Comment - --------- ---- ------- - ADMIN$ Disk 远程管理 - C$ Disk 默认共享 - IPC$ IPC 远程 IPC - Users Disk - xyz Disk -gec@ubuntu:~$ -gec@ubuntu:~$ - -``` - -可以看到,上述共享出来的文件夹  - -**挂载windows的共享文件夹分区** - -``` -# 命令格式: -gec@ubuntu:~$ sudo mount -t cifs -o rw -o username=xxx,password=xxx //windows主机IP/共享文件夹名称 挂载点 - -# 例如: -gec@ubuntu:~$ sudo mount -t cifs -o rw -o username=Administrator,password=12345678 //192.168.90.2/xyz /opt/ -``` - -这样,就可以在ubuntu中访问windows的共享文件夹了。CQ2402 (file://Gec-li/cq2402) - -## **3. FTP文件传输** - -FTP是一种网络协议,在文件传输领域被广泛使用,采用该协议的各种FTP服务端和客户端不胜枚举,例如Linux下的vsftpd服务器,Windows下的FlashXP客户端。 - -Ubuntu中的 vsftpd 的含义是 very security FTP daemon(即非常安全的FTP服务器),我们可以在ubuntu中配置vsftpd服务端,然后在windows中使用FTP客户端来达到文件互联互通的目的。 - -![](images/WEBRESOURCE1cfd0409b18343c5aa0e4a742863553dstickPicture.png) - -通过 FTP 上传下载文件 - -**安装 vsftpd** - -``` -gec@ubuntu:~$ sudo apt install vsftpd -``` - -**配置 vsftpd** - -``` -gec@ubuntu:~$ sudo vi /etc/vsftpd.conf - -# 在上述配置文件中,找到 write_enable=YES ,将其前面的井号去掉就可以了 -``` - -**重启 vsftpd** - -``` -gec@ubuntu:~$ sudo service vsftpd reload -gec@ubuntu:~$ sudo service vsftpd restart -``` - -**查看运行状态** - -``` -gec@ubuntu:~$ sudo service vsftpd status -vsftpd.service - vsftpd FTP server - Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) - Active: active (running) since Mon 2021-06-07 15:31:08 CST; 9s ago - Process: 25797 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS) - Process: 25805 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS) - Main PID: 25806 (vsftpd) - Tasks: 1 (limit: 4631) - CGroup: /system.slice/vsftpd.service - └─25806 /usr/sbin/vsftpd /etc/vsftpd.conf - -6月 07 15:31:08 aidevelop-vm systemd[1]: Starting vsftpd FTP server... -6月 07 15:31:08 aidevelop-vm systemd[1]: Started vsftpd FTP server. -gec@ubuntu:~$ -// 卸载软件 -gec@ubuntu:~$ sudo apt remove --purge vsftpd -``` - -注意到,上述输出信息中有active(running)字样,表示ubuntu中的vsftpd已经在正常运行,这时就可以启动windows中的ftp客户端去连接FTP服务了。 - -![](images/WEBRESOURCE7295dea05fc1433a8128ebc8ec091265stickPicture.png) - -下载 FlashFXP54_3970_Setup.exe(7MB): - -- - -- - -# 「课堂练习1」 - -在ubuntu中安装并配置好vsftpd,使用一款windows的FTP客户端工具(比如winScp)跟ubuntu互联互通。 - -![](images/WEBRESOURCE26ef4b2a78ff2c28a0dacd2f72cd1fceimage.png) - -### 使用WinSCP文件传输(推荐) - -在Ubuntu安装ssh服务 - -```bash -gec@ubuntu:~$ sudo apt install ssh -``` - -SCP是文件传输中非常常用的命令,他可以在Linux和Windows之间传输文件,但该命令需要输入复杂的命令行参数,因此我们推荐使用图形界面的WinSCP工具。 - -下载 WinSCP-5.17.10-Setup.exe(10MB): - -- - -- - -使用 WinSCP 连接 Ubuntu - -打开 WinSCP,输入ubuntu的IP地址、用户名、密码,点击登录按钮,即可连接到ubuntu: - -![](images/WEBRESOURCE911e5cc27c401553aa3ef8b3f7a8d352image.png) - -成功连接到远程 Ubuntu 系统: - -![](images/WEBRESOURCEe54e5e49800c59dd7043655d8afddc0aimage.png) - -使用 WinSCP 传输文件 - -连接成功后,就可以在ubuntu和windows之间传输文件了,如下图所示: - -![](images/WEBRESOURCEabbcafc8a41effea663a62f333e9a737image.png) - -## **4. TFTP文件传输** - -在开发板与电脑网络互通的情况下,采用tftp的方式来传输文件是最高效的一种方式,tftp的全称是 tiny FTP,可见此工具专用于文件传输,其所为tiny意指匿名传输,是一种轻量级的FTP工具。 - -1. 在windows中安装tftp服务器,可根据系统实际情况下载对应版本: - -- tftpd32.zip - -- tftpd64.zip - -1. 启动tftpd,选择准备传送到开发板的文件的所在目录和与开发板联通的网卡: - -tftpd配置界面 - -![](images/WEBRESOURCEeab95646301b4b9093879917fcf38fffstickPicture.png) - -1. 假设在上述 C:\EFI 文件夹下有文件example.txt,在开发板中可执行如下命令下载该文件: - -``` -[root@root:~]# tftp 192.168.9.65 -gr example.txt -``` - -1. 如果想要将开发板的文件发送到tftpd服务端,命令如下: - -``` -[root@root:~]# tftp 192.168.9.65 -pr example.txt -``` \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/01Linux基础/04_命令行编辑与编译.md b/Collection/YoudaoyunNotes/01Linux基础/04_命令行编辑与编译.md deleted file mode 100644 index 2e6f808..0000000 --- a/Collection/YoudaoyunNotes/01Linux基础/04_命令行编辑与编译.md +++ /dev/null @@ -1,168 +0,0 @@ -# **1. 编辑器** - -## **1.1 图形编辑器** - -平时常见的编辑器都是图形编辑器,比如记事本、notepad、office、wps等,图形编辑器的意思就是这些编辑器带有图形界面,有菜单选项。比如最简单的Windows的记事本: - -![](images/WEBRESOURCEaf43058e62b1433f8f86ddae338e1a9a截图.png) - -记事本 - -当然,编程时不可能使用记事本来写代码,常用的专业编程IDE有vsCode、qtCreator等,常用的专业编辑器有sumlime、notepad++、vim等,它们各有所长。其中,在嵌入式开发领域,vim是不可或缺的一款字符界面型的高效编辑器,下面着重来介绍vim的安装和使用。 - -## **1.2 字符编辑器vi** - -字符编辑器的意思是这种编辑器没有提供图形界面,因此也不需要用鼠标去点击菜单栏,字符编辑器的所有操作都是只需键盘就能达到的,这种设定可以让人在编程时注意力专注于代码,将程序思维直接流向键盘,行云流水,无需任何多余的菜单、鼠标的干扰,极大提高效率。在字符编辑器中,vi就是其中的典型代表。 - -![](images/WEBRESOURCE166fbcc666024e3c83bcb4a876265bfc截图.png) - -### **vim的安装** - -编辑器vi是Ubuntu系统默认已经安装好了的,但vi的初始版本功能各方面都较弱,一般都需要升级到vim版本,下载安装vim版本的命令是: - -```shell -gec@ubuntu:~$ sudo apt install vim -``` - -安装完毕之后,还可以在vim的配置文件中设置一些常用的选项: - -```c -gec@ubuntu:~$ sudo gedit /etc/vim/vimrc -... - 49 "set showmatch " Show matching brackets. - 50 "set ignorecase " Do case insensitive matching - 51 "set smartcase " Do smart case matching - 52 "set incsearch " Incremental search - 53 "set autowrite " Automatically save - 54 "set hidden " Hide buffers - 55 set mouse=a " Enable mouse usage (all modes) - 56 set cindent - 57 set number - 58 - 59 " Source a global configuration file if available - 60 if filereadable("/etc/vim/vimrc.local") - 61 source /etc/vim/vimrc.local - 62 endif -``` - -- 注意: - -> set mouse=a 代表开启鼠标追踪 -> set cindent 代表开启自动缩进 -> set number 代表显示行号 - - -这个没有菜单的编辑器,当我们需要执行诸如保存、查找、替换、剪切等等动作的时候怎么办呢?答案是将键盘的输入分成两种模式:一种模式下键盘敲入的就是编辑的内容,另一种模式下键盘敲入的是要编辑器完成的动作。简而言之,vim需要两个操作模式: - -- 一个模式下键入的信息,作为文本本身的内容,称之为编辑模式. - -- 一个模式下键入的信息,作为执行的动作,称之为命令模式。 - -这两种模式的转换: - -- 默认打开 vi 的时候,进入了命令模式 - -- 从命令模式,进入编辑模式:按i、a、o、I、O…… - -- 从编辑模式,进入命令模式:按Esc - -编辑模式没什么好研究的,主要是命令模式,熟练使用vi/vim实际上指的是熟练掌握命令模式中,vi所能支持的命令都有哪些?答案如下。 - -### **vim常用指令** - -| vim命令 | 含义 | -| -- | -- | -| :w | 保存当前文件 | -| :w filename | 另存为 filename | -| :q | 退出当前正在编辑的文件 | -| :q! | 强制退出当前正在编辑的文件并放弃最近一次保存到现在的所有操作 | -| :wq | 保存文件并退出 | -| u | 撤销最近一次操作。 | -| ctrl+r | 前进一步,恢复撤销掉的操作 | -| i | 在光标所在的位置前面插入字符 | -| a | 在光标所在的位置后面插入字符 | -| o | 在光标所在行的下一行插入新的一行 | -| O | 在光标所在行的上一行插入新的一行 | -| x | 剪切光标处所在的字符。(x前可先按一个数字,则剪切若干个字符) | -| dd | 剪切光标处所在的一行。(dd前可先按一个数字,则剪切若干行) | -| yy | 复制光标处所在的一行。(yy前可先按一个数字,则复制若干行) | -| d$ | 剪切从光标处(含)开始到该行行末的所有字符 | -| d^ | 剪切从光标处(不含)开始到该行行首的所有字符 | -| y$ | 复制从光标处(含)开始到该行行末的所有字符 | -| y^ | 复制从光标处(不含)开始到该行行首的所有字符 | -| p | 将剪切板中的资料粘贴到光标所在下一行 | -| r | 修改光标所在的字符,r之后接跟你要修正的字符(比如你要把fox中的o改成i,只需将光标停在o上,接着连续按下r和i) | -| h | 将光标向前移动一个字符 | -| j | 将光标向下移动一个字符 | -| k | 将光标向上移动一个字符 | -| l(小写L) | 将光标向后移动一个字符 | -| gg | 跳到文本的最初一行 | -| G | 跳到文本的最末一行 | -| Ctrl + u | 向上(up)翻页 | -| Ctrl + d | 向下(down)翻页 | -| :%s/old/new | 将文件中所有的old字符串替换成new | -| /string | 从光标处往下查找字符串string,注意在输完你要查找的字符串string之后要按回车键。如果你要找的字符串string有多个,你可以按n将光标跳到下一个位置,按N将光标跳到上一个位置 | -| ?string | 跟上面的是一样的,区别是它从光标处往上查找 | - - -# 「课堂练习2」 - -使用 vi 创建一个最简单C语言程序。练习诸如剪切、粘贴、复制、保存、撤销、恢复撤销、替换等技巧,熟练切换 vi 模式和普通模式。 - -![](images/WEBRESOURCE778e6bbd547a49f7a27408810d3e357d截图.png) - -# **2. 编译器gcc** - -![](images/WEBRESOURCEab3791f6ea2d4ee1a800caaf9d9c809a截图.png) - -名称:GNU Compiler Collection(gcc),即GNU编译器套件。 - -简介:gcc是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix 及苹果 MacOS 操作系统的标准编译器,主要用与完成C语言的编译功能。 - -![](images/WEBRESOURCE483559e02d97418681caca2ce4ce7003image.png) - -用法: - -``` -// 安装最新的版本: -gec@ubuntu:~$ sudo apt install gcc -y - -// 查看编译器的版本: -gec@ubuntu:~$ gcc -v - -// 将源码 a.c 编译生成程序 a -gec@ubuntu:~$ gcc a.c -o a -gec@ubuntu:~$ gcc -o a a.c - -// 编译源码的时候打开所有的警告 -gec@ubuntu:~$ gcc a.c -o a -Wall - -// 将源码 a.c 编译生成默认名称的程序 a.out -gec@ubuntu:~$ gcc a.c //默认生成a.out文件,所有的源文件默认生成文件名称都是a.out -``` - -释义: - --v:查看编译器版本 - --o:指定编译后生成的程序名 - --Wall:打开所有警告,注意W是大写的,意为 all Warning - -## C语言程序由源代码到可执行程序的过程: - - 预处理-->编译-->汇编-->链接 - -选项:-E -S -c -o - -文件后缀:.i .s .o .elf - -预处理阶段主要完成预处理工作:处理以#开头的代码,如将头文件(#include)展开,将宏定义(#define)进行替换,将预处理指令(#if)按条件进行增删代码。 - -编译阶段主要完成代码的编译工作:检查代码中的语法问题 - -汇编阶段主完成汇编编译代码工作:将代码编译为汇编编译程序(二进制文件) - -链接阶段主要完成程序文件的链接工作:将程序中所使用的库文件进行连接,此时所产生的文件即是最终的可执行程序 - -![](images/WEBRESOURCE90052f7e84d296350dc684c5f8d9fe79image.png) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/01Linux基础/05_网络配置.md b/Collection/YoudaoyunNotes/01Linux基础/05_网络配置.md deleted file mode 100644 index e42086c..0000000 --- a/Collection/YoudaoyunNotes/01Linux基础/05_网络配置.md +++ /dev/null @@ -1,494 +0,0 @@ -# **1. 虚拟机VMware的网络配置** - -虚拟机的网络适配器的模式有两种: - -- 桥接模式:使得虚拟机跟物理机一样,各自拥有独立的IP地址 - -- NAT模式:使得虚拟机直接共享物理机的IP,自己本身没有独立的IP地址 - -![](images/WEBRESOURCE20612257d0f44ea29703856c822950d0stickPicture.png) - -虚拟机VMware的网卡配置 - -以上两种模式都可以联网,区别就是虚拟机要不要一个独立的IP。对于桥接模式需要注意,必须要仔细选择桥接的物理网卡,否则会出现无法联网的情形。 - -![](images/WEBRESOURCE2c13345c757849d5b3a82210fcd089c7image.png) - -虚拟网卡的桥接配置 - -## **1.1 桥接模式(推荐使用)** - -所谓桥接,是指虚拟网卡通过物理机的某一个网络接口,直接连接到路由器去获取  - -例如: - -- 通过桥接到 WiFi 来联网。 - -- 通过桥接到 以太网 来连接开发板 - -如下图所示,在  - -![](images/WEBRESOURCE8b51f56eeb0d4ef082b3ff4e3e984124image.png) - -![](images/WEBRESOURCE2ae66303bd38437f983a465df3546099截图.png) - -选择具体所需的桥接网卡 - -![](images/WEBRESOURCEd1d54f0ee77146aab54b2abc96a7431aimage.png) - -**重置** - -有时,如果网络参数经过多次配置导致无法再正确联网,可以通过点击下图中下方图表  - -![](images/WEBRESOURCEbb1d9b96ef1b391490c612421995ab0bimage.png) - -## **1.2 NAT模式** - -如果虚拟机不需要单独的IP地址,那么可以通过  - -![](images/WEBRESOURCEf78ab8a91b4a4da49ff5b944228cb9b4截图.png) - -选择具体所需的桥接网卡 - -此时的虚拟网卡  - -## **1.3 仅主机模式** - -有时限于外部网络的局限性,在Ubuntu无需联外网而需与宿主机Windows通信时,将 VMware 虚拟网卡配置为 - -![](images/WEBRESOURCE20309143f783406082fa8227ceb332c0截图.png) - -仅主机模式 - -在此模式中,虚拟网卡  - -![](images/WEBRESOURCEc1d22d25f7ac4510a6dedc0c74470887截图.png) - -VMnet1虚拟路由 - -从上图可以看到, - -![](images/WEBRESOURCE64396f9c2d5b447b853171ffb6f109e3截图.png) - -VMnet1虚拟路由 - -有了各自的  - -[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0) - -# **2. Ubuntu网络配置** - -## 终端命令配置 - -给虚拟机 VMware 选择了某一种联网模式后,一般还需要给客户机(即Ubuntu主机)配置好如下网络参数才能正常联网: - -- 网卡名称 - -> eth0 -> ens33 -> ens32 - - -- IP地址 - -> 在当前路由下所获得的主机IP(IPv4 IPv6)//192.168.2.x - - -- 子网掩码 - -> A类IP:255.0.0.0 -> B类IP:255.255.0.0 -> C类IP:255.255.255.0 //现使用 - - -- 网关地址 - -> 当前路由的地址:192.168.2.1 - - -- DNS(域名解析服务) - -[国内/国外公共DNS服务器地址(Ipv4/Ipv6)大全 (config.net.cn)](https://config.net.cn/tools/Dns.html) - -## **2.1 经典Linux网络配置** - -**Ubuntu24.04配置流程详见本教程第4节** - -在  - -1. 设置固定IP: - -```bash -gec@ubuntu:~$ cat /etc/network/interfaces - # interfaces(5) file used by ifup(8) and ifdown(8) - auto lo - iface lo inet loopback - - auto ens33 - iface ens33 inet static - address 169.254.54.200 # IP地址,根据具体的网络环境来写 - netmask 255.255.0.0 # 子网掩码 - gateway 169.254.54.1 # 网关地址 -gec@ubuntu:~$ -gec@ubuntu:~$ -``` - -1. 设置动态IP(自动获取IP) - -```bash -gec@ubuntu:~$ cat /etc/network/interfaces - # interfaces(5) file used by ifup(8) and ifdown(8) - auto lo - iface lo inet loopback - - auto ens33 - iface ens33 inet dhcp -gec@ubuntu:~$ -gec@ubuntu:~$ -``` - -**注意1** - -一般而言,只有在虚拟机设定为桥接模式下,才需要配置Ubuntu的网络参数信息,如果虚拟机设定的是NAT模式,那么一般直接重启网络服务,让其自动获取网络参数即可。 - -**注意2** - -以上示例以虚拟网卡  - -```bash -安装ifconfig -sudo apt install net-tools -``` - -![](images/WEBRESOURCE14dab69c4073430899e03a2f5e57c167截图.png) - -ifconfig命令查看当前活跃的网卡名称 - -**重启网络服务** - -``` -# Ubuntu-14.04以前的版本: -gec@ubuntu:~$ sudo /etc/init.d/networking force-reload -gec@ubuntu:~$ sudo /etc/init.d/networking restart - -# Ubuntu-14.04以后的版本: -gec@ubuntu:~$ sudo service networking force-reload -gec@ubuntu:~$ sudo service networking restart -``` - -**注意** - -在更新的Ubuntu-17.10以后的版本中,网络配置用的是 netplan 命令,而不是上述命令。 - -**测试网络** - -有两个命令可以测试网络是否连通: - -一、执行  - -``` -gec@ubuntu:~$ ping www.qq.com -``` - -ping外网测试网络是否通畅 - -![](images/WEBRESOURCE8d9bc18de10e43f6b7100034df6b7547截图.png) - -二、执行  - -``` -gec@ubuntu:~$ host www.qq.com -www.qq.com is an alias for public-v6.sparta.mig.tencent-cloud.net. -public-v6.sparta.mig.tencent-cloud.net has address 14.18.175.154 -public-v6.sparta.mig.tencent-cloud.net has address 113.96.232.215 -public-v6.sparta.mig.tencent-cloud.net has IPv6 address 240e:ff:f101:10::15f -gec@ubuntu:~$ - -``` - -- 注意: - -- host成功返回域名的IP地址,代表当前网络是通的。 - -- host成功返回域名的IP地址,代表当前系统的DNS解析是正常的。 - -**DNS配置** - -DNS(Domain Name Server),即域名服务器,访问网址时必须通过 DNS 解析为对应的IP地址,才能正常访问网站。在以上测试命令中,如果ping成功,但host不成功,代表当前电脑的DNS配置有问题。 - -**配置 ** - -``` -gec@ubuntu:~$ sudo cat /etc/resolv.conf -# This file is managed by man:systemd-resolved(8). Do not edit. -# -# This is a dynamic resolv.conf file for connecting local clients to the -# internal DNS stub resolver of systemd-resolved. This file lists all -# configured search domains. -# -# Run "resolvectl status" to see details about the uplink DNS servers -# currently in use. -# -# Third party programs must not access this file directly, but only through the -# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way, -# replace this symlink by a static file or a different symlink. -# -# See man:systemd-resolved.service(8) for details about the supported modes of -# operation for /etc/resolv.conf. - -nameserver x.x.x.x -options edns0 trust-ad -gec@ubuntu:~$ -``` - -具体域名服务器的IP地址  - -![](images/WEBRESOURCE2eb363b22579436daf6c442f8d55bb99截图.png) - -宿主机windows的DNS配置 - -**重启 ** - -``` -gec@ubuntu:~$ sudo service systemd-resolved restart -``` - -**查看、启停网络接口** - -使用命令  - -``` -gec@ubuntu:~$ ifconfig -ens33: flags=4163 mtu 1500 - inet 192.168.1.103 netmask 255.255.255.0 broadcast 192.168.1.255 - inet6 fe80::20c:29ff:fe80:949c prefixlen 64 scopeid 0x20 - ether 00:0c:29:80:94:9c txqueuelen 1000 (Ethernet) - RX packets 2020 bytes 266623 (266.6 KB) - RX errors 0 dropped 0 overruns 0 frame 0 - TX packets 8299 bytes 548748 (548.7 KB) - TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 - -lo: flags=73 mtu 65536 - inet 127.0.0.1 netmask 255.0.0.0 - inet6 ::1 prefixlen 128 scopeid 0x10 - loop txqueuelen 1000 (Local Loopback) - RX packets 37191 bytes 2722682 (2.7 MB) - RX errors 0 dropped 0 overruns 0 frame 0 - TX packets 37191 bytes 2722682 (2.7 MB) - TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 -``` - -**注意** - -- lo是Linux系统的本地回环设备,此设备需如上所示已启动方可连网。 - -- 若某些网卡由于某些原因未启动,则可使用如下命令来解决: - -- 使用 ifconfig -a 来查看所有的网络接口 - -- 使用 ifconfig 网卡名称 up 来启动指定的网卡。 - -**启停指定的网络接口(网卡)** - -``` -gec@ubuntu:~$ sudo ifconfig ens33 up ==> 启用ens33 -gec@ubuntu:~$ sudo ifconfig ens33 down ==> 停用ens33 -``` - -在某些系统中,以上命令也可以用如下命令替代: - -``` -gec@ubuntu:~$ sudo ifup ens33 ==> 启用ens33 -gec@ubuntu:~$ sudo ifdown ens33 ==> 停用ens33 -``` - -**临时指定的网口IP地址** - -与编辑  - -``` -gec@ubuntu:~$ sudo ifconfig ens33 192.168.1.103 -``` - -**指定默认网关** - -在某些情况下,Ubuntu无法正确找到网关,从而导致无法连网,可以手动配置网关地址: - -``` -gec@ubuntu:~$ sudo route add default gw 192.168.1.1 -``` - -网关地址根据各个局域网的配置不同而有所改变,不能照抄上述地址,网关地址一般而言就是当前局域网的路由器的地址,可以从宿主机windows的网络配置化中查看: - -![](images/WEBRESOURCEb0ee65d865824f49bc07757db8bf7bd7截图.png) - -[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0)宿主机windows的DNS配置[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0) - -## **2.2 Netplan网络配置** - -在17.10之前的老版本Ubuntu中,配置网络可能有多种手段,可以直接使用systemd,或者配置  - -通过统一对  - -**自动获取IP** - -以下的配置信息展现了如何使用  - -``` -gec@ubuntu:~$ cat /etc/netplan/01-network-manager-all.yaml -# Let NetworkManager manage all devices on this system -network: - version: 2 - renderer: NetworkManager - ethernets: - ens33: - dhcp4: yes - dhcp6: yes -gec@ubuntu:~$ -gec@ubuntu:~$ -``` - -说明: - -- renderer:指定yaml文件针对配置的网络工具 - -- ethernets:配置以太网 - -- ens33:以太网口名称 - -- dhcp4:自动获取IPv4的网络地址 - -- dhcp6:自动获取IPv6的网络地址 - -注意: - -- 冒号后面必须有空格 - -- 缩进的空格数必须一致 - -**设定静态IP** - -``` -gec@ubuntu:~$ cat /etc/netplan/01-network-manager-all.yaml -# Let NetworkManager manage all devices on this system -network: - version: 2 - renderer: NetworkManager - ethernets: - ens33: - dhcp4: no - addresses: [192.168.100.100/24] - gateway4: 192.168.100.1 - nameservers: - addresses: [202.96.134.133, 8.8.8.8] -gec@ubuntu:~$ -gec@ubuntu:~$ -``` - -说明: - -- [192.168.100.100/24] 中的24代表设定的IP地址的前24比特位为子网掩码,也就是255.255.255.0 - -- nameservers 代表 DNS 服务器 - -**使能netplan** - -配置完  - -``` -gec@ubuntu:$ sudo netplan apply -``` - -# 3.ssh网络协议使用 - -SSH(Secure Shell,安全外壳协议)是一种用于加密远程登录和网络服务的网络协议,主要作用是在不安全的网络环境中,为计算机之间的通信提供安全的加密通道,避免数据传输被窃听或篡改。 - -## 在Ubuntu安装SSH服务 - -1. 远程登录Ubuntu系统终端 - -ssh协议进行登录: - -(1) 配置Ubuntu支持ssh服务 - -① 检查系统是否启动ssh服务:ps -e | grep ssh - -![](images/WEBRESOURCEc3da925d41ce4533a2ea08f06e79c028localFile.png) - -② 若系统没有启动SSH服务则需要安装ssh服务 - -sudo   apt  install   ssh -y - -(2) 查看自己Ubuntu的IP - -![](images/WEBRESOURCEf40b82d71f114aeba01e4f33e6783646localFile.png) - -(3) 打开一个终端 - -使用vscode中终端的ssh指令来登录Ubuntu - -ssh [user@ip](http://user@ip) - -user :用户名 - -ip:ubuntu的IP - -输入指令:ssh  自己的用户名称@自己Ubuntu系统的IP地址 - -![](images/WEBRESOURCE330065e5264d47359c951ddbba7ef933localFile.png) - -![](images/WEBRESOURCEdcccbf9b8b9041f4b0578904d4d8954e截图.png) - -1. 文件传输 - -下载文件: - -scp <用户名>@:<文件> <本地文件路径> - -```shell -scp root@192.168.13.233:text /opt #从远程主机192.168.13.233的root用户下载text文件到本地的/opt目录中 -``` - -文件夹: - -scp -r <用户名>@:<文件> <本地文件路径> - -```shell -scp -r root@192.168.13.233:text /opt #从远程主机192.168.13.233的root用户下载text文件夹到本地的/opt目录中 -``` - -上传: - -scp <本地文件名> <用户名>@:<上传保存路径> - -```shell -scp text root@192.168.13.233:/opt #将本地的text文件上传到远程主机192.168.13.233的root用户的/opt目录中 -``` - -例子: - -scp ts root@192.168.13.233:/ //将本地文件ts传输到目标(192.168.13.233)的/ 目录下 - -# 4.图形化界面IP地址修改(推荐) - -主机WindowsIP固定 - -打开控制面板-->网络和Internet-->网络共享中心 - -![](images/WEBRESOURCE3335ce1a4ffb4bc3946161785318809dimage.png) - -![](images/WEBRESOURCEf78b324209b34c8f982b7b3067bd9f5dimage.png) - -**注意:离开教室后使用有线网络是要将IPv4设置为自动获取方可上网** - -UbuntuIP地址固定。虚拟机的网络设置要修改为桥接 - -设置-->网络-->设置-->IPv4-->手动 - -![](images/WEBRESOURCE5195ae1087314f47af67c62f9d954ac5image.png) - -DNS推荐使用:192.168.2.1 - -![](images/WEBRESOURCEece907cd362d4acaaca0307d0628fb21image.png) - -重启网络链接不上外网则将DNS改为192.168.2.1 \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/01Linux基础/06_常用Shell命令.md b/Collection/YoudaoyunNotes/01Linux基础/06_常用Shell命令.md deleted file mode 100644 index bed0298..0000000 --- a/Collection/YoudaoyunNotes/01Linux基础/06_常用Shell命令.md +++ /dev/null @@ -1,1011 +0,0 @@ -# shell (壳) - -可以调用内核执行响应动作的用户指令或程序 - -命令格式:指令 [-选项/参数] [参数/-选项] - -```c -gec@Ubuntu:~$ //终端前缀含义: -// gec表示当前用户名 -// @分隔符,分隔用户名跟系统名 -// Ubuntu表示当前系统的名称 -// : 分隔符,分隔系统跟路径名 -// ~ 表示当前所在路径名称,~表示当前用户的家目录(home),/表示当前是根目录 -// $ 分隔符,分隔路径名和shell指令,$表示当前用户是普通用户,#表示当前用户是超级管理员用户 -// shell命令能执行是因为系统支持shell命令解析,当前Ubuntu使用的bash解释器用于执行shell命令 -``` - -路径:表示在Linux系统中文件所挂载的位置,一般分为两种形式存在即相对路径和绝对路径;相对路径是某个目录的路径相对于当前所在目录的路径通常以当前位置(.或..)为开头,绝对路径是从起始路径到某个目录的路径绝对路径的起始路径是根目录(/)。 - -shell命令的分隔符是空格( ):命令 [参数]/[-选项] [-选项]/[参数] - -```bash -lsb_release -a // 查看当前系统完整版本信息 -``` - -Linux帮助文档:man手册 - -### **man** - -- 释义:manual,帮助手册 - -- 常见用法: - -``` - man ls ==> 查阅关于 ls 的帮助信息 - man -f read ==> 列出所有有关 read 的帮助手册 - man 2 read ==> 查阅第2册中 read 的帮助信息 -``` - -> 注意:man手册总共有9册,Ubuntu默认只安装了1册,其余的需要手工安装,指令如下: - - -```bash -sudo apt install manpages -sudo apt install manpages-dev -sudo apt install manpages-posix -sudo apt install manpages-posix-dev - - -#安装中文版 -sudo apt install manpages-zh -``` - -![](images/WEBRESOURCE53cd85664954b3499b8c61202b4d5191image.png) - -使用方法: - -```bash -man 手册编号 查询内容 - -man ls #从编号1~9中依次搜索ls并展示找到的第一个内容 - -#q Q ZZ 退出man手册 -``` - -# 1.基本命令 - -### **ls** - -- 释义:last,列出目录中文件的信息 - -- 常见用法: - -```bash -ls ==> 列出当前目录的文件名 -ls -l ==> 列出文件详情 -ls -a ==> 列出文件名(含隐藏文件) -ls -la ==> 列出文件详情(含隐藏文件) -ls /etc ==> 列出指定目录 /etc 的文件名] -``` - -![](images/WEBRESOURCEb77a86e6998ad4cd67f54764036f947fimage.png) - -![](images/WEBRESOURCE40ecee3c45ed49cba08153c5e1314e1aimage.png) - -> 相对路径:从.或..开始 -> 绝对路径:从/开始 - - -### **alias** - -- 释义:给一个命令取一个别名 - -- 常见用法: - -```bash -alias l='ls -l' ==> 给ls -l取个别名叫l -``` - -在上述设置别名的语句中,等号两边不能有空格 - -### **cd** - -- 释义:change director,切换当前路径 - -- 常见用法: - -```bash -cd /etc ==> 切换到 /etc -cd ==> 切换到家目录 -cd - ==> 切换到刚刚去过的地方,常用于两个路径来回切换 -cd .. ==> 切换到上一级目录 -cd ../.. ==> 切换到上上级目录 -``` - -### **clear** - -- 释义:清屏 - -- 常见用法: - -```bash -clear -``` - -### **date** - -- 释义:设置或查看日期时间 - -- 常见用法: - -```bash -date ==> 查看当前日期时间 -date -s "2024/12/12" ==> 设置日期 -``` - -### 「课堂练习1」 - -使用alias给clear命令取个别名,并写入配置文件~/.bashrc文件中。 - -### **dpkg** - -- 释义:手工安装 deb 软件包 - -- 常见用法: - -```bash -dpkg -i x.deb ==> 安装x.deb软件包 -``` - -![](images/WEBRESOURCE6a7bb9ddd1f4a4d59cfe5e6ad3365d47image.png) - -> 注意:Ubuntu是Debian系统的扩展和继承,因此Ubuntu中的软件安装包的格式为deb。 - - -> 注意:一般而言,在Ubuntu中很少需要手工安装deb包。因为APT软件管理器会自动下载并安装所需的软件,并会自动处理所有依赖的文件。dpkg只用在一些特定的场合,比如非APT自动下载的安装包的安装、APT自动安装失败等。 - - -### **echo** - -- 释义:回显,即将字符打印到屏幕上 - -- 常见用法: - -```bash -echo abcd ==> 输出字符串"abcd" -echo $PATH ==> 输出环境变量PATH的值 -echo "追加到文件末尾的内容" >> 文件的[路径]名字 -``` - -### **pwd** - -- 释义:present work directory,显示当前工作路径的绝对路径 - -- 常见用法: - -```bash -gec@ubuntu:~$ pwd ==> 显示当前路径,简单易用,童叟无欺 -``` - -### **sort** - -- 释义:对文件内容按行排序并输出 - -- 常见用法: - -```bash -gec@ubuntu:~$ sort file.txt ==> 按默认ASCII码升序排列 -gec@ubuntu:~$ sort file.txt -r ==> 按ASCII码降序排列 -gec@ubuntu:~$ sort file.txt -n ==> 按数值升序排列 -gec@ubuntu:~$ sort file.txt -nr ==> 按数值降序排列 -``` - -### **uniq** - -- 释义:unique,去除文件中重复的相邻的行 - -- 常见用法: - -``` -gec@ubuntu:~$ uniq file.txt -``` - -### **which** - -- 释义:查看命令所在路径 - -- 常见用法: - -``` -1. 查看默认命令 ls 所在路径 -gec@ubuntu:~$ which ls - -2 查看命令 qmake 的所有可能路径 -gec@ubuntu:~$ which -a qmake -``` - -### **管道** - -- 概念:在shell命令中,可以使用一种特殊的符号来连接两个不同的命令,使得前面命令的输出,变成后面命令的输入或参数,这种特殊的符号叫做管道。 - -- 用法: - -- 将前面命令的输出,成为后面命令的输入:cmd1 | cmd2 - -- 将前面命令的输出,成为后面命令的参数:cmd1 |xargs cmd2 - -- 举例: - -```bash -1. 将当前目录下的文件,按反序列出: -gec@ubuntu:~$ ls | sort -r - -2. 将当前目录下的文件,逐个删除掉: -gec@ubuntu:~$ ls |xargs rm -``` - -- 注意: - -1. 以上两个命令:sort和uniq,是典型的过滤器,它们就像一个安装在水管中间的过滤装置,将文件的数据一行一行地读出,并按照一定的规则过滤,然后输出过滤的结果。 - -1. 鉴于以上理解,可以将多个过滤器用管道连接起来,使之拥有更强大的功能,比如: - -```bash -gec@ubuntu:~$ sort file.txt | uniq -``` - -这样出来的数据,就既进行了排序,又进行了去重。 - -## 「课堂练习2」 - -根据管道的基本特性,设计一个命令组合,自动计算某个特定文件夹中的文件个数。 - -```shell -ls ~ | wc -w -``` - -# 2.文件管理命令 - -## **1. 文件显示** - -### **1.1 cat** - -- 释义:显示文本文件的内容 - -- 常见用法: - -```bash -gec@ubuntu:~$ cat file.txt ==> 显示文本文件内容 -gec@ubuntu:~$ cat -n a.c ==> 显示文本文件内容(并显示行号) -gec@ubuntu:~$ cat -A a.c ==> 显示文本文件内容(含不可见字符) -``` - -- 注意: - -在某些情况下,我们可能需要检测文件中那些不可见的字符。比如在Windows系统中编辑了程序文件,放到Ubuntu系统中编译可能会出现字符错误,这是因为Windows系统中的某些回车符、制表符跟Ubuntu系统的不一致,导致无法编译,而这些字符是不可见的,因此可以使用上述 cat -A 来识别。 - -### **1.2 head/tail** - -- 释义:查看指定文件的头部/尾部内容 - -- 常见用法: - -```bash -gec@ubuntu:~$ head file.txt -gec@ubuntu:~$ head -n file.txt //n表示看前面的多少行 -gec@ubuntu:~$ tail file.txt -gec@ubuntu:~$ tail -n file.txt -``` - -### **1.3 less/more** - -- 释义:以分页方式查看长文件(w上一页 d下一页 q退出) - -- 常见用法: - -```bash -gec@ubuntu:~$ less file.txt -gec@ubuntu:~$ more file.txt -``` - -### **1.4 od** - -- 释义:查看二进制文件 - -- 常见用法: - -```bash -gec@ubuntu:~$ od -x file ==> 以十六进制查看file -gec@ubuntu:~$ od -o file ==> 以八进制查看file -gec@ubuntu:~$ od -d file ==> 以十进制查看file -gec@ubuntu:~$ od -b file ==> 以二进制查看file -``` - -## **2. 文件复制** - -### **2.1 cp** - -- 释义:copy,复制文件或者复制整个目录 - -- 常见用法: - -```bash -gec@ubuntu:~$ cp file1 file2 ==> 将文件file1复制为file2 -gec@ubuntu:~$ cp dir1/ dir2/ -r ==> 将目录dir1/复制为dir2/ -``` - -- 注意: - -1. 如果file2或者dir2已存在,那么它们将会被覆盖 - -1. 目录名称 dir1/ 和 dir2/ 末尾的"/"是可选的,可写可不写,写上去只是为了强调 dir1 和 dir2 是目录,别无他意 - -### **2.2 scp** - -- 释义:security copy,跨网络复制文件或者复制整个目录 - -- 常见用法: - -```shell -# 将远程主机x.x.x.x中的/home/gec/目录下的文件a.txt复制到当前目录下 -scp user@x.x.x.x:/home/gec/a.txt . -#将当前路径下的a.txt复制到远程主机x.x.x.x的/home/gec目录中 -scp a.txt user@x.x.x.x:/home/gec/ -``` - -- 注意: - -1. user是源文件所在主机的用户名。 - -1. x.x.x.x是源文件所在主机的IP地址。 - -1. 成功执行上述命令后,需要输入主机x.x.x.x中用户user的密码方可复制文件。 - -## **3. 创建与删除** - -### **3.1 touch** - -- 释义: - -1. 在文件存在的情况下:将文件最近修改时间更新为当前时间 - -1. 在文件不存在的情况下:创建一个空文件 - -- 常见用法: - -```bash -#假设文件a.txt已存在 -gec@ubuntu:~$ touch a.txt ==> 更新a.txt的最近修改时间到当前时间 - -#假设文件b.txt不存在 -gec@ubuntu:~$ touch b.txt ==> 创建b.txt -``` - -### **3.2 mkdir/rmdir** - -- 释义:make/remove directory,创建/删除空目录 - -- 常见用法: - -```bash -gec@ubuntu:~$ mkdir a ==> 创建空目录a -gec@ubuntu:~$ mkdir b/c -p ==> 创建嵌套空目录b/c -gec@ubuntu:~$ rmdir a ==> 删除空目录a -``` - -- 注意: - -```bash -gec@ubuntu:~$ rm -r b //删除目录b -``` - -### **3.3 rm ** - -- 释义:remove,删除文件或目录 - -- 常见用法: - -```bash -gec@ubuntu:~$ rm file -gec@ubuntu:~$ rm -r dir/ -``` - -## **4. 查找** - -### **4.1 find** - -- 释义:在指定目录中,按指定条件寻找文件 - -- 常见用法: - -```bash -gec@ubuntu:~$ find /usr -name "*.h" ==> 在/usr中查找以.h结尾的文件 -gec@ubuntu:~$ find /tmp -type s ==> 在/tmp中查找类型为套接字的文件 -``` - -### **4.2 grep** - -- 释义:在指定文件或目录中,按指定条件寻找字符串 - -- 常见用法: - -```bash -gec@ubuntu:~$ grep 'apple' /usr -rn ==> 在/usr中查找包含apple的文件 -``` - -![](images/WEBRESOURCEcdae66fb6ebb479faa83c1a866792dcfimage.png) - -## **5. 其它** - -### **5.1 diff** - -- 释义:difference,检测两个文件或目录的差异信息 - -- 常见用法: - -```bash -gec@ubuntu:~$ diff file1 file2 ==> 检测文件file1和file2的差异信息 -gec@ubuntu:~$ diff dir1/ dir2/ -urN ==> 检测目录dir1/和dir2/的差异信息 -``` - -### **5.2 file** - -- 释义:检测指定文件的格式信息 - -- 常见用法: - -```bash -gec@ubuntu:~$ file a.tar.bz2 ==> 检测文件a.tar.bz2的格式 -gec@ubuntu:~$ file a.out ==> 检测文件a.out的格式 -``` - -### **5.3 mv** - -- 释义:move,移动文件,或给文件重命名 - -- 常见用法: - -``` -gec@ubuntu:~$ mv file dir/ -gec@ubuntu:~$ mv file1 file2 -``` - -![](images/WEBRESOURCE79e22617361347cebe8f87f732e64597image.png) - -![](images/WEBRESOURCE129c76fba17d4613b8bdaa6ea7ce7445image.png) - -### **5.4 wc** - -- 释义:计算字符数、单词数和行数 - -- 常见用法: - -```bash -gec@ubuntu:~$ wc ==> 计算从键盘输入的数据,以ctrl+d结束 -gec@ubuntu:~$ wc file.txt ==> 计算文件file.txt的数据 -w统计单词 -l统计行数 -c统计字符个数 -``` - -### 5.5ln - -Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 - -当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 - -### 语法 - -```bash - ln [参数][源文件或目录][目标文件或目录] -``` - -其中参数的格式为 - -``` -[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] -``` - -``` -[--help] [--version] [--] -``` - -**命令功能** - -Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。 - -不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。 - -**软链接** - -- 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 - -- 2.软链接可以 跨文件系统 ,硬链接不可以 - -- 3.软链接可以对一个不存在的文件名进行链接 - -- 4.软链接可以对目录进行链接 - -**硬链接** - -- 1.硬链接,以文件副本的形式存在。但不占用实际空间。 - -- 2.不允许给目录创建硬链接 - -- 3.硬链接只有在同一个文件系统中才能创建 - -#### 命令参数 - -**必要参数** - -- --backup[=CONTROL] 备份已存在的目标文件 - -- -b 类似 **--backup** ,但不接受参数 - -- -d 允许超级用户制作目录的硬链接 - -- -f 强制执行 - -- -i 交互模式,文件存在则提示用户是否覆盖 - -- -n 把符号链接视为一般目录 - -- -s 软链接(符号链接) - -- -v 显示详细的处理过程 - -**选择参数** - -- -S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>" - -- -V "-V<备份方式>"或"--version-control=<备份方式>" - -- --help 显示帮助信息 - -- --version 显示版本信息 - -### 实例 - -给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效: - -``` -ln -s log2013.log link2013 -``` - -输出: - -``` -[root@localhost test]# ll --rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log -[root@localhost test]# ln -s log2013.log link2013 -[root@localhost test]# ll -lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log --rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log -``` - -给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同 - -``` -ln log2013.log ln2013 -``` - -输出: - -``` -[root@localhost test]# ll -lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log --rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log -[root@localhost test]# ln log2013.log ln2013 -[root@localhost test]# ll -lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log --rw-r--r-- 2 root bin 61 11-13 06:03 ln2013 --rw-r--r-- 2 root bin 61 11-13 06:03 log2013.log -``` - -# **3.压缩与解压命令** - -Linux下最常用的压缩包格式是: - -- gz - -- bz2 - -- zip - -- xz - -其中,gz和bz2格式一般都是通过tar命令来控制的,xz和zip格式各自由它们的同名命令控制。 - -### **tar** - -- 释义:归档、释放与压缩、解压 - -- 常见用法: - -```shell -第一,归档与释放: -gec@ubuntu:~$ tar cf a.tar dir/* ==> 将目录dir中的所有文件归档成a.tar -gec@ubuntu:~$ tar tf a.tar ==> 查看归档文件a.tar -gec@ubuntu:~$ tar xf a.tar ==> 释放归档文件a.tar - -第二,压缩与解压: -gec@ubuntu:~$ tar czf a.tar.gz dir/* ==> 将目录dir中的所有文件归档并压缩为gz格式 -gec@ubuntu:~$ tar tf a.tar.gz ==> 查看压缩文件a.tar.gz -gec@ubuntu:~$ tar xzf a.tar.gz ==> 解压压缩文件a.tar.gz - -gec@ubuntu:~$ tar cjf a.tar.bz2 dir/* ==> 将目录dir中的所有文件归档并压缩为bz2格式 -gec@ubuntu:~$ tar tf a.tar.bz2 ==> 查看压缩文件a.tar.bz2 -gec@ubuntu:~$ tar xjf a.tar.bz2 ==> 解压压缩文件a.tar.bz2 - -第三,指定路径: -gec@ubuntu:~$ tar -xf a.tar -C /tmp ==> 将文件释放到/tmp -gec@ubuntu:~$ tar -xzf a.tar.gz -C /tmp ==> 将文件解压到/tmp -``` - -- 注意: - -1. 归档只是简单的将文件归拢到一起,不涉及压缩算法,文件不会变小 - -1. 压缩会用到压缩算法,文件总体会变小。 - -![](images/WEBRESOURCEb1d100d90da44dd290e5d466aa253247image.png) - -### **xz** - -- 释义:压缩与解压 - -- 常见用法: - -```bash -gec@ubuntu:~$ xz a.tar ==> 将文件a.tar压缩成a.tar.xz -gec@ubuntu:~$ xz --decompress a.tar.xz ==> 解压a.tar.xz -``` - -- 注意:xz只能压缩单个文件,因此xz一般与tar配合使用,即:先用tar将要压缩的若干文件或目录归档成一个tar包,然后用xz将tar包压缩成xz格式压缩包。 - -![](images/WEBRESOURCE1512c7628ad24efb8661e34c9bc92ea4image.png) - -### **zip** - -zip不是系统自带的命令,一般需要自己手工安装: - -```bash -gec@ubuntu:~$ sudo apt install zip -``` - -- 释义:压缩与解压 - -- 常见用法: - -``` -gec@ubuntu:~$ zip a.zip file dir/ ==> 将指定的文件和目录压缩成a.zip -gec@ubuntu:~$ unzip a.zip ==> 解压a.zip -``` - -![](images/WEBRESOURCE8e82e4fab8524848a42b96e8a236dbd1image.png) - -# **4.权限管理命令** - -### **chmod** - -- 释义:修改文件权限 - -- 常见用法: - -```shell -gec@ubuntu:~$ chmod 644 file ==> 将文件权限改为644 rw-r--r-- 二进制 110 100 100 -gec@ubuntu:~$ chmod 755 dir/ ==> 将目录权限改为755 rwxr-xr-x -gec@ubuntu:~$ chmod +x file ==> 给file的所有用户添加执行权限x -gec@ubuntu:~$ chmod -x file ==> 给file的所有用户删除执行权限x -``` - -在Linux中,文件的权限一般用rwx来表示: - -- r 代表read,可读 - -- w 代表write,可写 - -- x 代表excute,可执行 - -对于某个文件而言,系统中的所有用户被分成三类,它们是文件的所有者,文件的所属组成员和其他人。这三类用户对这个文件的rwx权限,可以由命令 ls -l 来查看: - -```bash -gec@ubuntu:~$ ls -l --rw-rw-r-- 1 gec gec 127 Oct 30 14:41 a.c --rwxrwxr-x 1 gec gec 8768 Oct 30 14:41 a.out -``` - -在上述列子中,rwx三组权限对应了三种用户。当我们需要修改这些权限的时候,为了便于描述,一般用三个八进制数来对应这些权限位,如下表所示: - -![](images/WEBRESOURCE407a5b70ff9f4e29bf2692184106bb98stickPicture.png) - -如此,权限 644 就代表了 rw-r--r--,权限 755 就代表了 rwxr-xr-x。 - -### **chown** - -- 释义:change owner,修改文件的所有者 - -- 常见用法: - -```bash -gec@ubuntu:~$ sudo chown jack a.txt ==> 将文件a.txt的所有者修改为jack -``` - -> 注意:修改文件所有者信息,须以管理员身份才能执行,因此在命令的前面要加sudo,并在随后执行是要输入管理员密码。另外要注意,输入管理员密码时系统默认是不回显的。 - - -### **chgrp** - -- 释义:change group,修改文件的所属组 - -- 常见用法: - -``` -gec@ubuntu:~$ sudo chgrp gec a.txt ==> 将文件a.txt的所属组修改为gec -``` - -### **用户管理命令** - -### **adduser/deluser** - -- 释义:添加/删除系统用户 - -- 常见用法: - -```bash -gec@ubuntu:~$ sudo adduser jack ==> 添加用户jack -gec@ubuntu:~$ sudo deluser jack ==> 删除用户jack -``` - -> 提醒:gec@ubuntu:~$ 系统所有的用户清单统一放在 /etc/passwd 中gec@ubuntu:~$ 删除用户后,默认会残留用户的家目录,如果想要连带家目录也一锅端,可以使用这个命令:sudo deluser --remove-home jack -> 创建的新用户需要与安装时建立的用户一样可以切换超级用户则需要在"/etc/sudoers"文件中添加新建的用户 -> - - -### **addgroup/delgroup** - -- 释义:添加/删除系统用户组 - -- 常见用法: - -```bash -gec@ubuntu:~$ sudo addgroup gec ==> 添加用户组gec -gec@ubuntu:~$ sudo delgroup gec ==> 删除用户组gec -``` - -> 提醒:系统所有的用户组清单统一放在 /etc/group 中 - - -### **whoami/id** - -- 释义:查看当前用户/相关ID - -- 常见用法: - -```bash -gec@ubuntu:~$ whoami ==> 显示当前用户名 -gec@ubuntu:~$ id ==> 显示与当前用户相关的ID信息 -``` - -### **usermod** - -- 释义:修改用户相关信息 - -- 常见用法: - -```bash -gec@ubuntu:~$ usermod jack -a -G gec ==> 将jack添加入用户组gec中 -``` - -## 「课堂练习3」 - -根据已学知识和 man 帮助手册,完成以下动作: - -- 给系统增加一个新用户: Jack - -- 将 Jack 添加到管理员用户组 sudo 中 - -- 将 Jack 从管理员用户组 sudo 中剔除出去 - -### su - -- 释义:登录普通用户 - -- 常见用法: - -```shell -gec@ubuntu:~$ su jack ==> 从gec用户登录到jack -jack@ubuntu:/home/gec$ exit ==> 退出jack用户登录回到gec用户 -``` - -### sudo - -- 释义:超级管理员用户切换 - -- 常见用法: - -```shell -gec@ubuntu:~$ sudo -s ==> 从gec用户登录到root #sudo su -root@ubuntu:/home/gec# exit ==> 退出root用户登录回到gec用户 -gec@ubuntu:~$ sudo apt install *** ==> 以超级管理员身份进行执行apt程序 -``` - -### passwd - -- 释义:设置或修改密码 - -- 常见用法: - -```shell -gec@ubuntu:~$ sudo passwd jack ==> 修改jack的密码 -``` - -# **5.进程管理命令** - -### **ps** - -- 释义:process state,获取进程当前状态 - -- 常见用法: - -``` -gec@ubuntu:~$ ps -ef -gec@ubuntu:~$ ps aux -``` - -### **top** - -- 释义:持续跟踪进程状态 - -- 常见用法: - -``` -gec@ubuntu:~$ top -gec@ubuntu:~$ top -p PID -``` - -- 注意:top可以通过ctrl+左右箭头翻页 - -### **kill** - -- 释义:向指定进程发送信号 - -- 常见用法: - -``` -gec@ubuntu:~$ kill -l ==> 查看系统所支持的所有的信号列表 -gec@ubuntu:~$ kill -s SIGXXX PID ==> 向进程PID发送信号SIGXXX -gec@ubuntu:~$ kill -n PID ==> 向进程PID发送第n号信号 -``` - -## 「课堂练习4」 - -使用已学过的命令,关闭当前执行命令的终端。 - -# **6.系统管理命令** - -### **df** - -- 释义:查看系统分区信息 - -- 常见用法: - -```bash -gec@ubuntu:~$ df -h -文件系统 总大小 已用 剩余 使用率% 挂载点 -udev 916M 0 916M 0% /dev -tmpfs 188M 11M 178M 6% /run -/dev/vda1 50G 6.8G 40G 15% / -tmpfs 937M 48K 936M 1% /dev/shm -tmpfs 5.0M 0 5.0M 0% /run/lock -tmpfs 937M 0 937M 0% /sys/fs/cgroup -cgmfs 100K 0 100K 0% /run/cgmanager/fs -tmpfs 188M 0 188M 0% /run/user/500 -``` - -### **du** - -- 释义:查看系统分区信息 - -- 常见用法: - -```bash -gec@ubuntu:~$ du -gec@ubuntu:~$ du -sh -``` - -### **fdisk** - -- 释义:查看/设置硬盘分区 - -- 常见用法: - -```bash -gec@ubuntu:~$ sudo fdisk -l ==> 查看当前系统已识别的分区。 -``` - -> 提醒:df只能查看已经识别且挂载了的分区,而fdisk可以查看未挂载的分区,实际上在系统识别出了分区之后,一般需要使用fdisk来查看分区的名称,然后才能使用mount来挂载,然后才能使用df查看到。 - - -![](images/WEBRESOURCEdca6cd5efadd4689831d682bf41cc7ccimage.png) - -### **mount / umount** - -- 释义:挂载/卸载分区 - -- 常见用法: - -```bash -挂载分区: -gec@ubuntu:~$ mount /dev/sdb /mnt/u ==> 将分区sdb挂载到/mnt/u - -卸载分区: -gec@ubuntu:~$ umount /dev/sdb ==> 将分区sdb卸载 -gec@ubuntu:~$ umount /mnt/u ==> 将挂载点/mnt/u卸载 -``` - -> 提醒:卸载分区名,或卸载挂载点两种方式是等价的。 - - -# **7.网络命令** - -### **hostname** - -- 释义:查看系统主机名 - -- 常见用法: - -```bash -gec@ubuntu:~$ hostname -ubuntu -gec@ubuntu:~$ -``` - -### **ifconfig** - -- 释义:查看/设置系统IP地址 - -- 常见用法: - -```bash -# 查看当前活跃的网络接口 -gec@ubuntu:~$ ifconfig - -# 查看所有的网络接口 -gec@ubuntu:~$ ifconfig -a - -# 设置指定的网络接口的IP地址 -gec@ubuntu:~$ ifconfig ens33 192.168.1.100 -``` - -使用ifconfig设置的IP是临时的,如要使得设置效果永久有效,则需要修改系统的 /etc/networking/interfaces 文件,将IP地址设置进去。例如: - -```bash -gec@ubuntu:~$ cat /etc/network/interfaces -# interfaces(5) file used by ifup(8) and ifdown(8) -auto lo -iface lo inet loopback - -auto ens33 -iface ens33 inet static -address 192.168.1.100 -netmask 255.255.255.0 -gateway 192.168.1.1 -``` - -### **ifup / ifdown** - -- 释义:启停指定网络接口卡 - -- 常见用法: - -``` -gec@ubuntu:~$ sudo ifdown ens33 ==> 禁用网络接口卡ens33 -gec@ubuntu:~$ sudo ifup ens33 ==> 启用网络接口卡ens33 -``` - -### **ping** - -- 释义:向指定主机发送要求回应的ICMP数据包 - -- 常见用法: - -``` -gec@ubuntu:~$ ping 192.168.1.200 -gec@ubuntu:~$ ping www.qq.com -``` - -> 提醒:一般而言,如果网络是畅通的,那么ping命令将会看到数据包返回的延迟时间,否则如果看不到延迟时间,并且对端的防火墙处于关闭状态,那么网络就是不通的。 - - -![](images/WEBRESOURCEed5787510918454ba2bb99c072576e41stickPicture.png) - -# 8. \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE007db8830b714539aa71697daf21ed53image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE007db8830b714539aa71697daf21ed53image.png deleted file mode 100644 index 8f91dad..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE007db8830b714539aa71697daf21ed53image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE057f344b13854390b81a5a5e901dbbb9image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE057f344b13854390b81a5a5e901dbbb9image.png deleted file mode 100644 index 0fb0343..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE057f344b13854390b81a5a5e901dbbb9image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0cdcf4a88e6eba4375dd290569c05c2eimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0cdcf4a88e6eba4375dd290569c05c2eimage.png deleted file mode 100644 index d8de7a6..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0cdcf4a88e6eba4375dd290569c05c2eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0de3cb22c41147998d4d78c3280a33d3image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0de3cb22c41147998d4d78c3280a33d3image.png deleted file mode 100644 index d498382..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0de3cb22c41147998d4d78c3280a33d3image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0e99510f866a1bb39a2d5de5d4753e73image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0e99510f866a1bb39a2d5de5d4753e73image.png deleted file mode 100644 index 056a501..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0e99510f866a1bb39a2d5de5d4753e73image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0fa810ce77624fe3b787d026cfa7a685image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0fa810ce77624fe3b787d026cfa7a685image.png deleted file mode 100644 index e0e0af3..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE0fa810ce77624fe3b787d026cfa7a685image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE10ced81c01044c5d8aef0fd21f434ae2image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE10ced81c01044c5d8aef0fd21f434ae2image.png deleted file mode 100644 index c09ef70..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE10ced81c01044c5d8aef0fd21f434ae2image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE11452f3b194f4e32be15f73a556b787dclipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE11452f3b194f4e32be15f73a556b787dclipboard.png deleted file mode 100644 index 5b8930d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE11452f3b194f4e32be15f73a556b787dclipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE129c76fba17d4613b8bdaa6ea7ce7445image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE129c76fba17d4613b8bdaa6ea7ce7445image.png deleted file mode 100644 index db2f04d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE129c76fba17d4613b8bdaa6ea7ce7445image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE14dab69c4073430899e03a2f5e57c167截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE14dab69c4073430899e03a2f5e57c167截图.png deleted file mode 100644 index 81ff7ce..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE14dab69c4073430899e03a2f5e57c167截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1512c7628ad24efb8661e34c9bc92ea4image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1512c7628ad24efb8661e34c9bc92ea4image.png deleted file mode 100644 index 9c79d01..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1512c7628ad24efb8661e34c9bc92ea4image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1597955388994880ae32096facd23031image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1597955388994880ae32096facd23031image.png deleted file mode 100644 index 6de6e65..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1597955388994880ae32096facd23031image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1606aee8ccb74f578d3399e41829455eimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1606aee8ccb74f578d3399e41829455eimage.png deleted file mode 100644 index afcfa46..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1606aee8ccb74f578d3399e41829455eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE166fbcc666024e3c83bcb4a876265bfc截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE166fbcc666024e3c83bcb4a876265bfc截图.png deleted file mode 100644 index ae2dc3a..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE166fbcc666024e3c83bcb4a876265bfc截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE16c29539d5944f13a304f45d4e08e462image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE16c29539d5944f13a304f45d4e08e462image.png deleted file mode 100644 index b8f6ecb..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE16c29539d5944f13a304f45d4e08e462image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE198b05f09ff54910b7754cddac25dfffimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE198b05f09ff54910b7754cddac25dfffimage.png deleted file mode 100644 index 675419c..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE198b05f09ff54910b7754cddac25dfffimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1c2d8f5d9912ff36f50dc01c91bfabcdimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1c2d8f5d9912ff36f50dc01c91bfabcdimage.png deleted file mode 100644 index 809d69a..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1c2d8f5d9912ff36f50dc01c91bfabcdimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1cfd0409b18343c5aa0e4a742863553dstickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1cfd0409b18343c5aa0e4a742863553dstickPicture.png deleted file mode 100644 index ceaaf62..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1cfd0409b18343c5aa0e4a742863553dstickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1d066e57d29541b1852669d9f31e8eecclipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1d066e57d29541b1852669d9f31e8eecclipboard.png deleted file mode 100644 index 134a5f1..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE1d066e57d29541b1852669d9f31e8eecclipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE20309143f783406082fa8227ceb332c0截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE20309143f783406082fa8227ceb332c0截图.png deleted file mode 100644 index 914b0fa..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE20309143f783406082fa8227ceb332c0截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE20612257d0f44ea29703856c822950d0stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE20612257d0f44ea29703856c822950d0stickPicture.png deleted file mode 100644 index 47f8f1b..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE20612257d0f44ea29703856c822950d0stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE239add8580e01ea33a9592b219ad2e9fimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE239add8580e01ea33a9592b219ad2e9fimage.png deleted file mode 100644 index 9191a16..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE239add8580e01ea33a9592b219ad2e9fimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2674f78eee384c64b04e88582a0e5e76clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2674f78eee384c64b04e88582a0e5e76clipboard.png deleted file mode 100644 index a1114e0..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2674f78eee384c64b04e88582a0e5e76clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE26ef4b2a78ff2c28a0dacd2f72cd1fceimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE26ef4b2a78ff2c28a0dacd2f72cd1fceimage.png deleted file mode 100644 index d31d3bf..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE26ef4b2a78ff2c28a0dacd2f72cd1fceimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2954fab7a4e5446890a86e2e2689b2f5image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2954fab7a4e5446890a86e2e2689b2f5image.png deleted file mode 100644 index 483e231..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2954fab7a4e5446890a86e2e2689b2f5image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2ae66303bd38437f983a465df3546099截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2ae66303bd38437f983a465df3546099截图.png deleted file mode 100644 index 81b1d37..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2ae66303bd38437f983a465df3546099截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2c13345c757849d5b3a82210fcd089c7image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2c13345c757849d5b3a82210fcd089c7image.png deleted file mode 100644 index 4cb6ac1..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2c13345c757849d5b3a82210fcd089c7image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2cc68dfc42b14db284a866849fb6057cclipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2cc68dfc42b14db284a866849fb6057cclipboard.png deleted file mode 100644 index 1bd0d0d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2cc68dfc42b14db284a866849fb6057cclipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2ccd15caf9bd42f8a2e9d24a63c5c303image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2ccd15caf9bd42f8a2e9d24a63c5c303image.png deleted file mode 100644 index 6a36f33..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2ccd15caf9bd42f8a2e9d24a63c5c303image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2eb363b22579436daf6c442f8d55bb99截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2eb363b22579436daf6c442f8d55bb99截图.png deleted file mode 100644 index b26c14d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE2eb363b22579436daf6c442f8d55bb99截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE330065e5264d47359c951ddbba7ef933localFile.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE330065e5264d47359c951ddbba7ef933localFile.png deleted file mode 100644 index e123c7d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE330065e5264d47359c951ddbba7ef933localFile.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3335ce1a4ffb4bc3946161785318809dimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3335ce1a4ffb4bc3946161785318809dimage.png deleted file mode 100644 index 5fb7fb3..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3335ce1a4ffb4bc3946161785318809dimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE33e9383546495e823d3fef48d14f22b2image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE33e9383546495e823d3fef48d14f22b2image.png deleted file mode 100644 index d2da0ca..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE33e9383546495e823d3fef48d14f22b2image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3734c363be3041cdb248c340eccf6608image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3734c363be3041cdb248c340eccf6608image.png deleted file mode 100644 index 0c3d777..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3734c363be3041cdb248c340eccf6608image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3954317989534229a6f3353415673eb7image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3954317989534229a6f3353415673eb7image.png deleted file mode 100644 index 6b7017d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE3954317989534229a6f3353415673eb7image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE39ad1c12ce8944f5baf53adf251c6152image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE39ad1c12ce8944f5baf53adf251c6152image.png deleted file mode 100644 index 87ead34..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE39ad1c12ce8944f5baf53adf251c6152image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE407a5b70ff9f4e29bf2692184106bb98stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE407a5b70ff9f4e29bf2692184106bb98stickPicture.png deleted file mode 100644 index 50c5ce6..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE407a5b70ff9f4e29bf2692184106bb98stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE40ecee3c45ed49cba08153c5e1314e1aimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE40ecee3c45ed49cba08153c5e1314e1aimage.png deleted file mode 100644 index 0a4453b..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE40ecee3c45ed49cba08153c5e1314e1aimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE45c51d8809e541af992df6e704909de0stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE45c51d8809e541af992df6e704909de0stickPicture.png deleted file mode 100644 index c0e3989..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE45c51d8809e541af992df6e704909de0stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE4668f3efeae947e88d2604137a0ea6d4image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE4668f3efeae947e88d2604137a0ea6d4image.png deleted file mode 100644 index 8f80fb2..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE4668f3efeae947e88d2604137a0ea6d4image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE483559e02d97418681caca2ce4ce7003image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE483559e02d97418681caca2ce4ce7003image.png deleted file mode 100644 index 77d63c5..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE483559e02d97418681caca2ce4ce7003image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5195ae1087314f47af67c62f9d954ac5image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5195ae1087314f47af67c62f9d954ac5image.png deleted file mode 100644 index 21719b3..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5195ae1087314f47af67c62f9d954ac5image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5296aa7dcfd14b96881247007a0e0892stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5296aa7dcfd14b96881247007a0e0892stickPicture.png deleted file mode 100644 index 798bd13..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5296aa7dcfd14b96881247007a0e0892stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE52fd203d21d9464694047b5d1b5bfad4clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE52fd203d21d9464694047b5d1b5bfad4clipboard.png deleted file mode 100644 index 0fa4431..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE52fd203d21d9464694047b5d1b5bfad4clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5348389a4d1c4b4eb66a03f3841938f5image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5348389a4d1c4b4eb66a03f3841938f5image.png deleted file mode 100644 index 4c072c2..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5348389a4d1c4b4eb66a03f3841938f5image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE535aab41498c38bdf05ce87024623f1eimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE535aab41498c38bdf05ce87024623f1eimage.png deleted file mode 100644 index 2abde48..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE535aab41498c38bdf05ce87024623f1eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5383a9a6b4e54ff7bd5baae5562cb75e截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5383a9a6b4e54ff7bd5baae5562cb75e截图.png deleted file mode 100644 index 2427fe7..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5383a9a6b4e54ff7bd5baae5562cb75e截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE53cd85664954b3499b8c61202b4d5191image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE53cd85664954b3499b8c61202b4d5191image.png deleted file mode 100644 index 03fac29..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE53cd85664954b3499b8c61202b4d5191image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5471a94b3aef42558868d9b0ac1dc3d9clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5471a94b3aef42558868d9b0ac1dc3d9clipboard.png deleted file mode 100644 index 7a0867d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5471a94b3aef42558868d9b0ac1dc3d9clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5fcadc9becb441e19779d82e2d845ea6image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5fcadc9becb441e19779d82e2d845ea6image.png deleted file mode 100644 index 639644b..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE5fcadc9becb441e19779d82e2d845ea6image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE613c5526bad54dbda610f99c1be8d3faimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE613c5526bad54dbda610f99c1be8d3faimage.png deleted file mode 100644 index c0dc8a2..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE613c5526bad54dbda610f99c1be8d3faimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE61d26be5f462481b8afa701a030e27acclipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE61d26be5f462481b8afa701a030e27acclipboard.png deleted file mode 100644 index 4de76cb..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE61d26be5f462481b8afa701a030e27acclipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE62cf6c590d864cdd91e83392b7ca81f6image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE62cf6c590d864cdd91e83392b7ca81f6image.png deleted file mode 100644 index 2266a98..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE62cf6c590d864cdd91e83392b7ca81f6image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE64396f9c2d5b447b853171ffb6f109e3截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE64396f9c2d5b447b853171ffb6f109e3截图.png deleted file mode 100644 index 9669d7c..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE64396f9c2d5b447b853171ffb6f109e3截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE681f699a07f3448296f962f4788959eeimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE681f699a07f3448296f962f4788959eeimage.png deleted file mode 100644 index d1d50f3..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE681f699a07f3448296f962f4788959eeimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE68aa3091b49e412fbe48df310e878915clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE68aa3091b49e412fbe48df310e878915clipboard.png deleted file mode 100644 index 5ee6832..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE68aa3091b49e412fbe48df310e878915clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6a19fe5c92be4a82b3da492a6e02d38astickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6a19fe5c92be4a82b3da492a6e02d38astickPicture.png deleted file mode 100644 index edc4f93..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6a19fe5c92be4a82b3da492a6e02d38astickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6a7bb9ddd1f4a4d59cfe5e6ad3365d47image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6a7bb9ddd1f4a4d59cfe5e6ad3365d47image.png deleted file mode 100644 index 0f5c159..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6a7bb9ddd1f4a4d59cfe5e6ad3365d47image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6d0549ebb27d4d30833be4fa39800022clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6d0549ebb27d4d30833be4fa39800022clipboard.png deleted file mode 100644 index 69ee42d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6d0549ebb27d4d30833be4fa39800022clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6f00c4094996487e8c714760360e01dfstickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6f00c4094996487e8c714760360e01dfstickPicture.png deleted file mode 100644 index 4f40b40..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE6f00c4094996487e8c714760360e01dfstickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7295dea05fc1433a8128ebc8ec091265stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7295dea05fc1433a8128ebc8ec091265stickPicture.png deleted file mode 100644 index f07227c..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7295dea05fc1433a8128ebc8ec091265stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7341f65d145e4c9292f86ee78a012940clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7341f65d145e4c9292f86ee78a012940clipboard.png deleted file mode 100644 index 162e6e6..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7341f65d145e4c9292f86ee78a012940clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE76cfd724f20c4cd6b08cdacca17fbc4eimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE76cfd724f20c4cd6b08cdacca17fbc4eimage.png deleted file mode 100644 index a641472..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE76cfd724f20c4cd6b08cdacca17fbc4eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7709d0a22d554a06864909abf2732defimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7709d0a22d554a06864909abf2732defimage.png deleted file mode 100644 index 8685dbb..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7709d0a22d554a06864909abf2732defimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE778e6bbd547a49f7a27408810d3e357d截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE778e6bbd547a49f7a27408810d3e357d截图.png deleted file mode 100644 index 45d5c8c..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE778e6bbd547a49f7a27408810d3e357d截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE78fb02ac886841f196551c49c53e4fa1image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE78fb02ac886841f196551c49c53e4fa1image.png deleted file mode 100644 index cb1f8b7..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE78fb02ac886841f196551c49c53e4fa1image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE79a7854aa8f7b1ca68ca73aea35fc928image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE79a7854aa8f7b1ca68ca73aea35fc928image.png deleted file mode 100644 index 6535e7f..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE79a7854aa8f7b1ca68ca73aea35fc928image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE79e22617361347cebe8f87f732e64597image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE79e22617361347cebe8f87f732e64597image.png deleted file mode 100644 index 317d247..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE79e22617361347cebe8f87f732e64597image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7d9986301c4c4b7bafec0cf836334219image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7d9986301c4c4b7bafec0cf836334219image.png deleted file mode 100644 index f5ba6e8..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE7d9986301c4c4b7bafec0cf836334219image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE80ef22ee4f3943d387943037287538b6image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE80ef22ee4f3943d387943037287538b6image.png deleted file mode 100644 index b98bd62..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE80ef22ee4f3943d387943037287538b6image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE829ca347b9cc4d3b9763e0f526c7c621clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE829ca347b9cc4d3b9763e0f526c7c621clipboard.png deleted file mode 100644 index 2889bbe..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE829ca347b9cc4d3b9763e0f526c7c621clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE84a4440c8f764f1e9c4a2c6bb3155de1clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE84a4440c8f764f1e9c4a2c6bb3155de1clipboard.png deleted file mode 100644 index c6b0299..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE84a4440c8f764f1e9c4a2c6bb3155de1clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE85ce4d82a39f7f58a8c4a3c9752d1e53image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE85ce4d82a39f7f58a8c4a3c9752d1e53image.png deleted file mode 100644 index 5efc9e2..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE85ce4d82a39f7f58a8c4a3c9752d1e53image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE87605d40f8f547059d14da7cde016f1astickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE87605d40f8f547059d14da7cde016f1astickPicture.png deleted file mode 100644 index 7098782..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE87605d40f8f547059d14da7cde016f1astickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b51f56eeb0d4ef082b3ff4e3e984124image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b51f56eeb0d4ef082b3ff4e3e984124image.png deleted file mode 100644 index fe1d508..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b51f56eeb0d4ef082b3ff4e3e984124image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b764d09a9a243939568d97dfa5958faimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b764d09a9a243939568d97dfa5958faimage.png deleted file mode 100644 index a12f768..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b764d09a9a243939568d97dfa5958faimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b9e7526b7414947be881eb4bfef5f68stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b9e7526b7414947be881eb4bfef5f68stickPicture.png deleted file mode 100644 index bdfe821..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8b9e7526b7414947be881eb4bfef5f68stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8d9bc18de10e43f6b7100034df6b7547截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8d9bc18de10e43f6b7100034df6b7547截图.png deleted file mode 100644 index 8659963..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8d9bc18de10e43f6b7100034df6b7547截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8e82e4fab8524848a42b96e8a236dbd1image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8e82e4fab8524848a42b96e8a236dbd1image.png deleted file mode 100644 index dba03eb..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE8e82e4fab8524848a42b96e8a236dbd1image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE90052f7e84d296350dc684c5f8d9fe79image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE90052f7e84d296350dc684c5f8d9fe79image.png deleted file mode 100644 index 9667bd1..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE90052f7e84d296350dc684c5f8d9fe79image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE906e727a49dfe1ab4acec6bd2b0922c3image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE906e727a49dfe1ab4acec6bd2b0922c3image.png deleted file mode 100644 index 4f7c5f7..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE906e727a49dfe1ab4acec6bd2b0922c3image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE911e5cc27c401553aa3ef8b3f7a8d352image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE911e5cc27c401553aa3ef8b3f7a8d352image.png deleted file mode 100644 index 9ab2ccd..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE911e5cc27c401553aa3ef8b3f7a8d352image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE95a3eb98035f4d6588a7cc60f04e3a43image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE95a3eb98035f4d6588a7cc60f04e3a43image.png deleted file mode 100644 index 4658925..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE95a3eb98035f4d6588a7cc60f04e3a43image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE965e14afbca177da23bad4b24f218311image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE965e14afbca177da23bad4b24f218311image.png deleted file mode 100644 index 42e6f60..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE965e14afbca177da23bad4b24f218311image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE99c587d679ee1e89a92072ae24e5a10fimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE99c587d679ee1e89a92072ae24e5a10fimage.png deleted file mode 100644 index c2e5aac..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE99c587d679ee1e89a92072ae24e5a10fimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9a911191d7d346488b2985c095e246c8image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9a911191d7d346488b2985c095e246c8image.png deleted file mode 100644 index ea69e8d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9a911191d7d346488b2985c095e246c8image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9ade1b9e6431d4fa2ad97722032c0a0eimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9ade1b9e6431d4fa2ad97722032c0a0eimage.png deleted file mode 100644 index a5eda5f..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9ade1b9e6431d4fa2ad97722032c0a0eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9c4cee3e5fc04fe4bba5847c6b3d477cimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9c4cee3e5fc04fe4bba5847c6b3d477cimage.png deleted file mode 100644 index 8e06d3e..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9c4cee3e5fc04fe4bba5847c6b3d477cimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9d9186b70a304a4db86565fde8a8d1e2image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9d9186b70a304a4db86565fde8a8d1e2image.png deleted file mode 100644 index 6d555a7..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCE9d9186b70a304a4db86565fde8a8d1e2image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa00846a6c2b74327a597f110d86d52f4stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa00846a6c2b74327a597f110d86d52f4stickPicture.png deleted file mode 100644 index 95c5382..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa00846a6c2b74327a597f110d86d52f4stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa3c86ec3e4414dd9865a99216bca21b8image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa3c86ec3e4414dd9865a99216bca21b8image.png deleted file mode 100644 index 1c40394..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa3c86ec3e4414dd9865a99216bca21b8image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa9760ac9399743f0ab2d4629e2817855clipboard.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa9760ac9399743f0ab2d4629e2817855clipboard.png deleted file mode 100644 index 0b6192a..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEa9760ac9399743f0ab2d4629e2817855clipboard.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEab3791f6ea2d4ee1a800caaf9d9c809a截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEab3791f6ea2d4ee1a800caaf9d9c809a截图.png deleted file mode 100644 index cd59029..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEab3791f6ea2d4ee1a800caaf9d9c809a截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEabbcafc8a41effea663a62f333e9a737image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEabbcafc8a41effea663a62f333e9a737image.png deleted file mode 100644 index d18fd7a..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEabbcafc8a41effea663a62f333e9a737image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaeb2cb5c6d2343e79081336fe42953faimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaeb2cb5c6d2343e79081336fe42953faimage.png deleted file mode 100644 index edb385b..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaeb2cb5c6d2343e79081336fe42953faimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaf110ccde82f4aad86243128a0aa65a2image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaf110ccde82f4aad86243128a0aa65a2image.png deleted file mode 100644 index 8aea442..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaf110ccde82f4aad86243128a0aa65a2image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaf43058e62b1433f8f86ddae338e1a9a截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaf43058e62b1433f8f86ddae338e1a9a截图.png deleted file mode 100644 index 5f59ac7..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEaf43058e62b1433f8f86ddae338e1a9a截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb0ab22fbfdce44eb8e8a1603f0f71a73image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb0ab22fbfdce44eb8e8a1603f0f71a73image.png deleted file mode 100644 index 796a1e4..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb0ab22fbfdce44eb8e8a1603f0f71a73image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb0ee65d865824f49bc07757db8bf7bd7截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb0ee65d865824f49bc07757db8bf7bd7截图.png deleted file mode 100644 index c975db5..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb0ee65d865824f49bc07757db8bf7bd7截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb1d100d90da44dd290e5d466aa253247image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb1d100d90da44dd290e5d466aa253247image.png deleted file mode 100644 index a5afe7d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb1d100d90da44dd290e5d466aa253247image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb77a86e6998ad4cd67f54764036f947fimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb77a86e6998ad4cd67f54764036f947fimage.png deleted file mode 100644 index a661772..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEb77a86e6998ad4cd67f54764036f947fimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEba91a8a84b224d58a75674ed4d98a3beimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEba91a8a84b224d58a75674ed4d98a3beimage.png deleted file mode 100644 index f53d8fc..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEba91a8a84b224d58a75674ed4d98a3beimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbb1d9b96ef1b391490c612421995ab0bimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbb1d9b96ef1b391490c612421995ab0bimage.png deleted file mode 100644 index 5dbfae5..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbb1d9b96ef1b391490c612421995ab0bimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbc70bec4ac945be15f994ecfdadcffbbimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbc70bec4ac945be15f994ecfdadcffbbimage.png deleted file mode 100644 index 62ed32f..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbc70bec4ac945be15f994ecfdadcffbbimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbc7c70fc9bcf45a4b1faa871d65b6ae0image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbc7c70fc9bcf45a4b1faa871d65b6ae0image.png deleted file mode 100644 index 494333b..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbc7c70fc9bcf45a4b1faa871d65b6ae0image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbd44608fd6664867bca2f8e4561fae77image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbd44608fd6664867bca2f8e4561fae77image.png deleted file mode 100644 index 1aaa6de..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEbd44608fd6664867bca2f8e4561fae77image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc0365553cbf46976d46016c7ee3ca7d4image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc0365553cbf46976d46016c7ee3ca7d4image.png deleted file mode 100644 index f2cf76c..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc0365553cbf46976d46016c7ee3ca7d4image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc1d22d25f7ac4510a6dedc0c74470887截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc1d22d25f7ac4510a6dedc0c74470887截图.png deleted file mode 100644 index a458de5..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc1d22d25f7ac4510a6dedc0c74470887截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc3da925d41ce4533a2ea08f06e79c028localFile.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc3da925d41ce4533a2ea08f06e79c028localFile.png deleted file mode 100644 index 707661e..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc3da925d41ce4533a2ea08f06e79c028localFile.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc7bb8456a3a64bc698f5909f5de32357image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc7bb8456a3a64bc698f5909f5de32357image.png deleted file mode 100644 index 00f1fbf..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEc7bb8456a3a64bc698f5909f5de32357image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEcdae66fb6ebb479faa83c1a866792dcfimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEcdae66fb6ebb479faa83c1a866792dcfimage.png deleted file mode 100644 index 5c855eb..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEcdae66fb6ebb479faa83c1a866792dcfimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEd1d54f0ee77146aab54b2abc96a7431aimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEd1d54f0ee77146aab54b2abc96a7431aimage.png deleted file mode 100644 index a244df0..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEd1d54f0ee77146aab54b2abc96a7431aimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdca6cd5efadd4689831d682bf41cc7ccimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdca6cd5efadd4689831d682bf41cc7ccimage.png deleted file mode 100644 index 44ca8df..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdca6cd5efadd4689831d682bf41cc7ccimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdcccbf9b8b9041f4b0578904d4d8954e截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdcccbf9b8b9041f4b0578904d4d8954e截图.png deleted file mode 100644 index b6d86ab..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdcccbf9b8b9041f4b0578904d4d8954e截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdce1d39bdf30394844f8f4495a038ee3image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdce1d39bdf30394844f8f4495a038ee3image.png deleted file mode 100644 index ff5d7e3..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEdce1d39bdf30394844f8f4495a038ee3image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe2fd4c540d704f1c9530a4d4ecb9e21estickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe2fd4c540d704f1c9530a4d4ecb9e21estickPicture.png deleted file mode 100644 index 9c5570e..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe2fd4c540d704f1c9530a4d4ecb9e21estickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe544d03066fb43a595fa2645f30b1ea7image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe544d03066fb43a595fa2645f30b1ea7image.png deleted file mode 100644 index ba9d377..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe544d03066fb43a595fa2645f30b1ea7image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe54e5e49800c59dd7043655d8afddc0aimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe54e5e49800c59dd7043655d8afddc0aimage.png deleted file mode 100644 index 6302cc6..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe54e5e49800c59dd7043655d8afddc0aimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe5e0a4a20f1026774dfaabcd050a7551image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe5e0a4a20f1026774dfaabcd050a7551image.png deleted file mode 100644 index 33da785..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe5e0a4a20f1026774dfaabcd050a7551image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe90e25a2d4896ff0028bde1f058872bbimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe90e25a2d4896ff0028bde1f058872bbimage.png deleted file mode 100644 index b240317..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEe90e25a2d4896ff0028bde1f058872bbimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEeab95646301b4b9093879917fcf38fffstickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEeab95646301b4b9093879917fcf38fffstickPicture.png deleted file mode 100644 index 6c0b05e..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEeab95646301b4b9093879917fcf38fffstickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEec78f62ce35a4b90b4e04faf253872e0stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEec78f62ce35a4b90b4e04faf253872e0stickPicture.png deleted file mode 100644 index 9f29068..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEec78f62ce35a4b90b4e04faf253872e0stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEecb316b50a0142919418cf4383305defstickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEecb316b50a0142919418cf4383305defstickPicture.png deleted file mode 100644 index 74db719..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEecb316b50a0142919418cf4383305defstickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEece907cd362d4acaaca0307d0628fb21image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEece907cd362d4acaaca0307d0628fb21image.png deleted file mode 100644 index 623393d..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEece907cd362d4acaaca0307d0628fb21image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEed5787510918454ba2bb99c072576e41stickPicture.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEed5787510918454ba2bb99c072576e41stickPicture.png deleted file mode 100644 index 8659963..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEed5787510918454ba2bb99c072576e41stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEee8c6774c8ddf514f5e8be0b4f25c4caimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEee8c6774c8ddf514f5e8be0b4f25c4caimage.png deleted file mode 100644 index c0e213f..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEee8c6774c8ddf514f5e8be0b4f25c4caimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf401109d263b40d2bd759196994c0a1fimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf401109d263b40d2bd759196994c0a1fimage.png deleted file mode 100644 index 0d67380..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf401109d263b40d2bd759196994c0a1fimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf78ab8a91b4a4da49ff5b944228cb9b4截图.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf78ab8a91b4a4da49ff5b944228cb9b4截图.png deleted file mode 100644 index de904ad..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf78ab8a91b4a4da49ff5b944228cb9b4截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf78b324209b34c8f982b7b3067bd9f5dimage.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf78b324209b34c8f982b7b3067bd9f5dimage.png deleted file mode 100644 index b31a296..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEf78b324209b34c8f982b7b3067bd9f5dimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEfc33d1691fe1d4e612571e4a68207ed7image.png b/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEfc33d1691fe1d4e612571e4a68207ed7image.png deleted file mode 100644 index b495298..0000000 Binary files a/Collection/YoudaoyunNotes/01Linux基础/images/WEBRESOURCEfc33d1691fe1d4e612571e4a68207ed7image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/01-C语言概述.md b/Collection/YoudaoyunNotes/02C语言/01-C语言概述.md deleted file mode 100644 index 720dd3a..0000000 --- a/Collection/YoudaoyunNotes/02C语言/01-C语言概述.md +++ /dev/null @@ -1,130 +0,0 @@ -# 一、概述 - -C 语言是一种通用的、 - -## 1. **发展历程** - -- **1972 年**:C 语言诞生于贝尔实验室,作为 UNIX 系统的开发语言。 - -- **1989 年**:ANSI C(C89)成为首个标准化版本,奠定语言基础。 - -- **1999 年**:C99 引入新特性(如布尔类型、变长数组)。 - -- **2011 年至今**:C11、C17 等版本持续完善,保持语言活力。 - -## 2. **重要意义** - -- **系统级编程**:UNIX、Linux、Windows 等操作系统核心均用 C 语言编写。 - -- **语言桥梁**:C++、Java、Python 等语言借鉴其语法结构,被称为 “编程的母语”。 - -- **性能标杆**:代码执行效率接近汇编语言,适合对性能要求极高的场景。 - -# **二、C 语言的核心特性** - -## 1. **高效性** - -- 直接操作内存(通过指针),减少运行时开销。 - -- 编译型语言,生成机器码,执行速度快。 - -## 2. **灵活性** - -- 支持底层操作(如位运算、内存管理)。 - -- 可扩展为面向对象(如通过结构体和函数指针实现封装)。 - -## 3. **可移植性** - -- 遵循标准C的代码可在不同平台(如 Windows、Linux、嵌入式系统)编译运行。 - -## 4. **强大的标准库** - -- **输入输出**:stdio.h(如printf、scanf)。 - -- **字符串处理**:string.h(如strcpy、strlen)。 - -- **内存管理**:stdlib.h(如malloc、free)。 - -- **数学运算**:math.h(如sqrt、sin)。 - -# **三、C 语言的应用场景** - -## 1. **系统软件** - -- 操作系统内核(如 Linux、macOS)。 - -- 驱动程序、文件系统。 - -## 2. **嵌入式开发** - -- 物联网设备、智能家居。 - -- 汽车电子、工业控制。 - -## 3. **游戏开发** - -- 游戏引擎(如 Unity 的底层)。 - -- 高性能游戏逻辑。 - -## 4. **高性能应用** - -- 数据库系统(如 MySQL)。 - -- 图形处理库(如 OpenGL)。 - -# **四、C 语言的优缺点** - -## 1. **优点** - -- 执行效率高,适合对性能敏感的场景。 - -- 跨平台兼容性好。 - -- 学习曲线平缓,适合编程入门。 - -## 2. **缺点** - -- 手动内存管理(如malloc/free)易导致内存泄漏。 - -- 缺乏高级特性(如垃圾回收、泛型)。 - -- 错误处理依赖返回值和全局变量(如errno)。 - -# **五、学习资源推荐** - -1. **经典教材** - -- 《C Primer Plus》(入门) - -- 《C Programming Language》(K&R 原著,进阶) - -- 《Linux图文指南》 - -1. **在线教程** - -- - -- - -- - -1. **开发环境** - -- 编译器:GCC(Linux/macOS)、MinGW(Windows)。 - -- IDE:CLion(JetBrains)、Code::Blocks、VsCode。 - -# 六、怎么学好C语言 - -1. 先学习C语言的基础知识,打好基础 - -1. 多看、多写、多思考、多练习编程 - -1. 开始着手写一些简单的项目,如小游戏 - -1. 在网上寻找一些大佬的项目进行观摩、学习和积累经验。 - -> 只要写不死,就往死里写 -> ----学好C语言 diff --git a/Collection/YoudaoyunNotes/02C语言/02-C语言入门.md b/Collection/YoudaoyunNotes/02C语言/02-C语言入门.md deleted file mode 100644 index 1c31f4e..0000000 --- a/Collection/YoudaoyunNotes/02C语言/02-C语言入门.md +++ /dev/null @@ -1,231 +0,0 @@ -# 一、C语言基础语法 - -1. **C语言结构** - -C语言程序源码文件以.c结尾,一个C语言程序主要包括以下部分: - -- 预处理指令:以'#'开头,如:#include --> 用于处理头文件 - -| 指令 | 说明 | -| -- | -- | -| `#include` | 包含(引入)一个源代码文件 | -| `#define` | 定义一个宏 | -| `#undef` | 取消已定义的宏 | -| `#if` | 如果给定条件为真,则编译其后的代码 | -| `#ifdef` | 如果宏已经定义,则编译其后的代码 | -| `#ifndef` | 如果宏没有定义,则编译其后的代码 | -| `#elif` | 如果前面的 `#if` 给定条件为假,并且当前条件为真,则编译其后的代码 | -| `#endif` | 结束一个 `#if`、`#ifdef` 或者 `#ifndef` 条件编译块 | -| `#defined` | 这不是命令,而是操作符,用来判断某个宏是否已被定义。 | - - -- 主函数:main函数 --> C语言程序的入口,一个C语言程序有且仅有一个主函数(main) - -- 变量:int a,b,c;由符号(用户标识符)构成。 - -- 语句及表达式:语句以英文分号;结尾,if(....)表达式等等 - -- 注释:语句或表达式的解释,单行(`//`)和多行(`/* */`) - -1. **C语言的语法** - -1. C语言的令牌 - -在 C 语言中,令牌(Token)是程序的基本组成单位,编译器通过对源代码进行词法分析,将代码分解成一个个的令牌。C 语言的令牌主要包括以下几种类型: - -- 关键字(Keywords):具有特定含义的单词。 - -- 标识符(Identifiers):描述数据或功能的符号或单词 - -- 常量(Constants):数值不能修改的量 - -- 字符串值(String Literals):`""` - -- 运算符(Operators): `+、-、*、/.....` - -- 分隔符(Separators): `;` - -1. 分号; - -在C语言程序中,英文的分号是语句的结束符,每个语句必须以分号结尾,它表明一个逻辑的结束。 - -1. 注释 - -在C语言程序中,注释用于说明语句或程序的功能和使用方法,注释的语句不会参与到程序的运行只用于开发人员或 使用人员进行查阅C语言程序,注释的方式有单行(`//` )和多行(`/* */`)两种。注释不能嵌套使用。 - -单行注释: // 需要注释的内容 - -多行注释:`/* 需要注释的内容 */` - -1. 标识符 - -在C语言中标识符用于标识变量、函数、数组等或者其他用户自定义名称或项目名字;具体要求如下 - -- 只能包含数字、 字母以及下划线, 不能包含其他任何特殊字符。 - -- 只能以大写、小写字母或者下划线开头。 - -- 不能跟系统已有的关键字重名, 也不能跟在相同作用域的其他标识符重名。 - -```c -abc(√) 123(×) _123(√) a&b(×) Ace(√) int(×) -``` - -1. 关键字 - -在C语言程序中具有特殊功能或含义的单词,函数名、变量名、常量名及其他用户标识符不能是关键字 - -| 关键字 | 说明 | -| ---------- | ---------------------------------- | -| `auto` | 声明自动变量 | -| `break` | 跳出当前循环 | -| `case` | 开关语句分支 | -| `char` | 声明字符型变量或函数返回值类型 | -| `const` | 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 | -| `continue` | 结束当前循环,开始下一轮循环 | -| `default` | 开关语句中的"其它"分支 | -| `do` | 循环语句的循环体 | -| `double` | 声明双精度浮点型变量或函数返回值类型 | -| `else` | 条件语句否定分支(与 if 连用) | -| `enum` | 声明枚举类型 | -| `extern` | 声明变量或函数是在其它文件或本文件的其他位置定义 | -| `float` | 声明浮点型变量或函数返回值类型 | -| `for` | 一种循环语句 | -| `goto` | 无条件跳转语句 | -| `if` | 条件语句 | -| `int` | 声明整型变量或函数 | -| `long` | 声明长整型变量或函数返回值类型 | -| `register` | 声明寄存器变量 | -| `return` | 子程序返回语句(可以带参数,也可不带参数) | -| `short` | 声明短整型变量或函数 | -| `signed` | 声明有符号类型变量或函数 | -| `sizeof` | 计算数据类型或变量长度(即所占内存字节数) | -| `static` | 声明静态变量 | -| `struct` | 声明结构体类型 | -| `switch` | 用于开关语句 | -| `typedef` | 用以给数据类型取别名 | -| `unsigned` | 声明无符号类型变量或函数 | -| `union` | 声明共用体类型 | -| `void` | 声明函数无返回值或无参数,声明无类型指针 | -| `volatile` | 说明变量在程序执行中可被隐含地改变 | -| `while` | 循环语句的循环条件 | - - -### C99 新增关键字 - -| `_Bool` | `_Complex` | `_Imaginary` | `inline` | `restrict` | - - -### C11 新增关键字 - -| `_Alignas` | `_Alignof` | `_Atomic` | `_Generic` | `_Noreturn` | -| ---------------- | --------------- | ------- | -------- | --------- | -| `_Static_assert` | `_Thread_local` | | | | - - -# 二、编程规范 - -1. 命名方式 - -自定义标识符时要做到**见名知意** - -变量名:max_number zui_da_zhi maxNumber - -函数名:max_number_function ji_suan_zui_da_zhi MaxNumberFunction - -常见的命名方式: - -- ==驼峰式== - -以小写或大写字母开头,后面跟大写或小写字母,如myApp,MyName等类似的命名方式 - -- 匈牙利命名法 - -以变量类型的缩写开头,如`int iCount; unsigned int uiNum;`等 - -- 帕斯卡命名法 - -类似与驼峰式命名法,以大写字母开头,如MyApp,MyName等 - -- ==下划线命名法== - -在Linux中最常见的命名方式,Linux一些系统库、开源软件等编码中较为常见。 - -如`char my_name[10];int first_num;`等 - -2. 缩进 - -在C语言源码中缩进要对齐,代码要有层级体现,最好用 8 个空格缩进,避免用 4 个空格甚至是 2 个空格 - -如: - -```c -void fun(void) -{ - int n=10; - if(n<10){ - printf("...."); - } -} -``` - -3. 空格和空行 - -空格和空行也是提高程序可读性的很重要的一方面,谁都不愿意阅读挤在一起的代码, 因此适当的空格和空行能让程序看起来逻辑更加清晰。 - -4. 括号 - -函数体和循环结构、分支结构等代码块需要用到花括号将其代码括起来,对于函数而言, 在 LINUX 编码风格中,左右花括号分别占用一行,在其他的代码块中,左花括号可以放在 上一行的最右边,右花括号单独占一行(推荐像函数一样左右括号各自单独占一行,使得代码的风格更具一致性)。 - -5. 注释 - -在我们编写程序的时候,如果遇到比较复杂的情形,我们可以在代码中用自然语言添加 一些内容,来辅助我们自己和将来要阅读该程序的人员更好地理解程序。 - -更详细的规范见《编程规范.pdf》 - -[编程规范.pdf](attachments/WEBRESOURCE40a76a7d230733292ec04717f3f6f254编程规范.pdf) - -# 三、第一个C语言程序 - -第一个C语言程序源码,常常是在终端中输出一段话如"Hello world" - -```c -#include  // <> 表示在系统的路径中寻找头文件stdio.h,未找到则报错 -#include "myhead.h"  // ""表示在本目录中寻找或者在设置的路径中查找头文件,未找到则去系统路径中寻找,均未找到则报错 - -// 主函数,C语言程序的入口,一个完整的C语言程序必须有且只能有一个main函数 -int main(int argc, char const *argv[]) -{   // 函数的开始 表示函数的内容是一个整体 -    printf("hello GEC\n"); // 将"hello GEC\n"输出到终端屏幕 -    return 0;  // 函数功能的结束  不是必须的 -} // 函数语句的结束 - -``` - -源码的第一行是#include ,#include说明它一条预处理指令,在C语言源文件编译之初就会执行执行的指令,表示告诉编译器需要加载"stdio.h"这个文件的内容到源代码中来,<>尖括号表示告诉编译器寻找这个文件的路径是优先在系统的路径中,""双引号表示告诉编译器寻找头文件的路径优先选择当前路径或明确指定的路径中进行,若未找到则去系统路径中寻找。 - -![](images/WEBRESOURCE4bb07092451ff2e2b923c57cb023415dimage.png) - -下一行`int main(int argc, char *argv[])`是主函数,程序执行从这里开始,自上而下进行逐一运行,C语言的程序有且仅有一个main函数,主函数的一般形式为:`int main(int argc, char *argv[])`或`int main(void)` - -下一行//单行注释,编译器会自动忽略,下图一个预编译后的文件在这个文件中头文件被其内容替换,注释被删除。 - -![](images/WEBRESOURCEb4c06b079d7fe90fbd6ea378458623dcimage.png) - -下一行{表示代码块的开始,在C语言程序中多条语句的集合常常用花括号进行包含表示复合语句(函数体、循环体、条件语句等) - -下一行`printf(....)`是C语言中另一个函数的调用,调用这个函数可以在屏幕上显示其中的内容如:Hello world,这个函数在stdio.h中声明在标准C库中定义。 - -下一行`return 0;`表示函数的结束,执行这个语句表示main函数的终止并返回一个0值 - -最后一行}表示代码块的结束 - -![](images/WEBRESOURCE1ec0d881c347298235a88359695ad942image.png) - -注意:如下图所示的问题是源码中缺少头文件 - -![](images/WEBRESOURCE57ae4c50fdbe52495c1fec865fb6c5fbimage.png) - -练习: - -在终端输出自己的学校和姓名,运行结果截图发QQ群。 \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/03-数据类型及IO流.md b/Collection/YoudaoyunNotes/02C语言/03-数据类型及IO流.md deleted file mode 100644 index 3e49c05..0000000 --- a/Collection/YoudaoyunNotes/02C语言/03-数据类型及IO流.md +++ /dev/null @@ -1,715 +0,0 @@ -# 一、基本数据类型 - -1. **字符型** - -数据类型关键字:char - -类型长度:1Byte(字节) = 8bit(位) - -Byte --> KB --> MB --> GB-->Tb --> PB 进制换算满1024进一 - -取值范围 - -无符号(只有自然数):unsigned char 取值范围 0~2^8-1 0~255 - -有符号(负数和自然数):(signed) char 取值范围 -2^7 ~ 2^7-1 -128~127 - -![](images/WEBRESOURCE38bf818da8bb069ed9eb989de0bff6eaimage.png) - -使用方法 - -```c -char a = 'a'; // 字符在内存中以ASCII码值的形式存在,因此char a='a'等价于 char a=97 - // 单字节整数类型 -``` - -![](images/WEBRESOURCE73773b4065a244cce2bf36de18615e0cimage.png) - -记忆方法:**'A' -> 65 'a'->97 '0'->48** - -1. **整型** - -1. 短整型 - -类型关键字:short - -类型长度:2 字节(32位与64位) - -取值范围 - -无符号(只有自然数):unsigned short 取值范围 0~2^16-1 0~65535 - -有符号(负数和自然数):(signed) short 取值范围 -2^15 ~ 2^15-1 -32768~32767 - -1. 整型 - -类型关键字:int - -类型长度:4 字节(32位与64位) - -取值范围 - -无符号(只有自然数):unsigned int 取值范围 0~2^32-1 0~4294967295 - -有符号(负数和自然数):(signed) short 取值范围 -2^31 ~ 2^31-1 -2147483648~2147483647 - -1. 长整型 - -类型关键字:long(32位与64位) - -类型长度:4 / 8字节(根据系统的位数决定32位4字节 64位8字节) - -取值范围 - -无符号(只有自然数):unsigned int 取值范围 0~2^32-1 / 0~2^64-1 - -有符号(负数和自然数):(signed) short 取值范围 -2^31 ~ 2^31-1 / -2^63~2^63-1 - -1. 长长整型 - -类型关键字:long long - -类型长度:8 字节 - -取值范围 - -无符号(只有自然数):unsigned int 取值范围 0~2^64-1 - -有符号(负数和自然数):(signed) short 取值范围 -2^63~2^63-1 - -1. **浮点型(小数)** - -1. 单精度浮点型 - -类型关键字:float - -类型长度:4 字节,6位有效位 - -取值范围:1.2E-38 到 3.4E+38 - -![](images/WEBRESOURCE9056ea5007d1d9231711d63d2bbf867eimage.png) - -![](images/WEBRESOURCEd429a77169c21de412bd8ee7b02e5313image.png) - -1. 双精度浮点型 - -类型关键字:double - -类型长度:8 字节,15位有效位 - -取值范围:2.3E-308 到 1.7E+308 - -![](images/WEBRESOURCE0e7ea7d0398d9e54868b0d0d16713384image.png) - -1. 长双精度浮点型 - -类型关键字:long double - -类型长度:16 字节,19位有效位 - -取值范围:3.4E-4932 到 1.1E+4932 - -![](images/WEBRESOURCE4bd255fbf9260ad534192cb1d5185cf0image.png) - -注意: - -比较两个int类型的变量是否相等时 - -```c -int a,b; -if(a == b) -... -``` - -比较两个float类型的变量进行比较时 - -```c -float a,b; -a=1.1; -b=2.2; -if(b-1.1 == a) // × 因为在C语言中浮点数是存在精度损失的,有可能比原来的数大,也有可能小 -// 浮点数不能直接用 == 号比较。要使用精度进行判断,精度可以理解为引发一个浮点数发生改变的最小值。 -// 当一个浮点数加上精度或者减去精度,都不等于该数本身。 -// 精度可以是自己定义的,也可以用C语言自带的 -if(fabs(b-1.1-a) < 0.000001) // √ if(fabs(b-1.1-a) < 0.000001)  // b-1.1==a   b-1.1-a == 0 -// fabs是数学可函数用于取绝对值的,需要添加math.h头文件 #include -``` - -1. **布尔型** - -该类型使用时需要添加"#include " - -类型关键字:bool - -类型长度:1 字节 - -取值范围:真或假(true or false) - -> 真:非0或非NULL即真,负数为真,常用1表示真 -> 假:0或NULL -> int --> 非0 char -->非'\0' float --> 非'0.0' bool --> 非false 指针-->非NULL - - -1. **空类型** - -注意该类型只能用于定义指针、函数或修饰函数的参数列表,不能定义普通变量 - -类型关键字:void --> 空 - -类型长度:1 字节 - -## 数据类型溢出 - -![](images/WEBRESOURCE2416db6773bc1892a970d22688b28c02image.png) - -![](images/WEBRESOURCE9a3ffeea27bb5e725aff994cb67d133cimage.png) - -# 二、变量 - -## 概念 - -在内存中,数据可以被修改的空间,在程序执行过程中数据的值可发生修改, - -常见形式:数据类型 用户标识符; - -变量声明声明定义: - -```c - char a; // 声明定义一个char类型的变量a - int b; // 声明定义一个int类型的变量b - float c; // 声明定义一个float类型的变量c -``` - -变量的初始化 - -```c -char a = 'a'; // =在C语言中属于赋值操作即将某个数据放入谋片内存空间,声明定义一个char类型的变量a并进行初始化赋值 -``` - -![](images/WEBRESOURCE241c9ea7af5f38a2d179fd848e37cfa9image.png) - -## 局部变量 - -声明定义在函数内部,在当前的{}中有效,函数的参数是局部变量 - -## 全局变量 - -声明定义在函数的外部,在本文件中有效,所有函数都可访问。 - -**注意:** - -```c - - -#include - -float pi = 3.14; // 不在函数内不在{}中的变量——全局变量(可用范围是当前这个文件内) - -int main(int argc, char const *argv[]) -{ -    char a = 'A';  // 变量的声明定义放在一对{}内的变量——局部变量(可用范围局限于这一对{}) -    { -        int  b;   // 花括号{}包含的区域称为 —— 局部作用域 -    } -    // b = 50;  // ❌超出作用域范围 -    // pi = 6.28;  // ✔ 全局作用域包含局部作用域 - -    // pi ?  3.14 - -    float pi=1.32; // ✔ 变量在同一个作用域中不能重名,但在不同的作用域中可以重复 - -    // pi ?  1.32 - -    { -        // pi ?  1.32 -        float pi=33.32; // ✔ 当不同作用域中的变量名字相同,使用时采用就近原则 - -       //  pi ? 33.32 -    } - -    // pi ?  1.32 - -    printf("a = %c\n", a); -    return 0; -} - -``` - -# 三、常量 - -在内存中,数据不能被改变空间,在程序执行过程中数值不能被修改,保持固定的值也称 - -```c -10 3.14 5.20 66 88 'a' -``` - -1. **整型常量(二进制、八进制、十进制、十六进制)** - -1. 二进制 - -表示范围0和1,满2进一(1 + 1 ==> 0B10B B1 + 1 10 ) - -1. 八进制 - -表示范围0~7,满8进一(7 +1 ==> 0o10O 07 +1 010) - -1. 十进制 - -表示范围0~9,满10进一(9 +1==> 10D 9+1 10) - -1. 十六进制 - -表示范围0~9 A~F(10~15),满16进一(F + 1 ==> 0x10H 0xF+1 0x10) - -### 进制间支持相互转换 - -**二进制转N进制** - -二进制:01001101 - -转为八进制(三位二进制等于一位八进制,从右往左不足3位左补0,421码进行转换):0115 - -转为十进制(使用从右往左逐位乘2的(位数-1)次幂求和):$0*2^7+1*2^6+0*2^5+0*2^4+1*2^3+1*2^2+0*2^1+1*2^0 = 0+64+0+0+8+4+0+1 = 77$ - -转为十六进制(四位二进制等于一位十六进制,从右往左不足4位往左补0,8421码进行转换):0x4D - -**十进制转N进制** - -十进制:123 - -除N取余倒记法(短除法) - -![](images/WEBRESOURCE01494a5ca65c3e8f09d6221377f879c2image.png) - -**八进制转N进制** - -转二进制:一个八进制等于三位二进制,421(05 ==》 101) - -转十进制:使用从右往左逐位乘8的(0+位的位置-1)次幂求和 - -转十六进制:转二进制后转十六进制 - -**十六进制转N进制** - -转二进制:一个十六进制等于四位二进制,8421(0x7 ==》 0111) - -转十进制:使用从右往左逐位乘16的(0+位的位置-1)次幂求和 - -转八进制:转二进制后转八进制 - -```c -223 // ✔️ -215u // ✔️ unsign int -0xFEEL // ✔️ 十六进制常量 L long int -078 // ❌ 0表示数据类型为八进制但八进制数据没8 -032UU // ❌ U不能重复 -88 // ✔️ -0233 // ✔️ -30 // ✔️ -30l // ✔️ -0x4b // ✔️ -312UL // ✔️ unsigned long int -0xFEUL // ✔️ 十六进制无符号成整型常量 -``` - -有符号整型常量存储方法 —— 存储补码 - -原码:数据绝对值的二进制编码,无符号数在内存中以原码形式保存 - -反码:对原码逐位取反 - -补码:反码加1,有符号数的二进制码的最高位为符号位(1负 0正),在内存中用其绝对值原码的补码(符号位保持不变)进行存储, - -![](images/WEBRESOURCE9923ec431e7de4a5464765a1739d32ccimage.png) - -1. **浮点常量** - -浮点型常量由符号位、整数部分、小数点、小数部分和E指数部分组成 - -```c -3.14159 // 合法 -3.14159E5L // 合法 3.14159*10^5 -510E // 非法 不完整的指数 -110E // 非法 没有小数或指数 -.e55 // 非法 缺少整数或分数 -+1.2e+5 // 合法 +1.2*10^5 -1.5e-9 // 合法 1.5*10^-9 --5.0e10 // 合法 -5.0*10^10 -``` - -1. **字符常量** - -字符常量用单引号包含,例如:'x' 可以存储在  - -字符常量可以是一个普通的字符(例如 'x')、一个转义序列(例如 '\t'),或一个通用的字符(例如 '\u02C0')。 - -在 C 语言中,有一些特定的字符,当它们前面有反斜杠(转义字符 \ )时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符(\t)等。 - -| 转义序列 | 含义 | | -| ------------ | ------------- | --- | -| `\\` | \ 字符 | | -| `\'` | ' 字符 | | -| `\"` | " 字符 | | -| `\?` | ? 字符 | | -| `\a` | 警报铃声 | | -| `\b` | 退格键 | | -| `\f` | 换页符 | | -| `\n` | 换行符 | | -| `\r` | 行首符 | | -| `\t` | 水平制表符 | | -| `\v` | 垂直制表符 | | -| `\ooo` | 一到三位的八进制数 | | -| `\xhh . . .` | 一个或多个数字的十六进制数 | | - - -\开头的表示八进制数对应的字符,如:'\43' --> 043 --> 100011 --> '#' - -```c -char a = '\43'; // char a = 043; char a = '#'; // 没有分别 -char *s = "\61\62"; // char *s = "12" //没有区别 -char *s = "061062"; // 表示就是字符串"061062",不等价于char *s = "12"; -``` - -\x开头表示十六进制数对应的字符,如:'\x31' --> 0x31 --> '1' - -```c -char c = '\x31'; // 等价于 char c = 0x31; 或 char c='1'; -char *s = "\x31\x32"; // 等价于 char *s = "12"; -char *s = "0x310x32"; // 表示就是字符串"0x310x32"不等同于char *s = "12"; -``` - -字符常量中内存中存放时是存放其对应的ASCII码值,实际上字符常量在内存中是单字节的整型常量数据 - -![](images/WEBRESOURCEda3558d0f467fb2e8b63e0e13cc8213dstickPicture.png) - -**记忆ASCII:'A' --> 65 'a' --> 97 '0'-->48** - -![](images/WEBRESOURCE4f76333942e38a6ebe5008d9491852a9stickPicture.png) - -**总结:整型常量、字符常量、浮点常量都可通过对应的类型的变量进行表示。** - -1. **字符串常量** - -字符串常量用双引号包含,例如:"xyz",字符串量使用指针或数组表示,具体细节如下 - -- 字符串在内存中实际是一个连续的字符常量组合 - -- 任何字符串都以一个字符'\0'作为结束标记,如"funny story"在内存中的存储细节如下 - -![](images/WEBRESOURCE1a26d5b47439bd40860c97725e4110c5image.png) - -![](images/WEBRESOURCE999e2e4cb93fdf4ec8adf3a8df201afcimage.png) - -- **注意**:""表示一个字符串,虽然是空的字符串但其内存不空拥有内存1字节保存的是'\0'字符。 - -1. **常量的定义** - -在C语言中常量的表示方法有两种方式: - -1. 使用`#define`宏定义预处理指令表示 - -```c -#define PI 3.14 // PI表示浮点常量3.14,在预处理时使用了PI的代码会被3.14自动替换 - // 这样使用的目的时将字面量在源码中进行隐藏使用更容易理解的单词进行表示可以提高代码的易读性 -``` - -1. 使用const关键字, const关键字用于声明一个只读变量,即变量的值不能再发生修改,使用const关键声明常量时必须初始化赋值。 - -```c -const int a = 5; // a是一个只读变量即a是一个常量其值为5 -a = 10; // 错误,不允许被修改 -``` - -![](images/WEBRESOURCE51b11638af5912a048a35324caaea19cimage.png) - -在C/C++中存在两种类型的表达式 - -1. 左值(lvalue):表示的是一个对象的标识符,如变量名,它可以出现在赋值语句的左侧 - -```c -int a = 10; // a既是左值,也可以作为其他表达的右值 -``` - -1. 右值(rvalue):表示一个临时对象或表达式,如常量、函数返回值等,它不可以出现在赋值语句的左侧 - -```c -int a = 10; // 10是右值,不能作为左值 -``` - -# 四、作业 - -[数据类型测试题.docx](attachments/WEBRESOURCE1ebc5cddf8773c3fb139b21db91946c8数据类型测试题.docx) - -在作业文档的前面添加日期提交到 文件浏览器 作业文件夹下的自己名字文件夹中 然后在在线表格中登记 - -[【腾讯文档】CQ2605-作业统计表](https://docs.qq.com/sheet/DVHhFTkdQUXF6RWRP?tab=BB08J2) - -# 五、输入输出格式化控制符 - -![](images/WEBRESOURCE31a9952598334421c011d9f722ff3cceimage.png) - -![](images/WEBRESOURCEa4614147cc011d922c72d84cca2528f3image.png) - -![](images/WEBRESOURCE3c5663641a0b8dbf76f912751edbc3a3image.png) - -输入:scanf(); // 默认从键盘输入,只需求取数据 - -```c -#include - -int main(int argc, char *argv[]) -{ -    int years,month,day; -    /* scanf格式化输入输入过程必须按照scanf中要求的符号进行输入否则无法正确的进行输入数据 */ - -    // &表示取址  *表示取值 -    scanf("%d%d%d",&years, &month, &day);  // 两个数据间可用空格或回车隔开,scanf不能接收空格和回车, -                                           // 若输入空格或回车则判定为本次输入的结束,不要加\n,否则回车将失效                                       -    printf("%d/%d/%d\n", years, month, day); - -    scanf("%d-%d-%d",&years, &month, &day);  // 输入数据间必须添加-  2025-7-10                         -    printf("%d/%d/%d\n", years, month, day); - -    scanf("%da%da%d",&years, &month, &day);  // 输入数据间必须添加a     2025a7a10                     -    printf("%d/%d/%d\n", years, month, day); - -    char  str[10]; -    scanf("%s", str); // 数组的名字就是数组的地址, 输入过程中的空格或回车视为输入终止 -    printf("%s\n", str); - -    float f; -    scanf("%f", &f); -    printf("%f\n", f); - -    char ch; -    scanf("%c", &ch); -    printf("%c\n", ch); -    return 0; -} -``` - -输出:printf(); // 默认输出到终端屏幕 - -```c -#include - -int main(int argc, char *argv[]) -{ -    int a = 1; -    int b = 100; -    /* \n 表示换到下一行 */ -    printf("%5d\n", a); // 输出有符号十进制数右对齐不足5位在左添空格 -    printf("%5d\n", b); // 输出有符号十进制数右对齐不足5位在左添空格 - -    printf("%-5d\n", a);// 输出有符号十进制数左对齐不足5位在右添空格 -    printf("%-5d\n", b);// 输出有符号十进制数左对齐不足5位在右添空格 - -    char c = 12; -    short d = 10; -    printf("d = %hd\n", d); // 输出半个有符号十进制数 -    printf("c = %hhd\n", c); // 输出半半个有符号十进制数 - -    int a1 = 10; -    printf("%d\n", a1); // 输出有符号的十进制数 -    unsigned int a2=20; -    printf("%u\n", a2); // 输出无符号的十进制数 - -    int a3 = 10; -    printf("%o\n", a3);  // 输出无符号八进制数,不带前缀 -    printf("%#o\n", a3);  // 输出无符号八进制数,带前缀 - -    printf("%x\n", a3);  // 输出无符号十六进制数,不带前缀,字母部分小写 -    printf("%#x\n", a3);  // 输出无符号十六进制数,带前缀,字母部分小写 -    printf("%X\n", a3);  // 输出无符号十六进制数,不带前缀,字母部分大写 -    printf("%#X\n", a3);  // 输出无符号十六进制数,带前缀,字母部分大写 - -    char a4 = 'a'; -    printf("%c\n", a4); // 输出字符 - -    char *s = "abcd"; -    printf("%s\n", s); // 输出字符串,%s遇到'\0'自动结束 - -    float a5 = 3.145592; -    printf("%f\n", a5); // 输出单精度浮点数(小数形式),默认6位精度 -    float a6 = 3141592.6; -    printf("%e\n", a6); // 输出单精度浮点数(指数形式) - -    printf("%.2f\n", a5); // 输出单精度浮点数(小数形式),2位精度 -    printf("%.1f\n", a5); // 输出单精度浮点数(小数形式),1位精度 - -    printf("%.3e\n", a6); // 输出单精度浮点数(指数形式),3位精度 - -    int *p = &a; -    printf("%p\n", p); // 输出指针的值(地址) - -    printf("%.3s\n", s); //只输出前3个字符 - -    long a7 = 10; -    printf("%ld\n", a7); // 输出有符号长整型十进制数 - -    long long a8 = 10; -    printf("%lld\n", a8); // 输出有符号长长整型十进制数 - -    char *s1 = "zhangsan"; -    char *s2 = "lisi"; -    char *s3 = "wangwu"; -    int n1 = 10, n2 = 20, n3 = 30; -    printf("%-12s%-12s%-12s\n", s1,s2,s3);  // 左对齐,不足添空格 -    printf("%-12d%-12d%-12d\n", n1,n2,n3); - -    printf("%12s%12s%12s\n", s1,s2,s3);// 右对齐,不足添空格 -    printf("%12d%12d%12d\n", n1,n2,n3); - -    printf("%s\t%s\t%s\n", s1,s2,s3);// \t水平制表符 -    printf("%d\t%d\t%d\n", n1,n2,n3); -    return 0; -} -``` - -## 练习 - -编写代码在终端输出如下内容 - -![](images/WEBRESOURCEd5ac80a4126ac71c2086d85336dbf99dimage.png) - -# 六、IO流 - -1. **概念** - -键盘是系统的标准输入设备,从键盘输入数据称为标准输入(stdin);屏幕终端是系统的标准输出设备,在屏幕上输出数据称为标准输出(stdout),在屏幕上输出出错信息称为标准出错(stderr),这些输入输出称为IO流。 - -在计算机系统中当需要使用一种或多种IO流设备时,计算机系统就会自动的形成三种缓冲机制(stdin、stdout、stderr)用于在程序执行期间存储IO的数据,这样的缓冲机制称为缓冲区(临时存放数据,数据是无价的)。 - -![](images/WEBRESOURCEe80dc3d48db078411a57b515668d8e57image.png) - -```c -#include -#include - -int main(int argc, char *argv[]) -{ -    int a = 0; -    char c = 0; - -    // scanf("%d", &a); -    // getchar();// 清除stdin中上一次输入的残留 -    // scanf("%c", &c); - - -    // printf("a=%d c=%c\n", a, c); - -    // printf("明日复明日,明日何其多。"); // 默认存在于stdout ,程序正常结束会自动冲刷 -    // printf("明日复明日,明日何其多。\n"); // \n stdout遇到换行会自动冲刷 -    /* while (1) -    { -        printf("明日复明日,明日何其多。");   // 当stdout满时自动冲刷 -        usleep(100*1000); -    } */ -    -    /* printf("明日复明日,明日何其多。");  //缓冲区切换时会自动冲刷 -    scanf("%d", &a); */ - -    printf("明日复明日,明日何其多。"); -    fflush(stdout);  // 手动的冲刷stdout缓冲区 - -    pause(); // 暂停向下执行 - -    return 0; -} - -``` - -**注意:** - -1. scanf函数中的控制串不能随便乱写,尤其是结尾的'\n';因为用户必须按照scanf函数中描述的控制串中的内容进行输入数据否则将输入失败,scanf()函数是无法从键盘获得空格(' ')和回车('\n'),若需要获得空格和回车则建议使用fgets函数。 - -1. scanf函数是有返回值的,并且返回的值是正确输入的个数。 - -## 练习 - -编程实现如下功能: - -- 如果用户输入大小写字母,则输出字母对应的ASCII码值。 - -- 如果用户输入ASCII码值,则输出对应的大小写字母。 - -# 七、类型转换 - -- 概念:不一致但相兼容的数据类型,在同一表达式中将发生类型转换 - -- 转换模式: - -- 隐式转换:系统按照隐式规则自动进行转换 - -- 显示转换:也称强制转换,用户显式的自定义进行转换 - -- 隐式规则:从小类型到大类型转换,目的表达式中的数据精度不丢失 - -![](images/WEBRESOURCEf9401753ae5405e97b73dbc1662bfc9001416f17412c415232ef6faf014cdff5.png) - -```c -char a = 'a'; -int b = 12; -float c = 3.14; -float x = a + b - c; // 在该表达式中将会发生隐式类型转换,所有的操作数都会被提升为float -``` - -- 显示转换:用户强行将一个类型转换为另一个类型,此过程可能会发生精度缺失 - -```c -char a = 'a'; -int b = 12; -float c = 3.84; -float x = a + b - (int)c;// 在该表达式中a将隐士的转换为int类型, - // c将被强制的转换为int类型同时丢失精度 - // 运算结果将隐式转换为float类型 -``` - -- 总结:不管是隐式转换还是强制转换,变换的都是操作数在运算过程中的类型,是临时发生的,操作数本身的数据类型不会发生修改,也无法修改。 - -- 数据类型转换的本质:各种不同的数据类型实际上在内存中都一样的都是二进制数,数据的类型描述相当于是用户于系统的一种约定,在用户能够接收后果的情况下这个约定可以被临时打破,但数据的本身不会发生改变。 - -# 八、可移植整型 - -- 概念:同一种整型数据在不同的编译系统下数据内存尺寸会发生变化,相同的程序在位数不同系统下运行得到的结果可能发生变化,因此可移植数据类型讨论的是相同的代码不关放到什么系统中,尺寸都保持不变的整型数据。 - -- 整型数据的尺寸:C语言的标准并未规定整型数据的具体大小,只规定了相互间的大小"相对大小",如:short不可比int长,long不可比int短,长整型数据的长度等于系统的字长。 - -- 系统字长:CPU一次处理数据的长度,称为字长。如:32位系统CPU一次处理数据以32bit为单位,64位系统CPU一次处理数据以64bit为单位。 - -- 数据类型的典型大小: - -| 数据类型 | 16 位平台(字节) | 32 位平台(字节) | 64 位平台(字节) | 说明 | | -| --------- | ---------- | ---------- | ---------- | ------------------------------------------------ | --- | -| char | 1 | 1 | 1 | 始终为 1 字节(8 位),用于存储字符或小整数 | | -| short | 2 | 2 | 2 | 至少 2 字节,通常固定为 2 字节(16 位) | | -| int | 2 | 4 | 4 | 与平台 “字长” 相关,16 位平台为 2 字节,32/64 位平台通常为 4 字节(但不绝对) | | -| long | 4 | 4 | 8 | 32 位平台与 | | -| long long | 8 | 8 | 8 | C99 标准引入,固定为 8 字节(64 位),用于表示更大范围的整数 | | - - -- 可移植整型关键:typedef - -```c -typedef int int32_t; // 给类型int取个别名为int32_t -typedef long long int64_t; // 给类型long long取个别名为int64_t -``` - -思路:为所有系统提供一组固定的、能反映数据尺寸的、统一的可移植整型名称,然后在不同的系统中,为这些可移植整型提供对应的typedef语句即可,例如:Linux中"/usr/include/stdint.h"。 - -```c -int8_t // typedef char int8_t -int16_t -int32_t -int64_t - -uint8_t // typedef unsigned char uint8_t -uint16_t -uint32_t -uint64_t - -pid_t -time_t -size_t -... -``` \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/04-运算符.md b/Collection/YoudaoyunNotes/02C语言/04-运算符.md deleted file mode 100644 index c00dc63..0000000 --- a/Collection/YoudaoyunNotes/02C语言/04-运算符.md +++ /dev/null @@ -1,328 +0,0 @@ -- 概述:运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: - -- 算术运算符:`+、-、*、/、%、++、--` - -- 关系运算符:`>、<、>=、<=、==、!=` - -- 逻辑运算符:`&&、||、!` - -- 位运算符:&、|、~、<<、>>、^ - -- 赋值运算符:=、+=、-=、`*=`、/=、%=、&=、|=、^=、<<=、>>= - -- 杂项运算符:&、`*`、sizeof、`? :`、return、, - -注意: - -运算符可根据操作数的个数进行分类,有单目(一元)、双目(二元)、三目(三元) - -| 操作数数量 | 运算符类型 | 具体运算符 | -| -- | -- | -- | -| 单目 | 自增 / 自减 | ++ | -| 正负号 | + | -| 逻辑非 | ! | -| 按位取反 | ~ | -| 地址与解引用 | & | -| 类型转换 | (类型) | -| 长度计算 | sizeof | -| 指针成员访问 | -> | -| 双目 | 算术运算 | + | -| 关系运算 | == | -| 逻辑运算 | && | -| 按位运算 | & | -| 赋值运算 | = | -| 逗号运算 | , | -| 三目 | 条件运算 | ? : | - - -# 一、算术运算符 - -![](images/WEBRESOURCE2fdad5c1e645e6811dfb870a3d8b4c56image.png) - -- 注意: - -- C 语言中很多关键字在不同的场合具有不同的意思, 比如”+”和”-”, 如果它们只有一个操作数, 则分别是取正和取负运算, 比如+10, -a 等, 如果它们左右两边有两个操作数, 则分别为加法和减法, 如 a-3。 再如星号”`*`”, 其出现在定义语句时为指针标记, 只有一个操作数时为解引用运算符, 有两个操作数时为乘法运算, 而与正斜杠”/”一起使用时又表示注释符。 由此可见, 同样的运算符在不同的场合有不同的意思。 - -- 两个整型相除的结果是整型, 小数部分将被舍弃(而不是四舍五入) , 比如 17/10的结果是 1。 - -- 取模运算符左右两边的操作数都必须是整型(不仅是整数, 比如 3.0 在数学意义上是整数, 但在计算机中它是一个浮点型数而不是整型数, 这样的数据是不能作为取模运算的操作数的) - -## 练习 - -从键盘输入一个三位数,在分别打印出它的个位十位和百位 - -拓展:任意位数,打印每一位 - -- ++:自增 --:自减 - -- 自增自减运算符使操作数加 1 或者减 1, 当其作为前缀(如++a) 时先进行自增自减再参与运算, 当其作为后缀(如 a++) 时先参与运算再进行自增自减。 - -```c -int a=10; -printf("a=%d\n", a++); // 后缀先用后加 10 -printf("a=%d\n", a);   // 11 -int b=10; -printf("b=%d\n", ++b); // 前缀先加后用 11 -``` - -> int a=5,b=4; -> int c=a+++b; // a++ +b(√) a+ ++b a:6 b:4 c:9 -> int d=a+++++b;// a++ ++ +b //编译报错 a:7 b:5 c:9 d:10 int d=a+++(++b);// a:7 b:5 c:9 d:11 -> 问a,b,c,d的值分别是多少? - - -# 二、关系运算符 - -![](images/WEBRESOURCE059f0c15158165303fc0fc990a90a445image.png) - -- `注意:关系运算符的结果为真(1)或假(0),判断等于运算符是==,而=是赋值运算符;若if(x==1)写为了if(x=1)编译时不报错,但判断表达式变成了赋值表达式,其结果取决于赋值的值是真(非0)还是假(0),为了避免这样的问题发生则建议在书写判断表达式时将常量放在左边,如if(1==x)如果写成了if(1=x)则编译时会报错。` - -- 不等于运算符可以省略的情况 - -- `int a; if(a) ==> if(a!=0)` - -- `char a; if(a) ==> if(a!='\0')` - -- `int *a; if(a) ==> if(a!=NULL)` - -- `bool a; if(a) ==> if(a!=false)` - -```c -void send_string(char *msg) -{ - while(msg && *msg) // msg!=NULL *msg!='\0' - { - msg++; - } -} -``` - -# 三、逻辑运算符 - -- 数学上的布尔代数, 可以用 C 语言中的逻辑运算符来表达, 也可以用位运算符来表达。当逻辑运算的操作数是表达式时用前者, 当操作数是位时用后者。 - -![](images/WEBRESOURCE167c2f360443ad063a8c62e5be84ad85image.png) - -- 逻辑运算符的结果为逻辑真(1)或逻辑假(0),逻辑反运算符是单目运算符, 也就是说它只有一个目标操作数;逻辑与和逻辑或是双目运算符,它们对左右两边的表达式进行与操作和或操作 - -![](images/WEBRESOURCEba4b56e9d9f7a758da348629635d6cf6image.png) - -逻辑与&&:将两个表达式串联起来,当且仅当左右两个表达式都为真时结果为真,否则为假。 - -逻辑或||:将两个表达式并联起来,当且仅当左右两个表达式都为假时结果为假,否则为真。 - -在条件表达式中若逻辑与&&左值为假右值将不进行判定,逻辑或||左值为真右值将不进行判定 - -## 练习 - -从键盘输入三个数,判断能否构成三角形 - -# 作业1 - -1. 编写程序实现从键盘输入年月日,输出该日期时该年的第几天。 - -1. 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何? - -1. 有3对情侣参加婚礼,3个新郎为A、B、C,3个新娘为X、Y、Z,有人想知道究竟谁与谁结婚,于是就问新人中的三位,得到如下结果:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人事后知道他们在开玩笑,说的全是假话。那么,究竟谁与谁结婚呢? - -> 建立world文档注明题目编号将源代码及运行结果截图写入文档,以自己的名字命名提交到飞秋 - - -# 四、位运算符 - -![](images/WEBRESOURCEea237a3e83f613d86fdfed8580c001c5image.png) - -- 以二进制的bit(位)进行运算,逐位进行运算 - -- 运算规则: - -- 按位与&,有0为0,全1为1 如:1001 & 0110 ==> 0000 - -- 按位或|,有1为1,全0为0 如:1001 | 0110 ==> 1111 - -- 按位取反~,单目逐位取反 如:~1010 ==> 0101 - -- 按位异或^,相同为0,不同为1 如:1011 ^ 0110 ==> 1101 - -```c -1011 ^ 0110 ==> 1101 -1011 ^ 1101 ==> 0110 -0110 ^ 1101 ==> 1011 -// 常用于在不使用额外内存的情况下实现两数交换 -a = a ^ b; -b = a ^ b; -a = a ^ b; -``` - -- 按位左移<<, 数据向左(高位)移动,右(低位)补0,移出范围直接丢弃 - -- 按位右移>>, 数据向右(低位)移动,左(高位)补0,移出范围直接丢弃 - -![](images/WEBRESOURCEf043bb345ce02a43791f1afe7466e30dimage.png) - -## 练习 - -1. 假设有如下程序请问输出结果是什么? - -1. 假设有一个无符号32位整型数据 unsigned int data=0x12FF0045请**编写程序**使用位运算将data的14、15位修改为1,将22、23位修改为0,其他位保持不变,输出结果。 - -# 作业2 - -1. 写出你知道的将两数交换的所有方法 - -# 五、赋值运算符 - -| 运算符 | 描述 | 实例 | -| -- | -- | -- | -| = | 简单的赋值运算符,把右边操作数的值赋给左边操作数,左操作数不能是常量 | C = A + B 将把 A + B 的值赋给 C | -| += | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A | -| -= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A | -| *= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A | -| /= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A | -| %= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %= A 相当于 C = C % A | -| <<= | 左移且赋值运算符 | C <<= 2 等同于 C = C << 2 | -| >>= | 右移且赋值运算符 | C >>= 2 等同于 C = C >> 2 | -| &= | 按位与且赋值运算符 | C &= 2 等同于 C = C & 2 | -| ^= | 按位异或且赋值运算符 | C ^= 2 等同于 C = C ^ 2 | -| |= | 按位或且赋值运算符 | C |= 2 等同于 C = C | 2 | - - -```c -int a = 12; -a += 13; // a = a+13; a 25 -a *= 2; // a = a*2; a 50 -a %= 5; // a = a%5; a 0 -a += 5+2; // a = a+(5+2) a 7 -a *= 5+8; // a = a*(5+8) a 91 -``` - -# 六、杂项运算符 - -| 运算符 | 描述 | 实例 | -| -- | -- | -- | -| sizeof(x) | 计算x所占内存的长度单位是字节。 | int a;sizeof(a) 将返回 4,其中 a 是整数。 | -| & | 取得变量的地址(指地址)。 | &a; 将给出变量在内存中的地址。 | -| * | 取得变量地址中的值(指针)。 | *a; a是一个地址,将地址中的值取出。 | -| ? : | 条件表达式(三目运算符) | X>Y?X:Y 如果X>Y为真 ? 则值为 X : 否则值为 Y | -| return | 在函数中返回一个值给上一级函数 | | -| , | 逗号运算符 | | - - -- sizeof(),它不是函数,是一个运算符; - -```c -int a; -// 计算a的内存大小 -sizeof (a); -sizeof a; // 若sizeof后跟变量名称则括号可以省略 -sizeof (int); -sizeof int; // 若sizeof后跟数据类型则括号不可以省略 -``` - -- 在C语言中,&没有左操作数时表示取址(取址符),否则表示位与。取址的作用是获取存储数据变量的地址。 - -```c -int a = 500; -printf("a address:%p\n", &a); // 地址采用十六进制数表示 -``` - -- 在C语言中,*没有左操作数时表示取值(解引用符),若左操作数是数据类型则表示声明定义一个指针,否则表示乘法。 - -```c -int a = 20; -int *p = &a; // *表示声明定义一个指针p(用于存放地址的变量) -*p = 30; // *表示解引用p指针,访问p所保存的地址的值并将这个值修改为30 -*p; // *表示解引用p指针,访问p所保存的地址的值 -``` - -- return的作用是在函数中将本函数中的值(通常是执行结果),返回给调用本函数的函数。 - -```c -int fun(void) -{ - return 886; // 将886返回个调用者 -} -int main(void) -{ - int a = fun(); // 调用fun函数并接收其返回值 - return 0; -} -``` - -- 逗号运算符',',运算时从左到有,整个表达式的结果取决于最后一个表达式。 - -```c -int a=1,b=2; -int x = (a++,b++,a+b); // 需要使用括号包含,因为,运算符的优先级最低 -// 计算顺序:a++ b++ a+b的结果赋值给x ==> 5 -``` - -## 练习 - -- 输入三个数,输出最小值和最大值(体验不同运算符的区别) - -- 学习成绩score>=90用'A',80~89用'B', 60~79用'C,60以下用'D'表示,编写代码输入成绩输出对应的的等级 - -# 七、运算符优先级 - -| 优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 | | | | | -| ------ | -------- | -------------- | ---------- | ---- | -------- | --- | --- | --- | --- | -| 1 | [] | 数组下标 | 数组名[常量表达式] | 左到右 | -- | | | | | -| () | 圆括号 | (表达式)/函数名(形参表) | | | | | | | | -| . | 成员选择(对象) | 对象.成员名 | | | | | | | | -| -> | 成员选择(指针) | 对象指针->成员名 | | | | | | | | -| 2 | - | 负号运算符 | -表达式 | 右到左 | 单目运算符 | | | | | -| ~ | 按位取反运算符 | ~表达式 | | | | | | | | -| ++ | 自增运算符 | ++变量名/变量名++ | | | | | | | | -| -- | 自减运算符 | --变量名/变量名-- | | | | | | | | -| * | 取值运算符 | *指针变量 | | | | | | | | -| & | 取地址运算符 | &变量名 | | | | | | | | -| ! | 逻辑非运算符 | !表达式 | | | | | | | | -| (类型) | 强制类型转换 | (数据类型)表达式 | -- | | | | | | | -| sizeof | 长度运算符 | sizeof(表达式) | | | | | | | | -| 3 | / | 除 | 表达式/表达式 | 左到右 | 双目运算符 | | | | | -| * | 乘 | 表达式*表达式 | | | | | | | | -| % | 余数(取模) | 整型表达式%整型表达式 | | | | | | | | -| 4 | + | 加 | 表达式+表达式 | 左到右 | | | | | | -| - | 减 | 表达式-表达式 | | | | | | | | -| 5 | <<  | 左移 | 变量<<表达式 | 左到右 | | | | | | -| >>  | 右移 | 变量>>表达式 | | | | | | | | -| 6 | >  | 大于 | 表达式>表达式 | 左到右 | | | | | | -| >= | 大于等于 | 表达式>=表达式 | | | | | | | | -| <  | 小于 | 表达式<表达式 | | | | | | | | -| <= | 小于等于 | 表达式<=表达式 | | | | | | | | -| 7 | == | 等于 | 表达式==表达式 | 左到右 | | | | | | -| != | 不等于 | 表达式!= 表达式 | | | | | | | | -| 8 | & | 按位与 | 表达式&表达式 | 左到右 | | | | | | -| 9 | ^ | 按位异或 | 表达式^表达式 | 左到右 | | | | | | -| 10 | | | 按位或 | 表达式 | 表达式 | 左到右 | | | | -| 11 | && | 逻辑与 | 表达式&&表达式 | 左到右 | | | | | | -| 12 | | | | 逻辑或 | 表达式 | | 表达式 | 左到右 | | -| 13 | ?: | 条件运算符 | 表达式1? | 右到左 | 三目运算符 | | | | | -| 14 | = | 赋值运算符 | 变量=表达式 | 右到左 | -- | | | | | -| /= | 除后赋值 | 变量/=表达式 | | | | | | | | -| *= | 乘后赋值 | 变量*=表达式 | | | | | | | | -| %= | 取模后赋值 | 变量%=表达式 | | | | | | | | -| += | 加后赋值 | 变量+=表达式 | | | | | | | | -| -= | 减后赋值 | 变量-=表达式 | | | | | | | | -| <<= | 左移后赋值 | 变量<<=表达式 | | | | | | | | -| >>= | 右移后赋值 | 变量>>=表达式 | | | | | | | | -| &= | 按位与后赋值 | 变量&=表达式 | | | | | | | | -| ^= | 按位异或后赋值 | 变量^=表达式 | | | | | | | | -| | = | 按位或后赋值 | 变量 | =表达式 | | | | | | -| 15 | , | 逗号运算符 | 表达式,表达式,… | 左到右 | 从左到右顺序运算 | | | | | - - -记忆办法:去掉一个最高优先级括号(),去掉两个最低优先级赋值和逗号 - -![](images/WEBRESOURCE024f291ce6ddbfc8e43e98913881be10image.png) - -[C语言运算符优先级顺口溜](https://blog.csdn.net/wt051133/article/details/145663515) - -# 练习 - -[运算符1.docx](attachments/WEBRESOURCEbbcc325c1c1c565fa7dbe4f13a3f2f9d运算符1.docx) - -# 作业 - -[运算符测试.docx](attachments/WEBRESOURCE757c8acbaa371ecec8cc55fab8756448运算符测试.docx) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/05-控制与分支.md b/Collection/YoudaoyunNotes/02C语言/05-控制与分支.md deleted file mode 100644 index 01c508c..0000000 --- a/Collection/YoudaoyunNotes/02C语言/05-控制与分支.md +++ /dev/null @@ -1,380 +0,0 @@ -# 一、分支控制 - -1. **二路分支** - -- if...else语句 - -- 执行逻辑:非此即彼 - -![](images/WEBRESOURCE22d41843cc2f8e164fc5c3cd6753c92fimage.png) - -![](images/WEBRESOURCEa9b36a9ebb8b287ddf16ffd2c09976d5image.png) - -- 语法形式 - -```c -if( expression ) // 当 expression为一个条件表达式当为真时, 执行 statements 1 -{ - statements 1 -} -else // 当 expression 为假时, 执行 statements 2 -{ - statements 2 -} - -// 或 -if( expression ) // 当 expression 为真时, 执行 statements 1 -{ - statements 1 -} -``` - -1. **多路分支** - -- **if...else多重嵌套** - -- 表达一种多个选项中选择一个条件执行,当前面的条件满足后面的if...else直接跳过,当没有条件满足时则执行最后的else,多选一。 - -![](images/WEBRESOURCE14ccf6590f7f4016b1afdcb6b9f04f4dimage.png) - -- **if语句单独使用多次** - -- 表达一种多种条件种选择执行的逻辑,前面的if语句满足条件执行后面的if继续判断执行,多选多或多选一。 - -![](images/WEBRESOURCEa492c1ba1be94ca9886a50ce9884cbc8image.png) - -- **注意:** - -- else语句只与前面最近且同级的if配套,并且else不能单独使用。 - -- 若if语句或else语句中需要执行的代码只有一条语句则{}花括号可以省略,其他情况下{}花括号不能省略否则只有第1条语句属于if...else语句中 - -- **switch...case语句** - -- 执行逻辑:根据选项选择不同的代码段进行执行 - -- 语法形式: - -```c -switch(选择语句) -{ - case 选项1: - break; - case 选项2: - break; - ... - case 选项n: - break; - default: - break; -} -``` - -- 表达多个选项中选择一个进行执行 - -![](images/WEBRESOURCEaa39bdca22d940a0bb7d172aabd9a55dimage.png) - -- **注意** - -- switch语句中的选择语句必须是整数(整型、字符型、布尔型、枚举型、变量、 运算表达式甚至是函数调用)case 语句中的选项必须是整型常量或char 型常量,const 型变量都不行, 例如:case 'w' - -![](images/WEBRESOURCE4552fb76ccd7d5818b2a9d3abcf0061bimage.png) - -- break语句是switch语句的结束标志。 - -- 一旦case选项匹配成功,则立即执行其对应的语句,直至遇到break语句。 - -- 不是所有的case语句都得加break语句,但如果case语句后没有break语句,则会无条件向下执行其他case语句直至遇到break语句或到switch语句的}花括号结束。 - -- default默认选项语句可以写也可以不写,可以放在case的末尾也可放case最前或case语句选项的中央,当所有的case选项都不匹配时则会执行dafault语句后的代码块 - -- case语句后可以为空语句如:case 1: - -## 练习 - -1. 编写程序实现,从键盘输入三个数从小到大输出到终端 - -1. 编写程序实现,从键盘输入一个字符串,将输入的大写字符转换为小写字母,小写字母转换为大写字母输出。 - -1. 从键盘输入一个数(0~15),将其输出为16进制数 - -## 作业 - -1. 从键盘输入一个字符串,统计输入的字符串中的大写字母、小写字母、数字、其他字符的个数【使用if语句和switch语句分别实现】 - -- **直接跳转** - -- goto语句,通常被告诫不要使用,由于 goto 语句是一种无条件的直接跳转,有时甚至还会破坏程序的栈逻辑,因此不推荐使用,但是当我们在编写程序错误处理代码的时候,又会经常用到它,这是因为当程序发生错误时通常报告错误和及时退出比保护程序逻辑更加重要,并且 goto 语句可以忽视嵌套包裹它的任何代码块,直接跳转到错误处理单元。 - -```c -#include -/* 除了出错处理,其它情况一概不推荐使用goto,因为goto会直接跳转到标签位置,使得程序难以追踪,难以阅读和修改 */ -int main(int argc, char *argv[]) -{ -    printf("[%d]\n", __LINE__); -     goto globle;  // 往后跳 -lable:   // 标签 -    printf("[%d]\n", __LINE__); -    goto lable;  // 往前跳 -globle: -    printf("[%d]\n", __LINE__); -    return 0; -} - -/* 推荐使用场景 */ -int main(void) -{ -  // 初始化LCD -        goto lcd_err; -    // 初始化触摸屏 -        // 出错 则需要释放LCD资源 -        goto ts_err; -    // 开启采集环境温湿度 -        // 出错 则需要释放LCD资源和触摸屏资源 -        goto ht_err; -    // 获取环境光照 -        // 出错 则需要释放LCD资源、触摸屏资源、温湿度模块资源 -        goto light_err; -    // .... - -light_err: -    ht_free(); -ht_err: -    ts_free(); -ts_err: -    lcd_free(); -lcd_err: -    return 0; -} -``` - -# 二、循环控制 - -- **while语句** - -```c -while(expression) -{ - statements; -} -``` - - expression 可以是任意表达式(C 语言中任何表达式都有一个确定的值), while语句根据表达式 expression 的值来决定是否执行下面的 statement(被执行的这些语句也叫循环体, 可以是一句简单的语句<可省略花括号>, 也可以是用花括号括起来的若干条语句组合起来的复合语句<必须使用花括号包含>) , 如果 expression 的值为假则跳过 statement, 如果为真则执行 statement, 执行完了再来判断 expression 的值, 不断循环一直到其值为假为止(如果 expression 的值始终为真,则称为死循环或无限循环) - -![](images/WEBRESOURCE64848ec6b188f4b800d87151f5fdec76image.png) - -👍 - -> Linux 的 C 代码风格中, 循环体结构(包括 while、 do…while 和 for 循环)的左花括号既可以写在循环语句的末尾, 也可以单独占一行, 如上述代码所示。 而对于函数而言, 包含函数体的左花括号一般单独占一行。 另外一定要注意缩进, 缩进的目的是为了增强代码的可读性, 在函数体、 循环结构、 分支结构等逻辑相对独立的代码块中都需要有适当的缩进。 每一层代码块推荐用 8 个空格来缩进, 过小则不易区分各个代码块, 在程序嵌套太深时也不能更好地起提醒作用。 当然如果并不经常用不同的编辑器来编辑代码, 用制表符代替空格也未尝不可, 毕竟敲多个空格键比较繁琐(如果需要用不同的编辑器编辑代码的话, 不同的编辑器可能对制表符的解释有所不同, 这就会导致在一款编辑器中显示正常的代码在另一款编辑器中却显示不正常) 。代码良好的可读性和易维护性庞大的工程中显得尤为重要, 因此良好的习惯必须在一开始写简单代码的时候就要养成。 - - -```c -#include - -int main(int argc, char *argv[]) -{ -    int a; -    scanf("%d", &a); -    // while (a > 0) -    while (a)  // a的值非0(真) 0(假) -    { -        printf("%d ", a); -        a--; -    } -    printf("\n"); -    -    return 0; -} -``` - -- **do...while语句** - -```c -do{ - statements; -}while(expression); -``` - -与while 循环类似, 根据表达式中的值来决定是否执行循环体, 区别是 do…while 循环不是先计算表达式, 而是先执行循环体在计算表达式的值, 因此它也被称为退出条件循环,即在每次执行循环体之后再检查判断条件, 这样 - -![](images/WEBRESOURCEe033a13a5da4e1bb7bc6f275fb254dfaimage.png) - -```c -#include - -int main(int argc, char *argv[]) -{ -    int a; -    scanf("%d", &a); -    do{   // 至少执行一次循环体语句 -        printf("%d ", a);  // 先执行循环体 -        a--; -    }while (a); // 再进行判断条件是否为真(非0),为真则继续执行循环体中的语句,否则结束循环 - -    printf("\n"); -    -    return 0; -} -``` - -- **for语句** - -for 循环是一种更为灵活的循环结构, 在 Linux 内核中出现的频率大约是 while 循环和do…while 循环的四到五倍 - -```c -for(initialize; test; update) -{ - statement; -} -``` - -语句块 statement 跟上两种循环体一样, 可以是单条语句也可以是用花括号括起来的复合语句。 关键字 for 之后的圆括号中包含有三个表达式, 第一个表达式initialize一般用来初始化循环控制变量, 第二个表达式test一般用作循环测试条件, 而第三个表达式update则一般用来更新循环控制变量, 但从语法角度上讲它们可以是任意的语句,这些表达式可以是一个表达式或多个表示式(用逗号隔开) - -for循环语句的执行流程是: - -1. 如果有initialize语句则执行它, 然后执行test语句,如果没有initialize语句则直接执行test语句。 - -1. 如果有test语句且其值为真或者没有该语句则执行语句statement(循环体),如果有 test 语句且其值为假则跳出for循环语句。 - -1. 执行循环体语句 statement 完成后执行update语句。 - -1. 如果有 update 语句则执行它, 然后跳到第 2 步test 语句, 如果没有 update 语句则直接跳到第 2 步test 语句。 - -```c -#include - -int main(int argc, char *argv[]) -{ -    for (int i = 0; i < 10; i++) /* 循环变量定义初始化赋值语句的写法:int i = 0;是C99以后支持的; -                                    老版编译器默认未采用c99标准则编译指令末尾添加-std=c99*/ -    { -        printf("%d ", i); -    } -    printf("\n"); -    return 0; -} -``` - -## 练习 - -1. 编写代码计算1~1000所有奇数的和【三种循环编写】 - -![](images/WEBRESOURCEddc658c0cce70a5068ad13c1c7567ac8image.png) - -1. 计算1^2+2^2+...+n^2 - -![](images/WEBRESOURCE61673478243ea23a81ca7bed0da28733image.png) - -1. 计算n的阶乘 - -- **break、continue与return语句** - -- **break语句** - -- 用于循环语句中时表示跳出当前循环(会结束循环) - -- 用于switch语句时表示跳出switch语句 - -```c -for() -{ - while() - { - do{ - switch() - { - break;// 结束switch语句 - } - break; // 结束do...while - } while(); - break; // 结束while - } - break; // 结束for -} -``` - -- **continue语句** - -- 只用于循环语句中,表示结束本次循环,进行下次循环 - -![](images/WEBRESOURCE459a0a24ac6047112d1d6479e8858315image.png) - -- **return语句** - -- 表示当前这个函数的结束 - -- **无限循环** - -- 循环条件恒为真 - -```c -while(1); -for(;;); -do{}while(1); -``` - -## 练习 - -用循环在终端打印如下图案 - -```c -* -** -*** -**** -``` - -```c -**** -*** -** -* -``` - -```c - * - ** - *** -**** -``` - -```c -**** - *** - ** - * -``` - -```c - * - *** -***** - *** - * -``` - -```c - * - * * - * * -******* -``` - -```c - A - ABA - ABCBA -ABCDCBA -``` - -规律: - -# 作业 - -1. 完成测试题 - -[判断、循环测试题.docx](attachments/WEBRESOURCE1b1c0ef38fb7e7623e35a7ffc254fd87判断、循环测试题.docx) - -1. 编程实现一个学习100以内数学四则运算的C语言小程序,要求随机生成题目让用户键入答案,正确则输出"答对了!你真棒!",错误则提示"答错了,再接再厉"并运行重新回答,每题共三次机会,三次皆未答对则结束程序,答对则进行下一题,若想结束则输入''Esc"。 - -(提示:100以内随机数生成使用rand()%100并添加头文件"#include ")。 \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/06-函数基础.md b/Collection/YoudaoyunNotes/02C语言/06-函数基础.md deleted file mode 100644 index 6847ddb..0000000 --- a/Collection/YoudaoyunNotes/02C语言/06-函数基础.md +++ /dev/null @@ -1,412 +0,0 @@ -# 一、概述 - -在C语言中,函数指的是功能模块。一个典型的C语言程序,就是由一个个的功能模块拼接起来的整体,因此C语言也称模块化语言。 - -对于函数的使用者,可以简单的将函数视为一个黑箱子,使用者只管按照规定给黑箱一些输入,就会得到一些输出,使用者不需要关注黑箱内部的结构细节。 - -![](images/WEBRESOURCE792781c979620a94ca2b918b07a45ee3image.png) - -函数分为两种形式 - -- 系统自带函数(库函数):只需了解如何使用和结果是什么,如:购买了一台电视机,我们只需要了解电视机对外的接口和使用的方法及最后的结果,不需要知道电视机内部构造----怎么用。 - -> 函数的头文件 -> 函数的功能 -> 函数的参数 -> 函数的返回值 - - -- 用户自定义函数:要明确最终实现的功能,如:自己设计电视机 ----怎么写。 - -> 函数的声明式 -> 函数的实现 -> 函数的调用 - - -# 二、函数入门 - -![](images/WEBRESOURCE915e9aa0eaf899c958273f42c7683f07image.png) - -- 函数头:函数对外的接口及运行的结果都在这里体现 - -- 组成 - -- 函数的类型:是函数的运行结果数据类型即黑箱的输出数据类型(函数返回值类型),不是必须的,没有返回值是使用void。 - -- 函数的名字:函数在内存中的地址,代表这个黑箱的名称(必须满足用户标识符定义规则),一个函数必须要有名字。 - -- 函数的参数列表:函数的输入,即黑箱的输入数据列表,不是必须的没有参数输入也不能省略括号(),应当在参数列表中使用void进行修饰 - -- 函数体:函数的功能实现,即黑箱子的内部构造。 - -![](images/WEBRESOURCE5662a65e83bb0e026bd5798435f41eadimage.png) - -```c -/* 给定两个数,得到最大值 */ -int Maxfun(int x, int y)  // 这是一个函数的定义,该函数接收两个int类型的参数,返回一个int类型数据 -{ -    return x>y?x:y; -} - -/* 交换两个浮点数 */ -void swap(double *p1, double *p2) // 该函数接收两个double *类型的参数,无返回值 -{ -    if (p1 == NULL || p2 == NULL) -        return; // 退出当前函数 -    -    double tmp = *p1; -    *p1 = *p2; -    *p2 = tmp; -} - -/* 液晶屏初始化函数 */ -char *initLCD(void)  // 该函数不接收参数,返一个char *类型的数据 -{ -    int lcd = open("/dev/fb0", O_RDWR); - -    struct fb_var_screeninfo vinfo; -    ioctl(lcd, FBIOGET_VSCREENINFO, &vinfo); - -    int bpp = vinfo.bits_per_pixel; -    int size = vinfo.xers*vinfo.yers*bpp/8; - -    char *fbmmem = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHSRED, lcd, 0); - -    return fbmmem; -} -``` - -总结: - -- 当函数的类型为void时,表示函数不返回任何数据。 - -- 当函数的参数列表为void时,表示函数不需要任何参数。 - -- 关键字return表示退出函数。 - -①若函数头中规定有函数的类型,则return需要携带一个类型与之匹配的数据; - -②若函数头中规定函数的类型为void,则return不需要携带数据; - -# 三、自定义函数 - -- **函数的定义** - -- 表示函数的功能实现及函数的确立。 - -```c -返回值类型 函数名字(参数1, 参数2, ...) // 没有返回值则写void 没有参数也写void -{ - 功能语句; -} -``` - -- **函数的声明** - -- 表示告诉编译器函数将会被使用,位于函数被调用前的函数外部。 - -```c -函数的类型 函数名称(参数类型及个数); -``` - -注意 - -- 当函数的调用出现在函数的定义位置前,则需要在调用前进行声明。 - -- 函数的声明一般放在头文件中,调用头文件则携带函数声明式。 - -- **函数的调用** - -- 表示使用函数实现对应的功能,位于一个函数的内部 - -```c -函数的名字(参数所对应的数据); -``` - -注意 - -- 当函数被main直接调用或间接调用时函数才会被执行 - -```c -#include - -//int Maxfun(int x, int y); // 函数的声明:当函数的调用发生在函数的定义前时需要书写 -int Maxfun(int , int ); // 函数的声明:当函数的调用发生在函数的定义前时需要书写 - - -int main(int argc, char *argv[]) -{ -    -    printf("%d与%d的最大值是%d\n", 80, 800, Maxfun(80,800));  // 将Maxfun函数的执行结果作为printf函数的一个参数 - -    return 0; -} - -/* 交换两个浮点数 */ -void swap(double *p1, double *p2) // 函数的定义 该函数接收两个double *类型的参数,无返回值 -{ -    printf("%s is running\n", __FUNCTION__); -    if (p1 == NULL || p2 == NULL) -        return; -    -    double tmp = *p1; -    *p1 = *p2; -    *p2 = tmp; -} - -/* 给定两个数,得到最大值 */ -int Maxfun(int x, int y)  // 这是一个函数的定义,该函数接收两个int类型的参数,返回一个int类型数据 -{ -    printf("%s is running\n", __FUNCTION__); -    double a = 3.14, b=5.26; -    printf("交换前:a = %f  b = %f\n", a,b); -    swap( &a, &b);  // 调用一个函数:定义在调用前可,免去声明 -    printf("交换后:a = %f  b = %f\n", a,b); -    return x>y?x:y; -} -``` - -练习:编写一个函数实现从键盘获取三个数,从小到大输出 - -```c -/* 输入三个数从小到大输出 */ -#include - -void outputNum(void); - -int main(int argc, char *argv[]) -{ -    outputNum(); -    return 0; -} - - -void swap(int *p1, int *p2) // 函数的定义 -{ -    -    if (p1 == NULL || p2 == NULL) -        return; -    -    *p1 ^= *p2; -    *p2 ^= *p1; -    *p1 ^= *p2; - -} - -void outputNum(void) -{ -    int a,b,c; -    printf("请输入三个数:"); -    scanf("%d%d%d", &a,&b,&c); - -    if(a>b) -    { -        swap(&a,&b); -    } -    if(a>c) -    { -        swap(&a,&c); -    } -    if(b>c) -    { -        swap(&b, &c); -    } -    printf("%d < %d < %d\n",a,b,c); -} -``` - -## 函数参数的传递 - -- 形参与实参 - -- 形参:函数声明式定义中参数列表中的参数,属于函数的局部变量,在函数定义中只是一个形式参数没有实际的值。 - -- 实参:函数调用中参数列表中的参数,具有实际的数值或表示对象,在函数执行期间这个数值或对象将作用与函数内部,实参会在函数执行时初始化函数的形参。 - -- 值传递:表示实参的类型时一个数值,形参的类型是基本数据类型; - -- 址传递:表示实参是一个地址,形参的类型是一个指针; - -- 当需要将函数内部的形参的改变作用与实参时则需要使用址传递(传递地址),否则使用值传递(传递数值)。 - -## 总结 - -- 函数的优点 - -- 提高代码的重用性。 试想一下, 一个函数也许会在 N 多地方被使用, 如果没有将该功能封装起来, 而在每一个用到这个功能的地方都写一遍代码, 将会浪费很多资源。就像一个企业给每一个员工都配备一台打印机, 虽然每个人独占资源用起来很便捷, 但却浪费了大量的成本。 - -- 方便维护和升级源代码。 假设需要对一个的算法修正或者修改, 那只要不改变函数接口和功能的情况下, 可以方便地进行, 不需要知道该函数在何处被调用。 调用者也感觉不到代码的改变, 因为函数的封装性使得他们让调用者感觉起来是透明的。 - -- 有利于结构化代码。 将一个个功能封装在相对独立的函数里, 再将函数组装成程序,那么整个逻辑就很清晰, 出错了也较容易排查。 否则, 在一个没有结构化的代码中, 所有的功能杂乱地挤作一团, 逻辑复杂, 也极易出错。 - -- 函数封装的要求 - -- 高内聚:一个功能集中在一个函数的内部。 - -- 低耦合:功能函数与功能函数间的影响要低。 - -# 四、主函数传参 - -- 函数参数列表不为void则表示函数可以接收数据,主函数"int main(int argc, char *argv[])"意味着主函数也支持接收数据。 - -![](images/WEBRESOURCE131d91bf42e75d64d2774081dd4992c2image.png) - -![](images/WEBRESOURCEb181fe3155c18772408b6088b6ef9260image.png) - -注意: - -- 每个命令行参数间使用空格(一个或多个皆可),若参数本身就带有空格则需要使用单引号或双引号将整个内容包含 - -![](images/WEBRESOURCE04c87caf7ac6f6ffe55d92c338e3f197image.png) - -- 一般情况下若需要接收命令行参数,则需要在主函数中判定参数是否符号要求,以保障程序的正确执行 - -![](images/WEBRESOURCE2f30409c67de5069191ecf8ca0167cd0image.png) - -## 练习 - -接收命令行参数三个,输出这个三个数的和 - -# 五、变参函数 - -- 概念:调用函数时可根据实际需求来决定函数参数的个数 - -```c -int printf(const char *restrict format, ...); -int scanf(const char *restrict format, ...); - -printf("%d", a); -printf("%d, %d", a, b); -printf("%d, %d, %d", a, b, c); -``` - -- 定义变参函数 - -- 添加头文件"#inclded stdarg.h" - -- 定义函数时末尾参数使用省略号(...)表示可以更具需求来确认,省略号前可以自由设置参数类型(至少一个,强制参数) - -- 在函数定义中创建va_list类型变量,用于存放可变参数 - -- 使用va_start(),用于初始化va_list类型变量,初始化内存。 - -- 使用va_arg() ,来访问可变参数列表中的每个项。 - -- 使用va_end(),来清理va_list变量的内存,释放内存。 - -```c -#include -#include - -int fun(int n,...); - -int main(int argc, char *argv[]) -{ -    fun(2, 1, 2); -    fun(5, 1, 2); - -    return 0; -} - -int fun(int n,...) -{ -    // 在函数定义中创建一个va_list变量list,将来调用时传递的参数存储在list中 -    va_list list; - -    // 使用强制参数初始化变量list -    va_start(list, n); - -    // 使用va_arg()访问list中的每个项 -    for (int i = 0; i < n; i++) -    { -        printf("%d\n", va_arg(list, int)); -    } -    -    // 清除list中的缓存 -    va_end(list); -} -``` - -## 练习 - -编写一个变参函数,用于计算多个数的平均值(double)保留2位精度。 - -# 六、递归函数 - -- 概念:如果一个函数在内部调用自身,那么这个函数就是递归函数 - -- 组成:必须要有一个结束条件(简单条件),否则会导致程序栈溢出。 - -```c -void fun(void) -{ - fun(); -} -``` - -![](images/WEBRESOURCE8a15519dcbff531403a69214e1f98014image.png) - -```c -#include -/* 计算阶乘 */ -int func(int n) -{ -    if(n==1) -        return n; -    return n*func(n-1); -} - -int main(int argc, char *argv[]) -{ -    int n = 0; -    scanf("%d", &n); -    printf("%d", func(n)); -    return 0; -} -``` - -注意:递归虽好但不是所有情况都适合,比如数据规模太大会导致"栈溢出" - -递归函数的特点:代码精简但效率低。 - -## 练习 - -- 使用递归打印N的斐波拉契数列 - -1 1 2 3 5 8 13 ...... - -- 有5个人坐在一起,问第五个人多少岁?他说比第四个人大两岁。问第四个人岁数,他说比第三个人大两岁。问第三个人,又说比第二个大两岁。问第二个人,说比第一个人大两岁。最后问第一个,他说是10岁。编写程序,当输入第几个人时求出其对应年龄。 - -# 七、回调函数 - -- 回调(callback) 是一种非常重要的机制, 主要可以用来实现软件的分层设计, 使得不同软件模块的开发者的工作进度可以独立出来, 不受时空的限制, 需要的时候通过约定好的接口(或者标准) 相互契合在一起, 也就是 C++或者 JAVA 等现代编程语言声称的所谓面向接口编程。 同时回调也是定制化软件的基石, 通过回调机制将软件的前端和后端分离, 前端提供逻辑策略, 后端提供逻辑实现。 - -- 作用:统一操作接口,开放功能定制。 - -# 八、内联函数 - -- 使用关键字inline关键字修饰的函数称为内联函数 - -```c -inline void func(void); -``` - -- 节省函数间切换所需的时间,提高函数的运行效率 - -- 原理:一个普通函数在调用过程中,会在调用这个函数的函数中形成保护现场和恢复现场的过程,这个需要花费时间,降低程序的运行效率,这时可以将这个函数设计内联函数,在编译器编译过程中,编译器会将符合标准的内联函数直接展开(使用函数的功能代码替换函数的调用),这样就会节省保护现场和恢复现场的时间,同时又做到了模块化编程。 - -![](images/WEBRESOURCE919546e5273412ccfee06772f169be0bimage.png) - -- 内联函数的使用场景 - -- 代码精简,功能语句简短不具有循环、switch等语句。 - -- 调用频繁 - -**注意:内联函数不是写了inline声明的函数就是内联函数,能否构成内联函数是由编译器决定。若添加inline关键字但不符合编译器的标准,则编译器会将其视为普通函数。** - -[函数练习题.docx](attachments/WEBRESOURCE94606765850c0696e801236ba49014a2函数练习题.docx) - -# 作业 - -[函数作业题.docx](attachments/WEBRESOURCEa2d88b6292b52c177b4bc6323a5bdd07函数作业题.docx) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/07-数组.md b/Collection/YoudaoyunNotes/02C语言/07-数组.md deleted file mode 100644 index ed24813..0000000 --- a/Collection/YoudaoyunNotes/02C语言/07-数组.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -tags: - - empty -aliases: empty -日期: 2026/1/23 ---- diff --git a/Collection/YoudaoyunNotes/02C语言/08-指针.md b/Collection/YoudaoyunNotes/02C语言/08-指针.md deleted file mode 100644 index af75135..0000000 --- a/Collection/YoudaoyunNotes/02C语言/08-指针.md +++ /dev/null @@ -1,410 +0,0 @@ -# **1. 准备知识** - -**1.1 内存地址** - -- 字节:字节是内存的容量单位,英文称为 Byte,一个字节有8比特位,即 1Byte = 8bits 1B = 8b - -- 地址:系统为了便于区分每一个字节而对它们逐一进行的编号,称为内存地址,简称地址。 - -![](images/WEBRESOURCE73f0b54259e8460e97f84fd70e8aaef4stickPicture.png) - -## **1.2 基地址** - -- 单字节数据:对于单字节数据而言,其地址就是其字节编号。 - -- 多字节数据:对于多字节数据而言,其地址是其所有字节地址中编号最小的那个,称为基地址。 - -![](images/WEBRESOURCE06e4a4aac18e468d89b657886f10a5b3stickPicture.png) - -### **1.3 取址符** - -- 每个变量都是一块内存,都可以通过取址符 & 获取其地址 - -- 注意:&符号的左边有操作数则表示位与运算符,若左边没有操作数则表示取地址符 - -```c -int main(int argc, char *argv[]) -{ -    int a=110; -    printf("整型变量a的地址是:%p\n", &a); - -    char b='a'; -    printf("字符型变量b的地址是:%p\n", &b); - -    float c=3.14; -    printf("浮点型变量c的地址是:%p\n", &c); - -    printf("整型变量a的地址长度是:  %ld\n", sizeof(&a)); -    printf("字符型变量b的地址长度是:%ld\n", sizeof(&b)); -    printf("浮点型变量c的地址长度是:%ld\n", sizeof(&c)); -    return 0; -} -``` - -- 总结 - -- 虽然不同类型的变量的内存尺寸不同,但是他们的地址尺寸(地址编号的位数)却是相同的(地址的尺寸与系统的字长相关,32位系统地址尺寸为32位,64位系统地址尺寸为64位) - -- 不同的地址虽然表示形式一样,但他们所代表的内存尺寸(在内存中所占内存大小)和类型都不相同,因此相同形式的地址编号在逻辑上要严格进行区分 - -![](images/WEBRESOURCEc93ef0073e59a9197d1df93e15a42da9image.png) - -# 2.指针入门 - -## 2.1指针概念 - -由于翻译问题及口语表达的习惯,在日常表述中,指针会有以下两种含义 - -- 指地址 - -```c -int a; -&a; // 我们可以说&a指向a的地址 -``` - -- 指指针变量 - -```c -int *p; // 可以用于指向int类型数据的地址 -``` - -- *号左右两边都有操作数,表示两数相乘(a*b) - -- *号左右两边都有操作数,且左操作数数一个数据类型表示定义一个指针变量(int *p) - -- *号左边没有操作数,表示取值操作(*p) - -## 2.2指针的定义 - -- 用于存放数据类型变量的地址的变量称为指针 - -```c -int *p1; // 用于存储int类型数据的地址,p1被称为int型指针或整型指针 -char *p2; // 用于存储char类型数据的地址,p2被称为char型指针或字符型指针 -double *p3; // 用于存储double类型数据的地址,p3被称为double型指针或浮点型指针 -``` - -对于int *p;在32位系统下的理解如下: - -![](images/WEBRESOURCE2f532ae1a2635b8f6d6eb26f2b49be3eimage.png) - -![](images/WEBRESOURCE970015c2b46c95da2d92fad50ded8cadimage.png) - -- 注意:指针用于存放地址的变量,由于在相同的系统位数下地址的尺寸相同,故指针的尺寸相同 - -![](images/WEBRESOURCEe6d0d1a5088db204eab4343b8bff4ef4image.png) - -- 指针变量的内存尺寸只于系统字长相关,与指针的类型无关。 - -## 2.3指针的赋值 - -- 可将一个地址类型于指针类型相同的地址赋值这个指针 - -```c -int a=100; -char b='A'; -double c=3.14; - -p1 = &a; // 将a的地址赋值给指针p1,它们类型必须相同 -p2 = &b; // 将b的地址赋值给指针p2,它们类型必须相同 -p3 = &c; // 将c的地址赋值给指针p4,它们类型必须相同 - -int *p4 = p1; // 使用整型指针变量p1值初始化赋值整型指针p4 -int *p5; -p5 = p1; // 整型指针变量p1值赋值给整型指针p5 -int *p6 = &a; // 使用a的地址初始化赋值整型指针变量p6 -``` - -## 2.4指针的索引 - -- 所谓索引,指的是通过指针变量取得其指向的目标(访问指针变量中所存储的地址中的数据) - -```c -*p1 = 200; -*p2 = 'B'; -*p3 = 6.62; - -a = 10; -a = 10; -``` - -![](images/WEBRESOURCEe2db6c7a73c7bc9d780f9639545ccf3eimage.png) - -## 练习 - -编写一个函数实现两个数交换。 - -# 3.特殊指针 - -## 3.1野指针 - -- 指向一块未知区域的指针,称为野指针。**野指针是危险的** - -![](images/WEBRESOURCE6a63aa7276f21b9af08cd146f5959cbbimage.png) - -- 危害 - -- 引用野指针,相当于访问了非法内存,常常会导致段错误(segmentatio fault) - -- 引用野指针,可能会破坏系统关键数据,导致系统崩溃等严重后果。 - -- 产生原因 - -- 指针定义式未进行初始化 - -- 指针指向内存被系统回收 - -- 指针越界 - -- 如何防止 - -- 定义指针时进行及时初始化(定义时无法明确指向则赋值为NULL) - -- 绝不引用已被回收的内存(回收内存后令指针指向NULL) - -- 确认所申请的内存边界,谨防越界 - -## 3.2空指针 - -```c -NULL // (void *)0; -``` - -- 很多情况下,我们不可避免的会遇到野指针,如刚刚定义指针无法立即为其分配一块内存时,又或者指针所指向的内存被释放了等等。 - -- 对于一个暂时无法让其指向一块合法内存的指针而言, 我们最好将其初始化为“空指针” , 即给他赋一个空值(零) , 让他指向零地址 - -![](images/WEBRESOURCE698f0b5e2b11e6c3a965743dd01df4caimage.png) - -```c -// 刚刚定义指针无法明确其指向,让其指向零地址以保证安全 -int *p = NULL; -char *q = NULL; - -//指针指向的内存被释放,令指针立即指向零地址保证安全 -char *k = malloc(2); // 给指针分配内存 -free(k); // 释放内存 -k = NULL; -``` - -## 3.3void指针 - -- 概念:所谓void指针也称为万能指针(泛型指针),无法明确指针所指向的目标的数据类型则可将这种指针定义为void类型 - -- 要点: - -- void型指针无法索引目标,必须将其转换为一个具体的类型指针方可索引目标。 - -- void型指针不支持加减运算。 - -> void只用于三种情况 -> 定义指针 -> 定义函数类型 -> 表示函数的参数列表 - - -```c -void swap(void *a, void *b) -{ -    // int *p = a; -    // int *q = b; - -    // *p^=*q; -    // *q^=*p; -    // *p^=*q; - -    *((int *)a) ^= *((int *)b); -    *((int *)b) ^= *((int *)a); -    *((int *)a) ^= *((int *)b); -} -``` - -## 3.4char型指针 - -- char型指针实质上与别的类型指针并无本质区别,但由于C语言中字符串以字符数组的方式进行存储,而数组在大多数场合又表现为指针,因此字符串在绝大多数场合下表现为char型指针 - -```c -char *p = "abcd"; // p指向的目标是字符串常量的地址 -*p = 'x'; // 不可以修改常量数据 -/* 上面的写法语法上无错,但逻辑不允许,推荐下面的写法,编译器会帮助我们检查语法错误 */ -const char *q = "abcd"; // q指向的目标是字符串常量的地址 -*q = 'x'; -``` - -## 3.5const型指针 - -- const(只读)型指针有两种形式:①常指针(指针只读)②常目标指针(目标只读) - -- 常指针:const修饰指针本身,表示指针变量本身无法修改(指针常量) - -```c -char * const p; -``` - -![](images/WEBRESOURCE55871207d1eef11e0fd010e335e4cc0f576913ed193ece92e9ad7fc8a81dc9cf.png) - -```c -char a,b; -char  * const p = &a; - -// p = &b; // 错误,常指针不能修改其值 - -*p = 'S'; // 可通过指针对目标进行读写 -printf("%c\n", *p); -``` - -- 常目标指针:const修饰指针的目标,表示无法通过该指针修改其目标(常量指针)。 - -![](images/WEBRESOURCE51fc80bb52e549d39a1753ac77f656e5stickPicture.png) - -```c -const char  *q = &a; -char const  *k = &a; // k和q等价 - -q = &b; // 指针指向的目标可以修改 -k = &b; - -*q = 'a'; // 错误,常目标指针无法写访问目标 -printf("%c\n", *k); // 正确。常目标指针读可访问目标 -``` - -- 常指针在实际应用中不常见。 - -- 常目标指针在实际应用中广泛可见,用来限制指针的读写权限 - -## 晚上作业 - -[指针与数组作业.doc](attachments/WEBRESOURCEd71090e9d6659f19f9b36c93099793f4指针与数组作业.doc) - -## 3.6函数指针 - -- 指向函数的指针称为函数指针 - -- 函数指针与普通指针本质上并无区别,只是在取址和索引时取址符&与索引符*均可省略 - -```c - double fun(double a[], int len) -{ -   double max = a[0]; -   for(int i=0; ia[i]?max:a[i]; -   } -   double min = a[0]; -   for(int i=0; i - -void fun(int *p, int (*q)[], int **k) -{ - -} -int main(int argc, char *argv[]) -{ -    int array[2][3]; -    int array1[2][5]; -    int arr[2]; -    int *ptr; - -    fun(arr,array,&ptr);  //  array  == &array[0]    array[0] == &array[0][0] -    fun(arr,array1,&ptr); -    return 0; -} -``` - -## 练习 - -- 定义指针指向下列的目标并将代码补充完整 - -```c -int main(int argc, char *argv[]) -{ -    int a[3] = {1,2,3}; -    int b[2][5]= {1,2,3}; -    char *s[5]= {"hahaha","xixi","ooo"};   - -    p1 = a; -    printf("%d\n", p1); - -    p2 = b; -    printf("%d\n", p2); - -    p3 = s;   -    printf("%s\n", p3); - -    p4 = &b[0]; -    printf("%d\n", p4); - -    p5 = &b[1][3]; -    printf("%d\n", p5); - -    int p6 = &a; -    printf("%d\n", p6); - -    int p7] = &b; -    printf("%d\n", p7); - -    p8 = &s; - -    return 0; -} -``` - -# 四、**数组、指针与函数** - -### **数组参数** - -- 核心语法:当数组在函数中被当做参数传递时,系统会将其自动转化为指针,具体而言,会将其转化为一个指向数组首元素的指针。 - -- 示例: - -```c -int a[3] = {100,200,300}; -void f1(a); // &a[0]; int * -``` - -- 说明: - -- 数组a作为参数传给函数f1()。 - -- 实参a在传递进函数后,系统随即将其转化为一个指向a[0]的指针,即一个 int* 指针,指向首元素100。 - -- 此时,若定义函数f1(),则可以有如下两种写法,它们是完全等价的: - -```c -// 写法一: -void f1(int a[3]) // 或可以写成 void f1(int (a[3]) ) -{ - ... -} - -// 写法二: -void f1(int *a) // 或可以写成 void f1(int (*a) ) -{ - ... -} -``` - -### **数组与指针表示字符串时的区别** - -数组是一片连续的内存,这片内存中保存的数据是字符串,可以对这个片内存的数据进行修改。 - -指针是一个变量,只存储数据字符串的地址,而字符串数据本身是常量,不能通过指针对目标进行修改,但是可以改变指针指向的目标。 - -```c -  char  *p = "hello";  // 局部变量;"hello"存放在.rodata段中;指针p指向的目标在.rodata中 -    char str1[] = "hello";// 局部变量;"hello"存放在.rodata段中;str是栈空间的一片连续内存存放的是"hello" -    - -    printf("p: %s\n", p); -    printf("str: %s\n", str1); - - str1 = "abcd"; // 错误,将“abcd”字符串赋值给数组str1时需要一个一个的进行。 -    str1[0] = 'a';  // 栈内存可以进行读写访问 -    printf("str: %s\n", str1); - - p = "abc"; // 可以修改p的指向  -    *p = 'a';  // 不能对常量区(.rodata)内存进行写访问 -    printf("p: %s\n", p); -``` - -### **复杂数组参数1** - -以上示例的数组可以为任意类型的数组,比如: - -```c -int b[3][4]; // &b[0] int [4] -int f2(b); -``` - -此时,二维数组b被当做参数传给了函数f2(),逻辑跟一位数组完全一样,唯一的不同只是数组b的首元素不再是普通的int,而是int [4],函数f2()的定义也可以有两种写法: - -```c -// 写法一: -void f2(int b[3][4]) // 或可以写成 void f2(int (b[3]) [4] ) -{ - ... -} - -// 写法二: -void f2(int (*b)[4]) // 此处小圆括号(*b)不能省略 -{ - ... -} -``` - -此例与上述数组a和函数f1()完全等同,看不出来的同学注意将数组b中的元素类型 int [4] 视为一个整体,等同于数组a中的元素类型 int。 - -### **复杂数组参数2** - -继续讲数组参数进行变形,比如: - -```c -char *c[3]; // &c[0] char * -int f3(c); -``` - -此时,数组c被当做参数传给了函数f3(),逻辑跟之前的两个例子完全一样,唯一的不同只是数组c的首元素是 char *,函数f3()的定义也可以有两种写法: - -```c -// 写法一: -void f3(char *c[3])// 或可以写成 void f3(char * (c[3]) ) -{ - ... -} - -// 写法二: -void f3(char **c) // 或可以写成 void f3(char * (*c) ) -{ - ... -} -``` - -### **总结** - -- 任何数组成为参数被传递时,都一律会被转化为一个指针,一个指向其首元素的指针,系统这么做是因为要提高数据传递的效率,但这同时给编程开发者提了个醒 —— 与普通按值传递不同,数组传的都是地址,形参都可以直接访问实参。 - -- 数组作为函数参数与返回值时实际是传递数组的基地址与返回数组的基地址,此时这个数组实际是一个指针,如下示例代码中my_strcat与my_strcat1的返回值均是一个数组,参数也是数组此时实际传递的是一个指针。 - -```c -/* 将字符串str2追加到str1的末尾,返回追加后的地址 */ -char *my_strcat(char str1[], char str2[]) -{ -    int i; -    for (i = 0; str1[i] != '\0'; i++) -    { -    } -    for (int j = 0; str2[j] != '\0'; j++) -    { -        str1[i+j] = str2[j]; -    } -    -    return str1; -} - -char *my_strcat1(char *str1, char *str2) -{ -    int i; -    for (i = 0; str1[i] != '\0'; i++) -    { -    } -    for (int j = 0; str2[j] != '\0'; j++) -    { -        str1[i+j] = str2[j]; -    } -    -    return str1; -} -``` - -# 五、复杂声明 - -- 分析复杂声明的步骤 - -- 从左至右找第一个非关键字标识符 - -- 以这个标识符为中心,逐个与()、[]、*结合 - -- 找到被小括号括起来的部分(从左到右原则) - -- 跟后缀操作符集合((), [])结合 - -- ()后缀表示是一个函数,分析其返回值及参数类型 - -- []后缀表示是一个数组,分析其元素类型 - -- 跟前缀(*)结合 - -- *前缀表示是一个指针,分析指向的目标类型 - -- 示例 - -```c -char *(*fun)(int); - -``` - -```c -char *(*fun[10])(int); - -``` - -```c -int *(*fun(int))[3]; - -``` - -```c -char *(*fun(char *(*p)(char *)))[2](int); - -``` - -[数组与指针作业.doc](attachments/WEBRESOURCEd160cdba37fb5f6e6e853a57af52b227数组与指针作业.doc) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/10-函数进阶.md b/Collection/YoudaoyunNotes/02C语言/10-函数进阶.md deleted file mode 100644 index 2b68cc2..0000000 --- a/Collection/YoudaoyunNotes/02C语言/10-函数进阶.md +++ /dev/null @@ -1,397 +0,0 @@ -# 一、C语言函数库 - -- 概念:在C语言发展过程中收录了很多经典的数据操作方法----函数,将这些函数收录归纳汇总为开发人员方便使用的API接口(函数),如下图所示的各种操作接口库。 - -![](images/WEBRESOURCE607893845793236f767da405d9c9a4d5image.png) - -# 二、字符串操作函数 - -- 使用三部曲 - -- 确认头文件 - -- 确认函数功能 - -- 确认函数的参数与返回值 - -- C语言标准字符串函数库,头文件"#include " - -![](images/WEBRESOURCE104cae287459e90d523049be3c9ed591image.png) - -- **函数strlen** - -![](images/WEBRESOURCE0b5032b3e1de49ca903bd2db77d153e4b5ee282015ce47bc0f3295c8193891e2.png) - -```c -char *p = "www.yueqian.edu.com.cn"; -printf("粤嵌官网的地址长度是:%d\n", strlen(p)); -``` - -- **函数strcat与strncat** - -![](images/WEBRESOURCEeb0dc101742ac85592adc21845b91dab6f8df56f18a43f648269080ac22c4c87.png) - -- 注意: - -- 这两个函数的功能一样,都是将src字符串复制到dest的末尾。 - -- strcat()没有边界控制,因此可能会由于src字符串过长导致dest无法保存从而导致内存溢出。 - -- strncat()有边界控制,可以限制拼接字符的格式,保证dest不会因为越界而导致内存溢出。 - -- 更加值得推荐的字符串拼接函数sprintf()与snprintf(),头文件"#include " - -![](images/WEBRESOURCE62638d6f9956908d7b93dd99d70bcc61image.png) - -![](images/WEBRESOURCEb4578182300ccebca038b5640e577b8eimage.png) - -- 要点:sprintf与snprintf不光可以拼接字符串还可以实现将其他数据类型也添加到字符串中,sprintf对目标字符串的长度没有现在条件又内存溢出风险,但snprintf没有。 - -```c - char str1[10] = "温度:"; -    int temp = 27; -    char buf[50]; -    // sprintf(buf,"%s%d随机数据啊科技时代粉红色大家发货的撒扩大飞机和\r\n", str1, temp); // 无长度控制 -    // printf("buf:%s", buf); -    snprintf(buf,sizeof buf,"%s%d随机数据啊科技时代粉红色大家发货的撒扩大飞机和\r\n", str1, temp);  // 有长度控制 -    printf("buf:%s", buf); -``` - -- **函数strtok** - -![](images/WEBRESOURCEf54011d029f949fe3f754b46aa3853cbfc1fc8c6aeff83d2c08b1198d0df3ed6.png) - -- 注意: - -- 该函数会将改变原始字符串 str,使其所包含的所有分隔符变成结束标记 ‘\0’ 。 - -- 由于该函数需要更改字符串 str,因此 str 指向的内存必须是可写的。 - -- 首次调用时 str 指向原始字符串,此后每次调用 str 用 NULL 代替。 - -```c -char s[20] = "www.yueqian.com.cn"; - -char *p = strtok(s, "."); // 首次调用时,s 指向需要分割的字符串 -while(p != NULL) -{ - printf("%s\n", p); - p = strtok(NULL, "."); // 此后每次调用,均使用 NULL 代替。 -} -``` - -***注:上述代码的运行结果就是将字符串 s 拆解为"www"、“yueqian”、“com” 和 “cn”*** - -- 其他子串提取:sscanf()按照格式提取字符串中的内容 - -![](images/WEBRESOURCE226669d81bf2dc869c23059ac82f7a8eimage.png) - -```c - char str[] = "www yueqian-edu com cn"; - char str1[4]; - char str2[20]; - sscanf(str,"%s %s",str1,str2); - printf("str1:%s\n", str1); -``` - -- **函数strstr** - -![](images/WEBRESOURCE54b672d577364079ba70fd45152a12e9stickPicture.png) - -```c - char *str = "正午十二点,柏油路面被晒得发软。便利店的冷柜吐出白雾,穿校服的女孩咬着冰棒跑过," -                "塑料包装纸在风里打着旋儿,最后贴在墙角那丛半枯的狗尾草上。" -                "远处的施工队歇了工,起重机的吊臂在烈日里投下细长的影子,像根被晒蔫的芦苇。"; -    -    /* 在字符串中找子串 */ -    char *p = strstr(str, "柏油路");  // 从前往后查找子串,返回子串第一次出现位置 -    char *q = strstr(p+1, "你的女孩");// 若未找到则返回NULL -    if(p != NULL) -        puts(p); -    -    if(q != NULL) -        puts(q); -``` - -## **函数strcpy与strncpy** - -![](images/WEBRESOURCE4bf7c30b9e994bda856db1440425e6fcstickPicture.png) - -```c -int main(int argc, char *argv[]) -{ -    char *name = "张三丰"; -    char name1[20] = "123465dsdskfhjdsahs"; - -    // 不能把一个进行字符串赋值 -    // name1 = name; - -    strcpy(name1, name);  // 将name的内容全部内容包括'\0'都拷贝给name1的内存中 -    puts(name1); -    puts(name1+10); - - -    strncpy(name1, name, sizeof(name1));// 将name的内容sizeof(name1)字节部分内容包括'\0'都拷贝给name1的内存中,不足的不会拷贝 -    puts(name1); - -    return 0; -} -``` - -- 注意: - -1. 这两个函数的功能,都是将 src 中的字符串,复制到 dest 中。 - -1. strcpy() 没有边界控制,因此可能会由于 src 的过长而导致内存溢出。 - -1. strncpy() 有边界控制,最多复制 n+1 个字符(其中最后一个是 ‘\0’ )到 dest 中。 - -## **函数strcmp与strncmp** - -![](images/WEBRESOURCE07b09d5113504e099c4fbfd3ef55f632stickPicture.png) - -```c -#include -#include - -void fun(char *p) -{ -    char *q = "abc"; -    if(p==q) -    { -        printf("p与q相等\n"); -    } -    else -    { -        printf("p与q不相等\n"); -    } -} - -int main(int argc, char *argv[]) -{ -    // char *str1 = "abc"; -    // char *str2 = "abc"; // 相同的常量在内存中只有一份 - -    // fun(str1); - -    // if (str1 == str2) // 比较的是指针指向的目标是否相同 -    // { -    //     printf("str1与str2相等\n"); -    // } -    // else -    // { -    //     printf("str1与str2不相等\n"); -    // } - -    char s1[] = "abcacccaddc"; -    char s2[] = "abca"; - -    // if (s1 == s2)// 比较的是s1和s2的内存地址是否相同 -    // { -    //     printf("s1与s2相等\n"); -    // } -    -    int ret = strcmp(s1,s2); // 不是比较长短,而是比较两个字符串内容的大小(ASCII码值),一直比较到有结果为止 -                             // 若s1中字符的ASCII码值>s2中字符的ASCII码值则返回值大于0 -                             // 若s1中字符的ASCII码值与s2中字符的ASCII码值全部相等则返回值等于0 -                             // 若s1中字符的ASCII码值 0) -        printf("s1大于s2\n"); -    else -        printf("s1小于s2\n"); - -    ret = strncmp(s1,s2, 4); // 选择性比较,可以设置比较的字符长度 -    // printf("%d\n",ret); -    if(ret == 0) -        printf("s1与s2相等\n"); -    else if(ret > 0) -        printf("s1大于s2\n"); -    else -        printf("s1小于s2\n"); - -    return 0; -} -``` - -- 注意: - -- 比较字符串大小,实际上比较的是字符的 ASCII码值的大小。 - -- 从左到右逐个比较两个字符串的每一个字符,当能“决出胜负”时立刻停止比较(s1的字符ascii码值减去s2字符的ascii码值返回差值)。 - -## **函数strchr与strrchr** - -![](images/WEBRESOURCEa0517f24461b40ebad5fb8cb35e5046estickPicture.png) - -```c - char *str = "正午十二点,柏油路面被晒得发软。便利店的冷柜吐出白雾,穿校服的女孩咬着冰棒跑过," -                "塑料包装纸在风里打着旋儿,最后贴在墙角那丛半枯的狗尾草上。" -                "远处的施工队歇了工,起重机的吊臂在烈日里投下细长的影子,像根被晒蔫的芦苇。"; - /* 在字符串中找字符 */ -    char *k = strchr(str, ','); // 从前往后查找字符,返回字符第一次出现位置(中文字符不行),没有找到返回NULL -    if(k != NULL) -        puts(k); -    char *j = strrchr(str, '\0'); // 从后往前主要字符,返回字符第一次出现位置(中文字符不行),没有找到返回NULL -    if(j != NULL) -        puts(j); -    printf("%#x\n", j[0]); -``` - -- 注意: - -1. 这两个函数的功能,都是在指定的字符串 s 中,试图找到字符 c。 - -1. strchr() 从左往右找,strrchr() 从右往左找。 - -1. 字符串结束标记 ‘\0’ 被认为是字符串的一部分。 - -## 练习 - -自己封装函数实现strlen,strcat,strtok,strstr,strcpy,strcmp函数的功能。 - -# 晚上作业 - -1. 定义一个长度为20的整型数据生成随机数对这个数组进行初始化,编写排序函数对这个数据中的数据进行从小到大排序 - -- 要求编写五种排序函数:冒泡排序、选择排序、插入排序、快速排序、希尔排序 - -- 提示: - -- **各种排序算法的****时间复杂度****与****空间复杂度** - -![](images/WEBRESOURCEb440b29046c7b9a6f3c4315e2c59b6ffimage.png) - -- **冒泡排序** - -- 顺序:两个数据位置符合排序要求 - -- 逆序:两个数据位置不符合排序要求 - -- 思路:从头到尾让两个相邻数据进行比较,顺序保持不变,逆序交换位置,经过一轮比较序列中具有一个“极值”将被挪至末端。 - -![](images/WEBRESOURCE017da79a24a769cff3e5b4a570845821849589-20171015223238449-2146169197.gif) - -```c - -``` - -- **插入排序** - -- 思路:假设数列前面有i个节点的序列是有序的,那么就从第i+1个节点开始,插入到前面i个节点中的合适位置。由于序列的第一个节点始终视为有序,所以实在从第二个节点开始。 - -![](images/WEBRESOURCE0bef0e4f20c74105d00fc30f18338300849589-20171015225645277-1151100000.gif) - -```c - -``` - -- **选择排序** - -- 在无序序列中依次从头到尾挑选合适的节点放入有序序列。 - -![](images/WEBRESOURCE5936c4c59a03bf6508f3f2fc7f496572849589-20171015224719590-1433219824.gif) - -```c - -``` - -- **快速排序** - -- 快排是一直典型的递归思想,相比较其他排序它需要跟多的空间,理论上时间效率是最高的。 - -- 思想:在待排序序列中选取一个数据,作为“支点”,然后其他数据与支点比较,(升序)比支点小的放左边,比支点大的放右边,全部比较完后支点位于两个序列的中间,这叫一次划分(partition) - -![](images/WEBRESOURCEe0805f5f18d746ebfe9e7c96c29f5a05image.png) - -- 一次划分之后,序列的内部也许无序,但是左右序列与支点三者间,形成了一种基本有序状态,接下来使用相同的思路,递归的对左右序列进行排序,直到子序列的长度小于等于1为止; - -![](images/WEBRESOURCEb6a0efee1c1bc96325017b5204bf671f849589-20171015230936371-1413523412.gif) - -```c - -``` - -- **希尔排序** - -- 插入排序的改进版本,普通插入排序是从第2个节点开始,依次插入到有序序列中,这种做法在虽然一次成型,但时间效率上不划算,优化思路: - -- 不严格一个个插入使之有序,而是拉开插入节点的距离,让它们逐步有序,有待排序序列如下: - -84、83、88、87、61、50、70、60、80、89 - -- 第一遍,先区间隔(Δ=5),即依次对以下5组数据进行排序 - -**84** - -84、 - -84、83、 - -84、83、88、 - -84、83、88、87、 - -**注意:** - -**50** - -50、 - -50、70、 - -50、70、60、 - -50、70、60、80、 - -**结果:(** - -**50** - -50、 - -50、70、 - -50、70、60、 - -**得到:** - -**50** - -50、 - -50、61、 - -50、61、60、 - -**结果** - -![](images/WEBRESOURCE77576e5ba8ad0a92819a29e42a156f4c849589-20180331170017421-364506073.gif) - -```c - -``` - -1. 将自己写的字符串操作函数进行吸收 - -1. 制作一个图书管理系统,要求: - -1. 输入1:增加书籍名称(可以连续添加多本) - -1. 输入2:删除数书籍名称(删除一本或全部删除) - -1. 输入3:修改书籍名称 - -1. 输入4:查找书籍名称(模糊查找或精确查找) - -1. 输入5:显示所有书籍 - -1. 输入0:退出系统 - - 只要系统未退出则可以继续重复进行,直至系统退出。 - - 提示:char *book_name[1000]; // 表示表示最多可存放1000书,书名的长度自己设计。 - -[设置终端信息字体及颜色](https://share.note.youdao.com/s/DydeICJh) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/11-内存管理.md b/Collection/YoudaoyunNotes/02C语言/11-内存管理.md deleted file mode 100644 index 133ad86..0000000 --- a/Collection/YoudaoyunNotes/02C语言/11-内存管理.md +++ /dev/null @@ -1,305 +0,0 @@ -# **C语言程序内存布局** - -任何一个程序,正常运行都需要内存资源,用来存放诸如变量、常量、函数代码等等。这些不同的内容,所存储的内存区域是不同的,且不同的区域有不同的特性。因此我们需要研究C语言进程的内存布局,逐个了解不同内存区域的特性。 - -每个C语言程序运行后(进程)都拥有一片结构相同的虚拟内存,所谓的虚拟内存,就是从实际物理内存映射出来的地址规范范围,最重要的特征是所有的虚拟内存布局都是相同的,极大地方便内核管理不同的进程。例如三个完全不相干的进程p1、p2、p3,它们很显然会占据不同区段的物理内存,但经过系统的变换和映射,它们的虚拟内存的布局是完全一样的。 - -- PM:Physical Memory,物理内存。 - -- VM:Virtual Memory,虚拟内存。 - -![](images/WEBRESOURCE386be62eabb8428892ab8defa9285f62stickPicture.png) - -将其中一个C语言进程的虚拟内存放大来看,会发现其内部包下区域: - -- 栈(stack) - -- 堆(heap) - -- 数据段 - -- 代码段 - -![](images/WEBRESOURCE8e93c80dd4024c349b761d46d6bc550astickPicture.png) - -虚拟内存中,内核区段(1GB)对于应用程序而言是禁闭的,它们用于存放操作系统的关键性代码,另外由于 Linux 系统的历史性原因,在虚拟内存的最底端 0x0 ~ 0x08048000 之间也有一段禁闭的区段(128MB),该区段也是不可访问的。 - -虚拟内存中各个区段的详细内容: - -![](images/WEBRESOURCEad72a89dc307481fb738c9fd32d03bb0截图.png) - -# **栈内存** - -- 什么东西存储在栈内存中? - -- 环境变量 - -- 命令行参数 - -- 局部变量(包括形参) - -- 栈内存有什么特点? - -- 空间有限,尤其在嵌入式环境下。因此不可以用来存储尺寸太大的变量。 - -- 每当一个函数被调用,栈就会向下增长一段,用以存储该函数的局部变量。(随用随申请,用完系统自动释放) - -- 每当一个函数退出,栈就会向上缩减一段,将该函数的局部变量所占内存归还给系统。(由系统自动进行管理) - -- 注意: - -![](images/WEBRESOURCEbfbfe340f67e40d8b8abd3e304990e0b截图.png) - -Linux中栈空间的大小可以使用ulimit -a进行查看,若使用时超出这个范围则称为"栈溢出" - -![](images/WEBRESOURCE16558976e0bafd8d40e5bc88c3312104image.png) - -- 示例代码: - -```c -void func(int a, int *p) // 在函数 func 的栈内存中分配 -{ - double f1, f2; // 在函数 func 的栈内存中分配 - ... // 退出函数 func 时,系统的栈向上缩减,释放内存 -} - -int main(void) -{ - int m = 100; // 在函数 main 的栈内存中分配 - func(m, &m); // 调用func时,系统的栈内存向下增长 -} -``` - -# **数据段** - -C语言中,数据段中存放静态数据,静态数据有两种: - -- 全局变量:定义在函数外部的变量。 - -- 静态变量:静态局部变量(定义在函数内部,且被static修饰的变量)静态全局变量(定义在函数外部,且被static修饰的变量) - -- 示例: - -```c -int a; // 全局变量,退出整个程序之前不会释放 -void f(void) -{ - static int b; // 静态局部变量,退出整个程序之前不会释放 - printf("%d\n", b); - b++; -} - -int main(void) -{ - f(); - f(); // 重复调用函数 f(),会使静态局部变量 b 的值不断增大 -} -``` - -- 为什么需要静态数据? - -1. 全局变量在默认的情况下,对所有文件可见,为某些需要在各个不同文件和函数间访问的数据提供操作上的方便(extern<声明外部变量>)。 - -1. 当我们希望一个函数退出后依然能保留局部变量的值,以便于下次调用时还能用时,静态局部变量可帮助实现这样的功能。 - -- 注意1: - -- 若定义时未初始化,则系统会将所有的静态数据自动初始化为0 - -- 静态数据初始化语句,只会执行一遍。 - -- 静态数据从程序开始运行时便已存在,直到程序退出时才释放。 - -- 注意2: - -- static修饰局部变量:使之由栈内存临时数据,变成了静态数据。 - -- static修饰全局变量:使之由各文件可见的静态数据,变成了本文件可见的静态数据。 - -- static修饰函数:使之由各文件可见的函数,变成了本文件可见的静态函数。 - -# **数据段与代码段** - -- 数据段细分成如下几个区域: - -- .bss 段:存放未初始化(初始赋值)的静态数据,它们将被系统自动初始化为0 - -- .data段:存放已初始化的静态数据 - -- .rodata段:存放常量数据,程序内出现的所有常量,不包含const修饰的变量 - -- 代码段细分成如下几个区域: - -- .text段:存放用户代码,用户自己编写的所有程序源码 - -- .init段:存放系统初始化代码,编译系统会自动为每一个程序文夹添加系统初始化代码。 - -![](images/WEBRESOURCEdd9921bab1cd4252b7f237f0d8a12b47截图.png) - -```c -int a; // 未初始化的全局变量,放置在.bss 中 -int b = 100; // 已初始化的全局变量,放置在.data 中 - -int main(void) -{ - static int c; // 未初始化的静态局部变量,放置在.bss 中 - static int d = 200; // 已初始化的静态局部变量,放置在.data 中 - - // 以上代码中的常量100、200防止在.rodata 中 -} -``` - -- 注意:数据段和代码段内存的分配和释放,都是由系统规定的,我们无法干预。 - -# **堆内存** - -堆内存(heap)又被称为动态内存、自由内存,简称堆。堆是唯一可被开发者自定义的区段,开发者可以根据需要申请内存的大小、决定使用的时间长短等。但又由于这是一块系统“飞地”,所有的细节均由开发者自己把握,系统不对此做任何干预,给予开发者绝对的“自由”,但也正因如此,对开发者的内存管理提出了很高的要求。对堆内存的合理使用,几乎是软件开发中的一个永恒的话题。 - -- 堆内存基本特征: - -- 相比栈内存,堆的总大小仅受限于物理内存,在物理内存允许的范围内,系统对堆内存的申请不做限制。 - -- 相比栈内存,堆内存从下往上增长。 - -- 堆内存是匿名的,只能由指针来访问。 - -- 自定义分配的堆内存,除非开发者主动释放,否则永不释放,直到程序退出。 - -![](images/WEBRESOURCE7246c4ff67284b1f94285f137c008d32截图.png) - -- 相关API: - -- 申请堆内存:malloc() / calloc() - -- 清零堆内存:bzero() - -- 释放堆内存:free() - -![](images/WEBRESOURCE3b6fc7cbc2e84d2e953b56d19a155223截图.png) - -![](images/WEBRESOURCE3371a585a1a5dfcb33e097062bbbd329image.png) - -- 示例: - -```c -int *p = malloc(sizeof(int)); // 申请1块大小为 sizeof(int) 的堆内存 -bzero(p, sizeof(int)); // 将刚申请的堆内存清零 - -*p = 100; // 将整型数据 100 放入堆内存中 -free(p); // 释放堆内存 - -// 申请3块连续的大小为 sizeof(double) 的堆内存 -double *k = calloc(3, sizeof(double)); - -k[0] = 0.618; -k[1] = 2.718; -k[2] = 3.142; -free(k); // 释放堆内存 -k = NULL; -``` - -```c -#include -#include -#include - -int main(int argc, char *argv[]) -{ -    char *p = NULL; -    // char str[10] = {0};  // 栈数组,有名字 - -    p = malloc(7766279631452241920); // malloc可以动态的申请内存空间10字节,成功返回这个连续10字节空间的地址;堆数组,无名字 -    if(p == NULL) -    { -        // printf("申请内存失败\n");  // 特殊情况 -        perror("申请内存失败");  // 输出错误内容 -        return -1; -    } - -    // p = calloc(2, 10);  // calloc动态的申请内存空间,2片连续的内存每片10字节 -    // char (*q)[10] = calloc(4, 10);// malloc与calloc的用法相似的返回值都是void *因此可以为你申请所需要的所有类型内存。 -  - -    // for (int i = 0; i < 20; i++) -    // { -    //     str[i] = 'a'+i; -    //     p[i] =  'a'+i; -    // } -    // str[9] = '\0'; -    // p[19] = '\0'; - -    // printf("%s\n", str); -    // printf("%s\n", p); - -    // free(p); // 释放空间,使用完毕后将内存归还系统。 - -    p = malloc(20);   // 未进行初始化的内存 -    bzero(p,20); // 初始化内存(清零) -    for (int i = 0; i < 20; i++) -    { -        printf("%x\t",p[i]);  // *(p+i)  *(y+x) == y[x] -    } -    printf("\n"); - -    free(p); // 已经释放, p虽然保存的还是刚刚的空间,但这空间能否使用未知 -    p = NULL; // 防止释放后在进行访问 - -    p = calloc(1,20);  // 会进行初始化(清零)的内存 -    for (int i = 0; i < 20; i++) -    { -        printf("%x\t",p[i]);  // *(p+i)  *(y+x) == y[x] -    } -    printf("\n"); - -    free(p); // 已经释放, p虽然保存的还是刚刚的空间,但这空间能否使用未知 -    p = NULL; // 防止释放后在进行访问 - -//     for (int i = 0; i < 20; i++) -//     { -//         p[i] =  'a'+i; -//     } -//    printf("%s\n", p); - -    return 0; -} -``` - -- 注意: - -- malloc()申请的堆内存,默认情况下是随机值,一般需要用 bzero()或者memset() 来清零。 - -- calloc()申请的堆内存,默认情况下是已经清零了的,不需要再清零,且calloc可以申请多片连续内存。 - -- free()只能释放堆内存,并且只能释放整块堆内存,不能释放别的区段的内存或者释放一部分堆内存。 - -- realloc()重设内存的大小,若原地址后有足够的空间则新开拓的地址在原地址的基础上进行增加并返回原内存地址,若原地址后内存不足则重新开辟一片内存空间并将原地址内存中的数据拷贝到新的内存地址中,然后释放原地址内存并返回新内存地址。 - -```c - /* 验证realloc的使用: 若原来的空间后有空闲的可以追加的空间则在原来的空间后进行追加,返回原地址;若不够则将原来空间中的数据拷贝到新的空间中并释放原来的空间,再返回新空间的地址 */ -    p = malloc(20);  // 申请一片空间 -    printf("p: %p\n", p); - -    p = realloc(p, 20+2); // 重新设置已申请空间的大小  追加(再开辟) -    printf("p: %p\n", p); - -    p = realloc(p, 20-15); // 重新设置已申请空间的大小 缩减(释放一部分) -    printf("p: %p\n", p); -``` - -- 释放内存的含义: - -- 释放内存意味着将内存的使用权归还给系统。 - -- 释放内存并不会改变指针的指向,手动立即令指针指向NULL。 - -- 释放内存并不会对内存做任何修改,更不会将内存清零。 - -![](images/WEBRESOURCE7c9c73af4eed4645beaa1264f8384921image.png) - -- **什么时候用栈什么时候用堆?** - -- 基本数据类型(int char float double)就用栈,复合数据类型(结构体、联合体)就用堆。 - -- **练习** - -- 使用堆空间计算两个大数的乘积(如:123456789123456789123456789*987456321987456123698745) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/12-作用域与存储期.md b/Collection/YoudaoyunNotes/02C语言/12-作用域与存储期.md deleted file mode 100644 index ab0dfbf..0000000 --- a/Collection/YoudaoyunNotes/02C语言/12-作用域与存储期.md +++ /dev/null @@ -1,432 +0,0 @@ -# 函数栈内存 - -## **局部变量与栈内存** - -- 局部变量概念:凡是被一对花括号包含的变量,称为局部变量 - -- 局部变量特点: - -- 某一函数内部的局部变量,存储在该函数特定的栈内存中(函数的栈帧<当函数被执行时出现>中) - -- 局部变量只能在该函数内可见,在该函数外部不可见 - -- 当该函数退出后,局部变量所占的内存立即被系统回收,因此局部变量也称为临时变量 - -- 函数的形参虽然不被花括号所包含,但依然属于该函数的局部变量 - -- 栈内存(函数的栈)特点: - -- 每当一个函数被调用时,系统将自动分配一段栈内存给该函数,用于存放其局部变量 - -- 每当一个函数退出时,系统将自动回收其栈内存 - -- 系统为函数分配栈内存时,遵循从上(高地址)往下(低地址)分配的原则 - -- 示例代码: - -```c -int max(int x, int y) // 变量 x 和 y 存储在max()函数的栈中 -{ - int z; // 变量 z 存储在max()函数的栈中 - z = x>y ? x : y; - return z; // 函数退出后,栈中的x、y 和 z 被系统回收,将max函数栈中的z的值反馈传递 -} - -int main(void) -{ - int a = 1; // 变量 a 存储在main()函数的栈中 - int b = 2; // 变量 b 存储在main()函数的栈中 - int m; // 变量 m 存储在main()函数的栈中,未赋值因此其值为随机值 - - m = max(a, b); // 将main栈中的a和b的值传递给max函数 -} -``` - -函数调用时代码的执行流程 - -![](images/WEBRESOURCEebddd934ca1e421cb558c4c92f7d53f3截图.png) - -- 技术要点: - -- 栈内存相对而言是比较小的,不适合用来分配尺寸太大的变量。 - -- return 之后不可再访问函数的局部变量,因此返回一个局部变量的地址通常是错误的。 - -## 全局变量 - -- 全局变量概念:凡是定义在花括号外部的变量,称为全局变量 - -- 全局变量特点: - -- 全局变量定义函数体外,存储在该程序特定的内存中(数据段) - -- 全局变量在整个程序中可见 - -- 当该程序退出后,全局变量所占的内存立即被系统回收 - -# **作用域** - -## **基本概念** - -C语言中,标识符都有一定的可见范围,这些可见范围保证了标识符只能在一个有限的区域内使用,这个可见范围,被称为作用域(scope)。 - -在软件开发中,尽量缩小标识符的作用域是一项基本原则,一个标识符的作用域超过它实际所需要的范围时,就会对整个软件的命名空间造成污染,导致一些不必要的名字冲突和误解。 - -## **函数声明作用域** - -- 概念:在函数的声明式中定义的变量,其可见范围仅限于该声明式。 - -- 示例: - -```c -void func(int fileSize, char *fileName); -``` - -- 要点: - -- 变量 fileSize 和 fileName 只在函数声明式中可见。 - -- 变量 fileSize 和 fileName 可以省略,但一般不这么做,它们的作用是对参数的注解。 - -## **局部作用域** - -- 概念:在代码块(被一对花括号包含)中定义的变量,其可见范围从其定义处开始,到代码块结束为止。 - -- 示例: - -```c -int main() -{ - int a=1; - int b=2; // 变量 c 的作用域是第4行到第9行 - { - int c=4; - int d=5; // 变量 d 的作用域是第7行到第8行 - int a = 100; - } - c = 100; // 超出c的作用域,此次视为未定义c -} -``` - -- 要点: - -- 代码块指的是一对花括号 { } 括起来的区域。 - -- 代码块可以嵌套包含,外层的标识符会被内嵌的同名标识符临时掩盖变得不可见。 - -- 代码块作用域的变量,由于其可见范围是局部的,因此被称为局部变量。 - -## **全局作用域** - -- 概念:在代码块外定义的变量,其可见范围可以跨越多个文件。 - -- 示例: - -```c -#include - -int global = 888; // 变量 global 的作用域是第2行到本文件结束 - -extern void f1();  // 外部声明 -extern void f2(); - -int main() -{ -    global = 666; -    printf("%s:global = %d\n", __FUNCTION__, global); - -    f1(); -    f2(); -} - -void f() -{ -    printf("a.c :%s is running\n", __FUNCTION__); -} -``` - -```c -#include - -// extern 外部声明,表示这个标识符不属于本文件而是来自外部的文件,这个标识符的作用域足够大 -// extern 外部声明的标识符不能初始化 -extern int global; // 声明在 a.c 中定义的全局变量,使其在 b.c 中也可见 -extern void f();  // f函数定义在本文件外   - -void f1() -{ -    printf("%s :global=%d\n",__FUNCTION__, global); // 访问的是a.c中定义的全局变量 -} -void f2() -{ -    printf("b.c :%s is running\n", __FUNCTION__); -    f(); -} -// int main() -// {} - -``` - -**注意:由于b.c中存在外部变量和函数此时b.c是不能单独通过编译的,因此需要b.c功能则需要将a.c和b.c一并编译生成一个程序“gcc b.c a.c”;当多个C语言源文件同时参与编译时多个C语言文件中只能存在一个main函数。** - -## **作用域的临时掩盖** - -如果有多个不同的作用域相互嵌套,那么小范围的作用域会临时 “遮蔽” 大范围的作用域中的同名标识符,被 “遮蔽” 的标识符不会消失,只是临时失去可见性。 - -- 示例代码: - -```c -#include -int a = 100;  // 整个程序可见 - -// 函数代码块1 -int main(void) -{ -    printf("%d\n", a); // 输出100, 全局变量a -    int a = 200; -    printf("%d\n", a); // 输出200, 局部变量a的作用域掩盖全局变量a的作用域 -    -    // 代码块2 -    { -        printf("%d\n", a); // 输出200,局部变量a -        int a = 300; -        printf("%d\n", a); // 输出300, 当前代码块中定义的a作用域掩盖了代码块外的局部变量a的作用域 -    } -    printf("%d\n", a); // 输出200,局部变量a - -    f(); -} - -void f() -{ -    printf("%d\n", a); // 输出100, 全局变量a -} -``` - -**static关键字** - -C语言的一大特色,是相同的关键字,在不同的场合下,具有不同的含义。static关键字在C语言中有两个不同的作用: - -1. 将可见范围设定为标识符所在的文件(缩小作用域): - -- 修饰全局变量:使得全局变量由原来的跨文件可见,变成仅限于本文件可见。 - -- 修饰普通函数:使得函数由原来的跨文件可见,变成仅限于本文件可见。 - -1. 将存储区域设定为数据段(延长存储期): - -- 修饰局部变量:使得局部变量由原来存储在栈内存,变成存储在数据段。 - -- 示例: - -```c - int a; // 普通全局变量,跨文件可见 -static int b; // 静态全局变量,仅限本文件可见 - -void f1() // 普通函数,跨文件可见 -{} - -static void f2() // 静态函数,仅限本文件可见 -{} - -int main() -{ - int c; // 普通局部变量,存储于栈内存 - static int d; // 静态局部变量,存储于数据段 -} -``` - -```c -#include -#include -#include - -/* 当变量标识符重名时优先使用当前{}内的标识符 */ - -int a=100; //跨文件可见 -static int b = 10; //本文件可见 - -void fun(void) -{ -    static int b = 20; //本函数可见,且只被初始化一次 -    printf("%d:b=%d\n",__LINE__, b++); -} - -int main(void) -{ -    printf("%d:a=%d\n",__LINE__, a); -    int a=10; //当前{}内可见,被定义到} -    -    if(a==10) -    { -        printf("%d:a=%d\n",__LINE__, a); -        int a=20; //当前{}内可见,被定义到} -        printf("%d:a=%d\n",__LINE__, a); -    } -    printf("%d:a=%d\n",__LINE__, a); - -    for (int i=0; i<3; i++) //当前{}内可见,被定义到} -    { -        fun(); -    } - -    return 0; -} -``` - -# **存储期** - -C语言中,变量都是有一定的生存周期的,所谓生存周期指的是从分配到释放的时间间隔。为变量分配内存相当于变量的诞生,释放其内存相当于变量的死亡。从诞生到死亡就是一个变量的生命周期。 - -根据定义方式的不同,变量的生命周期有三种形式: - -1. 自动存储期 - -2. 静态存储期 - -3. 自定义存储期 - -不同存储区段对应不同存储期 - -![](images/WEBRESOURCEed95cb4bf9a6bdd870ada0859f790dcastickPicture.png) - -## **自动存储期** - -在栈内存中分配的变量,统统拥有自动存储期,因此也都被称为自动变量。这里自动的含义,指的是这些变量的内存管理不需要开发者操心,都是全自动的:在变量定义处自动分配,出了变量的作用域后自动释放。 - -- 以下三个概念是等价的: - -- 自动变量:从存储期的角度,描述变量的时间特性。 - -- 临时变量:同上。 - -- 局部变量:从作用域的角度,描述变量的空间特性。 - -可以统一把它们称为栈变量,下面是示例代码: - -```c -int main() -{ - int a, b; // 自动存储期 - static int c; // 加了static(修饰静态数据)的局部变量不再是栈变量,而是静态数据了 - - f(a, b); -} - -void f(int x, int y) // 自动存储期 -{ -} -``` - -## **静态存储期** - -在数据段中分配的变量,统统拥有静态存储期,因此也都被称为静态变量。这里静态的含义,指的是这些变量的不会因为程序的运行而发生临时性的分配和释放,它们的生命周期是恒定的,跟整个程序一致。 - -- 静态变量包含: - -- 全局变量:不管加不加 static,任何全局变量都是静态变量。 - -- static 型局部变量。 - -- 示例代码: - -```c -int g1; // 静态存储期 -static int g2; // 静态存储期 - -int main() -{ - int a, b; - static int c; // 静态存储期 -} -``` - -- 注意1: - -- 若定义时未初始化,则系统会将所有的静态数据自动初始化为0 - -- 静态数据初始化语句,只会执行一遍。 - -- 静态数据从程序开始运行时便已存在,直到程序退出时才释放。 - -- 注意2: - -- static修饰局部变量:使之由栈内存临时数据,变成了静态数据,可见范围不变。 - -- static修饰全局变量:使之由各文件可见的静态数据,变成了本文件可见的静态数据,生命周期不变。 - -## **自定义存储期** - -在堆中分配的变量,统统拥有自定义存储期,也就是说这些变量的分配和释放,都是由开发者自己决定的。由于堆内存拥有高度自治权,因此堆是程序开发中用得最多的一片区域。 - -![](images/WEBRESOURCE77cefa9018a70540104090158d8390b0stickPicture.png) - -自由的堆内存 - -```c -#include -#include -#include - -char *fun(void) //栈空间中会自动释放但数据段和堆空间例外 -{ -    // char str[20]; //栈空间仅在当前{}有效 -    // return str; -    char *p = malloc(20); //堆空间可以在整个程序中有效,只要不释放就一直可用。 -    if(p != NULL) -    { -        memset(p, 0, 20); -        return p; //返回的是指针的值及堆空间地址 -    }     -    -    return NULL; -} - -int main(void) -{ -    char *p; -    p = fun(); //得到堆空间的地址 -    char *k = "hello GEC"; -    memcpy(p, k, strlen(k)); //将数据拷贝到堆空间中 -    printf("__%d__:%s\n", __LINE__, p); - -    free(p); //将fun函数中申请的堆空间释放 -    return 0; -} -``` - -# 总结 - -作用域:是标识符(变量名字、函数名等)的可见范围(可以使用)。 - -存储期:是标识符的生命周期即标识符拥有内存开始到标识符的内存被释放为止。 - -标识符的作用域与生命周期在绝大多数情况下相同,但除static修饰的标识符外; - -1、static修饰全局变量和函数时:static限制了全局变量和函数的作用域但不修改其生命周期 - -2、static修饰局部变量时:static修改局部变量的生命周期,但不改变其作用域; - -(面试笔试题)堆和栈有什么区别? - -1. 栈是由系统自动分配释放,堆是由用户手动进行申请和释放 - -1. 栈空间的效率高于堆空间 - -1. 堆空间要比栈空间大 - -1. 栈从上往下进行增长范围有限,堆从下往上增长范围没有明确的限制 - -堆内存的申请和释放方法? - -1. malloc()和calloc()进行申请 - -1. free()进行释放 - -malloc()和calloc()的不同? - -1. malloc只能申请一片连续的堆内存,并且不会对内存进行处理。 - -1. calloc既可以申请一片空间也可以一次申请多片连续内存,并且会对内存进行清零。 - -[内存管理测试题.docx](attachments/WEBRESOURCE224e5f8aa53ceb5fc88f45d79932378a内存管理测试题.docx) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/13-结构体、联合体与枚举.md b/Collection/YoudaoyunNotes/02C语言/13-结构体、联合体与枚举.md deleted file mode 100644 index da15aca..0000000 --- a/Collection/YoudaoyunNotes/02C语言/13-结构体、联合体与枚举.md +++ /dev/null @@ -1,743 +0,0 @@ -# 一、结构体 - -1. **结构体基本概念** - -- C语言提供了众多的基本类型,但现实生活中的对象一般都不是单纯的整型、浮点型或字符串,而是这些基本类型的综合体。比如一个学生,典型地应该拥有学号(整型)、姓名(字符串)、分数(浮点型)、性别(枚举)等不同层面的属性,这些所有的属性都不应该被拆分开来,而是应该组成一个整体,代表一个完整的学生。 - -- 在C语言中,可以使用结构体来将多种不同的数据类型组装起来,形成某种具有现实意义的自定义的变量类型。结构体本质上是一种自定义类型。 - -- 结构体跟普通变量一样,涉及定义、初始化、赋值、取址、传值等等操作,这些操作绝大部分与普通变量操作并无二致,只有少数操作有特殊性。 - -- **结构体定义** - -```c -struct 结构体标签 -{ - 成员1; - 成员2; - ... -}; -``` - -- 语法 - -- struct关键字,用于声明定义结构体 - -- 结构体标签,用于区分各个不同的结构体 - -- 成员,是包含在结构体内部的数据,可以是任意的数据类型(不能是自己类型的普通变量但可以是自己类型指针变量)。 - -```c -// 定义了一种称为struct A的结构体类型 -struct A  // struct A 是一个自定义的类型 -{ -    int a; -    char b; -    double c; -}; - -// 定义了一种称为struct student的结构体类型 -struct student -{ -    char name[20];  // 姓名 -    int id;         // 学号 -    char *sex;      // 性别 -    short age;      // 年龄 -    struct A a;     // 其他类型的结构体变量 -    // struct student b; // 不能定义自己类型的结构体普通变量(递归申请空间),作为自己的成员 -    struct student *p; // 能定义自己类型的结构体指针变量(指针的内存空间只有系统字长有关),作为自己的成员 -    //... -}; - -int main(void) -{ - // 定义一个int类型变量 - int num; // int 数据类型 num变量名称 - //定义了一个struct student (结构体)类型变量 -    struct student zsf; // struct student 数据类型 zsf变量的名称 -} -``` - -- **结构体初始化** - -- 由于结构内部拥有多个不同类型的成员,因此采用与数组初始化类似的列表形式进行 - -- 初始化方式:普通初始化,指定成员初始化 - -- 一般推荐使用指定成员初始化,方便适应结构体类型的升级迭代 - -- 声明定义与初始化一体 - -```c -// 定义一个结构体类型 -// 定义一个结构体类型 -struct A -{ -    int a; -    char b; -    double c; -}tmp = { -    100,'S',3.14 -},// 定义一个结构体变量tmp并使用普通初始化方式初始化tmp成员 -bbk={ -    .a=500, -    .b='C' -}; // 定义一个结构体变量bbk并使用指定成员初始化方式初始化bbk成员 -``` - -**注意:** - -- 定义时初始化 - -```c - struct A xyz = {120,"w", 6.25}; // 普通初始化 -    struct A jjk = {.b="w",.a=120, }; // 指定成员初始化 -``` - -- 指定成员初始化的好处: - -- 成员初始化顺序可以改变 - -- 可以只初始化一部分成员 - -- 结构体新增成员后初始化语句仍然可用。 - -- **结构体成员引用** - -- 结构体相当于一个集合,内部包含了众多成员,每一个成员都是一个独立的变量,都可以独立地引用,引用结构体成员使用一个成员引用符'.'即可: - -```c -结构体变量名称.成员名称 -``` - -```c -    struct A kkl; -    kkl.a=866; -    kkl.b='L'; -    kkl.c=9.36; - -    printf("a=%d b=%c c=%f\n", kkl.a, kkl.b, kkl.c); -``` - -## 练习 - -定义书籍结构体(书名、作者、售价)并定义三本书,分别使用普通初始化、指定成员初始化与结构体引用三种方式给三本书赋值属性后在终端展示 - -1. **结构体指针与数组** - -- 结构体指针 - -```c -struct student -{ -    unsigned char *name; -    unsigned long id; -    unsigned char *sex; -    unsigned char age; -}; - -struct student *zh = malloc(sizeof(struct student)); // 定义一个结构体指针变量 - -    (*zh).name = "张三丰";  // (*). == -> -    (*zh).id = 10086; -    (*zh).sex = "男"; -    (*zh).age = 18; - -    printf("%s %ld %s %d\n", zh->name, zh->id, zh->sex, zh->age); -``` - -注意:结构体指针访问结构体成员时使用 -> - -- 结构体数组 - -```c - // struct student wang[3] = { -    //                             "王局", 10010, "女", 17, -    //                             "王麻", 10000, "男",19, -    //                             "王铁", 10001, "男",19 -    //                          }; // 普通初始化 -    //  struct student wang[3] = { -    //                            [1]= "王局", 10010, "女", 17, -    //                            [0]= "王麻", 10000, "男",19, -    //                            [2]= "王铁", 10001, "男",19 -    //                          }; // 指定元素普通初始化 -     struct student wang[3] = { -                                [2].name="王局", [0].id=10010, [1].sex="女",[0].age=17, -                                // "王麻", 10000, "男",19, -                                // "王铁", 10001, "男",19 -                             }; // 指定成员初始化 -    for (int i = 0; i < sizeof(wang)/sizeof(wang[0]); i++) -    { -        printf("%s %ld %s %d\n", wang[i].name, wang[i].id, wang[i].sex, wang[i].age); // 访问结构体数组元素 -    } -``` - -# 练习1 - -升级书籍管理系统功能,添加作者与售价属性,并将功能进行完善(如查找书籍可分为书名查找,按作者查找,按售价查找) - -1. **typedef** - -- 在 C 语言中,typedef关键字用于为已有的数据类型创建别名,增强代码的可读性、可维护性和可移植性。 - -- **基本应用:为基本数据类型创建别名** - -- 为内置数据类型(如int、char等)定义更具描述性的名称,使代码意图更清晰。 - -```c -typedef int Age; // 为int创建别名Age -typedef float Weight; // 为float创建别名Weight - -Age user_age = 25; -Weight apple_weight = 0.3f; - -``` - -- **为复杂类型创建简化别名** - -(1)指针类型 - -简化指针类型的声明,尤其适合频繁使用的指针类型。 - -```c -typedef int* IntPtr; // 为int*创建别名IntPtr -IntPtr p1, p2; // 等价于int *p1, *p2;(避免遗漏*的问题) -``` - -(2)数组类型 - -为固定大小的数组定义别名,减少重复代码。 - -```c -typedef int IntArray[10]; // 为"int[10]"创建别名IntArray -IntArray arr; // 等价于int arr[10]; -``` - -(3)结构体 / 联合体 - -简化结构体 / 联合体的使用,无需每次加 - -```c -// 传统方式 -struct Student { - char name[20]; - int id; -}; -struct Student s1; // 必须加struct - -// 使用typedef -typedef struct { - char name[20]; - int id; -} Student; -Student s2; // 直接使用别名,更简洁 -``` - -- **为函数指针创建别名** - -函数指针语法复杂, - -```c -// 为"int (*)(int, int)"类型创建别名CalcFunc -typedef int (*CalcFunc)(int, int); - -// 定义符合该类型的函数 -int add(int a, int b) { return a + b; } -int mul(int a, int b) { return a * b; } - -// 使用别名声明函数指针变量 -CalcFunc func = add; -printf("%d\n", func(2, 3)); // 输出5 -func = mul; -printf("%d\n", func(2, 3)); // 输出6 -``` - -- **提高代码可移植性** - -在跨平台开发中,不同系统的基础类型可能有差异(如 - -```c -// 在32位系统可能定义为: -typedef int int32; -// 在16位系统可能定义为: -typedef long int32; - -// 代码中直接使用int32,无需关心底层实现 -int32 value = 100; -``` - --  **增强代码可读性和可维护性** - -- 通过别名直观表达变量的含义(如Age比int更清晰)。 - -- 当需要修改类型时,只需修改typedef处,无需全局替换(如将typedef int Age改为typedef long Age)。 - -- **总结** - -- typedef的核心作用是为数据类型创建别名,主要价值体现在: - -- 简化复杂类型(如结构体、函数指针)的使用; - -- 提高代码的可读性和可维护性; - -- 增强跨平台代码的可移植性。 - -1. **CPU字长** - -- 字长的概念指的是处理器在一条指令中的数据处理能力,当然这个能力还需要搭配操作系统的设定,比如常见的32位系统、64位系统,指的是在此系统环境下,处理器一次存储处理的数据可以达32位或64位。 - -![](images/WEBRESOURCEae70b1f84fef405a968b6584513809aestickPicture.png) - -CPU字长的含义 - -1. **地址对齐** - -- CPU字长确定之后,相当于明确了系统每次存取内存数据时的边界,以32位系统为例,32位意味着CPU每次存取都以4字节为边界,因此每4字节可以认为是CPU存取内存数据的一个单元。 - -- 如果存取的数据刚好落在所需单元数之内,那么我们就说这个数据的地址是对齐的,如果存取的数据跨越了边界,使用了超过所需单元的字节,那么我们就说这个数据的地址是未对齐的。 - -![](images/WEBRESOURCE0486404994804c5fb05039cff405656astickPicture.png) - -地址未对齐的情形 - -![](images/WEBRESOURCE886cfc7eae684a52b78b24c37be08569stickPicture.png) - -地址已对齐的情形 - -- 从图中可以明显看出,数据本身占据了8个字节,在地址未对齐的情况下,CPU需要分3次才能完整地存取完这个数据,但是在地址对齐的情况下,CPU可以分2次就能完整地存取这个数据。 - -![](images/WEBRESOURCEe2dc42a51771304b30e561af3f2ed294image.png) - -> 总结:如果一个数据满足以最小单元数存放在内存中,则称它地址是对齐的,否则是未对齐的。地址对齐的含义用大白话说就是1个单元能塞得下的就不用2个;2个单元能塞得下的就不用3个。如果发生数据地址未对齐的情况,有些系统会直接罢工,有些系统则降低性能。 - - -1. **普通变量的m值** - -- 以32位系统为例,由于CPU存取数据总是以4字节为单元,因此对于一个尺寸固定的数据而言,当它的地址满足某个数的整数倍时,就可以保证地址对齐。这个数就被称为变量的m值。根据具体系统的字长,和数据本身的尺寸,m值是可以很简单计算出来的。 - -- 举例: - -```c - char   c; // 由于c占1个字节,因此c不管放哪里地址都是对齐的,因此m=1 - short s; // 由于s占2个字节,因此s地址只要是偶数就是对齐的,因此m=2 - int   i; // 由于i占4个字节,因此只要i地址满足4的倍数就是对齐的,因此m=4 - double f; // 由于f占8个字节,因此只要f地址满足4的倍数就是对齐的,因此m=4 - ​ - printf("%p\n", &c); // &c = 1*N,即:c的地址一定满足1的整数倍 - printf("%p\n", &s); // &s = 2*N,即:s的地址一定满足2的整数倍 - printf("%p\n", &i); // &i = 4*N,即:i的地址一定满足4的整数倍 - printf("%p\n", &f); // &f = 4*N,即:f的地址一定满足4的整数倍 -``` - -- 注意,变量的m值跟变量本身的尺寸有关,但它们是两个不同的概念。 - -- 手工干预变量的m值: - -```c - char c __attribute__((aligned(32))); // 将变量 c 的m值设置为32 -``` - -- 语法: - -- attribute 机制是GNU特定语法,属于C语言标准语法的扩展。 - -- attribute 前后都是双下划线,aligned两边是双圆括号。 - -- attribute 语句,出现在变量定义语句中的分号前面,变量标识符后面。 - -- attribute 机制支持多种属性设置,其中 aligned 用来设置变量的 m 值属性。 - -- 一个变量的 m 值只能提升,不能降低,且只能为正的2的n次幂。 - -1. **结构体的M值** - -- 概念: - -- 结构体的M值,取决于其成员的m值的最大值。即:M = max{m1, m2, m3, …}; - -- 结构体的和地址和尺寸,都必须等于M值的整数倍。 - -- 示例: - -```c - struct node - { -    short a; // 尺寸=2,m值=2 -    double b; // 尺寸=8,m值=4 -    char   c; // 尺寸=1,m值=1 - }; - ​ - struct node n; // M值 = max{2, 4, 1} = 4; -``` - -- 以上结构体成员存储分析: - -1. 结构体的M值等于4,这意味着结构体的地址、尺寸都必须满足4的倍数。 - -1. 成员a的m值等于2,但a作为结构体的首元素,必须满足M值约束,即a的地址必须是4的倍数 - -1. 成员b的m值等于4,因此在a和b之间,需要填充2个字节的无效数据(一般填充0) - -1. 成员c的m值等于1,因此c紧挨在b的后面,占一个字节即可。 - -1. 结构体的M值为4,因此成员c后面还需填充3个无效数据,才能将结构体尺寸凑足4的倍数。 - -- 以上结构体成员图解分析: - -![](images/WEBRESOURCEf305530c183d4d1682bc4b1fe628e14fstickPicture.png) - -结构体成员布局 - -## 练习 - -计算下面结构体的大小 - -```c -struct s1 -{ - int a; - char b; - int c; -}; - -struct s2 -{ - char a; - char b; - int c; -}; - -struct s3 -{ - int a; - double b; - int c; -}; - -struct s4 -{ - char a; - char b; - char c; -}; - -struct s5 -{ - char a; - short b; - int c; - double d; -}; - -struct s6 -{ - char a; - short b; - int c; - struct s4 d; -}; -``` - -[32、64位数据类型占用字节以及内存对齐原理](https://developer.aliyun.com/article/979533) - -**位域:** - -```c - struct n - { -    int a:1;  // 一共是32位,只需要1位   m=4 -    int b:4;  // 一共是32位,只需要4位 -    int c:2;  // 一共是32位,只需要2位 - }; -``` - -注意:位域的类型只能是整数类型(char、short、long、long long) - -1. **可移植性** - -可移植指的是相同的一段数据或者代码,在不同的平台中都可以成功运行。 - -- 对于数据来说,有两方面可能会导致不可移植: - -- 数据尺寸发生变化 - -- 数据位置发生变化 - -- 第一个问题,起因是基本的数据类型在不同的系统所占据的字节数不同造成的,解决办法是使用讨论过的可移植性数据类型即可。接下来讨论第二个问题 - -- 考虑结构体: - -```c - struct node - { -    int8_t a; -    int32_t b; -    int16_t c; - }; -``` - -- 以上结构体,在不同的的平台中,成员的尺寸是固定不变的,但由于不同平台下各个成员的m值可能会发生改变,因此成员之间的相对位置可能是飘忽不定的,这对数据的可移植性提出了挑战。 - -- 解决的办法有两种: - -- 第一,固定每一个成员的m值,也就是每个成员之间的塞入固定大小的填充物固定位置: - -```c - struct node - { -    int8_t a __attribute__((aligned(1))); // 将 m 值固定为1 -    int64_t b __attribute__((aligned(8))); // 将 m 值固定为8 -    int16_t c __attribute__((aligned(2))); // 将 m 值固定为2 - }; -``` - -- 第二,将结构体压实,也就是每个成员之间不留任何空隙: - -```c - struct node - { -    int8_t a; -    int64_t b; -    int16_t c; - int8_t d; - } __attribute__((packed)); -``` - -# 二、联合体 - -1. **联合体的基本概念** - -- 联合体在外形上跟结构体非常类似,但他们有一个本质的区别:结构体的各个成员是各自独立的,而联合体的各个成员间是共用一块内存,因此联合体也称共用体 - -![](images/WEBRESOURCEfb6a239bed5b462a85fa7ec4382c92210d7713ba345e0119c37b9a76eb31bf65.png) - -- 联合体内部成员共用一块内存形参"堆叠"效果,使得联合体有如下特征 - -- 联合体变量的尺寸(内存大小),取决于联合体中尺寸最大的成员 - -- 联合体的某个成员赋值,会覆盖其他的成员,使它们失效 - -- 联合体各成员间形成一种"互斥"的逻辑,在某个时刻只有一个成员有效。 - -- 联合体定义 - -```c -union 联合体标签 -{ - 成员1; - 成员2; - ... -}; -``` - -- 语法: - -- 联合体标签,用于区分各个不同的联合体。 - -- 成员,是包含在联合体内部的数据,可以是任意的数据类型。 - -```c -//定义了一个union attr的联合体类型 -union attr -{ - int a; - char b; - double c; -}; - -int mian(void) -{ - // 定义union attr类型的联合体变量n - union attr n; -} -``` - -## 联合体操作 - -- 初始化 - -```c -  // 普通初始化:第一个成员有效(即只有122有效,其余无效) -    union attr at = {122, 'A', 3.14}; - -     // 指定成员初始化:最后一个成员有效(即只有3.14有效,其余无效) -    union attr at1 = {.a=122, .b='A', .c=3.14}; - -    printf("%d\n", at.a); -    printf("%f\n", at1.c); -``` - -- 成员引用 - -```c - union attr n; -    n.a = 233; -    n.b = 'B'; -    n.c = 5.23; // 只有最近的一次赋值有效 - -    printf("%d\n", n.a); -    printf("%c\n", n.b); -    printf("%f\n", n.c); -``` - -- 联合体指针与数组 - -```c - p->a = 110; -    p->b = 'C';// 只有最近的一次赋值有效 -    printf("%d\n", p->a); -    printf("%c\n", p->b); -    printf("%f\n", p->c); - - - union attr arr[3] = {[0].a=110,[1].b='a',[2].c=2.13}; -    for (int i = 0; i < 3; i++) -    { -        printf("%d\n", arr[i].a); -        printf("%c\n", arr[i].b); -        printf("%f\n", arr[i].c); -    } - -``` - -## 联合体的使用 - -- 联合体一般很少单独,它经常以一个结构体成员的形式存在,用来表达某种互斥的属性。 - -```c -struct node -{ - int x; - char y; - double z; - union attr at; // at成员有三种属性,非此即彼 -}; -int main(void) -{ - struct node n; - n.at.a=100; // 使用连续的成员引用符来索引结构体中的联合体的成员 -} -``` - -## 练习 - -使用联合体验证当前系统是大端序还是小端序 - -### 大端序(Big-Endian) - -- **特点**:**高位字节存低地址,低位字节存高地址**(类似人类读写数字的习惯,从高位到低位)。 - -- 示例:0x12345678的存储方式: - -| 内存地址 | 存储内容 | -| -- | -- | -| 0x00 | 0x12(高位) | -| 0x01 | 0x34 | -| 0x02 | 0x56 | -| 0x03 | 0x78(低位) | - - -- 常见场景:网络协议(如 TCP/IP)、部分嵌入式系统、PowerPC 架构等。 - -### **小端序(Little-Endian)** - -- **特点**:**低位字节存低地址,高位字节存高地址**(与人类读写习惯相反)。 - -- 示例:0x12345678的存储方式: - -| 内存地址 | 存储内容 | -| -- | -- | -| 0x00 | 0x78(低位) | -| 0x01 | 0x56 | -| 0x02 | 0x34 | -| 0x03 | 0x12(高位) | - - -- 常见场景:x86/x86_64 架构(如 Intel、AMD 处理器)、多数 PC 和服务器系统。 - -# 三、枚举 - -- 枚举类型的本质是提供一种范围受限的整型,比如用0-6表示七种颜色,用0-3表示四种状态等,但枚举在C语言中并未实现其本来应有的效果,直到C++环境下枚举才拥有原本该有的属性。 - -- 枚举常量列表 - -- enum是关键字 - -- spectrum是枚举常量列表标签,可以省略。省略的情况下无法定义枚举变量 - -```c - enum spectrum{red, orange, yellow=10, green, blue, cyan, purple}; - enum         {reset, running, sleep, stop}; -``` - -- 枚举变量 - -``` - enum spectrum color = orange; // 等价于 color = 1 -``` - -- 语法要点: - -- 枚举常量实质上就是整型,首个枚举常量默认为0。 - -- 枚举常量在定义时可以赋值,若不赋值,则取其前面的枚举常量的值加1。 - -- C语言中,枚举等价于整型,支持整型数据的一切操作。 - -- 使用举例: - -```c - switch(color) - { -    case red: -        // 处理红色... -    case orange: -        // 处理橙色... -    case yellow: -        // 处理黄色...   - } -``` - -- 枚举数据最重要的作用,是使用有意义的单词,来替代无意义的数字,提高程序的可读性。 - -```c -#include -#include -#include - -/* 声明枚举 */ -// enum color -// { -//     red,   //常量red 代表值 0 -//     orange, -//     yellow=9, -//     green, -//     blue=12, -//     purple -// }; - -enum -{ -    red,   //常量red 代表值 0 -    orange, -    yellow, -    green=5, -    blue=5, -    purple -}; - -int main(void) -{ -    // enum color tmp; -    -    printf("red, %d\n", red); -    printf("green, %d\n", green); -    printf("blue, %d\n", blue); -    printf("purple, %d\n", purple); -    return 0; -} -``` - -# 晚上作业 - -[结构体测试题.docx](attachments/WEBRESOURCEc2ef36702a6ecf7e2169723a2d147b08结构体测试题.docx) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/14-预处理与文件组织.md b/Collection/YoudaoyunNotes/02C语言/14-预处理与文件组织.md deleted file mode 100644 index f70bc3e..0000000 --- a/Collection/YoudaoyunNotes/02C语言/14-预处理与文件组织.md +++ /dev/null @@ -1,813 +0,0 @@ -# 前导知识 - -## GCC 编译一共分4个阶段:**预处理、编译、汇编、链接** - -> gcc 【选项】要编译的文件【选项】【输出文件】 - - -| 选项 | 说明 | -| -- | -- | -| -E | 控制GCC编译器仅对源码做预处理操作 | -| -S | 控制GCC编译器仅对指定文件处理之编译阶段 | -| -c | 控制GCC编译器仅对制定文件处理至汇编阶段,并生成相应的目标文件 | -| -o outfile | 指定输出文件的文件名 | - - -1. 预处理阶段 - -预处理阶段是编译的第一个阶段。在这个阶段,GCC会扫描源代码并执行以下操作: - -1. 删除注释 - -1. 替换宏定义 - -1. 处理条件编译指令 - -1. 将头文件内容插入源代码中(展开头文件) - -```shell -gcc -E hello.c -o hello.i -``` - -2. 编译阶段 - -在预处理阶段之后,GCC会将源代码翻译成汇编代码,这个过程称为编译。编译器会检查源代码是否符合语法,以及是否存在语义错误。 - -在编译阶段,编译器将源代码翻译成汇编代码,以便下一步的汇编阶段使用。 - -```shell -gcc -S hello.i -o hello.s -``` - -3. 汇编阶段 - -汇编阶段是将汇编代码转换为机器代码的过程。在这个阶段,汇编器将汇编代码转换为机器指令,生成目标文件。 - -在汇编阶段,汇编器将汇编代码转换为机器指令,生成目标文件。 - -```shell -gcc -c hello.s -o hello.o -``` - -4. 链接阶段 - -链接阶段是将所有目标文件合并成一个可执行文件的过程。在这个阶段,链接器将目标文件中未定义的符号与其他目标文件中定义的符号进行匹配,并生成一个可执行文件。 - -在链接阶段,链接器将目标文件合并成一个可执行文件。 - -```shell -gcc hello.o -o hello -``` - -# **预处理** - -在C语言程序源码中,凡是以井号(#)开头的语句被称为预处理语句,这些语句严格意义上并不属于C语言语法的范畴,它们在编译的阶段统一由所谓预处理器(cc1)来处理。所谓预处理,顾名思义,指的是真正的C程序编译之前预先进行的一些处理步骤,这些预处理指令包括: - -1. 头文件:#include - -1. 定义宏:#define - -1. 取消宏:#undef - -1. 条件编译:#if、#ifdef、#ifndef、#else、#elif、#endif - -1. 显示错误:#error - -1. 修改当前文件名和行号:#line - -1. 向编译器传送特定指令:#progma - -| 指令 | 描述 | 使用示例 | | -| ---------- | ----------------------- | ------------------- | --- | -| `#define` | 定义宏(符号常量或函数式宏) | `#define PI 3.14159` | | -| `#include` | 包含头文件 | `#include ` | | -| `#undef` | 取消已定义的宏 | `#undef PI` | | -| `#ifdef` | 如果宏已定义则编译后续代码 | `#ifdef DEBUG` | | -| `#ifndef` | 如果宏未定义则编译后续代码(常用于头文件保护) | `#ifndef HEADER_H` | | -| `#if` | 条件编译(可配合defined操作符使用) | `#if VERSION > 2` | | -| `#else` | `#if` | `#ifdef WIN32` | | -| `#elif` | 类似于else if | `#if defined(UNIX)` | | -| `#endif` | 结束条件编译块 | 如上例所示 | | -| `#error` | 产生编译错误并输出消息 | `#if !defined(C99)` | | -| `#pragma` | 编译器特定指令(非标准,各编译器不同) | `#pragma once` | | - - -- 基本语法 - -- 一个逻辑行只能出现一条预处理指令,多个物理行需要用反斜杠连接成一个逻辑行 - -- 预处理是整个编译全过程的第一步:预处理 - 编译 - 汇编 - 链接 - -- 可以通过如下编译选项来指定来限定编译器只进行预处理操作: - -```c -gcc example.c -o example.i -E -``` - -## **宏** - -宏(macro)实际上就是一段特定的字串,在源码中用以替换为指定的表达式。例如: - -```c -#define PI 3.14 -``` - -此处,PI 就是宏(宏一般习惯用大写字母表达,以区分于变量和函数,但这并不是语法规定,只是一种习惯),是一段特定的字串,这个字串在源码中出现时,将被替换为3.14。例如: - -```c -int main() -{ - printf("圆周率: %f\n", PI); - // 此语句将被替换为:printf("圆周率: %f\n", 3.14); -} -``` - -- 宏的作用: - -- 使得程序更具可读性:字串单词一般比纯数字更容易让人理解其含义。 - -- 使得程序修改更易行:修改宏定义,即修改了所有该宏替换的表达式。 - -- 提高程序的运行效率:程序的执行不再需要函数切换开销,而是就地展开。 - -### **无参宏** - -无参宏意味着使用宏的时候,无需指定任何参数,比如: - -```c -#define PI 3.14 -#define SCREEN_SIZE 800*480*4 -int main() -{ - // 在代码中,可以随时使用以上无参宏,来替代其所代表的表达式: - printf("圆周率: %f\n", PI); - mmap(NULL, SCREEN_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, ...); -} -``` - -注意到,上述代码中,除了有自定义的宏,还有系统预定义的宏: - -```c -// 自定义宏: -#define PI 3.14 -#define SCREEN_SIZE 800*480*4 - -// 系统预定义宏 -#define NULL ((void *)0) -#define PROT_READ 0x1 /* Page can be read. */ -#define PROT_WRITE 0x2 /* Page can be written. */ -#define MAP_SHARED 0x01 /* Share changes. */ -``` - -宏的最基本特征是进行直接文本替换,以上代码被替换之后的结果是: - -```c -int main() -{ - printf("圆周率: %f\n", 3.14); - mmap(((void *)0), 800*480*4, 0x1|0x2, 0x01, ...); -} -``` - -### **带参宏** - -带参宏意味着宏定义可以携带“参数”,从形式上看跟函数很像,例如: - -```c -#define MAX(a, b) a>b ? a : b -#define MIN(a, b) ay ? x : y); - // printf("最小值:%d\n", xb ? a : b - -int main() -{ - int x = 100, y = 200; - printf("最大值:%d\n", MAX(x, y==200?888:999)); -} -``` - -直观上看,无论 y 的取值是多少,表达式 `y==200?888:999` 的值一定比 x 要大,但由于宏定义仅仅是文本替换,中间不涉及任何运算,因此等价于: - -```c -printf("最大值:%d\n", x>y==200?888:999 ? x : y==200?888:999); -``` - -可见,带参宏的参数不能像函数参数那样视为一个整体,整个宏定义也不能视为一个单一的数据,事实上,不管是宏参数还是宏本身,都应被视为一个字串,或者一个表达式,或者一段文本,因此最基本的原则是: - -- 将宏定义中所有能用括号括起来的部分,都括起来,比如: - -```c -#define MAX(a, b) ((a)>(b) ? (a) : (b)) -``` - -### **宏定义中的符号粘贴** - -有些时候,宏参数中的符号并非用来传递数据,而是用来形成多种不同的字串,例如在某些系统函数中,系统本身规范了函数接口的部分标准,形如: - -```c -void __zinitcall_service_1(void) -{ - ... -} - -void __zinitcall_service_2(void) -{ - ... -} - -void __zinitcall_feature_1(void) -{ - ... -} - -void __zinitcall_feature_2(void) -{ - ... -} -``` - -此时,若需要向用户提供一个方便整合字串的宏定义,可以这么写: - -```c -#define LAYER_INITCALL(layer, num) __zinitcall_##layer##_##num -``` - -用户的调用如下: - -```c -LAYER_INITCALL(service, 1)(); -LAYER_INITCALL(service, 2)(); -LAYER_INITCALL(feature, 1)(); -LAYER_INITCALL(feature, 2)(); -``` - -**注意:** - -在书写非字符串的字串时(如上述例子),使用两边双井号来 - -``` -#define LAYER_INITCALL(num, layer) __zinitcall_##layer##_##num## -``` - -但如果粘贴的字串并非出现在最末尾,则前后都必须加上双井号: - -```c -#define LAYER_INITCALL(num, layer) __zinitcall_##layer##_##num##end -``` - -**注意:** - -另外,如果字串本身拼接为字符串,那么只需要使用一个井号即可,比如: - -```c -#define domainName(a, b) "www." #a "." #b ".com" - -int main() -{ - printf("%s\n", domainName(yueqian, lab)); -} -``` - -执行打印如下: - -```shell -gec@ubuntu:~$ ./a.out -www.yueqian.lab.com -gec@ubuntu:~$ -``` - -### **无值宏定义** - -定义无参宏的时候,不一定需要带值,无值的宏定义经常在条件编译中作为判断条件出现,例如: - -```c -#define BIG_ENDIAN -#define __cplusplus -``` - -```c -#include - -#define __DEFINE__H__ // 定义无值宏 -#ifdef __DEFINE__H__  // 如果定义了宏__DEFINE__H__ - -// #ifndef __DEFINE__H__  // 如果未定义了宏__DEFINE__H__ -// #define __DEFINE__H__  // 上下两个无值宏一般用于头文件中 - - -#define PI    3.141526 // 无参宏 - -// 带参宏 -#define MAX(a,b)  ((a)>(b)?(a):(b))  // 推荐 -#define MIN(a,b)  (a - -#define A 1   //声卡 -#define B 0   //网卡 -#define C 0   //串口 - -#if A -void fun_init_1(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -#endif - -#if B -void fun_init_2(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -#endif - -#if C -void fun_init_3(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -#endif - -void fun_destory_1(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} - -void fun_destory_2(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -void fun_destory_2_end(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} - -int main() -{ -#if A -    fun_init_1(); -#endif - -#if B -    fun_init_2(); -#endif - -#if C -    fun_init_3(); -#endif - -    return 0; -} -``` - -```c -#include - -#define A 0   //声卡 -#define B 0   //网卡 -#define C 1   //串口 - -#if A -void fun_init_1(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -#elif B -void fun_init_2(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} - -#else -void fun_init_3(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -#endif - -void fun_destory_1(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} - -void fun_destory_2(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -void fun_destory_2_end(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} - -int main() -{ -#if A -    fun_init_1(); -#elif B -    fun_init_2(); -#else -    fun_init_3(); -#endif - -    return 0; -} - -``` - -```c -#include - -void fun_destory_1(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} - -// #define DEBUG - -#ifndef DEBUG -void fun_destory_2(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -#endif - - -#ifdef  DEBUG   //gcc demo4.c -DDEBUG 编译时添加宏定义 -void fun_destory_3_end(void) -{ -    printf("%s is running...\n", __FUNCTION__); -} -#endif - -int main(void) -{ - -    fun_destory_1(); -#ifdef  DEBUG -    fun_destory_3_end(); -#endif -#ifndef DEBUG -    fun_destory_2(); -#endif -    return 0; -} -``` - -## **头文件** - -通常,一个常规的C语言程序会 - -![](images/WEBRESOURCE61a25737180b4d579df0faf4cf8bb1c4stickPicture.png) - -### **头文件的内容** - -- 头文件中所存放的内容,就是各个源码文件的彼此可见的公共资源,包括: - -1. 全局变量的声明。 - -1. 普通函数的声明。 - -1. 静态函数的定义(内联函数)。 - -1. 宏定义。 - -1. 结构体、联合体的定义。 - -1. 枚举常量列表的定义。 - -1. 其他头文件。 - -- 示例代码: - -``` -// head.h -extern int global; // 1,全局变量的声明 -extern void f1(); // 2,普通函数的声明 -static void f2() // 3,静态函数的定义 -{ - ... -} -#define MAX(a, b) ((a)>(b)?(a):(b)) // 4,宏定义 -struct node // 5,结构体的定义 -{ - ... -}; -union attr // 6,联合体的定义 -{ - ... -}; -#include // 7,其他头文件 -#include -#include -``` - -- 特别说明: - -1. 全局变量、普通函数的定义一般出现在某个源文件(`*.c` )中,其他的源文件想要使用都需要进行声明(extern),因此一般放在头文件中更方便。 - -2. 静态函数、宏定义、结构体、联合体的定义都只能在其所在的文件可见,因此如果多个源文件都需要使用的话,放到头文件中定义是最方便,也是最安全的选择。 - -### **头文件的使用** - -头文件编写好了之后,就可以被各个所需要的源码文件包含了,包含头文件的语句就是如下预处理指令: - -``` -// main.c -#include "head.h" // 包含自定义的头文件 -#include // 包含系统预定义的文件 - -int main() -{ - ... -} -``` - -可以看到,在源码文件中包含指定的头文件有两种不同的形式: - -- 使用双引号:在指定位置 + 系统标准路径搜索 head.h - -- 使用尖括号:在系统标准路径搜索 stdio.h - -### **头文件的格式** - -由于头文件包含指令 `#include` 的本质是复制粘贴,并且一个头文件中可以嵌套包含其他头文件,因此很容易出现一种情况是:头文件被重复包含。 - -- 使用条件编译,解决头文件重复包含的问题,格式如下: - -``` -#ifndef _HEADNAME_H -#define _HEADNAME_H - -... -... (头文件正文) -... - -#endif -``` - -其中,HEADNAME一般取头文件名称的大写 - -# 文件组织 - -一个简易示例 - -![](images/WEBRESOURCEb5c62efd51d146318ed20b94a949b34astickPicture.png) - -由于自定义的头文件一般放在源码文件的周围,因此需要在编译的时候通过特定的选项来指定位置,而系统头文件都统一放在标准路径下,一般无需指定位置。 - -假设在源码文件 main.c 中,包含了两个头文件:head.h 和 stdio.h ,由于他们一个是自定义头文件,一个是系统标准头文件,前者放在项目 pro/inc 路径下,后者存放于系统头文件标准路径下(一般位于 /usr/include),因此对于这个程序的编译指令应写作: - -``` -gec@ubuntu:~/pro$ gcc main.c -o main -I /home/gec/pro/inc -``` - -其中,/home/gec/pro/inc 是自定义头文件 head.h 所在的路径 - -- 语法要点: - -- 预处理指令 `#include` 的本质是复制粘贴:将指定头文件的内容复制到源码文件中。 - -- 系统标准头文件路径可以通过编译选项 -v 来获知,比如: - -``` -gec@ubuntu:~/pro$ gcc main.c -I /home/gec/pro/inc -v -... ... -#include "..." search starts here: -#include <...> search starts here: - /usr/lib/gcc/x86_64-linux-gnu/7/include - /usr/local/include - /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed - /usr/include/x86_64-linux-gnu - /usr/include -... ... -``` - -![](images/WEBRESOURCEc1cc8a34d5ae4ef6bd588fcb003a0b83image.png) - -![](images/WEBRESOURCEcb03335b039dd3101bd1e33868113656image.png) - -**注意:`*`是通配符,表示将src目录下的所有以.c结尾的文件都参与编译** - -![](images/WEBRESOURCE54710c7a76c34ce186adf7550689b814image.png) - -> **表示告诉编译器头文件所在路径,编译会去指定的路径寻找头文件** - - -**应用场景(模块化编程)** - -## 练习 - -将图书管理系统的C语言文件使用 - -![](images/WEBRESOURCE2abc07694c4f358e3cffaedba77bcb90image.png) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/15-静态库与动态库.md b/Collection/YoudaoyunNotes/02C语言/15-静态库与动态库.md deleted file mode 100644 index 9ab09d8..0000000 --- a/Collection/YoudaoyunNotes/02C语言/15-静态库与动态库.md +++ /dev/null @@ -1,121 +0,0 @@ -# 一、静态库和动态库 - -- 库文件与源文件的关系是:C语言源代码文件是可以直接阅读且可以直观的了解其内部的实现原理,库文件依然属于源码文件,但是编程人员无法阅读。 - -- 如果我们不想将源码(函数的实现)展现给别人,但又需要给别人提供源码所实现的关键功能,就可以将这些源码文件封装成库文件,只提供给使用者对应的头文件和库文件即可。既可以使他人使用自己编写的代码,又能保护自己的知识产权,同时又能方便自己升级与维护。 - -- 库文件的一般格式为 - -- 动态库:libxxx.so(libxxx.so.2.1.0) - -- 静态库:libxxx.a - -## 1、动态库 - -- Linux中的动态库的后缀为.so,前缀为lib,即libxxx.so,xxx是库的名字,如:libmylib.so;windows的动态库的后缀为.dll等 - -(1)制作动态库 - -```shell -gcc  -shared  -fPIC  -o  libhello.so  hello.c  -I../include/ -``` - -> 不加 -fPIC 生成的动态库,“ 生成动态库时假定它被加载在地址 0 处。加载时它会被加载到一个地址(base),这时要进行一次重定位(relocation),把代码、数据段中所有的地址加上这个 base 的值。这样代码运行时就能使用正确的地址了。” -> 加上 fPIC 选项生成的动态库,是位置与无关的,这样的代码本身就能被放到线性地址空间的任意位置,无需修改就能正确执行。 -> 通常的方法是获取指令指针的值,加上一个偏移得到全局变量 / 函数的地址。 -> 加 fPIC 选项的源文件对于它引用的函数头文件编写有很宽松的尺度。比如只需要包含某个声明的函数的头文件,即使没有相应的 C 文件来实现,编译成 so 库照样可以通过。 - - -(2)使用动态库 - -编译: - -```shell -gcc -o ./bin/hello ./src/main.c -I ./include/ -L ./lib/ -lhello -``` - -说明: - -``` --I 告诉编译器头文件的路径 --L 告诉编译器库文件的路径 --l 链接库文件名,如libhello.so去头去尾hello -``` - -如:库的名字是libmylib.so,链接时就写-lmylib - -运行: - -![](images/WEBRESOURCE4684b7496c77366547f869ae2b65b6d7image.png) - -报错: - -![](images/WEBRESOURCE79d40806b934939775f7460001a79cbbimage.png) - -解决方法: - -第一种:指定库路径,但只对当前终端有效(绝对路径) - -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:****/lib - -第二种:将库文件拷贝到系统库目录中(/lib  or  /usr/lib) - -cp  libfun.so  /usr/lib - -第三种:将添加环境变量的指令写入当前终端脚本种"~/.bashrc" - -2、静态库 - -Linux中的动态库的后缀为.a,前缀为lib,即libxxx.a,xxx是库的名字,如:libmylib.a - -windows的动态库的后缀为.lib - -(1)制作静态库 - -①先生成.o文件 - -``` -gcc -o hello.o -c hello.c  -I ../include/ -``` - -②生成静态库 - -```shell -ar  rc   libhello.a  hello.o -``` - -(2)使用静态库 - -编译: - -``` -gcc -o ./bin/target ./src/main.c -I ./include/ -L ./lib/ -lphoto -``` - -说明: - -```c --I 告诉编译器头文件的路径 --L 告诉编译器库文件的路径 --l 链接库文件名,如libhello.so去头去尾hello -``` - -如:库的名字是libmylib.aa,链接时就写-lmylib - -运行: - -./target - -![](images/WEBRESOURCE809cda2ce0aa92b5b344707c1d4a3629image.png) - -![](images/WEBRESOURCE598297eb23f470b37d35d6d3f1451fe9image.png) - -![](images/WEBRESOURCE11280c9480d3c2eee39d2dc737f123cfimage.png) - -- 静态库和动态库的区别: - -- 静态库生成的可执行文件运行时不再需要依赖静态库文件,因为静态库会直接参与编译因此可执行文件较大,不方便维护和升级(升级功能必须程序编译整个工程得到新的可执行程序方可使用新功能)。 - -- 动态库生成的可执行文件运行时还需要依赖动态库文件,因为动态库只链接而不参与编译因此可执行文夹较小,方便维护和升级(程序函数名字返回值与参数列表不改变的情况下只修改函数功能不需要重新编译整个工程,只需呀编译这个文件生成新的动态库替换原来的动态库即可使用新的功能(或者将库文件的名字带上版本号使用链接文件的形式生成库文件))。 - -![](images/WEBRESOURCE048d46d9bb04ceb46b8fe1f3cc419d92image.png) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/[01-拓展]printf输出颜色与字体控制.md b/Collection/YoudaoyunNotes/02C语言/[01-拓展]printf输出颜色与字体控制.md deleted file mode 100644 index 0fc7711..0000000 --- a/Collection/YoudaoyunNotes/02C语言/[01-拓展]printf输出颜色与字体控制.md +++ /dev/null @@ -1,208 +0,0 @@ -作者:粤嵌-李林峰 - -# 终端显示字体和颜色的方法 - -在终端中使用printf输出时,可以通过ANSI转义码来控制文本的颜色、背景色和字体样式。下面详细介绍各种控制方法。 - -## 基本格式 - -ANSI转义码的基本格式为: - -```c -printf("\033[属性值;...;属性值 m 文本内容 \033[0m"); -``` - -其中: - -- \033 是ESC字符的八进制表示(也可以用\x1b十六进制表示) - -- [ 开始控制序列 - -- 属性值 是控制代码,多个属性用分号分隔 - -- m 结束控制序列 - -- \033[0m 重置所有属性 - -## 字体样式控制 - -| 代码 | 效果 | -| -- | -- | -| 0 | 重置所有属性 | -| 1 | 加粗/高亮 | -| 2 | 暗淡/弱化 | -| 3 | 斜体 | -| 4 | 下划线 | -| 5 | 闪烁 | -| 7 | 反显(反色) | -| 8 | 隐藏 | -| 9 | 删除线 | - - -示例: - -```c -printf("\033[1m加粗文本\033[0m\n"); -printf("\033[3m斜体文本\033[0m\n"); -printf("\033[4m下划线文本\033[0m\n"); -``` - -## 前景色(文字颜色) - -| 代码 | 颜色 | -| -- | -- | -| 30 | 黑色 | -| 31 | 红色 | -| 32 | 绿色 | -| 33 | 黄色 | -| 34 | 蓝色 | -| 35 | 洋红 | -| 36 | 青色 | -| 37 | 白色 | -| 90 | 亮黑 | -| 91 | 亮红 | -| 92 | 亮绿 | -| 93 | 亮黄 | -| 94 | 亮蓝 | -| 95 | 亮洋红 | -| 96 | 亮青 | -| 97 | 亮白 | - - -示例: - -```c -printf("\033[31m红色文字\033[0m\n"); -printf("\033[92m亮绿色文字\033[0m\n"); -``` - -## 背景色 - -| 代码 | 颜色 | -| -- | -- | -| 40 | 黑色 | -| 41 | 红色 | -| 42 | 绿色 | -| 43 | 黄色 | -| 44 | 蓝色 | -| 45 | 洋红 | -| 46 | 青色 | -| 47 | 白色 | -| 100 | 亮黑 | -| 101 | 亮红 | -| 102 | 亮绿 | -| 103 | 亮黄 | -| 104 | 亮蓝 | -| 105 | 亮洋红 | -| 106 | 亮青 | -| 107 | 亮白 | - - -示例: - -```c -printf("\033[41m红色背景\033[0m\n"); -printf("\033[104m亮蓝色背景\033[0m\n"); -``` - -## 组合使用 - -可以同时设置多个属性,用分号分隔: - -```c -printf("\033[1;31;42m加粗红色文字绿色背景\033[0m\n"); -printf("\033[4;93;44m下划线亮黄色文字蓝色背景\033[0m\n"); -``` - -## 256色模式 - -对于支持256色的终端,可以使用更丰富的颜色: - -前景色: - -```c -printf("\033[38;5;颜色编号m文本\033[0m"); -``` - -背景色: - -```c -printf("\033[48;5;颜色编号m文本\033[0m"); -``` - -颜色编号范围0-255,其中: - -- 0-15:标准16色 - -- 16-231:6×6×6 RGB立方 - -- 232-255:灰度 - -示例: - -```c -printf("\033[38;5;196m红色文字\033[0m\n"); -printf("\033[48;5;226m黄色背景\033[0m\n"); -``` - -## RGB真彩色模式 - -最新终端支持RGB真彩色: - -前景色: - -```c -printf("\033[38;2;R;G;Bm文本\033[0m"); -``` - -背景色: - -```c -printf("\033[48;2;R;G;Bm文本\033[0m"); -``` - -其中R,G,B为0-255的数值。 - -示例: - -```c -printf("\033[38;2;255;100;100m自定义颜色文字\033[0m\n"); -printf("\033[48;2;100;200;255m自定义背景色\033[0m\n"); -``` - -## 注意事项 - -1. 不是所有终端都支持所有颜色和效果 - -1. 使用后记得用\033[0m重置属性 - -1. 某些效果(如闪烁)可能被终端禁用 - -1. Windows CMD默认不支持,需要启用ANSI支持或使用其他终端 - -## 实用技巧 - -可以定义宏简化使用: - -```c -#define RED "\033[31m" -#define GREEN "\033[32m" -#define RESET "\033[0m" - -printf(RED "错误: " RESET "发生错误\n"); -``` - -或者定义函数: - -```c -void print_color(const char* color, const char* text) -{ - printf("%s%s" RESET, color, text); -} - -print_color("\033[1;34m", "重要信息"); -``` - -参考文件: - -[terminal_colors.h](attachments/WEBRESOURCEf8f411dd54c53da227a89fc7031bb0c7terminal_colors.h) \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE1b1c0ef38fb7e7623e35a7ffc254fd87判断、循环测试题.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE1b1c0ef38fb7e7623e35a7ffc254fd87判断、循环测试题.docx deleted file mode 100644 index 6e01a08..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE1b1c0ef38fb7e7623e35a7ffc254fd87判断、循环测试题.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE1ebc5cddf8773c3fb139b21db91946c8数据类型测试题.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE1ebc5cddf8773c3fb139b21db91946c8数据类型测试题.docx deleted file mode 100644 index 05a1b1d..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE1ebc5cddf8773c3fb139b21db91946c8数据类型测试题.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE224e5f8aa53ceb5fc88f45d79932378a内存管理测试题.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE224e5f8aa53ceb5fc88f45d79932378a内存管理测试题.docx deleted file mode 100644 index 557fab0..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE224e5f8aa53ceb5fc88f45d79932378a内存管理测试题.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE40a76a7d230733292ec04717f3f6f254编程规范.pdf b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE40a76a7d230733292ec04717f3f6f254编程规范.pdf deleted file mode 100644 index f548a40..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE40a76a7d230733292ec04717f3f6f254编程规范.pdf and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE757c8acbaa371ecec8cc55fab8756448运算符测试.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE757c8acbaa371ecec8cc55fab8756448运算符测试.docx deleted file mode 100644 index 98326fa..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE757c8acbaa371ecec8cc55fab8756448运算符测试.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE94606765850c0696e801236ba49014a2函数练习题.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE94606765850c0696e801236ba49014a2函数练习题.docx deleted file mode 100644 index 8e3b6ba..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCE94606765850c0696e801236ba49014a2函数练习题.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEa2d88b6292b52c177b4bc6323a5bdd07函数作业题.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEa2d88b6292b52c177b4bc6323a5bdd07函数作业题.docx deleted file mode 100644 index 7148b41..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEa2d88b6292b52c177b4bc6323a5bdd07函数作业题.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEbbcc325c1c1c565fa7dbe4f13a3f2f9d运算符1.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEbbcc325c1c1c565fa7dbe4f13a3f2f9d运算符1.docx deleted file mode 100644 index 8b447f6..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEbbcc325c1c1c565fa7dbe4f13a3f2f9d运算符1.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEc2ef36702a6ecf7e2169723a2d147b08结构体测试题.docx b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEc2ef36702a6ecf7e2169723a2d147b08结构体测试题.docx deleted file mode 100644 index effe57c..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEc2ef36702a6ecf7e2169723a2d147b08结构体测试题.docx and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEd160cdba37fb5f6e6e853a57af52b227数组与指针作业.doc b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEd160cdba37fb5f6e6e853a57af52b227数组与指针作业.doc deleted file mode 100644 index b5dd8fe..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEd160cdba37fb5f6e6e853a57af52b227数组与指针作业.doc and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEd71090e9d6659f19f9b36c93099793f4指针与数组作业.doc b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEd71090e9d6659f19f9b36c93099793f4指针与数组作业.doc deleted file mode 100644 index 2d07b7b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEd71090e9d6659f19f9b36c93099793f4指针与数组作业.doc and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEf8f411dd54c53da227a89fc7031bb0c7terminal_colors.h b/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEf8f411dd54c53da227a89fc7031bb0c7terminal_colors.h deleted file mode 100644 index 7a1b448..0000000 --- a/Collection/YoudaoyunNotes/02C语言/attachments/WEBRESOURCEf8f411dd54c53da227a89fc7031bb0c7terminal_colors.h +++ /dev/null @@ -1,115 +0,0 @@ -// terminal_colors.h -/** - * @file terminal_colors.h - * @brief ANSI终端颜色和字体样式控制宏定义 - * @author 李林峰 - * @date 2025-07-22 - * @version 1.0 - * - * 本文件提供了一套完整的ANSI转义码宏定义,用于控制终端文本的颜色、 - * 背景色和字体样式。支持标准16色、256色模式下的颜色定义, - * 以及各种字体样式(加粗、斜体、下划线等)。 - * - * 使用说明: - * 1. 包含本头文件:#include "terminal_colors.h" - * 2. 使用预定义的宏组合颜色和样式 - * 3. 每条彩色输出后应使用RESET宏重置终端属性 - * 4. 推荐使用PRINT_COLOR系列宏,它们会自动处理RESET - * - * 示例: - * printf(RED "红色文本" RESET "\n"); - * PRINT_COLOR(BOLD BLUE BG_WHITE, "加粗蓝色文本白色背景"); - * PRINT_ERROR("错误消息"); - */ - -#ifndef TERMINAL_COLORS_H -#define TERMINAL_COLORS_H - -// ==================== 基本控制宏 ==================== -#define RESET "\033[0m" // 重置所有属性 - -// ==================== 常规颜色 ==================== -#define BLACK "\033[30m" -#define RED "\033[31m" -#define GREEN "\033[32m" -#define YELLOW "\033[33m" -#define BLUE "\033[34m" -#define MAGENTA "\033[35m" -#define CYAN "\033[36m" -#define WHITE "\033[37m" - -// ==================== 亮色 ==================== -#define BRIGHT_BLACK "\033[90m" -#define BRIGHT_RED "\033[91m" -#define BRIGHT_GREEN "\033[92m" -#define BRIGHT_YELLOW "\033[93m" -#define BRIGHT_BLUE "\033[94m" -#define BRIGHT_MAGENTA "\033[95m" -#define BRIGHT_CYAN "\033[96m" -#define BRIGHT_WHITE "\033[97m" - -// ==================== 背景色 ==================== -#define BG_BLACK "\033[40m" -#define BG_RED "\033[41m" -#define BG_GREEN "\033[42m" -#define BG_YELLOW "\033[43m" -#define BG_BLUE "\033[44m" -#define BG_MAGENTA "\033[45m" -#define BG_CYAN "\033[46m" -#define BG_WHITE "\033[47m" - -// ==================== 亮背景色 ==================== -#define BG_BRIGHT_BLACK "\033[100m" -#define BG_BRIGHT_RED "\033[101m" -#define BG_BRIGHT_GREEN "\033[102m" -#define BG_BRIGHT_YELLOW "\033[103m" -#define BG_BRIGHT_BLUE "\033[104m" -#define BG_BRIGHT_MAGENTA "\033[105m" -#define BG_BRIGHT_CYAN "\033[106m" -#define BG_BRIGHT_WHITE "\033[107m" - -// ==================== 字体样式 ==================== -#define BOLD "\033[1m" // 加粗/高亮 -#define DIM "\033[2m" // 暗淡 -#define ITALIC "\033[3m" // 斜体 -#define UNDERLINE "\033[4m" // 下划线 -#define BLINK "\033[5m" // 闪烁 -#define REVERSE "\033[7m" // 反显 -#define HIDDEN "\033[8m" // 隐藏 -#define STRIKETHROUGH "\033[9m" // 删除线 - -// ==================== 组合宏 ==================== -#define ERROR_COLOR BOLD RED -#define WARNING_COLOR BOLD YELLOW -#define SUCCESS_COLOR BOLD GREEN -#define INFO_COLOR BOLD BLUE -#define DEBUG_COLOR BOLD CYAN - -#define ERROR_BG BOLD RED BG_WHITE -#define WARNING_BG BOLD YELLOW BG_BLACK -#define SUCCESS_BG BOLD GREEN BG_BLACK -#define INFO_BG BOLD BLUE BG_BLACK - -// ==================== 打印宏 ==================== -/** - * @brief 打印带颜色的消息(自动换行和重置) - * @param color 颜色/样式组合宏 - * @param msg 要打印的消息 - */ -#define PRINT_COLOR(color, msg) printf("%s%s" RESET "\n", color, msg) - -/** - * @brief 打印带颜色的消息(不换行,自动重置) - * @param color 颜色/样式组合宏 - * @param msg 要打印的消息 - */ -#define PRINT_COLOR_NR(color, msg) printf("%s%s" RESET, color, msg) - -// ==================== 常用消息快捷方式 ==================== -#define PRINT_ERROR(msg) PRINT_COLOR(ERROR_COLOR, msg) -#define PRINT_WARNING(msg) PRINT_COLOR(WARNING_COLOR, msg) -#define PRINT_SUCCESS(msg) PRINT_COLOR(SUCCESS_COLOR, msg) -#define PRINT_INFO(msg) PRINT_COLOR(INFO_COLOR, msg) -#define PRINT_DEBUG(msg) PRINT_COLOR(DEBUG_COLOR, msg) - -#endif // TERMINAL_COLORS_H \ No newline at end of file diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE01494a5ca65c3e8f09d6221377f879c2image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE01494a5ca65c3e8f09d6221377f879c2image.png deleted file mode 100644 index 6c1ba01..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE01494a5ca65c3e8f09d6221377f879c2image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE017da79a24a769cff3e5b4a570845821849589-20171015223238449-2146169197.gif b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE017da79a24a769cff3e5b4a570845821849589-20171015223238449-2146169197.gif deleted file mode 100644 index 9dd0ed4..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE017da79a24a769cff3e5b4a570845821849589-20171015223238449-2146169197.gif and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE020956fc6459842a83ae6c650bf7e422image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE020956fc6459842a83ae6c650bf7e422image.png deleted file mode 100644 index 862c07a..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE020956fc6459842a83ae6c650bf7e422image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE024f291ce6ddbfc8e43e98913881be10image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE024f291ce6ddbfc8e43e98913881be10image.png deleted file mode 100644 index 01e4c6e..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE024f291ce6ddbfc8e43e98913881be10image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0486404994804c5fb05039cff405656astickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0486404994804c5fb05039cff405656astickPicture.png deleted file mode 100644 index 0c622a3..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0486404994804c5fb05039cff405656astickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE048d46d9bb04ceb46b8fe1f3cc419d92image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE048d46d9bb04ceb46b8fe1f3cc419d92image.png deleted file mode 100644 index 1ba1d7b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE048d46d9bb04ceb46b8fe1f3cc419d92image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE04c87caf7ac6f6ffe55d92c338e3f197image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE04c87caf7ac6f6ffe55d92c338e3f197image.png deleted file mode 100644 index 0d1c3a0..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE04c87caf7ac6f6ffe55d92c338e3f197image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE059f0c15158165303fc0fc990a90a445image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE059f0c15158165303fc0fc990a90a445image.png deleted file mode 100644 index b6fbdf3..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE059f0c15158165303fc0fc990a90a445image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE06e4a4aac18e468d89b657886f10a5b3stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE06e4a4aac18e468d89b657886f10a5b3stickPicture.png deleted file mode 100644 index b23cd09..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE06e4a4aac18e468d89b657886f10a5b3stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE07b09d5113504e099c4fbfd3ef55f632stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE07b09d5113504e099c4fbfd3ef55f632stickPicture.png deleted file mode 100644 index c24f1cc..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE07b09d5113504e099c4fbfd3ef55f632stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0b5032b3e1de49ca903bd2db77d153e4b5ee282015ce47bc0f3295c8193891e2.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0b5032b3e1de49ca903bd2db77d153e4b5ee282015ce47bc0f3295c8193891e2.png deleted file mode 100644 index 5309522..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0b5032b3e1de49ca903bd2db77d153e4b5ee282015ce47bc0f3295c8193891e2.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0bef0e4f20c74105d00fc30f18338300849589-20171015225645277-1151100000.gif b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0bef0e4f20c74105d00fc30f18338300849589-20171015225645277-1151100000.gif deleted file mode 100644 index 2702b14..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0bef0e4f20c74105d00fc30f18338300849589-20171015225645277-1151100000.gif and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0e7ea7d0398d9e54868b0d0d16713384image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0e7ea7d0398d9e54868b0d0d16713384image.png deleted file mode 100644 index addd364..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE0e7ea7d0398d9e54868b0d0d16713384image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE104cae287459e90d523049be3c9ed591image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE104cae287459e90d523049be3c9ed591image.png deleted file mode 100644 index 28e724d..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE104cae287459e90d523049be3c9ed591image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE11280c9480d3c2eee39d2dc737f123cfimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE11280c9480d3c2eee39d2dc737f123cfimage.png deleted file mode 100644 index 4c9f8e1..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE11280c9480d3c2eee39d2dc737f123cfimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE131d91bf42e75d64d2774081dd4992c2image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE131d91bf42e75d64d2774081dd4992c2image.png deleted file mode 100644 index d31b248..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE131d91bf42e75d64d2774081dd4992c2image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE14ccf6590f7f4016b1afdcb6b9f04f4dimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE14ccf6590f7f4016b1afdcb6b9f04f4dimage.png deleted file mode 100644 index 9015ba9..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE14ccf6590f7f4016b1afdcb6b9f04f4dimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE16558976e0bafd8d40e5bc88c3312104image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE16558976e0bafd8d40e5bc88c3312104image.png deleted file mode 100644 index 57f9d1e..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE16558976e0bafd8d40e5bc88c3312104image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE167c2f360443ad063a8c62e5be84ad85image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE167c2f360443ad063a8c62e5be84ad85image.png deleted file mode 100644 index e3c48dc..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE167c2f360443ad063a8c62e5be84ad85image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE1a26d5b47439bd40860c97725e4110c5image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE1a26d5b47439bd40860c97725e4110c5image.png deleted file mode 100644 index b9abf14..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE1a26d5b47439bd40860c97725e4110c5image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE1ec0d881c347298235a88359695ad942image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE1ec0d881c347298235a88359695ad942image.png deleted file mode 100644 index a711491..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE1ec0d881c347298235a88359695ad942image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE226669d81bf2dc869c23059ac82f7a8eimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE226669d81bf2dc869c23059ac82f7a8eimage.png deleted file mode 100644 index 0d01844..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE226669d81bf2dc869c23059ac82f7a8eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE22d41843cc2f8e164fc5c3cd6753c92fimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE22d41843cc2f8e164fc5c3cd6753c92fimage.png deleted file mode 100644 index 1cbdc2b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE22d41843cc2f8e164fc5c3cd6753c92fimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2416db6773bc1892a970d22688b28c02image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2416db6773bc1892a970d22688b28c02image.png deleted file mode 100644 index 8394875..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2416db6773bc1892a970d22688b28c02image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE241c9ea7af5f38a2d179fd848e37cfa9image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE241c9ea7af5f38a2d179fd848e37cfa9image.png deleted file mode 100644 index fa6f51c..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE241c9ea7af5f38a2d179fd848e37cfa9image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2abc07694c4f358e3cffaedba77bcb90image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2abc07694c4f358e3cffaedba77bcb90image.png deleted file mode 100644 index bb8cf7f..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2abc07694c4f358e3cffaedba77bcb90image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2f30409c67de5069191ecf8ca0167cd0image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2f30409c67de5069191ecf8ca0167cd0image.png deleted file mode 100644 index 1e504e4..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2f30409c67de5069191ecf8ca0167cd0image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2f532ae1a2635b8f6d6eb26f2b49be3eimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2f532ae1a2635b8f6d6eb26f2b49be3eimage.png deleted file mode 100644 index e0debfe..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2f532ae1a2635b8f6d6eb26f2b49be3eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2fdad5c1e645e6811dfb870a3d8b4c56image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2fdad5c1e645e6811dfb870a3d8b4c56image.png deleted file mode 100644 index 931672b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE2fdad5c1e645e6811dfb870a3d8b4c56image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE31a9952598334421c011d9f722ff3cceimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE31a9952598334421c011d9f722ff3cceimage.png deleted file mode 100644 index 46a17fd..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE31a9952598334421c011d9f722ff3cceimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3371a585a1a5dfcb33e097062bbbd329image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3371a585a1a5dfcb33e097062bbbd329image.png deleted file mode 100644 index 28a9727..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3371a585a1a5dfcb33e097062bbbd329image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE386be62eabb8428892ab8defa9285f62stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE386be62eabb8428892ab8defa9285f62stickPicture.png deleted file mode 100644 index 4806bd0..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE386be62eabb8428892ab8defa9285f62stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE38bf818da8bb069ed9eb989de0bff6eaimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE38bf818da8bb069ed9eb989de0bff6eaimage.png deleted file mode 100644 index b24027d..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE38bf818da8bb069ed9eb989de0bff6eaimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3b6fc7cbc2e84d2e953b56d19a155223截图.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3b6fc7cbc2e84d2e953b56d19a155223截图.png deleted file mode 100644 index f641a96..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3b6fc7cbc2e84d2e953b56d19a155223截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3c5663641a0b8dbf76f912751edbc3a3image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3c5663641a0b8dbf76f912751edbc3a3image.png deleted file mode 100644 index 098c744..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE3c5663641a0b8dbf76f912751edbc3a3image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4552fb76ccd7d5818b2a9d3abcf0061bimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4552fb76ccd7d5818b2a9d3abcf0061bimage.png deleted file mode 100644 index 389f288..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4552fb76ccd7d5818b2a9d3abcf0061bimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE459a0a24ac6047112d1d6479e8858315image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE459a0a24ac6047112d1d6479e8858315image.png deleted file mode 100644 index 8773ff0..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE459a0a24ac6047112d1d6479e8858315image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4684b7496c77366547f869ae2b65b6d7image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4684b7496c77366547f869ae2b65b6d7image.png deleted file mode 100644 index dc75238..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4684b7496c77366547f869ae2b65b6d7image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bb07092451ff2e2b923c57cb023415dimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bb07092451ff2e2b923c57cb023415dimage.png deleted file mode 100644 index 92aa6f6..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bb07092451ff2e2b923c57cb023415dimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bd255fbf9260ad534192cb1d5185cf0image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bd255fbf9260ad534192cb1d5185cf0image.png deleted file mode 100644 index cd37fa2..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bd255fbf9260ad534192cb1d5185cf0image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bf7c30b9e994bda856db1440425e6fcstickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bf7c30b9e994bda856db1440425e6fcstickPicture.png deleted file mode 100644 index ba0a9f6..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4bf7c30b9e994bda856db1440425e6fcstickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4f76333942e38a6ebe5008d9491852a9stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4f76333942e38a6ebe5008d9491852a9stickPicture.png deleted file mode 100644 index f6a48d1..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE4f76333942e38a6ebe5008d9491852a9stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE51b11638af5912a048a35324caaea19cimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE51b11638af5912a048a35324caaea19cimage.png deleted file mode 100644 index ea2411f..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE51b11638af5912a048a35324caaea19cimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE51fc80bb52e549d39a1753ac77f656e5stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE51fc80bb52e549d39a1753ac77f656e5stickPicture.png deleted file mode 100644 index e593d4b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE51fc80bb52e549d39a1753ac77f656e5stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE54710c7a76c34ce186adf7550689b814image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE54710c7a76c34ce186adf7550689b814image.png deleted file mode 100644 index 994e3bd..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE54710c7a76c34ce186adf7550689b814image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE54b672d577364079ba70fd45152a12e9stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE54b672d577364079ba70fd45152a12e9stickPicture.png deleted file mode 100644 index a19cb6b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE54b672d577364079ba70fd45152a12e9stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE55871207d1eef11e0fd010e335e4cc0f576913ed193ece92e9ad7fc8a81dc9cf.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE55871207d1eef11e0fd010e335e4cc0f576913ed193ece92e9ad7fc8a81dc9cf.png deleted file mode 100644 index dbb3e55..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE55871207d1eef11e0fd010e335e4cc0f576913ed193ece92e9ad7fc8a81dc9cf.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE5662a65e83bb0e026bd5798435f41eadimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE5662a65e83bb0e026bd5798435f41eadimage.png deleted file mode 100644 index 9be10b8..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE5662a65e83bb0e026bd5798435f41eadimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE57ae4c50fdbe52495c1fec865fb6c5fbimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE57ae4c50fdbe52495c1fec865fb6c5fbimage.png deleted file mode 100644 index 4eb2aa3..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE57ae4c50fdbe52495c1fec865fb6c5fbimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE5936c4c59a03bf6508f3f2fc7f496572849589-20171015224719590-1433219824.gif b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE5936c4c59a03bf6508f3f2fc7f496572849589-20171015224719590-1433219824.gif deleted file mode 100644 index 353459b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE5936c4c59a03bf6508f3f2fc7f496572849589-20171015224719590-1433219824.gif and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE598297eb23f470b37d35d6d3f1451fe9image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE598297eb23f470b37d35d6d3f1451fe9image.png deleted file mode 100644 index 2c67a12..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE598297eb23f470b37d35d6d3f1451fe9image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE607893845793236f767da405d9c9a4d5image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE607893845793236f767da405d9c9a4d5image.png deleted file mode 100644 index 46e5933..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE607893845793236f767da405d9c9a4d5image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE61673478243ea23a81ca7bed0da28733image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE61673478243ea23a81ca7bed0da28733image.png deleted file mode 100644 index 6e1ad75..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE61673478243ea23a81ca7bed0da28733image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE61a25737180b4d579df0faf4cf8bb1c4stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE61a25737180b4d579df0faf4cf8bb1c4stickPicture.png deleted file mode 100644 index d7523ee..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE61a25737180b4d579df0faf4cf8bb1c4stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE62638d6f9956908d7b93dd99d70bcc61image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE62638d6f9956908d7b93dd99d70bcc61image.png deleted file mode 100644 index 5106266..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE62638d6f9956908d7b93dd99d70bcc61image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE64848ec6b188f4b800d87151f5fdec76image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE64848ec6b188f4b800d87151f5fdec76image.png deleted file mode 100644 index 2095524..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE64848ec6b188f4b800d87151f5fdec76image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE698f0b5e2b11e6c3a965743dd01df4caimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE698f0b5e2b11e6c3a965743dd01df4caimage.png deleted file mode 100644 index db9e3dd..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE698f0b5e2b11e6c3a965743dd01df4caimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE6a63aa7276f21b9af08cd146f5959cbbimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE6a63aa7276f21b9af08cd146f5959cbbimage.png deleted file mode 100644 index f1627ad..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE6a63aa7276f21b9af08cd146f5959cbbimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE7246c4ff67284b1f94285f137c008d32截图.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE7246c4ff67284b1f94285f137c008d32截图.png deleted file mode 100644 index 00b7940..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE7246c4ff67284b1f94285f137c008d32截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE73773b4065a244cce2bf36de18615e0cimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE73773b4065a244cce2bf36de18615e0cimage.png deleted file mode 100644 index b179a3d..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE73773b4065a244cce2bf36de18615e0cimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE73f0b54259e8460e97f84fd70e8aaef4stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE73f0b54259e8460e97f84fd70e8aaef4stickPicture.png deleted file mode 100644 index 58af041..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE73f0b54259e8460e97f84fd70e8aaef4stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE77576e5ba8ad0a92819a29e42a156f4c849589-20180331170017421-364506073.gif b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE77576e5ba8ad0a92819a29e42a156f4c849589-20180331170017421-364506073.gif deleted file mode 100644 index bbb3bea..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE77576e5ba8ad0a92819a29e42a156f4c849589-20180331170017421-364506073.gif and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE77cefa9018a70540104090158d8390b0stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE77cefa9018a70540104090158d8390b0stickPicture.png deleted file mode 100644 index a2221c4..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE77cefa9018a70540104090158d8390b0stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE792781c979620a94ca2b918b07a45ee3image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE792781c979620a94ca2b918b07a45ee3image.png deleted file mode 100644 index dfef00a..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE792781c979620a94ca2b918b07a45ee3image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE79d40806b934939775f7460001a79cbbimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE79d40806b934939775f7460001a79cbbimage.png deleted file mode 100644 index cf46927..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE79d40806b934939775f7460001a79cbbimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE7c9c73af4eed4645beaa1264f8384921image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE7c9c73af4eed4645beaa1264f8384921image.png deleted file mode 100644 index ff6e31f..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE7c9c73af4eed4645beaa1264f8384921image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE809cda2ce0aa92b5b344707c1d4a3629image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE809cda2ce0aa92b5b344707c1d4a3629image.png deleted file mode 100644 index b463972..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE809cda2ce0aa92b5b344707c1d4a3629image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE886cfc7eae684a52b78b24c37be08569stickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE886cfc7eae684a52b78b24c37be08569stickPicture.png deleted file mode 100644 index dd79648..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE886cfc7eae684a52b78b24c37be08569stickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE8a15519dcbff531403a69214e1f98014image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE8a15519dcbff531403a69214e1f98014image.png deleted file mode 100644 index 6f4897a..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE8a15519dcbff531403a69214e1f98014image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE8e93c80dd4024c349b761d46d6bc550astickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE8e93c80dd4024c349b761d46d6bc550astickPicture.png deleted file mode 100644 index 3c6e146..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE8e93c80dd4024c349b761d46d6bc550astickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9056ea5007d1d9231711d63d2bbf867eimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9056ea5007d1d9231711d63d2bbf867eimage.png deleted file mode 100644 index 67a686e..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9056ea5007d1d9231711d63d2bbf867eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE915e9aa0eaf899c958273f42c7683f07image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE915e9aa0eaf899c958273f42c7683f07image.png deleted file mode 100644 index 5051d19..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE915e9aa0eaf899c958273f42c7683f07image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE919546e5273412ccfee06772f169be0bimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE919546e5273412ccfee06772f169be0bimage.png deleted file mode 100644 index bc73233..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE919546e5273412ccfee06772f169be0bimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE970015c2b46c95da2d92fad50ded8cadimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE970015c2b46c95da2d92fad50ded8cadimage.png deleted file mode 100644 index d27f5a2..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE970015c2b46c95da2d92fad50ded8cadimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9923ec431e7de4a5464765a1739d32ccimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9923ec431e7de4a5464765a1739d32ccimage.png deleted file mode 100644 index a96226c..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9923ec431e7de4a5464765a1739d32ccimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE999e2e4cb93fdf4ec8adf3a8df201afcimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE999e2e4cb93fdf4ec8adf3a8df201afcimage.png deleted file mode 100644 index 1ba9b98..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE999e2e4cb93fdf4ec8adf3a8df201afcimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9a3ffeea27bb5e725aff994cb67d133cimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9a3ffeea27bb5e725aff994cb67d133cimage.png deleted file mode 100644 index 4fe09f2..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCE9a3ffeea27bb5e725aff994cb67d133cimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa0517f24461b40ebad5fb8cb35e5046estickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa0517f24461b40ebad5fb8cb35e5046estickPicture.png deleted file mode 100644 index 73a5f0f..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa0517f24461b40ebad5fb8cb35e5046estickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa4614147cc011d922c72d84cca2528f3image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa4614147cc011d922c72d84cca2528f3image.png deleted file mode 100644 index 11d32ca..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa4614147cc011d922c72d84cca2528f3image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa492c1ba1be94ca9886a50ce9884cbc8image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa492c1ba1be94ca9886a50ce9884cbc8image.png deleted file mode 100644 index 881ab32..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa492c1ba1be94ca9886a50ce9884cbc8image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa9b36a9ebb8b287ddf16ffd2c09976d5image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa9b36a9ebb8b287ddf16ffd2c09976d5image.png deleted file mode 100644 index d27cf2b..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEa9b36a9ebb8b287ddf16ffd2c09976d5image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEaa39bdca22d940a0bb7d172aabd9a55dimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEaa39bdca22d940a0bb7d172aabd9a55dimage.png deleted file mode 100644 index 1d90228..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEaa39bdca22d940a0bb7d172aabd9a55dimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEad72a89dc307481fb738c9fd32d03bb0截图.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEad72a89dc307481fb738c9fd32d03bb0截图.png deleted file mode 100644 index 32be099..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEad72a89dc307481fb738c9fd32d03bb0截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEae70b1f84fef405a968b6584513809aestickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEae70b1f84fef405a968b6584513809aestickPicture.png deleted file mode 100644 index 28e09e5..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEae70b1f84fef405a968b6584513809aestickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb181fe3155c18772408b6088b6ef9260image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb181fe3155c18772408b6088b6ef9260image.png deleted file mode 100644 index d545f4f..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb181fe3155c18772408b6088b6ef9260image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb33d0d9cc91e3c728da1b9c8650d7550image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb33d0d9cc91e3c728da1b9c8650d7550image.png deleted file mode 100644 index a461ef1..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb33d0d9cc91e3c728da1b9c8650d7550image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb440b29046c7b9a6f3c4315e2c59b6ffimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb440b29046c7b9a6f3c4315e2c59b6ffimage.png deleted file mode 100644 index 13e427e..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb440b29046c7b9a6f3c4315e2c59b6ffimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb4578182300ccebca038b5640e577b8eimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb4578182300ccebca038b5640e577b8eimage.png deleted file mode 100644 index 9d08686..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb4578182300ccebca038b5640e577b8eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb4c06b079d7fe90fbd6ea378458623dcimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb4c06b079d7fe90fbd6ea378458623dcimage.png deleted file mode 100644 index 8ddf9a9..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb4c06b079d7fe90fbd6ea378458623dcimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb5c62efd51d146318ed20b94a949b34astickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb5c62efd51d146318ed20b94a949b34astickPicture.png deleted file mode 100644 index 7e8f5cc..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb5c62efd51d146318ed20b94a949b34astickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb6a0efee1c1bc96325017b5204bf671f849589-20171015230936371-1413523412.gif b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb6a0efee1c1bc96325017b5204bf671f849589-20171015230936371-1413523412.gif deleted file mode 100644 index ad88d35..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEb6a0efee1c1bc96325017b5204bf671f849589-20171015230936371-1413523412.gif and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEba4b56e9d9f7a758da348629635d6cf6image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEba4b56e9d9f7a758da348629635d6cf6image.png deleted file mode 100644 index 2c7a098..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEba4b56e9d9f7a758da348629635d6cf6image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEbfbfe340f67e40d8b8abd3e304990e0b截图.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEbfbfe340f67e40d8b8abd3e304990e0b截图.png deleted file mode 100644 index 8cf4e1e..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEbfbfe340f67e40d8b8abd3e304990e0b截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEc1cc8a34d5ae4ef6bd588fcb003a0b83image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEc1cc8a34d5ae4ef6bd588fcb003a0b83image.png deleted file mode 100644 index d7e361e..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEc1cc8a34d5ae4ef6bd588fcb003a0b83image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEc93ef0073e59a9197d1df93e15a42da9image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEc93ef0073e59a9197d1df93e15a42da9image.png deleted file mode 100644 index 65a99cf..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEc93ef0073e59a9197d1df93e15a42da9image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEcb03335b039dd3101bd1e33868113656image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEcb03335b039dd3101bd1e33868113656image.png deleted file mode 100644 index 9dcea37..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEcb03335b039dd3101bd1e33868113656image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEd429a77169c21de412bd8ee7b02e5313image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEd429a77169c21de412bd8ee7b02e5313image.png deleted file mode 100644 index 46ee76a..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEd429a77169c21de412bd8ee7b02e5313image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEd5ac80a4126ac71c2086d85336dbf99dimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEd5ac80a4126ac71c2086d85336dbf99dimage.png deleted file mode 100644 index c413215..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEd5ac80a4126ac71c2086d85336dbf99dimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEda3558d0f467fb2e8b63e0e13cc8213dstickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEda3558d0f467fb2e8b63e0e13cc8213dstickPicture.png deleted file mode 100644 index 099f3aa..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEda3558d0f467fb2e8b63e0e13cc8213dstickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEdd9921bab1cd4252b7f237f0d8a12b47截图.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEdd9921bab1cd4252b7f237f0d8a12b47截图.png deleted file mode 100644 index d3b4184..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEdd9921bab1cd4252b7f237f0d8a12b47截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEddc658c0cce70a5068ad13c1c7567ac8image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEddc658c0cce70a5068ad13c1c7567ac8image.png deleted file mode 100644 index 394c2a9..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEddc658c0cce70a5068ad13c1c7567ac8image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe033a13a5da4e1bb7bc6f275fb254dfaimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe033a13a5da4e1bb7bc6f275fb254dfaimage.png deleted file mode 100644 index 811eed7..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe033a13a5da4e1bb7bc6f275fb254dfaimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe0805f5f18d746ebfe9e7c96c29f5a05image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe0805f5f18d746ebfe9e7c96c29f5a05image.png deleted file mode 100644 index 9df1ff4..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe0805f5f18d746ebfe9e7c96c29f5a05image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe2db6c7a73c7bc9d780f9639545ccf3eimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe2db6c7a73c7bc9d780f9639545ccf3eimage.png deleted file mode 100644 index eb63055..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe2db6c7a73c7bc9d780f9639545ccf3eimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe2dc42a51771304b30e561af3f2ed294image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe2dc42a51771304b30e561af3f2ed294image.png deleted file mode 100644 index f246b06..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe2dc42a51771304b30e561af3f2ed294image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe6d0d1a5088db204eab4343b8bff4ef4image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe6d0d1a5088db204eab4343b8bff4ef4image.png deleted file mode 100644 index 1ad8ece..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe6d0d1a5088db204eab4343b8bff4ef4image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe80dc3d48db078411a57b515668d8e57image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe80dc3d48db078411a57b515668d8e57image.png deleted file mode 100644 index e32313f..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEe80dc3d48db078411a57b515668d8e57image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEea237a3e83f613d86fdfed8580c001c5image.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEea237a3e83f613d86fdfed8580c001c5image.png deleted file mode 100644 index 4da4866..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEea237a3e83f613d86fdfed8580c001c5image.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEeb0dc101742ac85592adc21845b91dab6f8df56f18a43f648269080ac22c4c87.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEeb0dc101742ac85592adc21845b91dab6f8df56f18a43f648269080ac22c4c87.png deleted file mode 100644 index ad0e072..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEeb0dc101742ac85592adc21845b91dab6f8df56f18a43f648269080ac22c4c87.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEebddd934ca1e421cb558c4c92f7d53f3截图.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEebddd934ca1e421cb558c4c92f7d53f3截图.png deleted file mode 100644 index 6c85b08..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEebddd934ca1e421cb558c4c92f7d53f3截图.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEed95cb4bf9a6bdd870ada0859f790dcastickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEed95cb4bf9a6bdd870ada0859f790dcastickPicture.png deleted file mode 100644 index fdf8adc..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEed95cb4bf9a6bdd870ada0859f790dcastickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf043bb345ce02a43791f1afe7466e30dimage.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf043bb345ce02a43791f1afe7466e30dimage.png deleted file mode 100644 index fd46456..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf043bb345ce02a43791f1afe7466e30dimage.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf305530c183d4d1682bc4b1fe628e14fstickPicture.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf305530c183d4d1682bc4b1fe628e14fstickPicture.png deleted file mode 100644 index f73e7e3..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf305530c183d4d1682bc4b1fe628e14fstickPicture.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf54011d029f949fe3f754b46aa3853cbfc1fc8c6aeff83d2c08b1198d0df3ed6.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf54011d029f949fe3f754b46aa3853cbfc1fc8c6aeff83d2c08b1198d0df3ed6.png deleted file mode 100644 index 19b4411..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf54011d029f949fe3f754b46aa3853cbfc1fc8c6aeff83d2c08b1198d0df3ed6.png and /dev/null differ diff --git a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf9401753ae5405e97b73dbc1662bfc9001416f17412c415232ef6faf014cdff5.png b/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf9401753ae5405e97b73dbc1662bfc9001416f17412c415232ef6faf014cdff5.png deleted file mode 100644 index 869cfb0..0000000 Binary files a/Collection/YoudaoyunNotes/02C语言/images/WEBRESOURCEf9401753ae5405e97b73dbc1662bfc9001416f17412c415232ef6faf014cdff5.png and /dev/null differ