@jupyterlite/pyodide-kernel 0.4.0-alpha.2 → 0.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/_pypi.d.ts +2 -2
- package/lib/_pypi.js +2 -2
- package/lib/coincident.worker.d.ts +15 -0
- package/lib/coincident.worker.js +18 -0
- package/lib/{worker.js.map → coincident.worker.js.map} +4 -4
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/kernel.d.ts +9 -2
- package/lib/kernel.js +23 -7
- package/lib/tokens.d.ts +8 -3
- package/lib/worker.d.ts +2 -4
- package/lib/worker.js +399 -11
- package/package.json +6 -6
- package/pypi/all.json +32 -32
- package/pypi/ipykernel-6.9.2-py3-none-any.whl +0 -0
- package/pypi/{piplite-0.4.0a2-py3-none-any.whl → piplite-0.4.0b0-py3-none-any.whl} +0 -0
- package/pypi/{pyodide_kernel-0.4.0a2-py3-none-any.whl → pyodide_kernel-0.4.0b0-py3-none-any.whl} +0 -0
- package/pypi/widgetsnbextension-3.6.6-py3-none-any.whl +0 -0
- package/pypi/widgetsnbextension-4.0.11-py3-none-any.whl +0 -0
- package/lib/comlink.worker.d.ts +0 -1
- package/lib/comlink.worker.js +0 -9
package/lib/worker.js
CHANGED
|
@@ -1,13 +1,401 @@
|
|
|
1
|
-
var gi=Object.create;var Ne=Object.defineProperty;var xi=Object.getOwnPropertyDescriptor;var wi=Object.getOwnPropertyNames;var yi=Object.getPrototypeOf,bi=Object.prototype.hasOwnProperty;var re=(n,e)=>()=>(n&&(e=n(n=0)),e);var L=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),_i=(n,e)=>{for(var t in e)Ne(n,t,{get:e[t],enumerable:!0})},ki=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of wi(e))!bi.call(n,a)&&a!==t&&Ne(n,a,{get:()=>e[a],enumerable:!(i=xi(e,a))||i.enumerable});return n};var le=(n,e,t)=>(t=n!=null?gi(yi(n)):{},ki(e||!n||!n.__esModule?Ne(t,"default",{value:n,enumerable:!0}):t,n));var it=L((ge,tt)=>{(function(n,e){typeof ge=="object"&&typeof tt!="undefined"?e(ge):typeof define=="function"&&define.amd?define(["exports"],e):(n=typeof globalThis!="undefined"?globalThis:n||self,e(n.lumino_algorithm={}))})(ge,function(n){"use strict";n.ArrayExt=void 0,function(u){function g(x,y,d=0,p=-1){let f=x.length;if(f===0)return-1;d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1);let _;p<d?_=p+1+(f-d):_=p-d+1;for(let k=0;k<_;++k){let N=(d+k)%f;if(x[N]===y)return N}return-1}u.firstIndexOf=g;function w(x,y,d=-1,p=0){let f=x.length;if(f===0)return-1;d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1);let _;d<p?_=d+1+(f-p):_=d-p+1;for(let k=0;k<_;++k){let N=(d-k+f)%f;if(x[N]===y)return N}return-1}u.lastIndexOf=w;function b(x,y,d=0,p=-1){let f=x.length;if(f===0)return-1;d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1);let _;p<d?_=p+1+(f-d):_=p-d+1;for(let k=0;k<_;++k){let N=(d+k)%f;if(y(x[N],N))return N}return-1}u.findFirstIndex=b;function M(x,y,d=-1,p=0){let f=x.length;if(f===0)return-1;d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1);let _;d<p?_=d+1+(f-p):_=d-p+1;for(let k=0;k<_;++k){let N=(d-k+f)%f;if(y(x[N],N))return N}return-1}u.findLastIndex=M;function $(x,y,d=0,p=-1){let f=b(x,y,d,p);return f!==-1?x[f]:void 0}u.findFirstValue=$;function A(x,y,d=-1,p=0){let f=M(x,y,d,p);return f!==-1?x[f]:void 0}u.findLastValue=A;function T(x,y,d,p=0,f=-1){let _=x.length;if(_===0)return 0;p<0?p=Math.max(0,p+_):p=Math.min(p,_-1),f<0?f=Math.max(0,f+_):f=Math.min(f,_-1);let k=p,N=f-p+1;for(;N>0;){let Y=N>>1,fe=k+Y;d(x[fe],y)<0?(k=fe+1,N-=Y+1):N=Y}return k}u.lowerBound=T;function H(x,y,d,p=0,f=-1){let _=x.length;if(_===0)return 0;p<0?p=Math.max(0,p+_):p=Math.min(p,_-1),f<0?f=Math.max(0,f+_):f=Math.min(f,_-1);let k=p,N=f-p+1;for(;N>0;){let Y=N>>1,fe=k+Y;d(x[fe],y)>0?N=Y:(k=fe+1,N-=Y+1)}return k}u.upperBound=H;function F(x,y,d){if(x===y)return!0;if(x.length!==y.length)return!1;for(let p=0,f=x.length;p<f;++p)if(d?!d(x[p],y[p]):x[p]!==y[p])return!1;return!0}u.shallowEqual=F;function W(x,y={}){let{start:d,stop:p,step:f}=y;if(f===void 0&&(f=1),f===0)throw new Error("Slice `step` cannot be zero.");let _=x.length;d===void 0?d=f<0?_-1:0:d<0?d=Math.max(d+_,f<0?-1:0):d>=_&&(d=f<0?_-1:_),p===void 0?p=f<0?-1:_:p<0?p=Math.max(p+_,f<0?-1:0):p>=_&&(p=f<0?_-1:_);let k;f<0&&p>=d||f>0&&d>=p?k=0:f<0?k=Math.floor((p-d+1)/f+1):k=Math.floor((p-d-1)/f+1);let N=[];for(let Y=0;Y<k;++Y)N[Y]=x[d+Y*f];return N}u.slice=W;function B(x,y,d){let p=x.length;if(p<=1||(y<0?y=Math.max(0,y+p):y=Math.min(y,p-1),d<0?d=Math.max(0,d+p):d=Math.min(d,p-1),y===d))return;let f=x[y],_=y<d?1:-1;for(let k=y;k!==d;k+=_)x[k]=x[k+_];x[d]=f}u.move=B;function J(x,y=0,d=-1){let p=x.length;if(!(p<=1))for(y<0?y=Math.max(0,y+p):y=Math.min(y,p-1),d<0?d=Math.max(0,d+p):d=Math.min(d,p-1);y<d;){let f=x[y],_=x[d];x[y++]=_,x[d--]=f}}u.reverse=J;function G(x,y,d=0,p=-1){let f=x.length;if(f<=1||(d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1),d>=p))return;let _=p-d+1;if(y>0?y=y%_:y<0&&(y=(y%_+_)%_),y===0)return;let k=d+y;J(x,d,k-1),J(x,k,p),J(x,d,p)}u.rotate=G;function Q(x,y,d=0,p=-1){let f=x.length;if(f===0)return;d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1);let _;p<d?_=p+1+(f-d):_=p-d+1;for(let k=0;k<_;++k)x[(d+k)%f]=y}u.fill=Q;function pi(x,y,d){let p=x.length;y<0?y=Math.max(0,y+p):y=Math.min(y,p);for(let f=p;f>y;--f)x[f]=x[f-1];x[y]=d}u.insert=pi;function me(x,y){let d=x.length;if(y<0&&(y+=d),y<0||y>=d)return;let p=x[y];for(let f=y+1;f<d;++f)x[f-1]=x[f];return x.length=d-1,p}u.removeAt=me;function di(x,y,d=0,p=-1){let f=g(x,y,d,p);return f!==-1&&me(x,f),f}u.removeFirstOf=di;function mi(x,y,d=-1,p=0){let f=w(x,y,d,p);return f!==-1&&me(x,f),f}u.removeLastOf=mi;function fi(x,y,d=0,p=-1){let f=x.length;if(f===0)return 0;d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1);let _=0;for(let k=0;k<f;++k)d<=p&&k>=d&&k<=p&&x[k]===y||p<d&&(k<=p||k>=d)&&x[k]===y?_++:_>0&&(x[k-_]=x[k]);return _>0&&(x.length=f-_),_}u.removeAllOf=fi;function ui(x,y,d=0,p=-1){let f,_=b(x,y,d,p);return _!==-1&&(f=me(x,_)),{index:_,value:f}}u.removeFirstWhere=ui;function hi(x,y,d=-1,p=0){let f,_=M(x,y,d,p);return _!==-1&&(f=me(x,_)),{index:_,value:f}}u.removeLastWhere=hi;function vi(x,y,d=0,p=-1){let f=x.length;if(f===0)return 0;d<0?d=Math.max(0,d+f):d=Math.min(d,f-1),p<0?p=Math.max(0,p+f):p=Math.min(p,f-1);let _=0;for(let k=0;k<f;++k)d<=p&&k>=d&&k<=p&&y(x[k],k)||p<d&&(k<=p||k>=d)&&y(x[k],k)?_++:_>0&&(x[k-_]=x[k]);return _>0&&(x.length=f-_),_}u.removeAllWhere=vi}(n.ArrayExt||(n.ArrayExt={}));function*e(...u){for(let g of u)yield*g}function*t(){}function*i(u,g=0){for(let w of u)yield[g++,w]}function*a(u,g){let w=0;for(let b of u)g(b,w++)&&(yield b)}function o(u,g){let w=0;for(let b of u)if(g(b,w++))return b}function s(u,g){let w=0;for(let b of u)if(g(b,w++))return w-1;return-1}function r(u,g){let w;for(let b of u){if(w===void 0){w=b;continue}g(b,w)<0&&(w=b)}return w}function c(u,g){let w;for(let b of u){if(w===void 0){w=b;continue}g(b,w)>0&&(w=b)}return w}function m(u,g){let w=!0,b,M;for(let $ of u)w?(b=$,M=$,w=!1):g($,b)<0?b=$:g($,M)>0&&(M=$);return w?void 0:[b,M]}function h(u){return Array.from(u)}function l(u){let g={};for(let[w,b]of u)g[w]=b;return g}function v(u,g){let w=0;for(let b of u)if(g(b,w++)===!1)return}function j(u,g){let w=0;for(let b of u)if(g(b,w++)===!1)return!1;return!0}function C(u,g){let w=0;for(let b of u)if(g(b,w++))return!0;return!1}function*U(u,g){let w=0;for(let b of u)yield g(b,w++)}function*O(u,g,w){g===void 0?(g=u,u=0,w=1):w===void 0&&(w=1);let b=S.rangeLength(u,g,w);for(let M=0;M<b;M++)yield u+w*M}var S;(function(u){function g(w,b,M){return M===0?1/0:w>b&&M>0||w<b&&M<0?0:Math.ceil((b-w)/M)}u.rangeLength=g})(S||(S={}));function R(u,g,w){let b=u[Symbol.iterator](),M=0,$=b.next();if($.done&&w===void 0)throw new TypeError("Reduce of empty iterable with no initial value.");if($.done)return w;let A=b.next();if(A.done&&w===void 0)return $.value;if(A.done)return g(w,$.value,M++);let T;w===void 0?T=g($.value,A.value,M++):T=g(g(w,$.value,M++),A.value,M++);let H;for(;!(H=b.next()).done;)T=g(T,H.value,M++);return T}function*I(u,g){for(;0<g--;)yield u}function*P(u){yield u}function*q(u){if(typeof u.retro=="function")yield*u.retro();else for(let g=u.length-1;g>-1;g--)yield u[g]}function V(u){let g=[],w=new Set,b=new Map;for(let A of u)M(A);for(let[A]of b)$(A);return g;function M(A){let[T,H]=A,F=b.get(H);F?F.push(T):b.set(H,[T])}function $(A){if(w.has(A))return;w.add(A);let T=b.get(A);if(T)for(let H of T)$(H);g.push(A)}}function*D(u,g){let w=0;for(let b of u)w++%g===0&&(yield b)}n.StringExt=void 0,function(u){function g(A,T,H=0){let F=new Array(T.length);for(let W=0,B=H,J=T.length;W<J;++W,++B){if(B=A.indexOf(T[W],B),B===-1)return null;F[W]=B}return F}u.findIndices=g;function w(A,T,H=0){let F=g(A,T,H);if(!F)return null;let W=0;for(let B=0,J=F.length;B<J;++B){let G=F[B]-H;W+=G*G}return{score:W,indices:F}}u.matchSumOfSquares=w;function b(A,T,H=0){let F=g(A,T,H);if(!F)return null;let W=0,B=H-1;for(let J=0,G=F.length;J<G;++J){let Q=F[J];W+=Q-B-1,B=Q}return{score:W,indices:F}}u.matchSumOfDeltas=b;function M(A,T,H){let F=[],W=0,B=0,J=T.length;for(;W<J;){let G=T[W],Q=T[W];for(;++W<J&&T[W]===Q+1;)Q++;B<G&&F.push(A.slice(B,G)),G<Q+1&&F.push(H(A.slice(G,Q+1))),B=Q+1}return B<A.length&&F.push(A.slice(B)),F}u.highlight=M;function $(A,T){return A<T?-1:A>T?1:0}u.cmp=$}(n.StringExt||(n.StringExt={}));function*z(u,g){if(g<1)return;let w=u[Symbol.iterator](),b;for(;0<g--&&!(b=w.next()).done;)yield b.value}function*E(...u){let g=u.map(b=>b[Symbol.iterator]()),w=g.map(b=>b.next());for(;j(w,b=>!b.done);w=g.map(b=>b.next()))yield w.map(b=>b.value)}n.chain=e,n.each=v,n.empty=t,n.enumerate=i,n.every=j,n.filter=a,n.find=o,n.findIndex=s,n.map=U,n.max=c,n.min=r,n.minmax=m,n.once=P,n.range=O,n.reduce=R,n.repeat=I,n.retro=q,n.some=C,n.stride=D,n.take=z,n.toArray=h,n.toObject=l,n.topologicSort=V,n.zip=E})});var ce=L((xe,nt)=>{(function(n,e){typeof xe=="object"&&typeof nt!="undefined"?e(xe):typeof define=="function"&&define.amd?define(["exports"],e):(n=typeof globalThis!="undefined"?globalThis:n||self,e(n.lumino_coreutils={}))})(xe,function(n){"use strict";n.JSONExt=void 0,function(s){s.emptyObject=Object.freeze({}),s.emptyArray=Object.freeze([]);function r(O){return O===null||typeof O=="boolean"||typeof O=="number"||typeof O=="string"}s.isPrimitive=r;function c(O){return Array.isArray(O)}s.isArray=c;function m(O){return!r(O)&&!c(O)}s.isObject=m;function h(O,S){if(O===S)return!0;if(r(O)||r(S))return!1;let R=c(O),I=c(S);return R!==I?!1:R&&I?v(O,S):j(O,S)}s.deepEqual=h;function l(O){return r(O)?O:c(O)?C(O):U(O)}s.deepCopy=l;function v(O,S){if(O===S)return!0;if(O.length!==S.length)return!1;for(let R=0,I=O.length;R<I;++R)if(!h(O[R],S[R]))return!1;return!0}function j(O,S){if(O===S)return!0;for(let R in O)if(O[R]!==void 0&&!(R in S))return!1;for(let R in S)if(S[R]!==void 0&&!(R in O))return!1;for(let R in O){let I=O[R],P=S[R];if(!(I===void 0&&P===void 0)&&(I===void 0||P===void 0||!h(I,P)))return!1}return!0}function C(O){let S=new Array(O.length);for(let R=0,I=O.length;R<I;++R)S[R]=l(O[R]);return S}function U(O){let S={};for(let R in O){let I=O[R];I!==void 0&&(S[R]=l(I))}return S}}(n.JSONExt||(n.JSONExt={}));class e{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(r){return this._types.indexOf(r)!==-1}getData(r){let c=this._types.indexOf(r);return c!==-1?this._values[c]:void 0}setData(r,c){this.clearData(r),this._types.push(r),this._values.push(c)}clearData(r){let c=this._types.indexOf(r);c!==-1&&(this._types.splice(c,1),this._values.splice(c,1))}clear(){this._types.length=0,this._values.length=0}}class t{constructor(){this.promise=new Promise((r,c)=>{this._resolve=r,this._reject=c})}resolve(r){let c=this._resolve;c(r)}reject(r){let c=this._reject;c(r)}}class i{constructor(r,c){this.name=r,this.description=c!=null?c:"",this._tokenStructuralPropertyT=null}}function a(s){let r=0;for(let c=0,m=s.length;c<m;++c)c%4===0&&(r=Math.random()*4294967295>>>0),s[c]=r&255,r>>>=8}n.Random=void 0,function(s){s.getRandomValues=(()=>{let r=typeof window!="undefined"&&(window.crypto||window.msCrypto)||null;return r&&typeof r.getRandomValues=="function"?function(m){return r.getRandomValues(m)}:a})()}(n.Random||(n.Random={}));function o(s){let r=new Uint8Array(16),c=new Array(256);for(let m=0;m<16;++m)c[m]="0"+m.toString(16);for(let m=16;m<256;++m)c[m]=m.toString(16);return function(){return s(r),r[6]=64|r[6]&15,r[8]=128|r[8]&63,c[r[0]]+c[r[1]]+c[r[2]]+c[r[3]]+"-"+c[r[4]]+c[r[5]]+"-"+c[r[6]]+c[r[7]]+"-"+c[r[8]]+c[r[9]]+"-"+c[r[10]]+c[r[11]]+c[r[12]]+c[r[13]]+c[r[14]]+c[r[15]]}}n.UUID=void 0,function(s){s.uuid4=o(n.Random.getRandomValues)}(n.UUID||(n.UUID={})),n.MimeData=e,n.PromiseDelegate=t,n.Token=i})});var ot=L((we,at)=>{(function(n,e){typeof we=="object"&&typeof at!="undefined"?e(we,it(),ce()):typeof define=="function"&&define.amd?define(["exports","@lumino/algorithm","@lumino/coreutils"],e):(n=typeof globalThis!="undefined"?globalThis:n||self,e(n.lumino_signaling={},n.lumino_algorithm,n.lumino_coreutils))})(we,function(n,e,t){"use strict";class i{constructor(r){this.sender=r}connect(r,c){return o.connect(this,r,c)}disconnect(r,c){return o.disconnect(this,r,c)}emit(r){o.emit(this,r)}}(function(s){function r(C,U){o.disconnectBetween(C,U)}s.disconnectBetween=r;function c(C){o.disconnectSender(C)}s.disconnectSender=c;function m(C){o.disconnectReceiver(C)}s.disconnectReceiver=m;function h(C){o.disconnectAll(C)}s.disconnectAll=h;function l(C){o.disconnectAll(C)}s.clearData=l;function v(){return o.exceptionHandler}s.getExceptionHandler=v;function j(C){let U=o.exceptionHandler;return o.exceptionHandler=C,U}s.setExceptionHandler=j})(i||(i={}));class a extends i{constructor(){super(...arguments),this._pending=new t.PromiseDelegate}async*[Symbol.asyncIterator](){let r=this._pending;for(;;)try{let{args:c,next:m}=await r.promise;r=m,yield c}catch{return}}emit(r){let c=this._pending,m=this._pending=new t.PromiseDelegate;c.resolve({args:r,next:m}),super.emit(r)}stop(){this._pending.promise.catch(()=>{}),this._pending.reject("stop"),this._pending=new t.PromiseDelegate}}var o;(function(s){s.exceptionHandler=z=>{console.error(z)};function r(z,E,u){u=u||void 0;let g=C.get(z.sender);if(g||(g=[],C.set(z.sender,g)),R(g,z,E,u))return!1;let w=u||E,b=U.get(w);b||(b=[],U.set(w,b));let M={signal:z,slot:E,thisArg:u};return g.push(M),b.push(M),!0}s.connect=r;function c(z,E,u){u=u||void 0;let g=C.get(z.sender);if(!g||g.length===0)return!1;let w=R(g,z,E,u);if(!w)return!1;let b=u||E,M=U.get(b);return w.signal=null,P(g),P(M),!0}s.disconnect=c;function m(z,E){let u=C.get(z);if(!u||u.length===0)return;let g=U.get(E);if(!(!g||g.length===0)){for(let w of g)w.signal&&w.signal.sender===z&&(w.signal=null);P(u),P(g)}}s.disconnectBetween=m;function h(z){let E=C.get(z);if(!(!E||E.length===0)){for(let u of E){if(!u.signal)continue;let g=u.thisArg||u.slot;u.signal=null,P(U.get(g))}P(E)}}s.disconnectSender=h;function l(z){let E=U.get(z);if(!(!E||E.length===0)){for(let u of E){if(!u.signal)continue;let g=u.signal.sender;u.signal=null,P(C.get(g))}P(E)}}s.disconnectReceiver=l;function v(z){h(z),l(z)}s.disconnectAll=v;function j(z,E){let u=C.get(z.sender);if(!(!u||u.length===0))for(let g=0,w=u.length;g<w;++g){let b=u[g];b.signal===z&&I(b,E)}}s.emit=j;let C=new WeakMap,U=new WeakMap,O=new Set,S=typeof requestAnimationFrame=="function"?requestAnimationFrame:setImmediate;function R(z,E,u,g){return e.find(z,w=>w.signal===E&&w.slot===u&&w.thisArg===g)}function I(z,E){let{signal:u,slot:g,thisArg:w}=z;try{g.call(w,u.sender,E)}catch(b){s.exceptionHandler(b)}}function P(z){O.size===0&&S(q),O.add(z)}function q(){O.forEach(V),O.clear()}function V(z){e.ArrayExt.removeAllWhere(z,D)}function D(z){return z.signal===null}})(o||(o={})),n.Signal=i,n.Stream=a})});var rt=L(ye=>{"use strict";Object.defineProperty(ye,"__esModule",{value:!0});ye.ActivityMonitor=void 0;var st=ot(),qe=class{constructor(e){this._timer=-1,this._timeout=-1,this._isDisposed=!1,this._activityStopped=new st.Signal(this),e.signal.connect(this._onSignalFired,this),this._timeout=e.timeout||1e3}get activityStopped(){return this._activityStopped}get timeout(){return this._timeout}set timeout(e){this._timeout=e}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,st.Signal.clearData(this))}_onSignalFired(e,t){clearTimeout(this._timer),this._sender=e,this._args=t,this._timer=setTimeout(()=>{this._activityStopped.emit({sender:this._sender,args:this._args})},this._timeout)}};ye.ActivityMonitor=qe});var ct=L(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0})});var pt=L(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.LruCache=void 0;var ji=128,Le=class{constructor(e={}){this._map=new Map,this._maxSize=(e==null?void 0:e.maxSize)||ji}get size(){return this._map.size}clear(){this._map.clear()}get(e){let t=this._map.get(e)||null;return t!=null&&(this._map.delete(e),this._map.set(e,t)),t}set(e,t){this._map.size>=this._maxSize&&this._map.delete(this._map.keys().next().value),this._map.set(e,t)}};be.LruCache=Le});var mt=L(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.MarkdownCodeBlocks=void 0;var dt;(function(n){n.CODE_BLOCK_MARKER="```";let e=[".markdown",".mdown",".mkdn",".md",".mkd",".mdwn",".mdtxt",".mdtext",".text",".txt",".Rmd"];class t{constructor(s){this.startLine=s,this.code="",this.endLine=-1}}n.MarkdownCodeBlock=t;function i(o){return e.indexOf(o)>-1}n.isMarkdown=i;function a(o){if(!o||o==="")return[];let s=o.split(`
|
|
2
|
-
|
|
3
|
-
`);else{c=new t(m);let j=h.indexOf(n.CODE_BLOCK_MARKER),C=h.lastIndexOf(n.CODE_BLOCK_MARKER);j!==C&&(c.code=h.substring(j+n.CODE_BLOCK_MARKER.length,C),c.endLine=m,r.push(c),c=null)}}return r}n.findMarkdownCodeBlocks=a})(dt||(_e.MarkdownCodeBlocks=dt={}))});var vt=L((en,ht)=>{"use strict";function Ci(n,e){var t=n;e.slice(0,-1).forEach(function(a){t=t[a]||{}});var i=e[e.length-1];return i in t}function ft(n){return typeof n=="number"||/^0x[0-9a-f]+$/i.test(n)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(n)}function ut(n,e){return e==="constructor"&&typeof n[e]=="function"||e==="__proto__"}ht.exports=function(n,e){e||(e={});var t={bools:{},strings:{},unknownFn:null};typeof e.unknown=="function"&&(t.unknownFn=e.unknown),typeof e.boolean=="boolean"&&e.boolean?t.allBools=!0:[].concat(e.boolean).filter(Boolean).forEach(function(P){t.bools[P]=!0});var i={};function a(P){return i[P].some(function(q){return t.bools[q]})}Object.keys(e.alias||{}).forEach(function(P){i[P]=[].concat(e.alias[P]),i[P].forEach(function(q){i[q]=[P].concat(i[P].filter(function(V){return q!==V}))})}),[].concat(e.string).filter(Boolean).forEach(function(P){t.strings[P]=!0,i[P]&&[].concat(i[P]).forEach(function(q){t.strings[q]=!0})});var o=e.default||{},s={_:[]};function r(P,q){return t.allBools&&/^--[^=]+$/.test(q)||t.strings[P]||t.bools[P]||i[P]}function c(P,q,V){for(var D=P,z=0;z<q.length-1;z++){var E=q[z];if(ut(D,E))return;D[E]===void 0&&(D[E]={}),(D[E]===Object.prototype||D[E]===Number.prototype||D[E]===String.prototype)&&(D[E]={}),D[E]===Array.prototype&&(D[E]=[]),D=D[E]}var u=q[q.length-1];ut(D,u)||((D===Object.prototype||D===Number.prototype||D===String.prototype)&&(D={}),D===Array.prototype&&(D=[]),D[u]===void 0||t.bools[u]||typeof D[u]=="boolean"?D[u]=V:Array.isArray(D[u])?D[u].push(V):D[u]=[D[u],V])}function m(P,q,V){if(!(V&&t.unknownFn&&!r(P,V)&&t.unknownFn(V)===!1)){var D=!t.strings[P]&&ft(q)?Number(q):q;c(s,P.split("."),D),(i[P]||[]).forEach(function(z){c(s,z.split("."),D)})}}Object.keys(t.bools).forEach(function(P){m(P,o[P]===void 0?!1:o[P])});var h=[];n.indexOf("--")!==-1&&(h=n.slice(n.indexOf("--")+1),n=n.slice(0,n.indexOf("--")));for(var l=0;l<n.length;l++){var v=n[l],j,C;if(/^--.+=/.test(v)){var U=v.match(/^--([^=]+)=([\s\S]*)$/);j=U[1];var O=U[2];t.bools[j]&&(O=O!=="false"),m(j,O,v)}else if(/^--no-.+/.test(v))j=v.match(/^--no-(.+)/)[1],m(j,!1,v);else if(/^--.+/.test(v))j=v.match(/^--(.+)/)[1],C=n[l+1],C!==void 0&&!/^(-|--)[^-]/.test(C)&&!t.bools[j]&&!t.allBools&&(!i[j]||!a(j))?(m(j,C,v),l+=1):/^(true|false)$/.test(C)?(m(j,C==="true",v),l+=1):m(j,t.strings[j]?"":!0,v);else if(/^-[^-]+/.test(v)){for(var S=v.slice(1,-1).split(""),R=!1,I=0;I<S.length;I++){if(C=v.slice(I+2),C==="-"){m(S[I],C,v);continue}if(/[A-Za-z]/.test(S[I])&&C[0]==="="){m(S[I],C.slice(1),v),R=!0;break}if(/[A-Za-z]/.test(S[I])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(C)){m(S[I],C,v),R=!0;break}if(S[I+1]&&S[I+1].match(/\W/)){m(S[I],v.slice(I+2),v),R=!0;break}else m(S[I],t.strings[S[I]]?"":!0,v)}j=v.slice(-1)[0],!R&&j!=="-"&&(n[l+1]&&!/^(-|--)[^-]/.test(n[l+1])&&!t.bools[j]&&(!i[j]||!a(j))?(m(j,n[l+1],v),l+=1):n[l+1]&&/^(true|false)$/.test(n[l+1])?(m(j,n[l+1]==="true",v),l+=1):m(j,t.strings[j]?"":!0,v))}else if((!t.unknownFn||t.unknownFn(v)!==!1)&&s._.push(t.strings._||!ft(v)?v:Number(v)),e.stopEarly){s._.push.apply(s._,n.slice(l+1));break}}return Object.keys(o).forEach(function(P){Ci(s,P.split("."))||(c(s,P.split("."),o[P]),(i[P]||[]).forEach(function(q){c(s,q.split("."),o[P])}))}),e["--"]?s["--"]=h.slice():h.forEach(function(P){s._.push(P)}),s}});var ke=L((tn,xt)=>{"use strict";function ee(n){if(typeof n!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(n))}function gt(n,e){for(var t="",i=0,a=-1,o=0,s,r=0;r<=n.length;++r){if(r<n.length)s=n.charCodeAt(r);else{if(s===47)break;s=47}if(s===47){if(!(a===r-1||o===1))if(a!==r-1&&o===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){var c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",i=0):(t=t.slice(0,c),i=t.length-1-t.lastIndexOf("/")),a=r,o=0;continue}}else if(t.length===2||t.length===1){t="",i=0,a=r,o=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+="/"+n.slice(a+1,r):t=n.slice(a+1,r),i=r-a-1;a=r,o=0}else s===46&&o!==-1?++o:o=-1}return t}function Oi(n,e){var t=e.dir||e.root,i=e.base||(e.name||"")+(e.ext||"");return t?t===e.root?t+i:t+n+i:i}var pe={resolve:function(){for(var e="",t=!1,i,a=arguments.length-1;a>=-1&&!t;a--){var o;a>=0?o=arguments[a]:(i===void 0&&(i=process.cwd()),o=i),ee(o),o.length!==0&&(e=o+"/"+e,t=o.charCodeAt(0)===47)}return e=gt(e,!t),t?e.length>0?"/"+e:"/":e.length>0?e:"."},normalize:function(e){if(ee(e),e.length===0)return".";var t=e.charCodeAt(0)===47,i=e.charCodeAt(e.length-1)===47;return e=gt(e,!t),e.length===0&&!t&&(e="."),e.length>0&&i&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return ee(e),e.length>0&&e.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var e,t=0;t<arguments.length;++t){var i=arguments[t];ee(i),i.length>0&&(e===void 0?e=i:e+="/"+i)}return e===void 0?".":pe.normalize(e)},relative:function(e,t){if(ee(e),ee(t),e===t||(e=pe.resolve(e),t=pe.resolve(t),e===t))return"";for(var i=1;i<e.length&&e.charCodeAt(i)===47;++i);for(var a=e.length,o=a-i,s=1;s<t.length&&t.charCodeAt(s)===47;++s);for(var r=t.length,c=r-s,m=o<c?o:c,h=-1,l=0;l<=m;++l){if(l===m){if(c>m){if(t.charCodeAt(s+l)===47)return t.slice(s+l+1);if(l===0)return t.slice(s+l)}else o>m&&(e.charCodeAt(i+l)===47?h=l:l===0&&(h=0));break}var v=e.charCodeAt(i+l),j=t.charCodeAt(s+l);if(v!==j)break;v===47&&(h=l)}var C="";for(l=i+h+1;l<=a;++l)(l===a||e.charCodeAt(l)===47)&&(C.length===0?C+="..":C+="/..");return C.length>0?C+t.slice(s+h):(s+=h,t.charCodeAt(s)===47&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(ee(e),e.length===0)return".";for(var t=e.charCodeAt(0),i=t===47,a=-1,o=!0,s=e.length-1;s>=1;--s)if(t=e.charCodeAt(s),t===47){if(!o){a=s;break}}else o=!1;return a===-1?i?"/":".":i&&a===1?"//":e.slice(0,a)},basename:function(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');ee(e);var i=0,a=-1,o=!0,s;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var r=t.length-1,c=-1;for(s=e.length-1;s>=0;--s){var m=e.charCodeAt(s);if(m===47){if(!o){i=s+1;break}}else c===-1&&(o=!1,c=s+1),r>=0&&(m===t.charCodeAt(r)?--r===-1&&(a=s):(r=-1,a=c))}return i===a?a=c:a===-1&&(a=e.length),e.slice(i,a)}else{for(s=e.length-1;s>=0;--s)if(e.charCodeAt(s)===47){if(!o){i=s+1;break}}else a===-1&&(o=!1,a=s+1);return a===-1?"":e.slice(i,a)}},extname:function(e){ee(e);for(var t=-1,i=0,a=-1,o=!0,s=0,r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(c===47){if(!o){i=r+1;break}continue}a===-1&&(o=!1,a=r+1),c===46?t===-1?t=r:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||a===-1||s===0||s===1&&t===a-1&&t===i+1?"":e.slice(t,a)},format:function(e){if(e===null||typeof e!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return Oi("/",e)},parse:function(e){ee(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;var i=e.charCodeAt(0),a=i===47,o;a?(t.root="/",o=1):o=0;for(var s=-1,r=0,c=-1,m=!0,h=e.length-1,l=0;h>=o;--h){if(i=e.charCodeAt(h),i===47){if(!m){r=h+1;break}continue}c===-1&&(m=!1,c=h+1),i===46?s===-1?s=h:l!==1&&(l=1):s!==-1&&(l=-1)}return s===-1||c===-1||l===0||l===1&&s===c-1&&s===r+1?c!==-1&&(r===0&&a?t.base=t.name=e.slice(1,c):t.base=t.name=e.slice(r,c)):(r===0&&a?(t.name=e.slice(1,s),t.base=e.slice(1,c)):(t.name=e.slice(r,s),t.base=e.slice(r,c)),t.ext=e.slice(s,c)),r>0?t.dir=e.slice(0,r-1):a&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};pe.posix=pe;xt.exports=pe});var yt=L((nn,wt)=>{"use strict";wt.exports=function(e,t){if(t=t.split(":")[0],e=+e,!e)return!1;switch(t){case"http":case"ws":return e!==80;case"https":case"wss":return e!==443;case"ftp":return e!==21;case"gopher":return e!==70;case"file":return!1}return e!==0}});var kt=L(Fe=>{"use strict";var Pi=Object.prototype.hasOwnProperty,Si;function bt(n){try{return decodeURIComponent(n.replace(/\+/g," "))}catch{return null}}function _t(n){try{return encodeURIComponent(n)}catch{return null}}function zi(n){for(var e=/([^=?#&]+)=?([^&]*)/g,t={},i;i=e.exec(n);){var a=bt(i[1]),o=bt(i[2]);a===null||o===null||a in t||(t[a]=o)}return t}function Ri(n,e){e=e||"";var t=[],i,a;typeof e!="string"&&(e="?");for(a in n)if(Pi.call(n,a)){if(i=n[a],!i&&(i===null||i===Si||isNaN(i))&&(i=""),a=_t(a),i=_t(i),a===null||i===null)continue;t.push(a+"="+i)}return t.length?e+t.join("&"):""}Fe.stringify=Ri;Fe.parse=zi});var Et=L((on,Rt)=>{"use strict";var Ct=yt(),je=kt(),Ei=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,Ot=/[\n\r\t]/g,Ii=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,Pt=/:\d+$/,Di=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,Mi=/^[a-zA-Z]:/;function Be(n){return(n||"").toString().replace(Ei,"")}var $e=[["#","hash"],["?","query"],function(e,t){return te(t.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],jt={hash:1,query:1};function St(n){var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e={};var t=e.location||{};n=n||t;var i={},a=typeof n,o;if(n.protocol==="blob:")i=new ie(unescape(n.pathname),{});else if(a==="string"){i=new ie(n,{});for(o in jt)delete i[o]}else if(a==="object"){for(o in n)o in jt||(i[o]=n[o]);i.slashes===void 0&&(i.slashes=Ii.test(n.href))}return i}function te(n){return n==="file:"||n==="ftp:"||n==="http:"||n==="https:"||n==="ws:"||n==="wss:"}function zt(n,e){n=Be(n),n=n.replace(Ot,""),e=e||{};var t=Di.exec(n),i=t[1]?t[1].toLowerCase():"",a=!!t[2],o=!!t[3],s=0,r;return a?o?(r=t[2]+t[3]+t[4],s=t[2].length+t[3].length):(r=t[2]+t[4],s=t[2].length):o?(r=t[3]+t[4],s=t[3].length):r=t[4],i==="file:"?s>=2&&(r=r.slice(2)):te(i)?r=t[4]:i?a&&(r=r.slice(2)):s>=2&&te(e.protocol)&&(r=t[4]),{protocol:i,slashes:a||te(i),slashesCount:s,rest:r}}function Ai(n,e){if(n==="")return e;for(var t=(e||"/").split("/").slice(0,-1).concat(n.split("/")),i=t.length,a=t[i-1],o=!1,s=0;i--;)t[i]==="."?t.splice(i,1):t[i]===".."?(t.splice(i,1),s++):s&&(i===0&&(o=!0),t.splice(i,1),s--);return o&&t.unshift(""),(a==="."||a==="..")&&t.push(""),t.join("/")}function ie(n,e,t){if(n=Be(n),n=n.replace(Ot,""),!(this instanceof ie))return new ie(n,e,t);var i,a,o,s,r,c,m=$e.slice(),h=typeof e,l=this,v=0;for(h!=="object"&&h!=="string"&&(t=e,e=null),t&&typeof t!="function"&&(t=je.parse),e=St(e),a=zt(n||"",e),i=!a.protocol&&!a.slashes,l.slashes=a.slashes||i&&e.slashes,l.protocol=a.protocol||e.protocol||"",n=a.rest,(a.protocol==="file:"&&(a.slashesCount!==2||Mi.test(n))||!a.slashes&&(a.protocol||a.slashesCount<2||!te(l.protocol)))&&(m[3]=[/(.*)/,"pathname"]);v<m.length;v++){if(s=m[v],typeof s=="function"){n=s(n,l);continue}o=s[0],c=s[1],o!==o?l[c]=n:typeof o=="string"?(r=o==="@"?n.lastIndexOf(o):n.indexOf(o),~r&&(typeof s[2]=="number"?(l[c]=n.slice(0,r),n=n.slice(r+s[2])):(l[c]=n.slice(r),n=n.slice(0,r)))):(r=o.exec(n))&&(l[c]=r[1],n=n.slice(0,r.index)),l[c]=l[c]||i&&s[3]&&e[c]||"",s[4]&&(l[c]=l[c].toLowerCase())}t&&(l.query=t(l.query)),i&&e.slashes&&l.pathname.charAt(0)!=="/"&&(l.pathname!==""||e.pathname!=="")&&(l.pathname=Ai(l.pathname,e.pathname)),l.pathname.charAt(0)!=="/"&&te(l.protocol)&&(l.pathname="/"+l.pathname),Ct(l.port,l.protocol)||(l.host=l.hostname,l.port=""),l.username=l.password="",l.auth&&(r=l.auth.indexOf(":"),~r?(l.username=l.auth.slice(0,r),l.username=encodeURIComponent(decodeURIComponent(l.username)),l.password=l.auth.slice(r+1),l.password=encodeURIComponent(decodeURIComponent(l.password))):l.username=encodeURIComponent(decodeURIComponent(l.auth)),l.auth=l.password?l.username+":"+l.password:l.username),l.origin=l.protocol!=="file:"&&te(l.protocol)&&l.host?l.protocol+"//"+l.host:"null",l.href=l.toString()}function Ti(n,e,t){var i=this;switch(n){case"query":typeof e=="string"&&e.length&&(e=(t||je.parse)(e)),i[n]=e;break;case"port":i[n]=e,Ct(e,i.protocol)?e&&(i.host=i.hostname+":"+e):(i.host=i.hostname,i[n]="");break;case"hostname":i[n]=e,i.port&&(e+=":"+i.port),i.host=e;break;case"host":i[n]=e,Pt.test(e)?(e=e.split(":"),i.port=e.pop(),i.hostname=e.join(":")):(i.hostname=e,i.port="");break;case"protocol":i.protocol=e.toLowerCase(),i.slashes=!t;break;case"pathname":case"hash":if(e){var a=n==="pathname"?"/":"#";i[n]=e.charAt(0)!==a?a+e:e}else i[n]=e;break;case"username":case"password":i[n]=encodeURIComponent(e);break;case"auth":var o=e.indexOf(":");~o?(i.username=e.slice(0,o),i.username=encodeURIComponent(decodeURIComponent(i.username)),i.password=e.slice(o+1),i.password=encodeURIComponent(decodeURIComponent(i.password))):i.username=encodeURIComponent(decodeURIComponent(e))}for(var s=0;s<$e.length;s++){var r=$e[s];r[4]&&(i[r[1]]=i[r[1]].toLowerCase())}return i.auth=i.password?i.username+":"+i.password:i.username,i.origin=i.protocol!=="file:"&&te(i.protocol)&&i.host?i.protocol+"//"+i.host:"null",i.href=i.toString(),i}function Ui(n){(!n||typeof n!="function")&&(n=je.stringify);var e,t=this,i=t.host,a=t.protocol;a&&a.charAt(a.length-1)!==":"&&(a+=":");var o=a+(t.protocol&&t.slashes||te(t.protocol)?"//":"");return t.username?(o+=t.username,t.password&&(o+=":"+t.password),o+="@"):t.password?(o+=":"+t.password,o+="@"):t.protocol!=="file:"&&te(t.protocol)&&!i&&t.pathname!=="/"&&(o+="@"),(i[i.length-1]===":"||Pt.test(t.hostname)&&!t.port)&&(i+=":"),o+=i+t.pathname,e=typeof t.query=="object"?n(t.query):t.query,e&&(o+=e.charAt(0)!=="?"?"?"+e:e),t.hash&&(o+=t.hash),o}ie.prototype={set:Ti,toString:Ui};ie.extractProtocol=zt;ie.location=St;ie.trimLeft=Be;ie.qs=je;Rt.exports=ie});var He=L(de=>{"use strict";var Ni=de&&de.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(de,"__esModule",{value:!0});de.URLExt=void 0;var qi=ke(),Ce=Ni(Et()),It;(function(n){function e(m){if(typeof document!="undefined"&&document){let h=document.createElement("a");return h.href=m,h}return(0,Ce.default)(m)}n.parse=e;function t(m){return(0,Ce.default)(m).hostname}n.getHostName=t;function i(m){return m&&e(m).toString()}n.normalize=i;function a(...m){let h=(0,Ce.default)(m[0],{}),l=h.protocol===""&&h.slashes;l&&(h=(0,Ce.default)(m[0],"https:"+m[0]));let v=`${l?"":h.protocol}${h.slashes?"//":""}${h.auth}${h.auth?"@":""}${h.host}`,j=qi.posix.join(`${v&&h.pathname[0]!=="/"?"/":""}${h.pathname}`,...m.slice(1));return`${v}${j==="."?"":j}`}n.join=a;function o(m){return a(...m.split("/").map(encodeURIComponent))}n.encodeParts=o;function s(m){let h=Object.keys(m).filter(l=>l.length>0);return h.length?"?"+h.map(l=>{let v=encodeURIComponent(String(m[l]));return l+(v?"="+v:"")}).join("&"):""}n.objectToQueryString=s;function r(m){return m.replace(/^\?/,"").split("&").reduce((h,l)=>{let[v,j]=l.split("=");return v.length>0&&(h[v]=decodeURIComponent(j||"")),h},{})}n.queryStringToObject=r;function c(m,h=!1){let{protocol:l}=e(m);return(!l||m.toLowerCase().indexOf(l)!==0)&&(h?m.indexOf("//")!==0:m.indexOf("/")!==0)}n.isLocal=c})(It||(de.URLExt=It={}))});var Dt=L((exports,module)=>{"use strict";var __importDefault=exports&&exports.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(exports,"__esModule",{value:!0});exports.PageConfig=void 0;var coreutils_1=ce(),minimist_1=__importDefault(vt()),url_1=He(),PageConfig;(function(PageConfig){function getOption(name){if(configData)return configData[name]||getBodyData(name);configData=Object.create(null);let found=!1;if(typeof document!="undefined"&&document){let n=document.getElementById("jupyter-config-data");n&&(configData=JSON.parse(n.textContent||""),found=!0)}if(!found&&typeof process!="undefined"&&process.argv)try{let cli=(0,minimist_1.default)(process.argv.slice(2)),path=ke(),fullPath="";"jupyter-config-data"in cli?fullPath=path.resolve(cli["jupyter-config-data"]):"JUPYTER_CONFIG_DATA"in process.env&&(fullPath=path.resolve(process.env.JUPYTER_CONFIG_DATA)),fullPath&&(configData=eval("require")(fullPath))}catch(n){console.error(n)}if(!coreutils_1.JSONExt.isObject(configData))configData=Object.create(null);else for(let n in configData)typeof configData[n]!="string"&&(configData[n]=JSON.stringify(configData[n]));return configData[name]||getBodyData(name)}PageConfig.getOption=getOption;function setOption(n,e){let t=getOption(n);return configData[n]=e,t}PageConfig.setOption=setOption;function getBaseUrl(){return url_1.URLExt.normalize(getOption("baseUrl")||"/")}PageConfig.getBaseUrl=getBaseUrl;function getTreeUrl(){return url_1.URLExt.join(getBaseUrl(),getOption("treeUrl"))}PageConfig.getTreeUrl=getTreeUrl;function getShareUrl(){return url_1.URLExt.normalize(getOption("shareUrl")||getBaseUrl())}PageConfig.getShareUrl=getShareUrl;function getTreeShareUrl(){return url_1.URLExt.normalize(url_1.URLExt.join(getShareUrl(),getOption("treeUrl")))}PageConfig.getTreeShareUrl=getTreeShareUrl;function getUrl(n){var e,t,i,a;let o=n.toShare?getShareUrl():getBaseUrl(),s=(e=n.mode)!==null&&e!==void 0?e:getOption("mode"),r=(t=n.workspace)!==null&&t!==void 0?t:getOption("workspace"),c=s==="single-document"?"doc":"lab";o=url_1.URLExt.join(o,c),r!==PageConfig.defaultWorkspace&&(o=url_1.URLExt.join(o,"workspaces",encodeURIComponent((i=getOption("workspace"))!==null&&i!==void 0?i:PageConfig.defaultWorkspace)));let m=(a=n.treePath)!==null&&a!==void 0?a:getOption("treePath");return m&&(o=url_1.URLExt.join(o,"tree",url_1.URLExt.encodeParts(m))),o}PageConfig.getUrl=getUrl,PageConfig.defaultWorkspace="default";function getWsUrl(n){let e=getOption("wsUrl");if(!e){if(n=n?url_1.URLExt.normalize(n):getBaseUrl(),n.indexOf("http")!==0)return"";e="ws"+n.slice(4)}return url_1.URLExt.normalize(e)}PageConfig.getWsUrl=getWsUrl;function getNBConvertURL({path:n,format:e,download:t}){let i=url_1.URLExt.encodeParts(n),a=url_1.URLExt.join(getBaseUrl(),"nbconvert",e,i);return t?a+"?download=true":a}PageConfig.getNBConvertURL=getNBConvertURL;function getToken(){return getOption("token")||getBodyData("jupyterApiToken")}PageConfig.getToken=getToken;function getNotebookVersion(){let n=getOption("notebookVersion");return n===""?[0,0,0]:JSON.parse(n)}PageConfig.getNotebookVersion=getNotebookVersion;let configData=null;function getBodyData(n){if(typeof document=="undefined"||!document.body)return"";let e=document.body.dataset[n];return typeof e=="undefined"?"":decodeURIComponent(e)}let Extension;(function(n){function e(a){try{let o=getOption(a);if(o)return JSON.parse(o)}catch(o){console.warn(`Unable to parse ${a}.`,o)}return[]}n.deferred=e("deferredExtensions"),n.disabled=e("disabledExtensions");function t(a){let o=a.indexOf(":"),s="";return o!==-1&&(s=a.slice(0,o)),n.deferred.some(r=>r===a||s&&r===s)}n.isDeferred=t;function i(a){let o=a.indexOf(":"),s="";return o!==-1&&(s=a.slice(0,o)),n.disabled.some(r=>r===a||s&&r===s)}n.isDisabled=i})(Extension=PageConfig.Extension||(PageConfig.Extension={}))})(PageConfig||(exports.PageConfig=PageConfig={}))});var At=L(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.PathExt=void 0;var se=ke(),Mt;(function(n){function e(...l){let v=se.posix.join(...l);return v==="."?"":h(v)}n.join=e;function t(...l){let v=se.posix.join(...l);return v==="."?"":v}n.joinWithLeadingSlash=t;function i(l,v){return se.posix.basename(l,v)}n.basename=i;function a(l){let v=h(se.posix.dirname(l));return v==="."?"":v}n.dirname=a;function o(l){return se.posix.extname(l)}n.extname=o;function s(l){return l===""?"":h(se.posix.normalize(l))}n.normalize=s;function r(...l){return h(se.posix.resolve(...l))}n.resolve=r;function c(l,v){return h(se.posix.relative(l,v))}n.relative=c;function m(l){return l.length>0&&l.indexOf(".")!==0&&(l=`.${l}`),l}n.normalizeExtension=m;function h(l){return l.indexOf("/")===0&&(l=l.slice(1)),l}n.removeSlash=h})(Mt||(Oe.PathExt=Mt={}))});var Tt=L(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.signalToPromise=void 0;var Li=ce();function Fi(n,e){let t=new Li.PromiseDelegate;function i(){n.disconnect(a)}function a(o,s){i(),t.resolve([o,s])}return n.connect(a),(e!=null?e:0)>0&&setTimeout(()=>{i(),t.reject(`Signal not emitted within ${e} ms.`)},e),t.promise}Pe.signalToPromise=Fi});var Nt=L(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.Text=void 0;var Ut;(function(n){let e=2>1;function t(s,r){if(e)return s;let c=s;for(let m=0;m+1<r.length&&m<s;m++){let h=r.charCodeAt(m);if(h>=55296&&h<=56319){let l=r.charCodeAt(m+1);l>=56320&&l<=57343&&(c--,m++)}}return c}n.jsIndexToCharIndex=t;function i(s,r){if(e)return s;let c=s;for(let m=0;m+1<r.length&&m<c;m++){let h=r.charCodeAt(m);if(h>=55296&&h<=56319){let l=r.charCodeAt(m+1);l>=56320&&l<=57343&&(c++,m++)}}return c}n.charIndexToJsIndex=i;function a(s,r=!1){return s.replace(/^(\w)|[\s-_:]+(\w)/g,function(c,m,h){return h?h.toUpperCase():r?m.toUpperCase():m.toLowerCase()})}n.camelCase=a;function o(s){return(s||"").toLowerCase().split(" ").map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}n.titleCase=o})(Ut||(Se.Text=Ut={}))});var Lt=L(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.Time=void 0;var $i=[{name:"years",milliseconds:365*24*60*60*1e3},{name:"months",milliseconds:30*24*60*60*1e3},{name:"days",milliseconds:24*60*60*1e3},{name:"hours",milliseconds:60*60*1e3},{name:"minutes",milliseconds:60*1e3},{name:"seconds",milliseconds:1e3}],qt;(function(n){function e(i,a="long"){let o=document.documentElement.lang||"en",s=new Intl.RelativeTimeFormat(o,{numeric:"auto",style:a}),r=new Date(i).getTime()-Date.now();for(let c of $i){let m=Math.ceil(r/c.milliseconds);if(m!==0)return s.format(m,c.name)}return s.format(0,"seconds")}n.formatHuman=e;function t(i){let a=document.documentElement.lang||"en";return new Intl.DateTimeFormat(a,{dateStyle:"short",timeStyle:"short"}).format(new Date(i))}n.format=t})(qt||(ze.Time=qt={}))});var ue=L(K=>{"use strict";var Bi=K&&K.__createBinding||(Object.create?function(n,e,t,i){i===void 0&&(i=t);var a=Object.getOwnPropertyDescriptor(e,t);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,i,a)}:function(n,e,t,i){i===void 0&&(i=t),n[i]=e[t]}),ne=K&&K.__exportStar||function(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Bi(e,n,t)};Object.defineProperty(K,"__esModule",{value:!0});ne(rt(),K);ne(ct(),K);ne(pt(),K);ne(mt(),K);ne(Dt(),K);ne(At(),K);ne(Tt(),K);ne(Nt(),K);ne(Lt(),K);ne(He(),K)});var $t=L((mn,Ft)=>{"use strict";function Re(){this._types=Object.create(null),this._extensions=Object.create(null);for(let n=0;n<arguments.length;n++)this.define(arguments[n]);this.define=this.define.bind(this),this.getType=this.getType.bind(this),this.getExtension=this.getExtension.bind(this)}Re.prototype.define=function(n,e){for(let t in n){let i=n[t].map(function(a){return a.toLowerCase()});t=t.toLowerCase();for(let a=0;a<i.length;a++){let o=i[a];if(o[0]!=="*"){if(!e&&o in this._types)throw new Error('Attempt to change mapping for "'+o+'" extension from "'+this._types[o]+'" to "'+t+'". Pass `force=true` to allow this, otherwise remove "'+o+'" from the list of extensions for "'+t+'".');this._types[o]=t}}if(e||!this._extensions[t]){let a=i[0];this._extensions[t]=a[0]!=="*"?a:a.substr(1)}}};Re.prototype.getType=function(n){n=String(n);let e=n.replace(/^.*[/\\]/,"").toLowerCase(),t=e.replace(/^.*\./,"").toLowerCase(),i=e.length<n.length;return(t.length<e.length-1||!i)&&this._types[t]||null};Re.prototype.getExtension=function(n){return n=/^\s*([^;\s]*)/.test(n)&&RegExp.$1,n&&this._extensions[n.toLowerCase()]||null};Ft.exports=Re});var Ht=L((fn,Bt)=>{Bt.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]}});var Kt=L((un,Wt)=>{Wt.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var Vt=L((hn,Jt)=>{"use strict";var Hi=$t();Jt.exports=new Hi(Ht(),Kt())});var Zt,Yt,We,Wi,Z,ae,Ki,Ke=re(()=>{Zt=le(ue()),Yt=le(Vt()),We=le(ce()),Wi=new We.Token("@jupyterlite/contents:IContents");(function(n){n.JSON="application/json",n.PLAIN_TEXT="text/plain",n.OCTET_STREAM="octet/stream"})(Z||(Z={}));(function(n){let e=JSON.parse(Zt.PageConfig.getOption("fileTypes")||"{}");function t(a,o=null){a=a.toLowerCase();for(let s of Object.values(e))for(let r of s.extensions||[])if(r===a&&s.mimeTypes&&s.mimeTypes.length)return s.mimeTypes[0];return Yt.default.getType(a)||o||Z.OCTET_STREAM}n.getType=t;function i(a,o){a=a.toLowerCase();for(let s of Object.values(e))if(s.fileFormat===o){for(let r of s.extensions||[])if(r===a)return!0}return!1}n.hasFormat=i})(ae||(ae={}));Ki=new We.Token("@jupyterlite/contents:IBroadcastChannelWrapper")});var oe,X,Qt,Gt,Xt,Je,Ee,ei=re(()=>{oe=le(ue()),X=le(ue());Ke();Qt=le(ce()),Gt="JupyterLite Storage",Xt=5,Je=class{constructor(e){this.reduceBytesToString=(t,i)=>t+String.fromCharCode(i),this._serverContents=new Map,this._storageName=Gt,this._storageDrivers=null,this._localforage=e.localforage,this._storageName=e.storageName||Gt,this._storageDrivers=e.storageDrivers||null,this._ready=new Qt.PromiseDelegate}async initialize(){await this.initStorage(),this._ready.resolve(void 0)}async initStorage(){this._storage=this.createDefaultStorage(),this._counters=this.createDefaultCounters(),this._checkpoints=this.createDefaultCheckpoints()}get ready(){return this._ready.promise}get storage(){return this.ready.then(()=>this._storage)}get counters(){return this.ready.then(()=>this._counters)}get checkpoints(){return this.ready.then(()=>this._checkpoints)}get defaultStorageOptions(){let e=this._storageDrivers&&this._storageDrivers.length?this._storageDrivers:null;return{version:1,name:this._storageName,...e?{driver:e}:{}}}createDefaultStorage(){return this._localforage.createInstance({description:"Offline Storage for Notebooks and Files",storeName:"files",...this.defaultStorageOptions})}createDefaultCounters(){return this._localforage.createInstance({description:"Store the current file suffix counters",storeName:"counters",...this.defaultStorageOptions})}createDefaultCheckpoints(){return this._localforage.createInstance({description:"Offline Storage for Checkpoints",storeName:"checkpoints",...this.defaultStorageOptions})}async newUntitled(e){var t,i,a;let o=(t=e==null?void 0:e.path)!==null&&t!==void 0?t:"",s=(i=e==null?void 0:e.type)!==null&&i!==void 0?i:"notebook",r=new Date().toISOString(),c=X.PathExt.dirname(o),m=X.PathExt.basename(o),h=X.PathExt.extname(o),l=await this.get(c),v="";o&&!h&&l?(c=`${o}/`,v=""):c&&m?(c=`${c}/`,v=m):(c="",v=o);let j;switch(s){case"directory":{v=`Untitled Folder${await this._incrementCounter("directory")||""}`,j={name:v,path:`${c}${v}`,last_modified:r,created:r,format:"json",mimetype:"",content:null,size:0,writable:!0,type:"directory"};break}case"notebook":{let U=await this._incrementCounter("notebook");v=v||`Untitled${U||""}.ipynb`,j={name:v,path:`${c}${v}`,last_modified:r,created:r,format:"json",mimetype:Z.JSON,content:Ee.EMPTY_NB,size:JSON.stringify(Ee.EMPTY_NB).length,writable:!0,type:"notebook"};break}default:{let U=(a=e==null?void 0:e.ext)!==null&&a!==void 0?a:".txt",O=await this._incrementCounter("file"),S=ae.getType(U)||Z.OCTET_STREAM,R;ae.hasFormat(U,"text")||S.indexOf("text")!==-1?R="text":U.indexOf("json")!==-1||U.indexOf("ipynb")!==-1?R="json":R="base64",v=v||`untitled${O||""}${U}`,j={name:v,path:`${c}${v}`,last_modified:r,created:r,format:R,mimetype:S,content:"",size:0,writable:!0,type:"file"};break}}let C=j.path;return await(await this.storage).setItem(C,j),j}async copy(e,t){let i=X.PathExt.basename(e);for(t=t===""?"":`${t.slice(1)}/`;await this.get(`${t}${i}`,{content:!0});){let s=X.PathExt.extname(i);i=`${i.replace(s,"")} (copy)${s}`}let a=`${t}${i}`,o=await this.get(e,{content:!0});if(!o)throw Error(`Could not find file with path ${e}`);return o={...o,name:i,path:a},await(await this.storage).setItem(a,o),o}async get(e,t){if(e=decodeURIComponent(e.replace(/^\//,"")),e==="")return await this._getFolder(e);let i=await this.storage,a=await i.getItem(e),o=await this._getServerContents(e,t),s=a||o;if(!s)return null;if(!(t!=null&&t.content))return{size:0,...s,content:null};if(s.type==="directory"){let r=new Map;await i.iterate((h,l)=>{l===`${e}/${h.name}`&&r.set(h.name,h)});let c=o?o.content:Array.from((await this._getServerDirectory(e)).values());for(let h of c)r.has(h.name)||r.set(h.name,h);let m=[...r.values()];return{name:X.PathExt.basename(e),path:e,last_modified:s.last_modified,created:s.created,format:"json",mimetype:Z.JSON,content:m,size:0,writable:!0,type:"directory"}}return s}async rename(e,t){let i=decodeURIComponent(e),a=await this.get(i,{content:!0});if(!a)throw Error(`Could not find file with path ${i}`);let o=new Date().toISOString(),s=X.PathExt.basename(t),r={...a,name:s,path:t,last_modified:o},c=await this.storage;if(await c.setItem(t,r),await c.removeItem(i),await(await this.checkpoints).removeItem(i),a.type==="directory"){let m;for(m of a.content)await this.rename(oe.URLExt.join(e,m.name),oe.URLExt.join(t,m.name))}return r}async save(e,t={}){var i;e=decodeURIComponent(e);let a=X.PathExt.extname((i=t.name)!==null&&i!==void 0?i:""),o=t.chunk,s=o?o>1||o===-1:!1,r=await this.get(e,{content:s});if(r||(r=await this.newUntitled({path:e,ext:a,type:"file"})),!r)return null;let c=r.content,m=new Date().toISOString();if(r={...r,...t,last_modified:m},t.content&&t.format==="base64"){let h=o?o===-1:!0;if(a===".ipynb"){let l=this._handleChunk(t.content,c,s);r={...r,content:h?JSON.parse(l):l,format:"json",type:"notebook",size:l.length}}else if(ae.hasFormat(a,"json")){let l=this._handleChunk(t.content,c,s);r={...r,content:h?JSON.parse(l):l,format:"json",type:"file",size:l.length}}else if(ae.hasFormat(a,"text")){let l=this._handleChunk(t.content,c,s);r={...r,content:l,format:"text",type:"file",size:l.length}}else{let l=t.content;r={...r,content:l,size:atob(l).length}}}return await(await this.storage).setItem(e,r),r}async delete(e){e=decodeURIComponent(e);let t=`${e}/`,i=(await(await this.storage).keys()).filter(a=>a===e||a.startsWith(t));await Promise.all(i.map(this.forgetPath,this))}async forgetPath(e){await Promise.all([(await this.storage).removeItem(e),(await this.checkpoints).removeItem(e)])}async createCheckpoint(e){var t;let i=await this.checkpoints;e=decodeURIComponent(e);let a=await this.get(e,{content:!0});if(!a)throw Error(`Could not find file with path ${e}`);let o=((t=await i.getItem(e))!==null&&t!==void 0?t:[]).filter(Boolean);return o.push(a),o.length>Xt&&o.splice(0,o.length-Xt),await i.setItem(e,o),{id:`${o.length-1}`,last_modified:a.last_modified}}async listCheckpoints(e){return(await(await this.checkpoints).getItem(e)||[]).filter(Boolean).map(this.normalizeCheckpoint,this)}normalizeCheckpoint(e,t){return{id:t.toString(),last_modified:e.last_modified}}async restoreCheckpoint(e,t){e=decodeURIComponent(e);let i=await(await this.checkpoints).getItem(e)||[],a=parseInt(t),o=i[a];await(await this.storage).setItem(e,o)}async deleteCheckpoint(e,t){e=decodeURIComponent(e);let i=await(await this.checkpoints).getItem(e)||[],a=parseInt(t);i.splice(a,1),await(await this.checkpoints).setItem(e,i)}_handleChunk(e,t,i){let a=decodeURIComponent(escape(atob(e)));return i?t+a:a}async _getFolder(e){let t=new Map;await(await this.storage).iterate((a,o)=>{o.includes("/")||t.set(a.path,a)});for(let a of(await this._getServerDirectory(e)).values())t.has(a.path)||t.set(a.path,a);return e&&t.size===0?null:{name:"",path:e,last_modified:new Date(0).toISOString(),created:new Date(0).toISOString(),format:"json",mimetype:Z.JSON,content:Array.from(t.values()),size:0,writable:!0,type:"directory"}}async _getServerContents(e,t){let i=X.PathExt.basename(e),o=(await this._getServerDirectory(oe.URLExt.join(e,".."))).get(i);if(!o)return null;if(o=o||{name:i,path:e,last_modified:new Date(0).toISOString(),created:new Date(0).toISOString(),format:"text",mimetype:Z.PLAIN_TEXT,type:"file",writable:!0,size:0,content:""},t!=null&&t.content)if(o.type==="directory"){let s=await this._getServerDirectory(e);o={...o,content:Array.from(s.values())}}else{let s=oe.URLExt.join(oe.PageConfig.getBaseUrl(),"files",e),r=await fetch(s);if(!r.ok)return null;let c=o.mimetype||r.headers.get("Content-Type"),m=X.PathExt.extname(i);if(o.type==="notebook"||ae.hasFormat(m,"json")||(c==null?void 0:c.indexOf("json"))!==-1||e.match(/\.(ipynb|[^/]*json[^/]*)$/)){let h=await r.text();o={...o,content:JSON.parse(h),format:"json",mimetype:o.mimetype||Z.JSON,size:h.length}}else if(ae.hasFormat(m,"text")||c.indexOf("text")!==-1){let h=await r.text();o={...o,content:h,format:"text",mimetype:c||Z.PLAIN_TEXT,size:h.length}}else{let h=await r.arrayBuffer(),l=new Uint8Array(h);o={...o,content:btoa(l.reduce(this.reduceBytesToString,"")),format:"base64",mimetype:c||Z.OCTET_STREAM,size:l.length}}}return o}async _getServerDirectory(e){let t=this._serverContents.get(e)||new Map;if(!this._serverContents.has(e)){let i=oe.URLExt.join(oe.PageConfig.getBaseUrl(),"api/contents",e,"all.json");try{let a=await fetch(i),o=JSON.parse(await a.text());for(let s of o.content)t.set(s.name,s)}catch(a){console.warn(`don't worry, about ${a}... nothing's broken. If there had been a
|
|
4
|
-
file at ${i}, you might see some more files.`)}this._serverContents.set(e,t)}return t}async _incrementCounter(e){var t;let i=await this.counters,o=((t=await i.getItem(e))!==null&&t!==void 0?t:-1)+1;return await i.setItem(e,o),o}};(function(n){n.EMPTY_NB={metadata:{orig_nbformat:4},nbformat_minor:4,nbformat:4,cells:[]}})(Ee||(Ee={}))});function Ve(n){return"node"in n}var he,ti,ii,ni,Ze=re(()=>{he=16895,ti=33206,ii=1,ni=2});var oi,Ge,Te,Ji,Vi,ai,Ie,De,Me,Ae,Ye,Ue=re(()=>{Ze();oi=":",Ge="/api/drive.v1",Te=4096,Ji=new TextEncoder,Vi=new TextDecoder("utf-8"),ai={0:!1,1:!0,2:!0,64:!0,65:!0,66:!0,129:!0,193:!0,514:!0,577:!0,578:!0,705:!0,706:!0,1024:!0,1025:!0,1026:!0,1089:!0,1090:!0,1153:!0,1154:!0,1217:!0,1218:!0,4096:!0,4098:!0},Ie=class{constructor(e){this.fs=e}open(e){let t=this.fs.realPath(e.node);this.fs.FS.isFile(e.node.mode)&&(e.file=this.fs.API.get(t))}close(e){if(!this.fs.FS.isFile(e.node.mode)||!e.file)return;let t=this.fs.realPath(e.node),i=e.flags,a=typeof i=="string"?parseInt(i,10):i;a&=8191;let o=!0;a in ai&&(o=ai[a]),o&&this.fs.API.put(t,e.file),e.file=void 0}read(e,t,i,a,o){if(a<=0||e.file===void 0||o>=(e.file.data.length||0))return 0;let s=Math.min(e.file.data.length-o,a);return t.set(e.file.data.subarray(o,o+s),i),s}write(e,t,i,a,o){var s;if(a<=0||e.file===void 0)return 0;if(e.node.timestamp=Date.now(),o+a>(((s=e.file)===null||s===void 0?void 0:s.data.length)||0)){let r=e.file.data?e.file.data:new Uint8Array;e.file.data=new Uint8Array(o+a),e.file.data.set(r)}return e.file.data.set(t.subarray(i,i+a),o),a}llseek(e,t,i){let a=t;if(i===1)a+=e.position;else if(i===2&&this.fs.FS.isFile(e.node.mode))if(e.file!==void 0)a+=e.file.data.length;else throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EPERM);if(a<0)throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EINVAL);return a}},De=class{constructor(e){this.fs=e}node(e){return Ve(e)?e.node:e}getattr(e){let t=this.node(e);return{...this.fs.API.getattr(this.fs.realPath(t)),mode:t.mode,ino:t.id}}setattr(e,t){let i=this.node(e);for(let[a,o]of Object.entries(t))switch(a){case"mode":i.mode=o;break;case"timestamp":i.timestamp=o;break;default:console.warn("setattr",a,"of",o,"on",i,"not yet implemented");break}}lookup(e,t){let i=this.node(e),a=this.fs.PATH.join2(this.fs.realPath(i),t),o=this.fs.API.lookup(a);if(!o.ok)throw this.fs.FS.genericErrors[this.fs.ERRNO_CODES.ENOENT];return this.fs.createNode(i,t,o.mode,0)}mknod(e,t,i,a){let o=this.node(e),s=this.fs.PATH.join2(this.fs.realPath(o),t);return this.fs.API.mknod(s,i),this.fs.createNode(o,t,i,a)}rename(e,t,i){let a=this.node(e),o=this.node(t);this.fs.API.rename(a.parent?this.fs.PATH.join2(this.fs.realPath(a.parent),a.name):a.name,this.fs.PATH.join2(this.fs.realPath(o),i)),a.name=i,a.parent=o}unlink(e,t){this.fs.API.rmdir(this.fs.PATH.join2(this.fs.realPath(this.node(e)),t))}rmdir(e,t){this.fs.API.rmdir(this.fs.PATH.join2(this.fs.realPath(this.node(e)),t))}readdir(e){return this.fs.API.readdir(this.fs.realPath(this.node(e)))}symlink(e,t,i){throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EPERM)}readlink(e){throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EPERM)}},Me=class{constructor(e,t,i,a){this._driveName=e,this._mountpoint=t,this.FS=i,this.ERRNO_CODES=a}lookup(e){return this.request({method:"lookup",path:this.normalizePath(e)})}getmode(e){return this.request({method:"getmode",path:this.normalizePath(e)})}mknod(e,t){return this.request({method:"mknod",path:this.normalizePath(e),data:{mode:t}})}rename(e,t){return this.request({method:"rename",path:this.normalizePath(e),data:{newPath:this.normalizePath(t)}})}readdir(e){let t=this.request({method:"readdir",path:this.normalizePath(e)});return t.push("."),t.push(".."),t}rmdir(e){return this.request({method:"rmdir",path:this.normalizePath(e)})}get(e){let t=this.request({method:"get",path:this.normalizePath(e)});if(!t)throw new this.FS.ErrnoError(this.ERRNO_CODES.ENOENT);let i=t.content,a=t.format;switch(a){case"json":case"text":return{data:Ji.encode(i),format:a};case"base64":{let o=atob(i),s=o.length,r=new Uint8Array(s);for(let c=0;c<s;c++)r[c]=o.charCodeAt(c);return{data:r,format:a}}default:throw new this.FS.ErrnoError(this.ERRNO_CODES.ENOENT)}}put(e,t){switch(t.format){case"json":case"text":return this.request({method:"put",path:this.normalizePath(e),data:{format:t.format,data:Vi.decode(t.data)}});case"base64":{let i="";for(let a=0;a<t.data.byteLength;a++)i+=String.fromCharCode(t.data[a]);return this.request({method:"put",path:this.normalizePath(e),data:{format:t.format,data:btoa(i)}})}}}getattr(e){let t=this.request({method:"getattr",path:this.normalizePath(e)});return t.atime&&(t.atime=new Date(t.atime)),t.mtime&&(t.mtime=new Date(t.mtime)),t.ctime&&(t.ctime=new Date(t.ctime)),t.size=t.size||0,t}normalizePath(e){return e.startsWith(this._mountpoint)&&(e=e.slice(this._mountpoint.length)),this._driveName&&(e=`${this._driveName}${oi}${e}`),e}},Ae=class extends Me{constructor(e,t,i,a,o){super(t,i,a,o),this._baseUrl=e}request(e){let t=new XMLHttpRequest;t.open("POST",encodeURI(this.endpoint),!1);try{t.send(JSON.stringify(e))}catch(i){console.error(i)}if(t.status>=400)throw new this.FS.ErrnoError(this.ERRNO_CODES.EINVAL);return JSON.parse(t.responseText)}get endpoint(){return`${this._baseUrl}api/drive`}},Ye=class{constructor(e){this.FS=e.FS,this.PATH=e.PATH,this.ERRNO_CODES=e.ERRNO_CODES,this.API=this.createAPI(e),this.driveName=e.driveName,this.node_ops=new De(this),this.stream_ops=new Ie(this)}createAPI(e){return new Ae(e.baseUrl,e.driveName,e.mountpoint,e.FS,e.ERRNO_CODES)}mount(e){return this.createNode(null,e.mountpoint,16895,0)}createNode(e,t,i,a){let o=this.FS;if(!o.isDir(i)&&!o.isFile(i))throw new o.ErrnoError(this.ERRNO_CODES.EINVAL);let s=o.createNode(e,t,i,a);return s.node_ops=this.node_ops,s.stream_ops=this.stream_ops,s}getMode(e){return this.API.getmode(e)}realPath(e){let t=[],i=e;for(t.push(i.name);i.parent!==i;)i=i.parent,t.push(i.name);return t.reverse(),this.PATH.join.apply(null,t)}}});var Xe,ve,Qe=re(()=>{Xe=le(ue());Ue();ve=class{constructor(e){this.contentsManager=e.contentsManager}async processDriveRequest(e){switch(e.method){case"readdir":return this.readdir(e);case"rmdir":return this.rmdir(e);case"rename":return this.rename(e);case"getmode":return this.getmode(e);case"lookup":return this.lookup(e);case"mknod":return this.mknod(e);case"getattr":return this.getattr(e);case"get":return this.get(e);case"put":return this.put(e)}throw`Drive request ${e.method} does not exist.`}async readdir(e){let t=await this.contentsManager.get(e.path,{content:!0}),i=[];return t.type==="directory"&&t.content&&(i=t.content.map(a=>a.name)),i}async rmdir(e){await this.contentsManager.delete(e.path)}async rename(e){await this.contentsManager.rename(e.path,e.data.newPath)}async getmode(e){let t=await this.contentsManager.get(e.path),i;return t.type==="directory"?i=16895:i=33206,i}async lookup(e){let t;try{t={ok:!0,mode:(await this.contentsManager.get(e.path)).type==="directory"?16895:33206}}catch{t={ok:!1}}return t}async mknod(e){let t=await this.contentsManager.newUntitled({path:Xe.PathExt.dirname(e.path),type:e.data.mode===16895?"directory":"file",ext:Xe.PathExt.extname(e.path)});await this.contentsManager.rename(t.path,e.path)}async getattr(e){let t=await this.contentsManager.get(e.path),i=new Date(0).toISOString();return{dev:1,nlink:1,uid:0,gid:0,rdev:0,size:t.size||0,blksize:Te,blocks:Math.ceil(t.size||0/Te),atime:t.last_modified||i,mtime:t.last_modified||i,ctime:t.created||i,timestamp:0}}async get(e){let t=await this.contentsManager.get(e.path,{content:!0}),i;return t.type!=="directory"&&(i={content:t.format==="json"?JSON.stringify(t.content):t.content,format:t.format}),i}async put(e){await this.contentsManager.save(e.path,{content:e.data.format==="json"?JSON.parse(e.data.data):e.data.data,type:"file",format:e.data.format})}}});var et,si=re(()=>{Ue();Qe();et=class{constructor(e){this.isDisposed=!1,this._onMessage=async t=>{if(!this._channel)return;let i=t.data;if((i==null?void 0:i.receiver)!=="broadcast.ts")return;let o=await this._driveContentsProcessor.processDriveRequest(i);this._channel.postMessage(o)},this._channel=null,this._enabled=!1,this._contents=e.contents,this._driveContentsProcessor=new ve({contentsManager:this._contents})}get enabled(){return this._enabled}enable(){if(this._channel){console.warn("BroadcastChannel already created and enabled");return}this._channel=new BroadcastChannel(Ge),this._channel.addEventListener("message",this._onMessage),this._enabled=!0}disable(){this._channel&&(this._channel.removeEventListener("message",this._onMessage),this._channel=null),this._enabled=!1}dispose(){this.isDisposed||(this.disable(),this.isDisposed=!0)}}});var ri={};_i(ri,{BLOCK_SIZE:()=>Te,BroadcastChannelWrapper:()=>et,Contents:()=>Je,ContentsAPI:()=>Me,DIR_MODE:()=>he,DRIVE_API_PATH:()=>Ge,DRIVE_SEPARATOR:()=>oi,DriveContentsProcessor:()=>ve,DriveFS:()=>Ye,DriveFSEmscriptenNodeOps:()=>De,DriveFSEmscriptenStreamOps:()=>Ie,FILE:()=>ae,FILE_MODE:()=>ti,IBroadcastChannelWrapper:()=>Ki,IContents:()=>Wi,MIME:()=>Z,SEEK_CUR:()=>ii,SEEK_END:()=>ni,ServiceWorkerContentsAPI:()=>Ae,instanceOfStream:()=>Ve});var li=re(()=>{ei();Ue();Ke();si();Ze();Qe()});var ci=class{constructor(){this._options=null;this._initializer=null;this._pyodide=null;this._localPath="";this._driveName="";this._driveFS=null;this._initialized=new Promise((e,t)=>{this._initializer={resolve:e,reject:t}})}async initialize(e){var t;if(this._options=e,e.location.includes(":")){let i=e.location.split(":");this._driveName=i[0],this._localPath=i[1]}else this._driveName="",this._localPath=e.location;await this.initRuntime(e),await this.initFilesystem(e),await this.initPackageManager(e),await this.initKernel(e),await this.initGlobals(e),(t=this._initializer)==null||t.resolve()}async initRuntime(e){let{pyodideUrl:t,indexUrl:i}=e,a;t.endsWith(".mjs")?a=(await import(t)).loadPyodide:(importScripts(t),a=self.loadPyodide),this._pyodide=await a({indexURL:i,...e.loadPyodideOptions})}async initPackageManager(e){if(!this._options)throw new Error("Uninitialized");let{pipliteWheelUrl:t,disablePyPIFallback:i,pipliteUrls:a,loadPyodideOptions:o}=this._options,s=(o||{}).packages||[];s.includes("micropip")||await this._pyodide.loadPackage(["micropip"]),s.includes("piplite")||await this._pyodide.runPythonAsync(`
|
|
1
|
+
// Copyright (c) Jupyter Development Team.
|
|
2
|
+
// Distributed under the terms of the Modified BSD License.
|
|
3
|
+
export class PyodideRemoteKernel {
|
|
4
|
+
constructor() {
|
|
5
|
+
/**
|
|
6
|
+
* Initialization options.
|
|
7
|
+
*/
|
|
8
|
+
this._options = null;
|
|
9
|
+
this._initializer = null;
|
|
10
|
+
this._pyodide = null;
|
|
11
|
+
/** TODO: real typing */
|
|
12
|
+
this._localPath = '';
|
|
13
|
+
this._driveName = '';
|
|
14
|
+
this._driveFS = null;
|
|
15
|
+
this._initialized = new Promise((resolve, reject) => {
|
|
16
|
+
this._initializer = { resolve, reject };
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Accept the URLs from the host
|
|
21
|
+
**/
|
|
22
|
+
async initialize(options) {
|
|
23
|
+
var _a;
|
|
24
|
+
this._options = options;
|
|
25
|
+
if (options.location.includes(':')) {
|
|
26
|
+
const parts = options.location.split(':');
|
|
27
|
+
this._driveName = parts[0];
|
|
28
|
+
this._localPath = parts[1];
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this._driveName = '';
|
|
32
|
+
this._localPath = options.location;
|
|
33
|
+
}
|
|
34
|
+
await this.initRuntime(options);
|
|
35
|
+
await this.initFilesystem(options);
|
|
36
|
+
await this.initPackageManager(options);
|
|
37
|
+
await this.initKernel(options);
|
|
38
|
+
await this.initGlobals(options);
|
|
39
|
+
(_a = this._initializer) === null || _a === void 0 ? void 0 : _a.resolve();
|
|
40
|
+
}
|
|
41
|
+
async initRuntime(options) {
|
|
42
|
+
const { pyodideUrl, indexUrl } = options;
|
|
43
|
+
let loadPyodide;
|
|
44
|
+
if (pyodideUrl.endsWith('.mjs')) {
|
|
45
|
+
// note: this does not work at all in firefox
|
|
46
|
+
const pyodideModule = await import(
|
|
47
|
+
/* webpackIgnore: true */ pyodideUrl);
|
|
48
|
+
loadPyodide = pyodideModule.loadPyodide;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
importScripts(pyodideUrl);
|
|
52
|
+
loadPyodide = self.loadPyodide;
|
|
53
|
+
}
|
|
54
|
+
this._pyodide = await loadPyodide({
|
|
55
|
+
indexURL: indexUrl,
|
|
56
|
+
...options.loadPyodideOptions,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async initPackageManager(options) {
|
|
60
|
+
if (!this._options) {
|
|
61
|
+
throw new Error('Uninitialized');
|
|
62
|
+
}
|
|
63
|
+
const { pipliteWheelUrl, disablePyPIFallback, pipliteUrls, loadPyodideOptions } = this._options;
|
|
64
|
+
const preloaded = (loadPyodideOptions || {}).packages || [];
|
|
65
|
+
if (!preloaded.includes('micropip')) {
|
|
66
|
+
await this._pyodide.loadPackage(['micropip']);
|
|
67
|
+
}
|
|
68
|
+
if (!preloaded.includes('piplite')) {
|
|
69
|
+
await this._pyodide.runPythonAsync(`
|
|
5
70
|
import micropip
|
|
6
|
-
await micropip.install('${
|
|
7
|
-
`)
|
|
71
|
+
await micropip.install('${pipliteWheelUrl}', keep_going=True)
|
|
72
|
+
`);
|
|
73
|
+
}
|
|
74
|
+
// get piplite early enough to impact pyodide-kernel dependencies
|
|
75
|
+
await this._pyodide.runPythonAsync(`
|
|
8
76
|
import piplite.piplite
|
|
9
|
-
piplite.piplite._PIPLITE_DISABLE_PYPI = ${
|
|
10
|
-
piplite.piplite._PIPLITE_URLS = ${JSON.stringify(
|
|
11
|
-
`)
|
|
12
|
-
|
|
13
|
-
|
|
77
|
+
piplite.piplite._PIPLITE_DISABLE_PYPI = ${disablePyPIFallback ? 'True' : 'False'}
|
|
78
|
+
piplite.piplite._PIPLITE_URLS = ${JSON.stringify(pipliteUrls)}
|
|
79
|
+
`);
|
|
80
|
+
}
|
|
81
|
+
async initKernel(options) {
|
|
82
|
+
const preloaded = (options.loadPyodideOptions || {}).packages || [];
|
|
83
|
+
const toLoad = ['ssl', 'sqlite3', 'ipykernel', 'comm', 'pyodide_kernel', 'ipython'];
|
|
84
|
+
const scriptLines = [];
|
|
85
|
+
// use piplite for packages that weren't pre-loaded
|
|
86
|
+
for (const pkgName of toLoad) {
|
|
87
|
+
if (!preloaded.includes(pkgName)) {
|
|
88
|
+
scriptLines.push(`await piplite.install('${pkgName}', keep_going=True)`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// import the kernel
|
|
92
|
+
scriptLines.push('import pyodide_kernel');
|
|
93
|
+
// cd to the kernel location
|
|
94
|
+
if (options.mountDrive && this._localPath) {
|
|
95
|
+
scriptLines.push('import os', `os.chdir("${this._localPath}")`);
|
|
96
|
+
}
|
|
97
|
+
// from this point forward, only use piplite (but not %pip)
|
|
98
|
+
await this._pyodide.runPythonAsync(scriptLines.join('\n'));
|
|
99
|
+
}
|
|
100
|
+
async initGlobals(options) {
|
|
101
|
+
const { globals } = this._pyodide;
|
|
102
|
+
this._kernel = globals.get('pyodide_kernel').kernel_instance.copy();
|
|
103
|
+
this._stdout_stream = globals.get('pyodide_kernel').stdout_stream.copy();
|
|
104
|
+
this._stderr_stream = globals.get('pyodide_kernel').stderr_stream.copy();
|
|
105
|
+
this._interpreter = this._kernel.interpreter.copy();
|
|
106
|
+
this._interpreter.send_comm = this.sendComm.bind(this);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Setup custom Emscripten FileSystem
|
|
110
|
+
*/
|
|
111
|
+
async initFilesystem(options) {
|
|
112
|
+
if (options.mountDrive) {
|
|
113
|
+
const mountpoint = '/drive';
|
|
114
|
+
const { FS, PATH, ERRNO_CODES } = this._pyodide;
|
|
115
|
+
const { baseUrl } = options;
|
|
116
|
+
const { DriveFS } = await import('@jupyterlite/contents');
|
|
117
|
+
const driveFS = new DriveFS({
|
|
118
|
+
FS,
|
|
119
|
+
PATH,
|
|
120
|
+
ERRNO_CODES,
|
|
121
|
+
baseUrl,
|
|
122
|
+
driveName: this._driveName,
|
|
123
|
+
mountpoint,
|
|
124
|
+
});
|
|
125
|
+
FS.mkdir(mountpoint);
|
|
126
|
+
FS.mount(driveFS, {}, mountpoint);
|
|
127
|
+
FS.chdir(mountpoint);
|
|
128
|
+
this._driveFS = driveFS;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Recursively convert a Map to a JavaScript object
|
|
133
|
+
* @param obj A Map, Array, or other object to convert
|
|
134
|
+
*/
|
|
135
|
+
mapToObject(obj) {
|
|
136
|
+
const out = obj instanceof Array ? [] : {};
|
|
137
|
+
obj.forEach((value, key) => {
|
|
138
|
+
out[key] =
|
|
139
|
+
value instanceof Map || value instanceof Array
|
|
140
|
+
? this.mapToObject(value)
|
|
141
|
+
: value;
|
|
142
|
+
});
|
|
143
|
+
return out;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Format the response from the Pyodide evaluation.
|
|
147
|
+
*
|
|
148
|
+
* @param res The result object from the Pyodide evaluation
|
|
149
|
+
*/
|
|
150
|
+
formatResult(res) {
|
|
151
|
+
if (!(res instanceof this._pyodide.ffi.PyProxy)) {
|
|
152
|
+
return res;
|
|
153
|
+
}
|
|
154
|
+
// TODO: this is a bit brittle
|
|
155
|
+
const m = res.toJs();
|
|
156
|
+
const results = this.mapToObject(m);
|
|
157
|
+
return results;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Makes sure pyodide is ready before continuing, and cache the parent message.
|
|
161
|
+
*/
|
|
162
|
+
async setup(parent) {
|
|
163
|
+
await this._initialized;
|
|
164
|
+
this._kernel._parent_header = this._pyodide.toPy(parent);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Execute code with the interpreter.
|
|
168
|
+
*
|
|
169
|
+
* @param content The incoming message with the code to execute.
|
|
170
|
+
*/
|
|
171
|
+
async execute(content, parent) {
|
|
172
|
+
await this.setup(parent);
|
|
173
|
+
const publishExecutionResult = (prompt_count, data, metadata) => {
|
|
174
|
+
const bundle = {
|
|
175
|
+
execution_count: prompt_count,
|
|
176
|
+
data: this.formatResult(data),
|
|
177
|
+
metadata: this.formatResult(metadata),
|
|
178
|
+
};
|
|
179
|
+
postMessage({
|
|
180
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
181
|
+
bundle,
|
|
182
|
+
type: 'execute_result',
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
const publishExecutionError = (ename, evalue, traceback) => {
|
|
186
|
+
const bundle = {
|
|
187
|
+
ename: ename,
|
|
188
|
+
evalue: evalue,
|
|
189
|
+
traceback: traceback,
|
|
190
|
+
};
|
|
191
|
+
postMessage({
|
|
192
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
193
|
+
bundle,
|
|
194
|
+
type: 'execute_error',
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
const clearOutputCallback = (wait) => {
|
|
198
|
+
const bundle = {
|
|
199
|
+
wait: this.formatResult(wait),
|
|
200
|
+
};
|
|
201
|
+
postMessage({
|
|
202
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
203
|
+
bundle,
|
|
204
|
+
type: 'clear_output',
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
const displayDataCallback = (data, metadata, transient) => {
|
|
208
|
+
const bundle = {
|
|
209
|
+
data: this.formatResult(data),
|
|
210
|
+
metadata: this.formatResult(metadata),
|
|
211
|
+
transient: this.formatResult(transient),
|
|
212
|
+
};
|
|
213
|
+
postMessage({
|
|
214
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
215
|
+
bundle,
|
|
216
|
+
type: 'display_data',
|
|
217
|
+
});
|
|
218
|
+
};
|
|
219
|
+
const updateDisplayDataCallback = (data, metadata, transient) => {
|
|
220
|
+
const bundle = {
|
|
221
|
+
data: this.formatResult(data),
|
|
222
|
+
metadata: this.formatResult(metadata),
|
|
223
|
+
transient: this.formatResult(transient),
|
|
224
|
+
};
|
|
225
|
+
postMessage({
|
|
226
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
227
|
+
bundle,
|
|
228
|
+
type: 'update_display_data',
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
const publishStreamCallback = (name, text) => {
|
|
232
|
+
const bundle = {
|
|
233
|
+
name: this.formatResult(name),
|
|
234
|
+
text: this.formatResult(text),
|
|
235
|
+
};
|
|
236
|
+
postMessage({
|
|
237
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
238
|
+
bundle,
|
|
239
|
+
type: 'stream',
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
this._stdout_stream.publish_stream_callback = publishStreamCallback;
|
|
243
|
+
this._stderr_stream.publish_stream_callback = publishStreamCallback;
|
|
244
|
+
this._interpreter.display_pub.clear_output_callback = clearOutputCallback;
|
|
245
|
+
this._interpreter.display_pub.display_data_callback = displayDataCallback;
|
|
246
|
+
this._interpreter.display_pub.update_display_data_callback =
|
|
247
|
+
updateDisplayDataCallback;
|
|
248
|
+
this._interpreter.displayhook.publish_execution_result = publishExecutionResult;
|
|
249
|
+
this._interpreter.input = this.input.bind(this);
|
|
250
|
+
this._interpreter.getpass = this.getpass.bind(this);
|
|
251
|
+
const res = await this._kernel.run(content.code);
|
|
252
|
+
const results = this.formatResult(res);
|
|
253
|
+
if (results['status'] === 'error') {
|
|
254
|
+
publishExecutionError(results['ename'], results['evalue'], results['traceback']);
|
|
255
|
+
}
|
|
256
|
+
return results;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Complete the code submitted by a user.
|
|
260
|
+
*
|
|
261
|
+
* @param content The incoming message with the code to complete.
|
|
262
|
+
*/
|
|
263
|
+
async complete(content, parent) {
|
|
264
|
+
await this.setup(parent);
|
|
265
|
+
const res = this._kernel.complete(content.code, content.cursor_pos);
|
|
266
|
+
const results = this.formatResult(res);
|
|
267
|
+
return results;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Inspect the code submitted by a user.
|
|
271
|
+
*
|
|
272
|
+
* @param content The incoming message with the code to inspect.
|
|
273
|
+
*/
|
|
274
|
+
async inspect(content, parent) {
|
|
275
|
+
await this.setup(parent);
|
|
276
|
+
const res = this._kernel.inspect(content.code, content.cursor_pos, content.detail_level);
|
|
277
|
+
const results = this.formatResult(res);
|
|
278
|
+
return results;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Check code for completeness submitted by a user.
|
|
282
|
+
*
|
|
283
|
+
* @param content The incoming message with the code to check.
|
|
284
|
+
*/
|
|
285
|
+
async isComplete(content, parent) {
|
|
286
|
+
await this.setup(parent);
|
|
287
|
+
const res = this._kernel.is_complete(content.code);
|
|
288
|
+
const results = this.formatResult(res);
|
|
289
|
+
return results;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Respond to the commInfoRequest.
|
|
293
|
+
*
|
|
294
|
+
* @param content The incoming message with the comm target name.
|
|
295
|
+
*/
|
|
296
|
+
async commInfo(content, parent) {
|
|
297
|
+
await this.setup(parent);
|
|
298
|
+
const res = this._kernel.comm_info(content.target_name);
|
|
299
|
+
const results = this.formatResult(res);
|
|
300
|
+
return {
|
|
301
|
+
comms: results,
|
|
302
|
+
status: 'ok',
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Respond to the commOpen.
|
|
307
|
+
*
|
|
308
|
+
* @param content The incoming message with the comm open.
|
|
309
|
+
*/
|
|
310
|
+
async commOpen(content, parent) {
|
|
311
|
+
await this.setup(parent);
|
|
312
|
+
const res = this._kernel.comm_manager.comm_open(this._pyodide.toPy(null), this._pyodide.toPy(null), this._pyodide.toPy(content));
|
|
313
|
+
const results = this.formatResult(res);
|
|
314
|
+
return results;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Respond to the commMsg.
|
|
318
|
+
*
|
|
319
|
+
* @param content The incoming message with the comm msg.
|
|
320
|
+
*/
|
|
321
|
+
async commMsg(content, parent) {
|
|
322
|
+
await this.setup(parent);
|
|
323
|
+
const res = this._kernel.comm_manager.comm_msg(this._pyodide.toPy(null), this._pyodide.toPy(null), this._pyodide.toPy(content));
|
|
324
|
+
const results = this.formatResult(res);
|
|
325
|
+
return results;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Respond to the commClose.
|
|
329
|
+
*
|
|
330
|
+
* @param content The incoming message with the comm close.
|
|
331
|
+
*/
|
|
332
|
+
async commClose(content, parent) {
|
|
333
|
+
await this.setup(parent);
|
|
334
|
+
const res = this._kernel.comm_manager.comm_close(this._pyodide.toPy(null), this._pyodide.toPy(null), this._pyodide.toPy(content));
|
|
335
|
+
const results = this.formatResult(res);
|
|
336
|
+
return results;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Resolve the input request by getting back the reply from the main thread
|
|
340
|
+
*
|
|
341
|
+
* @param content The incoming message with the reply
|
|
342
|
+
*/
|
|
343
|
+
async inputReply(content, parent) {
|
|
344
|
+
await this.setup(parent);
|
|
345
|
+
this._resolveInputReply(content);
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Send a input request to the front-end.
|
|
349
|
+
*
|
|
350
|
+
* @param prompt the text to show at the prompt
|
|
351
|
+
* @param password Is the request for a password?
|
|
352
|
+
*/
|
|
353
|
+
async sendInputRequest(prompt, password) {
|
|
354
|
+
const content = {
|
|
355
|
+
prompt,
|
|
356
|
+
password,
|
|
357
|
+
};
|
|
358
|
+
postMessage({
|
|
359
|
+
type: 'input_request',
|
|
360
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
361
|
+
content,
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
async getpass(prompt) {
|
|
365
|
+
prompt = typeof prompt === 'undefined' ? '' : prompt;
|
|
366
|
+
await this.sendInputRequest(prompt, true);
|
|
367
|
+
const replyPromise = new Promise((resolve) => {
|
|
368
|
+
this._resolveInputReply = resolve;
|
|
369
|
+
});
|
|
370
|
+
const result = await replyPromise;
|
|
371
|
+
return result['value'];
|
|
372
|
+
}
|
|
373
|
+
async input(prompt) {
|
|
374
|
+
prompt = typeof prompt === 'undefined' ? '' : prompt;
|
|
375
|
+
await this.sendInputRequest(prompt, false);
|
|
376
|
+
const replyPromise = new Promise((resolve) => {
|
|
377
|
+
this._resolveInputReply = resolve;
|
|
378
|
+
});
|
|
379
|
+
const result = await replyPromise;
|
|
380
|
+
return result['value'];
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Send a comm message to the front-end.
|
|
384
|
+
*
|
|
385
|
+
* @param type The type of the comm message.
|
|
386
|
+
* @param content The content.
|
|
387
|
+
* @param metadata The metadata.
|
|
388
|
+
* @param ident The ident.
|
|
389
|
+
* @param buffers The binary buffers.
|
|
390
|
+
*/
|
|
391
|
+
async sendComm(type, content, metadata, ident, buffers) {
|
|
392
|
+
postMessage({
|
|
393
|
+
type: type,
|
|
394
|
+
content: this.formatResult(content),
|
|
395
|
+
metadata: this.formatResult(metadata),
|
|
396
|
+
ident: this.formatResult(ident),
|
|
397
|
+
buffers: this.formatResult(buffers),
|
|
398
|
+
parentHeader: this.formatResult(this._kernel._parent_header)['header'],
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
}
|