mashlib 2.1.4-test.4 → 2.1.4-test.5

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.
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * @author Feross Aboukhadijeh <https://feross.org>
13
13
  * @license MIT
14
- */var r=n(7526),i=n(251),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50;var o=2147483647;function s(e){if(e>o)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return l(e,t,n)}function l(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|m(e,t),r=s(n),i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(z(e,Uint8Array)){var t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(z(e,ArrayBuffer)||e&&z(e.buffer,ArrayBuffer))return f(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(z(e,SharedArrayBuffer)||e&&z(e.buffer,SharedArrayBuffer)))return f(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return c.from(r,t,n);var i=function(e){if(c.isBuffer(e)){var t=0|h(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||H(e.length)?s(0):p(e);if("Buffer"===e.type&&Array.isArray(e.data))return p(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return u(e),s(e<0?0:0|h(e))}function p(e){for(var t=e.length<0?0:0|h(e.length),n=s(t),r=0;r<t;r+=1)n[r]=255&e[r];return n}function f(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');var r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,c.prototype),r}function h(e){if(e>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function m(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||z(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return D(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return M(e).length;default:if(i)return r?-1:D(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return _(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),H(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,i){var a,o=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,c/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(a=n;a<s;a++)if(l(e,a)===l(t,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===c)return u*o}else-1!==u&&(a-=a-u),u=-1}else for(n+c>s&&(n=s-c),a=n;a>=0;a--){for(var d=!0,p=0;p<c;p++)if(l(e,a+p)!==l(t,p)){d=!1;break}if(d)return a}return-1}function w(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var a=t.length;r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(H(s))return o;e[n+o]=s}return o}function x(e,t,n,r){return U(D(t,e.length-n),e,n,r)}function A(e,t,n,r){return U(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function E(e,t,n,r){return U(M(t),e,n,r)}function C(e,t,n,r){return U(function(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function k(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function _(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a,o,s,c,l=e[i],u=null,d=l>239?4:l>223?3:l>191?2:1;if(i+d<=n)switch(d){case 1:l<128&&(u=l);break;case 2:128==(192&(a=e[i+1]))&&(c=(31&l)<<6|63&a)>127&&(u=c);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(c=(15&l)<<12|(63&a)<<6|63&o)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return function(e){var t=e.length;if(t<=S)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=S));return n}(r)}t.kMaxLength=o,c.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),!c.TYPED_ARRAY_SUPPORT&&"undefined"!=typeof console&&console.error,Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}}),c.poolSize=8192,c.from=function(e,t,n){return l(e,t,n)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array),c.alloc=function(e,t,n){return function(e,t,n){return u(e),e<=0?s(e):void 0!==t?"string"==typeof n?s(e).fill(t,n):s(e).fill(t):s(e)}(e,t,n)},c.allocUnsafe=function(e){return d(e)},c.allocUnsafeSlow=function(e){return d(e)},c.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==c.prototype},c.compare=function(e,t){if(z(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),z(t,Uint8Array)&&(t=c.from(t,t.offset,t.byteLength)),!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var a=e[n];if(z(a,Uint8Array))i+a.length>r.length?c.from(a).copy(r,i):Uint8Array.prototype.set.call(r,a,i);else{if(!c.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i)}i+=a.length}return r},c.byteLength=m,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},c.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?_(this,0,e):g.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},a&&(c.prototype[a]=c.prototype.inspect),c.prototype.compare=function(e,t,n,r,i){if(z(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),l=this.slice(r,i),u=e.slice(t,n),d=0;d<s;++d)if(l[d]!==u[d]){a=l[d],o=u[d];break}return a<o?-1:o<a?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return b(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return b(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return x(this,e,t,n);case"ascii":case"latin1":case"binary":return A(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var S=4096;function T(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function F(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=q[e[a]];return i}function R(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length-1;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function I(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,i,a){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function B(e,t,n,r,a){return t=+t,n>>>=0,a||L(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function O(e,t,n,r,a){return t=+t,n>>>=0,a||L(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);var r=this.subarray(e,t);return Object.setPrototypeOf(r,c.prototype),r},c.prototype.readUintLE=c.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},c.prototype.readUintBE=c.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},c.prototype.readInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){e>>>=0,t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return e>>>=0,t||I(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||I(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||I(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||I(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t>>>=0,n>>>=0,r)||N(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t>>>=0,n>>>=0,r)||N(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a<n&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeFloatLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return O(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return O(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i=r-n;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),i},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){var i=e.charCodeAt(0);("utf8"===r&&i<128||"latin1"===r)&&(e=i)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=c.isBuffer(e)?e:c.from(e,r),s=o.length;if(0===s)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(a=0;a<n-t;++a)this[a+t]=o[a%s]}return this};var j=/[^+/0-9A-Za-z-_]/g;function D(e,t){var n;t=t||1/0;for(var r=e.length,i=null,a=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function M(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(j,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function U(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function H(e){return e!=e}var q=function(){for(var e="0123456789abcdef",t=new Array(256),n=0;n<16;++n)for(var r=16*n,i=0;i<16;++i)t[r+i]=e[n]+e[i];return t}()},701(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findChat=s,t.getChat=async function(e,t=!0){const{me:n,chatContainer:c,exists:l}=await s(e);if(l)return new a.NamedNode(c.value+o.longChatPane.CHAT_LOCATION_IN_CONTAINER);if(t){const t=await async function(e,t){const n=await o.longChatPane.mintNew({session:{store:i.store}},{me:t,newBase:e.value});return n.newInstance}(c,n);return await async function(e,t){await i.store.fetcher.load(e.doc());const n=i.store.any(e,r.ns.ldp("inbox"),void 0,e.doc());if(!n)throw new Error(`Invitee inbox not found! ${e.value}`);const a=`\n<> a <http://www.w3.org/ns/pim/meeting#LongChatInvite> ;\n${r.ns.rdf("seeAlso")} <${t.value}> . \n `,o=await i.store.fetcher.webOperation("POST",n.value,{data:a,contentType:"text/turtle"});if(!o.headers.get("location"))throw new Error(`Invite sending returned a ${o.status}`)}(e,t),await async function(e,t,n){await i.store.fetcher.load(e);const r=i.store.any(e,new a.NamedNode("http://www.iana.org/assignments/link-relations/acl"));if(!r)throw new Error("Chat ACL doc not found!");const o=`\n@prefix acl: <http://www.w3.org/ns/auth/acl#>.\n<#owner>\n a acl:Authorization;\n acl:agent <${t.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Write, acl:Control.\n<#invitee>\n a acl:Authorization;\n acl:agent <${n.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Append.\n`;await i.store.fetcher.webOperation("PUT",r.value,{data:o,contentType:"text/turtle"})}(c,n,e),await async function(e,t){const n=i.store.any(t,r.ns.solid("privateTypeIndex"));if(!n)throw new Error("Private type index not found!");await i.store.fetcher.load(n);const o=r.widgets.newThing(n),s=[(0,a.st)(o,r.ns.rdf("type"),r.ns.solid("TypeRegistration"),n.doc()),(0,a.st)(o,r.ns.solid("forClass"),r.ns.meeting("LongChat"),n.doc()),(0,a.st)(o,r.ns.solid("instance"),e,n.doc())];await new Promise((e,t)=>{i.store.updater.update([],s,function(n,r,i){r?e():t(new Error(i))})})}(t,n),t}throw new Error("Chat does not exist and createIfMissing is false")};var r=n(500),i=n(9332),a=n(8230),o=n(8055);async function s(e){const t=await async function(){const e=i.authn.currentUser();if(null===e)throw new Error("Current user not found! Not logged in?");return await i.store.fetcher.load(e.doc()),e}(),n=await async function(e){const t=i.store.any(e,r.ns.space("storage"),void 0,e.doc());if(!t)throw new Error("Current user pod root not found!");return t}(t),s=function(e,t){const n=new URL(`IndividualChats/${new URL(e.value).host}/`,t.value).toString();return new a.NamedNode(n)}(e,n);let c=!0;try{await i.store.fetcher.load(new a.NamedNode(s.value+o.longChatPane.CHAT_LOCATION_IN_CONTAINER))}catch(e){c=!1}return{me:t,chatContainer:s,exists:c}}},8055(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.longChatPane=void 0;var r=n(9332),i=o(n(500)),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=i.ns,c=s.meeting("LongChat"),l="index.ttl#this",u=i.style.sidebarComponentStyle||" padding: 0.5em; width: 100%;",d=i.style.sidebarStyle||"overflow-x: auto; overflow-y: auto; border-radius: 1em; border: 0.1em solid white;";t.longChatPane={CHAT_LOCATION_IN_CONTAINER:l,icon:i.icons.iconBase+"noun_1689339.svg",name:"long chat",label:function(e,t){const n=t.session.store;return n.holds(e,s.rdf("type"),s.meeting("LongChat"))?"Chat channnel":n.holds(e,s.rdf("type"),s.sioc("Thread"))?"Thread":n.any(e,s.sioc("content"))&&n.any(e,s.dct("created"))?"message":null},mintClass:c,mintNew:function(e,t){const n=e.session.store,r=n.updater;if(t.me&&!t.me.uri)throw new Error("chat mintNew: Invalid userid "+t.me);const i=t.newInstance=t.newInstance||n.sym(t.newBase+l),a=i.doc();n.add(i,s.rdf("type"),s.meeting("LongChat"),a),n.add(i,s.dc("title"),"Chat channel",a),n.add(i,s.dc("created"),new Date,a),t.me&&n.add(i,s.dc("author"),t.me,a);const o=(e,t,n)=>`\n @prefix : <#>.\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n @prefix foaf: <http://xmlns.com/foaf/0.1/>.\n @prefix lon: <./${t}>.\n\n :ControlReadWrite\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agent <${e.uri}>;\n acl:default lon:;\n acl:mode acl:Control, acl:Read, acl:Write.\n :Read\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass foaf:Agent;\n acl:default lon:;\n acl:mode acl:Read.\n :Read${n}\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass acl:AuthenticatedAgent;\n acl:default lon:;\n acl:mode acl:Read, acl:${n}.`;return new Promise(function(e,i){r.put(a,n.statementsMatching(void 0,void 0,void 0,a),"text/turtle",function(n,r,a){r?e(t):i(new Error("FAILED to save new chat channel at: "+n+" : "+a))}).then(e=>new Promise((e,r)=>{t.me&&(n.fetcher.webOperation("PUT",t.newBase+".acl",{data:o(t.me,"","Append"),contentType:"text/turtle"}),n.fetcher.webOperation("PUT",t.newBase+"index.ttl.acl",{data:o(t.me,"index.ttl","Write"),contentType:"text/turtle"})),e(t)}))})},render:function(e,t,n){const o=t.dom,l=t.session.store,p=l.sym("https://solid.github.io/solid-panes/longCharPane/preferencesForm.ttl#this"),f=p.doc();l.holds(void 0,void 0,void 0,f)||a.parse('\n @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n @prefix solid: <http://www.w3.org/ns/solid/terms#>.\n @prefix ui: <http://www.w3.org/ns/ui#>.\n @prefix : <#>.\n\n :this\n <http://purl.org/dc/elements/1.1/title> "Chat preferences" ;\n a ui:Form ;\n ui:parts ( :colorizeByAuthor :expandImagesInline :newestFirst :inlineImageHeightEms\n :shiftEnterSendsMessage :authorDateOnLeft :showDeletedMessages).\n\n :colorizeByAuthor a ui:TristateField; ui:property solid:colorizeByAuthor;\n ui:label "Color user input by user".\n\n :expandImagesInline a ui:TristateField; ui:property solid:expandImagesInline;\n ui:label "Expand image URLs inline".\n\n :newestFirst a ui:TristateField; ui:property solid:newestFirst;\n ui:label "Newest messages at the top".\n\n :inlineImageHeightEms a ui:IntegerField; ui:property solid:inlineImageHeightEms;\n ui:label "Inline image height (lines)".\n\n :shiftEnterSendsMessage a ui:TristateField; ui:property solid:shiftEnterSendsMessage;\n ui:label "Shift-Enter sends message".\n\n :authorDateOnLeft a ui:TristateField; ui:property solid:authorDateOnLeft;\n ui:label "Author & date of message on left".\n\n :showDeletedMessages a ui:TristateField; ui:property solid:showDeletedMessages;\n ui:label "Show placeholders for deleted messages".\n',l,f.uri,"text/turtle");const h=l.statementsMatching(null,s.ui.property,null,f).map(e=>e.object);function m(e){const n=i.widgets.button(t.dom,i.icons.iconBase+"noun_1180156.svg","close",function(){e.parentNode.removeChild(e)});return n.style.float="right",n.style.margin="0.7em",delete n.style.backgroundColor,n}function g(e,n){const a=o.createElement("div"),s=r.authn.currentUser(),c={div:a,dom:o,noun:n,statusArea:a,me:s,refreshTarget:e},l=[t.session.paneRegistry.byName("chat")];return i.create.newThingUI(c,t,l),a}let v,b=null;let y=e,w=null,x=null;if(l.holds(e,s.rdf("type"),s.meeting("LongChat")));else if(l.holds(e,s.rdf("type"),s.sioc("Thread"))){x=e;const t=l.the(null,s.sioc("has_reply"),x,x.doc());if(!t)throw new Error("Thread has no root message "+x);if(y=l.any(null,s.wf("message"),t),!y)throw new Error("Thread root has no link to chatChannel")}else if(l.any(e,s.sioc("content"))&&l.any(e,s.dct("created"))&&(w=e,y=l.any(null,s.wf("message"),w),!y))throw new Error("Message has no link to chatChannel");const A=o.createElement("div"),E="20cm",C=A.appendChild(o.createElement("table"));C.style.maxHeight='12"';const k=C.appendChild(o.createElement("tr")),_=k.appendChild(o.createElement("td")),S=k.appendChild(o.createElement("td")),T=k.appendChild(o.createElement("td")),P=k.appendChild(o.createElement("td")),F=C.appendChild(o.createElement("tr"));_.style=d,_.style.paddingRight="1em",T.style=d,T.style.paddingLeft="1em",P.style=d,P.style.paddingLeft="1em",F.appendChild(o.createElement("td"));const R=F.appendChild(o.createElement("td"));F.appendChild(o.createElement("td"));const I=i.widgets.button(o,i.icons.iconBase+"noun_339237.svg","participants ...");R.appendChild(I),I.addEventListener("click",function(e){if(!v){v=o.createElement("div"),v.style=u,v.style.maxHeight=E,v.appendChild(m(v));const e=r.authn.currentUser();e||alert("Should be logeed in for partipants panel"),i.pad.manageParticipation(o,v,y.doc(),y,e,{})}_.contains(v)?(v.parentNode.removeChild(v),v=null):_.appendChild(v)});const N=i.widgets.button(o,i.icons.iconBase+"noun_1689339.svg","List of other chats ...");R.appendChild(N),N.addEventListener("click",async function(e){b||(b=o.createElement("div"),b.style=u,b.style.maxHeight=E,b.appendChild(m(b)),b.appendChild(await async function(e,t){const n=o.createElement("div"),r={dom:o,div:n,noun:t};return await i.login.registrationList(r,{public:!0,private:!0,type:e}),n.appendChild(g(n,t)),n}(s.meeting("LongChat"),"chat"))),_.contains(b)?b.parentNode.removeChild(b):_.appendChild(b)});let L=null;const B=i.widgets.button(o,i.icons.iconBase+"noun_344563.svg","Setting ...");R.appendChild(B),B.style.float="right",B.addEventListener("click",async function(e){L||(L=await async function(e){const{dom:t,noun:n}=e,a=t.createElement("div");a.appendChild(m(a)),a.style=u,a.style.minWidth="25em",a.style.maxHeight=E;const o=a.appendChild(t.createElement("table")),s=o.appendChild(t.createElement("tr")),d=o.appendChild(t.createElement("tr")),f=r.authn.currentUser();return f&&(await i.login.registrationControl({noun:n,me:f,statusArea:d,dom:t,div:s},y,c),a.appendChild(i.preferences.renderPreferencesForm(y,c,p,{noun:n,me:f,statusArea:d,div:a,dom:t,kb:l}))),a}({dom:o,noun:"chat room"})),P.contains(L)?(L.parentNode.removeChild(L),L=null):P.appendChild(L)}),A.setAttribute("class","chatPane");const O={infinite:!0},j={noun:"chat room",div:A,dom:o};async function D(e,t){const n={};n.thread=e,n.includeRemoveButton=!0,n.authorDateOnLeft=t.authorDateOnLeft,n.newestFirst=t.newestFirst,T.innerHTML="";const r=await i.infiniteMessageArea(o,l,y,n);r.style.resize="both",r.style.overflow="auto",r.style.maxHeight=E,T.appendChild(r)}return j.me=r.authn.currentUser(),async function(){let e;try{e=await i.preferences.getPreferencesForClass(y,c,h,j)}catch(e){i.widgets.complain(j,e)}for(const t in e)O[t.split("#")[1]]=e[t];w&&(O.selectedMessage=w),n.solo&&(O.solo=!0),x?O.thread=x:O.showThread=D;const t=await i.infiniteMessageArea(o,l,y,O);t.style.resize="both",t.style.overflow="auto",t.style.maxHeight=E,S.appendChild(t)}().then(void 0),A}}},7052(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getChat",{enumerable:!0,get:function(){return a.getChat}}),Object.defineProperty(t,"longChatPane",{enumerable:!0,get:function(){return i.longChatPane}}),Object.defineProperty(t,"shortChatPane",{enumerable:!0,get:function(){return r.shortChatPane}});var r=n(6303),i=n(8055),a=n(701)},6303(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shortChatPane=void 0;var r=n(9332),i=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));const a=i.ns;t.shortChatPane={icon:i.icons.iconBase+"noun_346319.svg",name:"chat",audience:[a.solid("PowerUser")],label:function(e,t){const n=t.session.store,r=n.each(e,a.wf("message")).length;return r>0?"Chat ("+r+")":n.holds(e,a.rdf("type"),a.meeting("Chat"))?"Meeting chat":n.holds(void 0,a.rdf("type"),a.foaf("ChatChannel"),e)?"IRC log":null},mintClass:a.meeting("Chat"),mintNew:function(e,t){if(!confirm("short Chat is deprecated in favor of long Chat.\nEmbedded chat for comments and existing short Chats will work.\nYou can report any issues at https://github.com/SolidOS/chat-pane ?\n\nDo you really want to create a new deprecated short Chat?"))return;const n=e.session.store,r=n.updater;if(t.me&&!t.me.uri)throw new Error("chat mintNew: Invalid userid "+t.me);const i=t.newInstance=t.newInstance||n.sym(t.newBase+"index.ttl#this"),o=i.doc();return n.add(i,a.rdf("type"),a.meeting("Chat"),o),n.add(i,a.dc("title"),"Chat",o),n.add(i,a.dc("created"),new Date,o),t.me&&n.add(i,a.dc("author"),t.me,o),new Promise(function(e,i){r.put(o,n.statementsMatching(void 0,void 0,void 0,o),"text/turtle",function(n,r,a){r?e(t):i(new Error("FAILED to save new tool at: "+n+" : "+a))})})},render:function(e,t){const n=t.session.store,o=t.dom,s=o.createElement("div");s.setAttribute("class","chatPane");const c={};let l;if(n.holds(e,a.rdf("type"),a.meeting("Chat")))l=e.doc();else if(n.any(e,i.ns.wf("message")))l=r.store.any(e,i.ns.wf("message")).doc();else if(n.holds(void 0,a.rdf("type"),a.foaf("ChatChannel"),e)||n.holds(e,a.rdf("type"),a.foaf("ChatChannel"))){const t=function(){const e=new $rdf.Query("IRC log entries"),t=[];return["chan","msg","date","list","pred","creator","content"].forEach(function(n){e.vars.push(t[n]=$rdf.variable(n))}),e.pat.add(t.chan,a.foaf("chatEventList"),t.list),e.pat.add(t.list,t.pred,t.msg),e.pat.add(t.msg,a.dc("date"),t.date),e.pat.add(t.msg,a.dc("creator"),t.creator),e.pat.add(t.msg,a.dc("description"),t.content),e};l=e.doc(),c.query=t()}else!function(e,t){const n=o.createElement("pre");n.setAttribute("style","background-color: "+t||0),s.appendChild(n),n.appendChild(o.createTextNode(e))}("Unknown chat type");return s.appendChild(i.messageArea(o,n,e,l,c)),n.updater.addDownstreamChangeListener(l,function(){i.widgets.refreshTree(s)}),s}}},3955(e,t,n){var r;globalThis,r=(e,t,n)=>(()=>{"use strict";var r={903(e,t,n){n.d(t,{A:()=>p});var r=n(354),i=n.n(r),a=n(314),o=n.n(a),s=n(417),c=n.n(s),l=new URL(n(102),n.b),u=o()(i()),d=c()(l);u.push([e.id,`/* Focus indicator for keyboard navigation */\n.contactPane table tr[tabindex="0"]:focus {\n outline: var(--focus-ring-width) solid var(--color-primary);\n outline-offset: 2px;\n background: var(--color-info-bg);\n}\n/* contactsPane styles — extracted from inline styles in contactsPane.js */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Layout: Three-column browser ────────────────────────────── */\n\n.contactPane .peopleSection .selected {\n background-color: var(--color-info-bg) !important;\n}\n\n.contactPane .detailSection {\n flex: 1 1 0; /* allow it to grow but not force wrap */\n min-width: 300px;\n box-sizing: border-box;\n background: var(--color-section-bg);\n}\n\n.contactPane .detailsSectionContent {\n min-height: 200px;\n padding: var(--spacing-lg);\n max-width: 900px;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent--wide {\n max-width: 900px;\n}\n\n.contactPane .cardFooter {\n display: flex;\n flex-wrap: nowrap; /* keep buttons inline */\n align-items: center; /* vertical centering if varied heights */\n gap: var(--spacing-xs);\n padding-top: var(--spacing-md);\n margin-top: var(--spacing-md);\n}\n\n.contactPane .detailsSectionContent {\n margin: 0;\n}\n\n/* ── Contact type chooser ───────────────────────────────────── */\n\n.contactPane .contactTypeChooser {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n max-width: 360px;\n}\n\n.contactPane .contactTypeChooser h3 {\n margin: 0 0 var(--spacing-xs) 0;\n font-size: var(--font-size-lg);\n}\n\n.contactPane .contactTypeSelect {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm);\n font-size: var(--font-size-sm);\n background: var(--color-section-bg);\n}\n\n/* ── Search ──────────────────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n border-radius: var(--border-radius-full) !important;\n /* existing styles */\n}\n/* wrapper to position clear icon/button */\n.contactPane .searchDiv {\n position: relative;\n}\n\n.contactPane .searchInput {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n background-color: var(--color-section-bg);\n background-image: url(${d});\n background-repeat: no-repeat;\n background-position: 8px center;\n background-size: 20px 20px;\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm) 0 34px;\n font-size: var(--font-size-base);\n width: 100%;\n box-sizing: border-box;\n}\n\n/* clear button inside search input */\n.contactPane .searchClearButton {\n position: absolute;\n right: var(--spacing-sm);\n top: 50%;\n transform: translateY(-50%);\n border: none;\n background: transparent;\n font-size: var(--font-size-base);\n line-height: 1;\n padding: 0;\n cursor: pointer;\n color: var(--color-text-muted);\n /* visibility is controlled via the generic \`.hidden\` utility class */\n display: block;\n}\n.contactPane .searchClearButton.hidden {\n display: none;\n}\n.contactPane .searchClearButton:hover {\n color: var(--color-text);\n}\n\n/* ── Contact toolbar (top-right link + delete) ──────────────── */\n\n.contactPane .contact-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-sm);\n padding: var(--spacing-xs) 0;\n}\n\n.contactPane .contact-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n/* ── "All" groups button ─────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n margin-left: var(--spacing-md);\n font-size: var(--font-size-base);\n}\n\n.contactPane .allGroupsButton--loading {\n background-color: var(--color-primary);\n}\n\n.contactPane .allGroupsButton--active {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n.contactPane .allGroupsButton--loaded {\n background-color: var(--color-primary);\n}\n\n/* ── Selection & visibility states ───────────────────────────── */\n\n.contactPane .group-loading {\n}\n\n.contactPane .hidden {\n display: none;\n}\n\n/* ── Mint new address book ───────────────────────────────────── */\n\n.contactPane .claimSuccess {\n font-size: var(--font-size-xl);\n}\n\n.contactPane {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.contactPane .addressBook-grid {\n display: flex;\n flex-wrap: nowrap; /* keep sections side-by-side */\n flex: 1;\n min-width: 50%;\n align-items: stretch;\n width: 100%;\n box-sizing: border-box;\n overflow-x: auto; /* allow horizontal scroll if needed */\n}\n\n.contactPane .addressBookSection {\n flex: 1 1 350px;\n max-width: 485px;\n box-sizing: border-box;\n}\n\n@media ((min-width: 500px) and (max-width: 900px)) {\n .contactPane .addressBookSection {\n max-width: 900px;\n }\n .contactPane .addressBookSection section {\n max-width: 485px;\n }\n}\n\n@media (max-width: 500px) {\n .contactPane .addressBookSection {\n max-width: 485px;\n }\n}\n\n/* Card Section Background */\n.contactPane .section-bg {\n background: var(--color-section-bg);\n padding: var(--spacing-md);\n box-sizing: border-box;\n border: none !important;\n border-radius: 0 !important;\n}\n\n/* Primary Button */\n.contactPane .btn-primary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n background: var(--color-primary);\n color: var(--color-background);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n.contactPane .btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n\n/* Secondary button */\n.contactPane .btn-secondary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: var(--border-width-thin) solid var(--color-secondary);\n border-radius: var(--border-radius-base);\n background: var(--color-secondary);\n color: var(--color-background);\n font-weight: var(--font-weight-bold);\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .btn-secondary:hover {\n background: color-mix(in srgb, var(--color-secondary) 85%, black);\n}\n\n.contactPane .btn-secondary:disabled {\n opacity: var(--opacity-disabled);\n cursor: not-allowed;\n}\n\n/* Action Button Focus - used by ChatWithMe, ProfileCard */\n.contactPane .action-button-focus:focus,\n.contactPane .action-button-focus:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n/* ── Button section: horizontal scrollable row ──────────────── */\n\n.contactPane .buttonSection {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: var(--spacing-sm);\n padding-bottom: 0;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n margin-bottom: 0;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar {\n height: 6px;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-thumb {\n background: var(--color-border-pale);\n border-radius: var(--border-radius-base);\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.contactPane .buttonSection .selected {\n background: vnone !important;\n}\n\n.contactPane .groupButtonsList {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n gap: var(--spacing-xs);\n list-style: none;\n}\n\n.contactPane .buttonSection .groupButtonsList {\n margin-left: var(--spacing-xs);\n margin-right: var(--spacing-xs);\n padding-left: 0;\n}\n\n.contactPane .groupButtonsList li {\n flex-shrink: 0;\n}\n\n.contactPane .groupButtonsList button {\n white-space: nowrap;\n flex-shrink: 0;\n min-width: max-content;\n margin-left: 0;\n}\n\n/* Groups list in details section — flexible 2-column grid */\n.contactPane .detailsSectionContent .groupButtonsList {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList li {\n width: 100%;\n aspect-ratio: 1 / 1;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList button {\n width: 100%;\n height: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n@media (max-width: 599px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n }\n\n .contactPane .detailsSectionContent .groupButtonsList button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.contactPane .detailsSectionContent .newGroupBtn {\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-sm);\n}\n\n.contactPane .detailsSectionContent h3 {\n font-size: var(--font-size-xl);\n margin-bottom: var(--spacing-sm);\n padding-left: 0;\n}\n\n/* Delete confirmation POPUP — centered overlay in details section */\n.contactPane .detailSection {\n position: relative;\n}\n\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"],\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"],\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"],\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] {\n position: absolute !important;\n top: 0 !important;\n left: 0 !important;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.3);\n z-index: 1000;\n}\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] > div {\n position: relative !important;\n top: auto !important;\n background: var(--color-background);\n border-radius: var(--border-radius-full);\n padding: var(--spacing-lg);\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n z-index: 1001;\n}\n\n/* Selected state for All contacts button */\n.contactPane .allGroupsButton--selected {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n/* ── Header section ──────────────────────────────────────────── */\n\n.contactPane .headerSection {\n background: var(--color-background);\n padding: var(--spacing-sm);\n border-top-left-radius: var(--border-radius-full);\n border-top-right-radius: var(--border-radius-full);\n margin-bottom: 0;\n}\n\n.contactPane .headerSection header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 0;\n}\n\n.contactPane .headerSection h2 {\n margin-bottom: 0;\n}\n\n/* ── Dotted horizontal rule ─────────────────────────────────── */\n\n.contactPane .dottedHr {\n border: none;\n border-top: 1px dotted var(--color-text-muted);\n margin: 0;\n}\n\n/* ── Search section ─────────────────────────────────────────── */\n\n.contactPane .searchSection {\n padding: var(--spacing-sm);\n padding-bottom: 0;\n margin-bottom: 0;\n}\n\n/* ── People list section ────────────────────────────────────── */\n\n.contactPane .peopleSection {\n display: flex;\n background: var(--color-background);\n border-top: 1px dotted var(--color-text-muted);\n margin-bottom: 0;\n}\n\n.contactPane .peopleSection ul {\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n max-height: 70vh;\n overflow-y: auto;\n}\n\n.contactPane .peopleSection li {\n border-top: 1px solid var(--color-border-pale);\n padding: var(--spacing-xs);\n}\n\n/* ── Person list item (addressBookPresenter) ─────────────────── */\n\n.contactPane .personLi-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.contactPane .personLi-avatar {\n width: 45px;\n height: 45px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar .avatar-placeholder {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar img {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n}\n\n.contactPane .personLi-info {\n flex: 1;\n margin-left: var(--spacing-sm);\n overflow: hidden;\n}\n\n.contactPane .personLi-name {\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.contactPane .personLi-arrow {\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n\n.contactPane .personLi--error {\n opacity: 0.5;\n}`,"",{version:3,sources:["webpack://./src/styles/contactsPane.css"],names:[],mappings:"AAAA,4CAA4C;AAC5C;EACE,2DAA2D;EAC3D,mBAAmB;EACnB,gCAAgC;AAClC;AACA,0EAA0E;AAC1E,qFAAqF;;AAErF,mEAAmE;;AAEnE;EACE,iDAAiD;AACnD;;AAEA;EACE,WAAW,EAAE,wCAAwC;EACrD,gBAAgB;EAChB,sBAAsB;EACtB,mCAAmC;AACrC;;AAEA;EACE,iBAAiB;EACjB,0BAA0B;EAC1B,gBAAgB;EAChB,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,iBAAiB,EAAE,wBAAwB;EAC3C,mBAAmB,EAAE,yCAAyC;EAC9D,sBAAsB;EACtB,8BAA8B;EAC9B,6BAA6B;AAC/B;;AAEA;EACE,SAAS;AACX;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,sBAAsB;EACtB,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,+BAA+B;EAC/B,8BAA8B;AAChC;;AAEA;EACE,+BAA+B;EAC/B,0CAA0C;EAC1C,wCAAwC;EACxC,4BAA4B;EAC5B,8BAA8B;EAC9B,mCAAmC;AACrC;;AAEA,mEAAmE;;AAEnE;EACE,mDAAmD;EACnD,oBAAoB;AACtB;AACA,0CAA0C;AAC1C;EACE,kBAAkB;AACpB;;AAEA;EACE,+BAA+B;EAC/B,0CAA0C;EAC1C,yCAAyC;EACzC,yDAAgZ;EAChZ,4BAA4B;EAC5B,+BAA+B;EAC/B,0BAA0B;EAC1B,wCAAwC;EACxC,mCAAmC;EACnC,gCAAgC;EAChC,WAAW;EACX,sBAAsB;AACxB;;AAEA,qCAAqC;AACrC;EACE,kBAAkB;EAClB,wBAAwB;EACxB,QAAQ;EACR,2BAA2B;EAC3B,YAAY;EACZ,uBAAuB;EACvB,gCAAgC;EAChC,cAAc;EACd,UAAU;EACV,eAAe;EACf,8BAA8B;EAC9B,qEAAqE;EACrE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,wBAAwB;AAC1B;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,YAAY;EACZ,WAAW;EACX,SAAS;AACX;;AAEA,mEAAmE;;AAEnE;EACE,8BAA8B;EAC9B,gCAAgC;AAClC;;AAEA;EACE,sCAAsC;AACxC;;AAEA;EACE,sCAAsC;EACtC,8BAA8B;AAChC;;AAEA;EACE,sCAAsC;AACxC;;AAEA,mEAAmE;;AAEnE;AACA;;AAEA;EACE,aAAa;AACf;;AAEA,mEAAmE;;AAEnE;EACE,8BAA8B;AAChC;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,iBAAiB,EAAE,+BAA+B;EAClD,OAAO;EACP,cAAc;EACd,oBAAoB;EACpB,WAAW;EACX,sBAAsB;EACtB,gBAAgB,EAAE,sCAAsC;AAC1D;;AAEA;EACE,eAAe;EACf,gBAAgB;EAChB,sBAAsB;AACxB;;AAEA;EACE;IACE,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;;AAEA;EACE;IACE,gBAAgB;EAClB;AACF;;AAEA,4BAA4B;AAC5B;EACE,mCAAmC;EACnC,0BAA0B;EAC1B,sBAAsB;EACtB,uBAAuB;EACvB,2BAA2B;AAC7B;;AAEA,mBAAmB;AACnB;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,sCAAsC;EACtC,wCAAwC;EACxC,gCAAgC;EAChC,8BAA8B;EAC9B,gBAAgB;EAChB,eAAe;EACf,8CAA8C;AAChD;;AAEA;EACE,+DAA+D;EAC/D,6CAA6C;AAC/C;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,qCAAqC;EACrC,mBAAmB;EACnB,eAAe;AACjB;;AAEA,qBAAqB;AACrB;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,6DAA6D;EAC7D,wCAAwC;EACxC,kCAAkC;EAClC,8BAA8B;EAC9B,oCAAoC;EACpC,eAAe;EACf,8CAA8C;EAC9C,qBAAqB;EACrB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,iEAAiE;AACnE;;AAEA;EACE,gCAAgC;EAChC,mBAAmB;AACrB;;AAEA,0DAA0D;AAC1D;;EAEE,kDAAkD;EAClD,8BAA8B;EAC9B,4FAA4F;EAC5F,UAAU;AACZ;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,iBAAiB;EACjB,mBAAmB;EACnB,0BAA0B;EAC1B,iBAAiB;EACjB,gBAAgB;EAChB,kBAAkB;EAClB,iCAAiC;EACjC,qBAAqB;EACrB,gBAAgB;AAClB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,oCAAoC;EACpC,wCAAwC;AAC1C;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,aAAa;EACb,iBAAiB;EACjB,mBAAmB;EACnB,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,8BAA8B;EAC9B,+BAA+B;EAC/B,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,cAAc;EACd,sBAAsB;EACtB,cAAc;AAChB;;AAEA,4DAA4D;AAC5D;EACE,aAAa;EACb,2DAA2D;EAC3D,sBAAsB;EACtB,gBAAgB;EAChB,UAAU;EACV,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,wCAAwC;EACxC,qBAAqB;EACrB,yBAAyB;AAC3B;;AAEA;EACE;IACE,qCAAqC;IACrC,sBAAsB;EACxB;;EAEA;IACE,8BAA8B;IAC9B,wCAAwC;EAC1C;AACF;;AAEA;EACE;IACE,qCAAqC;EACvC;AACF;;AAEA;EACE,WAAW;EACX,sBAAsB;EACtB,6BAA6B;AAC/B;;AAEA;EACE,8BAA8B;EAC9B,gCAAgC;EAChC,eAAe;AACjB;;AAEA,oEAAoE;AACpE;EACE,kBAAkB;AACpB;;AAEA;;;;EAIE,6BAA6B;EAC7B,iBAAiB;EACjB,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,8BAA8B;EAC9B,aAAa;AACf;AACA;;;;EAIE,6BAA6B;EAC7B,oBAAoB;EACpB,mCAAmC;EACnC,wCAAwC;EACxC,0BAA0B;EAC1B,yCAAyC;EACzC,aAAa;AACf;;AAEA,2CAA2C;AAC3C;EACE,sCAAsC;EACtC,8BAA8B;AAChC;;AAEA,mEAAmE;;AAEnE;EACE,mCAAmC;EACnC,0BAA0B;EAC1B,iDAAiD;EACjD,kDAAkD;EAClD,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,kEAAkE;;AAElE;EACE,YAAY;EACZ,8CAA8C;EAC9C,SAAS;AACX;;AAEA,kEAAkE;;AAElE;EACE,0BAA0B;EAC1B,iBAAiB;EACjB,gBAAgB;AAClB;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,mCAAmC;EACnC,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,UAAU;EACV,SAAS;EACT,WAAW;EACX,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,8CAA8C;EAC9C,0BAA0B;AAC5B;;AAEA,mEAAmE;;AAEnE;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;AAChC;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,iBAAiB;AACnB;;AAEA;EACE,OAAO;EACP,8BAA8B;EAC9B,gBAAgB;AAClB;;AAEA;EACE,iBAAiB;EACjB,gCAAgC;EAChC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;;AAEA;EACE,iBAAiB;EACjB,aAAa;EACb,mBAAmB;AACrB;;AAEA;EACE,YAAY;AACd",sourcesContent:['/* Focus indicator for keyboard navigation */\n.contactPane table tr[tabindex="0"]:focus {\n outline: var(--focus-ring-width) solid var(--color-primary);\n outline-offset: 2px;\n background: var(--color-info-bg);\n}\n/* contactsPane styles — extracted from inline styles in contactsPane.js */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Layout: Three-column browser ────────────────────────────── */\n\n.contactPane .peopleSection .selected {\n background-color: var(--color-info-bg) !important;\n}\n\n.contactPane .detailSection {\n flex: 1 1 0; /* allow it to grow but not force wrap */\n min-width: 300px;\n box-sizing: border-box;\n background: var(--color-section-bg);\n}\n\n.contactPane .detailsSectionContent {\n min-height: 200px;\n padding: var(--spacing-lg);\n max-width: 900px;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent--wide {\n max-width: 900px;\n}\n\n.contactPane .cardFooter {\n display: flex;\n flex-wrap: nowrap; /* keep buttons inline */\n align-items: center; /* vertical centering if varied heights */\n gap: var(--spacing-xs);\n padding-top: var(--spacing-md);\n margin-top: var(--spacing-md);\n}\n\n.contactPane .detailsSectionContent {\n margin: 0;\n}\n\n/* ── Contact type chooser ───────────────────────────────────── */\n\n.contactPane .contactTypeChooser {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n max-width: 360px;\n}\n\n.contactPane .contactTypeChooser h3 {\n margin: 0 0 var(--spacing-xs) 0;\n font-size: var(--font-size-lg);\n}\n\n.contactPane .contactTypeSelect {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm);\n font-size: var(--font-size-sm);\n background: var(--color-section-bg);\n}\n\n/* ── Search ──────────────────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n border-radius: var(--border-radius-full) !important;\n /* existing styles */\n}\n/* wrapper to position clear icon/button */\n.contactPane .searchDiv {\n position: relative;\n}\n\n.contactPane .searchInput {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n background-color: var(--color-section-bg);\n background-image: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23999\' viewBox=\'0 0 24 24\' width=\'20\' height=\'20\'%3E%3Cpath d=\'M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99c.41.41 1.09.41 1.5 0s.41-1.09 0-1.5l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\'/%3E%3C/svg%3E");\n background-repeat: no-repeat;\n background-position: 8px center;\n background-size: 20px 20px;\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm) 0 34px;\n font-size: var(--font-size-base);\n width: 100%;\n box-sizing: border-box;\n}\n\n/* clear button inside search input */\n.contactPane .searchClearButton {\n position: absolute;\n right: var(--spacing-sm);\n top: 50%;\n transform: translateY(-50%);\n border: none;\n background: transparent;\n font-size: var(--font-size-base);\n line-height: 1;\n padding: 0;\n cursor: pointer;\n color: var(--color-text-muted);\n /* visibility is controlled via the generic `.hidden` utility class */\n display: block;\n}\n.contactPane .searchClearButton.hidden {\n display: none;\n}\n.contactPane .searchClearButton:hover {\n color: var(--color-text);\n}\n\n/* ── Contact toolbar (top-right link + delete) ──────────────── */\n\n.contactPane .contact-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-sm);\n padding: var(--spacing-xs) 0;\n}\n\n.contactPane .contact-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n/* ── "All" groups button ─────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n margin-left: var(--spacing-md);\n font-size: var(--font-size-base);\n}\n\n.contactPane .allGroupsButton--loading {\n background-color: var(--color-primary);\n}\n\n.contactPane .allGroupsButton--active {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n.contactPane .allGroupsButton--loaded {\n background-color: var(--color-primary);\n}\n\n/* ── Selection & visibility states ───────────────────────────── */\n\n.contactPane .group-loading {\n}\n\n.contactPane .hidden {\n display: none;\n}\n\n/* ── Mint new address book ───────────────────────────────────── */\n\n.contactPane .claimSuccess {\n font-size: var(--font-size-xl);\n}\n\n.contactPane {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.contactPane .addressBook-grid {\n display: flex;\n flex-wrap: nowrap; /* keep sections side-by-side */\n flex: 1;\n min-width: 50%;\n align-items: stretch;\n width: 100%;\n box-sizing: border-box;\n overflow-x: auto; /* allow horizontal scroll if needed */\n}\n\n.contactPane .addressBookSection {\n flex: 1 1 350px;\n max-width: 485px;\n box-sizing: border-box;\n}\n\n@media ((min-width: 500px) and (max-width: 900px)) {\n .contactPane .addressBookSection {\n max-width: 900px;\n }\n .contactPane .addressBookSection section {\n max-width: 485px;\n }\n}\n\n@media (max-width: 500px) {\n .contactPane .addressBookSection {\n max-width: 485px;\n }\n}\n\n/* Card Section Background */\n.contactPane .section-bg {\n background: var(--color-section-bg);\n padding: var(--spacing-md);\n box-sizing: border-box;\n border: none !important;\n border-radius: 0 !important;\n}\n\n/* Primary Button */\n.contactPane .btn-primary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n background: var(--color-primary);\n color: var(--color-background);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n.contactPane .btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n\n/* Secondary button */\n.contactPane .btn-secondary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: var(--border-width-thin) solid var(--color-secondary);\n border-radius: var(--border-radius-base);\n background: var(--color-secondary);\n color: var(--color-background);\n font-weight: var(--font-weight-bold);\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .btn-secondary:hover {\n background: color-mix(in srgb, var(--color-secondary) 85%, black);\n}\n\n.contactPane .btn-secondary:disabled {\n opacity: var(--opacity-disabled);\n cursor: not-allowed;\n}\n\n/* Action Button Focus - used by ChatWithMe, ProfileCard */\n.contactPane .action-button-focus:focus,\n.contactPane .action-button-focus:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n/* ── Button section: horizontal scrollable row ──────────────── */\n\n.contactPane .buttonSection {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: var(--spacing-sm);\n padding-bottom: 0;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n margin-bottom: 0;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar {\n height: 6px;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-thumb {\n background: var(--color-border-pale);\n border-radius: var(--border-radius-base);\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.contactPane .buttonSection .selected {\n background: vnone !important;\n}\n\n.contactPane .groupButtonsList {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n gap: var(--spacing-xs);\n list-style: none;\n}\n\n.contactPane .buttonSection .groupButtonsList {\n margin-left: var(--spacing-xs);\n margin-right: var(--spacing-xs);\n padding-left: 0;\n}\n\n.contactPane .groupButtonsList li {\n flex-shrink: 0;\n}\n\n.contactPane .groupButtonsList button {\n white-space: nowrap;\n flex-shrink: 0;\n min-width: max-content;\n margin-left: 0;\n}\n\n/* Groups list in details section — flexible 2-column grid */\n.contactPane .detailsSectionContent .groupButtonsList {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList li {\n width: 100%;\n aspect-ratio: 1 / 1;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList button {\n width: 100%;\n height: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n@media (max-width: 599px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n }\n\n .contactPane .detailsSectionContent .groupButtonsList button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.contactPane .detailsSectionContent .newGroupBtn {\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-sm);\n}\n\n.contactPane .detailsSectionContent h3 {\n font-size: var(--font-size-xl);\n margin-bottom: var(--spacing-sm);\n padding-left: 0;\n}\n\n/* Delete confirmation POPUP — centered overlay in details section */\n.contactPane .detailSection {\n position: relative;\n}\n\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"],\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"],\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"],\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] {\n position: absolute !important;\n top: 0 !important;\n left: 0 !important;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.3);\n z-index: 1000;\n}\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] > div {\n position: relative !important;\n top: auto !important;\n background: var(--color-background);\n border-radius: var(--border-radius-full);\n padding: var(--spacing-lg);\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n z-index: 1001;\n}\n\n/* Selected state for All contacts button */\n.contactPane .allGroupsButton--selected {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n/* ── Header section ──────────────────────────────────────────── */\n\n.contactPane .headerSection {\n background: var(--color-background);\n padding: var(--spacing-sm);\n border-top-left-radius: var(--border-radius-full);\n border-top-right-radius: var(--border-radius-full);\n margin-bottom: 0;\n}\n\n.contactPane .headerSection header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 0;\n}\n\n.contactPane .headerSection h2 {\n margin-bottom: 0;\n}\n\n/* ── Dotted horizontal rule ─────────────────────────────────── */\n\n.contactPane .dottedHr {\n border: none;\n border-top: 1px dotted var(--color-text-muted);\n margin: 0;\n}\n\n/* ── Search section ─────────────────────────────────────────── */\n\n.contactPane .searchSection {\n padding: var(--spacing-sm);\n padding-bottom: 0;\n margin-bottom: 0;\n}\n\n/* ── People list section ────────────────────────────────────── */\n\n.contactPane .peopleSection {\n display: flex;\n background: var(--color-background);\n border-top: 1px dotted var(--color-text-muted);\n margin-bottom: 0;\n}\n\n.contactPane .peopleSection ul {\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n max-height: 70vh;\n overflow-y: auto;\n}\n\n.contactPane .peopleSection li {\n border-top: 1px solid var(--color-border-pale);\n padding: var(--spacing-xs);\n}\n\n/* ── Person list item (addressBookPresenter) ─────────────────── */\n\n.contactPane .personLi-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.contactPane .personLi-avatar {\n width: 45px;\n height: 45px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar .avatar-placeholder {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar img {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n}\n\n.contactPane .personLi-info {\n flex: 1;\n margin-left: var(--spacing-sm);\n overflow: hidden;\n}\n\n.contactPane .personLi-name {\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.contactPane .personLi-arrow {\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n\n.contactPane .personLi--error {\n opacity: 0.5;\n}'],sourceRoot:""}]);const p=u},93(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* ── Group Membership Section ──────────────────────────────── */\n\n.contactPane .group-membership-container {\n padding: var(--spacing-sm) 0;\n}\n\n/* Grid wrapper — matches detailsSectionContent groupButtonsList */\n.contactPane .group-pills-wrapper {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n}\n\n.contactPane .group-pills-wrapper span {\n width: max-content;\n}\n\n/* Each group item: button on top, toolbar below */\n.contactPane .group-membership-item {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n max-width: 256px;\n}\n\n.contactPane .group-membership-item > button {\n width: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n min-height: var(--min-touch-target);\n}\n\n/* Toolbar with link icon and delete button below each group button */\n.contactPane .group-membership-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-xs);\n padding: var(--spacing-xs) 0 0 0;\n}\n\n.contactPane .group-membership-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n@media (max-width: 599px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n max-width: 100%;\n }\n\n .contactPane .group-membership-item > button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(3, 1fr);\n gap: var(--spacing-sm);\n }\n}\n","",{version:3,sources:["webpack://./src/styles/groupMembership.css"],names:[],mappings:"AAAA,iEAAiE;;AAEjE;EACE,4BAA4B;AAC9B;;AAEA,kEAAkE;AAClE;EACE,aAAa;EACb,2DAA2D;EAC3D,sBAAsB;EACtB,gBAAgB;EAChB,UAAU;EACV,SAAS;EACT,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA,kDAAkD;AAClD;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,wCAAwC;EACxC,qBAAqB;EACrB,yBAAyB;EACzB,mCAAmC;AACrC;;AAEA,qEAAqE;AACrE;EACE,aAAa;EACb,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;EACtB,gCAAgC;AAClC;;AAEA;EACE,YAAY;EACZ,WAAW;EACX,SAAS;AACX;;AAEA;EACE;IACE,qCAAqC;IACrC,sBAAsB;IACtB,eAAe;EACjB;;EAEA;IACE,8BAA8B;IAC9B,wCAAwC;EAC1C;AACF;;AAEA;EACE;IACE,qCAAqC;IACrC,sBAAsB;EACxB;AACF",sourcesContent:["/* ── Group Membership Section ──────────────────────────────── */\n\n.contactPane .group-membership-container {\n padding: var(--spacing-sm) 0;\n}\n\n/* Grid wrapper — matches detailsSectionContent groupButtonsList */\n.contactPane .group-pills-wrapper {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n}\n\n.contactPane .group-pills-wrapper span {\n width: max-content;\n}\n\n/* Each group item: button on top, toolbar below */\n.contactPane .group-membership-item {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n max-width: 256px;\n}\n\n.contactPane .group-membership-item > button {\n width: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n min-height: var(--min-touch-target);\n}\n\n/* Toolbar with link icon and delete button below each group button */\n.contactPane .group-membership-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-xs);\n padding: var(--spacing-xs) 0 0 0;\n}\n\n.contactPane .group-membership-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n@media (max-width: 599px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n max-width: 100%;\n }\n\n .contactPane .group-membership-item > button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(3, 1fr);\n gap: var(--spacing-sm);\n }\n}\n"],sourceRoot:""}]);const s=o},479(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* individual.js styles — extracted from inline styles */\n\n/* ── Individual pane container ───────────────────────────────── */\n\n.individualPane {\n padding: var(--spacing-xs) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);\n background: var(--color-section-bg);\n border-radius: var(--border-radius-full);\n box-shadow: var(--box-shadow);\n box-sizing: border-box;\n max-width: 100%;\n}","",{version:3,sources:["webpack://./src/styles/individual.css"],names:[],mappings:"AAAA,wDAAwD;;AAExD,mEAAmE;;AAEnE;EACE,gFAAgF;EAChF,mCAAmC;EACnC,wCAAwC;EACxC,6BAA6B;EAC7B,sBAAsB;EACtB,eAAe;AACjB",sourcesContent:["/* individual.js styles — extracted from inline styles */\n\n/* ── Individual pane container ───────────────────────────────── */\n\n.individualPane {\n padding: var(--spacing-xs) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);\n background: var(--color-section-bg);\n border-radius: var(--border-radius-full);\n box-shadow: var(--box-shadow);\n box-sizing: border-box;\n max-width: 100%;\n}"],sourceRoot:""}]);const s=o},546(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* CSS for the accessible modal dialogs created by localUtils.js */\n\n/* backdrop / focus trap container */\n.focus-trap {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.focus-trap.hidden {\n display: none;\n}\n\n/* inner dialog box */\n.focus-trap .modal {\n background: var(--color-background);\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n max-width: 90%;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n/* button container: center buttons horizontally (uses id in markup) */\n#contacts-modal #modal-buttons {\n margin-top: var(--spacing-md);\n display: flex;\n justify-content: center;\n gap: var(--spacing-sm);\n}\n\n/* buttons themselves use the shared btn-primary rules */\n#contacts-modal .modal button {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n#contacts-modal .modal button.btn-primary {\n background: var(--color-primary);\n color: var(--color-background);\n}\n\n#contacts-modal .modal button.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n","",{version:3,sources:["webpack://./src/styles/localUtils.css"],names:[],mappings:"AAAA,kEAAkE;;AAElE,oCAAoC;AACpC;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,aAAa;EACb,8BAA8B;EAC9B,aAAa;EACb,uBAAuB;EACvB,mBAAmB;AACrB;;AAEA;EACE,aAAa;AACf;;AAEA,qBAAqB;AACrB;EACE,mCAAmC;EACnC,0BAA0B;EAC1B,wCAAwC;EACxC,cAAc;EACd,yCAAyC;AAC3C;;AAEA,sEAAsE;AACtE;EACE,6BAA6B;EAC7B,aAAa;EACb,uBAAuB;EACvB,sBAAsB;AACxB;;AAEA,wDAAwD;AACxD;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,sCAAsC;EACtC,wCAAwC;EACxC,gBAAgB;EAChB,eAAe;EACf,8CAA8C;AAChD;;AAEA;EACE,gCAAgC;EAChC,8BAA8B;AAChC;;AAEA;EACE,+DAA+D;EAC/D,6CAA6C;AAC/C;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,qCAAqC;EACrC,mBAAmB;EACnB,eAAe;AACjB",sourcesContent:["/* CSS for the accessible modal dialogs created by localUtils.js */\n\n/* backdrop / focus trap container */\n.focus-trap {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.focus-trap.hidden {\n display: none;\n}\n\n/* inner dialog box */\n.focus-trap .modal {\n background: var(--color-background);\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n max-width: 90%;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n/* button container: center buttons horizontally (uses id in markup) */\n#contacts-modal #modal-buttons {\n margin-top: var(--spacing-md);\n display: flex;\n justify-content: center;\n gap: var(--spacing-sm);\n}\n\n/* buttons themselves use the shared btn-primary rules */\n#contacts-modal .modal button {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n#contacts-modal .modal button.btn-primary {\n background: var(--color-primary);\n color: var(--color-background);\n}\n\n#contacts-modal .modal button.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n"],sourceRoot:""}]);const s=o},715(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* mugshotGallery.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Mugshot image ───────────────────────────────────────────── */\n\n.contactPane .mugshotImage {\n max-height: 10em;\n border-radius: var(--border-radius-full);\n margin: var(--spacing-sm);\n}\n","",{version:3,sources:["webpack://./src/styles/mugshotGallery.css"],names:[],mappings:"AAAA,4DAA4D;AAC5D,qFAAqF;;AAErF,mEAAmE;;AAEnE;EACE,gBAAgB;EAChB,wCAAwC;EACxC,yBAAyB;AAC3B",sourcesContent:["/* mugshotGallery.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Mugshot image ───────────────────────────────────────────── */\n\n.contactPane .mugshotImage {\n max-height: 10em;\n border-radius: var(--border-radius-full);\n margin: var(--spacing-sm);\n}\n"],sourceRoot:""}]);const s=o},434(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,'/* Solid-UI form */\n\n/* Vertically center autocomplete input in .formFieldValue */\n.individualPane .formFieldValue > div[style*="flex-direction: row"],\n.contactPane .formFieldValue > div[style*="flex-direction: row"] {\n align-items: center;\n display: flex;\n}\n\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n vertical-align: middle;\n}\n\n.individualPane .hoverControl:has(> img:first-child),\n.contactPane .hoverControl:has(> img:first-child) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n padding: 0.7em !important;\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.individualPane .hoverControlHide,\n.contactPane .hoverControlHide {\n width: 1.5em !important;\n height: 1.5em !important;\n display: block;\n margin-top: 0 !important;\n margin-left: 0 !important;\n margin-right: 0 !important;\n margin-bottom: 0.3em !important;\n}\n\n.individualPane .hoverControl:has(> img:first-child) > span,\n.contactPane .hoverControl:has(> img:first-child) > span {\n display: inline-flex;\n align-items: center;\n margin-left: 0.3em;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img),\n.contactPane div[style*="padding: 0.5em"]:has(> img) {\n display: inline-flex;\n align-items: center;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img) > span,\n.contactPane div[style*="padding: 0.5em"]:has(> img) > span {\n margin-left: 0.3em;\n}\n\n.individualPane .hoverControl:has(> img:first-child):hover,\n.contactPane .hoverControl:has(> img:first-child):hover {\n background-color: transparent !important;\n}\n\n.individualPane button:has(> img[src$=".svg"]),\n.contactPane button:has(> img[src$=".svg"]) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n}\n\n.individualPane button,\n.contactPane button {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]),\n.individualPane textarea,\n.contactPane textarea,\n.individualPane select,\n.contactPane select {\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box ;\n font: inherit;\n color: var(--color-text);\n background-color: var(--color-card-bg) !important;\n border: 1px solid var(--color-border-pale);\n}\n\n.individualPane textarea,\n.contactPane textarea {\n border-color: var(--color-border-pale) !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane input[type="date"],\n.contactPane input[type="date"],\n.individualPane input[type="month"],\n.contactPane input[type="month"],\n.individualPane input[type="week"],\n.contactPane input[type="week"],\n.individualPane input[type="time"],\n.contactPane input[type="time"],\n.individualPane input[type="datetime-local"],\n.contactPane input[type="datetime-local"] {\n min-height: var(--min-touch-target);\n}\n\n.individualPane .hoverControl:has(> img:first-child):focus-visible,\n.contactPane .hoverControl:has(> img:first-child):focus-visible,\n.individualPane button:focus-visible,\n.contactPane button:focus-visible,\n.individualPane input:not([type="color"]):focus-visible,\n.contactPane input:not([type="color"]):focus-visible,\n.individualPane textarea:focus-visible,\n.contactPane textarea:focus-visible,\n.individualPane select:focus-visible,\n.contactPane select:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary) !important;\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n.individualPane input[type="url"],\n.contactPane input[type="url"] {\n width: 100%;\n}\n\n.individualPane .formFieldValue,\n.contactPane .formFieldValue {\n min-width: 0;\n margin-bottom: var(--spacing-sm);\n}\n\n.individualPane .formFieldValue table,\n.contactPane .formFieldValue table {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane .formFieldValue td,\n.contactPane .formFieldValue td {\n padding: 0 !important;\n vertical-align: middle;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n height: 100%;\n}\n\n.individualPane .formFieldValue input:not([type="color"]),\n.contactPane .formFieldValue input:not([type="color"]),\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n width: 100%;\n max-width: 100%;\n}\n\n.individualPane .formFieldValue select,\n.contactPane .formFieldValue select {\n width: 100%;\n display: inline-block;\n max-width: none !important;\n}\n\n.individualPane select#formSelect,\n.contactPane select#formSelect {\n width: 100%;\n max-width: 97%;\n box-sizing: border-box;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane span select,\n.contactPane span select {\n max-width: 96% !important;\n box-sizing: border-box;\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue span select,\n.contactPane .formFieldValue span select {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Remove border/padding from the first wrapper div (and its first child wrapper). */\n.individualPane > div:first-of-type,\n.contactPane > div:first-of-type,\n.individualPane > div:first-of-type > div:first-of-type,\n.contactPane > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* In contactPane, remove border/padding from all direct child divs. */\n.individualPane > div,\n.contactPane > div {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Align schema.org, solid terms, FOAF, vCard, and org field labels with their input values. */\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue),\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) {\n display: flex;\n align-items: baseline;\n margin-bottom: var(--spacing-sm);\n}\n\n/* for the Resume inside corporation choice */\n/* Add space between classifierBox label and select box */\n.individualPane .choiceBox .classifierBox-label,\n.contactPane .choiceBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n}\n\n.individualPane .choiceBox .choiceBox-selectBox select,\n.contactPane .choiceBox .choiceBox-selectBox select {\n margin-left: 2.1em !important;\n}\n\n/* for the Resume orga details */\n/* Add space between classifierBox label and select box */\n.individualPane .classifierBox .classifierBox-label,\n.contactPane .classifierBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n width: 8em;\n padding: 0.3em;\n vertical-align: middle;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox,\n.contactPane .classifierBox .classifierBox-selectBox {\n margin-left: 0 !important;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox select,\n.contactPane .classifierBox .classifierBox-selectBox select {\n margin-left: 0 !important;\n}\n\n.individualPane .formFieldValue > span > select,\n.contactPane .formFieldValue > span > select {\n margin-left: 0 !important;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue,\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue {\n margin-bottom: 0;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n flex: 1;\n min-width: 0;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n appearance: none;\n -webkit-appearance: none;\n border-radius: 0.2em !important;\n border: 0.05em solid #88c !important;\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-xs);\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Add horizontal gap between label and textarea for all label+textarea pairs. */\n.individualPane div:has(> a) + div:has(textarea),\n.contactPane div:has(> a) + div:has(textarea) {\n margin-left: var(--spacing-sm);\n}\n\n/* Center textarea label vertically in flex rows. */\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) {\n align-items: flex-start;\n}\n\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a) {\n padding-left: var(--spacing-xs);\n padding-top: var(--spacing-sm);\n}\n\n/* Keep autocomplete/table-based fields (e.g. Occupation) aligned to label text baseline. */\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]),\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) {\n align-items: flex-start;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName,\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName {\n padding-top: var(--spacing-xs) !important;\n}\n\n.individualPane .formFieldValue:has(input[data-testid="autocomplete-input"]),\n.contactPane .formFieldValue:has(input[data-testid="autocomplete-input"]) {\n align-self: flex-start;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"],\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n vertical-align: baseline;\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]) {\n width: 100%;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane input:disabled,\n.contactPane input:disabled,\n.individualPane textarea:disabled,\n.contactPane textarea:disabled,\n.individualPane select:disabled,\n.contactPane select:disabled,\n.individualPane input[readonly],\n.contactPane input[readonly],\n.individualPane textarea[readonly],\n.contactPane textarea[readonly],\n.individualPane input:read-only,\n.contactPane input:read-only,\n.individualPane textarea:read-only,\n.contactPane textarea:read-only {\n background-color: var(--color-background) !important;\n cursor: not-allowed;\n opacity: 0.75;\n border: 0.05em solid var(--color-background) !important;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n padding: var(--spacing-xs) !important;\n}\n\n.contactPane .webidControl table td div.contactPane.namedPane {\n border: none !important;\n}\n\n/* ------------------------------------------------------------------ */\n/* inline popup used for small confirmation flows (like the new confirmDialog) */\n/* apply the class `rdf-inline-modal` on the outer wrapper and give the\n inner box the class `popup` instead of using the old inline styles. */\n\n/* selectors that match the old inline-styled markup when no classes can be added */\n\n/* outer container: position relative containing an absolute grid popup */\n.contactPane div[style*="position: relative"] > div[style*="position: absolute"][style*="display: grid"] {\n /* override inline values with theme variables */\n position: absolute;\n top: -1em;\n padding: 0.7em !important;\n background: var(--color-background) !important;\n border: 0.1em solid var(--color-primary) !important;\n border-radius: var(--border-radius-base) !important;\n box-shadow: 0 0.5em 0.9em rgba(0, 0, 0, 0.2) !important;\n display: grid;\n grid-template-columns: auto auto;\n gap: 0.3em;\n z-index: 10;\n}',"",{version:3,sources:["webpack://./src/styles/rdfFormsEnforced.css"],names:[],mappings:"AAAA,kBAAkB;;AAElB,4DAA4D;AAC5D;;EAEE,mBAAmB;EACnB,aAAa;AACf;;AAEA;;EAEE,sBAAsB;AACxB;;AAEA;;EAEE,wCAAwC;EACxC,uBAAuB;EACvB,oBAAoB;EACpB,2BAA2B;EAC3B,yBAAyB;EACzB,mCAAmC;EACnC,kCAAkC;EAClC,eAAe;EACf,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;EAEE,uBAAuB;EACvB,wBAAwB;EACxB,cAAc;EACd,wBAAwB;EACxB,yBAAyB;EACzB,0BAA0B;EAC1B,+BAA+B;AACjC;;AAEA;;EAEE,oBAAoB;EACpB,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;;EAEE,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;;EAEE,kBAAkB;AACpB;;AAEA;;EAEE,wCAAwC;AAC1C;;AAEA;;EAEE,wCAAwC;EACxC,uBAAuB;EACvB,oBAAoB;EACpB,2BAA2B;AAC7B;;AAEA;;EAEE,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;;;;;;EAME,eAAe;EACf,YAAY;EACZ,uBAAuB;EACvB,aAAa;EACb,wBAAwB;EACxB,iDAAiD;EACjD,0CAA0C;AAC5C;;AAEA;;EAEE,iDAAiD;EACjD,oBAAoB;EACpB,qBAAqB;AACvB;;AAEA;;;;;;;;;;EAUE,mCAAmC;AACrC;;AAEA;;;;;;;;;;EAUE,sEAAsE;EACtE,mBAAmB;EACnB,6CAA6C;AAC/C;;AAEA;;EAEE,WAAW;AACb;;AAEA;;EAEE,YAAY;EACZ,gCAAgC;AAClC;;AAEA;;EAEE,oBAAoB;EACpB,qBAAqB;AACvB;;AAEA;;EAEE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;;EAEE,YAAY;AACd;;AAEA;;;;EAIE,WAAW;EACX,eAAe;AACjB;;AAEA;;EAEE,WAAW;EACX,qBAAqB;EACrB,0BAA0B;AAC5B;;AAEA;;EAEE,WAAW;EACX,cAAc;EACd,sBAAsB;EACtB,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA;;EAEE,yBAAyB;EACzB,sBAAsB;EACtB,oBAAoB;AACtB;;AAEA;;EAEE,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA,oFAAoF;AACpF;;;;EAIE,uBAAuB;EACvB,qBAAqB;AACvB;;AAEA,sEAAsE;AACtE;;EAEE,uBAAuB;EACvB,qBAAqB;AACvB;;AAEA,8FAA8F;AAC9F;;EAEE,aAAa;EACb,qBAAqB;EACrB,gCAAgC;AAClC;;AAEA,6CAA6C;AAC7C,yDAAyD;AACzD;;EAEE,eAAe;EACf,mBAAmB;AACrB;;AAEA;;EAEE,6BAA6B;AAC/B;;AAEA,gCAAgC;AAChC,yDAAyD;AACzD;;EAEE,eAAe;EACf,mBAAmB;EACnB,UAAU;EACV,cAAc;EACd,sBAAsB;AACxB;;AAEA;;EAEE,yBAAyB;AAC3B;;AAEA;;EAEE,yBAAyB;AAC3B;;AAEA;;EAEE,yBAAyB;AAC3B;;AAEA;;EAEE,gBAAgB;AAClB;;AAEA;;;;;;;;;;EAUE,oBAAoB;EACpB,mBAAmB;EACnB,sBAAsB;AACxB;;AAEA;;;;;;;;;;EAUE,oBAAoB;EACpB,mBAAmB;EACnB,sBAAsB;EACtB,OAAO;EACP,YAAY;AACd;;AAEA;;;;EAIE,gBAAgB;EAChB,wBAAwB;EACxB,+BAA+B;EAC/B,oCAAoC;EACpC,WAAW;EACX,sBAAsB;EACtB,6BAA6B;EAC7B,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA,gFAAgF;AAChF;;EAEE,8BAA8B;AAChC;;AAEA,mDAAmD;AACnD;;EAEE,uBAAuB;AACzB;;AAEA;;EAEE,+BAA+B;EAC/B,8BAA8B;AAChC;;AAEA,2FAA2F;AAC3F;;EAEE,uBAAuB;AACzB;;AAEA;;EAEE,yCAAyC;AAC3C;;AAEA;;EAEE,sBAAsB;AACxB;;AAEA;;;;EAIE,oBAAoB;AACtB;;AAEA;;EAEE,wBAAwB;AAC1B;;AAEA;;EAEE,WAAW;EACX,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA;;;;;;;;;;;;;;EAcE,oDAAoD;EACpD,mBAAmB;EACnB,aAAa;EACb,uDAAuD;AACzD;;AAEA;;;;EAIE,qCAAqC;AACvC;;AAEA;EACE,uBAAuB;AACzB;;AAEA,uEAAuE;AACvE,gFAAgF;AAChF;wEACwE;;AAExE,mFAAmF;;AAEnF,yEAAyE;AACzE;EACE,gDAAgD;EAChD,kBAAkB;EAClB,SAAS;EACT,yBAAyB;EACzB,8CAA8C;EAC9C,mDAAmD;EACnD,mDAAmD;EACnD,uDAAuD;EACvD,aAAa;EACb,gCAAgC;EAChC,UAAU;EACV,WAAW;AACb",sourcesContent:['/* Solid-UI form */\n\n/* Vertically center autocomplete input in .formFieldValue */\n.individualPane .formFieldValue > div[style*="flex-direction: row"],\n.contactPane .formFieldValue > div[style*="flex-direction: row"] {\n align-items: center;\n display: flex;\n}\n\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n vertical-align: middle;\n}\n\n.individualPane .hoverControl:has(> img:first-child),\n.contactPane .hoverControl:has(> img:first-child) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n padding: 0.7em !important;\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.individualPane .hoverControlHide,\n.contactPane .hoverControlHide {\n width: 1.5em !important;\n height: 1.5em !important;\n display: block;\n margin-top: 0 !important;\n margin-left: 0 !important;\n margin-right: 0 !important;\n margin-bottom: 0.3em !important;\n}\n\n.individualPane .hoverControl:has(> img:first-child) > span,\n.contactPane .hoverControl:has(> img:first-child) > span {\n display: inline-flex;\n align-items: center;\n margin-left: 0.3em;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img),\n.contactPane div[style*="padding: 0.5em"]:has(> img) {\n display: inline-flex;\n align-items: center;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img) > span,\n.contactPane div[style*="padding: 0.5em"]:has(> img) > span {\n margin-left: 0.3em;\n}\n\n.individualPane .hoverControl:has(> img:first-child):hover,\n.contactPane .hoverControl:has(> img:first-child):hover {\n background-color: transparent !important;\n}\n\n.individualPane button:has(> img[src$=".svg"]),\n.contactPane button:has(> img[src$=".svg"]) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n}\n\n.individualPane button,\n.contactPane button {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]),\n.individualPane textarea,\n.contactPane textarea,\n.individualPane select,\n.contactPane select {\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box ;\n font: inherit;\n color: var(--color-text);\n background-color: var(--color-card-bg) !important;\n border: 1px solid var(--color-border-pale);\n}\n\n.individualPane textarea,\n.contactPane textarea {\n border-color: var(--color-border-pale) !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane input[type="date"],\n.contactPane input[type="date"],\n.individualPane input[type="month"],\n.contactPane input[type="month"],\n.individualPane input[type="week"],\n.contactPane input[type="week"],\n.individualPane input[type="time"],\n.contactPane input[type="time"],\n.individualPane input[type="datetime-local"],\n.contactPane input[type="datetime-local"] {\n min-height: var(--min-touch-target);\n}\n\n.individualPane .hoverControl:has(> img:first-child):focus-visible,\n.contactPane .hoverControl:has(> img:first-child):focus-visible,\n.individualPane button:focus-visible,\n.contactPane button:focus-visible,\n.individualPane input:not([type="color"]):focus-visible,\n.contactPane input:not([type="color"]):focus-visible,\n.individualPane textarea:focus-visible,\n.contactPane textarea:focus-visible,\n.individualPane select:focus-visible,\n.contactPane select:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary) !important;\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n.individualPane input[type="url"],\n.contactPane input[type="url"] {\n width: 100%;\n}\n\n.individualPane .formFieldValue,\n.contactPane .formFieldValue {\n min-width: 0;\n margin-bottom: var(--spacing-sm);\n}\n\n.individualPane .formFieldValue table,\n.contactPane .formFieldValue table {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane .formFieldValue td,\n.contactPane .formFieldValue td {\n padding: 0 !important;\n vertical-align: middle;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n height: 100%;\n}\n\n.individualPane .formFieldValue input:not([type="color"]),\n.contactPane .formFieldValue input:not([type="color"]),\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n width: 100%;\n max-width: 100%;\n}\n\n.individualPane .formFieldValue select,\n.contactPane .formFieldValue select {\n width: 100%;\n display: inline-block;\n max-width: none !important;\n}\n\n.individualPane select#formSelect,\n.contactPane select#formSelect {\n width: 100%;\n max-width: 97%;\n box-sizing: border-box;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane span select,\n.contactPane span select {\n max-width: 96% !important;\n box-sizing: border-box;\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue span select,\n.contactPane .formFieldValue span select {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Remove border/padding from the first wrapper div (and its first child wrapper). */\n.individualPane > div:first-of-type,\n.contactPane > div:first-of-type,\n.individualPane > div:first-of-type > div:first-of-type,\n.contactPane > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* In contactPane, remove border/padding from all direct child divs. */\n.individualPane > div,\n.contactPane > div {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Align schema.org, solid terms, FOAF, vCard, and org field labels with their input values. */\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue),\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) {\n display: flex;\n align-items: baseline;\n margin-bottom: var(--spacing-sm);\n}\n\n/* for the Resume inside corporation choice */\n/* Add space between classifierBox label and select box */\n.individualPane .choiceBox .classifierBox-label,\n.contactPane .choiceBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n}\n\n.individualPane .choiceBox .choiceBox-selectBox select,\n.contactPane .choiceBox .choiceBox-selectBox select {\n margin-left: 2.1em !important;\n}\n\n/* for the Resume orga details */\n/* Add space between classifierBox label and select box */\n.individualPane .classifierBox .classifierBox-label,\n.contactPane .classifierBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n width: 8em;\n padding: 0.3em;\n vertical-align: middle;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox,\n.contactPane .classifierBox .classifierBox-selectBox {\n margin-left: 0 !important;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox select,\n.contactPane .classifierBox .classifierBox-selectBox select {\n margin-left: 0 !important;\n}\n\n.individualPane .formFieldValue > span > select,\n.contactPane .formFieldValue > span > select {\n margin-left: 0 !important;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue,\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue {\n margin-bottom: 0;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n flex: 1;\n min-width: 0;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n appearance: none;\n -webkit-appearance: none;\n border-radius: 0.2em !important;\n border: 0.05em solid #88c !important;\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-xs);\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Add horizontal gap between label and textarea for all label+textarea pairs. */\n.individualPane div:has(> a) + div:has(textarea),\n.contactPane div:has(> a) + div:has(textarea) {\n margin-left: var(--spacing-sm);\n}\n\n/* Center textarea label vertically in flex rows. */\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) {\n align-items: flex-start;\n}\n\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a) {\n padding-left: var(--spacing-xs);\n padding-top: var(--spacing-sm);\n}\n\n/* Keep autocomplete/table-based fields (e.g. Occupation) aligned to label text baseline. */\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]),\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) {\n align-items: flex-start;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName,\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName {\n padding-top: var(--spacing-xs) !important;\n}\n\n.individualPane .formFieldValue:has(input[data-testid="autocomplete-input"]),\n.contactPane .formFieldValue:has(input[data-testid="autocomplete-input"]) {\n align-self: flex-start;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"],\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n vertical-align: baseline;\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]) {\n width: 100%;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane input:disabled,\n.contactPane input:disabled,\n.individualPane textarea:disabled,\n.contactPane textarea:disabled,\n.individualPane select:disabled,\n.contactPane select:disabled,\n.individualPane input[readonly],\n.contactPane input[readonly],\n.individualPane textarea[readonly],\n.contactPane textarea[readonly],\n.individualPane input:read-only,\n.contactPane input:read-only,\n.individualPane textarea:read-only,\n.contactPane textarea:read-only {\n background-color: var(--color-background) !important;\n cursor: not-allowed;\n opacity: 0.75;\n border: 0.05em solid var(--color-background) !important;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n padding: var(--spacing-xs) !important;\n}\n\n.contactPane .webidControl table td div.contactPane.namedPane {\n border: none !important;\n}\n\n/* ------------------------------------------------------------------ */\n/* inline popup used for small confirmation flows (like the new confirmDialog) */\n/* apply the class `rdf-inline-modal` on the outer wrapper and give the\n inner box the class `popup` instead of using the old inline styles. */\n\n/* selectors that match the old inline-styled markup when no classes can be added */\n\n/* outer container: position relative containing an absolute grid popup */\n.contactPane div[style*="position: relative"] > div[style*="position: absolute"][style*="display: grid"] {\n /* override inline values with theme variables */\n position: absolute;\n top: -1em;\n padding: 0.7em !important;\n background: var(--color-background) !important;\n border: 0.1em solid var(--color-primary) !important;\n border-radius: var(--border-radius-base) !important;\n box-shadow: 0 0.5em 0.9em rgba(0, 0, 0, 0.2) !important;\n display: grid;\n grid-template-columns: auto auto;\n gap: 0.3em;\n z-index: 10;\n}'],sourceRoot:""}]);const s=o},295(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* toolsPane.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Tools pane table ────────────────────────────────────────── */\n\n.contactPane .statsLog {\n font-size: var(--font-size-lg);\n margin: var(--spacing-md);\n background-color: var(--color-background);\n}\n\n.contactPane .statsLog pre {\n padding: var(--spacing-md);\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word;\n overflow: hidden;\n max-width: 100%;\n}\n\n/* ── Tools pane layout ────────────────────────────────────────── */\n\n.contactPane .toolsPane {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.contactPane .toolsButtonsContainer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-xs);\n}\n\n/* ── Load index button states ──────────────────────────────── */\n\n.contactPane .toolsButton--loading {\n}\n\n.contactPane .toolsButton--error {\n background-color: var(--color-error);\n}\n\n.contactPane .toolsButton--success {\n background-color: var(--color-primary);\n}\n","",{version:3,sources:["webpack://./src/styles/toolsPane.css"],names:[],mappings:"AAAA,uDAAuD;AACvD,qFAAqF;;AAErF,mEAAmE;;AAEnE;EACE,8BAA8B;EAC9B,yBAAyB;EACzB,yCAAyC;AAC3C;;AAEA;EACE,0BAA0B;EAC1B,qBAAqB;EACrB,qBAAqB;EACrB,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;AACjB;;AAEA,oEAAoE;;AAEpE;EACE,aAAa;EACb,sBAAsB;EACtB,sBAAsB;AACxB;;AAEA;EACE,aAAa;EACb,eAAe;EACf,sBAAsB;AACxB;;AAEA,iEAAiE;;AAEjE;AACA;;AAEA;EACE,oCAAoC;AACtC;;AAEA;EACE,sCAAsC;AACxC",sourcesContent:["/* toolsPane.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Tools pane table ────────────────────────────────────────── */\n\n.contactPane .statsLog {\n font-size: var(--font-size-lg);\n margin: var(--spacing-md);\n background-color: var(--color-background);\n}\n\n.contactPane .statsLog pre {\n padding: var(--spacing-md);\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word;\n overflow: hidden;\n max-width: 100%;\n}\n\n/* ── Tools pane layout ────────────────────────────────────────── */\n\n.contactPane .toolsPane {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.contactPane .toolsButtonsContainer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-xs);\n}\n\n/* ── Load index button states ──────────────────────────────── */\n\n.contactPane .toolsButton--loading {\n}\n\n.contactPane .toolsButton--error {\n background-color: var(--color-error);\n}\n\n.contactPane .toolsButton--success {\n background-color: var(--color-primary);\n}\n"],sourceRoot:""}]);const s=o},886(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* ── Named pane (rendered sub-pane) ──────────────────────────── */\n.contactPane .namedPane {\n border: 0.1em solid var(--color-text-muted);\n border-radius: var(--border-radius-base);\n}\n\n/* ── Persona row ─────────────────────────────────────────────── */\n\n.contactPane .personaRow {\n padding: var(--spacing-xs);\n}\n\n.contactPane .personaRow--webid {\n background-color: var(--color-info-bg);\n}\n\n/* ── Full-width elements ─────────────────────────────────────── */\n\n.contactPane .fullWidth {\n width: 100%;\n}\n\n/* ── Open/close profile button ───────────────────────────────── */\n\n.contactPane .personaOpenButton {\n float: right;\n background-color: transparent;\n border: none;\n}\n\n/* ── Section heading ─────────────────────────────────────────── */\n\n.contactPane .webidHeading {\n font-size: var(--font-size-lg);\n font-weight: bold;\n color: var(--color-primary);\n padding: var(--spacing-xs);\n margin: var(--spacing-sm) 0;\n}\n\n/* ── Prompt text ─────────────────────────────────────────────── */\n\n.contactPane .webidPrompt {\n padding: var(--spacing-sm);\n border: none;\n font-size: var(--font-size-base);\n white-space: pre-wrap;\n}\n\n/* ── Visibility / display helpers ────────────────────────────── */\n\n.contactPane .hidden {\n display: none;\n}\n\n.contactPane .collapsed {\n visibility: collapse;\n}\n","",{version:3,sources:["webpack://./src/styles/webidControl.css"],names:[],mappings:"AAAA,mEAAmE;AACnE;EACE,2CAA2C;EAC3C,wCAAwC;AAC1C;;AAEA,mEAAmE;;AAEnE;EACE,0BAA0B;AAC5B;;AAEA;EACE,sCAAsC;AACxC;;AAEA,mEAAmE;;AAEnE;EACE,WAAW;AACb;;AAEA,mEAAmE;;AAEnE;EACE,YAAY;EACZ,6BAA6B;EAC7B,YAAY;AACd;;AAEA,mEAAmE;;AAEnE;EACE,8BAA8B;EAC9B,iBAAiB;EACjB,2BAA2B;EAC3B,0BAA0B;EAC1B,2BAA2B;AAC7B;;AAEA,mEAAmE;;AAEnE;EACE,0BAA0B;EAC1B,YAAY;EACZ,gCAAgC;EAChC,qBAAqB;AACvB;;AAEA,mEAAmE;;AAEnE;EACE,aAAa;AACf;;AAEA;EACE,oBAAoB;AACtB",sourcesContent:["/* ── Named pane (rendered sub-pane) ──────────────────────────── */\n.contactPane .namedPane {\n border: 0.1em solid var(--color-text-muted);\n border-radius: var(--border-radius-base);\n}\n\n/* ── Persona row ─────────────────────────────────────────────── */\n\n.contactPane .personaRow {\n padding: var(--spacing-xs);\n}\n\n.contactPane .personaRow--webid {\n background-color: var(--color-info-bg);\n}\n\n/* ── Full-width elements ─────────────────────────────────────── */\n\n.contactPane .fullWidth {\n width: 100%;\n}\n\n/* ── Open/close profile button ───────────────────────────────── */\n\n.contactPane .personaOpenButton {\n float: right;\n background-color: transparent;\n border: none;\n}\n\n/* ── Section heading ─────────────────────────────────────────── */\n\n.contactPane .webidHeading {\n font-size: var(--font-size-lg);\n font-weight: bold;\n color: var(--color-primary);\n padding: var(--spacing-xs);\n margin: var(--spacing-sm) 0;\n}\n\n/* ── Prompt text ─────────────────────────────────────────────── */\n\n.contactPane .webidPrompt {\n padding: var(--spacing-sm);\n border: none;\n font-size: var(--font-size-base);\n white-space: pre-wrap;\n}\n\n/* ── Visibility / display helpers ────────────────────────────── */\n\n.contactPane .hidden {\n display: none;\n}\n\n.contactPane .collapsed {\n visibility: collapse;\n}\n"],sourceRoot:""}]);const s=o},314(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,r,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(o[c]=!0)}for(var l=0;l<e.length;l++){var u=[].concat(e[l]);r&&o[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},417(e){e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},354(e){e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(i," */");return[t].concat([a]).join("\n")}return[t].join("\n")}},72(e){var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},o=[],s=0;s<e.length;s++){var c=e[s],l=r.base?c[0]+r.base:c[0],u=a[l]||0,d="".concat(l," ").concat(u);a[l]=u+1;var p=n(d),f={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)t[p].references++,t[p].updater(f);else{var h=i(f,r);r.byIndex=s,t.splice(s,0,{identifier:d,updater:h,references:1})}o.push(d)}return o}function i(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,i){var a=r(e=e||[],i=i||{});return function(e){e=e||[];for(var o=0;o<a.length;o++){var s=n(a[o]);t[s].references--}for(var c=r(e,i),l=0;l<a.length;l++){var u=n(a[l]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}a=c}}},659(e){var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540(e){e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56(e,t,n){e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},825(e){e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},102(e){e.exports="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23999%27 viewBox=%270 0 24 24%27 width=%2720%27 height=%2720%27%3E%3Cpath d=%27M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99c.41.41 1.09.41 1.5 0s.41-1.09 0-1.5l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z%27/%3E%3C/svg%3E"},53(e){e.exports=n},941(t){t.exports=e},104(e){e.exports=t}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,exports:{}};return r[e](n,n.exports,a),n.exports}a.m=r,a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.b="undefined"!=typeof document&&document.baseURI||self.location.href,a.nc=void 0;var o={};a.d(o,{default:()=>Bt});var s=a(941),c=a(104),l=a(53),u=a(72),d=a.n(u),p=a(825),f=a.n(p),h=a(659),m=a.n(h),g=a(56),v=a.n(g),b=a(540),y=a.n(b),w=a(113),x=a.n(w),A=a(886),E={};function C(...e){}function k(...e){}E.styleTagTransform=x(),E.setAttributes=v(),E.insert=m().bind(null,"head"),E.domAPI=f(),E.insertStyleElement=y(),d()(A.A,E),A.A&&A.A.locals&&A.A.locals;const _=c.ns,S=c.widgets,T=c.utils,P=s.store,F=S.publicData.wikidataClasses,R=S.publicData.wikidataParameters,I="WebID",N="WikiData link",L=c.icons.iconBase+"noun_1369241.svg",B=c.icons.iconBase+"noun_1369237.svg";function O(e,t){const n=j(e,t).concat(function(e,t,n){const r=new Set,i=new Set([t.uri]);for(;i.size;){const t=Array.from(i)[0];if(i.delete(t),r.has(t))continue;r.add(t);const a=e.sym(t);e.each(a,_.owl("sameAs"),null,n).concat(e.each(null,_.owl("sameAs"),a,n)).forEach(e=>{i.add(e.uri)}),e.each(a,_.schema("sameAs"),null,n).concat(e.each(null,_.schema("sameAs"),a,n)).forEach(e=>{i.add(e.uri)})}return r.delete(t.uri),Array.from(r).map(t=>e.sym(t))}(e,t,t.doc())),r=[...new Set(n.map(e=>e.value))].map(t=>e.sym(t));return r.sort(),r.filter(e=>!e.sameTerm(t)),r}function j(e,t,n){return e.each(t,_.vcard("url"),null,t.doc()).filter(r=>e.holds(r,_.rdf("type"),n,t.doc())).map(n=>e.any(n,_.vcard("value"),null,t.doc())).filter(e=>!!e)}function D(e){const t=e.doc();return P.holds(e,_.rdf("type"),_.vcard("Organization"),t)||P.holds(e,_.rdf("type"),_.schema("Organization"),t)}async function M(e,t,n){function r(r,a,o){const s=r.createElement("div");s.classList.add("fullWidth");const u=s.appendChild(r.createElement("table"));u.classList.add("fullWidth");const d=u.appendChild(function(t){const a=new l.Literal(t.uri),u=n.urlType.sameTerm(_.vcard("WebID")),d=n.editable?async function(){try{await async function(e,t,n,r){const i=r.each(e,_.vcard("url"),null,e.doc()).filter(t=>r.holds(t,_.rdf("type"),n,e.doc())).filter(n=>r.holds(n,_.vcard("value"),t,e.doc()));if(!i.length)throw new Error(`Person ${e} does not have ${I} ${t}.`);const a=i[0],o=[l.st(e,_.vcard("url"),a,e.doc()),l.st(a,_.rdf("type"),n,e.doc()),l.st(a,_.vcard("value"),t,e.doc())];await r.updater.update(o,[]);const s=r.each(null,_.vcard("hasMember"),r.sym(t));let c=[];const u=[];s.forEach(async n=>{c=c.concat(r.statementsMatching(r.sym(t),_.owl("sameAs"),e,n.doc())),u.push(l.st(n,_.vcard("hasMember"),e,n.doc())),r.statementsMatching(r.sym(t),_.owl("sameAs"),null,n.doc()).length<2&&(c=c.concat(r.statementsMatching(n,_.vcard("hasMember"),r.sym(t),n.doc())))}),await ue(c,u)}(e,a,n.urlType,o)}catch(e){s.appendChild(S.errorMessageBlock(r,"Error removing WebId from profile. If it persists, contact admin."))}await i()}:null,p={deleteFunction:d,draggable:!0};u&&(p.title=t.uri.split("/")[2],p.image=S.faviconOrDefault(r,t.site()));const f=S.personTR(r,c.ns.foaf("knows"),t,p);return u&&(f.children[1].textConent=p.title,f.classList.add("personaRow--webid")),f.classList.add("personaRow"),f}(a));d.classList.add("fullWidth");const p=u.appendChild(r.createElement("tr")).appendChild(r.createElement("td"));let f;p.setAttribute("colspan",3);let h=!0;const m=d.children[2].appendChild(S.button(r,L,"View",function(e){h=!h,f.classList.toggle("collapsed",!h),m.children[0].src=h?B:L,m.setAttribute("aria-expanded",h?"true":"false"),m.setAttribute("aria-label",h?"Collapse profile":"Expand profile")}));m.classList.add("personaOpenButton"),m.setAttribute("aria-expanded","true"),m.setAttribute("aria-label","Collapse profile");const g=(D(e)||D(a),"profile");return S.publicData.loadPublicDataThing(o,e,a).then(e=>{try{f=function(e,t,n,r){const i=r.session.paneRegistry.byName(n).render(t,r);return i.classList.add("namedPane"),i}(0,a,g,t),f.classList.add("fullWidth"),p.appendChild(f)}catch(e){f=S.errorMessageBlock(r,"Error displaying profile. If it persists, contact admin."),p.appendChild(f)}},e=>{f=S.errorMessageBlock(r,"Error loading profile. If it persists, contact admin."),p.appendChild(f)}),s}async function i(){const t=O(P,e);u.classList.toggle("hidden",t.length>0),T.syncTableToArrayReOrdered(d,t,e=>r(a,e,P))}const{dom:a}=t;(n=n||{}).editable=P.updater.editable(e.doc().uri,P);const o=a.createElement("div");if(o.classList.add("webidControl"),0===O(P,e).length&&!n.editable)return o.classList.add("hidden"),o;const s=o.appendChild(a.createElement("h3"));s.textContent=n.idNoun,s.classList.add("webidHeading");const u=o.appendChild(a.createElement("p"));if(u.classList.add("webidPrompt"),u.textContent=n.longPrompt,o.appendChild(a.createElement("table")).classList.add("fullWidth"),n.editable){const t={editable:n.editable,manualURIEntry:!0,idNoun:n.idNoun,dbLookup:n.dbLookup},r={queryParams:n.queryParams||R,targetClass:n.class};try{o.appendChild(await S.renderAutocompleteControl(a,e,t,r,async function(e,t){try{await async function(e,t,n,r){try{new URL(t)}catch(e){throw new Error(`${I}: ${t} is not a valid url.`)}const i=r.bnode(),a=[l.st(e,_.vcard("url"),i,e.doc()),l.st(i,_.rdf("type"),n,e.doc()),l.st(i,_.vcard("value"),t,e.doc())],o=r.each(null,_.vcard("hasMember"),e);let s=[];o.forEach(n=>{s=s.concat(r.statementsMatching(n,_.vcard("hasMember"),e,n.doc())),a.push(l.st(n,_.vcard("hasMember"),r.sym(t),n.doc())),a.push(l.st(r.sym(t),_.owl("sameAs"),e,n.doc()))});try{await ue(s,a)}catch(e){throw new Error(`Could not create webId ${I}: ${t}.`)}}(e,t,n.urlType,P)}catch(e){o.appendChild(S.errorMessageBlock(a,"Error adding WebID to profile. If it persists, contact admin."))}await i()}))}catch(e){o.appendChild(S.errorMessageBlock(a,"Error rendering autocomplete. If it persists, contact admin."))}}const d=o.appendChild(a.createElement("div"));return await i(),o}var U=a(546),z={};z.styleTagTransform=x(),z.setAttributes=v(),z.insert=m().bind(null,"head"),z.domAPI=f(),z.insertStyleElement=y(),d()(U.A,z),U.A&&U.A.locals&&U.A.locals;const H=s.store,q=c.ns;let $;function W(e){$=e}let V=null,G=null;function K(e){Array.from(document.body.children).filter(e=>e!==V).forEach(t=>{e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden")})}function J({title:e,message:t,buttons:n}){const r=(V&&document.body.contains(V)||(V=null,V=$.createElement("div"),V.id="contacts-modal",V.className="focus-trap hidden",V.setAttribute("role","presentation"),V.innerHTML='\n <div class="modal" role="dialog" aria-modal="true" aria-labelledby="modal-title" aria-describedby="modal-desc">\n <h2 id="modal-title"></h2>\n <div id="modal-desc"></div>\n <div id="modal-buttons"></div>\n </div>\n ',document.body.appendChild(V),V.addEventListener("keydown",e=>{if("Escape"===e.key){e.stopPropagation();const t=V.querySelector("button[data-cancel]");t?t.click():Y()}else if("Tab"===e.key){const t=Array.from(V.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter(e=>!e.hasAttribute("disabled"));if(0===t.length)return;const n=t.indexOf(document.activeElement);e.shiftKey?0===n&&(t[t.length-1].focus(),e.preventDefault()):n===t.length-1&&(t[0].focus(),e.preventDefault())}})),V);G=document.activeElement,K(!0),r.classList.remove("hidden"),r.querySelector("#modal-title").textContent=e||"";const i=r.querySelector("#modal-desc");"string"==typeof t?i.textContent=t:(i.innerHTML="",i.appendChild(t));const a=r.querySelector("#modal-buttons");return a.innerHTML="",new Promise(e=>{n.forEach(t=>{const n=$.createElement("button");n.setAttribute("type","button"),n.textContent=t.label,t.primary&&n.classList.add("btn-primary"),t.cancel&&n.setAttribute("data-cancel","true"),n.addEventListener("click",()=>{Y(t.value),e(t.value)}),a.appendChild(n)});const t=a.querySelector("button");t&&t.focus()})}function Y(e){V&&(V.classList.add("hidden"),K(!1),G&&G.focus&&G.focus())}function Q(e,t="Information"){return J({title:t,message:e,buttons:[{label:"OK",value:!0,primary:!0}]})}function X(e,t="Confirm"){return J({title:t,message:e,buttons:[{label:"Cancel",value:!1,cancel:!0},{label:"OK",value:!0,primary:!0}]})}function Z(e){return e&&e.endsWith(".ttl")?e+"#this":e}function ee(e,t,n){e.appendChild(c.widgets.errorMessageBlock(t,n,"pink"))}function te(e,t,n){return e.each(t,q.owl("sameAs"),null,n).concat(e.each(null,q.owl("sameAs"),t,n))}function ne(e,t){return new Promise(function(n,r){e.fetcher.load(t).then(function(){const i=e.each(t,q.ldp("contains")).map(t=>e.holds(t,q.rdf("type"),q.ldp("BasicContainer"))?ne(e,t):(t.uri,e.fetcher.webOperation("DELETE",t.uri)));t.uri,i.push(e.fetcher.webOperation("DELETE",t.uri)),Promise.all(i).then(e=>{n()}).catch(r)}).catch(r)})}async function re(e){const t=ae(e);if(!await X("Really DELETE "+t+"?"))throw new Error("User cancelled contact deletion");const n=H.statementsMatching(e).concat(H.statementsMatching(void 0,void 0,e));try{await H.updater.updateMany(n),await H.fetcher.delete(e.doc())}catch(e){throw new Error("An error occured while deleting.")}}function ie(e,t){let n=ae(e),r=ae(t);if(n&&r){if(n=n.toLowerCase(),r=r.toLowerCase(),n>r)return 1;if(n<r)return-1}return e.uri>t.uri?1:e.uri<t.uri?-1:0}function ae(e){const t=H.any(e,q.vcard("fn"))||H.any(e,q.foaf("name"))||H.any(e,q.vcard("organization-name"));return t?t.value:"???"}const oe=c.ns,se=c.utils,ce=s.store,le=ce.updater;async function ue(e,t=[]){const n=e.concat(t).map(e=>e.why),r=[];n.forEach(e=>{r.find(t=>t.equals(e))||r.push(e)});const i=r.map(n=>ce.updater.update(e.filter(e=>e.why.sameTerm(n)),t.filter(e=>e.why.sameTerm(n))));return Promise.all(i)}async function de(e,t){await ce.fetcher.load(e.doc());const n=ce.any(e,oe.vcard("groupIndex")),r=function(e){return e.replace(/\W/gu,"_").replace(/_+/g,"_")}(t),i=ce.sym(e.dir().uri+"Group/"+r+".ttl#this"),a=i.doc();try{await ce.fetcher.load(n)}catch(e){throw new Error("Error loading group index!"+n.uri+": "+e)}if(ce.holds(e,oe.vcard("includesGroup"),i,n))return i;const o=[l.st(e,oe.vcard("includesGroup"),i,n),l.st(i,oe.rdf("type"),oe.vcard("Group"),n),l.st(i,oe.vcard("fn"),t,n)];try{await le.update([],o)}catch(e){throw new Error("Could not update group index "+e)}const s=[l.st(e,oe.vcard("includesGroup"),i,a),l.st(i,oe.rdf("type"),oe.vcard("Group"),a),l.st(i,oe.vcard("fn"),t,a)];try{await le.update([],s)}catch(e){throw new Error("Could not update group file: "+e)}return i}async function pe(e,t){const n=[e.doc(),t.doc()];try{await ce.fetcher.load(n)}catch(e){throw new Error("Error adding to group.")}const r=ce.findTypeURIs(e);if(!(oe.vcard("Individual").uri in r)&&!(oe.vcard("Organization").uri in r))return Object.keys(r),void Q("You are trying to add something else than an individual or organization.");let i=ce.any(e,oe.vcard("fn"));const a=ce.any(t,oe.vcard("fn"));if(!i)return void Q("What you are trying to add seems to have no full name.");if(ce.holds(e,oe.vcard("fn"),null,t.doc()))return""===i&&(i="Contact"),void Q(i+" already exists in group "+a+".");const o="Add "+i+" to group "+a+"?";if(!await X(o))return;const s=[l.st(e,oe.vcard("fn"),i,t.doc())],c=O(ce,e).map(e=>e.value);c.length?c.forEach(n=>{s.push(l.st(ce.sym(n),oe.owl("sameAs"),e,t.doc())),s.push(l.st(t,oe.vcard("hasMember"),ce.sym(n),t.doc()))}):s.push(l.st(t,oe.vcard("hasMember"),e,t.doc()));try{await le.update([],s),ce.fetcher.unload(t.doc()),await ce.fetcher.load(t.doc())}catch(e){throw new Error("Error adding to group.")}return e}function fe(e,t){const n=e.each(t,oe.vcard("hasMember"),null,t.doc());let r=[];n.forEach(n=>{r=e.any(n,oe.vcard("fn"),null,t.doc())?r.concat(n):r.concat(e.each(n,oe.owl("sameAs"),null,t.doc()))});const i=new Set(r.map(e=>e.uri));return r=[...i].map(t=>e.sym(t)),r}function he(e,t){const n=e.dir().dir().dir();return t.uri&&t.uri.startsWith(n.uri)}const{setACLUserPublic:me}=s.solidLogicSingleton.acl;var ge=a(715),ve={};ve.styleTagTransform=x(),ve.setAttributes=v(),ve.insert=m().bind(null,"head"),ve.domAPI=f(),ve.insertStyleElement=y(),d()(ge.A,ve),ge.A&&ge.A.locals&&ge.A.locals;const be={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/svg+xml":"svg","image/webp":"webp","image/bmp":"bmp","image/tiff":"tiff","application/pdf":"pdf","text/plain":"txt","text/html":"html","application/json":"json","application/octet-stream":"bin"},ye=Object.fromEntries(Object.entries(be).map(([e,t])=>[t,e])),we=e=>be[e]||!1,xe=e=>{const t=e.split(".").pop().toLowerCase();return ye[t]||!1},Ae=c.ns,Ee=c.utils,Ce=s.store;function ke(e,t){function n(t){g.appendChild(c.widgets.errorMessageBlock(e,t,"pink"))}async function r(e,t,n){const r=[l.st(e,Ae.vcard("hasPhoto"),t,e.doc())];try{n?await Ce.updater.update(r,[]):await Ce.updater.update([],r)}catch(e){throw new Error("Writing back image link FAILED")}}function i(e){Ce.fetcher.nowOrWhenFetched(e.doc(),function(n,r){if(n){const n=Ce.findTypeURIs(e);for(const e in n)C();Ce.add(t,Ae.wf("attachment"),e,t.doc())}})}function a(e,r,i){const a=we(r);let o,s;r!==xe(e)&&(e+="_."+a);const c=r.startsWith("image");let l,u;for(c?(o="image_",s=Ae.vcard("hasPhoto")):(o="attachment_",s=Ae.wf("attachment")),l=0;u=Ce.sym(t.dir().uri+e),Ce.holds(t,Ae.vcard("hasPhoto"),u);l++)e=o+l+"."+a;i.byteLength,Ce.fetcher.webOperation("PUT",u.uri,{data:i,contentType:r}).then(function(e){if(!e.ok)return e.status,e.statusText,void n("Error uploading picture. If the problem persists, contact admin.");Ce.add(t,s,u,t.doc()),Ce.fetcher.putBack(t.doc(),{contentType:"text/turtle"}).then(function(e){c&&v.refresh()},function(e){})})}async function o(e){for(const t of e){let e=l.sym(t);if(C(),t.startsWith("http")&&t.indexOf("#")<0){t.startsWith("http:")&&(e=l.sym("https:"+t.slice(5)));const n={withCredentials:!1,credentials:"omit"};let r;try{r=await Ce.fetcher.webOperation("GET",e.uri,n)}catch(t){return k(),void i(e)}const o=r.headers.get("Content-Type");let s=e.uri.split("/").slice(-1)[0];s=s.split("?")[0];const c=await r.arrayBuffer();return r.ok?void a(s,o,c):(k(r.status),void i(e))}n("Not a web document URI, cannot copy "+e+" as picture."),i(e)}}function u(e){for(let t=0;t<e.length;t++){const n=e[t];C((n.name,n.type,n.size,n.lastModifiedDate&&n.lastModifiedDate.toLocaleDateString()));const r=new FileReader;r.onload=function(e){return function(t){const n=t.target.result;n.byteLength,a(encodeURIComponent(e.name),e.type,n)}}(n),r.readAsArrayBuffer(n)}}function d(t){const n=e.createElement("img");return n.classList.add("mugshotImage"),n.setAttribute("alt",t?"Contact photo":"Drop photo here"),c.widgets.makeDropTarget(n,o,u),t&&(s.store.fetcher._fetch(t.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);n.setAttribute("src",t)}),c.widgets.makeDraggable(n,t)),n}function p(){let e=Ce.each(t,Ae.vcard("hasPhoto"));e.sort(),e=e.slice(0,5),0===e.length?(v.innerHTML="",m&&v.appendChild(b)):Ee.syncTableToArray(v,e,d)}function f(){return Ce.sym(t.dir().uri+"Image_"+Date.now()+".png")}async function h(e){e&&(await r(t,e),p())}const m=Ce.updater.editable(t.doc().uri,Ce),g=e.createElement("div"),v=g.appendChild(e.createElement("div")),b=d();return c.widgets.setImage(b,t),p(),v.refresh=p,m&&g.appendChild(function(){const i=e.createElement("table"),a=i.appendChild(e.createElement("tr")),o=a.appendChild(e.createElement("td")),s=a.appendChild(e.createElement("td")),l=a.appendChild(e.createElement("td"));o.appendChild(c.media.cameraButton(e,Ce,f,h));try{s.appendChild(c.widgets.fileUploadButtonDiv(e,u))}catch(e){}return l.appendChild(function(){const i=c.widgets.button(e,c.icons.iconBase+"noun_925021.svg","Drag here to delete",void 0,{"aria-label":"Delete picture - drag picture here"});return c.widgets.makeDropTarget(i,async function(e){const i=Ce.each(t,Ae.vcard("hasPhoto")).map(e=>e.uri);for(const a of e){if(!i.includes(a))return void Q("Only drop pictures onto this trash can.");if(await X("Really DELETE picture?"))try{C(),await r(t,Ce.sym(a),!0),C(),await Ce.fetcher.webOperation("DELETE",a)}catch(e){return void n("Error deleting picture. If it persists, contact your admin.")}}p()},null),i}()),i}()),g}var _e=a(93),Se={};Se.styleTagTransform=x(),Se.setAttributes=v(),Se.insert=m().bind(null,"head"),Se.domAPI=f(),Se.insertStyleElement=y(),d()(_e.A,Se),_e.A&&_e.A.locals&&_e.A.locals;const Te=c.ns,Pe=c.utils,Fe=s.store;let Re,Ie={},Ne={},Le=null,Be=null,Oe=null,je=null,De=null,Me=null,Ue=null;function ze(e,t){e.querySelectorAll("button").forEach(e=>{e.classList.remove("btn-primary","allGroupsButton--selected","allGroupsButton--active","allGroupsButton--loaded"),e.classList.add("btn-secondary")}),t&&(t.classList.remove("btn-secondary"),t.classList.add("btn-primary"))}function He(e,t,n,r,i,a,o,s,c,l){Re=r,Ie=i||{},a&&(Le=a),o&&(Oe=o),s&&(je=s),c&&(Me=c),l&&(Ue=l),De=e,Be=t;const u=Je(De,n);Pe.syncTableToArrayReOrdered(Be,u,We)}function qe(e){const t=Fe.any(e,Te.vcard("fn")),n=Re.createElement("li");n.setAttribute("role","listitem"),n.setAttribute("aria-label",t?t.value:"Some group"),n.subject=e,c.widgets.makeDraggable(n,e);const r=n.appendChild(Re.createElement("button"));return r.setAttribute("type","button"),r.innerHTML=t?t.value:"Some group",r.classList.add("allGroupsButton","actionButton","btn-secondary","action-button-focus"),{groupLi:n,groupButton:r,name:t}}async function $e(e,t){for(const n of e){let e=Fe.sym(n);try{e=await pe(e,t)}catch(e){Q("Error adding to group. Make sure you are adding a contact URI.")}e&&Qe(Le)}}function We(e){function t(t){if(t.preventDefault(),ze(Be,r),Ue&&Ue(),!t.metaKey)for(const e in Ie)delete Ie[e];Ie[e.uri]=!Ie[e.uri],Ge(Be,Ie),Fe.fetcher.nowOrWhenFetched(e.doc(),void 0,function(e,t){Qe(Le,null,!1)})}const{groupLi:n,groupButton:r}=qe(e);return r.addEventListener("click",t,!1),c.widgets.makeDropTarget(n,t=>$e(t,e)),n.addEventListener("click",t,!0),n}function Ve(e,t,n){function r(r,i){return new Promise((a,o)=>{i.classList.add("group-loading"),i.setAttribute("aria-busy","true"),Fe.fetcher.nowOrWhenFetched(r.doc(),void 0,function(s,c){if(!s){const e="Cannot load group "+r+". Stack: "+c;return n&&n(!1,e),void o(e)}i.classList.remove("group-loading"),i.setAttribute("aria-busy","false"),i.classList.add("selected"),e[r.uri]=!0,Ge(t,e),Qe(Le,null),n&&n(!0),a(!0)})})}for(let e=0;e<t.children.length;e++){const i=t.children[e],a=i.subject;a&&r(a,i).catch(e=>{n&&n(!1,e)})}}function Ge(e,t){for(let n=0;n<e.children.length;n++){const r=e.children[n];r.subject&&r.classList.toggle("selected",!!t[r.subject.uri])}}function Ke(e,t,n,r,i,a,o){Re=r,i&&(Ie=i),a&&(Le=a),o&&(Oe=o),Be=n;const s=Je(e,t);s.length>0&&We(s[0]),Pe.syncTableToArrayReOrdered(n,s,We)}function Je(e,t){let n=[];if(t.foreignGroup&&n.push(["",Fe.any(t.foreignGroup,Te.vcard("fn")),t.foreignGroup]),e){const t=Fe.any(e,Te.vcard("groupIndex")),r=(e?Fe.each(e,Te.vcard("includesGroup"),null,t):[]).map(function(t){return[e,Fe.any(t,Te.vcard("fn")),t]});n=n.concat(r),n.sort()}return n.map(e=>e[2])}async function Ye(e){const t=Fe.any(e,Te.vcard("groupIndex"));if(t){await Fe.fetcher.load(t);const n=e?Fe.each(e,Te.vcard("includesGroup"),null,t):[];return await Fe.fetcher.load(n),n}return[]}function Qe(e,t,n=!0){const r=e||Le;if(!r||!r.children||"number"!=typeof r.children.length)return;function i(e,t){function n(e){e.preventDefault(),Xe(r,t,je)}e.addEventListener("click",n),e.addEventListener("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),n(e))})}let a=[];Object.keys(Ie).map(e=>Fe.sym(e)).forEach(e=>{Ie[e.value]&&(a=a.concat(fe(Fe,e)))}),a.sort(ie);for(let e=0;e<a.length-1;)a[e].uri===a[e+1].uri?a.splice(e,1):e++;Pe.syncTableToArrayReOrdered(r,a,e=>function(e){const t=Re.createElement("li");t.setAttribute("role","listitem"),t.setAttribute("tabindex","0"),t.classList.add("personLi"),t.subject=e,c.widgets.makeDraggable(t,e);const n=Re.createElement("div");n.classList.add("personLi-row");const r=Re.createElement("div");r.classList.add("personLi-avatar");const a=Re.createElement("div");a.classList.add("avatar-placeholder"),a.innerHTML='<svg aria-hidden="true" width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="18" cy="18" r="18" fill="#e0e0e0"/><text x="50%" y="58%" text-anchor="middle" fill="#595959" font-size="16" font-family="Arial" dy=".3em">?</text></svg>',r.appendChild(a);const o=ae(e)||"Unknown Name";function s(){const t=Fe.any(e,Te.vcard("hasPhoto"));if(t&&t.value){const e=Re.createElement("img");e.src=t.value,e.alt=o+" avatar",r.replaceChild(e,r.firstChild)}}s(),Fe.fetcher.nowOrWhenFetched(e.doc(),void 0,function(e,n){e?s():t.classList.add("personLi--error")});const l=Re.createElement("div");l.classList.add("personLi-info"),t.setAttribute("aria-label",o);const u=Re.createElement("div");u.classList.add("personLi-name"),u.textContent=o,l.appendChild(u);const d=Re.createElement("div");return d.classList.add("personLi-arrow"),d.innerHTML='<svg aria-hidden="true" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6 4.5L11.25 9L6 13.5" stroke="#595959" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>',n.appendChild(r),n.appendChild(l),n.appendChild(d),t.appendChild(n),i(t,e),t}(e)),et(r,n,t||je)}function Xe(e,t,n){if(!n)return;let r;n.parentNode&&n.parentNode.classList.remove("hidden"),n.innerHTML="Loading...",n.setAttribute("aria-busy","true"),n.classList.add("detailsSectionContent--wide"),Ne={},Ne[t.uri]=!0,et(e,!1,n);try{r=De?function(e){const t=Fe.allAliases(e),n=De.dir().uri;for(let e=0;e<t.length;e++)if(t[e].uri.slice(0,n.length)===n)return t[e];throw new Error("No local URI for "+e)}(t):t}catch(e){return n.innerHTML="",n.setAttribute("aria-busy","false"),void ee(n,Re,"Cannot load contact: "+e.message)}Fe.fetcher.nowOrWhenFetched(r.doc(),void 0,function(i,a){if(n.innerHTML="",n.setAttribute("aria-busy","false"),!i)return void ee(n,Re,"Failed to load contact. If it persists, contact your admin.");const o=Re.createElement("div");o.classList.add("contact-toolbar");const l=c.widgets.linkIcon(Re,r);l.setAttribute("title","Uri of contact"),o.appendChild(l),s.authn.currentUser()&&c.widgets.deleteButtonWithCheck(Re,o,"contact",async function(){const r=t.dir();Fe.any(t,Te.vcard("fn")),await Ye();const i=Fe.any(De,Te.vcard("nameEmailIndex"));await Fe.fetcher.load(i);const a=ot(t);let o=[];a.forEach(e=>{te(Fe,t,e.doc()).forEach(t=>{1===te(Fe,t,e.doc()).length&&(o=o.concat(Fe.statementsMatching(e,Te.vcard("hasMember"),t,e.doc())))})}),await Fe.updater.updateMany(o);try{await re(t)}catch(e){return void ee(n,Re,"Failed to delete contact. If it persists, contact your admin.")}try{await ne(Fe,r)}catch(e){return void ee(n,Re,"Failed to delete contact. If it persists, contact your admin.")}Qe(e,n),n.innerHTML="Contact data deleted."}).classList.add("deleteButton"),n.appendChild(o),n.classList.add("detailsSectionContent--wide"),n.appendChild(function(e,t){const n=Me.session.paneRegistry.byName(t).render(e,Me);return n.classList.add("renderPane"),n}(r,"contact"))})}function Ze(e){if(Ne={},e)for(let t=0;t<e.children.length;t++)e.children[t].classList.remove("selected")}function et(e,t,n){let r=0,i=null;for(let t=0;t<e.children.length;t++){const n=e.children[t],a=tt(ae(n.subject));a&&(r++,i=n),n.classList.toggle("selected",a&&!!Ne[n.subject.uri]),n.classList.toggle("hidden",!a)}1===r&&t&&Xe(e,i.subject,n)}function tt(e){const t=Oe.value.trim().toLowerCase();if(0===t.length)return!0;const n=t.split(" ");for(let t=0;t<n.length;t++){const r=n[t];if(e.toLowerCase().indexOf(r)<0)return!1}return!0}async function nt(e,t){const n=await Ye(e);if(n&&n.length>0){const{del:e,ins:r}=await async function(e){const t=[],n=[];return e.forEach(e=>{ce.each(e,oe.vcard("hasMember"),null,e.doc()).forEach(r=>{const i=te(ce,r,e.doc());if(i.length&&he(e,r))for(const a of i)if(!he(e,a)){t.push(l.st(e,oe.vcard("hasMember"),r,e.doc())),n.push(l.st(e,oe.vcard("hasMember"),a,e.doc()));break}})}),{del:t,ins:n}}(n);s.authn.currentUser()&&e.length&&c.widgets.deleteButtonWithCheck(Re,t,"contact",async function(){await Fe.updater.updateMany(e,r),e.length})}}async function rt(){const e=function(e){if(e)return e;let t;for(const e in Ie){t=Fe.sym(e);const n=Fe.any(void 0,Te.vcard("includesGroup"),t);if(n)return n}throw new Error("findBookFromGroups: Cant find address book which this group is part of")}(De);try{await Fe.fetcher.load(e)}catch(t){throw new Error("Book won't load:"+e)}const t=Fe.any(e,Te.vcard("nameEmailIndex"));if(!t)throw new Error("No nameEmailIndex");await Fe.fetcher.load(t)}const it=c.ns,at=s.store;function ot(e){let t=at.statementsMatching(null,it.owl("sameAs"),e).map(e=>e.why).concat(at.each(null,it.vcard("hasMember"),e));const n=new Set(t.map(e=>Z(e.uri)));return t=[...n].map(e=>at.sym(e)),t}async function st(e,t,n){const r=n||null;function i(t){const n=l.any(t,it.vcard("fn")),i=n?n.value:t.uri,d=o.createElement("li");d.classList.add("group-membership-item");const p=o.createElement("button");p.setAttribute("type","button"),p.classList.add("allGroupsButton","actionButton","btn-secondary","action-button-focus"),p.textContent=i,p.title=i,d.appendChild(p);const f=o.createElement("div");f.classList.add("group-membership-toolbar");const h=c.widgets.linkIcon(o,t);return h.setAttribute("title","Link to "+i),f.appendChild(h),s.authn.currentUser()&&c.widgets.deleteButtonWithCheck(o,f,"membership in "+i,async function(){await async function(e,t){const n=l.any(e,it.vcard("fn")),i=l.any(t,it.vcard("fn")),s=l.each(null,it.owl("sameAs"),e,t.doc());let d=[];s.forEach(n=>{l.statementsMatching(n,it.owl("sameAs"),e,t.doc())&&(d=d.concat(n))}),d=j(l,e).map(e=>e.value);const p=d.map(e=>l.sym(e));let f=[e].concat(p).flatMap(e=>l.each(null,it.vcard("hasMember"),e));if(f=[...new Set(f.map(e=>e.uri))].map(e=>l.sym(e)),f.length<2)return void Q("Must be a member of at least one group. Add to another group first.");const h="Remove "+n+" from group "+i+"?";if(await X(h)){let n=l.statementsMatching(e,void 0,void 0,t.doc()).concat(l.statementsMatching(void 0,void 0,e,t.doc()));d.forEach(e=>{l.statementsMatching(e,it.owl("sameAs"),void 0,t.doc()).length<2&&(n=n.concat(l.statementsMatching(void 0,void 0,e,t.doc())))});try{await l.updater.update(n,[])}catch(e){const n="Error removing member from group "+t+": "+e;return void u.appendChild(c.widgets.errorMessageBlock(o,n,"pink"))}l.fetcher.unload(t.doc()),await l.fetcher.load(t.doc()),a(),Qe(r)}}(e,t)}),d.appendChild(f),d}function a(){const t=ot(e),n=u.querySelector(".group-pills-wrapper");0===t.length?n.innerHTML="<span>Not part of any Address Book group.</span>":n.innerHTML="",t.forEach(e=>{n.appendChild(i(e))})}const{dom:o}=t,l=t.session.store,u=o.createElement("div");u.classList.add("group-membership-container");const d=o.createElement("h3");d.classList.add("group-membership-header"),d.textContent="Part of groups",u.appendChild(d);const p=o.createElement("ul");return p.classList.add("group-pills-wrapper"),u.appendChild(p),await async function(e=null){if(!e&&!(e=l.any(void 0,it.vcard("includesGroup"))))return;const t=l.any(e,it.vcard("groupIndex")),n=e?l.each(e,it.vcard("includesGroup"),null,t):[];await l.fetcher.load(n)}(),u.refresh=a,a(),u}const ct='# This turtle file defines the forms used in the contacts management\n#\n# Individuals and orgs are in one file as they both\n# share some forms (address etc) and also interactions (roles)\n\n# Forms documentation: https://solidos.github.io/solid-ui/docs/forms-intro.html\n\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix dct: <http://purl.org/dc/terms/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix prov: <http://www.w3.org/ns/prov#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\n\n############# For individual:\n:individualForm a ui:Form ;\n dct:title "Contact details for a person" ;\n ui:parts (\n :fullNameField\n :nicknameGroup\n :pronounsGroup\n :roleField\n :orgNameField\n # :addressesComment\n :addresses\n # :emailComment\n :eMails\n # :telephoneComment\n :telephones\n :birthdayField\n # :noteComment\n :noteField \n ) .\n\n :fullNameField\n a ui:SingleLineTextField ;\n ui:label "Name";\n ui:maxLength "128" ;\n ui:property vcard:fn .\n\n # Nickname\n\n :nicknameGroup a ui:Group; ui:weight 0; \n ui:parts (:nicknameField) .\n\n :nicknameField a ui:SingleLineTextField; \n ui:property foaf:nick;\n ui:label "Nickname"@en, "Nom court"@fr.\n\n # Pronouns\n\n :pronounsGroup a ui:Group; ui:weight 0; \n ui:parts ( :subjectPronounForm :objectPronounForm :relativePronounForm) .\n\n :subjectPronounForm a ui:SingleLineTextField; ui:property solid:preferredSubjectPronoun;\n ui:label "He/she/they" .\n :objectPronounForm a ui:SingleLineTextField; ui:property solid:preferredObjectPronoun;\n ui:label "Him/her/them" .\n :relativePronounForm a ui:SingleLineTextField; ui:property solid:preferredRelativePronoun;\n ui:label "His/hers/theirs" .\n \n :roleField\n a ui:SingleLineTextField ;\n ui:suppressEmptyUneditable true;\n ui:maxLength "128" ;\n ui:property vcard:role .\n\n :orgNameField\n a ui:SingleLineTextField ;\n ui:suppressEmptyUneditable true;\n ui:maxLength "128" ;\n ui:property vcard:organization-name .\n\n :addresses a ui:Multiple ;\n dct:title "Address details" ;\n ui:part :oneAddress ;\n ui:property vcard:hasAddress .\n\n :oneAddress a ui:Group ;\n ui:parts ( \n :id1409437207443 :id1409437292400 \n :id1409437421996 :id1409437467649 \n :id1409437569420 ). \n\n :id1409437207443\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:street-address .\n\n :id1409437292400\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:locality .\n\n :id1409437421996\n a ui:SingleLineTextField ;\n ui:maxLength "25" ;\n ui:property vcard:postal-code .\n\n :id1409437467649\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:region .\n\n :id1409437569420\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:country-name .\n\n\n :eMails a ui:Multiple ;\n ui:part :oneEMail ;\n ui:property vcard:hasEmail .\n\n :oneEMail a ui:Group ; # hint: side by side is good\n ui:part :emailValue, :emailType ;\n ui:parts ( :emailType :emailValue ).\n\n :emailValue\n a ui:EmailField ; ui:label "email";\n ui:property vcard:value .\n\n :emailType\n a ui:Classifier ;\n ui:canMintNew "0" ;\n ui:category vcard:Type ;\n ui:from vcard:Type ;\n ui:property rdf:type .\n\n :telephones a ui:Multiple ;\n ui:part :onetelephone ;\n ui:property vcard:hasTelephone .\n\n :onetelephone\n a ui:Group ;\n ui:part :telephoneValue, :telephoneType ;\n ui:parts ( :telephoneType :telephoneValue ).\n\n :telephoneValue\n a ui:PhoneField ;\n ui:property vcard:value .\n\n :telephoneType\n a ui:Classifier ;\n ui:canMintNew "0" ;\n ui:category vcard:TelephoneType ;\n ui:from vcard:Type ;\n ui:property rdf:type .\n\n :birthdayField a ui:DateField;\n ui:label "Born"@en;\n ui:suppressEmptyUneditable true;\n ui:property vcard:bday .\n\n :noteField\n a ui:MultiLineTextField ;\n ui:suppressEmptyUneditable true;\n ui:property vcard:note .\n\n# Ontology additions or interpretations needed for the form to work well\n\n# The ontology file doesn\'t make them disjoint. This makes the selector be a choice.\nvcard:TelephoneType owl:disjointUnionOf ( vcard:Cell vcard:Home vcard:Work) .\nvcard:Type owl:disjointUnionOf (vcard:Home vcard:Work) . # for email\n\n# Better field labels\nvcard:Cell ui:label "mobile"@en . # app will make initial caps if necessary\nvcard:hasAddress ui:label "address"@en .\nvcard:bday ui:label "born"@en.\nvcard:hasEmail ui:label "email"@en .\nvcard:hasTelephone ui:label "phone"@en .\nvcard:note ui:label "notes"@en .\n\n\n############ For organizations\n\n:organizationForm a ui:Form ; \n dct:title "Contact details for an organization";\n ui:parts (\n :OrgClassifier\n :fullNameField\n :homePageURIField\n :addresses\n :eMails\n :telephones\n :noteField ) .\n\n :OrgClassifier a ui:Classifier; \n ui:label "What sort of organization?"@en;\n ui:category solid:InterestingOrganization .\n\n :homePageURIField a ui:NamedNodeURIField;\n ui:label "Homepage"@en;\n ui:property schema:url .\n\n# Ontology data to drive the :OrgClassifier classifier\n solid:InterestingOrganization owl:disjointUnionOf (\n # Airline - a Corporation\n # Consortium - a Corporation or a NGO\n schema:Corporation\n schema:EducationalOrganization\n schema:ResearchOrganization # Proposed. https://github.com/schemaorg/schemaorg/issues/2877\n # FundingScheme - eh?\n schema:GovernmentOrganization\n # LibrarySystem\n # LocalBusiness - Corporation\n # MedicalOrganization - a Corporation or a NGO\n schema:NGO\n # NewsMediaOrganization - a Corporation or a NGO\n schema:PerformingGroup # a band\n schema:Project # like Solid\n schema:SportsOrganization) .\n';var lt=a(479),ut={};ut.styleTagTransform=x(),ut.setAttributes=v(),ut.insert=m().bind(null,"head"),ut.domAPI=f(),ut.insertStyleElement=y(),d()(lt.A,ut),lt.A&&lt.A.locals&&lt.A.locals;var dt=a(434),pt={};pt.styleTagTransform=x(),pt.setAttributes=v(),pt.insert=m().bind(null,"head"),pt.domAPI=f(),pt.insertStyleElement=y(),d()(dt.A,pt),dt.A&&dt.A.locals&&dt.A.locals;const ft="https://solidos.github.io/contacts-pane/src/ontology/";function ht(e,t,n,r){const i=r||ft+n,a=(0,l.sym)(i);e.holds(void 0,void 0,void 0,a)||(0,l.parse)(t,e,i,"text/turtle",()=>null)}const mt=c.ns,gt=s.store,vt="individualAndOrganizationForm.ttl";async function bt(e,t,n,r){const i=gt.findTypeURIs(n),a=!(!i[mt.vcard("Organization").uri]&&!i[mt.schema("Organization").uri]),o=gt.updater.editable(n.doc().uri,gt);ht(gt,ct,vt);const u=c.ns.vcard("Type").doc().uri;ht(gt,'@prefix : <http://www.w3.org/2006/vcard/ns#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xml: <http://www.w3.org/XML/1998/namespace> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\n:Acquaintance a owl:Class ;\n rdfs:label "Acquaintance"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Agent a owl:Class ;\n rdfs:label "Agent"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:BBS a owl:Class ;\n rdfs:label "BBS"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Car a owl:Class ;\n rdfs:label "Car"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Cell a owl:Class ;\n rdfs:label "Cell"@en ;\n rdfs:comment "Also called mobile telephone"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Child a owl:Class ;\n rdfs:label "Child"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Colleague a owl:Class ;\n rdfs:label "Colleague"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Contact a owl:Class ;\n rdfs:label "Contact"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Coresident a owl:Class ;\n rdfs:label "Coresident"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Coworker a owl:Class ;\n rdfs:label "Coworker"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Crush a owl:Class ;\n rdfs:label "Crush"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Date a owl:Class ;\n rdfs:label "Date"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Dom a owl:Class ;\n rdfs:label "Dom"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Emergency a owl:Class ;\n rdfs:label "Emergency"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Fax a owl:Class ;\n rdfs:label "Fax"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Female a owl:Class ;\n rdfs:label "Female"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Friend a owl:Class ;\n rdfs:label "Friend"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Home a owl:Class ;\n rdfs:label "Home"@en ;\n rdfs:comment "This implies that the property is related to an individual\'s personal life"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type .\n\n:ISDN a owl:Class ;\n rdfs:label "ISDN"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Internet a owl:Class ;\n rdfs:label "Internet"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Intl a owl:Class ;\n rdfs:label "Intl"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Kin a owl:Class ;\n rdfs:label "Kin"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Label a owl:Class ;\n rdfs:label "Label"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Male a owl:Class ;\n rdfs:label "Male"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Me a owl:Class ;\n rdfs:label "Me"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Met a owl:Class ;\n rdfs:label "Met"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Modem a owl:Class ;\n rdfs:label "Modem"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Msg a owl:Class ;\n rdfs:label "Msg"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Muse a owl:Class ;\n rdfs:label "Muse"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Neighbor a owl:Class ;\n rdfs:label "Neighbor"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:None a owl:Class ;\n rdfs:label "None"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Other a owl:Class ;\n rdfs:label "Other"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:PCS a owl:Class ;\n rdfs:label "PCS"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Pager a owl:Class ;\n rdfs:label "Pager"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Parcel a owl:Class ;\n rdfs:label "Parcel"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Parent a owl:Class ;\n rdfs:label "Parent"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Postal a owl:Class ;\n rdfs:label "Postal"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Pref a owl:Class ;\n rdfs:label "Pref"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Sibling a owl:Class ;\n rdfs:label "Sibling"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Spouse a owl:Class ;\n rdfs:label "Spouse"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Sweetheart a owl:Class ;\n rdfs:label "Sweetheart"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Tel a owl:Class ;\n rdfs:label "Tel"@en ;\n rdfs:comment "This class is deprecated. Use the hasTelephone object property."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:Text a owl:Class ;\n rdfs:label "Text"@en ;\n rdfs:comment "Also called sms telephone"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:TextPhone a owl:Class ;\n rdfs:label "Text phone"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Unknown a owl:Class ;\n rdfs:label "Unknown"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Video a owl:Class ;\n rdfs:label "Video"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Voice a owl:Class ;\n rdfs:label "Voice"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Work a owl:Class ;\n rdfs:label "Work"@en ;\n rdfs:comment "This implies that the property is related to an individual\'s work place"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type .\n\n:X400 a owl:Class ;\n rdfs:label "X400"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:adr a owl:ObjectProperty ;\n rdfs:label "address"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasAddress .\n\n:agent a owl:ObjectProperty ;\n rdfs:label "agent"@en ;\n rdfs:comment "This object property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:anniversary a owl:DatatypeProperty ;\n rdfs:label "anniversary"@en ;\n rdfs:comment "The date of marriage, or equivalent, of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range [ a rdfs:Datatype ;\n owl:unionOf ( xsd:dateTime xsd:gYear ) ] .\n\n:bday a owl:DatatypeProperty ;\n rdfs:label "birth date"@en ;\n rdfs:comment "To specify the birth date of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range [ a rdfs:Datatype ;\n owl:unionOf ( xsd:dateTime xsd:dateTimeStamp xsd:gYear ) ] .\n\n:category a owl:DatatypeProperty ;\n rdfs:label "category"@en ;\n rdfs:comment "The category information about the object, also known as tags"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:class a owl:DatatypeProperty ;\n rdfs:label "class"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:email a owl:ObjectProperty ;\n rdfs:label "email"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasEmail .\n\n:extended-address a owl:DatatypeProperty ;\n rdfs:label "extended address"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:geo a owl:ObjectProperty ;\n rdfs:label "geo"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasGeo .\n\n:hasAdditionalName a owl:ObjectProperty ;\n rdfs:label "has additional name"@en ;\n rdfs:comment "Used to support property parameters for the additional name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarBusy a owl:ObjectProperty ;\n rdfs:label "has calendar busy"@en ;\n rdfs:comment "To specify the busy time associated with the object. (Was called FBURL in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarLink a owl:ObjectProperty ;\n rdfs:label "has calendar link"@en ;\n rdfs:comment "To specify the calendar associated with the object. (Was called CALURI in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarRequest a owl:ObjectProperty ;\n rdfs:label "has calendar request"@en ;\n rdfs:comment "To specify the calendar user address to which a scheduling request be sent for the object. (Was called CALADRURI in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCategory a owl:ObjectProperty ;\n rdfs:label "has category"@en ;\n rdfs:comment "Used to support property parameters for the category data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCountryName a owl:ObjectProperty ;\n rdfs:label "has country name"@en ;\n rdfs:comment "Used to support property parameters for the country name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasFN a owl:ObjectProperty ;\n rdfs:label "has formatted name"@en ;\n rdfs:comment "Used to support property parameters for the formatted name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasFamilyName a owl:ObjectProperty ;\n rdfs:label "has family name"@en ;\n rdfs:comment "Used to support property parameters for the family name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasGender a owl:ObjectProperty ;\n rdfs:label "has gender"@en ;\n rdfs:comment "To specify the sex or gender identity of the object. URIs are recommended to enable interoperable sex and gender codes to be used."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasGivenName a owl:ObjectProperty ;\n rdfs:label "has given name"@en ;\n rdfs:comment "Used to support property parameters for the given name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasHonorificPrefix a owl:ObjectProperty ;\n rdfs:label "has honorific prefix"@en ;\n rdfs:comment "Used to support property parameters for the honorific prefix data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasHonorificSuffix a owl:ObjectProperty ;\n rdfs:label "has honorific suffix"@en ;\n rdfs:comment "Used to support property parameters for the honorific suffix data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasInstantMessage a owl:ObjectProperty ;\n rdfs:label "has messaging"@en ;\n rdfs:comment "To specify the instant messaging and presence protocol communications with the object. (Was called IMPP in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasLanguage a owl:ObjectProperty ;\n rdfs:label "has language"@en ;\n rdfs:comment "Used to support property parameters for the language data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasLocality a owl:ObjectProperty ;\n rdfs:label "has locality"@en ;\n rdfs:comment "Used to support property parameters for the locality data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasNickname a owl:ObjectProperty ;\n rdfs:label "has nickname"@en ;\n rdfs:comment "Used to support property parameters for the nickname data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:seeAlso :nickname .\n\n:hasNote a owl:ObjectProperty ;\n rdfs:label "has note"@en ;\n rdfs:comment "Used to support property parameters for the note data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasOrganizationName a owl:ObjectProperty ;\n rdfs:label "has organization name"@en ;\n rdfs:comment "Used to support property parameters for the organization name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasOrganizationUnit a owl:ObjectProperty ;\n rdfs:label "has organization unit name"@en ;\n rdfs:comment "Used to support property parameters for the organization unit name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasPostalCode a owl:ObjectProperty ;\n rdfs:label "has postal code"@en ;\n rdfs:comment "Used to support property parameters for the postal code data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRegion a owl:ObjectProperty ;\n rdfs:label "has region"@en ;\n rdfs:comment "Used to support property parameters for the region data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRelated a owl:ObjectProperty ;\n rdfs:label "has related"@en ;\n rdfs:comment "To specify a relationship between another entity and the entity represented by this object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRole a owl:ObjectProperty ;\n rdfs:label "has role"@en ;\n rdfs:comment "Used to support property parameters for the role data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasSource a owl:ObjectProperty ;\n rdfs:label "has source"@en ;\n rdfs:comment "To identify the source of directory information of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasStreetAddress a owl:ObjectProperty ;\n rdfs:label "has street address"@en ;\n rdfs:comment "Used to support property parameters for the street address data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasTitle a owl:ObjectProperty ;\n rdfs:label "has title"@en ;\n rdfs:comment "Used to support property parameters for the title data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasUID a owl:ObjectProperty ;\n rdfs:label "has uid"@en ;\n rdfs:comment "To specify a value that represents a globally unique identifier corresponding to the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasValue a owl:ObjectProperty ;\n rdfs:label "has value"@en ;\n rdfs:comment "Used to indicate the resource value of an object property that requires property parameters"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:label a owl:DatatypeProperty ;\n rdfs:label "label"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:language a owl:DatatypeProperty ;\n rdfs:label "language"@en ;\n rdfs:comment "To specify the language that may be used for contacting the object. May also be used as a property parameter."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:latitude a owl:DatatypeProperty ;\n rdfs:label "latitude"@en ;\n rdfs:comment "This data property has been deprecated. See hasGeo"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:longitude a owl:DatatypeProperty ;\n rdfs:label "longitude"@en ;\n rdfs:comment "This data property has been deprecated. See hasGeo"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:mailer a owl:DatatypeProperty ;\n rdfs:label "mailer"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:note a owl:DatatypeProperty ;\n rdfs:label "note"@en ;\n rdfs:comment "A note associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:org a owl:ObjectProperty ;\n rdfs:label "organization"@en ;\n rdfs:comment "This object property has been mapped. Use the organization-name data property."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :organization-name .\n\n:organization-unit a owl:DatatypeProperty ;\n rdfs:label "organizational unit name"@en ;\n rdfs:comment "To specify the organizational unit name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string ;\n rdfs:subPropertyOf :organization-name .\n\n:post-office-box a owl:DatatypeProperty ;\n rdfs:label "post office box"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:prodid a owl:DatatypeProperty ;\n rdfs:label "product id"@en ;\n rdfs:comment "To specify the identifier for the product that created the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:rev a owl:DatatypeProperty ;\n rdfs:label "revision"@en ;\n rdfs:comment "To specify revision information about the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:dateTime .\n\n:role a owl:DatatypeProperty ;\n rdfs:label "role"@en ;\n rdfs:comment "To specify the function or part played in a particular situation by the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:sort-string a owl:DatatypeProperty ;\n rdfs:label "sort as"@en ;\n rdfs:comment "To specify the string to be used for national-language-specific sorting. Used as a property parameter only."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:title a owl:DatatypeProperty ;\n rdfs:label "title"@en ;\n rdfs:comment "To specify the position or job of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:tz a owl:DatatypeProperty ;\n rdfs:label "time zone"@en ;\n rdfs:comment "To indicate time zone information that is specific to the object. May also be used as a property parameter."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:value a owl:DatatypeProperty ;\n rdfs:label "value"@en ;\n rdfs:comment "Used to indicate the literal value of a data property that requires property parameters"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:Address a owl:Class ;\n rdfs:label "Address"@en ;\n rdfs:comment "To specify the components of the delivery address for the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Class ;\n owl:unionOf ( [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :country-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :country-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :locality ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :locality ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :postal-code ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :postal-code ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :region ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :region ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :street-address ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :street-address ] ) ] ) ] .\n\n:Email a owl:Class ;\n rdfs:label "Email"@en ;\n rdfs:comment "To specify the electronic mail address for communication with the object the vCard represents. Use the hasEmail object property."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:Group a owl:Class ;\n rdfs:label "Group"@en ;\n rdfs:comment "Object representing a group of persons or entities. A group object will usually contain hasMember properties to specify the members of the group."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Individual,\n :Location,\n :Organization ;\n owl:equivalentClass [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :hasMember ;\n owl:someValuesFrom :Kind ] [ a owl:Restriction ;\n owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onClass :Kind ;\n owl:onProperty :hasMember ] ) ] .\n\n:Individual a owl:Class ;\n rdfs:label "Individual"@en ;\n rdfs:comment "An object representing a single person or entity"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Location,\n :Organization .\n\n:Name a owl:Class ;\n rdfs:label "Name"@en ;\n rdfs:comment "To specify the components of the name of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Class ;\n owl:unionOf ( [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :additional-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality "0"^^xsd:nonNegativeInteger ;\n owl:onProperty :additional-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :family-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :family-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :given-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :given-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :honorific-prefix ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality "0"^^xsd:nonNegativeInteger ;\n owl:onProperty :honorific-prefix ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :honorific-suffix ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality "0"^^xsd:nonNegativeInteger ;\n owl:onProperty :honorific-suffix ] ) ] ) ] .\n\n:VCard a owl:Class ;\n rdfs:label "VCard"@en ;\n rdfs:comment "The vCard class is equivalent to the new Kind class, which is the parent for the four explicit types of vCards (Individual, Organization, Location, Group)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass :Kind .\n\n:fn a owl:DatatypeProperty ;\n rdfs:label "formatted name"@en ;\n rdfs:comment "The formatted text corresponding to the name of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:hasAddress a owl:ObjectProperty ;\n rdfs:label "has address"@en ;\n rdfs:comment "To specify the components of the delivery address for the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Address .\n\n:hasEmail a owl:ObjectProperty ;\n rdfs:label "has email"@en ;\n rdfs:comment "To specify the electronic mail address for communication with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Email .\n\n:hasGeo a owl:ObjectProperty ;\n rdfs:label "has geo"@en ;\n rdfs:comment "To specify information related to the global positioning of the object. May also be used as a property parameter."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasKey a owl:ObjectProperty ;\n rdfs:label "has key"@en ;\n rdfs:comment "To specify a public key or authentication certificate associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :key .\n\n:hasLogo a owl:ObjectProperty ;\n rdfs:label "has logo"@en ;\n rdfs:comment "To specify a graphic image of a logo associated with the object "@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :logo .\n\n:hasName a owl:ObjectProperty ;\n rdfs:label "has name"@en ;\n rdfs:comment "To specify the components of the name of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Name ;\n owl:equivalentProperty :n .\n\n:hasPhoto a owl:ObjectProperty ;\n rdfs:label "has photo"@en ;\n rdfs:comment "To specify an image or photograph information that annotates some aspect of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :photo .\n\n:hasSound a owl:ObjectProperty ;\n rdfs:label "has sound"@en ;\n rdfs:comment "To specify a digital sound content information that annotates some aspect of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :sound .\n\n:hasTelephone a owl:ObjectProperty ;\n rdfs:label "has telephone"@en ;\n rdfs:comment "To specify the telephone number for telephony communication with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :tel .\n\n:hasURL a owl:ObjectProperty ;\n rdfs:label "has url"@en ;\n rdfs:comment "To specify a uniform resource locator associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :url .\n\n:key a owl:ObjectProperty ;\n rdfs:label "key"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasKey .\n\n:logo a owl:ObjectProperty ;\n rdfs:label "logo"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasLogo .\n\n:n a owl:ObjectProperty ;\n rdfs:label "name"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasName .\n\n:nickname a owl:DatatypeProperty ;\n rdfs:label "nickname"@en ;\n rdfs:comment "The nick name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:photo a owl:ObjectProperty ;\n rdfs:label "photo"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasPhoto .\n\n:sound a owl:ObjectProperty ;\n rdfs:label "sound"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasSound .\n\n:tel a owl:ObjectProperty ;\n rdfs:label "telephone"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasTelephone .\n\n:url a owl:ObjectProperty ;\n rdfs:label "url"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasURL .\n\n:Location a owl:Class ;\n rdfs:label "Location"@en ;\n rdfs:comment "An object representing a named geographical place"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Organization .\n\n:additional-name a owl:DatatypeProperty ;\n rdfs:label "additional name"@en ;\n rdfs:comment "The additional name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:country-name a owl:DatatypeProperty ;\n rdfs:label "country name"@en ;\n rdfs:comment "The country name associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:family-name a owl:DatatypeProperty ;\n rdfs:label "family name"@en ;\n rdfs:comment "The family name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:given-name a owl:DatatypeProperty ;\n rdfs:label "given name"@en ;\n rdfs:comment "The given name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:hasMember a owl:ObjectProperty ;\n rdfs:label "has member"@en ;\n rdfs:comment "To include a member in the group this object represents. (This property can only be used by Group individuals)"@en ;\n rdfs:domain :Group ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Kind .\n\n:honorific-prefix a owl:DatatypeProperty ;\n rdfs:label "honorific prefix"@en ;\n rdfs:comment "The honorific prefix of the name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:honorific-suffix a owl:DatatypeProperty ;\n rdfs:label "honorific suffix"@en ;\n rdfs:comment "The honorific suffix of the name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:locality a owl:DatatypeProperty ;\n rdfs:label "locality"@en ;\n rdfs:comment "The locality (e.g. city or town) associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:organization-name a owl:DatatypeProperty ;\n rdfs:label "organization name"@en ;\n rdfs:comment "To specify the organizational name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:postal-code a owl:DatatypeProperty ;\n rdfs:label "postal code"@en ;\n rdfs:comment "The postal code associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:region a owl:DatatypeProperty ;\n rdfs:label "region"@en ;\n rdfs:comment "The region (e.g. state or province) associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:street-address a owl:DatatypeProperty ;\n rdfs:label "street address"@en ;\n rdfs:comment "The street address associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:Organization a owl:Class ;\n rdfs:label "Organization"@en ;\n rdfs:comment """An object representing an organization. An organization is a single entity, and might represent a business or government, a department or division within a business or government, a club, an association, or the like.\n"""@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind .\n\n:Gender a owl:Class ;\n rdfs:label "Gender"@en ;\n rdfs:comment "Used for gender codes. The URI of the gender code must be used as the value for Gender."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:Kind a owl:Class ;\n rdfs:label "Kind"@en ;\n rdfs:comment "The parent class for all objects"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Restriction ;\n owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onDataRange xsd:string ;\n owl:onProperty :fn ],\n :VCard .\n\n:Type a owl:Class ;\n rdfs:label "Type"@en ;\n rdfs:comment "Used for type codes. The URI of the type code must be used as the value for Type."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:TelephoneType a owl:Class ;\n rdfs:label "Phone"@en ;\n rdfs:comment "Used for telephone type codes. The URI of the telephone type code must be used as the value for the Telephone Type."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:RelatedType a owl:Class ;\n rdfs:label "Relation Type"@en ;\n rdfs:comment "Used for relation type codes. The URI of the relation type code must be used as the value for the Relation Type."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n<http://www.w3.org/2006/vcard/ns> a owl:Ontology ;\n rdfs:label "Ontology for vCard"@en ;\n rdfs:comment "Ontology for vCard based on RFC6350"@en ;\n owl:versionInfo "Final"@en .\n\n\n',"vcard.ttl",u);try{await gt.fetcher.load(n.doc())}catch(e){throw new Error("Failed to load profile card.")}t.classList.add("individualPane"),s.authn.checkUser(),t.appendChild(ke(e,n));const d=a?"organizationForm":"individualForm";if(function(e,t,n,r,i,a,o,s){const u=ft+r,d=s||"this",p=(0,l.Namespace)(u+"#")(d);ht(i,n,r,u),c.widgets.appendForm(a,e,{},t,p,o,(e,t)=>{e||c.widgets.errorMessageBlock(a,t)})}(t,n,ct,vt,s.store,e,n.doc(),d),t.appendChild(await st(n,r,r.ulPeople)),s.authn.currentUser()){const r=t.appendChild(e.createElement("h3"));r.textContent="Attach a document",r.classList.add("webidHeading"),c.widgets.attachmentList(e,n,t,{modify:o})}a?t.appendChild(await async function(e,t){let n=P.sym("http://www.wikidata.org/wiki/Q43229");for(const t in F)P.holds(e,_.rdf("type"),_.schema(t),e.doc())&&(n=P.sym(F[t]),C());return M(e,t,{longPrompt:`Add a ${N}?`,idNoun:N,urlType:_.vcard("PublicId"),dbLookup:!0,class:n,queryParams:R})}(n,r)):t.appendChild(await async function(e,t){return M(e,t,{longPrompt:`Link to a ${I}?`,idNoun:I,urlType:_.vcard("WebID")})}(n,r))}var yt=a(295),wt={};wt.styleTagTransform=x(),wt.setAttributes=v(),wt.insert=m().bind(null,"head"),wt.domAPI=f(),wt.insertStyleElement=y(),d()(yt.A,wt),yt.A&&yt.A.locals&&yt.A.locals;const xt=s.store,At=c.ns,Et=At.vcard;let Ct,kt,_t,St;function Tt(e,t,n,r,i,a,o){Ct=r,kt=t,St=o;const u=i.dom,d=u.createElement("div");d.classList.add("toolsPane");const p=u.createElement("h3");p.textContent="Tools",d.appendChild(p);const f=d.appendChild(u.createElement("div"));f.classList.add("statsLog"),_t=f.appendChild(u.createElement("pre")),_t.setAttribute("id","logSpace");const h=d.appendChild(u.createElement("div"));function m(e){const t=e.classList.contains("btn-primary");h.querySelectorAll("button").forEach(e=>{e.classList.remove("btn-primary","toolsButton--loading","toolsButton--error","toolsButton--success"),e.classList.add("btn-secondary")}),t||(e.classList.remove("btn-secondary"),e.classList.add("btn-primary"))}h.classList.add("toolsButtonsContainer");const g=h.appendChild(u.createElement("button"));g.textContent="Load main index",g.classList.add("actionButton","btn-secondary","action-button-focus"),g.addEventListener("click",()=>{m(g),_t.textContent="",async function(e,t){e.classList.add("toolsButton--loading"),e.classList.remove("toolsButton--error","toolsButton--success");const n=xt.any(Ct,At.vcard("nameEmailIndex"));try{await xt.fetcher.load(n)}catch(n){e.classList.remove("toolsButton--loading"),e.classList.add("toolsButton--error"),Pt(t,"Error: People index has NOT been loaded"+n+"\n")}e.classList.remove("toolsButton--loading"),e.classList.add("toolsButton--success"),Pt(t," People index has been loaded\n")}(g,_t)});const v=h.appendChild(u.createElement("button"));v.textContent="Statistics",v.classList.add("actionButton","btn-secondary","action-button-focus"),v.addEventListener("click",()=>{m(v),_t.textContent="",function(e){const t=xt.each(void 0,Et("inAddressBook"),Ct).length;Pt(e,t+" contacts loaded. ");let n=xt.each(Ct,Et("includesGroup"));const r=new Set(n.map(e=>Z(e.uri)));n=[...r].map(e=>xt.sym(e)),Pt(e,n.length+" total groups. ");const i=[];for(const e in kt)i.push(e);Pt(e,i.length+" selected groups. ")}(_t)});const b=h.appendChild(u.createElement("button"));b.textContent="Check individual contact access of selected groups",b.classList.add("actionButton","btn-secondary","action-button-focus"),b.addEventListener("click",e=>{m(b),_t.textContent="",async function(){function e(e){c.acl.fixIndividualCardACL(e,e=>Pt(_t,e),function(t,n){Pt(_t,t?"Success for "+c.utils.label(e):"Failure for "+e+": "+n)})}const t=[];for(const e in kt)t.push(e);for(let n=0;n<t.length;n++){const r=xt.sym(t[n]),i=fe(xt,r);Pt(_t,c.utils.label(r)+": "+i.length+" members");for(let t=0;t<i.length;t++){const n=i[t];Pt(_t,c.utils.label(n)),e(n)}}}()});const y=h.appendChild(u.createElement("button"));y.textContent="Find duplicate contacts",y.classList.add("actionButton","btn-secondary","action-button-focus"),y.addEventListener("click",function(e){m(y),_t.textContent="";const t={};t.book=Ct,t.nameEmailIndex=xt.any(Ct,At.vcard("nameEmailIndex")),Pt(_t,"Loading name index..."),s.store.fetcher.nowOrWhenFetched(t.nameEmailIndex,void 0,function(e,n){function r(e){let n;return Promise.resolve().then(()=>{const r=e.uri.replace("/Group/","/NewGroup/");n=xt.sym(r);let i=[];for(let n=0;n<t.uniques.length;n++)i=i.concat(xt.connectedStatements(t.uniques[n],e.doc()));const a=new l.Serializer(xt).setBase(e.uri);Pt(_t," Regenerating group of uniques..."+n);const o=a.statementsToN3(i);return xt.fetcher.webOperation("PUT",n,{data:o,contentType:"text/turtle"})}).then(()=>(Pt(_t," Done uniques group "+n),!0)).catch(e=>{Pt(_t,"Error saving : "+e)})}Pt(_t,"Loaded name index."),t.cards=[],t.duplicates=[],t.definitive=[],t.nameless=[],t.exactDuplicates=[],t.nameOnlyDuplicates=[],t.uniquesSet=[],t.groupProblems=[],t.nameDupLog=xt.sym(Ct.dir().uri+"dedup-nameDupLog.ttl"),t.exactDupLog=xt.sym(Ct.dir().uri+"dedup-exactDupLog.ttl"),t.nameOnlyErrors=[],t.nameLessZeroData=[],t.nameLessIndex=[],t.namelessUniques=[],t.nameOnlyDuplicatesGroupDiff=[];const i=function(){let e=[];return t.book&&([t.book].forEach(function(t){const n=(t?xt.each(t,At.vcard("includesGroup")):[]).map(function(e){return[t,xt.any(e,At.vcard("fn")),e]});e=e.concat(n)}),e.sort()),e}();t.groupObjects=i.map(e=>e[2]),Pt(_t,"Loading "+t.groupObjects.length+" groups... "),xt.fetcher.load(t.groupObjects).then(function(){return new Promise(function(e){let n,r,i;for(t.cards=xt.each(void 0,Et("inAddressBook"),t.book),Pt(_t,t.cards.length+" total contacts"),n=0;n<t.cards.length;n++)r=t.cards[n],i=xt.anyValue(r,At.vcard("fn")),i?t.definitive[i]===r||(t.definitive[i]?(t.duplicates.length,t.duplicates.push(r)):t.definitive[i]=r):t.nameless.push(r);t.duplicateSet=[];for(let e=0;e<t.duplicates.length;e++)t.duplicateSet[t.duplicates[e].uri]=t.duplicates[e];t.namelessSet=[];for(let e=0;e<t.nameless.length;e++)t.namelessSet[t.nameless[e].uri]=t.nameless[e];t.uniques=[],t.uniqueSet=[];for(let e=0;e<t.cards.length;e++){const n=t.cards[e].uri;t.duplicateSet[n]||t.namelessSet[n]||(t.uniques.push(t.cards[e]),t.uniqueSet[n]=t.cards[e])}Pt(_t,"Uniques: "+t.uniques.length),Pt(_t,t.nameless.length+" nameless contacts."),Pt(_t,t.duplicates.length+" name-duplicate contacts, leaving "+(t.cards.length-t.duplicates.length)),e(!0)})}).then(function(){return new Promise(function(e){Pt(_t,"Groups loaded");for(let e=0;e<t.uniques.length;e++)t.uniquesSet[t.uniques[e].uri]=!0;t.groupMembers=[],xt.each(null,At.vcard("hasMember")).forEach(e=>{t.groupMembers=t.groupMembers.concat(fe(xt,e))}),Pt(_t," Naive group members "+t.groupMembers.length),t.groupMemberSet=[];for(let e=0;e<t.groupMembers.length;e++)t.groupMemberSet[t.groupMembers[e].uri]=t.groupMembers[e];t.groupMembers2=[];for(const e in t.groupMemberSet)t.groupMembers2.push(t.groupMemberSet[e]);if(Pt(_t," Compact group members "+t.groupMembers2.length),l.keepThisCodeForLaterButDisableFerossConstantConditionPolice){for(let e=0;e<t.groupMembers.length;e++){const n=t.groupMembers[e];t.uniquesSet[n.uri]||(Pt(_t," Not in uniques: "+n),t.groupProblems.push(n),t.duplicateSet[n.uri]?Pt(_t," ** IN duplicates alas:"+n):Pt(_t," **** WTF?"))}Pt(_t,"Problem contacts: "+t.groupProblems.length)}e(!0)})}).then(function e(){return t.namelessToCheck=t.namelessToCheck||t.nameless.slice(),Pt(_t,"Nameless check left: "+t.namelessToCheck.length),new Promise(function(n){const r=t.namelessToCheck.shift();if(r){var i;(i=r,new Promise(function(e){xt.fetcher.load(i).then(function(n){Pt(_t," Nameless check "+i);const r={};r[At.vcard("hasUID").uri]=!0,r[At.dc("created").uri]=!0,r[At.dc("modified").uri]=!0;const a=(o=i,xt.statementsMatching(null,null,null,o.doc()).filter(function(e){return!r[e.predicate.uri]}));var o;if(!a.length)return Pt(_t," Zero length "+i),t.nameLessZeroData.push(i),e(!1);const s=new l.Serializer(xt).setBase(i.doc().uri).statementsToN3(a),c=t.nameLessIndex[s];if(c){Pt(_t," Matches with "+c);const n=xt.each(null,At.vcard("hasMember"),i),r=xt.each(null,At.vcard("hasMember"),c);for(let a=0;a<n.length;a++){let o=!1;for(let e=0;e<r.length;e++)r[e].sameTerm(n[a])&&(o=!0);if(!o)return Pt(_t,"This one groups: "+n),Pt(_t,"Other one groups: "+r),Pt(_t,"Cant skip this one because it has a group, "+n[a]+", which the other does not."),t.nameOnlyDuplicatesGroupDiff.push(i),e(!1)}}else Pt(_t,"First nameless like: "+i.doc()),Pt(_t,"___________________________________________"),Pt(_t,s),Pt(_t,"___________________________________________"),t.nameLessIndex[s]=i,t.namelessUniques.push(i);e(!0)}).catch(function(n){Pt(_t,"Cant load a nameless card!: "+n),t.nameOnlyErrors.push(i),e(!1)})})).then(function(t){Pt(_t," Nameless check returns "+t),e()})}else{if(Pt(_t,"namelessUniques: "+t.namelessUniques.length),Pt(_t,"namelessUniques: "+t.namelessUniques),!(t.namelessUniques.length>0))return n(!0);{const e=u.createElement("p");e.textContent="Add all "+t.namelessUniques.length+" nameless contacts to the rescued set?",f.appendChild(e);const r=c.widgets.continueButton(u,function(){t.uniques=t.uniques.concat(t.namelessUniques);for(let e=0;e<t.namelessUniques.length;e++)t.uniqueSet[t.namelessUniques[e].uri]=!0;e.remove(),r.remove(),n(!0)});f.appendChild(r)}}})}).then(function(){let e;return Promise.resolve().then(()=>{e=xt.sym(t.book.dir().uri+"clean-people.ttl");let n=[];for(let e=0;e<t.uniques.length;e++)n=n.concat(xt.connectedStatements(t.uniques[e],t.nameEmailIndex));const r=new l.Serializer(xt).setBase(t.nameEmailIndex.uri);Pt(_t,"Serializing index of uniques...");const i=r.statementsToN3(n);return xt.fetcher.webOperation("PUT",e,{data:i,contentType:"text/turtle"})}).then(function(){return Pt(_t,"Done uniques log "+e),!0}).catch(function(e){Pt(_t,"Error saving uniques: "+e)})}).then(function(){return Pt(_t,"Saving ALL GROUPS"),Promise.all(t.groupObjects.map(r))}).then(function(){Pt(_t,"Done!")})})});const w=h.appendChild(u.createElement("button"));w.classList.add("actionButton","btn-secondary","action-button-focus"),w.textContent="Find contacts with no group",w.addEventListener("click",function(t){m(w),_t.textContent="",Pt(_t,"Loading groups..."),e(kt,n,async function(e,t){if(!e)return void Pt(_t,"Loading all groups failed. If it persists, contact your admin.");const n=xt.any(Ct,At.vcard("nameEmailIndex"));try{await xt.fetcher.load(n)}catch(e){return void Pt(_t,"Loading name index failed. If it persists, contact your admin.")}Pt(_t,"Loaded groups and name index."),Ft(Ct),Pt(_t,"Groupless list finished.")})});const x=h.appendChild(u.createElement("button"));return x.classList.add("actionButton","btn-secondary","action-button-focus"),x.textContent="Put all individuals with no group in a new group",x.addEventListener("click",e=>{m(x),_t.textContent="",async function(e){const t=await Ft(e);if(0===t.length)return void Pt(_t,"No groupless contacts found.");let n=null;try{n=await de(e,"No group")}catch(e){}const r=_t.ownerDocument;new Promise(function(e){const i=r.createElement("p");i.textContent=`Add the ${t.length} contacts without groups to a 'No group' group?`,_t.appendChild(i);const a=c.widgets.continueButton(r,async function(){i.remove(),a.remove();for(const e of t)n&&(Pt(_t," adding "+c.utils.label(e)),await pe(e,n));Pt(_t,"People moved to group."),St&&St(),e()});_t.appendChild(a)})}(Ct)}),d}function Pt(e,t){e.textContent+=t+"\n"}async function Ft(e){const t=xt.any(e,At.vcard("groupIndex")),n=xt.any(e,At.vcard("nameEmailIndex"));try{await xt.fetcher.load([n,t]);const r=xt.each(e,At.vcard("includesGroup"));await xt.fetcher.load(r)}catch(e){Pt(_t,"Error loading groups or name index. If it persists, contact your admin.")}const r={},i=[];let a=xt.each(e,Et("includesGroup"));const o=new Set(a.map(e=>Z(e.uri)));a=[...o].map(e=>xt.sym(e)),Pt(_t,a.length+" total groups. ");for(let e=0;e<a.length;e++){const t=a[e],n=fe(xt,t);Pt(_t,c.utils.label(t)+": "+n.length+" members");for(let e=0;e<n.length;e++)xt.allAliases(n[e]).forEach(function(e){r[e.uri]=t})}const s=xt.each(void 0,Et("inAddressBook"),e);Pt(_t,s.length+" total contatcs");for(let e=0;e<s.length;e++)r[s[e].uri]||(i.push(s[e]),Pt(_t," groupless "+c.utils.label(s[e])));return Pt(_t,i.length+" groupless contacts."),i}var Rt=a(903),It={};It.styleTagTransform=x(),It.setAttributes=v(),It.insert=m().bind(null,"head"),It.domAPI=f(),It.insertStyleElement=y(),d()(Rt.A,It),Rt.A&&Rt.A.locals&&Rt.A.locals;const Nt=c.ns,Lt=c.utils,Bt={icon:c.icons.iconBase+"noun_99101.svg",name:"contact",label:function(e,t){const n=t.session.store.findTypeURIs(e);return n[Nt.vcard("Individual").uri]||n[Nt.vcard("Organization").uri]?"Contact":n[Nt.foaf("Person").uri]||n[Nt.schema("Person").uri]?"Person":n[Nt.vcard("Group").uri]?"Group":n[Nt.vcard("AddressBook").uri]?"Address book":null},mintClass:c.ns.vcard("AddressBook"),mintNew:function(e,t){return new Promise(function(n,r){c.login.ensureLoadedProfile(t).then(t=>{t.me;const i=t.me,a=t.dom,o=t.div,s=e.session.store,u=c.ns,d=t.newBase||t.newInstance.dir().uri;if((t.instanceClass||u.vcard("AddressBook")).sameTerm(u.vcard("Group"))){const e=t.newInstance||s.sym(t.newBase+"index.ttl#this"),i=e.doc();return s.add(e,u.rdf("type"),u.vcard("Group"),i),s.add(e,u.vcard("fn"),t.instanceName||"untitled group",i),void s.fetcher.putBack(i,{contentType:"text/turtle"}).then(function(e){n(t)}).catch(function(e){r(new Error("Error creating document for new group "+e))})}let p='@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n @prefix ab: <http://www.w3.org/ns/pim/ab#>.\n @prefix dc: <http://purl.org/dc/elements/1.1/>.\n @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.\n\n <#this> a vcard:AddressBook;\n dc:title "New address Book";\n vcard:nameEmailIndex <people.ttl>;\n vcard:groupIndex <groups.ttl>.\n';p+="<#this> <http://www.w3.org/ns/auth/acl#owner> <"+i.uri+">.\n\n";const f=s.sym(d+"index.ttl#this"),h=[{to:"index.ttl",content:p,contentType:"text/turtle"},{to:"groups.ttl",content:"",contentType:"text/turtle"},{to:"people.ttl",content:"",contentType:"text/turtle"},{to:"",existing:!0,aclOptions:{defaultForNew:!0}}];!function e(){function c(t,n){if(!n)return r(new Error("Error writing new file "+u.to));me(p,i,m).then(()=>e()).catch(e=>{u.to;const t="Error setting access permissions for "+u.to+".";return r(new Error(t))})}if(0===h.length)!function(e,r){const i=o.appendChild(a.createElement("p"));i.classList.add("claimSuccess"),i.innerHTML="Your <a href='"+e.uri+"'><b>new "+r+"</b></a> is ready. <br/><br/><a href='"+e.uri+"'>Go to new "+r+"</a>";const s=Object.assign({newInstance:e},t);n(s)}(f,"address book");else{var u=h.shift();u.to;var p=l.uri.join(u.to,d),m=u.aclOptions||{};"content"in u?s.fetcher.webOperation("PUT",p,{data:u.content,saveMetadata:!0,contentType:u.contentType}).then(()=>c(0,!0)):"existing"in u?c(0,!0):r(new Error("Copy not expected while buiding new app."))}}()},e=>{ee(t.div,t.dom,"Please log in to create a new address book.")})})},render:function(e,t,n={}){const r=t.dom,i=t.session.store,a=r.createElement("div");return W(r),c.aclControl.preventBrowserDropEvents(r),a.setAttribute("class","contactPane"),async function(){c.aclControl.preventBrowserDropEvents(r);const o=i.findTypeURIs(e);if(o[Nt.vcard("Individual").uri]||o[Nt.foaf("Person").uri]||o[Nt.schema("Person").uri]||o[Nt.vcard("Organization").uri]||o[Nt.schema("Organization").uri])bt(r,a,e,t).then(()=>{}).catch(()=>{throw new Error("Failed to render contact.")});else{if(!o[Nt.vcard("AddressBook").uri])throw new Error("This does not seem to be a contact or address book.");!function(e,o){i.fetcher.load(e).then(function(u){!function(e,o){const u=Lt.label(Nt.vcard("AddressBook"));let d=o.foreignGroup,p="";e&&e.length>0?(d=e[0],p=Lt.label(d.dir())):(i.any(d,Nt.dc("title"))||i.any(d,Nt.vcard("fn")),n.solo&&p&&"undefined"!=typeof document&&(document.title=p.value),p=p?p.value:u);const f=i.any(d,Nt.vcard("groupIndex")),h={};let m={},g=null,v=null;const b=[];function y(e){b.forEach(e=>{e.classList.remove("btn-primary"),e.classList.add("btn-secondary")}),e&&(e.classList.remove("btn-secondary"),e.classList.add("btn-primary"))}const w={dom:r,kb:i,ns:Nt,book:d,options:o,title:p,groupIndex:f,selectedGroups:h,get selectedPeople(){return m},set selectedPeople(e){m=e},get allGroupsLi(){return g},set allGroupsLi(e){g=e},get newGroupLi(){return v},set newGroupLi(e){v=e},actionButtons:b,setActiveActionButton:y,dataBrowserContext:t,div:a,me:l,setMe(e){l=e},paneOptions:n},{main:x,addressBookSection:A,detailsSection:E}=function(e){const{dom:t}=e,n=t.createElement("main");n.id="main-content",n.classList.add("addressBook-grid"),n.setAttribute("role","main"),n.setAttribute("aria-label","Address Book"),n.setAttribute("tabindex","-1");const r=t.createElement("section");r.setAttribute("aria-labelledby","addressBook-section"),r.classList.add("addressBookSection","section-bg"),r.setAttribute("role","region"),r.setAttribute("tabindex","-1"),n.appendChild(r);const i=t.createElement("section");return i.classList.add("detailSection"),i.setAttribute("role","region"),i.setAttribute("aria-label","Details section"),i.classList.add("hidden"),n.appendChild(i),{main:n,addressBookSection:r,detailsSection:i}}(w);function C(){E.classList.remove("hidden")}a.appendChild(x),w.showDetailsSection=C,w.detailsSection=E;const k=r.createElement("ul");k.setAttribute("role","list"),k.setAttribute("aria-label","People list"),w.ulPeople=k,w.dataBrowserContext&&(w.dataBrowserContext.ulPeople=k);const _=r.createElement("div");_.classList.add("detailsSectionContent"),_.setAttribute("role","region"),_.setAttribute("aria-labelledby","detailsSectionContent"),_.setAttribute("aria-live","polite"),w.detailsSectionContent=_;const S=function(e){const{dom:t,ns:n,title:r,me:i,setMe:a,setActiveActionButton:o}=e,c=t.createElement("section");c.classList.add("headerSection");const l=t.createElement("header");l.classList.add("mb-md");const u=t.createElement("h2");u.id="addressBook-heading",u.setAttribute("tabindex","-1"),u.textContent=r;const d=t.createElement("button"),p=t.createElement("div");d.setAttribute("type","button"),i||d.setAttribute("disabled","true"),s.authn.checkUser().then(e=>{e&&(a(e),d.removeAttribute("disabled"))}),p.appendChild(d),d.innerHTML="+ New contact",d.classList.add("actionButton","btn-primary","action-button-focus");let f=0;return d.addEventListener("click",async function(r){o(null),Ze(e.ulPeople);const i=++f;if(e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.remove("detailsSectionContent--wide"),await rt(),i!==f)return;e.detailsSectionContent.innerHTML="";const a=t.createElement("div");a.classList.add("contactTypeChooser");const s=t.createElement("label");s.textContent="Contact type: ",s.setAttribute("for","contactTypeSelect"),a.appendChild(s);const c=t.createElement("select");c.id="contactTypeSelect",c.classList.add("contactTypeSelect");const l=t.createElement("option");l.value="Individual",l.textContent="New person",c.appendChild(l);const u=t.createElement("option");u.value="Organization",u.textContent="New organization",c.appendChild(u),a.appendChild(c),e.detailsSectionContent.appendChild(a);const d=t.createElement("p");d.classList.add("contactCreationRemark"),d.textContent="The new contact is added to the already selected group.",e.detailsSectionContent.appendChild(d);const p=t.createElement("div");function h(){return"Organization"===c.value?n.vcard("Organization"):n.vcard("Individual")}p.classList.add("contactFormContainer"),e.detailsSectionContent.appendChild(p),jt(e,p,h()),c.addEventListener("change",function(){jt(e,p,h())})},!1),l.appendChild(u),l.appendChild(p),c.appendChild(l),c}(w);A.appendChild(S);const T=r.createElement("hr");T.classList.add("dottedHr"),A.appendChild(T);const{searchSection:P,searchInput:F}=function(e){const{dom:t}=e,n=t.createElement("section");n.classList.add("searchSection");const r=t.createElement("div");r.classList.add("searchDiv"),n.appendChild(r);const i=t.createElement("input");i.setAttribute("type","text"),i.setAttribute("aria-label","Search contacts"),i.classList.add("searchInput"),i.setAttribute("placeholder","Search by name in selected group"),r.appendChild(i);const a=t.createElement("button");return a.setAttribute("type","button"),a.setAttribute("aria-label","Clear search"),a.classList.add("searchClearButton","hidden"),a.textContent="✕",r.appendChild(a),i.addEventListener("input",function(t){const n=i.value.length>0;a.classList.toggle("hidden",!n),et(e.ulPeople,!0,e.detailsSectionContent)}),a.addEventListener("click",function(){i.value="",a.classList.add("hidden"),i.focus(),et(e.ulPeople,!0,e.detailsSectionContent)}),{searchSection:n,searchInput:i}}(w);w.searchInput=F,A.appendChild(P);const{buttonSection:R,ulGroups:I}=function(e){const{dom:t,kb:n,book:r,options:i,groupIndex:a,selectedGroups:o,actionButtons:s,setActiveActionButton:c}=e,l=t.createElement("section");l.classList.add("buttonSection");const u=t.createElement("ul");if(u.classList.add("groupButtonsList"),u.setAttribute("role","list"),u.setAttribute("aria-label","Groups list"),i.foreignGroup&&(o[i.foreignGroup.uri]=!0),r){e.allGroupsLi=t.createElement("li");const d=t.createElement("button");d.textContent="All groups",d.classList.add("allGroupsButton","actionButton","btn-primary","action-button-focus","allGroupsButton--selected"),d.addEventListener("click",function(t){if(ze(u,d),c(null),Array.from(u.children).every(function(e){return!e.subject||!!o[e.subject.uri]})){d.classList.remove("allGroupsButton--loading","allGroupsButton--active"),d.setAttribute("aria-busy","false"),d.classList.add("allGroupsButton--loaded");for(const e in o)delete o[e];Ge(u,o)}else d.classList.add("allGroupsButton--loading"),d.setAttribute("aria-busy","true"),Ve(o,u,function(t,n){if(!t)return Q("Failed to select all groups. If it persists, contact admin.");d.classList.remove("allGroupsButton--loading"),d.setAttribute("aria-busy","false"),d.classList.add("allGroupsButton--active"),Ge(u,o),Qe(e.ulPeople,null)})}),e.allGroupsLi.appendChild(d),u.appendChild(e.allGroupsLi),e.newGroupLi=t.createElement("li");const p=t.createElement("button");p.setAttribute("type","button"),p.innerHTML="+ New group",p.classList.add("allGroupsButton","actionButton","btn-secondary","action-button-focus"),s.push(p),p.addEventListener("click",function(t){ze(u,p),c(null),Ze(e.ulPeople),Ot(e)},!1),e.newGroupLi.appendChild(p),l.appendChild(u),a&&n.fetcher.nowOrWhenFetched(a.uri,r,function(n,a){n?(e.allGroupsLi.parentNode&&e.allGroupsLi.parentNode.removeChild(e.allGroupsLi),e.newGroupLi.parentNode&&e.newGroupLi.parentNode.removeChild(e.newGroupLi),Ke(r,i,u,t,o,e.ulPeople,e.searchInput),u.insertBefore(e.allGroupsLi,u.firstChild),u.appendChild(e.newGroupLi),d.classList.add("allGroupsButton--loading"),d.setAttribute("aria-busy","true"),Ve(o,u,function(t,n){if(!t)return Q("Failed to select all groups. If it persists, contact admin.");d.classList.remove("allGroupsButton--loading"),d.setAttribute("aria-busy","false"),d.classList.add("allGroupsButton--active"),Ge(u,o),Qe(e.ulPeople,null)})):Q("Error loading group index. If it persists, contact admin.")}),e.allGroupsLi.parentNode&&e.allGroupsLi.parentNode.removeChild(e.allGroupsLi),e.newGroupLi.parentNode&&e.newGroupLi.parentNode.removeChild(e.newGroupLi),He(r,u,i,t,o,e.ulPeople,e.searchInput,e.detailsSectionContent,e.dataBrowserContext,function(){c(null),e.detailsSectionContent.querySelector(".contactTypeChooser, .contactFormContainer, .renderPane")||(e.detailsSectionContent.innerHTML="",e.detailsSection.classList.add("hidden"))}),u.insertBefore(e.allGroupsLi,u.firstChild),u.appendChild(e.newGroupLi)}else Ke(r,i,u,t,o,e.ulPeople,e.searchInput),Qe(e.ulPeople,null);return{buttonSection:l,ulGroups:u}}(w);w.ulGroups=I,A.appendChild(R);const N=r.createElement("section");N.classList.add("peopleSection"),A.appendChild(N),N.appendChild(k),E.appendChild(_);const L=function(e){const{dom:t,kb:n,ns:r,book:i,options:a,selectedGroups:o,actionButtons:s,setActiveActionButton:l,dataBrowserContext:u,div:d,me:p}=e,f=t.createElement("div");if(f.classList.add("cardFooter"),i){const h=f.appendChild(t.createElement("button"));h.setAttribute("type","button"),h.innerHTML="Groups",h.classList.add("actionButton","btn-secondary","action-button-focus"),s.push(h),h.addEventListener("click",async function(s){l(h),Ze(e.ulPeople),e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.remove("detailsSectionContent--wide");const u=t.createElement("h3");u.textContent="Your groups",e.detailsSectionContent.appendChild(u);let d,f=t.createElement("p");f.textContent="When you delete a group it can happen that some contacts end up groupless.",e.detailsSectionContent.appendChild(f),f=t.createElement("p"),f.textContent="To move contacts around, simply drag and drop them onto a group.",e.detailsSectionContent.appendChild(f);try{d=await Ye(i)}catch(n){return void e.detailsSectionContent.appendChild(t.createTextNode("Failed to load groups: "+n))}const m=t.createElement("ul");m.setAttribute("role","list"),m.setAttribute("aria-label","All groups"),m.classList.add("groupButtonsList"),d&&(d.sort((e,t)=>{const i=(n.any(e,r.vcard("fn"))||"").toString().toLowerCase(),a=(n.any(t,r.vcard("fn"))||"").toString().toLowerCase();return i<a?-1:i>a?1:0}),d.forEach(function(r){const{groupLi:s,groupButton:l,name:u}=qe(r);l.addEventListener("click",function(t){if(t.preventDefault(),!t.metaKey)for(const e in o)delete o[e];o[r.uri]=!o[r.uri],Ge(e.ulGroups,o);const i=Array.from(e.ulGroups.children).find(e=>e.subject&&e.subject.uri===r.uri);ze(e.ulGroups,i?i.querySelector("button"):null),n.fetcher.nowOrWhenFetched(r.doc(),void 0,function(t,n){if(!t)return Q("Failed to load group details. If it persists, contact your admin.");Qe(e.ulPeople,null,!1)})},!1),c.widgets.makeDropTarget(s,e=>$e(e,r)),p&&c.widgets.deleteButtonWithCheck(t,s,"group "+u,async function(){await re(r),delete o[r.uri];const n=e.allGroupsLi,s=e.newGroupLi;n.parentNode&&n.parentNode.removeChild(n),s.parentNode&&s.parentNode.removeChild(s),Ke(i,a,e.ulGroups,t,o,e.ulPeople,e.searchInput),e.ulGroups.insertBefore(n,e.ulGroups.firstChild),e.ulGroups.appendChild(s),Ge(e.ulGroups,o),Qe(e.ulPeople,null,!1),h.click()}),m.appendChild(s)})),e.detailsSectionContent.appendChild(m);const g=t.createElement("button");g.setAttribute("type","button"),g.innerHTML="+ New group",g.classList.add("actionButton","btn-primary","action-button-focus","newGroupBtn"),g.addEventListener("click",function(){Ot(e)},!1),e.detailsSectionContent.appendChild(g)});const m=f.appendChild(t.createElement("button"));m.setAttribute("type","button"),m.innerHTML="Sharing",m.classList.add("actionButton","btn-secondary","action-button-focus"),s.push(m),m.addEventListener("click",function(a){l(m),Ze(e.ulPeople),e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.remove("detailsSectionContent--wide");const o=t.createElement("h3");o.textContent="Sharing",e.detailsSectionContent.appendChild(o),e.detailsSectionContent.appendChild(c.aclControl.ACLControlBox5(i.dir(),u,"book",n,function(n,r){n||ee(e.detailsSectionContent,t,"Problem displaying sharing controls. If persists, contact admin.")}));const s={target:i,me:p,noun:"address book",div:e.detailsSectionContent,dom:t,statusRegion:d};c.login.registrationControl(s,i,r.vcard("AddressBook")).then(()=>{}).catch(n=>{ee(e.detailsSectionContent,t,"Problem displaying findable controls. If persists, contact admin.")})});const g=f.appendChild(t.createElement("button"));g.setAttribute("type","button"),g.innerHTML="Tools",g.classList.add("actionButton","btn-secondary","action-button-focus"),s.push(g),g.addEventListener("click",function(n){l(g),Ze(e.ulPeople),e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.add("detailsSectionContent--wide"),e.detailsSectionContent.appendChild(Tt(Ve,o,e.ulGroups,i,u,0,function(){e.allGroupsLi.parentNode&&e.allGroupsLi.parentNode.removeChild(e.allGroupsLi),e.newGroupLi.parentNode&&e.newGroupLi.parentNode.removeChild(e.newGroupLi),Ke(i,a,e.ulGroups,t,o,e.ulPeople,e.searchInput),e.ulGroups.insertBefore(e.allGroupsLi,e.ulGroups.firstChild),e.ulGroups.appendChild(e.newGroupLi),Ge(e.ulGroups,o)}))})}return f}(w);A.appendChild(L),nt(d,_).then(()=>{})}(e,o)}).catch(function(e){throw new Error("Failed to load address book.")})}([e],{})}let l=s.authn.currentUser();if("undefined"!=typeof document&&document.location&&"http://localhost"===(""+document.location).slice(0,16)){const t=i.any(e,c.ns.acl("owner"));t&&(l=t)}return a}().then(()=>{},e=>ee(a,r,e.message||""+e)),a}};async function Ot(e){const{dom:t,kb:n,ns:r,book:i,options:a,selectedGroups:o,dataBrowserContext:s}=e;e.showDetailsSection(),e.detailsSectionContent.innerHTML="";const l=n.any(i,r.vcard("groupIndex"));try{await n.fetcher.load(l)}catch(e){}const u=await c.widgets.askName(t,n,e.detailsSectionContent,c.ns.foaf("name"),r.vcard("Group"),"group");if(!u)return;let d;try{d=await de(i,u)}catch(t){return void(e.detailsSectionContent.innerHTML="Failed to save group"+t)}for(const e in o)delete o[e];o[d.uri]=!0;const p=e.allGroupsLi,f=e.newGroupLi;p.parentNode&&p.parentNode.removeChild(p),f.parentNode&&f.parentNode.removeChild(f),Ke(i,a,e.ulGroups,t,o,e.ulPeople,e.searchInput),e.ulGroups.insertBefore(p,e.ulGroups.firstChild),e.ulGroups.appendChild(f),Ge(e.ulGroups,o);const h=Array.from(e.ulGroups.children).find(e=>e.subject&&e.subject.uri===d.uri);ze(e.ulGroups,h?h.querySelector("button"):null),Qe(e.ulPeople,null,!1),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.appendChild(c.aclControl.ACLControlBox5(d.doc(),s,"group",n,function(t,n){t||(e.detailsSectionContent.innerHTML="Group sharing setup failed: "+n)}))}function jt(e,t,n){const{dom:r,kb:i,book:a,selectedGroups:o,dataBrowserContext:s}=e;t.innerHTML="",c.widgets.askName(r,i,t,c.ns.foaf("name"),n).then(async t=>{if(!t)return;let r;e.detailsSectionContent.innerHTML="Indexing...";try{r=await async function(e,t,n,r){await ce.fetcher.load(e.doc());const i=ce.any(e,oe.vcard("nameEmailIndex")),a=se.genUuid(),o=ce.sym(e.dir().uri+"Person/"+a+"/index.ttl#this"),s=o.doc(),c=[l.st(o,oe.vcard("inAddressBook"),e,i),l.st(o,oe.vcard("fn"),t,i),l.st(o,oe.vcard("fn"),t,s),l.st(o,oe.rdf("type"),r,s),l.st(s,oe.dct("created"),new Date,s)],u=Array.isArray(n)?n:Object.keys(n||{});if(u.length>0){for(const e of u){const n=ce.sym(e),r=n.doc();c.push(l.st(n,oe.vcard("hasMember"),o,r),l.st(o,oe.vcard("fn"),t,r))}try{await le.updateMany([],c)}catch(e){throw new Error("Save new contact")}return o}Q("Must be a member of at least one group. Please select or create a group.")}(a,t,o,n)}catch(e){return void Q("Error saving contact. If it persists, contact your admin.")}if(!r)return void(e.detailsSectionContent.innerHTML="");e.selectedPeople={},e.selectedPeople[r.uri]=!0,Qe(e.ulPeople,null),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.add("detailsSectionContent--wide");const i=s.session.paneRegistry.byName("contact").render(r,s);i.classList.add("renderPane"),e.detailsSectionContent.appendChild(i)})}return o=o.default})(),e.exports=r(n(9332),n(500),n(8230))},4945(e,t,n){var r="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==n.g&&n.g,i=function(){function e(){this.fetch=!1,this.DOMException=r.DOMException}return e.prototype=r,new e}();!function(e){!function(t){var r=void 0!==e&&e||"undefined"!=typeof self&&self||void 0!==n.g&&n.g||{},i="URLSearchParams"in r,a="Symbol"in r&&"iterator"in Symbol,o="FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch(e){return!1}}(),s="FormData"in r,c="ArrayBuffer"in r;if(c)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(e){return e&&l.indexOf(Object.prototype.toString.call(e))>-1};function d(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function p(e){return"string"!=typeof e&&(e=String(e)),e}function f(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return a&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){if(2!=e.length)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+e.length);this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function m(e){if(!e._noBody)return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function g(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function v(e){var t=new FileReader,n=g(t);return t.readAsArrayBuffer(e),n}function b(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:o&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:s&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:i&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():c&&o&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=b(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c&&(ArrayBuffer.prototype.isPrototypeOf(e)||u(e))?this._bodyArrayBuffer=b(e):this._bodyText=e=Object.prototype.toString.call(e):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):i&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var e=m(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=m(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}if(o)return this.blob().then(v);throw new Error("could not read as ArrayBuffer")},this.text=function(){var e,t,n,r,i,a=m(this);if(a)return a;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,n=g(t),r=/charset=([A-Za-z0-9_-]+)/.exec(e.type),i=r?r[1]:"utf-8",t.readAsText(e,i),n;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},s&&(this.formData=function(){return this.text().then(A)}),this.json=function(){return this.text().then(JSON.parse)},this}h.prototype.append=function(e,t){e=d(e),t=p(t);var n=this.map[e];this.map[e]=n?n+", "+t:t},h.prototype.delete=function(e){delete this.map[d(e)]},h.prototype.get=function(e){return e=d(e),this.has(e)?this.map[e]:null},h.prototype.has=function(e){return this.map.hasOwnProperty(d(e))},h.prototype.set=function(e,t){this.map[d(e)]=p(t)},h.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},h.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),f(e)},h.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),f(e)},h.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),f(e)},a&&(h.prototype[Symbol.iterator]=h.prototype.entries);var w=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function x(e,t){if(!(this instanceof x))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');var n,i,a=(t=t||{}).body;if(e instanceof x){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new h(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,a||null==e._bodyInit||(a=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new h(t.headers)),this.method=(n=t.method||this.method||"GET",i=n.toUpperCase(),w.indexOf(i)>-1?i:n),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal||function(){if("AbortController"in r)return(new AbortController).signal}(),this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&a)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(a),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var o=/([?&])_=[^&]*/;if(o.test(this.url))this.url=this.url.replace(o,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function A(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function E(e,t){if(!(this instanceof E))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}x.prototype.clone=function(){return new x(this,{body:this._bodyInit})},y.call(x.prototype),y.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},E.error=function(){var e=new E(null,{status:200,statusText:""});return e.ok=!1,e.status=0,e.type="error",e};var C=[301,302,303,307,308];E.redirect=function(e,t){if(-1===C.indexOf(t))throw new RangeError("Invalid status code");return new E(null,{status:t,headers:{location:e}})},t.DOMException=r.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function k(e,n){return new Promise(function(i,a){var s=new x(e,n);if(s.signal&&s.signal.aborted)return a(new t.DOMException("Aborted","AbortError"));var l=new XMLHttpRequest;function u(){l.abort()}if(l.onload=function(){var e,t,n={statusText:l.statusText,headers:(e=l.getAllResponseHeaders()||"",t=new h,e.replace(/\r?\n[\t ]+/g," ").split("\r").map(function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e}).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();try{t.append(r,i)}catch(e){}}}),t)};0===s.url.indexOf("file://")&&(l.status<200||l.status>599)?n.status=200:n.status=l.status,n.url="responseURL"in l?l.responseURL:n.headers.get("X-Request-URL");var r="response"in l?l.response:l.responseText;setTimeout(function(){i(new E(r,n))},0)},l.onerror=function(){setTimeout(function(){a(new TypeError("Network request failed"))},0)},l.ontimeout=function(){setTimeout(function(){a(new TypeError("Network request timed out"))},0)},l.onabort=function(){setTimeout(function(){a(new t.DOMException("Aborted","AbortError"))},0)},l.open(s.method,function(e){try{return""===e&&r.location.href?r.location.href:e}catch(t){return e}}(s.url),!0),"include"===s.credentials?l.withCredentials=!0:"omit"===s.credentials&&(l.withCredentials=!1),"responseType"in l&&(o?l.responseType="blob":c&&(l.responseType="arraybuffer")),n&&"object"==typeof n.headers&&!(n.headers instanceof h||r.Headers&&n.headers instanceof r.Headers)){var f=[];Object.getOwnPropertyNames(n.headers).forEach(function(e){f.push(d(e)),l.setRequestHeader(e,p(n.headers[e]))}),s.headers.forEach(function(e,t){-1===f.indexOf(t)&&l.setRequestHeader(t,e)})}else s.headers.forEach(function(e,t){l.setRequestHeader(t,e)});s.signal&&(s.signal.addEventListener("abort",u),l.onreadystatechange=function(){4===l.readyState&&s.signal.removeEventListener("abort",u)}),l.send(void 0===s._bodyInit?null:s._bodyInit)})}k.polyfill=!0,r.fetch||(r.fetch=k,r.Headers=h,r.Request=x,r.Response=E),t.Headers=h,t.Request=x,t.Response=E,t.fetch=k}({})}(i),i.fetch.ponyfill=!0,delete i.fetch.polyfill;var a=r.fetch?r:i;(t=a.fetch).default=a.fetch,t.fetch=a.fetch,t.Headers=a.Headers,t.Request=a.Request,t.Response=a.Response,e.exports=t},6320(e){"use strict";var t={single_source_shortest_paths:function(e,n,r){var i={},a={};a[n]=0;var o,s,c,l,u,d,p,f=t.PriorityQueue.make();for(f.push(n,0);!f.empty();)for(c in s=(o=f.pop()).value,l=o.cost,u=e[s]||{})u.hasOwnProperty(c)&&(d=l+u[c],p=a[c],(void 0===a[c]||p>d)&&(a[c]=d,f.push(c,d),i[c]=s));if(void 0!==r&&void 0===a[r]){var h=["Could not find a path from ",n," to ",r,"."].join("");throw new Error(h)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,n,r){var i=t.single_source_shortest_paths(e,n,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var n,r=t.PriorityQueue,i={};for(n in e=e||{},r)r.hasOwnProperty(n)&&(i[n]=r[n]);return i.queue=[],i.sorter=e.sorter||r.default_sorter,i},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};e.exports=t},5454(e){"use strict";
14
+ */var r=n(7526),i=n(251),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50;var o=2147483647;function s(e){if(e>o)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return l(e,t,n)}function l(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|m(e,t),r=s(n),i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(z(e,Uint8Array)){var t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(z(e,ArrayBuffer)||e&&z(e.buffer,ArrayBuffer))return f(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(z(e,SharedArrayBuffer)||e&&z(e.buffer,SharedArrayBuffer)))return f(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return c.from(r,t,n);var i=function(e){if(c.isBuffer(e)){var t=0|h(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||H(e.length)?s(0):p(e);if("Buffer"===e.type&&Array.isArray(e.data))return p(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return u(e),s(e<0?0:0|h(e))}function p(e){for(var t=e.length<0?0:0|h(e.length),n=s(t),r=0;r<t;r+=1)n[r]=255&e[r];return n}function f(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');var r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,c.prototype),r}function h(e){if(e>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function m(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||z(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return D(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return M(e).length;default:if(i)return r?-1:D(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return _(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),H(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,i){var a,o=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,c/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(a=n;a<s;a++)if(l(e,a)===l(t,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===c)return u*o}else-1!==u&&(a-=a-u),u=-1}else for(n+c>s&&(n=s-c),a=n;a>=0;a--){for(var d=!0,p=0;p<c;p++)if(l(e,a+p)!==l(t,p)){d=!1;break}if(d)return a}return-1}function w(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var a=t.length;r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(H(s))return o;e[n+o]=s}return o}function x(e,t,n,r){return U(D(t,e.length-n),e,n,r)}function A(e,t,n,r){return U(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function E(e,t,n,r){return U(M(t),e,n,r)}function C(e,t,n,r){return U(function(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function k(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function _(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a,o,s,c,l=e[i],u=null,d=l>239?4:l>223?3:l>191?2:1;if(i+d<=n)switch(d){case 1:l<128&&(u=l);break;case 2:128==(192&(a=e[i+1]))&&(c=(31&l)<<6|63&a)>127&&(u=c);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(c=(15&l)<<12|(63&a)<<6|63&o)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return function(e){var t=e.length;if(t<=S)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=S));return n}(r)}t.kMaxLength=o,c.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),!c.TYPED_ARRAY_SUPPORT&&"undefined"!=typeof console&&console.error,Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}}),c.poolSize=8192,c.from=function(e,t,n){return l(e,t,n)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array),c.alloc=function(e,t,n){return function(e,t,n){return u(e),e<=0?s(e):void 0!==t?"string"==typeof n?s(e).fill(t,n):s(e).fill(t):s(e)}(e,t,n)},c.allocUnsafe=function(e){return d(e)},c.allocUnsafeSlow=function(e){return d(e)},c.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==c.prototype},c.compare=function(e,t){if(z(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),z(t,Uint8Array)&&(t=c.from(t,t.offset,t.byteLength)),!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var a=e[n];if(z(a,Uint8Array))i+a.length>r.length?c.from(a).copy(r,i):Uint8Array.prototype.set.call(r,a,i);else{if(!c.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i)}i+=a.length}return r},c.byteLength=m,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},c.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?_(this,0,e):g.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},a&&(c.prototype[a]=c.prototype.inspect),c.prototype.compare=function(e,t,n,r,i){if(z(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),l=this.slice(r,i),u=e.slice(t,n),d=0;d<s;++d)if(l[d]!==u[d]){a=l[d],o=u[d];break}return a<o?-1:o<a?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return b(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return b(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return x(this,e,t,n);case"ascii":case"latin1":case"binary":return A(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var S=4096;function T(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function F(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=q[e[a]];return i}function R(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length-1;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function I(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,i,a){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function B(e,t,n,r,a){return t=+t,n>>>=0,a||L(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function O(e,t,n,r,a){return t=+t,n>>>=0,a||L(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);var r=this.subarray(e,t);return Object.setPrototypeOf(r,c.prototype),r},c.prototype.readUintLE=c.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},c.prototype.readUintBE=c.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},c.prototype.readInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){e>>>=0,t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return e>>>=0,t||I(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||I(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||I(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||I(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t>>>=0,n>>>=0,r)||N(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t>>>=0,n>>>=0,r)||N(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a<n&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeFloatLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return O(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return O(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i=r-n;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),i},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){var i=e.charCodeAt(0);("utf8"===r&&i<128||"latin1"===r)&&(e=i)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=c.isBuffer(e)?e:c.from(e,r),s=o.length;if(0===s)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(a=0;a<n-t;++a)this[a+t]=o[a%s]}return this};var j=/[^+/0-9A-Za-z-_]/g;function D(e,t){var n;t=t||1/0;for(var r=e.length,i=null,a=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function M(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(j,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function U(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function H(e){return e!=e}var q=function(){for(var e="0123456789abcdef",t=new Array(256),n=0;n<16;++n)for(var r=16*n,i=0;i<16;++i)t[r+i]=e[n]+e[i];return t}()},701(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findChat=s,t.getChat=async function(e,t=!0){const{me:n,chatContainer:c,exists:l}=await s(e);if(l)return new a.NamedNode(c.value+o.longChatPane.CHAT_LOCATION_IN_CONTAINER);if(t){const t=await async function(e,t){const n=await o.longChatPane.mintNew({session:{store:i.store}},{me:t,newBase:e.value});return n.newInstance}(c,n);return await async function(e,t){await i.store.fetcher.load(e.doc());const n=i.store.any(e,r.ns.ldp("inbox"),void 0,e.doc());if(!n)throw new Error(`Invitee inbox not found! ${e.value}`);const a=`\n<> a <http://www.w3.org/ns/pim/meeting#LongChatInvite> ;\n${r.ns.rdf("seeAlso")} <${t.value}> . \n `,o=await i.store.fetcher.webOperation("POST",n.value,{data:a,contentType:"text/turtle"});if(!o.headers.get("location"))throw new Error(`Invite sending returned a ${o.status}`)}(e,t),await async function(e,t,n){await i.store.fetcher.load(e);const r=i.store.any(e,new a.NamedNode("http://www.iana.org/assignments/link-relations/acl"));if(!r)throw new Error("Chat ACL doc not found!");const o=`\n@prefix acl: <http://www.w3.org/ns/auth/acl#>.\n<#owner>\n a acl:Authorization;\n acl:agent <${t.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Write, acl:Control.\n<#invitee>\n a acl:Authorization;\n acl:agent <${n.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Append.\n`;await i.store.fetcher.webOperation("PUT",r.value,{data:o,contentType:"text/turtle"})}(c,n,e),await async function(e,t){const n=i.store.any(t,r.ns.solid("privateTypeIndex"));if(!n)throw new Error("Private type index not found!");await i.store.fetcher.load(n);const o=r.widgets.newThing(n),s=[(0,a.st)(o,r.ns.rdf("type"),r.ns.solid("TypeRegistration"),n.doc()),(0,a.st)(o,r.ns.solid("forClass"),r.ns.meeting("LongChat"),n.doc()),(0,a.st)(o,r.ns.solid("instance"),e,n.doc())];await new Promise((e,t)=>{i.store.updater.update([],s,function(n,r,i){r?e():t(new Error(i))})})}(t,n),t}throw new Error("Chat does not exist and createIfMissing is false")};var r=n(500),i=n(9332),a=n(8230),o=n(8055);async function s(e){const t=await async function(){const e=i.authn.currentUser();if(null===e)throw new Error("Current user not found! Not logged in?");return await i.store.fetcher.load(e.doc()),e}(),n=await async function(e){const t=i.store.any(e,r.ns.space("storage"),void 0,e.doc());if(!t)throw new Error("Current user pod root not found!");return t}(t),s=function(e,t){const n=new URL(`IndividualChats/${new URL(e.value).host}/`,t.value).toString();return new a.NamedNode(n)}(e,n);let c=!0;try{await i.store.fetcher.load(new a.NamedNode(s.value+o.longChatPane.CHAT_LOCATION_IN_CONTAINER))}catch(e){c=!1}return{me:t,chatContainer:s,exists:c}}},8055(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.longChatPane=void 0;var r=n(9332),i=o(n(500)),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=i.ns,c=s.meeting("LongChat"),l="index.ttl#this",u=i.style.sidebarComponentStyle||" padding: 0.5em; width: 100%;",d=i.style.sidebarStyle||"overflow-x: auto; overflow-y: auto; border-radius: 1em; border: 0.1em solid white;";t.longChatPane={CHAT_LOCATION_IN_CONTAINER:l,icon:i.icons.iconBase+"noun_1689339.svg",name:"long chat",label:function(e,t){const n=t.session.store;return n.holds(e,s.rdf("type"),s.meeting("LongChat"))?"Chat channnel":n.holds(e,s.rdf("type"),s.sioc("Thread"))?"Thread":n.any(e,s.sioc("content"))&&n.any(e,s.dct("created"))?"message":null},mintClass:c,mintNew:function(e,t){const n=e.session.store,r=n.updater;if(t.me&&!t.me.uri)throw new Error("chat mintNew: Invalid userid "+t.me);const i=t.newInstance=t.newInstance||n.sym(t.newBase+l),a=i.doc();n.add(i,s.rdf("type"),s.meeting("LongChat"),a),n.add(i,s.dc("title"),"Chat channel",a),n.add(i,s.dc("created"),new Date,a),t.me&&n.add(i,s.dc("author"),t.me,a);const o=(e,t,n)=>`\n @prefix : <#>.\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n @prefix foaf: <http://xmlns.com/foaf/0.1/>.\n @prefix lon: <./${t}>.\n\n :ControlReadWrite\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agent <${e.uri}>;\n acl:default lon:;\n acl:mode acl:Control, acl:Read, acl:Write.\n :Read\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass foaf:Agent;\n acl:default lon:;\n acl:mode acl:Read.\n :Read${n}\n a acl:Authorization;\n acl:accessTo lon:;\n acl:agentClass acl:AuthenticatedAgent;\n acl:default lon:;\n acl:mode acl:Read, acl:${n}.`;return new Promise(function(e,i){r.put(a,n.statementsMatching(void 0,void 0,void 0,a),"text/turtle",function(n,r,a){r?e(t):i(new Error("FAILED to save new chat channel at: "+n+" : "+a))}).then(e=>new Promise((e,r)=>{t.me&&(n.fetcher.webOperation("PUT",t.newBase+".acl",{data:o(t.me,"","Append"),contentType:"text/turtle"}),n.fetcher.webOperation("PUT",t.newBase+"index.ttl.acl",{data:o(t.me,"index.ttl","Write"),contentType:"text/turtle"})),e(t)}))})},render:function(e,t,n){const o=t.dom,l=t.session.store,p=l.sym("https://solid.github.io/solid-panes/longCharPane/preferencesForm.ttl#this"),f=p.doc();l.holds(void 0,void 0,void 0,f)||a.parse('\n @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n @prefix solid: <http://www.w3.org/ns/solid/terms#>.\n @prefix ui: <http://www.w3.org/ns/ui#>.\n @prefix : <#>.\n\n :this\n <http://purl.org/dc/elements/1.1/title> "Chat preferences" ;\n a ui:Form ;\n ui:parts ( :colorizeByAuthor :expandImagesInline :newestFirst :inlineImageHeightEms\n :shiftEnterSendsMessage :authorDateOnLeft :showDeletedMessages).\n\n :colorizeByAuthor a ui:TristateField; ui:property solid:colorizeByAuthor;\n ui:label "Color user input by user".\n\n :expandImagesInline a ui:TristateField; ui:property solid:expandImagesInline;\n ui:label "Expand image URLs inline".\n\n :newestFirst a ui:TristateField; ui:property solid:newestFirst;\n ui:label "Newest messages at the top".\n\n :inlineImageHeightEms a ui:IntegerField; ui:property solid:inlineImageHeightEms;\n ui:label "Inline image height (lines)".\n\n :shiftEnterSendsMessage a ui:TristateField; ui:property solid:shiftEnterSendsMessage;\n ui:label "Shift-Enter sends message".\n\n :authorDateOnLeft a ui:TristateField; ui:property solid:authorDateOnLeft;\n ui:label "Author & date of message on left".\n\n :showDeletedMessages a ui:TristateField; ui:property solid:showDeletedMessages;\n ui:label "Show placeholders for deleted messages".\n',l,f.uri,"text/turtle");const h=l.statementsMatching(null,s.ui.property,null,f).map(e=>e.object);function m(e){const n=i.widgets.button(t.dom,i.icons.iconBase+"noun_1180156.svg","close",function(){e.parentNode.removeChild(e)});return n.style.float="right",n.style.margin="0.7em",delete n.style.backgroundColor,n}function g(e,n){const a=o.createElement("div"),s=r.authn.currentUser(),c={div:a,dom:o,noun:n,statusArea:a,me:s,refreshTarget:e},l=[t.session.paneRegistry.byName("chat")];return i.create.newThingUI(c,t,l),a}let v,b=null;let y=e,w=null,x=null;if(l.holds(e,s.rdf("type"),s.meeting("LongChat")));else if(l.holds(e,s.rdf("type"),s.sioc("Thread"))){x=e;const t=l.the(null,s.sioc("has_reply"),x,x.doc());if(!t)throw new Error("Thread has no root message "+x);if(y=l.any(null,s.wf("message"),t),!y)throw new Error("Thread root has no link to chatChannel")}else if(l.any(e,s.sioc("content"))&&l.any(e,s.dct("created"))&&(w=e,y=l.any(null,s.wf("message"),w),!y))throw new Error("Message has no link to chatChannel");const A=o.createElement("div"),E="20cm",C=A.appendChild(o.createElement("table"));C.style.maxHeight='12"';const k=C.appendChild(o.createElement("tr")),_=k.appendChild(o.createElement("td")),S=k.appendChild(o.createElement("td")),T=k.appendChild(o.createElement("td")),P=k.appendChild(o.createElement("td")),F=C.appendChild(o.createElement("tr"));_.style=d,_.style.paddingRight="1em",T.style=d,T.style.paddingLeft="1em",P.style=d,P.style.paddingLeft="1em",F.appendChild(o.createElement("td"));const R=F.appendChild(o.createElement("td"));F.appendChild(o.createElement("td"));const I=i.widgets.button(o,i.icons.iconBase+"noun_339237.svg","participants ...");R.appendChild(I),I.addEventListener("click",function(e){if(!v){v=o.createElement("div"),v.style=u,v.style.maxHeight=E,v.appendChild(m(v));const e=r.authn.currentUser();e||alert("Should be logeed in for partipants panel"),i.pad.manageParticipation(o,v,y.doc(),y,e,{})}_.contains(v)?(v.parentNode.removeChild(v),v=null):_.appendChild(v)});const N=i.widgets.button(o,i.icons.iconBase+"noun_1689339.svg","List of other chats ...");R.appendChild(N),N.addEventListener("click",async function(e){b||(b=o.createElement("div"),b.style=u,b.style.maxHeight=E,b.appendChild(m(b)),b.appendChild(await async function(e,t){const n=o.createElement("div"),r={dom:o,div:n,noun:t};return await i.login.registrationList(r,{public:!0,private:!0,type:e}),n.appendChild(g(n,t)),n}(s.meeting("LongChat"),"chat"))),_.contains(b)?b.parentNode.removeChild(b):_.appendChild(b)});let L=null;const B=i.widgets.button(o,i.icons.iconBase+"noun_344563.svg","Setting ...");R.appendChild(B),B.style.float="right",B.addEventListener("click",async function(e){L||(L=await async function(e){const{dom:t,noun:n}=e,a=t.createElement("div");a.appendChild(m(a)),a.style=u,a.style.minWidth="25em",a.style.maxHeight=E;const o=a.appendChild(t.createElement("table")),s=o.appendChild(t.createElement("tr")),d=o.appendChild(t.createElement("tr")),f=r.authn.currentUser();return f&&(await i.login.registrationControl({noun:n,me:f,statusArea:d,dom:t,div:s},y,c),a.appendChild(i.preferences.renderPreferencesForm(y,c,p,{noun:n,me:f,statusArea:d,div:a,dom:t,kb:l}))),a}({dom:o,noun:"chat room"})),P.contains(L)?(L.parentNode.removeChild(L),L=null):P.appendChild(L)}),A.setAttribute("class","chatPane");const O={infinite:!0},j={noun:"chat room",div:A,dom:o};async function D(e,t){const n={};n.thread=e,n.includeRemoveButton=!0,n.authorDateOnLeft=t.authorDateOnLeft,n.newestFirst=t.newestFirst,T.innerHTML="";const r=await i.infiniteMessageArea(o,l,y,n);r.style.resize="both",r.style.overflow="auto",r.style.maxHeight=E,T.appendChild(r)}return j.me=r.authn.currentUser(),async function(){let e;try{e=await i.preferences.getPreferencesForClass(y,c,h,j)}catch(e){i.widgets.complain(j,e)}for(const t in e)O[t.split("#")[1]]=e[t];w&&(O.selectedMessage=w),n.solo&&(O.solo=!0),x?O.thread=x:O.showThread=D;const t=await i.infiniteMessageArea(o,l,y,O);t.style.resize="both",t.style.overflow="auto",t.style.maxHeight=E,S.appendChild(t)}().then(void 0),A}}},7052(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getChat",{enumerable:!0,get:function(){return a.getChat}}),Object.defineProperty(t,"longChatPane",{enumerable:!0,get:function(){return i.longChatPane}}),Object.defineProperty(t,"shortChatPane",{enumerable:!0,get:function(){return r.shortChatPane}});var r=n(6303),i=n(8055),a=n(701)},6303(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shortChatPane=void 0;var r=n(9332),i=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));const a=i.ns;t.shortChatPane={icon:i.icons.iconBase+"noun_346319.svg",name:"chat",audience:[a.solid("PowerUser")],label:function(e,t){const n=t.session.store,r=n.each(e,a.wf("message")).length;return r>0?"Chat ("+r+")":n.holds(e,a.rdf("type"),a.meeting("Chat"))?"Meeting chat":n.holds(void 0,a.rdf("type"),a.foaf("ChatChannel"),e)?"IRC log":null},mintClass:a.meeting("Chat"),mintNew:function(e,t){if(!confirm("short Chat is deprecated in favor of long Chat.\nEmbedded chat for comments and existing short Chats will work.\nYou can report any issues at https://github.com/SolidOS/chat-pane ?\n\nDo you really want to create a new deprecated short Chat?"))return;const n=e.session.store,r=n.updater;if(t.me&&!t.me.uri)throw new Error("chat mintNew: Invalid userid "+t.me);const i=t.newInstance=t.newInstance||n.sym(t.newBase+"index.ttl#this"),o=i.doc();return n.add(i,a.rdf("type"),a.meeting("Chat"),o),n.add(i,a.dc("title"),"Chat",o),n.add(i,a.dc("created"),new Date,o),t.me&&n.add(i,a.dc("author"),t.me,o),new Promise(function(e,i){r.put(o,n.statementsMatching(void 0,void 0,void 0,o),"text/turtle",function(n,r,a){r?e(t):i(new Error("FAILED to save new tool at: "+n+" : "+a))})})},render:function(e,t){const n=t.session.store,o=t.dom,s=o.createElement("div");s.setAttribute("class","chatPane");const c={};let l;if(n.holds(e,a.rdf("type"),a.meeting("Chat")))l=e.doc();else if(n.any(e,i.ns.wf("message")))l=r.store.any(e,i.ns.wf("message")).doc();else if(n.holds(void 0,a.rdf("type"),a.foaf("ChatChannel"),e)||n.holds(e,a.rdf("type"),a.foaf("ChatChannel"))){const t=function(){const e=new $rdf.Query("IRC log entries"),t=[];return["chan","msg","date","list","pred","creator","content"].forEach(function(n){e.vars.push(t[n]=$rdf.variable(n))}),e.pat.add(t.chan,a.foaf("chatEventList"),t.list),e.pat.add(t.list,t.pred,t.msg),e.pat.add(t.msg,a.dc("date"),t.date),e.pat.add(t.msg,a.dc("creator"),t.creator),e.pat.add(t.msg,a.dc("description"),t.content),e};l=e.doc(),c.query=t()}else!function(e,t){const n=o.createElement("pre");n.setAttribute("style","background-color: "+t||0),s.appendChild(n),n.appendChild(o.createTextNode(e))}("Unknown chat type");return s.appendChild(i.messageArea(o,n,e,l,c)),n.updater.addDownstreamChangeListener(l,function(){i.widgets.refreshTree(s)}),s}}},3955(e,t,n){var r;globalThis,r=(e,t,n)=>(()=>{"use strict";var r={903(e,t,n){n.d(t,{A:()=>p});var r=n(354),i=n.n(r),a=n(314),o=n.n(a),s=n(417),c=n.n(s),l=new URL(n(102),n.b),u=o()(i()),d=c()(l);u.push([e.id,`/* Focus indicator for keyboard navigation */\n.contactPane table tr[tabindex="0"]:focus {\n outline: var(--focus-ring-width) solid var(--color-primary);\n outline-offset: 2px;\n background: var(--color-info-bg);\n}\n/* contactsPane styles — extracted from inline styles in contactsPane.js */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Layout: Three-column browser ────────────────────────────── */\n\n.contactPane .peopleSection .selected {\n background-color: var(--color-info-bg) !important;\n}\n\n.contactPane .detailSection {\n flex: 1 1 0; /* allow it to grow but not force wrap */\n min-width: 300px;\n box-sizing: border-box;\n background: var(--color-section-bg);\n}\n\n.contactPane .detailsSectionContent {\n min-height: 200px;\n padding: var(--spacing-lg);\n max-width: 900px;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent--wide {\n max-width: 900px;\n}\n\n.contactPane .cardFooter {\n display: flex;\n flex-wrap: nowrap; /* keep buttons inline */\n align-items: center; /* vertical centering if varied heights */\n gap: var(--spacing-xs);\n padding-top: var(--spacing-md);\n margin-top: var(--spacing-md);\n}\n\n.contactPane .detailsSectionContent {\n margin: 0;\n}\n\n/* ── Contact type chooser ───────────────────────────────────── */\n\n.contactPane .contactTypeChooser {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n max-width: 360px;\n}\n\n.contactPane .contactTypeChooser h3 {\n margin: 0 0 var(--spacing-xs) 0;\n font-size: var(--font-size-lg);\n}\n\n.contactPane .contactTypeSelect {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm);\n font-size: var(--font-size-sm);\n background: var(--color-section-bg);\n}\n\n/* ── Search ──────────────────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n border-radius: var(--border-radius-full) !important;\n /* existing styles */\n}\n/* wrapper to position clear icon/button */\n.contactPane .searchDiv {\n position: relative;\n}\n\n.contactPane .searchInput {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n background-color: var(--color-section-bg);\n background-image: url(${d});\n background-repeat: no-repeat;\n background-position: 8px center;\n background-size: 20px 20px;\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm) 0 34px;\n font-size: var(--font-size-base);\n width: 100%;\n box-sizing: border-box;\n}\n\n/* clear button inside search input */\n.contactPane .searchClearButton {\n position: absolute;\n right: var(--spacing-sm);\n top: 50%;\n transform: translateY(-50%);\n border: none;\n background: transparent;\n font-size: var(--font-size-base);\n line-height: 1;\n padding: 0;\n cursor: pointer;\n color: var(--color-text-muted);\n /* visibility is controlled via the generic \`.hidden\` utility class */\n display: block;\n}\n.contactPane .searchClearButton.hidden {\n display: none;\n}\n.contactPane .searchClearButton:hover {\n color: var(--color-text);\n}\n\n/* ── Contact toolbar (top-right link + delete) ──────────────── */\n\n.contactPane .contact-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-sm);\n padding: var(--spacing-xs) 0;\n}\n\n.contactPane .contact-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n/* ── "All" groups button ─────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n margin-left: var(--spacing-md);\n font-size: var(--font-size-base);\n}\n\n.contactPane .allGroupsButton--loading {\n background-color: var(--color-primary);\n}\n\n.contactPane .allGroupsButton--active {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n.contactPane .allGroupsButton--loaded {\n background-color: var(--color-primary);\n}\n\n/* ── Selection & visibility states ───────────────────────────── */\n\n.contactPane .group-loading {\n}\n\n.contactPane .hidden {\n display: none;\n}\n\n/* ── Mint new address book ───────────────────────────────────── */\n\n.contactPane .claimSuccess {\n font-size: var(--font-size-xl);\n}\n\n.contactPane {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.contactPane .addressBook-grid {\n display: flex;\n flex-wrap: nowrap; /* keep sections side-by-side */\n flex: 1;\n min-width: 50%;\n align-items: stretch;\n width: 100%;\n box-sizing: border-box;\n overflow-x: auto; /* allow horizontal scroll if needed */\n}\n\n.contactPane .addressBookSection {\n flex: 1 1 350px;\n max-width: 485px;\n box-sizing: border-box;\n}\n\n@media ((min-width: 500px) and (max-width: 900px)) {\n .contactPane .addressBookSection {\n max-width: 900px;\n }\n .contactPane .addressBookSection section {\n max-width: 485px;\n }\n}\n\n@media (max-width: 500px) {\n .contactPane .addressBookSection {\n max-width: 485px;\n }\n}\n\n/* Card Section Background */\n.contactPane .section-bg {\n background: var(--color-section-bg);\n padding: var(--spacing-md);\n box-sizing: border-box;\n border: none !important;\n border-radius: 0 !important;\n}\n\n/* Primary Button */\n.contactPane .btn-primary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n background: var(--color-primary);\n color: var(--color-background);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n.contactPane .btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n\n/* Secondary button */\n.contactPane .btn-secondary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: var(--border-width-thin) solid var(--color-secondary);\n border-radius: var(--border-radius-base);\n background: var(--color-secondary);\n color: var(--color-background);\n font-weight: var(--font-weight-bold);\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .btn-secondary:hover {\n background: color-mix(in srgb, var(--color-secondary) 85%, black);\n}\n\n.contactPane .btn-secondary:disabled {\n opacity: var(--opacity-disabled);\n cursor: not-allowed;\n}\n\n/* Action Button Focus - used by ChatWithMe, ProfileCard */\n.contactPane .action-button-focus:focus,\n.contactPane .action-button-focus:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n/* ── Button section: horizontal scrollable row ──────────────── */\n\n.contactPane .buttonSection {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: var(--spacing-sm);\n padding-bottom: 0;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n margin-bottom: 0;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar {\n height: 6px;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-thumb {\n background: var(--color-border-pale);\n border-radius: var(--border-radius-base);\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.contactPane .buttonSection .selected {\n background: none !important;\n}\n\n.contactPane .groupButtonsList {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n gap: var(--spacing-xs);\n list-style: none;\n}\n\n.contactPane .buttonSection .groupButtonsList {\n margin-left: var(--spacing-xs);\n margin-right: var(--spacing-xs);\n padding-left: 0;\n}\n\n.contactPane .groupButtonsList li {\n flex-shrink: 0;\n}\n\n.contactPane .groupButtonsList button {\n white-space: nowrap;\n flex-shrink: 0;\n min-width: max-content;\n margin-left: 0;\n}\n\n/* Groups list in details section — flexible 2-column grid */\n.contactPane .detailsSectionContent .groupButtonsList {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList li {\n width: 100%;\n aspect-ratio: 1 / 1;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList button {\n width: 100%;\n height: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n@media (max-width: 599px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n }\n\n .contactPane .detailsSectionContent .groupButtonsList button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.contactPane .detailsSectionContent .newGroupBtn {\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-sm);\n}\n\n.contactPane .detailsSectionContent h3 {\n font-size: var(--font-size-xl);\n margin-bottom: var(--spacing-sm);\n padding-left: 0;\n}\n\n/* Delete confirmation POPUP — centered overlay in details section */\n.contactPane .detailSection {\n position: relative;\n}\n\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"],\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"],\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"],\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] {\n position: absolute !important;\n top: 0 !important;\n left: 0 !important;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.3);\n z-index: 1000;\n}\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] > div {\n position: relative !important;\n top: auto !important;\n background: var(--color-background);\n border-radius: var(--border-radius-full);\n padding: var(--spacing-lg);\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n z-index: 1001;\n}\n\n/* Selected state for All contacts button */\n.contactPane .allGroupsButton--selected {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n/* ── Header section ──────────────────────────────────────────── */\n\n.contactPane .headerSection {\n background: var(--color-background);\n padding: var(--spacing-sm);\n border-top-left-radius: var(--border-radius-full);\n border-top-right-radius: var(--border-radius-full);\n margin-bottom: 0;\n}\n\n.contactPane .headerSection header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 0;\n}\n\n.contactPane .headerSection h2 {\n margin-bottom: 0;\n}\n\n/* ── Dotted horizontal rule ─────────────────────────────────── */\n\n.contactPane .dottedHr {\n border: none;\n border-top: 1px dotted var(--color-text-muted);\n margin: 0;\n}\n\n/* ── Search section ─────────────────────────────────────────── */\n\n.contactPane .searchSection {\n padding: var(--spacing-sm);\n padding-bottom: 0;\n margin-bottom: 0;\n}\n\n/* ── People list section ────────────────────────────────────── */\n\n.contactPane .peopleSection {\n display: flex;\n background: var(--color-background);\n border-top: 1px dotted var(--color-text-muted);\n margin-bottom: 0;\n}\n\n.contactPane .peopleSection ul {\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n max-height: 70vh;\n overflow-y: auto;\n}\n\n.contactPane .peopleSection li {\n border-top: 1px solid var(--color-border-pale);\n padding: var(--spacing-xs);\n}\n\n/* ── Person list item (addressBookPresenter) ─────────────────── */\n\n.contactPane .personLi-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.contactPane .personLi-avatar {\n width: 45px;\n height: 45px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar .avatar-placeholder {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar img {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n}\n\n.contactPane .personLi-info {\n flex: 1;\n margin-left: var(--spacing-sm);\n overflow: hidden;\n}\n\n.contactPane .personLi-name {\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.contactPane .personLi-arrow {\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n\n.contactPane .personLi--error {\n opacity: 0.5;\n}`,"",{version:3,sources:["webpack://./src/styles/contactsPane.css"],names:[],mappings:"AAAA,4CAA4C;AAC5C;EACE,2DAA2D;EAC3D,mBAAmB;EACnB,gCAAgC;AAClC;AACA,0EAA0E;AAC1E,qFAAqF;;AAErF,mEAAmE;;AAEnE;EACE,iDAAiD;AACnD;;AAEA;EACE,WAAW,EAAE,wCAAwC;EACrD,gBAAgB;EAChB,sBAAsB;EACtB,mCAAmC;AACrC;;AAEA;EACE,iBAAiB;EACjB,0BAA0B;EAC1B,gBAAgB;EAChB,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,iBAAiB,EAAE,wBAAwB;EAC3C,mBAAmB,EAAE,yCAAyC;EAC9D,sBAAsB;EACtB,8BAA8B;EAC9B,6BAA6B;AAC/B;;AAEA;EACE,SAAS;AACX;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,sBAAsB;EACtB,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,+BAA+B;EAC/B,8BAA8B;AAChC;;AAEA;EACE,+BAA+B;EAC/B,0CAA0C;EAC1C,wCAAwC;EACxC,4BAA4B;EAC5B,8BAA8B;EAC9B,mCAAmC;AACrC;;AAEA,mEAAmE;;AAEnE;EACE,mDAAmD;EACnD,oBAAoB;AACtB;AACA,0CAA0C;AAC1C;EACE,kBAAkB;AACpB;;AAEA;EACE,+BAA+B;EAC/B,0CAA0C;EAC1C,yCAAyC;EACzC,yDAAgZ;EAChZ,4BAA4B;EAC5B,+BAA+B;EAC/B,0BAA0B;EAC1B,wCAAwC;EACxC,mCAAmC;EACnC,gCAAgC;EAChC,WAAW;EACX,sBAAsB;AACxB;;AAEA,qCAAqC;AACrC;EACE,kBAAkB;EAClB,wBAAwB;EACxB,QAAQ;EACR,2BAA2B;EAC3B,YAAY;EACZ,uBAAuB;EACvB,gCAAgC;EAChC,cAAc;EACd,UAAU;EACV,eAAe;EACf,8BAA8B;EAC9B,qEAAqE;EACrE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,wBAAwB;AAC1B;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;EACtB,4BAA4B;AAC9B;;AAEA;EACE,YAAY;EACZ,WAAW;EACX,SAAS;AACX;;AAEA,mEAAmE;;AAEnE;EACE,8BAA8B;EAC9B,gCAAgC;AAClC;;AAEA;EACE,sCAAsC;AACxC;;AAEA;EACE,sCAAsC;EACtC,8BAA8B;AAChC;;AAEA;EACE,sCAAsC;AACxC;;AAEA,mEAAmE;;AAEnE;AACA;;AAEA;EACE,aAAa;AACf;;AAEA,mEAAmE;;AAEnE;EACE,8BAA8B;AAChC;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,iBAAiB,EAAE,+BAA+B;EAClD,OAAO;EACP,cAAc;EACd,oBAAoB;EACpB,WAAW;EACX,sBAAsB;EACtB,gBAAgB,EAAE,sCAAsC;AAC1D;;AAEA;EACE,eAAe;EACf,gBAAgB;EAChB,sBAAsB;AACxB;;AAEA;EACE;IACE,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;;AAEA;EACE;IACE,gBAAgB;EAClB;AACF;;AAEA,4BAA4B;AAC5B;EACE,mCAAmC;EACnC,0BAA0B;EAC1B,sBAAsB;EACtB,uBAAuB;EACvB,2BAA2B;AAC7B;;AAEA,mBAAmB;AACnB;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,sCAAsC;EACtC,wCAAwC;EACxC,gCAAgC;EAChC,8BAA8B;EAC9B,gBAAgB;EAChB,eAAe;EACf,8CAA8C;AAChD;;AAEA;EACE,+DAA+D;EAC/D,6CAA6C;AAC/C;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,qCAAqC;EACrC,mBAAmB;EACnB,eAAe;AACjB;;AAEA,qBAAqB;AACrB;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,6DAA6D;EAC7D,wCAAwC;EACxC,kCAAkC;EAClC,8BAA8B;EAC9B,oCAAoC;EACpC,eAAe;EACf,8CAA8C;EAC9C,qBAAqB;EACrB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,iEAAiE;AACnE;;AAEA;EACE,gCAAgC;EAChC,mBAAmB;AACrB;;AAEA,0DAA0D;AAC1D;;EAEE,kDAAkD;EAClD,8BAA8B;EAC9B,4FAA4F;EAC5F,UAAU;AACZ;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,iBAAiB;EACjB,mBAAmB;EACnB,0BAA0B;EAC1B,iBAAiB;EACjB,gBAAgB;EAChB,kBAAkB;EAClB,iCAAiC;EACjC,qBAAqB;EACrB,gBAAgB;AAClB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,oCAAoC;EACpC,wCAAwC;AAC1C;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,iBAAiB;EACjB,mBAAmB;EACnB,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,8BAA8B;EAC9B,+BAA+B;EAC/B,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,cAAc;EACd,sBAAsB;EACtB,cAAc;AAChB;;AAEA,4DAA4D;AAC5D;EACE,aAAa;EACb,2DAA2D;EAC3D,sBAAsB;EACtB,gBAAgB;EAChB,UAAU;EACV,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,wCAAwC;EACxC,qBAAqB;EACrB,yBAAyB;AAC3B;;AAEA;EACE;IACE,qCAAqC;IACrC,sBAAsB;EACxB;;EAEA;IACE,8BAA8B;IAC9B,wCAAwC;EAC1C;AACF;;AAEA;EACE;IACE,qCAAqC;EACvC;AACF;;AAEA;EACE,WAAW;EACX,sBAAsB;EACtB,6BAA6B;AAC/B;;AAEA;EACE,8BAA8B;EAC9B,gCAAgC;EAChC,eAAe;AACjB;;AAEA,oEAAoE;AACpE;EACE,kBAAkB;AACpB;;AAEA;;;;EAIE,6BAA6B;EAC7B,iBAAiB;EACjB,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,8BAA8B;EAC9B,aAAa;AACf;AACA;;;;EAIE,6BAA6B;EAC7B,oBAAoB;EACpB,mCAAmC;EACnC,wCAAwC;EACxC,0BAA0B;EAC1B,yCAAyC;EACzC,aAAa;AACf;;AAEA,2CAA2C;AAC3C;EACE,sCAAsC;EACtC,8BAA8B;AAChC;;AAEA,mEAAmE;;AAEnE;EACE,mCAAmC;EACnC,0BAA0B;EAC1B,iDAAiD;EACjD,kDAAkD;EAClD,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,kEAAkE;;AAElE;EACE,YAAY;EACZ,8CAA8C;EAC9C,SAAS;AACX;;AAEA,kEAAkE;;AAElE;EACE,0BAA0B;EAC1B,iBAAiB;EACjB,gBAAgB;AAClB;;AAEA,kEAAkE;;AAElE;EACE,aAAa;EACb,mCAAmC;EACnC,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,UAAU;EACV,SAAS;EACT,WAAW;EACX,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,8CAA8C;EAC9C,0BAA0B;AAC5B;;AAEA,mEAAmE;;AAEnE;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;AAChC;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,iBAAiB;AACnB;;AAEA;EACE,OAAO;EACP,8BAA8B;EAC9B,gBAAgB;AAClB;;AAEA;EACE,iBAAiB;EACjB,gCAAgC;EAChC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;;AAEA;EACE,iBAAiB;EACjB,aAAa;EACb,mBAAmB;AACrB;;AAEA;EACE,YAAY;AACd",sourcesContent:['/* Focus indicator for keyboard navigation */\n.contactPane table tr[tabindex="0"]:focus {\n outline: var(--focus-ring-width) solid var(--color-primary);\n outline-offset: 2px;\n background: var(--color-info-bg);\n}\n/* contactsPane styles — extracted from inline styles in contactsPane.js */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Layout: Three-column browser ────────────────────────────── */\n\n.contactPane .peopleSection .selected {\n background-color: var(--color-info-bg) !important;\n}\n\n.contactPane .detailSection {\n flex: 1 1 0; /* allow it to grow but not force wrap */\n min-width: 300px;\n box-sizing: border-box;\n background: var(--color-section-bg);\n}\n\n.contactPane .detailsSectionContent {\n min-height: 200px;\n padding: var(--spacing-lg);\n max-width: 900px;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent--wide {\n max-width: 900px;\n}\n\n.contactPane .cardFooter {\n display: flex;\n flex-wrap: nowrap; /* keep buttons inline */\n align-items: center; /* vertical centering if varied heights */\n gap: var(--spacing-xs);\n padding-top: var(--spacing-md);\n margin-top: var(--spacing-md);\n}\n\n.contactPane .detailsSectionContent {\n margin: 0;\n}\n\n/* ── Contact type chooser ───────────────────────────────────── */\n\n.contactPane .contactTypeChooser {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm);\n max-width: 360px;\n}\n\n.contactPane .contactTypeChooser h3 {\n margin: 0 0 var(--spacing-xs) 0;\n font-size: var(--font-size-lg);\n}\n\n.contactPane .contactTypeSelect {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm);\n font-size: var(--font-size-sm);\n background: var(--color-section-bg);\n}\n\n/* ── Search ──────────────────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n border-radius: var(--border-radius-full) !important;\n /* existing styles */\n}\n/* wrapper to position clear icon/button */\n.contactPane .searchDiv {\n position: relative;\n}\n\n.contactPane .searchInput {\n height: var(--min-touch-target);\n border: 1px solid var(--color-border-pale);\n background-color: var(--color-section-bg);\n background-image: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23999\' viewBox=\'0 0 24 24\' width=\'20\' height=\'20\'%3E%3Cpath d=\'M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99c.41.41 1.09.41 1.5 0s.41-1.09 0-1.5l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\'/%3E%3C/svg%3E");\n background-repeat: no-repeat;\n background-position: 8px center;\n background-size: 20px 20px;\n border-radius: var(--border-radius-base);\n padding: 0 var(--spacing-sm) 0 34px;\n font-size: var(--font-size-base);\n width: 100%;\n box-sizing: border-box;\n}\n\n/* clear button inside search input */\n.contactPane .searchClearButton {\n position: absolute;\n right: var(--spacing-sm);\n top: 50%;\n transform: translateY(-50%);\n border: none;\n background: transparent;\n font-size: var(--font-size-base);\n line-height: 1;\n padding: 0;\n cursor: pointer;\n color: var(--color-text-muted);\n /* visibility is controlled via the generic `.hidden` utility class */\n display: block;\n}\n.contactPane .searchClearButton.hidden {\n display: none;\n}\n.contactPane .searchClearButton:hover {\n color: var(--color-text);\n}\n\n/* ── Contact toolbar (top-right link + delete) ──────────────── */\n\n.contactPane .contact-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-sm);\n padding: var(--spacing-xs) 0;\n}\n\n.contactPane .contact-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n/* ── "All" groups button ─────────────────────────────────────── */\n\n.contactPane .allGroupsButton {\n margin-left: var(--spacing-md);\n font-size: var(--font-size-base);\n}\n\n.contactPane .allGroupsButton--loading {\n background-color: var(--color-primary);\n}\n\n.contactPane .allGroupsButton--active {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n.contactPane .allGroupsButton--loaded {\n background-color: var(--color-primary);\n}\n\n/* ── Selection & visibility states ───────────────────────────── */\n\n.contactPane .group-loading {\n}\n\n.contactPane .hidden {\n display: none;\n}\n\n/* ── Mint new address book ───────────────────────────────────── */\n\n.contactPane .claimSuccess {\n font-size: var(--font-size-xl);\n}\n\n.contactPane {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.contactPane .addressBook-grid {\n display: flex;\n flex-wrap: nowrap; /* keep sections side-by-side */\n flex: 1;\n min-width: 50%;\n align-items: stretch;\n width: 100%;\n box-sizing: border-box;\n overflow-x: auto; /* allow horizontal scroll if needed */\n}\n\n.contactPane .addressBookSection {\n flex: 1 1 350px;\n max-width: 485px;\n box-sizing: border-box;\n}\n\n@media ((min-width: 500px) and (max-width: 900px)) {\n .contactPane .addressBookSection {\n max-width: 900px;\n }\n .contactPane .addressBookSection section {\n max-width: 485px;\n }\n}\n\n@media (max-width: 500px) {\n .contactPane .addressBookSection {\n max-width: 485px;\n }\n}\n\n/* Card Section Background */\n.contactPane .section-bg {\n background: var(--color-section-bg);\n padding: var(--spacing-md);\n box-sizing: border-box;\n border: none !important;\n border-radius: 0 !important;\n}\n\n/* Primary Button */\n.contactPane .btn-primary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n background: var(--color-primary);\n color: var(--color-background);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n.contactPane .btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n.contactPane .btn-primary:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n\n/* Secondary button */\n.contactPane .btn-secondary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: var(--border-width-thin) solid var(--color-secondary);\n border-radius: var(--border-radius-base);\n background: var(--color-secondary);\n color: var(--color-background);\n font-weight: var(--font-weight-bold);\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .btn-secondary:hover {\n background: color-mix(in srgb, var(--color-secondary) 85%, black);\n}\n\n.contactPane .btn-secondary:disabled {\n opacity: var(--opacity-disabled);\n cursor: not-allowed;\n}\n\n/* Action Button Focus - used by ChatWithMe, ProfileCard */\n.contactPane .action-button-focus:focus,\n.contactPane .action-button-focus:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n/* ── Button section: horizontal scrollable row ──────────────── */\n\n.contactPane .buttonSection {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: var(--spacing-sm);\n padding-bottom: 0;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n margin-bottom: 0;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar {\n height: 6px;\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-thumb {\n background: var(--color-border-pale);\n border-radius: var(--border-radius-base);\n}\n\n.contactPane .buttonSection::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.contactPane .buttonSection .selected {\n background: none !important;\n}\n\n.contactPane .groupButtonsList {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n gap: var(--spacing-xs);\n list-style: none;\n}\n\n.contactPane .buttonSection .groupButtonsList {\n margin-left: var(--spacing-xs);\n margin-right: var(--spacing-xs);\n padding-left: 0;\n}\n\n.contactPane .groupButtonsList li {\n flex-shrink: 0;\n}\n\n.contactPane .groupButtonsList button {\n white-space: nowrap;\n flex-shrink: 0;\n min-width: max-content;\n margin-left: 0;\n}\n\n/* Groups list in details section — flexible 2-column grid */\n.contactPane .detailsSectionContent .groupButtonsList {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList li {\n width: 100%;\n aspect-ratio: 1 / 1;\n}\n\n.contactPane .detailsSectionContent .groupButtonsList button {\n width: 100%;\n height: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n@media (max-width: 599px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n }\n\n .contactPane .detailsSectionContent .groupButtonsList button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .detailsSectionContent .groupButtonsList {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.contactPane .detailsSectionContent .newGroupBtn {\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-sm);\n}\n\n.contactPane .detailsSectionContent h3 {\n font-size: var(--font-size-xl);\n margin-bottom: var(--spacing-sm);\n padding-left: 0;\n}\n\n/* Delete confirmation POPUP — centered overlay in details section */\n.contactPane .detailSection {\n position: relative;\n}\n\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"],\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"],\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"],\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] {\n position: absolute !important;\n top: 0 !important;\n left: 0 !important;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.3);\n z-index: 1000;\n}\n.contactPane .webidControl .personaRow--webid td > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .groupButtonsList li > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .contact-toolbar > div[style*="position: relative"] > div,\n.contactPane .detailsSectionContent .group-membership-toolbar > div[style*="position: relative"] > div {\n position: relative !important;\n top: auto !important;\n background: var(--color-background);\n border-radius: var(--border-radius-full);\n padding: var(--spacing-lg);\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);\n z-index: 1001;\n}\n\n/* Selected state for All contacts button */\n.contactPane .allGroupsButton--selected {\n background-color: var(--color-primary);\n color: var(--color-background);\n}\n\n/* ── Header section ──────────────────────────────────────────── */\n\n.contactPane .headerSection {\n background: var(--color-background);\n padding: var(--spacing-sm);\n border-top-left-radius: var(--border-radius-full);\n border-top-right-radius: var(--border-radius-full);\n margin-bottom: 0;\n}\n\n.contactPane .headerSection header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 0;\n}\n\n.contactPane .headerSection h2 {\n margin-bottom: 0;\n}\n\n/* ── Dotted horizontal rule ─────────────────────────────────── */\n\n.contactPane .dottedHr {\n border: none;\n border-top: 1px dotted var(--color-text-muted);\n margin: 0;\n}\n\n/* ── Search section ─────────────────────────────────────────── */\n\n.contactPane .searchSection {\n padding: var(--spacing-sm);\n padding-bottom: 0;\n margin-bottom: 0;\n}\n\n/* ── People list section ────────────────────────────────────── */\n\n.contactPane .peopleSection {\n display: flex;\n background: var(--color-background);\n border-top: 1px dotted var(--color-text-muted);\n margin-bottom: 0;\n}\n\n.contactPane .peopleSection ul {\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n max-height: 70vh;\n overflow-y: auto;\n}\n\n.contactPane .peopleSection li {\n border-top: 1px solid var(--color-border-pale);\n padding: var(--spacing-xs);\n}\n\n/* ── Person list item (addressBookPresenter) ─────────────────── */\n\n.contactPane .personLi-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.contactPane .personLi-avatar {\n width: 45px;\n height: 45px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar .avatar-placeholder {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.contactPane .personLi-avatar img {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n object-fit: cover;\n}\n\n.contactPane .personLi-info {\n flex: 1;\n margin-left: var(--spacing-sm);\n overflow: hidden;\n}\n\n.contactPane .personLi-name {\n font-weight: bold;\n font-size: var(--font-size-base);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.contactPane .personLi-arrow {\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n\n.contactPane .personLi--error {\n opacity: 0.5;\n}'],sourceRoot:""}]);const p=u},93(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* ── Group Membership Section ──────────────────────────────── */\n\n.contactPane .group-membership-container {\n padding: var(--spacing-sm) 0;\n}\n\n/* Grid wrapper — matches detailsSectionContent groupButtonsList */\n.contactPane .group-pills-wrapper {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n}\n\n.contactPane .group-pills-wrapper span {\n width: max-content;\n}\n\n/* Each group item: button on top, toolbar below */\n.contactPane .group-membership-item {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n max-width: 256px;\n}\n\n.contactPane .group-membership-item > button {\n width: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n min-height: var(--min-touch-target);\n}\n\n/* Toolbar with link icon and delete button below each group button */\n.contactPane .group-membership-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-xs);\n padding: var(--spacing-xs) 0 0 0;\n}\n\n.contactPane .group-membership-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n@media (max-width: 599px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n max-width: 100%;\n }\n\n .contactPane .group-membership-item > button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(3, 1fr);\n gap: var(--spacing-sm);\n }\n}\n","",{version:3,sources:["webpack://./src/styles/groupMembership.css"],names:[],mappings:"AAAA,iEAAiE;;AAEjE;EACE,4BAA4B;AAC9B;;AAEA,kEAAkE;AAClE;EACE,aAAa;EACb,2DAA2D;EAC3D,sBAAsB;EACtB,gBAAgB;EAChB,UAAU;EACV,SAAS;EACT,WAAW;AACb;;AAEA;EACE,kBAAkB;AACpB;;AAEA,kDAAkD;AAClD;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,wCAAwC;EACxC,qBAAqB;EACrB,yBAAyB;EACzB,mCAAmC;AACrC;;AAEA,qEAAqE;AACrE;EACE,aAAa;EACb,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;EACtB,gCAAgC;AAClC;;AAEA;EACE,YAAY;EACZ,WAAW;EACX,SAAS;AACX;;AAEA;EACE;IACE,qCAAqC;IACrC,sBAAsB;IACtB,eAAe;EACjB;;EAEA;IACE,8BAA8B;IAC9B,wCAAwC;EAC1C;AACF;;AAEA;EACE;IACE,qCAAqC;IACrC,sBAAsB;EACxB;AACF",sourcesContent:["/* ── Group Membership Section ──────────────────────────────── */\n\n.contactPane .group-membership-container {\n padding: var(--spacing-sm) 0;\n}\n\n/* Grid wrapper — matches detailsSectionContent groupButtonsList */\n.contactPane .group-pills-wrapper {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-sm);\n list-style: none;\n padding: 0;\n margin: 0;\n width: 100%;\n}\n\n.contactPane .group-pills-wrapper span {\n width: max-content;\n}\n\n/* Each group item: button on top, toolbar below */\n.contactPane .group-membership-item {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n max-width: 256px;\n}\n\n.contactPane .group-membership-item > button {\n width: 100%;\n text-align: center;\n border-radius: var(--border-radius-base);\n word-wrap: break-word;\n overflow-wrap: break-word;\n min-height: var(--min-touch-target);\n}\n\n/* Toolbar with link icon and delete button below each group button */\n.contactPane .group-membership-toolbar {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-xs);\n padding: var(--spacing-xs) 0 0 0;\n}\n\n.contactPane .group-membership-toolbar a img {\n width: 1.3em;\n height: 1em;\n margin: 0;\n}\n\n@media (max-width: 599px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-xs);\n max-width: 100%;\n }\n\n .contactPane .group-membership-item > button {\n font-size: var(--font-size-sm);\n border-radius: var(--border-radius-base);\n }\n}\n\n@media (min-width: 900px) {\n .contactPane .group-pills-wrapper {\n grid-template-columns: repeat(3, 1fr);\n gap: var(--spacing-sm);\n }\n}\n"],sourceRoot:""}]);const s=o},479(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* individual.js styles — extracted from inline styles */\n\n/* ── Individual pane container ───────────────────────────────── */\n\n.individualPane {\n padding: var(--spacing-xs) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);\n background: var(--color-section-bg);\n border-radius: var(--border-radius-full);\n box-shadow: var(--box-shadow);\n box-sizing: border-box;\n max-width: 100%;\n}","",{version:3,sources:["webpack://./src/styles/individual.css"],names:[],mappings:"AAAA,wDAAwD;;AAExD,mEAAmE;;AAEnE;EACE,gFAAgF;EAChF,mCAAmC;EACnC,wCAAwC;EACxC,6BAA6B;EAC7B,sBAAsB;EACtB,eAAe;AACjB",sourcesContent:["/* individual.js styles — extracted from inline styles */\n\n/* ── Individual pane container ───────────────────────────────── */\n\n.individualPane {\n padding: var(--spacing-xs) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);\n background: var(--color-section-bg);\n border-radius: var(--border-radius-full);\n box-shadow: var(--box-shadow);\n box-sizing: border-box;\n max-width: 100%;\n}"],sourceRoot:""}]);const s=o},546(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* CSS for the accessible modal dialogs created by localUtils.js */\n\n/* backdrop / focus trap container */\n.focus-trap {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.focus-trap.hidden {\n display: none;\n}\n\n/* inner dialog box */\n.focus-trap .modal {\n background: var(--color-background);\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n max-width: 90%;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n/* button container: center buttons horizontally (uses id in markup) */\n#contacts-modal #modal-buttons {\n margin-top: var(--spacing-md);\n display: flex;\n justify-content: center;\n gap: var(--spacing-sm);\n}\n\n/* buttons themselves use the shared btn-primary rules */\n#contacts-modal .modal button {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n#contacts-modal .modal button.btn-primary {\n background: var(--color-primary);\n color: var(--color-background);\n}\n\n#contacts-modal .modal button.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n","",{version:3,sources:["webpack://./src/styles/localUtils.css"],names:[],mappings:"AAAA,kEAAkE;;AAElE,oCAAoC;AACpC;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,aAAa;EACb,8BAA8B;EAC9B,aAAa;EACb,uBAAuB;EACvB,mBAAmB;AACrB;;AAEA;EACE,aAAa;AACf;;AAEA,qBAAqB;AACrB;EACE,mCAAmC;EACnC,0BAA0B;EAC1B,wCAAwC;EACxC,cAAc;EACd,yCAAyC;AAC3C;;AAEA,sEAAsE;AACtE;EACE,6BAA6B;EAC7B,aAAa;EACb,uBAAuB;EACvB,sBAAsB;AACxB;;AAEA,wDAAwD;AACxD;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,sCAAsC;EACtC,wCAAwC;EACxC,gBAAgB;EAChB,eAAe;EACf,8CAA8C;AAChD;;AAEA;EACE,gCAAgC;EAChC,8BAA8B;AAChC;;AAEA;EACE,+DAA+D;EAC/D,6CAA6C;AAC/C;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,qCAAqC;EACrC,mBAAmB;EACnB,eAAe;AACjB",sourcesContent:["/* CSS for the accessible modal dialogs created by localUtils.js */\n\n/* backdrop / focus trap container */\n.focus-trap {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 9999;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.focus-trap.hidden {\n display: none;\n}\n\n/* inner dialog box */\n.focus-trap .modal {\n background: var(--color-background);\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n max-width: 90%;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n/* button container: center buttons horizontally (uses id in markup) */\n#contacts-modal #modal-buttons {\n margin-top: var(--spacing-md);\n display: flex;\n justify-content: center;\n gap: var(--spacing-sm);\n}\n\n/* buttons themselves use the shared btn-primary rules */\n#contacts-modal .modal button {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n#contacts-modal .modal button.btn-primary {\n background: var(--color-primary);\n color: var(--color-background);\n}\n\n#contacts-modal .modal button.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n#contacts-modal .modal button:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n"],sourceRoot:""}]);const s=o},715(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* mugshotGallery.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Mugshot image ───────────────────────────────────────────── */\n\n.contactPane .mugshotImage {\n max-height: 10em;\n border-radius: var(--border-radius-full);\n margin: var(--spacing-sm);\n}\n","",{version:3,sources:["webpack://./src/styles/mugshotGallery.css"],names:[],mappings:"AAAA,4DAA4D;AAC5D,qFAAqF;;AAErF,mEAAmE;;AAEnE;EACE,gBAAgB;EAChB,wCAAwC;EACxC,yBAAyB;AAC3B",sourcesContent:["/* mugshotGallery.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Mugshot image ───────────────────────────────────────────── */\n\n.contactPane .mugshotImage {\n max-height: 10em;\n border-radius: var(--border-radius-full);\n margin: var(--spacing-sm);\n}\n"],sourceRoot:""}]);const s=o},434(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,'/* Solid-UI form */\n\n/* Vertically center autocomplete input in .formFieldValue */\n.individualPane .formFieldValue > div[style*="flex-direction: row"],\n.contactPane .formFieldValue > div[style*="flex-direction: row"] {\n align-items: center;\n display: flex;\n}\n\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n vertical-align: middle;\n}\n\n.individualPane .hoverControl:has(> img:first-child),\n.contactPane .hoverControl:has(> img:first-child) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n padding: 0.7em !important;\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.individualPane .hoverControlHide,\n.contactPane .hoverControlHide {\n width: 1.5em !important;\n height: 1.5em !important;\n display: block;\n margin-top: 0 !important;\n margin-left: 0 !important;\n margin-right: 0 !important;\n margin-bottom: 0.3em !important;\n}\n\n.individualPane .hoverControl:has(> img:first-child) > span,\n.contactPane .hoverControl:has(> img:first-child) > span {\n display: inline-flex;\n align-items: center;\n margin-left: 0.3em;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img),\n.contactPane div[style*="padding: 0.5em"]:has(> img) {\n display: inline-flex;\n align-items: center;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img) > span,\n.contactPane div[style*="padding: 0.5em"]:has(> img) > span {\n margin-left: 0.3em;\n}\n\n.individualPane .hoverControl:has(> img:first-child):hover,\n.contactPane .hoverControl:has(> img:first-child):hover {\n background-color: transparent !important;\n}\n\n.individualPane button:has(> img[src$=".svg"]),\n.contactPane button:has(> img[src$=".svg"]) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n}\n\n.individualPane button,\n.contactPane button {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]),\n.individualPane textarea,\n.contactPane textarea,\n.individualPane select,\n.contactPane select {\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box ;\n font: inherit;\n color: var(--color-text);\n background-color: var(--color-card-bg) !important;\n border: 1px solid var(--color-border-pale);\n}\n\n.individualPane textarea,\n.contactPane textarea {\n border-color: var(--color-border-pale) !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane input[type="date"],\n.contactPane input[type="date"],\n.individualPane input[type="month"],\n.contactPane input[type="month"],\n.individualPane input[type="week"],\n.contactPane input[type="week"],\n.individualPane input[type="time"],\n.contactPane input[type="time"],\n.individualPane input[type="datetime-local"],\n.contactPane input[type="datetime-local"] {\n min-height: var(--min-touch-target);\n}\n\n.individualPane .hoverControl:has(> img:first-child):focus-visible,\n.contactPane .hoverControl:has(> img:first-child):focus-visible,\n.individualPane button:focus-visible,\n.contactPane button:focus-visible,\n.individualPane input:not([type="color"]):focus-visible,\n.contactPane input:not([type="color"]):focus-visible,\n.individualPane textarea:focus-visible,\n.contactPane textarea:focus-visible,\n.individualPane select:focus-visible,\n.contactPane select:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary) !important;\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n.individualPane input[type="url"],\n.contactPane input[type="url"] {\n width: 100%;\n}\n\n.individualPane .formFieldValue,\n.contactPane .formFieldValue {\n min-width: 0;\n margin-bottom: var(--spacing-sm);\n}\n\n.individualPane .formFieldValue table,\n.contactPane .formFieldValue table {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane .formFieldValue td,\n.contactPane .formFieldValue td {\n padding: 0 !important;\n vertical-align: middle;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n height: 100%;\n}\n\n.individualPane .formFieldValue input:not([type="color"]),\n.contactPane .formFieldValue input:not([type="color"]),\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n width: 100%;\n max-width: 100%;\n}\n\n.individualPane .formFieldValue select,\n.contactPane .formFieldValue select {\n width: 100%;\n display: inline-block;\n max-width: none !important;\n}\n\n.individualPane select#formSelect,\n.contactPane select#formSelect {\n width: 100%;\n max-width: 97%;\n box-sizing: border-box;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane span select,\n.contactPane span select {\n max-width: 96% !important;\n box-sizing: border-box;\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue span select,\n.contactPane .formFieldValue span select {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Remove border/padding from the first wrapper div (and its first child wrapper). */\n.individualPane > div:first-of-type,\n.contactPane > div:first-of-type,\n.individualPane > div:first-of-type > div:first-of-type,\n.contactPane > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* In contactPane, remove border/padding from all direct child divs. */\n.individualPane > div,\n.contactPane > div {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Align schema.org, solid terms, FOAF, vCard, and org field labels with their input values. */\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue),\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) {\n display: flex;\n align-items: baseline;\n margin-bottom: var(--spacing-sm);\n}\n\n/* for the Resume inside corporation choice */\n/* Add space between classifierBox label and select box */\n.individualPane .choiceBox .classifierBox-label,\n.contactPane .choiceBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n}\n\n.individualPane .choiceBox .choiceBox-selectBox select,\n.contactPane .choiceBox .choiceBox-selectBox select {\n margin-left: 2.1em !important;\n}\n\n/* for the Resume orga details */\n/* Add space between classifierBox label and select box */\n.individualPane .classifierBox .classifierBox-label,\n.contactPane .classifierBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n width: 8em;\n padding: 0.3em;\n vertical-align: middle;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox,\n.contactPane .classifierBox .classifierBox-selectBox {\n margin-left: 0 !important;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox select,\n.contactPane .classifierBox .classifierBox-selectBox select {\n margin-left: 0 !important;\n}\n\n.individualPane .formFieldValue > span > select,\n.contactPane .formFieldValue > span > select {\n margin-left: 0 !important;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue,\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue {\n margin-bottom: 0;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n flex: 1;\n min-width: 0;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n appearance: none;\n -webkit-appearance: none;\n border-radius: 0.2em !important;\n border: 0.05em solid #88c !important;\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-xs);\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Add horizontal gap between label and textarea for all label+textarea pairs. */\n.individualPane div:has(> a) + div:has(textarea),\n.contactPane div:has(> a) + div:has(textarea) {\n margin-left: var(--spacing-sm);\n}\n\n/* Center textarea label vertically in flex rows. */\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) {\n align-items: flex-start;\n}\n\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a) {\n padding-left: var(--spacing-xs);\n padding-top: var(--spacing-sm);\n}\n\n/* Keep autocomplete/table-based fields (e.g. Occupation) aligned to label text baseline. */\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]),\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) {\n align-items: flex-start;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName,\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName {\n padding-top: var(--spacing-xs) !important;\n}\n\n.individualPane .formFieldValue:has(input[data-testid="autocomplete-input"]),\n.contactPane .formFieldValue:has(input[data-testid="autocomplete-input"]) {\n align-self: flex-start;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"],\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n vertical-align: baseline;\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]) {\n width: 100%;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane input:disabled,\n.contactPane input:disabled,\n.individualPane textarea:disabled,\n.contactPane textarea:disabled,\n.individualPane select:disabled,\n.contactPane select:disabled,\n.individualPane input[readonly],\n.contactPane input[readonly],\n.individualPane textarea[readonly],\n.contactPane textarea[readonly],\n.individualPane input:read-only,\n.contactPane input:read-only,\n.individualPane textarea:read-only,\n.contactPane textarea:read-only {\n background-color: var(--color-background) !important;\n cursor: not-allowed;\n opacity: 0.75;\n border: 0.05em solid var(--color-background) !important;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n padding: var(--spacing-xs) !important;\n}\n\n.contactPane .webidControl table td div.contactPane.namedPane {\n border: none !important;\n}\n\n/* ------------------------------------------------------------------ */\n/* inline popup used for small confirmation flows (like the new confirmDialog) */\n/* apply the class `rdf-inline-modal` on the outer wrapper and give the\n inner box the class `popup` instead of using the old inline styles. */\n\n/* selectors that match the old inline-styled markup when no classes can be added */\n\n/* outer container: position relative containing an absolute grid popup */\n.contactPane div[style*="position: relative"] > div[style*="position: absolute"][style*="display: grid"] {\n /* override inline values with theme variables */\n position: absolute;\n top: -1em;\n padding: 0.7em !important;\n background: var(--color-background) !important;\n border: 0.1em solid var(--color-primary) !important;\n border-radius: var(--border-radius-base) !important;\n box-shadow: 0 0.5em 0.9em rgba(0, 0, 0, 0.2) !important;\n display: grid;\n grid-template-columns: auto auto;\n gap: 0.3em;\n z-index: 10;\n}',"",{version:3,sources:["webpack://./src/styles/rdfFormsEnforced.css"],names:[],mappings:"AAAA,kBAAkB;;AAElB,4DAA4D;AAC5D;;EAEE,mBAAmB;EACnB,aAAa;AACf;;AAEA;;EAEE,sBAAsB;AACxB;;AAEA;;EAEE,wCAAwC;EACxC,uBAAuB;EACvB,oBAAoB;EACpB,2BAA2B;EAC3B,yBAAyB;EACzB,mCAAmC;EACnC,kCAAkC;EAClC,eAAe;EACf,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;EAEE,uBAAuB;EACvB,wBAAwB;EACxB,cAAc;EACd,wBAAwB;EACxB,yBAAyB;EACzB,0BAA0B;EAC1B,+BAA+B;AACjC;;AAEA;;EAEE,oBAAoB;EACpB,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;;EAEE,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;;EAEE,kBAAkB;AACpB;;AAEA;;EAEE,wCAAwC;AAC1C;;AAEA;;EAEE,wCAAwC;EACxC,uBAAuB;EACvB,oBAAoB;EACpB,2BAA2B;AAC7B;;AAEA;;EAEE,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;;;;;;EAME,eAAe;EACf,YAAY;EACZ,uBAAuB;EACvB,aAAa;EACb,wBAAwB;EACxB,iDAAiD;EACjD,0CAA0C;AAC5C;;AAEA;;EAEE,iDAAiD;EACjD,oBAAoB;EACpB,qBAAqB;AACvB;;AAEA;;;;;;;;;;EAUE,mCAAmC;AACrC;;AAEA;;;;;;;;;;EAUE,sEAAsE;EACtE,mBAAmB;EACnB,6CAA6C;AAC/C;;AAEA;;EAEE,WAAW;AACb;;AAEA;;EAEE,YAAY;EACZ,gCAAgC;AAClC;;AAEA;;EAEE,oBAAoB;EACpB,qBAAqB;AACvB;;AAEA;;EAEE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;;EAEE,YAAY;AACd;;AAEA;;;;EAIE,WAAW;EACX,eAAe;AACjB;;AAEA;;EAEE,WAAW;EACX,qBAAqB;EACrB,0BAA0B;AAC5B;;AAEA;;EAEE,WAAW;EACX,cAAc;EACd,sBAAsB;EACtB,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA;;EAEE,yBAAyB;EACzB,sBAAsB;EACtB,oBAAoB;AACtB;;AAEA;;EAEE,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA,oFAAoF;AACpF;;;;EAIE,uBAAuB;EACvB,qBAAqB;AACvB;;AAEA,sEAAsE;AACtE;;EAEE,uBAAuB;EACvB,qBAAqB;AACvB;;AAEA,8FAA8F;AAC9F;;EAEE,aAAa;EACb,qBAAqB;EACrB,gCAAgC;AAClC;;AAEA,6CAA6C;AAC7C,yDAAyD;AACzD;;EAEE,eAAe;EACf,mBAAmB;AACrB;;AAEA;;EAEE,6BAA6B;AAC/B;;AAEA,gCAAgC;AAChC,yDAAyD;AACzD;;EAEE,eAAe;EACf,mBAAmB;EACnB,UAAU;EACV,cAAc;EACd,sBAAsB;AACxB;;AAEA;;EAEE,yBAAyB;AAC3B;;AAEA;;EAEE,yBAAyB;AAC3B;;AAEA;;EAEE,yBAAyB;AAC3B;;AAEA;;EAEE,gBAAgB;AAClB;;AAEA;;;;;;;;;;EAUE,oBAAoB;EACpB,mBAAmB;EACnB,sBAAsB;AACxB;;AAEA;;;;;;;;;;EAUE,oBAAoB;EACpB,mBAAmB;EACnB,sBAAsB;EACtB,OAAO;EACP,YAAY;AACd;;AAEA;;;;EAIE,gBAAgB;EAChB,wBAAwB;EACxB,+BAA+B;EAC/B,oCAAoC;EACpC,WAAW;EACX,sBAAsB;EACtB,6BAA6B;EAC7B,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA,gFAAgF;AAChF;;EAEE,8BAA8B;AAChC;;AAEA,mDAAmD;AACnD;;EAEE,uBAAuB;AACzB;;AAEA;;EAEE,+BAA+B;EAC/B,8BAA8B;AAChC;;AAEA,2FAA2F;AAC3F;;EAEE,uBAAuB;AACzB;;AAEA;;EAEE,yCAAyC;AAC3C;;AAEA;;EAEE,sBAAsB;AACxB;;AAEA;;;;EAIE,oBAAoB;AACtB;;AAEA;;EAEE,wBAAwB;AAC1B;;AAEA;;EAEE,WAAW;EACX,yBAAyB;EACzB,0BAA0B;AAC5B;;AAEA;;;;;;;;;;;;;;EAcE,oDAAoD;EACpD,mBAAmB;EACnB,aAAa;EACb,uDAAuD;AACzD;;AAEA;;;;EAIE,qCAAqC;AACvC;;AAEA;EACE,uBAAuB;AACzB;;AAEA,uEAAuE;AACvE,gFAAgF;AAChF;wEACwE;;AAExE,mFAAmF;;AAEnF,yEAAyE;AACzE;EACE,gDAAgD;EAChD,kBAAkB;EAClB,SAAS;EACT,yBAAyB;EACzB,8CAA8C;EAC9C,mDAAmD;EACnD,mDAAmD;EACnD,uDAAuD;EACvD,aAAa;EACb,gCAAgC;EAChC,UAAU;EACV,WAAW;AACb",sourcesContent:['/* Solid-UI form */\n\n/* Vertically center autocomplete input in .formFieldValue */\n.individualPane .formFieldValue > div[style*="flex-direction: row"],\n.contactPane .formFieldValue > div[style*="flex-direction: row"] {\n align-items: center;\n display: flex;\n}\n\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n vertical-align: middle;\n}\n\n.individualPane .hoverControl:has(> img:first-child),\n.contactPane .hoverControl:has(> img:first-child) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n padding: 0.7em !important;\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.individualPane .hoverControlHide,\n.contactPane .hoverControlHide {\n width: 1.5em !important;\n height: 1.5em !important;\n display: block;\n margin-top: 0 !important;\n margin-left: 0 !important;\n margin-right: 0 !important;\n margin-bottom: 0.3em !important;\n}\n\n.individualPane .hoverControl:has(> img:first-child) > span,\n.contactPane .hoverControl:has(> img:first-child) > span {\n display: inline-flex;\n align-items: center;\n margin-left: 0.3em;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img),\n.contactPane div[style*="padding: 0.5em"]:has(> img) {\n display: inline-flex;\n align-items: center;\n}\n\n.individualPane div[style*="padding: 0.5em"]:has(> img) > span,\n.contactPane div[style*="padding: 0.5em"]:has(> img) > span {\n margin-left: 0.3em;\n}\n\n.individualPane .hoverControl:has(> img:first-child):hover,\n.contactPane .hoverControl:has(> img:first-child):hover {\n background-color: transparent !important;\n}\n\n.individualPane button:has(> img[src$=".svg"]),\n.contactPane button:has(> img[src$=".svg"]) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n}\n\n.individualPane button,\n.contactPane button {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]),\n.individualPane textarea,\n.contactPane textarea,\n.individualPane select,\n.contactPane select {\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box ;\n font: inherit;\n color: var(--color-text);\n background-color: var(--color-card-bg) !important;\n border: 1px solid var(--color-border-pale);\n}\n\n.individualPane textarea,\n.contactPane textarea {\n border-color: var(--color-border-pale) !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane input[type="date"],\n.contactPane input[type="date"],\n.individualPane input[type="month"],\n.contactPane input[type="month"],\n.individualPane input[type="week"],\n.contactPane input[type="week"],\n.individualPane input[type="time"],\n.contactPane input[type="time"],\n.individualPane input[type="datetime-local"],\n.contactPane input[type="datetime-local"] {\n min-height: var(--min-touch-target);\n}\n\n.individualPane .hoverControl:has(> img:first-child):focus-visible,\n.contactPane .hoverControl:has(> img:first-child):focus-visible,\n.individualPane button:focus-visible,\n.contactPane button:focus-visible,\n.individualPane input:not([type="color"]):focus-visible,\n.contactPane input:not([type="color"]):focus-visible,\n.individualPane textarea:focus-visible,\n.contactPane textarea:focus-visible,\n.individualPane select:focus-visible,\n.contactPane select:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary) !important;\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n.individualPane input[type="url"],\n.contactPane input[type="url"] {\n width: 100%;\n}\n\n.individualPane .formFieldValue,\n.contactPane .formFieldValue {\n min-width: 0;\n margin-bottom: var(--spacing-sm);\n}\n\n.individualPane .formFieldValue table,\n.contactPane .formFieldValue table {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.individualPane .formFieldValue td,\n.contactPane .formFieldValue td {\n padding: 0 !important;\n vertical-align: middle;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n height: 100%;\n}\n\n.individualPane .formFieldValue input:not([type="color"]),\n.contactPane .formFieldValue input:not([type="color"]),\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n width: 100%;\n max-width: 100%;\n}\n\n.individualPane .formFieldValue select,\n.contactPane .formFieldValue select {\n width: 100%;\n display: inline-block;\n max-width: none !important;\n}\n\n.individualPane select#formSelect,\n.contactPane select#formSelect {\n width: 100%;\n max-width: 97%;\n box-sizing: border-box;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane span select,\n.contactPane span select {\n max-width: 96% !important;\n box-sizing: border-box;\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue span select,\n.contactPane .formFieldValue span select {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Remove border/padding from the first wrapper div (and its first child wrapper). */\n.individualPane > div:first-of-type,\n.contactPane > div:first-of-type,\n.individualPane > div:first-of-type > div:first-of-type,\n.contactPane > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* In contactPane, remove border/padding from all direct child divs. */\n.individualPane > div,\n.contactPane > div {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Align schema.org, solid terms, FOAF, vCard, and org field labels with their input values. */\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue),\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) {\n display: flex;\n align-items: baseline;\n margin-bottom: var(--spacing-sm);\n}\n\n/* for the Resume inside corporation choice */\n/* Add space between classifierBox label and select box */\n.individualPane .choiceBox .classifierBox-label,\n.contactPane .choiceBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n}\n\n.individualPane .choiceBox .choiceBox-selectBox select,\n.contactPane .choiceBox .choiceBox-selectBox select {\n margin-left: 2.1em !important;\n}\n\n/* for the Resume orga details */\n/* Add space between classifierBox label and select box */\n.individualPane .classifierBox .classifierBox-label,\n.contactPane .classifierBox .classifierBox-label {\n margin-right: 0;\n padding-left: 0.3em;\n width: 8em;\n padding: 0.3em;\n vertical-align: middle;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox,\n.contactPane .classifierBox .classifierBox-selectBox {\n margin-left: 0 !important;\n}\n\n.individualPane .classifierBox .classifierBox-selectBox select,\n.contactPane .classifierBox .classifierBox-selectBox select {\n margin-left: 0 !important;\n}\n\n.individualPane .formFieldValue > span > select,\n.contactPane .formFieldValue > span > select {\n margin-left: 0 !important;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue,\n.contactPane :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue {\n margin-bottom: 0;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]),\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.individualPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue,\n.contactPane :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n flex: 1;\n min-width: 0;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n appearance: none;\n -webkit-appearance: none;\n border-radius: 0.2em !important;\n border: 0.05em solid #88c !important;\n width: 100%;\n box-sizing: border-box;\n margin-top: var(--spacing-xs);\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Add horizontal gap between label and textarea for all label+textarea pairs. */\n.individualPane div:has(> a) + div:has(textarea),\n.contactPane div:has(> a) + div:has(textarea) {\n margin-left: var(--spacing-sm);\n}\n\n/* Center textarea label vertically in flex rows. */\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) {\n align-items: flex-start;\n}\n\n.individualPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a),\n.contactPane div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a) {\n padding-left: var(--spacing-xs);\n padding-top: var(--spacing-sm);\n}\n\n/* Keep autocomplete/table-based fields (e.g. Occupation) aligned to label text baseline. */\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]),\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) {\n align-items: flex-start;\n}\n\n.individualPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName,\n.contactPane :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName {\n padding-top: var(--spacing-xs) !important;\n}\n\n.individualPane .formFieldValue:has(input[data-testid="autocomplete-input"]),\n.contactPane .formFieldValue:has(input[data-testid="autocomplete-input"]) {\n align-self: flex-start;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"],\n.individualPane .formFieldValue input[data-testid="autocomplete-input"],\n.contactPane .formFieldValue input[data-testid="autocomplete-input"] {\n margin: 0 !important;\n}\n\n.individualPane .formFieldValue table[data-testid="autocomplete-table"],\n.contactPane .formFieldValue table[data-testid="autocomplete-table"] {\n vertical-align: baseline;\n}\n\n.individualPane input:not([type="color"]),\n.contactPane input:not([type="color"]) {\n width: 100%;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.individualPane input:disabled,\n.contactPane input:disabled,\n.individualPane textarea:disabled,\n.contactPane textarea:disabled,\n.individualPane select:disabled,\n.contactPane select:disabled,\n.individualPane input[readonly],\n.contactPane input[readonly],\n.individualPane textarea[readonly],\n.contactPane textarea[readonly],\n.individualPane input:read-only,\n.contactPane input:read-only,\n.individualPane textarea:read-only,\n.contactPane textarea:read-only {\n background-color: var(--color-background) !important;\n cursor: not-allowed;\n opacity: 0.75;\n border: 0.05em solid var(--color-background) !important;\n}\n\n.individualPane textarea,\n.contactPane textarea,\n.individualPane .formFieldValue textarea,\n.contactPane .formFieldValue textarea {\n padding: var(--spacing-xs) !important;\n}\n\n.contactPane .webidControl table td div.contactPane.namedPane {\n border: none !important;\n}\n\n/* ------------------------------------------------------------------ */\n/* inline popup used for small confirmation flows (like the new confirmDialog) */\n/* apply the class `rdf-inline-modal` on the outer wrapper and give the\n inner box the class `popup` instead of using the old inline styles. */\n\n/* selectors that match the old inline-styled markup when no classes can be added */\n\n/* outer container: position relative containing an absolute grid popup */\n.contactPane div[style*="position: relative"] > div[style*="position: absolute"][style*="display: grid"] {\n /* override inline values with theme variables */\n position: absolute;\n top: -1em;\n padding: 0.7em !important;\n background: var(--color-background) !important;\n border: 0.1em solid var(--color-primary) !important;\n border-radius: var(--border-radius-base) !important;\n box-shadow: 0 0.5em 0.9em rgba(0, 0, 0, 0.2) !important;\n display: grid;\n grid-template-columns: auto auto;\n gap: 0.3em;\n z-index: 10;\n}'],sourceRoot:""}]);const s=o},295(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* toolsPane.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Tools pane table ────────────────────────────────────────── */\n\n.contactPane .statsLog {\n font-size: var(--font-size-lg);\n margin: var(--spacing-md);\n background-color: var(--color-background);\n}\n\n.contactPane .statsLog pre {\n padding: var(--spacing-md);\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word;\n overflow: hidden;\n max-width: 100%;\n}\n\n/* ── Tools pane layout ────────────────────────────────────────── */\n\n.contactPane .toolsPane {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.contactPane .toolsButtonsContainer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-xs);\n}\n\n/* ── Load index button states ──────────────────────────────── */\n\n.contactPane .toolsButton--loading {\n}\n\n.contactPane .toolsButton--error {\n background-color: var(--color-error);\n}\n\n.contactPane .toolsButton--success {\n background-color: var(--color-primary);\n}\n","",{version:3,sources:["webpack://./src/styles/toolsPane.css"],names:[],mappings:"AAAA,uDAAuD;AACvD,qFAAqF;;AAErF,mEAAmE;;AAEnE;EACE,8BAA8B;EAC9B,yBAAyB;EACzB,yCAAyC;AAC3C;;AAEA;EACE,0BAA0B;EAC1B,qBAAqB;EACrB,qBAAqB;EACrB,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;AACjB;;AAEA,oEAAoE;;AAEpE;EACE,aAAa;EACb,sBAAsB;EACtB,sBAAsB;AACxB;;AAEA;EACE,aAAa;EACb,eAAe;EACf,sBAAsB;AACxB;;AAEA,iEAAiE;;AAEjE;AACA;;AAEA;EACE,oCAAoC;AACtC;;AAEA;EACE,sCAAsC;AACxC",sourcesContent:["/* toolsPane.js styles — extracted from inline styles */\n/* Uses CSS custom properties from the global stylesheet (dev-global.css / mashlib) */\n\n/* ── Tools pane table ────────────────────────────────────────── */\n\n.contactPane .statsLog {\n font-size: var(--font-size-lg);\n margin: var(--spacing-md);\n background-color: var(--color-background);\n}\n\n.contactPane .statsLog pre {\n padding: var(--spacing-md);\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word;\n overflow: hidden;\n max-width: 100%;\n}\n\n/* ── Tools pane layout ────────────────────────────────────────── */\n\n.contactPane .toolsPane {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.contactPane .toolsButtonsContainer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-xs);\n}\n\n/* ── Load index button states ──────────────────────────────── */\n\n.contactPane .toolsButton--loading {\n}\n\n.contactPane .toolsButton--error {\n background-color: var(--color-error);\n}\n\n.contactPane .toolsButton--success {\n background-color: var(--color-primary);\n}\n"],sourceRoot:""}]);const s=o},886(e,t,n){n.d(t,{A:()=>s});var r=n(354),i=n.n(r),a=n(314),o=n.n(a)()(i());o.push([e.id,"/* ── Named pane (rendered sub-pane) ──────────────────────────── */\n.contactPane .namedPane {\n border: 0.1em solid var(--color-text-muted);\n border-radius: var(--border-radius-base);\n}\n\n/* ── Persona row ─────────────────────────────────────────────── */\n\n.contactPane .personaRow {\n padding: var(--spacing-xs);\n}\n\n.contactPane .personaRow--webid {\n background-color: var(--color-info-bg);\n}\n\n/* ── Full-width elements ─────────────────────────────────────── */\n\n.contactPane .fullWidth {\n width: 100%;\n}\n\n/* ── Open/close profile button ───────────────────────────────── */\n\n.contactPane .personaOpenButton {\n float: right;\n background-color: transparent;\n border: none;\n}\n\n/* ── Section heading ─────────────────────────────────────────── */\n\n.contactPane .webidHeading {\n font-size: var(--font-size-lg);\n font-weight: bold;\n color: var(--color-primary);\n padding: var(--spacing-xs);\n margin: var(--spacing-sm) 0;\n}\n\n/* ── Prompt text ─────────────────────────────────────────────── */\n\n.contactPane .webidPrompt {\n padding: var(--spacing-sm);\n border: none;\n font-size: var(--font-size-base);\n white-space: pre-wrap;\n}\n\n/* ── Visibility / display helpers ────────────────────────────── */\n\n.contactPane .hidden {\n display: none;\n}\n\n.contactPane .collapsed {\n visibility: collapse;\n}\n","",{version:3,sources:["webpack://./src/styles/webidControl.css"],names:[],mappings:"AAAA,mEAAmE;AACnE;EACE,2CAA2C;EAC3C,wCAAwC;AAC1C;;AAEA,mEAAmE;;AAEnE;EACE,0BAA0B;AAC5B;;AAEA;EACE,sCAAsC;AACxC;;AAEA,mEAAmE;;AAEnE;EACE,WAAW;AACb;;AAEA,mEAAmE;;AAEnE;EACE,YAAY;EACZ,6BAA6B;EAC7B,YAAY;AACd;;AAEA,mEAAmE;;AAEnE;EACE,8BAA8B;EAC9B,iBAAiB;EACjB,2BAA2B;EAC3B,0BAA0B;EAC1B,2BAA2B;AAC7B;;AAEA,mEAAmE;;AAEnE;EACE,0BAA0B;EAC1B,YAAY;EACZ,gCAAgC;EAChC,qBAAqB;AACvB;;AAEA,mEAAmE;;AAEnE;EACE,aAAa;AACf;;AAEA;EACE,oBAAoB;AACtB",sourcesContent:["/* ── Named pane (rendered sub-pane) ──────────────────────────── */\n.contactPane .namedPane {\n border: 0.1em solid var(--color-text-muted);\n border-radius: var(--border-radius-base);\n}\n\n/* ── Persona row ─────────────────────────────────────────────── */\n\n.contactPane .personaRow {\n padding: var(--spacing-xs);\n}\n\n.contactPane .personaRow--webid {\n background-color: var(--color-info-bg);\n}\n\n/* ── Full-width elements ─────────────────────────────────────── */\n\n.contactPane .fullWidth {\n width: 100%;\n}\n\n/* ── Open/close profile button ───────────────────────────────── */\n\n.contactPane .personaOpenButton {\n float: right;\n background-color: transparent;\n border: none;\n}\n\n/* ── Section heading ─────────────────────────────────────────── */\n\n.contactPane .webidHeading {\n font-size: var(--font-size-lg);\n font-weight: bold;\n color: var(--color-primary);\n padding: var(--spacing-xs);\n margin: var(--spacing-sm) 0;\n}\n\n/* ── Prompt text ─────────────────────────────────────────────── */\n\n.contactPane .webidPrompt {\n padding: var(--spacing-sm);\n border: none;\n font-size: var(--font-size-base);\n white-space: pre-wrap;\n}\n\n/* ── Visibility / display helpers ────────────────────────────── */\n\n.contactPane .hidden {\n display: none;\n}\n\n.contactPane .collapsed {\n visibility: collapse;\n}\n"],sourceRoot:""}]);const s=o},314(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,r,i,a){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(o[c]=!0)}for(var l=0;l<e.length;l++){var u=[].concat(e[l]);r&&o[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},417(e){e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},354(e){e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(i," */");return[t].concat([a]).join("\n")}return[t].join("\n")}},72(e){var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},o=[],s=0;s<e.length;s++){var c=e[s],l=r.base?c[0]+r.base:c[0],u=a[l]||0,d="".concat(l," ").concat(u);a[l]=u+1;var p=n(d),f={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)t[p].references++,t[p].updater(f);else{var h=i(f,r);r.byIndex=s,t.splice(s,0,{identifier:d,updater:h,references:1})}o.push(d)}return o}function i(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,i){var a=r(e=e||[],i=i||{});return function(e){e=e||[];for(var o=0;o<a.length;o++){var s=n(a[o]);t[s].references--}for(var c=r(e,i),l=0;l<a.length;l++){var u=n(a[l]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}a=c}}},659(e){var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540(e){e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},56(e,t,n){e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},825(e){e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},113(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},102(e){e.exports="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23999%27 viewBox=%270 0 24 24%27 width=%2720%27 height=%2720%27%3E%3Cpath d=%27M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99c.41.41 1.09.41 1.5 0s.41-1.09 0-1.5l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z%27/%3E%3C/svg%3E"},53(e){e.exports=n},941(t){t.exports=e},104(e){e.exports=t}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={id:e,exports:{}};return r[e](n,n.exports,a),n.exports}a.m=r,a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.b="undefined"!=typeof document&&document.baseURI||self.location.href,a.nc=void 0;var o={};a.d(o,{default:()=>Bt});var s=a(941),c=a(104),l=a(53),u=a(72),d=a.n(u),p=a(825),f=a.n(p),h=a(659),m=a.n(h),g=a(56),v=a.n(g),b=a(540),y=a.n(b),w=a(113),x=a.n(w),A=a(886),E={};function C(...e){}function k(...e){}E.styleTagTransform=x(),E.setAttributes=v(),E.insert=m().bind(null,"head"),E.domAPI=f(),E.insertStyleElement=y(),d()(A.A,E),A.A&&A.A.locals&&A.A.locals;const _=c.ns,S=c.widgets,T=c.utils,P=s.store,F=S.publicData.wikidataClasses,R=S.publicData.wikidataParameters,I="WebID",N="WikiData link",L=c.icons.iconBase+"noun_1369241.svg",B=c.icons.iconBase+"noun_1369237.svg";function O(e,t){const n=j(e,t).concat(function(e,t,n){const r=new Set,i=new Set([t.uri]);for(;i.size;){const t=Array.from(i)[0];if(i.delete(t),r.has(t))continue;r.add(t);const a=e.sym(t);e.each(a,_.owl("sameAs"),null,n).concat(e.each(null,_.owl("sameAs"),a,n)).forEach(e=>{i.add(e.uri)}),e.each(a,_.schema("sameAs"),null,n).concat(e.each(null,_.schema("sameAs"),a,n)).forEach(e=>{i.add(e.uri)})}return r.delete(t.uri),Array.from(r).map(t=>e.sym(t))}(e,t,t.doc())),r=[...new Set(n.map(e=>e.value))].map(t=>e.sym(t));return r.sort(),r.filter(e=>!e.sameTerm(t)),r}function j(e,t,n){return e.each(t,_.vcard("url"),null,t.doc()).filter(r=>e.holds(r,_.rdf("type"),n,t.doc())).map(n=>e.any(n,_.vcard("value"),null,t.doc())).filter(e=>!!e)}function D(e){const t=e.doc();return P.holds(e,_.rdf("type"),_.vcard("Organization"),t)||P.holds(e,_.rdf("type"),_.schema("Organization"),t)}async function M(e,t,n){function r(r,a,o){const s=r.createElement("div");s.classList.add("fullWidth");const u=s.appendChild(r.createElement("table"));u.classList.add("fullWidth");const d=u.appendChild(function(t){const a=new l.Literal(t.uri),u=n.urlType.sameTerm(_.vcard("WebID")),d=n.editable?async function(){try{await async function(e,t,n,r){const i=r.each(e,_.vcard("url"),null,e.doc()).filter(t=>r.holds(t,_.rdf("type"),n,e.doc())).filter(n=>r.holds(n,_.vcard("value"),t,e.doc()));if(!i.length)throw new Error(`Person ${e} does not have ${I} ${t}.`);const a=i[0],o=[l.st(e,_.vcard("url"),a,e.doc()),l.st(a,_.rdf("type"),n,e.doc()),l.st(a,_.vcard("value"),t,e.doc())];await r.updater.update(o,[]);const s=r.each(null,_.vcard("hasMember"),r.sym(t));let c=[];const u=[];s.forEach(async n=>{c=c.concat(r.statementsMatching(r.sym(t),_.owl("sameAs"),e,n.doc())),u.push(l.st(n,_.vcard("hasMember"),e,n.doc())),r.statementsMatching(r.sym(t),_.owl("sameAs"),null,n.doc()).length<2&&(c=c.concat(r.statementsMatching(n,_.vcard("hasMember"),r.sym(t),n.doc())))}),await ue(c,u)}(e,a,n.urlType,o)}catch(e){s.appendChild(S.errorMessageBlock(r,"Error removing WebId from profile. If it persists, contact admin."))}await i()}:null,p={deleteFunction:d,draggable:!0};u&&(p.title=t.uri.split("/")[2],p.image=S.faviconOrDefault(r,t.site()));const f=S.personTR(r,c.ns.foaf("knows"),t,p);return u&&(f.children[1].textConent=p.title,f.classList.add("personaRow--webid")),f.classList.add("personaRow"),f}(a));d.classList.add("fullWidth");const p=u.appendChild(r.createElement("tr")).appendChild(r.createElement("td"));let f;p.setAttribute("colspan",3);let h=!0;const m=d.children[2].appendChild(S.button(r,L,"View",function(e){h=!h,f.classList.toggle("collapsed",!h),m.children[0].src=h?B:L,m.setAttribute("aria-expanded",h?"true":"false"),m.setAttribute("aria-label",h?"Collapse profile":"Expand profile")}));m.classList.add("personaOpenButton"),m.setAttribute("aria-expanded","true"),m.setAttribute("aria-label","Collapse profile");const g=(D(e)||D(a),"profile");return S.publicData.loadPublicDataThing(o,e,a).then(e=>{try{f=function(e,t,n,r){const i=r.session.paneRegistry.byName(n).render(t,r);return i.classList.add("namedPane"),i}(0,a,g,t),f.classList.add("fullWidth"),p.appendChild(f)}catch(e){f=S.errorMessageBlock(r,"Error displaying profile. If it persists, contact admin."),p.appendChild(f)}},e=>{f=S.errorMessageBlock(r,"Error loading profile. If it persists, contact admin."),p.appendChild(f)}),s}async function i(){const t=O(P,e);u.classList.toggle("hidden",t.length>0),T.syncTableToArrayReOrdered(d,t,e=>r(a,e,P))}const{dom:a}=t;(n=n||{}).editable=P.updater.editable(e.doc().uri,P);const o=a.createElement("div");if(o.classList.add("webidControl"),0===O(P,e).length&&!n.editable)return o.classList.add("hidden"),o;const s=o.appendChild(a.createElement("h3"));s.textContent=n.idNoun,s.classList.add("webidHeading");const u=o.appendChild(a.createElement("p"));if(u.classList.add("webidPrompt"),u.textContent=n.longPrompt,o.appendChild(a.createElement("table")).classList.add("fullWidth"),n.editable){const t={editable:n.editable,manualURIEntry:!0,idNoun:n.idNoun,dbLookup:n.dbLookup},r={queryParams:n.queryParams||R,targetClass:n.class};try{o.appendChild(await S.renderAutocompleteControl(a,e,t,r,async function(e,t){try{await async function(e,t,n,r){try{new URL(t)}catch(e){throw new Error(`${I}: ${t} is not a valid url.`)}const i=r.bnode(),a=[l.st(e,_.vcard("url"),i,e.doc()),l.st(i,_.rdf("type"),n,e.doc()),l.st(i,_.vcard("value"),t,e.doc())],o=r.each(null,_.vcard("hasMember"),e);let s=[];o.forEach(n=>{s=s.concat(r.statementsMatching(n,_.vcard("hasMember"),e,n.doc())),a.push(l.st(n,_.vcard("hasMember"),r.sym(t),n.doc())),a.push(l.st(r.sym(t),_.owl("sameAs"),e,n.doc()))});try{await ue(s,a)}catch(e){throw new Error(`Could not create webId ${I}: ${t}.`)}}(e,t,n.urlType,P)}catch(e){o.appendChild(S.errorMessageBlock(a,"Error adding WebID to profile. If it persists, contact admin."))}await i()}))}catch(e){o.appendChild(S.errorMessageBlock(a,"Error rendering autocomplete. If it persists, contact admin."))}}const d=o.appendChild(a.createElement("div"));return await i(),o}var U=a(546),z={};z.styleTagTransform=x(),z.setAttributes=v(),z.insert=m().bind(null,"head"),z.domAPI=f(),z.insertStyleElement=y(),d()(U.A,z),U.A&&U.A.locals&&U.A.locals;const H=s.store,q=c.ns;let $;function W(e){$=e}let V=null,G=null;function K(e){Array.from(document.body.children).filter(e=>e!==V).forEach(t=>{e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden")})}function J({title:e,message:t,buttons:n}){const r=(V&&document.body.contains(V)||(V=null,V=$.createElement("div"),V.id="contacts-modal",V.className="focus-trap hidden",V.setAttribute("role","presentation"),V.innerHTML='\n <div class="modal" role="dialog" aria-modal="true" aria-labelledby="modal-title" aria-describedby="modal-desc">\n <h2 id="modal-title"></h2>\n <div id="modal-desc"></div>\n <div id="modal-buttons"></div>\n </div>\n ',document.body.appendChild(V),V.addEventListener("keydown",e=>{if("Escape"===e.key){e.stopPropagation();const t=V.querySelector("button[data-cancel]");t?t.click():Y()}else if("Tab"===e.key){const t=Array.from(V.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter(e=>!e.hasAttribute("disabled"));if(0===t.length)return;const n=t.indexOf(document.activeElement);e.shiftKey?0===n&&(t[t.length-1].focus(),e.preventDefault()):n===t.length-1&&(t[0].focus(),e.preventDefault())}})),V);G=document.activeElement,K(!0),r.classList.remove("hidden"),r.querySelector("#modal-title").textContent=e||"";const i=r.querySelector("#modal-desc");"string"==typeof t?i.textContent=t:(i.innerHTML="",i.appendChild(t));const a=r.querySelector("#modal-buttons");return a.innerHTML="",new Promise(e=>{n.forEach(t=>{const n=$.createElement("button");n.setAttribute("type","button"),n.textContent=t.label,t.primary&&n.classList.add("btn-primary"),t.cancel&&n.setAttribute("data-cancel","true"),n.addEventListener("click",()=>{Y(t.value),e(t.value)}),a.appendChild(n)});const t=a.querySelector("button");t&&t.focus()})}function Y(e){V&&(V.classList.add("hidden"),K(!1),G&&G.focus&&G.focus())}function Q(e,t="Information"){return J({title:t,message:e,buttons:[{label:"OK",value:!0,primary:!0}]})}function X(e,t="Confirm"){return J({title:t,message:e,buttons:[{label:"Cancel",value:!1,cancel:!0},{label:"OK",value:!0,primary:!0}]})}function Z(e){return e&&e.endsWith(".ttl")?e+"#this":e}function ee(e,t,n){e.appendChild(c.widgets.errorMessageBlock(t,n,"pink"))}function te(e,t,n){return e.each(t,q.owl("sameAs"),null,n).concat(e.each(null,q.owl("sameAs"),t,n))}function ne(e,t){return new Promise(function(n,r){e.fetcher.load(t).then(function(){const i=e.each(t,q.ldp("contains")).map(t=>e.holds(t,q.rdf("type"),q.ldp("BasicContainer"))?ne(e,t):(t.uri,e.fetcher.webOperation("DELETE",t.uri)));t.uri,i.push(e.fetcher.webOperation("DELETE",t.uri)),Promise.all(i).then(e=>{n()}).catch(r)}).catch(r)})}async function re(e){const t=ae(e);if(!await X("Really DELETE "+t+"?"))throw new Error("User cancelled contact deletion");const n=H.statementsMatching(e).concat(H.statementsMatching(void 0,void 0,e));try{await H.updater.updateMany(n),await H.fetcher.delete(e.doc())}catch(e){throw new Error("An error occured while deleting.")}}function ie(e,t){let n=ae(e),r=ae(t);if(n&&r){if(n=n.toLowerCase(),r=r.toLowerCase(),n>r)return 1;if(n<r)return-1}return e.uri>t.uri?1:e.uri<t.uri?-1:0}function ae(e){const t=H.any(e,q.vcard("fn"))||H.any(e,q.foaf("name"))||H.any(e,q.vcard("organization-name"));return t?t.value:"???"}const oe=c.ns,se=c.utils,ce=s.store,le=ce.updater;async function ue(e,t=[]){const n=e.concat(t).map(e=>e.why),r=[];n.forEach(e=>{r.find(t=>t.equals(e))||r.push(e)});const i=r.map(n=>ce.updater.update(e.filter(e=>e.why.sameTerm(n)),t.filter(e=>e.why.sameTerm(n))));return Promise.all(i)}async function de(e,t){await ce.fetcher.load(e.doc());const n=ce.any(e,oe.vcard("groupIndex")),r=function(e){return e.replace(/\W/gu,"_").replace(/_+/g,"_")}(t),i=ce.sym(e.dir().uri+"Group/"+r+".ttl#this"),a=i.doc();try{await ce.fetcher.load(n)}catch(e){throw new Error("Error loading group index!"+n.uri+": "+e)}if(ce.holds(e,oe.vcard("includesGroup"),i,n))return i;const o=[l.st(e,oe.vcard("includesGroup"),i,n),l.st(i,oe.rdf("type"),oe.vcard("Group"),n),l.st(i,oe.vcard("fn"),t,n)];try{await le.update([],o)}catch(e){throw new Error("Could not update group index "+e)}const s=[l.st(e,oe.vcard("includesGroup"),i,a),l.st(i,oe.rdf("type"),oe.vcard("Group"),a),l.st(i,oe.vcard("fn"),t,a)];try{await le.update([],s)}catch(e){throw new Error("Could not update group file: "+e)}return i}async function pe(e,t){const n=[e.doc(),t.doc()];try{await ce.fetcher.load(n)}catch(e){throw new Error("Error adding to group.")}const r=ce.findTypeURIs(e);if(!(oe.vcard("Individual").uri in r)&&!(oe.vcard("Organization").uri in r))return Object.keys(r),void Q("You are trying to add something else than an individual or organization.");let i=ce.any(e,oe.vcard("fn"));const a=ce.any(t,oe.vcard("fn"));if(!i)return void Q("What you are trying to add seems to have no full name.");if(ce.holds(e,oe.vcard("fn"),null,t.doc()))return""===i&&(i="Contact"),void Q(i+" already exists in group "+a+".");const o="Add "+i+" to group "+a+"?";if(!await X(o))return;const s=[l.st(e,oe.vcard("fn"),i,t.doc())],c=O(ce,e).map(e=>e.value);c.length?c.forEach(n=>{s.push(l.st(ce.sym(n),oe.owl("sameAs"),e,t.doc())),s.push(l.st(t,oe.vcard("hasMember"),ce.sym(n),t.doc()))}):s.push(l.st(t,oe.vcard("hasMember"),e,t.doc()));try{await le.update([],s),ce.fetcher.unload(t.doc()),await ce.fetcher.load(t.doc())}catch(e){throw new Error("Error adding to group.")}return e}function fe(e,t){const n=e.each(t,oe.vcard("hasMember"),null,t.doc());let r=[];n.forEach(n=>{r=e.any(n,oe.vcard("fn"),null,t.doc())?r.concat(n):r.concat(e.each(n,oe.owl("sameAs"),null,t.doc()))});const i=new Set(r.map(e=>e.uri));return r=[...i].map(t=>e.sym(t)),r}function he(e,t){const n=e.dir().dir().dir();return t.uri&&t.uri.startsWith(n.uri)}const{setACLUserPublic:me}=s.solidLogicSingleton.acl;var ge=a(715),ve={};ve.styleTagTransform=x(),ve.setAttributes=v(),ve.insert=m().bind(null,"head"),ve.domAPI=f(),ve.insertStyleElement=y(),d()(ge.A,ve),ge.A&&ge.A.locals&&ge.A.locals;const be={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/svg+xml":"svg","image/webp":"webp","image/bmp":"bmp","image/tiff":"tiff","application/pdf":"pdf","text/plain":"txt","text/html":"html","application/json":"json","application/octet-stream":"bin"},ye=Object.fromEntries(Object.entries(be).map(([e,t])=>[t,e])),we=e=>be[e]||!1,xe=e=>{const t=e.split(".").pop().toLowerCase();return ye[t]||!1},Ae=c.ns,Ee=c.utils,Ce=s.store;function ke(e,t){function n(t){g.appendChild(c.widgets.errorMessageBlock(e,t,"pink"))}async function r(e,t,n){const r=[l.st(e,Ae.vcard("hasPhoto"),t,e.doc())];try{n?await Ce.updater.update(r,[]):await Ce.updater.update([],r)}catch(e){throw new Error("Writing back image link FAILED")}}function i(e){Ce.fetcher.nowOrWhenFetched(e.doc(),function(n,r){if(n){const n=Ce.findTypeURIs(e);for(const e in n)C();Ce.add(t,Ae.wf("attachment"),e,t.doc())}})}function a(e,r,i){const a=we(r);let o,s;r!==xe(e)&&(e+="_."+a);const c=r.startsWith("image");let l,u;for(c?(o="image_",s=Ae.vcard("hasPhoto")):(o="attachment_",s=Ae.wf("attachment")),l=0;u=Ce.sym(t.dir().uri+e),Ce.holds(t,Ae.vcard("hasPhoto"),u);l++)e=o+l+"."+a;i.byteLength,Ce.fetcher.webOperation("PUT",u.uri,{data:i,contentType:r}).then(function(e){if(!e.ok)return e.status,e.statusText,void n("Error uploading picture. If the problem persists, contact admin.");Ce.add(t,s,u,t.doc()),Ce.fetcher.putBack(t.doc(),{contentType:"text/turtle"}).then(function(e){c&&v.refresh()},function(e){})})}async function o(e){for(const t of e){let e=l.sym(t);if(C(),t.startsWith("http")&&t.indexOf("#")<0){t.startsWith("http:")&&(e=l.sym("https:"+t.slice(5)));const n={withCredentials:!1,credentials:"omit"};let r;try{r=await Ce.fetcher.webOperation("GET",e.uri,n)}catch(t){return k(),void i(e)}const o=r.headers.get("Content-Type");let s=e.uri.split("/").slice(-1)[0];s=s.split("?")[0];const c=await r.arrayBuffer();return r.ok?void a(s,o,c):(k(r.status),void i(e))}n("Not a web document URI, cannot copy "+e+" as picture."),i(e)}}function u(e){for(let t=0;t<e.length;t++){const n=e[t];C((n.name,n.type,n.size,n.lastModifiedDate&&n.lastModifiedDate.toLocaleDateString()));const r=new FileReader;r.onload=function(e){return function(t){const n=t.target.result;n.byteLength,a(encodeURIComponent(e.name),e.type,n)}}(n),r.readAsArrayBuffer(n)}}function d(t){const n=e.createElement("img");return n.classList.add("mugshotImage"),n.setAttribute("alt",t?"Contact photo":"Drop photo here"),c.widgets.makeDropTarget(n,o,u),t&&(s.store.fetcher._fetch(t.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);n.setAttribute("src",t)}),c.widgets.makeDraggable(n,t)),n}function p(){let e=Ce.each(t,Ae.vcard("hasPhoto"));e.sort(),e=e.slice(0,5),0===e.length?(v.innerHTML="",m&&v.appendChild(b)):Ee.syncTableToArray(v,e,d)}function f(){return Ce.sym(t.dir().uri+"Image_"+Date.now()+".png")}async function h(e){e&&(await r(t,e),p())}const m=Ce.updater.editable(t.doc().uri,Ce),g=e.createElement("div"),v=g.appendChild(e.createElement("div")),b=d();return c.widgets.setImage(b,t),p(),v.refresh=p,m&&g.appendChild(function(){const i=e.createElement("table"),a=i.appendChild(e.createElement("tr")),o=a.appendChild(e.createElement("td")),s=a.appendChild(e.createElement("td")),l=a.appendChild(e.createElement("td"));o.appendChild(c.media.cameraButton(e,Ce,f,h));try{s.appendChild(c.widgets.fileUploadButtonDiv(e,u))}catch(e){}return l.appendChild(function(){const i=c.widgets.button(e,c.icons.iconBase+"noun_925021.svg","Drag here to delete",void 0,{"aria-label":"Delete picture - drag picture here"});return c.widgets.makeDropTarget(i,async function(e){const i=Ce.each(t,Ae.vcard("hasPhoto")).map(e=>e.uri);for(const a of e){if(!i.includes(a))return void Q("Only drop pictures onto this trash can.");if(await X("Really DELETE picture?"))try{C(),await r(t,Ce.sym(a),!0),C(),await Ce.fetcher.webOperation("DELETE",a)}catch(e){return void n("Error deleting picture. If it persists, contact your admin.")}}p()},null),i}()),i}()),g}var _e=a(93),Se={};Se.styleTagTransform=x(),Se.setAttributes=v(),Se.insert=m().bind(null,"head"),Se.domAPI=f(),Se.insertStyleElement=y(),d()(_e.A,Se),_e.A&&_e.A.locals&&_e.A.locals;const Te=c.ns,Pe=c.utils,Fe=s.store;let Re,Ie={},Ne={},Le=null,Be=null,Oe=null,je=null,De=null,Me=null,Ue=null;function ze(e,t){e.querySelectorAll("button").forEach(e=>{e.classList.remove("btn-primary","allGroupsButton--selected","allGroupsButton--active","allGroupsButton--loaded"),e.classList.add("btn-secondary")}),t&&(t.classList.remove("btn-secondary"),t.classList.add("btn-primary"))}function He(e,t,n,r,i,a,o,s,c,l){Re=r,Ie=i||{},a&&(Le=a),o&&(Oe=o),s&&(je=s),c&&(Me=c),l&&(Ue=l),De=e,Be=t;const u=Je(De,n);Pe.syncTableToArrayReOrdered(Be,u,We)}function qe(e){const t=Fe.any(e,Te.vcard("fn")),n=Re.createElement("li");n.setAttribute("role","listitem"),n.setAttribute("aria-label",t?t.value:"Some group"),n.subject=e,c.widgets.makeDraggable(n,e);const r=n.appendChild(Re.createElement("button"));return r.setAttribute("type","button"),r.innerHTML=t?t.value:"Some group",r.classList.add("allGroupsButton","actionButton","btn-secondary","action-button-focus"),{groupLi:n,groupButton:r,name:t}}async function $e(e,t){for(const n of e){let e=Fe.sym(n);try{e=await pe(e,t)}catch(e){Q("Error adding to group. Make sure you are adding a contact URI.")}e&&Qe(Le)}}function We(e){function t(t){if(t.preventDefault(),ze(Be,r),Ue&&Ue(),!t.metaKey)for(const e in Ie)delete Ie[e];Ie[e.uri]=!Ie[e.uri],Ge(Be,Ie),Fe.fetcher.nowOrWhenFetched(e.doc(),void 0,function(e,t){Qe(Le,null,!1)})}const{groupLi:n,groupButton:r}=qe(e);return r.addEventListener("click",t,!1),c.widgets.makeDropTarget(n,t=>$e(t,e)),n.addEventListener("click",t,!0),n}function Ve(e,t,n){function r(r,i){return new Promise((a,o)=>{i.classList.add("group-loading"),i.setAttribute("aria-busy","true"),Fe.fetcher.nowOrWhenFetched(r.doc(),void 0,function(s,c){if(!s){const e="Cannot load group "+r+". Stack: "+c;return n&&n(!1,e),void o(e)}i.classList.remove("group-loading"),i.setAttribute("aria-busy","false"),i.classList.add("selected"),e[r.uri]=!0,Ge(t,e),Qe(Le,null),n&&n(!0),a(!0)})})}for(let e=0;e<t.children.length;e++){const i=t.children[e],a=i.subject;a&&r(a,i).catch(e=>{n&&n(!1,e)})}}function Ge(e,t){for(let n=0;n<e.children.length;n++){const r=e.children[n];r.subject&&r.classList.toggle("selected",!!t[r.subject.uri])}}function Ke(e,t,n,r,i,a,o){Re=r,i&&(Ie=i),a&&(Le=a),o&&(Oe=o),Be=n;const s=Je(e,t);s.length>0&&We(s[0]),Pe.syncTableToArrayReOrdered(n,s,We)}function Je(e,t){let n=[];if(t.foreignGroup&&n.push(["",Fe.any(t.foreignGroup,Te.vcard("fn")),t.foreignGroup]),e){const t=Fe.any(e,Te.vcard("groupIndex")),r=(e?Fe.each(e,Te.vcard("includesGroup"),null,t):[]).map(function(t){return[e,Fe.any(t,Te.vcard("fn")),t]});n=n.concat(r),n.sort()}return n.map(e=>e[2])}async function Ye(e){const t=Fe.any(e,Te.vcard("groupIndex"));if(t){await Fe.fetcher.load(t);const n=e?Fe.each(e,Te.vcard("includesGroup"),null,t):[];return await Fe.fetcher.load(n),n}return[]}function Qe(e,t,n=!0){const r=e||Le;if(!r||!r.children||"number"!=typeof r.children.length)return;function i(e,t){function n(e){e.preventDefault(),Xe(r,t,je)}e.addEventListener("click",n),e.addEventListener("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),n(e))})}let a=[];Object.keys(Ie).map(e=>Fe.sym(e)).forEach(e=>{Ie[e.value]&&(a=a.concat(fe(Fe,e)))}),a.sort(ie);for(let e=0;e<a.length-1;)a[e].uri===a[e+1].uri?a.splice(e,1):e++;Pe.syncTableToArrayReOrdered(r,a,e=>function(e){const t=Re.createElement("li");t.setAttribute("role","listitem"),t.setAttribute("tabindex","0"),t.classList.add("personLi"),t.subject=e,c.widgets.makeDraggable(t,e);const n=Re.createElement("div");n.classList.add("personLi-row");const r=Re.createElement("div");r.classList.add("personLi-avatar");const a=Re.createElement("div");a.classList.add("avatar-placeholder"),a.innerHTML='<svg aria-hidden="true" width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="18" cy="18" r="18" fill="#e0e0e0"/><text x="50%" y="58%" text-anchor="middle" fill="#595959" font-size="16" font-family="Arial" dy=".3em">?</text></svg>',r.appendChild(a);const o=ae(e)||"Unknown Name";function s(){const t=Fe.any(e,Te.vcard("hasPhoto"));if(t&&t.value){const e=Re.createElement("img");e.src=t.value,e.alt=o+" avatar",r.replaceChild(e,r.firstChild)}}s(),Fe.fetcher.nowOrWhenFetched(e.doc(),void 0,function(e,n){e?s():t.classList.add("personLi--error")});const l=Re.createElement("div");l.classList.add("personLi-info"),t.setAttribute("aria-label",o);const u=Re.createElement("div");u.classList.add("personLi-name"),u.textContent=o,l.appendChild(u);const d=Re.createElement("div");return d.classList.add("personLi-arrow"),d.innerHTML='<svg aria-hidden="true" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6 4.5L11.25 9L6 13.5" stroke="#595959" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>',n.appendChild(r),n.appendChild(l),n.appendChild(d),t.appendChild(n),i(t,e),t}(e)),et(r,n,t||je)}function Xe(e,t,n){if(!n)return;let r;n.parentNode&&n.parentNode.classList.remove("hidden"),n.innerHTML="Loading...",n.setAttribute("aria-busy","true"),n.classList.add("detailsSectionContent--wide"),Ne={},Ne[t.uri]=!0,et(e,!1,n);try{r=De?function(e){const t=Fe.allAliases(e),n=De.dir().uri;for(let e=0;e<t.length;e++)if(t[e].uri.slice(0,n.length)===n)return t[e];throw new Error("No local URI for "+e)}(t):t}catch(e){return n.innerHTML="",n.setAttribute("aria-busy","false"),void ee(n,Re,"Cannot load contact: "+e.message)}Fe.fetcher.nowOrWhenFetched(r.doc(),void 0,function(i,a){if(n.innerHTML="",n.setAttribute("aria-busy","false"),!i)return void ee(n,Re,"Failed to load contact. If it persists, contact your admin.");const o=Re.createElement("div");o.classList.add("contact-toolbar");const l=c.widgets.linkIcon(Re,r);l.setAttribute("title","Uri of contact"),o.appendChild(l),s.authn.currentUser()&&c.widgets.deleteButtonWithCheck(Re,o,"contact",async function(){const r=t.dir();Fe.any(t,Te.vcard("fn")),await Ye();const i=Fe.any(De,Te.vcard("nameEmailIndex"));await Fe.fetcher.load(i);const a=ot(t);let o=[];a.forEach(e=>{te(Fe,t,e.doc()).forEach(t=>{1===te(Fe,t,e.doc()).length&&(o=o.concat(Fe.statementsMatching(e,Te.vcard("hasMember"),t,e.doc())))})}),await Fe.updater.updateMany(o);try{await re(t)}catch(e){return void ee(n,Re,"Failed to delete contact. If it persists, contact your admin.")}try{await ne(Fe,r)}catch(e){return void ee(n,Re,"Failed to delete contact. If it persists, contact your admin.")}Qe(e,n),n.innerHTML="Contact data deleted."}).classList.add("deleteButton"),n.appendChild(o),n.classList.add("detailsSectionContent--wide"),n.appendChild(function(e,t){const n=Me.session.paneRegistry.byName(t).render(e,Me);return n.classList.add("renderPane"),n}(r,"contact"))})}function Ze(e){if(Ne={},e)for(let t=0;t<e.children.length;t++)e.children[t].classList.remove("selected")}function et(e,t,n){let r=0,i=null;for(let t=0;t<e.children.length;t++){const n=e.children[t],a=tt(ae(n.subject));a&&(r++,i=n),n.classList.toggle("selected",a&&!!Ne[n.subject.uri]),n.classList.toggle("hidden",!a)}1===r&&t&&Xe(e,i.subject,n)}function tt(e){const t=Oe.value.trim().toLowerCase();if(0===t.length)return!0;const n=t.split(" ");for(let t=0;t<n.length;t++){const r=n[t];if(e.toLowerCase().indexOf(r)<0)return!1}return!0}async function nt(e,t){const n=await Ye(e);if(n&&n.length>0){const{del:e,ins:r}=await async function(e){const t=[],n=[];return e.forEach(e=>{ce.each(e,oe.vcard("hasMember"),null,e.doc()).forEach(r=>{const i=te(ce,r,e.doc());if(i.length&&he(e,r))for(const a of i)if(!he(e,a)){t.push(l.st(e,oe.vcard("hasMember"),r,e.doc())),n.push(l.st(e,oe.vcard("hasMember"),a,e.doc()));break}})}),{del:t,ins:n}}(n);s.authn.currentUser()&&e.length&&c.widgets.deleteButtonWithCheck(Re,t,"contact",async function(){await Fe.updater.updateMany(e,r),e.length})}}async function rt(){const e=function(e){if(e)return e;let t;for(const e in Ie){t=Fe.sym(e);const n=Fe.any(void 0,Te.vcard("includesGroup"),t);if(n)return n}throw new Error("findBookFromGroups: Cant find address book which this group is part of")}(De);try{await Fe.fetcher.load(e)}catch(t){throw new Error("Book won't load:"+e)}const t=Fe.any(e,Te.vcard("nameEmailIndex"));if(!t)throw new Error("No nameEmailIndex");await Fe.fetcher.load(t)}const it=c.ns,at=s.store;function ot(e){let t=at.statementsMatching(null,it.owl("sameAs"),e).map(e=>e.why).concat(at.each(null,it.vcard("hasMember"),e));const n=new Set(t.map(e=>Z(e.uri)));return t=[...n].map(e=>at.sym(e)),t}async function st(e,t,n){const r=n||null;function i(t){const n=l.any(t,it.vcard("fn")),i=n?n.value:t.uri,d=o.createElement("li");d.classList.add("group-membership-item");const p=o.createElement("button");p.setAttribute("type","button"),p.classList.add("allGroupsButton","actionButton","btn-secondary","action-button-focus"),p.textContent=i,p.title=i,d.appendChild(p);const f=o.createElement("div");f.classList.add("group-membership-toolbar");const h=c.widgets.linkIcon(o,t);return h.setAttribute("title","Link to "+i),f.appendChild(h),s.authn.currentUser()&&c.widgets.deleteButtonWithCheck(o,f,"membership in "+i,async function(){await async function(e,t){const n=l.any(e,it.vcard("fn")),i=l.any(t,it.vcard("fn")),s=l.each(null,it.owl("sameAs"),e,t.doc());let d=[];s.forEach(n=>{l.statementsMatching(n,it.owl("sameAs"),e,t.doc())&&(d=d.concat(n))}),d=j(l,e).map(e=>e.value);const p=d.map(e=>l.sym(e));let f=[e].concat(p).flatMap(e=>l.each(null,it.vcard("hasMember"),e));if(f=[...new Set(f.map(e=>e.uri))].map(e=>l.sym(e)),f.length<2)return void Q("Must be a member of at least one group. Add to another group first.");const h="Remove "+n+" from group "+i+"?";if(await X(h)){let n=l.statementsMatching(e,void 0,void 0,t.doc()).concat(l.statementsMatching(void 0,void 0,e,t.doc()));d.forEach(e=>{l.statementsMatching(e,it.owl("sameAs"),void 0,t.doc()).length<2&&(n=n.concat(l.statementsMatching(void 0,void 0,e,t.doc())))});try{await l.updater.update(n,[])}catch(e){const n="Error removing member from group "+t+": "+e;return void u.appendChild(c.widgets.errorMessageBlock(o,n,"pink"))}l.fetcher.unload(t.doc()),await l.fetcher.load(t.doc()),a(),Qe(r)}}(e,t)}),d.appendChild(f),d}function a(){const t=ot(e),n=u.querySelector(".group-pills-wrapper");0===t.length?n.innerHTML="<span>Not part of any Address Book group.</span>":n.innerHTML="",t.forEach(e=>{n.appendChild(i(e))})}const{dom:o}=t,l=t.session.store,u=o.createElement("div");u.classList.add("group-membership-container");const d=o.createElement("h3");d.classList.add("group-membership-header"),d.textContent="Part of groups",u.appendChild(d);const p=o.createElement("ul");return p.classList.add("group-pills-wrapper"),u.appendChild(p),await async function(e=null){if(!e&&!(e=l.any(void 0,it.vcard("includesGroup"))))return;const t=l.any(e,it.vcard("groupIndex")),n=e?l.each(e,it.vcard("includesGroup"),null,t):[];await l.fetcher.load(n)}(),u.refresh=a,a(),u}const ct='# This turtle file defines the forms used in the contacts management\n#\n# Individuals and orgs are in one file as they both\n# share some forms (address etc) and also interactions (roles)\n\n# Forms documentation: https://solidos.github.io/solid-ui/docs/forms-intro.html\n\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix dct: <http://purl.org/dc/terms/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix prov: <http://www.w3.org/ns/prov#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\n\n############# For individual:\n:individualForm a ui:Form ;\n dct:title "Contact details for a person" ;\n ui:parts (\n :fullNameField\n :nicknameGroup\n :pronounsGroup\n :roleField\n :orgNameField\n # :addressesComment\n :addresses\n # :emailComment\n :eMails\n # :telephoneComment\n :telephones\n :birthdayField\n # :noteComment\n :noteField \n ) .\n\n :fullNameField\n a ui:SingleLineTextField ;\n ui:label "Name";\n ui:maxLength "128" ;\n ui:property vcard:fn .\n\n # Nickname\n\n :nicknameGroup a ui:Group; ui:weight 0; \n ui:parts (:nicknameField) .\n\n :nicknameField a ui:SingleLineTextField; \n ui:property foaf:nick;\n ui:label "Nickname"@en, "Nom court"@fr.\n\n # Pronouns\n\n :pronounsGroup a ui:Group; ui:weight 0; \n ui:parts ( :subjectPronounForm :objectPronounForm :relativePronounForm) .\n\n :subjectPronounForm a ui:SingleLineTextField; ui:property solid:preferredSubjectPronoun;\n ui:label "He/she/they" .\n :objectPronounForm a ui:SingleLineTextField; ui:property solid:preferredObjectPronoun;\n ui:label "Him/her/them" .\n :relativePronounForm a ui:SingleLineTextField; ui:property solid:preferredRelativePronoun;\n ui:label "His/hers/theirs" .\n \n :roleField\n a ui:SingleLineTextField ;\n ui:suppressEmptyUneditable true;\n ui:maxLength "128" ;\n ui:property vcard:role .\n\n :orgNameField\n a ui:SingleLineTextField ;\n ui:suppressEmptyUneditable true;\n ui:maxLength "128" ;\n ui:property vcard:organization-name .\n\n :addresses a ui:Multiple ;\n dct:title "Address details" ;\n ui:part :oneAddress ;\n ui:property vcard:hasAddress .\n\n :oneAddress a ui:Group ;\n ui:parts ( \n :id1409437207443 :id1409437292400 \n :id1409437421996 :id1409437467649 \n :id1409437569420 ). \n\n :id1409437207443\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:street-address .\n\n :id1409437292400\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:locality .\n\n :id1409437421996\n a ui:SingleLineTextField ;\n ui:maxLength "25" ;\n ui:property vcard:postal-code .\n\n :id1409437467649\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:region .\n\n :id1409437569420\n a ui:SingleLineTextField ;\n ui:maxLength "128" ;\n ui:property vcard:country-name .\n\n\n :eMails a ui:Multiple ;\n ui:part :oneEMail ;\n ui:property vcard:hasEmail .\n\n :oneEMail a ui:Group ; # hint: side by side is good\n ui:part :emailValue, :emailType ;\n ui:parts ( :emailType :emailValue ).\n\n :emailValue\n a ui:EmailField ; ui:label "email";\n ui:property vcard:value .\n\n :emailType\n a ui:Classifier ;\n ui:canMintNew "0" ;\n ui:category vcard:Type ;\n ui:from vcard:Type ;\n ui:property rdf:type .\n\n :telephones a ui:Multiple ;\n ui:part :onetelephone ;\n ui:property vcard:hasTelephone .\n\n :onetelephone\n a ui:Group ;\n ui:part :telephoneValue, :telephoneType ;\n ui:parts ( :telephoneType :telephoneValue ).\n\n :telephoneValue\n a ui:PhoneField ;\n ui:property vcard:value .\n\n :telephoneType\n a ui:Classifier ;\n ui:canMintNew "0" ;\n ui:category vcard:TelephoneType ;\n ui:from vcard:Type ;\n ui:property rdf:type .\n\n :birthdayField a ui:DateField;\n ui:label "Born"@en;\n ui:suppressEmptyUneditable true;\n ui:property vcard:bday .\n\n :noteField\n a ui:MultiLineTextField ;\n ui:suppressEmptyUneditable true;\n ui:property vcard:note .\n\n# Ontology additions or interpretations needed for the form to work well\n\n# The ontology file doesn\'t make them disjoint. This makes the selector be a choice.\nvcard:TelephoneType owl:disjointUnionOf ( vcard:Cell vcard:Home vcard:Work) .\nvcard:Type owl:disjointUnionOf (vcard:Home vcard:Work) . # for email\n\n# Better field labels\nvcard:Cell ui:label "mobile"@en . # app will make initial caps if necessary\nvcard:hasAddress ui:label "address"@en .\nvcard:bday ui:label "born"@en.\nvcard:hasEmail ui:label "email"@en .\nvcard:hasTelephone ui:label "phone"@en .\nvcard:note ui:label "notes"@en .\n\n\n############ For organizations\n\n:organizationForm a ui:Form ; \n dct:title "Contact details for an organization";\n ui:parts (\n :OrgClassifier\n :fullNameField\n :homePageURIField\n :addresses\n :eMails\n :telephones\n :noteField ) .\n\n :OrgClassifier a ui:Classifier; \n ui:label "What sort of organization?"@en;\n ui:category solid:InterestingOrganization .\n\n :homePageURIField a ui:NamedNodeURIField;\n ui:label "Homepage"@en;\n ui:property schema:url .\n\n# Ontology data to drive the :OrgClassifier classifier\n solid:InterestingOrganization owl:disjointUnionOf (\n # Airline - a Corporation\n # Consortium - a Corporation or a NGO\n schema:Corporation\n schema:EducationalOrganization\n schema:ResearchOrganization # Proposed. https://github.com/schemaorg/schemaorg/issues/2877\n # FundingScheme - eh?\n schema:GovernmentOrganization\n # LibrarySystem\n # LocalBusiness - Corporation\n # MedicalOrganization - a Corporation or a NGO\n schema:NGO\n # NewsMediaOrganization - a Corporation or a NGO\n schema:PerformingGroup # a band\n schema:Project # like Solid\n schema:SportsOrganization) .\n';var lt=a(479),ut={};ut.styleTagTransform=x(),ut.setAttributes=v(),ut.insert=m().bind(null,"head"),ut.domAPI=f(),ut.insertStyleElement=y(),d()(lt.A,ut),lt.A&&lt.A.locals&&lt.A.locals;var dt=a(434),pt={};pt.styleTagTransform=x(),pt.setAttributes=v(),pt.insert=m().bind(null,"head"),pt.domAPI=f(),pt.insertStyleElement=y(),d()(dt.A,pt),dt.A&&dt.A.locals&&dt.A.locals;const ft="https://solidos.github.io/contacts-pane/src/ontology/";function ht(e,t,n,r){const i=r||ft+n,a=(0,l.sym)(i);e.holds(void 0,void 0,void 0,a)||(0,l.parse)(t,e,i,"text/turtle",()=>null)}const mt=c.ns,gt=s.store,vt="individualAndOrganizationForm.ttl";async function bt(e,t,n,r){const i=gt.findTypeURIs(n),a=!(!i[mt.vcard("Organization").uri]&&!i[mt.schema("Organization").uri]),o=gt.updater.editable(n.doc().uri,gt);ht(gt,ct,vt);const u=c.ns.vcard("Type").doc().uri;ht(gt,'@prefix : <http://www.w3.org/2006/vcard/ns#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix xml: <http://www.w3.org/XML/1998/namespace> .\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .\n\n:Acquaintance a owl:Class ;\n rdfs:label "Acquaintance"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Agent a owl:Class ;\n rdfs:label "Agent"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:BBS a owl:Class ;\n rdfs:label "BBS"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Car a owl:Class ;\n rdfs:label "Car"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Cell a owl:Class ;\n rdfs:label "Cell"@en ;\n rdfs:comment "Also called mobile telephone"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Child a owl:Class ;\n rdfs:label "Child"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Colleague a owl:Class ;\n rdfs:label "Colleague"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Contact a owl:Class ;\n rdfs:label "Contact"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Coresident a owl:Class ;\n rdfs:label "Coresident"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Coworker a owl:Class ;\n rdfs:label "Coworker"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Crush a owl:Class ;\n rdfs:label "Crush"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Date a owl:Class ;\n rdfs:label "Date"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Dom a owl:Class ;\n rdfs:label "Dom"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Emergency a owl:Class ;\n rdfs:label "Emergency"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Fax a owl:Class ;\n rdfs:label "Fax"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Female a owl:Class ;\n rdfs:label "Female"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Friend a owl:Class ;\n rdfs:label "Friend"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Home a owl:Class ;\n rdfs:label "Home"@en ;\n rdfs:comment "This implies that the property is related to an individual\'s personal life"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type .\n\n:ISDN a owl:Class ;\n rdfs:label "ISDN"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Internet a owl:Class ;\n rdfs:label "Internet"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Intl a owl:Class ;\n rdfs:label "Intl"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Kin a owl:Class ;\n rdfs:label "Kin"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Label a owl:Class ;\n rdfs:label "Label"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Male a owl:Class ;\n rdfs:label "Male"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Me a owl:Class ;\n rdfs:label "Me"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Met a owl:Class ;\n rdfs:label "Met"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Modem a owl:Class ;\n rdfs:label "Modem"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Msg a owl:Class ;\n rdfs:label "Msg"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Muse a owl:Class ;\n rdfs:label "Muse"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Neighbor a owl:Class ;\n rdfs:label "Neighbor"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:None a owl:Class ;\n rdfs:label "None"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Other a owl:Class ;\n rdfs:label "Other"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:PCS a owl:Class ;\n rdfs:label "PCS"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType ;\n owl:deprecated true .\n\n:Pager a owl:Class ;\n rdfs:label "Pager"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Parcel a owl:Class ;\n rdfs:label "Parcel"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Parent a owl:Class ;\n rdfs:label "Parent"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Postal a owl:Class ;\n rdfs:label "Postal"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Pref a owl:Class ;\n rdfs:label "Pref"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:Sibling a owl:Class ;\n rdfs:label "Sibling"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Spouse a owl:Class ;\n rdfs:label "Spouse"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Sweetheart a owl:Class ;\n rdfs:label "Sweetheart"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :RelatedType .\n\n:Tel a owl:Class ;\n rdfs:label "Tel"@en ;\n rdfs:comment "This class is deprecated. Use the hasTelephone object property."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:Text a owl:Class ;\n rdfs:label "Text"@en ;\n rdfs:comment "Also called sms telephone"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:TextPhone a owl:Class ;\n rdfs:label "Text phone"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Unknown a owl:Class ;\n rdfs:label "Unknown"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Gender .\n\n:Video a owl:Class ;\n rdfs:label "Video"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Voice a owl:Class ;\n rdfs:label "Voice"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :TelephoneType .\n\n:Work a owl:Class ;\n rdfs:label "Work"@en ;\n rdfs:comment "This implies that the property is related to an individual\'s work place"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type .\n\n:X400 a owl:Class ;\n rdfs:label "X400"@en ;\n rdfs:comment "This class is deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Type ;\n owl:deprecated true .\n\n:adr a owl:ObjectProperty ;\n rdfs:label "address"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasAddress .\n\n:agent a owl:ObjectProperty ;\n rdfs:label "agent"@en ;\n rdfs:comment "This object property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:anniversary a owl:DatatypeProperty ;\n rdfs:label "anniversary"@en ;\n rdfs:comment "The date of marriage, or equivalent, of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range [ a rdfs:Datatype ;\n owl:unionOf ( xsd:dateTime xsd:gYear ) ] .\n\n:bday a owl:DatatypeProperty ;\n rdfs:label "birth date"@en ;\n rdfs:comment "To specify the birth date of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range [ a rdfs:Datatype ;\n owl:unionOf ( xsd:dateTime xsd:dateTimeStamp xsd:gYear ) ] .\n\n:category a owl:DatatypeProperty ;\n rdfs:label "category"@en ;\n rdfs:comment "The category information about the object, also known as tags"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:class a owl:DatatypeProperty ;\n rdfs:label "class"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:email a owl:ObjectProperty ;\n rdfs:label "email"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasEmail .\n\n:extended-address a owl:DatatypeProperty ;\n rdfs:label "extended address"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:geo a owl:ObjectProperty ;\n rdfs:label "geo"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasGeo .\n\n:hasAdditionalName a owl:ObjectProperty ;\n rdfs:label "has additional name"@en ;\n rdfs:comment "Used to support property parameters for the additional name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarBusy a owl:ObjectProperty ;\n rdfs:label "has calendar busy"@en ;\n rdfs:comment "To specify the busy time associated with the object. (Was called FBURL in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarLink a owl:ObjectProperty ;\n rdfs:label "has calendar link"@en ;\n rdfs:comment "To specify the calendar associated with the object. (Was called CALURI in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCalendarRequest a owl:ObjectProperty ;\n rdfs:label "has calendar request"@en ;\n rdfs:comment "To specify the calendar user address to which a scheduling request be sent for the object. (Was called CALADRURI in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCategory a owl:ObjectProperty ;\n rdfs:label "has category"@en ;\n rdfs:comment "Used to support property parameters for the category data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasCountryName a owl:ObjectProperty ;\n rdfs:label "has country name"@en ;\n rdfs:comment "Used to support property parameters for the country name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasFN a owl:ObjectProperty ;\n rdfs:label "has formatted name"@en ;\n rdfs:comment "Used to support property parameters for the formatted name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasFamilyName a owl:ObjectProperty ;\n rdfs:label "has family name"@en ;\n rdfs:comment "Used to support property parameters for the family name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasGender a owl:ObjectProperty ;\n rdfs:label "has gender"@en ;\n rdfs:comment "To specify the sex or gender identity of the object. URIs are recommended to enable interoperable sex and gender codes to be used."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasGivenName a owl:ObjectProperty ;\n rdfs:label "has given name"@en ;\n rdfs:comment "Used to support property parameters for the given name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasHonorificPrefix a owl:ObjectProperty ;\n rdfs:label "has honorific prefix"@en ;\n rdfs:comment "Used to support property parameters for the honorific prefix data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasHonorificSuffix a owl:ObjectProperty ;\n rdfs:label "has honorific suffix"@en ;\n rdfs:comment "Used to support property parameters for the honorific suffix data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasInstantMessage a owl:ObjectProperty ;\n rdfs:label "has messaging"@en ;\n rdfs:comment "To specify the instant messaging and presence protocol communications with the object. (Was called IMPP in RFC6350)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasLanguage a owl:ObjectProperty ;\n rdfs:label "has language"@en ;\n rdfs:comment "Used to support property parameters for the language data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasLocality a owl:ObjectProperty ;\n rdfs:label "has locality"@en ;\n rdfs:comment "Used to support property parameters for the locality data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasNickname a owl:ObjectProperty ;\n rdfs:label "has nickname"@en ;\n rdfs:comment "Used to support property parameters for the nickname data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:seeAlso :nickname .\n\n:hasNote a owl:ObjectProperty ;\n rdfs:label "has note"@en ;\n rdfs:comment "Used to support property parameters for the note data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasOrganizationName a owl:ObjectProperty ;\n rdfs:label "has organization name"@en ;\n rdfs:comment "Used to support property parameters for the organization name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasOrganizationUnit a owl:ObjectProperty ;\n rdfs:label "has organization unit name"@en ;\n rdfs:comment "Used to support property parameters for the organization unit name data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasPostalCode a owl:ObjectProperty ;\n rdfs:label "has postal code"@en ;\n rdfs:comment "Used to support property parameters for the postal code data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRegion a owl:ObjectProperty ;\n rdfs:label "has region"@en ;\n rdfs:comment "Used to support property parameters for the region data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRelated a owl:ObjectProperty ;\n rdfs:label "has related"@en ;\n rdfs:comment "To specify a relationship between another entity and the entity represented by this object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasRole a owl:ObjectProperty ;\n rdfs:label "has role"@en ;\n rdfs:comment "Used to support property parameters for the role data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasSource a owl:ObjectProperty ;\n rdfs:label "has source"@en ;\n rdfs:comment "To identify the source of directory information of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasStreetAddress a owl:ObjectProperty ;\n rdfs:label "has street address"@en ;\n rdfs:comment "Used to support property parameters for the street address data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasTitle a owl:ObjectProperty ;\n rdfs:label "has title"@en ;\n rdfs:comment "Used to support property parameters for the title data property"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasUID a owl:ObjectProperty ;\n rdfs:label "has uid"@en ;\n rdfs:comment "To specify a value that represents a globally unique identifier corresponding to the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasValue a owl:ObjectProperty ;\n rdfs:label "has value"@en ;\n rdfs:comment "Used to indicate the resource value of an object property that requires property parameters"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:label a owl:DatatypeProperty ;\n rdfs:label "label"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:language a owl:DatatypeProperty ;\n rdfs:label "language"@en ;\n rdfs:comment "To specify the language that may be used for contacting the object. May also be used as a property parameter."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:latitude a owl:DatatypeProperty ;\n rdfs:label "latitude"@en ;\n rdfs:comment "This data property has been deprecated. See hasGeo"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:longitude a owl:DatatypeProperty ;\n rdfs:label "longitude"@en ;\n rdfs:comment "This data property has been deprecated. See hasGeo"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:mailer a owl:DatatypeProperty ;\n rdfs:label "mailer"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:note a owl:DatatypeProperty ;\n rdfs:label "note"@en ;\n rdfs:comment "A note associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:org a owl:ObjectProperty ;\n rdfs:label "organization"@en ;\n rdfs:comment "This object property has been mapped. Use the organization-name data property."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :organization-name .\n\n:organization-unit a owl:DatatypeProperty ;\n rdfs:label "organizational unit name"@en ;\n rdfs:comment "To specify the organizational unit name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string ;\n rdfs:subPropertyOf :organization-name .\n\n:post-office-box a owl:DatatypeProperty ;\n rdfs:label "post office box"@en ;\n rdfs:comment "This data property has been deprecated"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:prodid a owl:DatatypeProperty ;\n rdfs:label "product id"@en ;\n rdfs:comment "To specify the identifier for the product that created the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:rev a owl:DatatypeProperty ;\n rdfs:label "revision"@en ;\n rdfs:comment "To specify revision information about the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:dateTime .\n\n:role a owl:DatatypeProperty ;\n rdfs:label "role"@en ;\n rdfs:comment "To specify the function or part played in a particular situation by the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:sort-string a owl:DatatypeProperty ;\n rdfs:label "sort as"@en ;\n rdfs:comment "To specify the string to be used for national-language-specific sorting. Used as a property parameter only."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:title a owl:DatatypeProperty ;\n rdfs:label "title"@en ;\n rdfs:comment "To specify the position or job of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:tz a owl:DatatypeProperty ;\n rdfs:label "time zone"@en ;\n rdfs:comment "To indicate time zone information that is specific to the object. May also be used as a property parameter."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:value a owl:DatatypeProperty ;\n rdfs:label "value"@en ;\n rdfs:comment "Used to indicate the literal value of a data property that requires property parameters"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:Address a owl:Class ;\n rdfs:label "Address"@en ;\n rdfs:comment "To specify the components of the delivery address for the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Class ;\n owl:unionOf ( [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :country-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :country-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :locality ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :locality ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :postal-code ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :postal-code ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :region ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :region ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :street-address ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :street-address ] ) ] ) ] .\n\n:Email a owl:Class ;\n rdfs:label "Email"@en ;\n rdfs:comment "To specify the electronic mail address for communication with the object the vCard represents. Use the hasEmail object property."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:deprecated true .\n\n:Group a owl:Class ;\n rdfs:label "Group"@en ;\n rdfs:comment "Object representing a group of persons or entities. A group object will usually contain hasMember properties to specify the members of the group."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Individual,\n :Location,\n :Organization ;\n owl:equivalentClass [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :hasMember ;\n owl:someValuesFrom :Kind ] [ a owl:Restriction ;\n owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onClass :Kind ;\n owl:onProperty :hasMember ] ) ] .\n\n:Individual a owl:Class ;\n rdfs:label "Individual"@en ;\n rdfs:comment "An object representing a single person or entity"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Location,\n :Organization .\n\n:Name a owl:Class ;\n rdfs:label "Name"@en ;\n rdfs:comment "To specify the components of the name of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Class ;\n owl:unionOf ( [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :additional-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality "0"^^xsd:nonNegativeInteger ;\n owl:onProperty :additional-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :family-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :family-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :given-name ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:maxCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onProperty :given-name ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :honorific-prefix ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality "0"^^xsd:nonNegativeInteger ;\n owl:onProperty :honorific-prefix ] ) ] [ a owl:Class ;\n owl:intersectionOf ( [ a owl:Restriction ;\n owl:onProperty :honorific-suffix ;\n owl:someValuesFrom xsd:string ] [ a owl:Restriction ;\n owl:minCardinality "0"^^xsd:nonNegativeInteger ;\n owl:onProperty :honorific-suffix ] ) ] ) ] .\n\n:VCard a owl:Class ;\n rdfs:label "VCard"@en ;\n rdfs:comment "The vCard class is equivalent to the new Kind class, which is the parent for the four explicit types of vCards (Individual, Organization, Location, Group)"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass :Kind .\n\n:fn a owl:DatatypeProperty ;\n rdfs:label "formatted name"@en ;\n rdfs:comment "The formatted text corresponding to the name of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:hasAddress a owl:ObjectProperty ;\n rdfs:label "has address"@en ;\n rdfs:comment "To specify the components of the delivery address for the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Address .\n\n:hasEmail a owl:ObjectProperty ;\n rdfs:label "has email"@en ;\n rdfs:comment "To specify the electronic mail address for communication with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Email .\n\n:hasGeo a owl:ObjectProperty ;\n rdfs:label "has geo"@en ;\n rdfs:comment "To specify information related to the global positioning of the object. May also be used as a property parameter."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:hasKey a owl:ObjectProperty ;\n rdfs:label "has key"@en ;\n rdfs:comment "To specify a public key or authentication certificate associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :key .\n\n:hasLogo a owl:ObjectProperty ;\n rdfs:label "has logo"@en ;\n rdfs:comment "To specify a graphic image of a logo associated with the object "@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :logo .\n\n:hasName a owl:ObjectProperty ;\n rdfs:label "has name"@en ;\n rdfs:comment "To specify the components of the name of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Name ;\n owl:equivalentProperty :n .\n\n:hasPhoto a owl:ObjectProperty ;\n rdfs:label "has photo"@en ;\n rdfs:comment "To specify an image or photograph information that annotates some aspect of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :photo .\n\n:hasSound a owl:ObjectProperty ;\n rdfs:label "has sound"@en ;\n rdfs:comment "To specify a digital sound content information that annotates some aspect of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :sound .\n\n:hasTelephone a owl:ObjectProperty ;\n rdfs:label "has telephone"@en ;\n rdfs:comment "To specify the telephone number for telephony communication with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :tel .\n\n:hasURL a owl:ObjectProperty ;\n rdfs:label "has url"@en ;\n rdfs:comment "To specify a uniform resource locator associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :url .\n\n:key a owl:ObjectProperty ;\n rdfs:label "key"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasKey .\n\n:logo a owl:ObjectProperty ;\n rdfs:label "logo"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasLogo .\n\n:n a owl:ObjectProperty ;\n rdfs:label "name"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasName .\n\n:nickname a owl:DatatypeProperty ;\n rdfs:label "nickname"@en ;\n rdfs:comment "The nick name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:photo a owl:ObjectProperty ;\n rdfs:label "photo"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasPhoto .\n\n:sound a owl:ObjectProperty ;\n rdfs:label "sound"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasSound .\n\n:tel a owl:ObjectProperty ;\n rdfs:label "telephone"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasTelephone .\n\n:url a owl:ObjectProperty ;\n rdfs:label "url"@en ;\n rdfs:comment "This object property has been mapped"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentProperty :hasURL .\n\n:Location a owl:Class ;\n rdfs:label "Location"@en ;\n rdfs:comment "An object representing a named geographical place"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind ;\n owl:disjointWith :Organization .\n\n:additional-name a owl:DatatypeProperty ;\n rdfs:label "additional name"@en ;\n rdfs:comment "The additional name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:country-name a owl:DatatypeProperty ;\n rdfs:label "country name"@en ;\n rdfs:comment "The country name associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:family-name a owl:DatatypeProperty ;\n rdfs:label "family name"@en ;\n rdfs:comment "The family name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:given-name a owl:DatatypeProperty ;\n rdfs:label "given name"@en ;\n rdfs:comment "The given name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:hasMember a owl:ObjectProperty ;\n rdfs:label "has member"@en ;\n rdfs:comment "To include a member in the group this object represents. (This property can only be used by Group individuals)"@en ;\n rdfs:domain :Group ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range :Kind .\n\n:honorific-prefix a owl:DatatypeProperty ;\n rdfs:label "honorific prefix"@en ;\n rdfs:comment "The honorific prefix of the name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:honorific-suffix a owl:DatatypeProperty ;\n rdfs:label "honorific suffix"@en ;\n rdfs:comment "The honorific suffix of the name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:locality a owl:DatatypeProperty ;\n rdfs:label "locality"@en ;\n rdfs:comment "The locality (e.g. city or town) associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:organization-name a owl:DatatypeProperty ;\n rdfs:label "organization name"@en ;\n rdfs:comment "To specify the organizational name associated with the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:postal-code a owl:DatatypeProperty ;\n rdfs:label "postal code"@en ;\n rdfs:comment "The postal code associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:region a owl:DatatypeProperty ;\n rdfs:label "region"@en ;\n rdfs:comment "The region (e.g. state or province) associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:street-address a owl:DatatypeProperty ;\n rdfs:label "street address"@en ;\n rdfs:comment "The street address associated with the address of the object"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:range xsd:string .\n\n:Organization a owl:Class ;\n rdfs:label "Organization"@en ;\n rdfs:comment """An object representing an organization. An organization is a single entity, and might represent a business or government, a department or division within a business or government, a club, an association, or the like.\n"""@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n rdfs:subClassOf :Kind .\n\n:Gender a owl:Class ;\n rdfs:label "Gender"@en ;\n rdfs:comment "Used for gender codes. The URI of the gender code must be used as the value for Gender."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:Kind a owl:Class ;\n rdfs:label "Kind"@en ;\n rdfs:comment "The parent class for all objects"@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> ;\n owl:equivalentClass [ a owl:Restriction ;\n owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;\n owl:onDataRange xsd:string ;\n owl:onProperty :fn ],\n :VCard .\n\n:Type a owl:Class ;\n rdfs:label "Type"@en ;\n rdfs:comment "Used for type codes. The URI of the type code must be used as the value for Type."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:TelephoneType a owl:Class ;\n rdfs:label "Phone"@en ;\n rdfs:comment "Used for telephone type codes. The URI of the telephone type code must be used as the value for the Telephone Type."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n:RelatedType a owl:Class ;\n rdfs:label "Relation Type"@en ;\n rdfs:comment "Used for relation type codes. The URI of the relation type code must be used as the value for the Relation Type."@en ;\n rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns> .\n\n<http://www.w3.org/2006/vcard/ns> a owl:Ontology ;\n rdfs:label "Ontology for vCard"@en ;\n rdfs:comment "Ontology for vCard based on RFC6350"@en ;\n owl:versionInfo "Final"@en .\n\n\n',"vcard.ttl",u);try{await gt.fetcher.load(n.doc())}catch(e){throw new Error("Failed to load profile card.")}t.classList.add("individualPane"),s.authn.checkUser(),t.appendChild(ke(e,n));const d=a?"organizationForm":"individualForm";if(function(e,t,n,r,i,a,o,s){const u=ft+r,d=s||"this",p=(0,l.Namespace)(u+"#")(d);ht(i,n,r,u),c.widgets.appendForm(a,e,{},t,p,o,(e,t)=>{e||c.widgets.errorMessageBlock(a,t)})}(t,n,ct,vt,s.store,e,n.doc(),d),t.appendChild(await st(n,r,r.ulPeople)),s.authn.currentUser()){const r=t.appendChild(e.createElement("h3"));r.textContent="Attach a document",r.classList.add("webidHeading"),c.widgets.attachmentList(e,n,t,{modify:o})}a?t.appendChild(await async function(e,t){let n=P.sym("http://www.wikidata.org/wiki/Q43229");for(const t in F)P.holds(e,_.rdf("type"),_.schema(t),e.doc())&&(n=P.sym(F[t]),C());return M(e,t,{longPrompt:`Add a ${N}?`,idNoun:N,urlType:_.vcard("PublicId"),dbLookup:!0,class:n,queryParams:R})}(n,r)):t.appendChild(await async function(e,t){return M(e,t,{longPrompt:`Link to a ${I}?`,idNoun:I,urlType:_.vcard("WebID")})}(n,r))}var yt=a(295),wt={};wt.styleTagTransform=x(),wt.setAttributes=v(),wt.insert=m().bind(null,"head"),wt.domAPI=f(),wt.insertStyleElement=y(),d()(yt.A,wt),yt.A&&yt.A.locals&&yt.A.locals;const xt=s.store,At=c.ns,Et=At.vcard;let Ct,kt,_t,St;function Tt(e,t,n,r,i,a,o){Ct=r,kt=t,St=o;const u=i.dom,d=u.createElement("div");d.classList.add("toolsPane");const p=u.createElement("h3");p.textContent="Tools",d.appendChild(p);const f=d.appendChild(u.createElement("div"));f.classList.add("statsLog"),_t=f.appendChild(u.createElement("pre")),_t.setAttribute("id","logSpace");const h=d.appendChild(u.createElement("div"));function m(e){const t=e.classList.contains("btn-primary");h.querySelectorAll("button").forEach(e=>{e.classList.remove("btn-primary","toolsButton--loading","toolsButton--error","toolsButton--success"),e.classList.add("btn-secondary")}),t||(e.classList.remove("btn-secondary"),e.classList.add("btn-primary"))}h.classList.add("toolsButtonsContainer");const g=h.appendChild(u.createElement("button"));g.textContent="Load main index",g.classList.add("actionButton","btn-secondary","action-button-focus"),g.addEventListener("click",()=>{m(g),_t.textContent="",async function(e,t){e.classList.add("toolsButton--loading"),e.classList.remove("toolsButton--error","toolsButton--success");const n=xt.any(Ct,At.vcard("nameEmailIndex"));try{await xt.fetcher.load(n)}catch(n){e.classList.remove("toolsButton--loading"),e.classList.add("toolsButton--error"),Pt(t,"Error: People index has NOT been loaded"+n+"\n")}e.classList.remove("toolsButton--loading"),e.classList.add("toolsButton--success"),Pt(t," People index has been loaded\n")}(g,_t)});const v=h.appendChild(u.createElement("button"));v.textContent="Statistics",v.classList.add("actionButton","btn-secondary","action-button-focus"),v.addEventListener("click",()=>{m(v),_t.textContent="",function(e){const t=xt.each(void 0,Et("inAddressBook"),Ct).length;Pt(e,t+" contacts loaded. ");let n=xt.each(Ct,Et("includesGroup"));const r=new Set(n.map(e=>Z(e.uri)));n=[...r].map(e=>xt.sym(e)),Pt(e,n.length+" total groups. ");const i=[];for(const e in kt)i.push(e);Pt(e,i.length+" selected groups. ")}(_t)});const b=h.appendChild(u.createElement("button"));b.textContent="Check individual contact access of selected groups",b.classList.add("actionButton","btn-secondary","action-button-focus"),b.addEventListener("click",e=>{m(b),_t.textContent="",async function(){function e(e){c.acl.fixIndividualCardACL(e,e=>Pt(_t,e),function(t,n){Pt(_t,t?"Success for "+c.utils.label(e):"Failure for "+e+": "+n)})}const t=[];for(const e in kt)t.push(e);for(let n=0;n<t.length;n++){const r=xt.sym(t[n]),i=fe(xt,r);Pt(_t,c.utils.label(r)+": "+i.length+" members");for(let t=0;t<i.length;t++){const n=i[t];Pt(_t,c.utils.label(n)),e(n)}}}()});const y=h.appendChild(u.createElement("button"));y.textContent="Find duplicate contacts",y.classList.add("actionButton","btn-secondary","action-button-focus"),y.addEventListener("click",function(e){m(y),_t.textContent="";const t={};t.book=Ct,t.nameEmailIndex=xt.any(Ct,At.vcard("nameEmailIndex")),Pt(_t,"Loading name index..."),s.store.fetcher.nowOrWhenFetched(t.nameEmailIndex,void 0,function(e,n){function r(e){let n;return Promise.resolve().then(()=>{const r=e.uri.replace("/Group/","/NewGroup/");n=xt.sym(r);let i=[];for(let n=0;n<t.uniques.length;n++)i=i.concat(xt.connectedStatements(t.uniques[n],e.doc()));const a=new l.Serializer(xt).setBase(e.uri);Pt(_t," Regenerating group of uniques..."+n);const o=a.statementsToN3(i);return xt.fetcher.webOperation("PUT",n,{data:o,contentType:"text/turtle"})}).then(()=>(Pt(_t," Done uniques group "+n),!0)).catch(e=>{Pt(_t,"Error saving : "+e)})}Pt(_t,"Loaded name index."),t.cards=[],t.duplicates=[],t.definitive=[],t.nameless=[],t.exactDuplicates=[],t.nameOnlyDuplicates=[],t.uniquesSet=[],t.groupProblems=[],t.nameDupLog=xt.sym(Ct.dir().uri+"dedup-nameDupLog.ttl"),t.exactDupLog=xt.sym(Ct.dir().uri+"dedup-exactDupLog.ttl"),t.nameOnlyErrors=[],t.nameLessZeroData=[],t.nameLessIndex=[],t.namelessUniques=[],t.nameOnlyDuplicatesGroupDiff=[];const i=function(){let e=[];return t.book&&([t.book].forEach(function(t){const n=(t?xt.each(t,At.vcard("includesGroup")):[]).map(function(e){return[t,xt.any(e,At.vcard("fn")),e]});e=e.concat(n)}),e.sort()),e}();t.groupObjects=i.map(e=>e[2]),Pt(_t,"Loading "+t.groupObjects.length+" groups... "),xt.fetcher.load(t.groupObjects).then(function(){return new Promise(function(e){let n,r,i;for(t.cards=xt.each(void 0,Et("inAddressBook"),t.book),Pt(_t,t.cards.length+" total contacts"),n=0;n<t.cards.length;n++)r=t.cards[n],i=xt.anyValue(r,At.vcard("fn")),i?t.definitive[i]===r||(t.definitive[i]?(t.duplicates.length,t.duplicates.push(r)):t.definitive[i]=r):t.nameless.push(r);t.duplicateSet=[];for(let e=0;e<t.duplicates.length;e++)t.duplicateSet[t.duplicates[e].uri]=t.duplicates[e];t.namelessSet=[];for(let e=0;e<t.nameless.length;e++)t.namelessSet[t.nameless[e].uri]=t.nameless[e];t.uniques=[],t.uniqueSet=[];for(let e=0;e<t.cards.length;e++){const n=t.cards[e].uri;t.duplicateSet[n]||t.namelessSet[n]||(t.uniques.push(t.cards[e]),t.uniqueSet[n]=t.cards[e])}Pt(_t,"Uniques: "+t.uniques.length),Pt(_t,t.nameless.length+" nameless contacts."),Pt(_t,t.duplicates.length+" name-duplicate contacts, leaving "+(t.cards.length-t.duplicates.length)),e(!0)})}).then(function(){return new Promise(function(e){Pt(_t,"Groups loaded");for(let e=0;e<t.uniques.length;e++)t.uniquesSet[t.uniques[e].uri]=!0;t.groupMembers=[],xt.each(null,At.vcard("hasMember")).forEach(e=>{t.groupMembers=t.groupMembers.concat(fe(xt,e))}),Pt(_t," Naive group members "+t.groupMembers.length),t.groupMemberSet=[];for(let e=0;e<t.groupMembers.length;e++)t.groupMemberSet[t.groupMembers[e].uri]=t.groupMembers[e];t.groupMembers2=[];for(const e in t.groupMemberSet)t.groupMembers2.push(t.groupMemberSet[e]);if(Pt(_t," Compact group members "+t.groupMembers2.length),l.keepThisCodeForLaterButDisableFerossConstantConditionPolice){for(let e=0;e<t.groupMembers.length;e++){const n=t.groupMembers[e];t.uniquesSet[n.uri]||(Pt(_t," Not in uniques: "+n),t.groupProblems.push(n),t.duplicateSet[n.uri]?Pt(_t," ** IN duplicates alas:"+n):Pt(_t," **** WTF?"))}Pt(_t,"Problem contacts: "+t.groupProblems.length)}e(!0)})}).then(function e(){return t.namelessToCheck=t.namelessToCheck||t.nameless.slice(),Pt(_t,"Nameless check left: "+t.namelessToCheck.length),new Promise(function(n){const r=t.namelessToCheck.shift();if(r){var i;(i=r,new Promise(function(e){xt.fetcher.load(i).then(function(n){Pt(_t," Nameless check "+i);const r={};r[At.vcard("hasUID").uri]=!0,r[At.dc("created").uri]=!0,r[At.dc("modified").uri]=!0;const a=(o=i,xt.statementsMatching(null,null,null,o.doc()).filter(function(e){return!r[e.predicate.uri]}));var o;if(!a.length)return Pt(_t," Zero length "+i),t.nameLessZeroData.push(i),e(!1);const s=new l.Serializer(xt).setBase(i.doc().uri).statementsToN3(a),c=t.nameLessIndex[s];if(c){Pt(_t," Matches with "+c);const n=xt.each(null,At.vcard("hasMember"),i),r=xt.each(null,At.vcard("hasMember"),c);for(let a=0;a<n.length;a++){let o=!1;for(let e=0;e<r.length;e++)r[e].sameTerm(n[a])&&(o=!0);if(!o)return Pt(_t,"This one groups: "+n),Pt(_t,"Other one groups: "+r),Pt(_t,"Cant skip this one because it has a group, "+n[a]+", which the other does not."),t.nameOnlyDuplicatesGroupDiff.push(i),e(!1)}}else Pt(_t,"First nameless like: "+i.doc()),Pt(_t,"___________________________________________"),Pt(_t,s),Pt(_t,"___________________________________________"),t.nameLessIndex[s]=i,t.namelessUniques.push(i);e(!0)}).catch(function(n){Pt(_t,"Cant load a nameless card!: "+n),t.nameOnlyErrors.push(i),e(!1)})})).then(function(t){Pt(_t," Nameless check returns "+t),e()})}else{if(Pt(_t,"namelessUniques: "+t.namelessUniques.length),Pt(_t,"namelessUniques: "+t.namelessUniques),!(t.namelessUniques.length>0))return n(!0);{const e=u.createElement("p");e.textContent="Add all "+t.namelessUniques.length+" nameless contacts to the rescued set?",f.appendChild(e);const r=c.widgets.continueButton(u,function(){t.uniques=t.uniques.concat(t.namelessUniques);for(let e=0;e<t.namelessUniques.length;e++)t.uniqueSet[t.namelessUniques[e].uri]=!0;e.remove(),r.remove(),n(!0)});f.appendChild(r)}}})}).then(function(){let e;return Promise.resolve().then(()=>{e=xt.sym(t.book.dir().uri+"clean-people.ttl");let n=[];for(let e=0;e<t.uniques.length;e++)n=n.concat(xt.connectedStatements(t.uniques[e],t.nameEmailIndex));const r=new l.Serializer(xt).setBase(t.nameEmailIndex.uri);Pt(_t,"Serializing index of uniques...");const i=r.statementsToN3(n);return xt.fetcher.webOperation("PUT",e,{data:i,contentType:"text/turtle"})}).then(function(){return Pt(_t,"Done uniques log "+e),!0}).catch(function(e){Pt(_t,"Error saving uniques: "+e)})}).then(function(){return Pt(_t,"Saving ALL GROUPS"),Promise.all(t.groupObjects.map(r))}).then(function(){Pt(_t,"Done!")})})});const w=h.appendChild(u.createElement("button"));w.classList.add("actionButton","btn-secondary","action-button-focus"),w.textContent="Find contacts with no group",w.addEventListener("click",function(t){m(w),_t.textContent="",Pt(_t,"Loading groups..."),e(kt,n,async function(e,t){if(!e)return void Pt(_t,"Loading all groups failed. If it persists, contact your admin.");const n=xt.any(Ct,At.vcard("nameEmailIndex"));try{await xt.fetcher.load(n)}catch(e){return void Pt(_t,"Loading name index failed. If it persists, contact your admin.")}Pt(_t,"Loaded groups and name index."),Ft(Ct),Pt(_t,"Groupless list finished.")})});const x=h.appendChild(u.createElement("button"));return x.classList.add("actionButton","btn-secondary","action-button-focus"),x.textContent="Put all individuals with no group in a new group",x.addEventListener("click",e=>{m(x),_t.textContent="",async function(e){const t=await Ft(e);if(0===t.length)return void Pt(_t,"No groupless contacts found.");let n=null;try{n=await de(e,"No group")}catch(e){}const r=_t.ownerDocument;new Promise(function(e){const i=r.createElement("p");i.textContent=`Add the ${t.length} contacts without groups to a 'No group' group?`,_t.appendChild(i);const a=c.widgets.continueButton(r,async function(){i.remove(),a.remove();for(const e of t)n&&(Pt(_t," adding "+c.utils.label(e)),await pe(e,n));Pt(_t,"People moved to group."),St&&St(),e()});_t.appendChild(a)})}(Ct)}),d}function Pt(e,t){e.textContent+=t+"\n"}async function Ft(e){const t=xt.any(e,At.vcard("groupIndex")),n=xt.any(e,At.vcard("nameEmailIndex"));try{await xt.fetcher.load([n,t]);const r=xt.each(e,At.vcard("includesGroup"));await xt.fetcher.load(r)}catch(e){Pt(_t,"Error loading groups or name index. If it persists, contact your admin.")}const r={},i=[];let a=xt.each(e,Et("includesGroup"));const o=new Set(a.map(e=>Z(e.uri)));a=[...o].map(e=>xt.sym(e)),Pt(_t,a.length+" total groups. ");for(let e=0;e<a.length;e++){const t=a[e],n=fe(xt,t);Pt(_t,c.utils.label(t)+": "+n.length+" members");for(let e=0;e<n.length;e++)xt.allAliases(n[e]).forEach(function(e){r[e.uri]=t})}const s=xt.each(void 0,Et("inAddressBook"),e);Pt(_t,s.length+" total contatcs");for(let e=0;e<s.length;e++)r[s[e].uri]||(i.push(s[e]),Pt(_t," groupless "+c.utils.label(s[e])));return Pt(_t,i.length+" groupless contacts."),i}var Rt=a(903),It={};It.styleTagTransform=x(),It.setAttributes=v(),It.insert=m().bind(null,"head"),It.domAPI=f(),It.insertStyleElement=y(),d()(Rt.A,It),Rt.A&&Rt.A.locals&&Rt.A.locals;const Nt=c.ns,Lt=c.utils,Bt={icon:c.icons.iconBase+"noun_99101.svg",name:"contact",label:function(e,t){const n=t.session.store.findTypeURIs(e);return n[Nt.vcard("Individual").uri]||n[Nt.vcard("Organization").uri]?"Contact":n[Nt.foaf("Person").uri]||n[Nt.schema("Person").uri]?"Person":n[Nt.vcard("Group").uri]?"Group":n[Nt.vcard("AddressBook").uri]?"Address book":null},mintClass:c.ns.vcard("AddressBook"),mintNew:function(e,t){return new Promise(function(n,r){c.login.ensureLoadedProfile(t).then(t=>{t.me;const i=t.me,a=t.dom,o=t.div,s=e.session.store,u=c.ns,d=t.newBase||t.newInstance.dir().uri;if((t.instanceClass||u.vcard("AddressBook")).sameTerm(u.vcard("Group"))){const e=t.newInstance||s.sym(t.newBase+"index.ttl#this"),i=e.doc();return s.add(e,u.rdf("type"),u.vcard("Group"),i),s.add(e,u.vcard("fn"),t.instanceName||"untitled group",i),void s.fetcher.putBack(i,{contentType:"text/turtle"}).then(function(e){n(t)}).catch(function(e){r(new Error("Error creating document for new group "+e))})}let p='@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n @prefix ab: <http://www.w3.org/ns/pim/ab#>.\n @prefix dc: <http://purl.org/dc/elements/1.1/>.\n @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.\n\n <#this> a vcard:AddressBook;\n dc:title "New address Book";\n vcard:nameEmailIndex <people.ttl>;\n vcard:groupIndex <groups.ttl>.\n';p+="<#this> <http://www.w3.org/ns/auth/acl#owner> <"+i.uri+">.\n\n";const f=s.sym(d+"index.ttl#this"),h=[{to:"index.ttl",content:p,contentType:"text/turtle"},{to:"groups.ttl",content:"",contentType:"text/turtle"},{to:"people.ttl",content:"",contentType:"text/turtle"},{to:"",existing:!0,aclOptions:{defaultForNew:!0}}];!function e(){function c(t,n){if(!n)return r(new Error("Error writing new file "+u.to));me(p,i,m).then(()=>e()).catch(e=>{u.to;const t="Error setting access permissions for "+u.to+".";return r(new Error(t))})}if(0===h.length)!function(e,r){const i=o.appendChild(a.createElement("p"));i.classList.add("claimSuccess"),i.innerHTML="Your <a href='"+e.uri+"'><b>new "+r+"</b></a> is ready. <br/><br/><a href='"+e.uri+"'>Go to new "+r+"</a>";const s=Object.assign({newInstance:e},t);n(s)}(f,"address book");else{var u=h.shift();u.to;var p=l.uri.join(u.to,d),m=u.aclOptions||{};"content"in u?s.fetcher.webOperation("PUT",p,{data:u.content,saveMetadata:!0,contentType:u.contentType}).then(()=>c(0,!0)):"existing"in u?c(0,!0):r(new Error("Copy not expected while buiding new app."))}}()},e=>{ee(t.div,t.dom,"Please log in to create a new address book.")})})},render:function(e,t,n={}){const r=t.dom,i=t.session.store,a=r.createElement("div");return W(r),c.aclControl.preventBrowserDropEvents(r),a.setAttribute("class","contactPane"),async function(){c.aclControl.preventBrowserDropEvents(r);const o=i.findTypeURIs(e);if(o[Nt.vcard("Individual").uri]||o[Nt.foaf("Person").uri]||o[Nt.schema("Person").uri]||o[Nt.vcard("Organization").uri]||o[Nt.schema("Organization").uri])bt(r,a,e,t).then(()=>{}).catch(()=>{throw new Error("Failed to render contact.")});else{if(!o[Nt.vcard("AddressBook").uri])throw new Error("This does not seem to be a contact or address book.");!function(e,o){i.fetcher.load(e).then(function(u){!function(e,o){const u=Lt.label(Nt.vcard("AddressBook"));let d=o.foreignGroup,p="";e&&e.length>0?(d=e[0],p=Lt.label(d.dir())):(i.any(d,Nt.dc("title"))||i.any(d,Nt.vcard("fn")),n.solo&&p&&"undefined"!=typeof document&&(document.title=p.value),p=p?p.value:u);const f=i.any(d,Nt.vcard("groupIndex")),h={};let m={},g=null,v=null;const b=[];function y(e){b.forEach(e=>{e.classList.remove("btn-primary"),e.classList.add("btn-secondary")}),e&&(e.classList.remove("btn-secondary"),e.classList.add("btn-primary"))}const w={dom:r,kb:i,ns:Nt,book:d,options:o,title:p,groupIndex:f,selectedGroups:h,get selectedPeople(){return m},set selectedPeople(e){m=e},get allGroupsLi(){return g},set allGroupsLi(e){g=e},get newGroupLi(){return v},set newGroupLi(e){v=e},actionButtons:b,setActiveActionButton:y,dataBrowserContext:t,div:a,me:l,setMe(e){l=e},paneOptions:n},{main:x,addressBookSection:A,detailsSection:E}=function(e){const{dom:t}=e,n=t.createElement("main");n.id="main-content",n.classList.add("addressBook-grid"),n.setAttribute("role","main"),n.setAttribute("aria-label","Address Book"),n.setAttribute("tabindex","-1");const r=t.createElement("section");r.setAttribute("aria-labelledby","addressBook-section"),r.classList.add("addressBookSection","section-bg"),r.setAttribute("role","region"),r.setAttribute("tabindex","-1"),n.appendChild(r);const i=t.createElement("section");return i.classList.add("detailSection"),i.setAttribute("role","region"),i.setAttribute("aria-label","Details section"),i.classList.add("hidden"),n.appendChild(i),{main:n,addressBookSection:r,detailsSection:i}}(w);function C(){E.classList.remove("hidden")}a.appendChild(x),w.showDetailsSection=C,w.detailsSection=E;const k=r.createElement("ul");k.setAttribute("role","list"),k.setAttribute("aria-label","People list"),w.ulPeople=k,w.dataBrowserContext&&(w.dataBrowserContext.ulPeople=k);const _=r.createElement("div");_.classList.add("detailsSectionContent"),_.setAttribute("role","region"),_.setAttribute("aria-labelledby","detailsSectionContent"),_.setAttribute("aria-live","polite"),w.detailsSectionContent=_;const S=function(e){const{dom:t,ns:n,title:r,me:i,setMe:a,setActiveActionButton:o}=e,c=t.createElement("section");c.classList.add("headerSection");const l=t.createElement("header");l.classList.add("mb-md");const u=t.createElement("h2");u.id="addressBook-heading",u.setAttribute("tabindex","-1"),u.textContent=r;const d=t.createElement("button"),p=t.createElement("div");d.setAttribute("type","button"),i||d.setAttribute("disabled","true"),s.authn.checkUser().then(e=>{e&&(a(e),d.removeAttribute("disabled"))}),p.appendChild(d),d.innerHTML="+ New contact",d.classList.add("actionButton","btn-primary","action-button-focus");let f=0;return d.addEventListener("click",async function(r){o(null),Ze(e.ulPeople);const i=++f;if(e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.remove("detailsSectionContent--wide"),await rt(),i!==f)return;e.detailsSectionContent.innerHTML="";const a=t.createElement("div");a.classList.add("contactTypeChooser");const s=t.createElement("label");s.textContent="Contact type: ",s.setAttribute("for","contactTypeSelect"),a.appendChild(s);const c=t.createElement("select");c.id="contactTypeSelect",c.classList.add("contactTypeSelect");const l=t.createElement("option");l.value="Individual",l.textContent="New person",c.appendChild(l);const u=t.createElement("option");u.value="Organization",u.textContent="New organization",c.appendChild(u),a.appendChild(c),e.detailsSectionContent.appendChild(a);const d=t.createElement("p");d.classList.add("contactCreationRemark"),d.textContent="The new contact is added to the already selected group.",e.detailsSectionContent.appendChild(d);const p=t.createElement("div");function h(){return"Organization"===c.value?n.vcard("Organization"):n.vcard("Individual")}p.classList.add("contactFormContainer"),e.detailsSectionContent.appendChild(p),jt(e,p,h()),c.addEventListener("change",function(){jt(e,p,h())})},!1),l.appendChild(u),l.appendChild(p),c.appendChild(l),c}(w);A.appendChild(S);const T=r.createElement("hr");T.classList.add("dottedHr"),A.appendChild(T);const{searchSection:P,searchInput:F}=function(e){const{dom:t}=e,n=t.createElement("section");n.classList.add("searchSection");const r=t.createElement("div");r.classList.add("searchDiv"),n.appendChild(r);const i=t.createElement("input");i.setAttribute("type","text"),i.setAttribute("aria-label","Search contacts"),i.classList.add("searchInput"),i.setAttribute("placeholder","Search by name in selected group"),r.appendChild(i);const a=t.createElement("button");return a.setAttribute("type","button"),a.setAttribute("aria-label","Clear search"),a.classList.add("searchClearButton","hidden"),a.textContent="✕",r.appendChild(a),i.addEventListener("input",function(t){const n=i.value.length>0;a.classList.toggle("hidden",!n),et(e.ulPeople,!0,e.detailsSectionContent)}),a.addEventListener("click",function(){i.value="",a.classList.add("hidden"),i.focus(),et(e.ulPeople,!0,e.detailsSectionContent)}),{searchSection:n,searchInput:i}}(w);w.searchInput=F,A.appendChild(P);const{buttonSection:R,ulGroups:I}=function(e){const{dom:t,kb:n,book:r,options:i,groupIndex:a,selectedGroups:o,actionButtons:s,setActiveActionButton:c}=e,l=t.createElement("section");l.classList.add("buttonSection");const u=t.createElement("ul");if(u.classList.add("groupButtonsList"),u.setAttribute("role","list"),u.setAttribute("aria-label","Groups list"),i.foreignGroup&&(o[i.foreignGroup.uri]=!0),r){e.allGroupsLi=t.createElement("li");const d=t.createElement("button");d.textContent="All groups",d.classList.add("allGroupsButton","actionButton","btn-primary","action-button-focus","allGroupsButton--selected"),d.addEventListener("click",function(t){if(ze(u,d),c(null),Array.from(u.children).every(function(e){return!e.subject||!!o[e.subject.uri]})){d.classList.remove("allGroupsButton--loading","allGroupsButton--active"),d.setAttribute("aria-busy","false"),d.classList.add("allGroupsButton--loaded");for(const e in o)delete o[e];Ge(u,o)}else d.classList.add("allGroupsButton--loading"),d.setAttribute("aria-busy","true"),Ve(o,u,function(t,n){if(!t)return Q("Failed to select all groups. If it persists, contact admin.");d.classList.remove("allGroupsButton--loading"),d.setAttribute("aria-busy","false"),d.classList.add("allGroupsButton--active"),Ge(u,o),Qe(e.ulPeople,null)})}),e.allGroupsLi.appendChild(d),u.appendChild(e.allGroupsLi),e.newGroupLi=t.createElement("li");const p=t.createElement("button");p.setAttribute("type","button"),p.innerHTML="+ New group",p.classList.add("allGroupsButton","actionButton","btn-secondary","action-button-focus"),s.push(p),p.addEventListener("click",function(t){ze(u,p),c(null),Ze(e.ulPeople),Ot(e)},!1),e.newGroupLi.appendChild(p),l.appendChild(u),a&&n.fetcher.nowOrWhenFetched(a.uri,r,function(n,a){n?(e.allGroupsLi.parentNode&&e.allGroupsLi.parentNode.removeChild(e.allGroupsLi),e.newGroupLi.parentNode&&e.newGroupLi.parentNode.removeChild(e.newGroupLi),Ke(r,i,u,t,o,e.ulPeople,e.searchInput),u.insertBefore(e.allGroupsLi,u.firstChild),u.appendChild(e.newGroupLi),d.classList.add("allGroupsButton--loading"),d.setAttribute("aria-busy","true"),Ve(o,u,function(t,n){if(!t)return Q("Failed to select all groups. If it persists, contact admin.");d.classList.remove("allGroupsButton--loading"),d.setAttribute("aria-busy","false"),d.classList.add("allGroupsButton--active"),Ge(u,o),Qe(e.ulPeople,null)})):Q("Error loading group index. If it persists, contact admin.")}),e.allGroupsLi.parentNode&&e.allGroupsLi.parentNode.removeChild(e.allGroupsLi),e.newGroupLi.parentNode&&e.newGroupLi.parentNode.removeChild(e.newGroupLi),He(r,u,i,t,o,e.ulPeople,e.searchInput,e.detailsSectionContent,e.dataBrowserContext,function(){c(null),e.detailsSectionContent.querySelector(".contactTypeChooser, .contactFormContainer, .renderPane")||(e.detailsSectionContent.innerHTML="",e.detailsSection.classList.add("hidden"))}),u.insertBefore(e.allGroupsLi,u.firstChild),u.appendChild(e.newGroupLi)}else Ke(r,i,u,t,o,e.ulPeople,e.searchInput),Qe(e.ulPeople,null);return{buttonSection:l,ulGroups:u}}(w);w.ulGroups=I,A.appendChild(R);const N=r.createElement("section");N.classList.add("peopleSection"),A.appendChild(N),N.appendChild(k),E.appendChild(_);const L=function(e){const{dom:t,kb:n,ns:r,book:i,options:a,selectedGroups:o,actionButtons:s,setActiveActionButton:l,dataBrowserContext:u,div:d,me:p}=e,f=t.createElement("div");if(f.classList.add("cardFooter"),i){const h=f.appendChild(t.createElement("button"));h.setAttribute("type","button"),h.innerHTML="Groups",h.classList.add("actionButton","btn-secondary","action-button-focus"),s.push(h),h.addEventListener("click",async function(s){l(h),Ze(e.ulPeople),e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.remove("detailsSectionContent--wide");const u=t.createElement("h3");u.textContent="Your groups",e.detailsSectionContent.appendChild(u);let d,f=t.createElement("p");f.textContent="When you delete a group it can happen that some contacts end up groupless.",e.detailsSectionContent.appendChild(f),f=t.createElement("p"),f.textContent="To move contacts around, simply drag and drop them onto a group.",e.detailsSectionContent.appendChild(f);try{d=await Ye(i)}catch(n){return void e.detailsSectionContent.appendChild(t.createTextNode("Failed to load groups: "+n))}const m=t.createElement("ul");m.setAttribute("role","list"),m.setAttribute("aria-label","All groups"),m.classList.add("groupButtonsList"),d&&(d.sort((e,t)=>{const i=(n.any(e,r.vcard("fn"))||"").toString().toLowerCase(),a=(n.any(t,r.vcard("fn"))||"").toString().toLowerCase();return i<a?-1:i>a?1:0}),d.forEach(function(r){const{groupLi:s,groupButton:l,name:u}=qe(r);l.addEventListener("click",function(t){if(t.preventDefault(),!t.metaKey)for(const e in o)delete o[e];o[r.uri]=!o[r.uri],Ge(e.ulGroups,o);const i=Array.from(e.ulGroups.children).find(e=>e.subject&&e.subject.uri===r.uri);ze(e.ulGroups,i?i.querySelector("button"):null),n.fetcher.nowOrWhenFetched(r.doc(),void 0,function(t,n){if(!t)return Q("Failed to load group details. If it persists, contact your admin.");Qe(e.ulPeople,null,!1)})},!1),c.widgets.makeDropTarget(s,e=>$e(e,r)),p&&c.widgets.deleteButtonWithCheck(t,s,"group "+u,async function(){await re(r),delete o[r.uri];const n=e.allGroupsLi,s=e.newGroupLi;n.parentNode&&n.parentNode.removeChild(n),s.parentNode&&s.parentNode.removeChild(s),Ke(i,a,e.ulGroups,t,o,e.ulPeople,e.searchInput),e.ulGroups.insertBefore(n,e.ulGroups.firstChild),e.ulGroups.appendChild(s),Ge(e.ulGroups,o),Qe(e.ulPeople,null,!1),h.click()}),m.appendChild(s)})),e.detailsSectionContent.appendChild(m);const g=t.createElement("button");g.setAttribute("type","button"),g.innerHTML="+ New group",g.classList.add("actionButton","btn-primary","action-button-focus","newGroupBtn"),g.addEventListener("click",function(){Ot(e)},!1),e.detailsSectionContent.appendChild(g)});const m=f.appendChild(t.createElement("button"));m.setAttribute("type","button"),m.innerHTML="Sharing",m.classList.add("actionButton","btn-secondary","action-button-focus"),s.push(m),m.addEventListener("click",function(a){l(m),Ze(e.ulPeople),e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.remove("detailsSectionContent--wide");const o=t.createElement("h3");o.textContent="Sharing",e.detailsSectionContent.appendChild(o),e.detailsSectionContent.appendChild(c.aclControl.ACLControlBox5(i.dir(),u,"book",n,function(n,r){n||ee(e.detailsSectionContent,t,"Problem displaying sharing controls. If persists, contact admin.")}));const s={target:i,me:p,noun:"address book",div:e.detailsSectionContent,dom:t,statusRegion:d};c.login.registrationControl(s,i,r.vcard("AddressBook")).then(()=>{}).catch(n=>{ee(e.detailsSectionContent,t,"Problem displaying findable controls. If persists, contact admin.")})});const g=f.appendChild(t.createElement("button"));g.setAttribute("type","button"),g.innerHTML="Tools",g.classList.add("actionButton","btn-secondary","action-button-focus"),s.push(g),g.addEventListener("click",function(n){l(g),Ze(e.ulPeople),e.showDetailsSection(),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.add("detailsSectionContent--wide"),e.detailsSectionContent.appendChild(Tt(Ve,o,e.ulGroups,i,u,0,function(){e.allGroupsLi.parentNode&&e.allGroupsLi.parentNode.removeChild(e.allGroupsLi),e.newGroupLi.parentNode&&e.newGroupLi.parentNode.removeChild(e.newGroupLi),Ke(i,a,e.ulGroups,t,o,e.ulPeople,e.searchInput),e.ulGroups.insertBefore(e.allGroupsLi,e.ulGroups.firstChild),e.ulGroups.appendChild(e.newGroupLi),Ge(e.ulGroups,o)}))})}return f}(w);A.appendChild(L),nt(d,_).then(()=>{})}(e,o)}).catch(function(e){throw new Error("Failed to load address book.")})}([e],{})}let l=s.authn.currentUser();if("undefined"!=typeof document&&document.location&&"http://localhost"===(""+document.location).slice(0,16)){const t=i.any(e,c.ns.acl("owner"));t&&(l=t)}return a}().then(()=>{},e=>ee(a,r,e.message||""+e)),a}};async function Ot(e){const{dom:t,kb:n,ns:r,book:i,options:a,selectedGroups:o,dataBrowserContext:s}=e;e.showDetailsSection(),e.detailsSectionContent.innerHTML="";const l=n.any(i,r.vcard("groupIndex"));try{await n.fetcher.load(l)}catch(e){}const u=await c.widgets.askName(t,n,e.detailsSectionContent,c.ns.foaf("name"),r.vcard("Group"),"group");if(!u)return;let d;try{d=await de(i,u)}catch(t){return void(e.detailsSectionContent.innerHTML="Failed to save group"+t)}for(const e in o)delete o[e];o[d.uri]=!0;const p=e.allGroupsLi,f=e.newGroupLi;p.parentNode&&p.parentNode.removeChild(p),f.parentNode&&f.parentNode.removeChild(f),Ke(i,a,e.ulGroups,t,o,e.ulPeople,e.searchInput),e.ulGroups.insertBefore(p,e.ulGroups.firstChild),e.ulGroups.appendChild(f),Ge(e.ulGroups,o);const h=Array.from(e.ulGroups.children).find(e=>e.subject&&e.subject.uri===d.uri);ze(e.ulGroups,h?h.querySelector("button"):null),Qe(e.ulPeople,null,!1),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.appendChild(c.aclControl.ACLControlBox5(d.doc(),s,"group",n,function(t,n){t||(e.detailsSectionContent.innerHTML="Group sharing setup failed: "+n)}))}function jt(e,t,n){const{dom:r,kb:i,book:a,selectedGroups:o,dataBrowserContext:s}=e;t.innerHTML="",c.widgets.askName(r,i,t,c.ns.foaf("name"),n).then(async t=>{if(!t)return;let r;e.detailsSectionContent.innerHTML="Indexing...";try{r=await async function(e,t,n,r){await ce.fetcher.load(e.doc());const i=ce.any(e,oe.vcard("nameEmailIndex")),a=se.genUuid(),o=ce.sym(e.dir().uri+"Person/"+a+"/index.ttl#this"),s=o.doc(),c=[l.st(o,oe.vcard("inAddressBook"),e,i),l.st(o,oe.vcard("fn"),t,i),l.st(o,oe.vcard("fn"),t,s),l.st(o,oe.rdf("type"),r,s),l.st(s,oe.dct("created"),new Date,s)],u=Array.isArray(n)?n:Object.keys(n||{});if(u.length>0){for(const e of u){const n=ce.sym(e),r=n.doc();c.push(l.st(n,oe.vcard("hasMember"),o,r),l.st(o,oe.vcard("fn"),t,r))}try{await le.updateMany([],c)}catch(e){throw new Error("Save new contact")}return o}Q("Must be a member of at least one group. Please select or create a group.")}(a,t,o,n)}catch(e){return void Q("Error saving contact. If it persists, contact your admin.")}if(!r)return void(e.detailsSectionContent.innerHTML="");e.selectedPeople={},e.selectedPeople[r.uri]=!0,Qe(e.ulPeople,null),e.detailsSectionContent.innerHTML="",e.detailsSectionContent.classList.add("detailsSectionContent--wide");const i=s.session.paneRegistry.byName("contact").render(r,s);i.classList.add("renderPane"),e.detailsSectionContent.appendChild(i)})}return o=o.default})(),e.exports=r(n(9332),n(500),n(8230))},4945(e,t,n){var r="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==n.g&&n.g,i=function(){function e(){this.fetch=!1,this.DOMException=r.DOMException}return e.prototype=r,new e}();!function(e){!function(t){var r=void 0!==e&&e||"undefined"!=typeof self&&self||void 0!==n.g&&n.g||{},i="URLSearchParams"in r,a="Symbol"in r&&"iterator"in Symbol,o="FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch(e){return!1}}(),s="FormData"in r,c="ArrayBuffer"in r;if(c)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(e){return e&&l.indexOf(Object.prototype.toString.call(e))>-1};function d(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||""===e)throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function p(e){return"string"!=typeof e&&(e=String(e)),e}function f(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return a&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){if(2!=e.length)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+e.length);this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function m(e){if(!e._noBody)return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function g(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function v(e){var t=new FileReader,n=g(t);return t.readAsArrayBuffer(e),n}function b(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(e){var t;this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:o&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:s&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:i&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():c&&o&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=b(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c&&(ArrayBuffer.prototype.isPrototypeOf(e)||u(e))?this._bodyArrayBuffer=b(e):this._bodyText=e=Object.prototype.toString.call(e):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):i&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var e=m(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=m(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}if(o)return this.blob().then(v);throw new Error("could not read as ArrayBuffer")},this.text=function(){var e,t,n,r,i,a=m(this);if(a)return a;if(this._bodyBlob)return e=this._bodyBlob,t=new FileReader,n=g(t),r=/charset=([A-Za-z0-9_-]+)/.exec(e.type),i=r?r[1]:"utf-8",t.readAsText(e,i),n;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},s&&(this.formData=function(){return this.text().then(A)}),this.json=function(){return this.text().then(JSON.parse)},this}h.prototype.append=function(e,t){e=d(e),t=p(t);var n=this.map[e];this.map[e]=n?n+", "+t:t},h.prototype.delete=function(e){delete this.map[d(e)]},h.prototype.get=function(e){return e=d(e),this.has(e)?this.map[e]:null},h.prototype.has=function(e){return this.map.hasOwnProperty(d(e))},h.prototype.set=function(e,t){this.map[d(e)]=p(t)},h.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},h.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),f(e)},h.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),f(e)},h.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),f(e)},a&&(h.prototype[Symbol.iterator]=h.prototype.entries);var w=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function x(e,t){if(!(this instanceof x))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');var n,i,a=(t=t||{}).body;if(e instanceof x){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new h(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,a||null==e._bodyInit||(a=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new h(t.headers)),this.method=(n=t.method||this.method||"GET",i=n.toUpperCase(),w.indexOf(i)>-1?i:n),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal||function(){if("AbortController"in r)return(new AbortController).signal}(),this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&a)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(a),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==t.cache&&"no-cache"!==t.cache)){var o=/([?&])_=[^&]*/;if(o.test(this.url))this.url=this.url.replace(o,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function A(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function E(e,t){if(!(this instanceof E))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=void 0===t.statusText?"":""+t.statusText,this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}x.prototype.clone=function(){return new x(this,{body:this._bodyInit})},y.call(x.prototype),y.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},E.error=function(){var e=new E(null,{status:200,statusText:""});return e.ok=!1,e.status=0,e.type="error",e};var C=[301,302,303,307,308];E.redirect=function(e,t){if(-1===C.indexOf(t))throw new RangeError("Invalid status code");return new E(null,{status:t,headers:{location:e}})},t.DOMException=r.DOMException;try{new t.DOMException}catch(e){t.DOMException=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function k(e,n){return new Promise(function(i,a){var s=new x(e,n);if(s.signal&&s.signal.aborted)return a(new t.DOMException("Aborted","AbortError"));var l=new XMLHttpRequest;function u(){l.abort()}if(l.onload=function(){var e,t,n={statusText:l.statusText,headers:(e=l.getAllResponseHeaders()||"",t=new h,e.replace(/\r?\n[\t ]+/g," ").split("\r").map(function(e){return 0===e.indexOf("\n")?e.substr(1,e.length):e}).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();try{t.append(r,i)}catch(e){}}}),t)};0===s.url.indexOf("file://")&&(l.status<200||l.status>599)?n.status=200:n.status=l.status,n.url="responseURL"in l?l.responseURL:n.headers.get("X-Request-URL");var r="response"in l?l.response:l.responseText;setTimeout(function(){i(new E(r,n))},0)},l.onerror=function(){setTimeout(function(){a(new TypeError("Network request failed"))},0)},l.ontimeout=function(){setTimeout(function(){a(new TypeError("Network request timed out"))},0)},l.onabort=function(){setTimeout(function(){a(new t.DOMException("Aborted","AbortError"))},0)},l.open(s.method,function(e){try{return""===e&&r.location.href?r.location.href:e}catch(t){return e}}(s.url),!0),"include"===s.credentials?l.withCredentials=!0:"omit"===s.credentials&&(l.withCredentials=!1),"responseType"in l&&(o?l.responseType="blob":c&&(l.responseType="arraybuffer")),n&&"object"==typeof n.headers&&!(n.headers instanceof h||r.Headers&&n.headers instanceof r.Headers)){var f=[];Object.getOwnPropertyNames(n.headers).forEach(function(e){f.push(d(e)),l.setRequestHeader(e,p(n.headers[e]))}),s.headers.forEach(function(e,t){-1===f.indexOf(t)&&l.setRequestHeader(t,e)})}else s.headers.forEach(function(e,t){l.setRequestHeader(t,e)});s.signal&&(s.signal.addEventListener("abort",u),l.onreadystatechange=function(){4===l.readyState&&s.signal.removeEventListener("abort",u)}),l.send(void 0===s._bodyInit?null:s._bodyInit)})}k.polyfill=!0,r.fetch||(r.fetch=k,r.Headers=h,r.Request=x,r.Response=E),t.Headers=h,t.Request=x,t.Response=E,t.fetch=k}({})}(i),i.fetch.ponyfill=!0,delete i.fetch.polyfill;var a=r.fetch?r:i;(t=a.fetch).default=a.fetch,t.fetch=a.fetch,t.Headers=a.Headers,t.Request=a.Request,t.Response=a.Response,e.exports=t},6320(e){"use strict";var t={single_source_shortest_paths:function(e,n,r){var i={},a={};a[n]=0;var o,s,c,l,u,d,p,f=t.PriorityQueue.make();for(f.push(n,0);!f.empty();)for(c in s=(o=f.pop()).value,l=o.cost,u=e[s]||{})u.hasOwnProperty(c)&&(d=l+u[c],p=a[c],(void 0===a[c]||p>d)&&(a[c]=d,f.push(c,d),i[c]=s));if(void 0!==r&&void 0===a[r]){var h=["Could not find a path from ",n," to ",r,"."].join("");throw new Error(h)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,n,r){var i=t.single_source_shortest_paths(e,n,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var n,r=t.PriorityQueue,i={};for(n in e=e||{},r)r.hasOwnProperty(n)&&(i[n]=r[n]);return i.queue=[],i.sorter=e.sorter||r.default_sorter,i},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};e.exports=t},5454(e){"use strict";
15
15
  /*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */const{entries:t,setPrototypeOf:n,isFrozen:r,getPrototypeOf:i,getOwnPropertyDescriptor:a}=Object;let{freeze:o,seal:s,create:c}=Object,{apply:l,construct:u}="undefined"!=typeof Reflect&&Reflect;o||(o=function(e){return e}),s||(s=function(e){return e}),l||(l=function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(t,r)}),u||(u=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new e(...n)});const d=_(Array.prototype.forEach),p=_(Array.prototype.lastIndexOf),f=_(Array.prototype.pop),h=_(Array.prototype.push),m=_(Array.prototype.splice),g=_(String.prototype.toLowerCase),v=_(String.prototype.toString),b=_(String.prototype.match),y=_(String.prototype.replace),w=_(String.prototype.indexOf),x=_(String.prototype.trim),A=_(Object.prototype.hasOwnProperty),E=_(RegExp.prototype.test),C=(k=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return u(k,t)});var k;function _(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return l(e,t,r)}}function S(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g;n&&n(e,null);let a=t.length;for(;a--;){let n=t[a];if("string"==typeof n){const e=i(n);e!==n&&(r(t)||(t[a]=e),n=e)}e[n]=!0}return e}function T(e){for(let t=0;t<e.length;t++){A(e,t)||(e[t]=null)}return e}function P(e){const n=c(null);for(const[r,i]of t(e)){A(e,r)&&(Array.isArray(i)?n[r]=T(i):i&&"object"==typeof i&&i.constructor===Object?n[r]=P(i):n[r]=i)}return n}function F(e,t){for(;null!==e;){const n=a(e,t);if(n){if(n.get)return _(n.get);if("function"==typeof n.value)return _(n.value)}e=i(e)}return function(){return null}}const R=o(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),I=o(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),N=o(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),L=o(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),B=o(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),O=o(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),j=o(["#text"]),D=o(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),M=o(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),U=o(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),z=o(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),H=s(/\{\{[\w\W]*|[\w\W]*\}\}/gm),q=s(/<%[\w\W]*|[\w\W]*%>/gm),$=s(/\$\{[\w\W]*/gm),W=s(/^data-[\-\w.\u00B7-\uFFFF]+$/),V=s(/^aria-[\-\w]+$/),G=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),K=s(/^(?:\w+script|data):/i),J=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Y=s(/^html$/i),Q=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var X=Object.freeze({__proto__:null,ARIA_ATTR:V,ATTR_WHITESPACE:J,CUSTOM_ELEMENT:Q,DATA_ATTR:W,DOCTYPE_NAME:Y,ERB_EXPR:q,IS_ALLOWED_URI:G,IS_SCRIPT_OR_DATA:K,MUSTACHE_EXPR:H,TMPLIT_EXPR:$});const Z=1,ee=3,te=7,ne=8,re=9,ie=function(){return"undefined"==typeof window?null:window};var ae=function e(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ie();const r=t=>e(t);if(r.version="3.3.1",r.removed=[],!n||!n.document||n.document.nodeType!==re||!n.Element)return r.isSupported=!1,r;let{document:i}=n;const a=i,s=a.currentScript,{DocumentFragment:l,HTMLTemplateElement:u,Node:k,Element:_,NodeFilter:T,NamedNodeMap:H=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:q,DOMParser:$,trustedTypes:W}=n,V=_.prototype,K=F(V,"cloneNode"),J=F(V,"remove"),Q=F(V,"nextSibling"),ae=F(V,"childNodes"),oe=F(V,"parentNode");if("function"==typeof u){const e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let se,ce="";const{implementation:le,createNodeIterator:ue,createDocumentFragment:de,getElementsByTagName:pe}=i,{importNode:fe}=a;let he={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};r.isSupported="function"==typeof t&&"function"==typeof oe&&le&&void 0!==le.createHTMLDocument;const{MUSTACHE_EXPR:me,ERB_EXPR:ge,TMPLIT_EXPR:ve,DATA_ATTR:be,ARIA_ATTR:ye,IS_SCRIPT_OR_DATA:we,ATTR_WHITESPACE:xe,CUSTOM_ELEMENT:Ae}=X;let{IS_ALLOWED_URI:Ee}=X,Ce=null;const ke=S({},[...R,...I,...N,...B,...j]);let _e=null;const Se=S({},[...D,...M,...U,...z]);let Te=Object.seal(c(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Pe=null,Fe=null;const Re=Object.seal(c(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Ie=!0,Ne=!0,Le=!1,Be=!0,Oe=!1,je=!0,De=!1,Me=!1,Ue=!1,ze=!1,He=!1,qe=!1,$e=!0,We=!1,Ve=!0,Ge=!1,Ke={},Je=null;const Ye=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Qe=null;const Xe=S({},["audio","video","img","source","image","track"]);let Ze=null;const et=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),tt="http://www.w3.org/1998/Math/MathML",nt="http://www.w3.org/2000/svg",rt="http://www.w3.org/1999/xhtml";let it=rt,at=!1,ot=null;const st=S({},[tt,nt,rt],v);let ct=S({},["mi","mo","mn","ms","mtext"]),lt=S({},["annotation-xml"]);const ut=S({},["title","style","font","a","script"]);let dt=null;const pt=["application/xhtml+xml","text/html"];let ft=null,ht=null;const mt=i.createElement("form"),gt=function(e){return e instanceof RegExp||e instanceof Function},vt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ht||ht!==e){if(e&&"object"==typeof e||(e={}),e=P(e),dt=-1===pt.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,ft="application/xhtml+xml"===dt?v:g,Ce=A(e,"ALLOWED_TAGS")?S({},e.ALLOWED_TAGS,ft):ke,_e=A(e,"ALLOWED_ATTR")?S({},e.ALLOWED_ATTR,ft):Se,ot=A(e,"ALLOWED_NAMESPACES")?S({},e.ALLOWED_NAMESPACES,v):st,Ze=A(e,"ADD_URI_SAFE_ATTR")?S(P(et),e.ADD_URI_SAFE_ATTR,ft):et,Qe=A(e,"ADD_DATA_URI_TAGS")?S(P(Xe),e.ADD_DATA_URI_TAGS,ft):Xe,Je=A(e,"FORBID_CONTENTS")?S({},e.FORBID_CONTENTS,ft):Ye,Pe=A(e,"FORBID_TAGS")?S({},e.FORBID_TAGS,ft):P({}),Fe=A(e,"FORBID_ATTR")?S({},e.FORBID_ATTR,ft):P({}),Ke=!!A(e,"USE_PROFILES")&&e.USE_PROFILES,Ie=!1!==e.ALLOW_ARIA_ATTR,Ne=!1!==e.ALLOW_DATA_ATTR,Le=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Be=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Oe=e.SAFE_FOR_TEMPLATES||!1,je=!1!==e.SAFE_FOR_XML,De=e.WHOLE_DOCUMENT||!1,ze=e.RETURN_DOM||!1,He=e.RETURN_DOM_FRAGMENT||!1,qe=e.RETURN_TRUSTED_TYPE||!1,Ue=e.FORCE_BODY||!1,$e=!1!==e.SANITIZE_DOM,We=e.SANITIZE_NAMED_PROPS||!1,Ve=!1!==e.KEEP_CONTENT,Ge=e.IN_PLACE||!1,Ee=e.ALLOWED_URI_REGEXP||G,it=e.NAMESPACE||rt,ct=e.MATHML_TEXT_INTEGRATION_POINTS||ct,lt=e.HTML_INTEGRATION_POINTS||lt,Te=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&gt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Te.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&gt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Te.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Te.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Oe&&(Ne=!1),He&&(ze=!0),Ke&&(Ce=S({},j),_e=[],!0===Ke.html&&(S(Ce,R),S(_e,D)),!0===Ke.svg&&(S(Ce,I),S(_e,M),S(_e,z)),!0===Ke.svgFilters&&(S(Ce,N),S(_e,M),S(_e,z)),!0===Ke.mathMl&&(S(Ce,B),S(_e,U),S(_e,z))),e.ADD_TAGS&&("function"==typeof e.ADD_TAGS?Re.tagCheck=e.ADD_TAGS:(Ce===ke&&(Ce=P(Ce)),S(Ce,e.ADD_TAGS,ft))),e.ADD_ATTR&&("function"==typeof e.ADD_ATTR?Re.attributeCheck=e.ADD_ATTR:(_e===Se&&(_e=P(_e)),S(_e,e.ADD_ATTR,ft))),e.ADD_URI_SAFE_ATTR&&S(Ze,e.ADD_URI_SAFE_ATTR,ft),e.FORBID_CONTENTS&&(Je===Ye&&(Je=P(Je)),S(Je,e.FORBID_CONTENTS,ft)),e.ADD_FORBID_CONTENTS&&(Je===Ye&&(Je=P(Je)),S(Je,e.ADD_FORBID_CONTENTS,ft)),Ve&&(Ce["#text"]=!0),De&&S(Ce,["html","head","body"]),Ce.table&&(S(Ce,["tbody"]),delete Pe.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw C('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw C('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');se=e.TRUSTED_TYPES_POLICY,ce=se.createHTML("")}else void 0===se&&(se=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(n=t.getAttribute(r));const i="dompurify"+(n?"#"+n:"");try{return e.createPolicy(i,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return null}}(W,s)),null!==se&&"string"==typeof ce&&(ce=se.createHTML(""));o&&o(e),ht=e}},bt=S({},[...I,...N,...L]),yt=S({},[...B,...O]),wt=function(e){h(r.removed,{element:e});try{oe(e).removeChild(e)}catch(t){J(e)}},xt=function(e,t){try{h(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){h(r.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(ze||He)try{wt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},At=function(e){let t=null,n=null;if(Ue)e="<remove></remove>"+e;else{const t=b(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===dt&&it===rt&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const r=se?se.createHTML(e):e;if(it===rt)try{t=(new $).parseFromString(r,dt)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(it,"template",null);try{t.documentElement.innerHTML=at?ce:r}catch(e){}}const a=t.body||t.documentElement;return e&&n&&a.insertBefore(i.createTextNode(n),a.childNodes[0]||null),it===rt?pe.call(t,De?"html":"body")[0]:De?t.documentElement:a},Et=function(e){return ue.call(e.ownerDocument||e,e,T.SHOW_ELEMENT|T.SHOW_COMMENT|T.SHOW_TEXT|T.SHOW_PROCESSING_INSTRUCTION|T.SHOW_CDATA_SECTION,null)},Ct=function(e){return e instanceof q&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof H)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},kt=function(e){return"function"==typeof k&&e instanceof k};function _t(e,t,n){d(e,e=>{e.call(r,t,n,ht)})}const St=function(e){let t=null;if(_t(he.beforeSanitizeElements,e,null),Ct(e))return wt(e),!0;const n=ft(e.nodeName);if(_t(he.uponSanitizeElement,e,{tagName:n,allowedTags:Ce}),je&&e.hasChildNodes()&&!kt(e.firstElementChild)&&E(/<[/\w!]/g,e.innerHTML)&&E(/<[/\w!]/g,e.textContent))return wt(e),!0;if(e.nodeType===te)return wt(e),!0;if(je&&e.nodeType===ne&&E(/<[/\w]/g,e.data))return wt(e),!0;if(!(Re.tagCheck instanceof Function&&Re.tagCheck(n))&&(!Ce[n]||Pe[n])){if(!Pe[n]&&Pt(n)){if(Te.tagNameCheck instanceof RegExp&&E(Te.tagNameCheck,n))return!1;if(Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))return!1}if(Ve&&!Je[n]){const t=oe(e)||e.parentNode,n=ae(e)||e.childNodes;if(n&&t){for(let r=n.length-1;r>=0;--r){const i=K(n[r],!0);i.__removalCount=(e.__removalCount||0)+1,t.insertBefore(i,Q(e))}}}return wt(e),!0}return e instanceof _&&!function(e){let t=oe(e);t&&t.tagName||(t={namespaceURI:it,tagName:"template"});const n=g(e.tagName),r=g(t.tagName);return!!ot[e.namespaceURI]&&(e.namespaceURI===nt?t.namespaceURI===rt?"svg"===n:t.namespaceURI===tt?"svg"===n&&("annotation-xml"===r||ct[r]):Boolean(bt[n]):e.namespaceURI===tt?t.namespaceURI===rt?"math"===n:t.namespaceURI===nt?"math"===n&&lt[r]:Boolean(yt[n]):e.namespaceURI===rt?!(t.namespaceURI===nt&&!lt[r])&&!(t.namespaceURI===tt&&!ct[r])&&!yt[n]&&(ut[n]||!bt[n]):!("application/xhtml+xml"!==dt||!ot[e.namespaceURI]))}(e)?(wt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!E(/<\/no(script|embed|frames)/i,e.innerHTML)?(Oe&&e.nodeType===ee&&(t=e.textContent,d([me,ge,ve],e=>{t=y(t,e," ")}),e.textContent!==t&&(h(r.removed,{element:e.cloneNode()}),e.textContent=t)),_t(he.afterSanitizeElements,e,null),!1):(wt(e),!0)},Tt=function(e,t,n){if($e&&("id"===t||"name"===t)&&(n in i||n in mt))return!1;if(Ne&&!Fe[t]&&E(be,t));else if(Ie&&E(ye,t));else if(Re.attributeCheck instanceof Function&&Re.attributeCheck(t,e));else if(!_e[t]||Fe[t]){if(!(Pt(e)&&(Te.tagNameCheck instanceof RegExp&&E(Te.tagNameCheck,e)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(e))&&(Te.attributeNameCheck instanceof RegExp&&E(Te.attributeNameCheck,t)||Te.attributeNameCheck instanceof Function&&Te.attributeNameCheck(t,e))||"is"===t&&Te.allowCustomizedBuiltInElements&&(Te.tagNameCheck instanceof RegExp&&E(Te.tagNameCheck,n)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))))return!1}else if(Ze[t]);else if(E(Ee,y(n,xe,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==w(n,"data:")||!Qe[e]){if(Le&&!E(we,y(n,xe,"")));else if(n)return!1}else;return!0},Pt=function(e){return"annotation-xml"!==e&&b(e,Ae)},Ft=function(e){_t(he.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||Ct(e))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:_e,forceKeepAttr:void 0};let i=t.length;for(;i--;){const a=t[i],{name:o,namespaceURI:s,value:c}=a,l=ft(o),u=c;let p="value"===o?u:x(u);if(n.attrName=l,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,_t(he.uponSanitizeAttribute,e,n),p=n.attrValue,!We||"id"!==l&&"name"!==l||(xt(o,e),p="user-content-"+p),je&&E(/((--!?|])>)|<\/(style|title|textarea)/i,p)){xt(o,e);continue}if("attributename"===l&&b(p,"href")){xt(o,e);continue}if(n.forceKeepAttr)continue;if(!n.keepAttr){xt(o,e);continue}if(!Be&&E(/\/>/i,p)){xt(o,e);continue}Oe&&d([me,ge,ve],e=>{p=y(p,e," ")});const h=ft(e.nodeName);if(Tt(h,l,p)){if(se&&"object"==typeof W&&"function"==typeof W.getAttributeType)if(s);else switch(W.getAttributeType(h,l)){case"TrustedHTML":p=se.createHTML(p);break;case"TrustedScriptURL":p=se.createScriptURL(p)}if(p!==u)try{s?e.setAttributeNS(s,o,p):e.setAttribute(o,p),Ct(e)?wt(e):f(r.removed)}catch(t){xt(o,e)}}else xt(o,e)}_t(he.afterSanitizeAttributes,e,null)},Rt=function e(t){let n=null;const r=Et(t);for(_t(he.beforeSanitizeShadowDOM,t,null);n=r.nextNode();)_t(he.uponSanitizeShadowNode,n,null),St(n),Ft(n),n.content instanceof l&&e(n.content);_t(he.afterSanitizeShadowDOM,t,null)};return r.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,i=null,o=null,s=null;if(at=!e,at&&(e="\x3c!--\x3e"),"string"!=typeof e&&!kt(e)){if("function"!=typeof e.toString)throw C("toString is not a function");if("string"!=typeof(e=e.toString()))throw C("dirty is not a string, aborting")}if(!r.isSupported)return e;if(Me||vt(t),r.removed=[],"string"==typeof e&&(Ge=!1),Ge){if(e.nodeName){const t=ft(e.nodeName);if(!Ce[t]||Pe[t])throw C("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof k)n=At("\x3c!----\x3e"),i=n.ownerDocument.importNode(e,!0),i.nodeType===Z&&"BODY"===i.nodeName||"HTML"===i.nodeName?n=i:n.appendChild(i);else{if(!ze&&!Oe&&!De&&-1===e.indexOf("<"))return se&&qe?se.createHTML(e):e;if(n=At(e),!n)return ze?null:qe?ce:""}n&&Ue&&wt(n.firstChild);const c=Et(Ge?e:n);for(;o=c.nextNode();)St(o),Ft(o),o.content instanceof l&&Rt(o.content);if(Ge)return e;if(ze){if(He)for(s=de.call(n.ownerDocument);n.firstChild;)s.appendChild(n.firstChild);else s=n;return(_e.shadowroot||_e.shadowrootmode)&&(s=fe.call(a,s,!0)),s}let u=De?n.outerHTML:n.innerHTML;return De&&Ce["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&E(Y,n.ownerDocument.doctype.name)&&(u="<!DOCTYPE "+n.ownerDocument.doctype.name+">\n"+u),Oe&&d([me,ge,ve],e=>{u=y(u,e," ")}),se&&qe?se.createHTML(u):u},r.setConfig=function(){vt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Me=!0},r.clearConfig=function(){ht=null,Me=!1},r.isValidAttribute=function(e,t,n){ht||vt({});const r=ft(e),i=ft(t);return Tt(r,i,n)},r.addHook=function(e,t){"function"==typeof t&&h(he[e],t)},r.removeHook=function(e,t){if(void 0!==t){const n=p(he[e],t);return-1===n?void 0:m(he[e],n,1)[0]}return f(he[e])},r.removeHooks=function(e){he[e]=[]},r.removeAllHooks=function(){he={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},r}();e.exports=ae},7007(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,a,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,n)}(e,i,{once:!0})})},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var o=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var i,a,o;if(s(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),void 0===o)o=a[t]=n,++e._eventsCount;else if("function"==typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(i=c(e))>0&&o.length>i&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,console&&console.warn}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=u.bind(r);return i.listener=n,r.wrapFn=i,i}function p(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):h(i,i.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function m(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)})}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return c(this)},a.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i="error"===e,a=this._events;if(void 0!==a)i=i&&void 0===a.error;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var c=a[e];if(void 0===c)return!1;if("function"==typeof c)r(c,this,t);else{var l=c.length,u=h(c,l);for(n=0;n<l;++n)r(u[n],this,t)}return!0},a.prototype.addListener=function(e,t){return l(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return l(this,e,t,!0)},a.prototype.once=function(e,t){return s(t),this.on(e,d(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,d(this,e,t)),this},a.prototype.removeListener=function(e,t){var n,r,i,a,o;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r<a.length;++r)"removeListener"!==(i=a[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},a.prototype.listenerCount=f,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},1838(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(9332),i=n(500);const a={icon:i.icons.iconBase+"noun_973694_expanded.svg",name:"folder",mintNew:function(e,t){const n=e.session.store,r=t.newInstance||n.sym(t.newBase);let i=r.uri;return i.endsWith("/")&&(i=i.slice(0,-1)),t.newInstance=n.sym(i+"/"),n.fetcher.webOperation("PUT",r.uri).then(function(){return t})},label:function(e,t){const n=t.session.store,r=n.each(e,i.ns.ldp("contains")).length;return r>0?"Contents ("+r+")":n.holds(e,i.ns.rdf("type"),i.ns.ldp("Container"))?"Container (0)":null},render:function(e,t){function n(e){const t=e.uri.slice(e.dir().uri.length);return!(t.startsWith(".")||t.endsWith(".acl")||t.endsWith("~"))}function a(){let t=c.each(e,i.ns.ldp("contains")).filter(n);t=t.map(e=>[i.utils.label(e).toLowerCase(),e]),t.sort(),t=t.map(e=>e[1]),i.utils.syncTableToArray(l,t,function(t){const n=c.statementsMatching(e,i.ns.ldp("contains"),t)[0],r=s.VIEWAS_boring_default,a=s.propertyTR(o,n,!1);return a.firstChild.textContent="",a.firstChild.style.cssText+="min-width: 3em;",a.appendChild(s.outlineObjectTD(t,r,void 0,n)),a})}const o=t.dom,s=t.getOutliner(o),c=t.session.store;let l;const u=o.createElement("div");u.setAttribute("class","instancePane");const d=i.style.folderPaneStyle||"border-top: solid 1px #777; border-bottom: solid 1px #777; margin-top: 0.5em; margin-bottom: 0.5em;";u.setAttribute("style",d);const p=e.uri.endsWith("/")?e.uri:e.uri+"/",f=c.sym(p+"index.ttl#this");if(c.holds(e,i.ns.ldp("contains"),f.doc())){const e=u.appendChild(o.createElement("div"));return e.style.cssText="border-top: 0.2em solid #ccc;",c.fetcher.load(f.doc()).then(function(){l=e.appendChild(o.createElement("table")),t.getOutliner(o).GotoSubject(f,!0,void 0,!1,void 0,l)}),u}l=u.appendChild(o.createElement("table")),l.refresh=a,a(),c.updater.addDownstreamChangeListener(e,a);const h=u.appendChild(o.createElement("div")),m=r.authn.currentUser();if(!m)return u;const g={folder:e,div:h,dom:o,statusArea:h,me:m};return g.refreshTarget=l,i.login.filterAvailablePanes(t.session.paneRegistry.list).then(function(e){i.create.newThingUI(g,t,e),i.aclControl.preventBrowserDropEvents(o);let n;n=h.firstChild,i.widgets.makeDropTarget(n,null,v)}),u;function v(t){i.widgets.uploadFiles(c.fetcher,t,e.uri,e.uri,function(t,n){const r=c.sym(n);c.add(e,i.ns.ldp("contains"),r,e.doc()),l.refresh()})}}}},4146(e,t,n){"use strict";var r=n(4363),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?o:s[e.$$typeof]||i}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=o;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var i=f(n);i&&i!==h&&e(t,i,r)}var o=u(n);d&&(o=o.concat(d(n)));for(var s=c(t),m=c(n),g=0;g<o.length;++g){var v=o[g];if(!(a[v]||r&&r[v]||m&&m[v]||s&&s[v])){var b=p(n,v);try{l(t,v,b)}catch(e){}}}}return t}},251(e,t){
16
16
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
17
17
  t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,c=(1<<s)-1,l=c>>1,u=-7,d=n?i-1:0,p=n?-1:1,f=e[t+d];for(d+=p,a=f&(1<<-u)-1,f>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=p,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=p,u-=8);if(0===a)a=1-l;else{if(a===c)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,r),a-=l}return(f?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,c,l=8*a-i-1,u=(1<<l)-1,d=u>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:a-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+d>=1?p/c:p*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*c-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&s,f+=h,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+f]=255&o,f+=h,o/=256,l-=8);e[n+f-h]|=128*m}},3931(e,t,n){var r,i,a;e.exports=(r=n(500),i=n(9332),a=n(8230),(()=>{"use strict";var e={85:(e,t,n)=>{n.d(t,{board:()=>o});var r=n(426),i=n(663),a=n(264);function o(e,t,n,o){const s=e.createElement("div");s.style="width: 100%;",s.style.margin="1em";const c=s.appendChild(e.createElement("table"));c.style="width: 100%;",c.style.borderCollapse="collapse";const l=c.appendChild(e.createElement("tr")),u=c.appendChild(e.createElement("tr"));function d(t,n){const a=e.createElement("div"),o=a.appendChild(e.createElement("table")),s=i.store.each(t,r.ns.rdf("type")).map(e=>i.store.any(e,r.ns.ui("backgroundColor"))).filter(e=>e);o.appendChild(r.widgets.personTR(e,null,t)),o.subject=t,o.style="margin: 1em;";const c=s[0]||i.store.any(n,r.ns.ui("backgroundColor"));return a.style.backgroundColor=c?c.value:"#fff",a}function p(e,t,n,r){const a=e.map(e=>[i.store.any(e,t)||n,e]);return a.sort(),r&&a.reverse(),a.map(e=>e[1])}return t.forEach(t=>{const n=l.appendChild(e.createElement("th"));n.textContent=r.utils.label(t,!0),n.subject=t,n.style="margin: 0.3em; padding: 0.5em 1em; font-treatment: bold; font-size: 120%;";const a=u.appendChild(e.createElement("td"));a.subject=t,a.style="border: 0.01em solid white; padding: 0.1em;",o.columnDropHandler&&r.widgets.makeDropTarget(a,function(e){e.forEach(function(e){const n=i.store.sym(e);o.columnDropHandler(n,t)})})}),s.refresh=function(){const e=new a.Literal(new Date),t=n||o.renderItem||d;function s(e){const n=t(e);return r.widgets.makeDraggable(n,e),n.subject=e,n}for(let t=u.firstChild;t;t=t.nextSibling){const n=t.subject;let a=i.store.each(null,r.ns.rdf("type"),n);const c=o.sortBy||r.ns.dct("created");o.filter&&(a=a.filter(o.filter));const l=p(a,c,e,!0);r.utils.syncTableToArrayReOrdered(t,l,s)}},s.refresh(),s}},178:(e,t,n)=>{n.d(t,{exposeOverlay:()=>h,getState:()=>d,renderIssue:()=>g,renderIssueCard:()=>f});var r=n(426),i=n(663),a=n(324),o=n(264);const s=i.store,c=!1,l=r.icons.iconBase+"noun_17020_gray-tick.svg",u=(r.icons.iconBase,r.icons.iconBase+"noun_17020.svg");function d(e,t){const n=s.the(e,r.ns.wf("tracker"),null,e.doc()),i=s.any(n,r.ns.wf("issueClass"));t=t||i;const a=s.each(e,r.ns.rdf("type")).filter(e=>s.holds(e,r.ns.rdfs("subClassOf"),t));if(1!==a.length)throw new Error("Issue must have one type as state: "+a.length);return a[0]}function p(e){const t=s.each(e,r.ns.rdf("type")).map(e=>s.any(e,r.ns.ui("backgroundColor"))).filter(e=>!!e);return t.length?t[0].value:null}function f(e,t){function n(){const t=p(e)||"white";o.style.backgroundColor=t,u.style.backgroundColor=t}const i=t.dom,a=!p(e),o=i.createElement("div"),c=o.appendChild(i.createElement("table"));c.style.width="100%",c.appendChild(r.widgets.personTR(i,null,e,{draggable:!1})),c.subject=e,o.style="border-radius: 0.4em; border: 0.05em solid grey; margin: 0.3em;",o.firstChild.firstChild.firstChild.firstChild.setAttribute("src",r.icons.iconBase+"noun_Danger_1259514.svg");const l=o.firstChild.firstChild.children[2],u=r.widgets.button(i,r.icons.iconBase+"noun_253504.svg","edit",async n=>{h(e,t)}),d=u.firstChild;if(d.style.width=d.style.height="1.5em",l.appendChild(u),a){const n=r.widgets.deleteButtonWithCheck(i,l,"issue",async function(){try{await s.updater.update(s.connectedStatements(e))}catch(e){!function(e,t){t.paneDiv.appendChild(r.widgets.errorMessageBlock(t.dom,e))}(`Unable to delete issue: ${e}`,t)}o.parentNode.removeChild(o),r.widgets.refreshTree(t.paneDiv)});l.appendChild(n)}return o.style.maxWidth="24em",o.refresh=n,n(),o}function h(e,t){const n=t.overlay;n.innerHTML="";const i=n.appendChild(r.widgets.button(t.dom,r.icons.iconBase+"noun_1180156.svg","close",function(){n.innerHTML="",n.style.visibility="hidden"}));i.style.float="right",i.style.margin="0.7em",delete i.style.backgroundColor,n.style.visibility="visible",n.appendChild(g(e,t)),n.firstChild.style.overflow="auto"}function m(e,t){const n=e.createElement("div");return n.setAttribute("style","height: 1em; margin: 0.5em;"),n.style.backgroundColor=t,n}function g(e,t){function n(t,n,i){if(c){if(!g(b,"trackLastModified"))return;const t=n.statementsMatching(e,r.ns.dct("modified")).concat(n.statementsMatching(e,r.ns.wf("modifiedBy"))),a=[o.st(e,r.ns.dct("modified"),new Date,i)];A&&a.push(o.st(e,r.ns.wf("modifiedBy"),A,i)),n.updater.update(t,a,function(e,t,n){})}}function d(e,t){const n=v.createElement("pre");return n.setAttribute("style",t||"color: grey"),x.appendChild(n),n.appendChild(v.createTextNode(e)),n}function f(e){x.appendChild(r.widgets.errorMessageBlock(v,e))}function h(e,t){e||f("Sorry, failed to save your change:\n"+t)}function g(e,t){const n=s.any(e,r.ns.ui(t));return!(!n||!n.value)}const v=t.dom,b=s.the(e,r.ns.wf("tracker"),null,e.doc());if(!b)throw new Error("No tracker");const y=s.any(b,r.ns.wf("stateStore")),w=e.doc(),x=v.createElement("div"),A=i.authn.currentUser(),E=p(e)||"white";!function(){const t="padding: 0.5em 1.5em 1em 1.5em; border: 0.7em;border-color: "+(p(e)||"#eee")+"; ";x.setAttribute("style",t),x.style.backgroundColor="white"}(),i.authn.checkUser();const C=x.appendChild(r.widgets.button(v,function(e){return function(e){return!!s.findTypeURIs(e)[r.ns.wf("Open").uri]}(e)?l:u}(e)));r.widgets.makeDraggable(C,e);const k=s.any(b,r.ns.wf("issueClass"));if(!k)throw new Error("This tracker "+b+" has no issueClass");const _=r.widgets.makeSelectForCategory(v,s,e,k,y,function(e,t){e&&(n(0,s,w),r.widgets.refreshTree(x))});x.appendChild(_);const S=s.each(b,r.ns.wf("issueCategory"));for(const t of S)x.appendChild(r.widgets.makeSelectForCategory(v,s,e,t,y,function(e,t){e&&(n(0,s,w),r.widgets.refreshTree(x))}));const T=v.createElement("a");T.setAttribute("href",b.uri),T.setAttribute("style","float:right"),x.appendChild(T).textContent=r.utils.label(b),T.addEventListener("click",r.widgets.openHrefInOutlineMode,!0);const P=r.ns.wf("coreIsueForm");o.parse('\n @prefix : <http://www.w3.org/ns/ui#> .\n @prefix core: <http://www.w3.org/2005/01/wf/flow#>.\n @prefix dc: <http://purl.org/dc/elements/1.1/>.\n @prefix wf: <http://www.w3.org/2005/01/wf/flow#> .\n\n core:coreIsueForm a :Form;\n <http://purl.org/dc/elements/1.1/title> "Core issue data";\n :parts (\n core:titleField\n core:descriptionField ) .\n\n core:descriptionField a :MultiLineTextField;\n :label "Description";\n :property wf:description;\n :size "40" .\n\n core:titleField a :SingleLineTextField;\n :label "Title";\n :maxLength "128";\n :property dc:title; # @@ Should move to dct or schema\n :size "40" .\n\n wf:Task :creationForm core:coreIsueForm .\n',s,P.doc().uri,"text/turtle");const F=r.widgets.appendForm(v,null,{},e,P,y,h);x.appendChild(F),F.style.backgroundColor=E;const R=s.statementsMatching(e,r.ns.wf("assignee"));if(R.length>1){d("Weird, was assigned to more than one person. Fixing ..");const e=R.slice(1);s.updater.update(e,[],function(e,t,n){t?d("Now fixed."):f("Fixed failed: "+n)})}function I(e){return r.widgets.personTR(v,r.ns.wf("dependent"),e,{link:!1})}function N(e,t){t=t||[];const n=s.any(null,r.ns.wf("dependent"),e,e.doc());return n?N(n,[n].concat(t)):t}if(async function(){const t=s.each(e,r.ns.wf("assigneeGroup"));await s.fetcher.load(t);const n=t.map(e=>s.each(e,r.ns.vcard("member"),null,e.doc())).flat(),i=s.any(null,r.ns.doap("bug-database"),b);i&&await s.fetcher.load(i);const a=i?s.each(i,r.ns.doap("developer")):[];return n.concat(a)}().then(t=>{if(t.length){t.forEach(function(e){s.fetcher.lookUpThing(e)});const i={nullLabel:"(unassigned)"};x.appendChild(r.widgets.makeSelectForOptions(v,s,e,r.ns.wf("assignee"),t,i,w,function(e,t){e&&n(0,s,w)}))}}),g(b,"allowSubIssues")){const t=x.appendChild(v.createElement("div"));t.style="margin: 1em; padding: 1em;",t.appendChild(v.createElement("h4")).textContent="Super Issues";const n=t.appendChild(v.createElement("div"));n.style.display="flex",n.refresh=function(){const t=N(e);r.utils.syncTableToArrayReOrdered(n,t,I)},n.refresh(),t.appendChild(v.createElement("h4")).textContent="Sub Issues";const i=t.appendChild(v.createElement("div"));i.style.display="flex",i.style.flexDirection="reverse",i.refresh=function(){const t=s.each(e,r.ns.wf("dependent"),null,e.doc());r.utils.syncTableToArrayReOrdered(i,t,I)},i.refresh();const o=v.createElement("button");o.setAttribute("type","button"),t.appendChild(o);const c=r.utils.label(k);o.innerHTML="New sub "+c,o.setAttribute("style","float: right; margin: 0.5em 1em;"),o.addEventListener("click",function(n){t.insertBefore((0,a.newIssueForm)(v,s,b,e,i.refresh),o.nextSibling)},!1)}x.appendChild(v.createElement("br"));const L=s.any(b,r.ns.wf("extrasEntryForm"));L&&r.widgets.appendForm(v,x,{},e,L,y,h);const B=x.appendChild(m(v,E));let O;s.anyValue(b,r.ns.wf("issueURITemplate"))?O=e.doc():(O=s.any(b,r.ns.wf("messageStore")),O||(O=s.any(b,r.ns.wf("stateStore"))),s.sym(O.uri+"#Chat"+(new Date).getTime())),s.fetcher.nowOrWhenFetched(O,function(t,n,i){if(t){const t=(0,r.messageArea)(v,s,e,O);x.insertBefore(t,B),x.insertBefore(m(v,E),t)}else{const e=v.createElement("p");e.textContent=n,x.insertBefore(e,B)}}),x.appendChild(v.createElement("div")).innerHTML="<h4>Attachments</h4>\n <p>Drag files, emails,\n web pages onto the paper clip, or click the file upload button.</p>";const j=e.uri.endsWith("/index.ttl#this")?e.uri.slice(0,14)+"Files/":e.dir().uri+"Files/"+e.uri.split("#")[1]+"/";r.widgets.attachmentList(v,e,x,{doc:y,promptIcon:r.icons.iconBase+"noun_25830.svg",uploadFolder:s.sym(j),predicate:r.ns.wf("attachment")}),r.widgets.deleteButtonWithCheck(v,x,"issue",async function(){try{await s.updater.update(s.connectedStatements(e))}catch(e){f(`Unable to delete issue: ${e}`)}f("DELETED OK"),x.style.backgroundColor="#eee",x.style.fontColor="orange"}).style.float="right";const D=v.createElement("button");return D.textContent="refresh messages",D.addEventListener("click",async function(e){try{await s.fetcher.load(O,{force:!0,clearPreviousData:!0})}catch(e){return void alert(e)}r.widgets.refreshTree(x)},!1),D.setAttribute("style",r.style.button),x.appendChild(D),x}},197:e=>{e.exports='# Ontology for user interface hints and forms\n#\n# See also related: the Fresnel language\n#\n@prefix contact: <http://www.w3.org/2000/10/swap/pim/contact#>.\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix doc: <http://www.w3.org/2000/10/swap/pim/doc#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix r: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix s: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix tt: <http://dig.csail.mit.edu/2010/issues/track#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <http://www.w3.org/ns/ui#>.\n@prefix wf: <http://www.w3.org/2005/01/wf/flow#>.\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.\n\n@keywords is, of, a.\n\n<> dc:title "An ontology for User Interface description, Hints and Forms.";\n dc:description """The User Interface ontology allows the definition\n of forms for processing RDF model data, and include a bootstrap form for\n editing forms. It allows user interface hints such as background colors,\n can be associated with objects and classes.\n """;\n dc:created 2010-08-07;\n dc:license <https://creativecommons.org/publicdomain/zero/1.0/>;\n dc:modified """$Date: 2020/03/22 16:53:21 $""";\n dc:author <https://www.w3.org/People/Berners-Lee/card#i>.\n\nstyle a r:Property, owl:DatatypeProperty;\n s:label "style";\n prompt "CSS style";\n s:comment """Must be a valid CSS style string such as one could put in\n an HTML style attribute. Depending on the user interface system, this can\n by given to individuals, classes or properties. It is up to a user interface\n which wants to draw on them to pick how it uses styles from which parts\n of the data it has. For example, the style of a class may be picked\n to distinguish information about things in that class.""".\n\nbackgroundColor a r:Property, owl:DatatypeProperty;\n s:label "background color"@en;\n s:range ui:Color;\n s:comment """Must be a valid CSS color string such as one could put in\n an HTML style attribute. This should be in the #xxxxxx form,\n (with 6 digits of hex) so that it\n can work with Graphviz.""".\n\nbackgroundImage a r:Property, owl:DatatypeProperty;\n s:label "background image"@en;\n s:comment """URI or base64 representation of an image""".\n\ncolor a r:Property, owl:DatatypeProperty;\n s:label "color"@en;\n s:range ui:Color;\n s:comment """Must be a valid CSS color string such as one could put in\n an HTML style attribute. This should be in the #xxxxxx form,\n (with 6 digits of hex) so that it\n can work with Graphviz.""".\n\n\n\nsortPriority a r:Property, owl:DatatypeProperty;\n s:label "sort priority";\n s:range xsd:integer;\n s:comment """When individuals or classes must be sorted, then\n if they are given different values of sortPriority a user agent can\n use this as a hint to how to present information.""".\n\nsortBy a r:Property;\n s:label "sort by";\n s:domain s:Class;\n s:range r:Property;\n s:comment """A property which typically is used to sort\n members of a given class.""".\n\nseqeunce a r:Property;\n s:label "sequence number";\n s:range xsd:integer;\n s:comment """The sequence in which this item is arranged with repect to other parts.""".\n\ninitialProperties a r:Property;\n s:label "initial properties";\n s:domain s:Class;\n s:range r:List; # List of r:Property\n s:comment """A really simple way of enabling user interfaces to\n create new information about a class of things is to make a define of properties\n to be specified when a information about a new item\n ("New item" here means an item which the system\n does not have prvious information about yet,\n not an items which has just been created,\n like new friend as opposed to new baby)""";\n prompt "Properties to be specified for new ones".\n\ntableProperties a r:Property;\n s:domain s:Class;\n s:label "table properties";\n s:range r:List; # List of r:Property\n s:comment """This is a crude way of specifying a table-based\n view for objects of this class.""";\n prompt "Properties to be given in a default table view".\n\nprompt a r:Property;\n s:label "user prompt";\n s:comment """A string for the UI to use if the user needs a longer\n prompts than just a field name, the rdfs:label. """;\n ui:prompt "A longer prompt for a user inputting this property".\n\n\n# A Taxonomy of Field types\n\nui:Form owl:disjointUnionOf ( ui:ValueField ui:Group ui:Choice ui:Classifier ui:Options ui:Multiple ui:Heading ui:Comment);\n s:comment """A form can be any type of single field, or typically a Group of several fields,\n including interspersed headings and comments. """.\nui:Single owl:disjointUnionOf ( ui:ValueField ui:Group ui:Choice ui:Classifier ui:Options ui:Heading ui:Comment).\nui:ValueField owl:disjointUnionOf ( ui:TextField ui:NumericField ui:ColorField ui:DateField ui:DateTimeField ui:PhoneField ui:EmailField).\nui:NumericField owl:disjointUnionOf (ui:BooleanField ui:TriStateField ui:IntegerField ui:DecimalField ui:FloatField).\n# ui:Multiple owl:disjointUnionOf ( ui:ZeroOrMore ui:OneOrMore ).\nui:TextField owl:disjointUnionOf (ui:SingleLineTextField ui:MultiLineTextField).\n\nui:Form a s:Class; is s:subClassOf of ui:ValueField, ui:Group, ui:Choice, ui:Heading, ui:Comment, ui:Classifier, ui:Options, ui:Multiple.\nui:Single a s:Class; is s:subClassOf of ui:ValueField, ui:Group, ui:Choice, ui:Heading, ui:Comment, ui:Classifier, ui:Options.\nui:ValueField a s:Class; is s:subClassOf of ui:TextField, ui:NumericField, ui:ColorField, ui:DateField, ui:DateTimeField, ui:PhoneField, ui:EmailField.\nui:NumericField a s:Class; is s:subClassOf of ui:BooleanField, ui:TriStateField, ui:IntegerField, ui:DecimalField, ui:FloatField.\nui:TextField a s:Class; is s:subClassOf of ui:SingleLineTextField, ui:MultiLineTextField.\n\nui:Classifier a s:Class; s:label "classifier";\n s:comment """A classifier allows the user to select the type of an object.\n The possible types must be subclasses of some overall class, the "category".\n (Ideally, the superclass is also set up as the disjoint union of the subclasses,\n if they are disjoint.)\n\n The form normally stores the resulting classes using an rdf:type triple,\n but a different predicate can be used if required, so the classifier field\n needs is \'property\' defined too.\n\n If the subclass selected itself is has subclasses defined, the user can\n recursively select from them in turn, as many levels as needed.""".\n\nui:property a r:Property; s:domain ui:Form; s:range r:Property;\n s:label "property to be stored"@en;\n s:comment """Many fields prompt for information about a given property of the subject.\n When field is filled in, this gives which property is written into the data.""".\n\nui:category a r:Property; s:domain ui:Classifier; s:range s:Class;\n s:label "overall superclass"@en;\n s:comment """The superclass subclasses of which will be selected.""".\n\nui:dependingOn a r:Property; s:domain ui:Options; s:range r:Property;\n s:label "depending on"@en;\n s:comment """Many fields prompt for information about a given property of the subject""".\n\nui:for a r:Property; s:label "for"@en; s:comment "The value for which this case is selected.".\nui:use a r:Property; s:range ui:Form.\n\nui:part a r:Property; s:label "part"@en ; s:domain ui:Form; s:range ui:Form. # Used for Multiple field - the subform for each item\nui:parts a r:Property; s:label "parts"@en ; s:domain ui:Form; s:range r:Collection. # (of Forms) The ordered set of fields in a group\nui:ordered e r:Property; s:label "ordered"; s:range xsd:Boolean . # Could be useful for all kinds of things in future so not restricted to Multiple\n\nui:from a r:Property; s:domain ui:Choice; s:range r:Class;\n s:label "from"; ui:prompt "from what class".\n\nui:size a r:Property; s:domain ui:ValueField; s:range xsd:integer;\n s:label "size of field";\n ui:prompt "size of field in characters".\n\nui:maxLength a r:Property; s:domain ui:TextField; s:range xsd:integer;\n s:label "max length of value".\n\nui:minValue a r:Property; s:domain ui:ValueField; s:label "min". # @@ range?\nui:maxValue a r:Property; s:domain ui:ValueField; s:label "max".\n\n ui:creationForm a r:Property; s:domain s:Class; s:range ui:Form;\n s:label "creation form";\n s:comment """A form which may be used to collect information about a\n hitherto locally undocumented instance instance of this class.""".\n\n ui:annotationForm a r:Property; s:domain s:Class; s:range ui:Form;\n s:label "annotation form";\n s:comment """A form which may be used to add more infromation to an\ninstance of this class which we know something about. Anything from\nadding just add one more fact, to adding a whole lot of information about a specific\nfacet of the thing.\n""".\n\n\n#############################################\n#\n# Form for editing Forms\n#\n\nFormForm a ui:Form;\n dc:title "Form for editing Forms";\n is ui:creationForm of Form;\n a ui:Group; ui:parts (FF1 FF2 FF3 FieldList) .\n\n FF1 ui:sequence 1; a ui:Heading; ui:contents "Edit Form"@en .\n FF2 ui:sequence 2; a ui:SingleLineTextField; ui:property dc:title; ui:size 60 .\n FF3 ui:sequence 3; a ui:Comment; ui:contents\n """To add a field to the form, press the plus at the bottom,\n and then select what sort of field you want."""@en; ui:style "background-color: #ffe;" .\n\n FieldList ui:sequence 10; a ui:Multiple; ui:ordered true; ui:property ui:parts; ui:part FieldForm .\n\nFieldForm a ui:Group;\n dc:title "Form for selecting a type of field";\n ui:parts (\n\n [ ui:sequence 1; a ui:Classifier; ui:property r:type; ui:category ui:Form]\n\n [ a ui:Options; ui:sequence 2; ui:dependingOn r:type;\n\n ui:case [ ui:for ui:TextField; ui:use [a ui:Group; ui:parts (\n [ a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:DatatypeProperty] # @@@ Needs inference on current web\n [ a ui:IntegerField; ui:property ui:size; ui:label "field size"; ui:min 1; ui:max 4096]\n [ a ui:IntegerField; ui:property ui:maxLength; ui:label "Max. length of string"; ui:min 1]\n )]];\n\n ui:case [ ui:for ui:IntegerField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:DatatypeProperty]\n [ ui:sequence 2; a ui:IntegerField; ui:property ui:min; ui:label "minimum value"]\n [ ui:sequence 3; a ui:IntegerField; ui:property ui:max; ui:label "maximum value"] ) ]];\n\n ui:case [ ui:for ui:DecimalField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:DatatypeProperty]\n [ ui:sequence 2; a ui:DecimalField; ui:property ui:min; ui:label "minimum value"]\n [ ui:sequence 3; a ui:DecimalField; ui:property ui:max; ui:label "maximum value"] ) ]];\n\n ui:case [ ui:for ui:FloatField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:DatatypeProperty]\n [ ui:sequence 2; a ui:FloatField; ui:property ui:min; ui:label "minimum value"]\n [ ui:sequence 3; a ui:FloatField; ui:property ui:max; ui:label "maximum value"] ) ]];\n\n ui:case [ ui:for ui:ColorField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:DatatypeProperty] )\n ]];\n\n ui:case [ ui:for ui:DateField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:DatatypeProperty]\n [ ui:sequence 2; a ui:DateField; ui:property ui:min; ui:label "min"]\n [ ui:sequence 3; a ui:DateField; ui:property ui:max ; ui:label "max"]\n ) ]];\n\n ui:case [ ui:for ui:DateTimeField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:DatatypeProperty]\n [ ui:sequence 2; a ui:DateTimeField; ui:property ui:min; ui:label "min"]\n [ ui:sequence 3; a ui:DateTimeField; ui:property ui:max ; ui:label "max"]\n ) ]];\n\n ui:case [ ui:for ui:EmailField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:ObjectProperty]\n ) ]];\n\n ui:case [ ui:for ui:PhoneField; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from owl:ObjectProperty]\n )]];\n\n ui:case [ ui:for ui:Group; ui:use FieldList];\n\n ui:case [ ui:for ui:Options; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:dependingOn; ui:label "depending on"; ui:from r:Property; ui:default r:type]\n [ ui:sequence 2; a ui:Multiple; ui:property ui:case; ui:part CaseForm]\n ) ]];\n\n ui:case [ ui:for ui:Choice; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property";\n ui:canMintNew true; ui:from owl:ObjectProperty]\n [ ui:sequence 2; a ui:Choice; ui:canMintNew true; ui:property ui:from; ui:label "destination class";\n ui:from s:Class; ui:canMintNew true; ]\n [ ui:sequence 3; a ui:BooleanField; ui:property ui:canMintNew; # No class form yet\n ui:label "user can add new"]\n [ ui:sequence 4; a ui:Choice; ui:canMintNew true; ui:property ui:use; ui:label "Nested Form (if any)";\n ui:from ui:Form; ui:optional true; ui:use FormForm] # @@ optional\n\n ) ]];\n\n ui:case [ ui:for ui:Classifier; ui:use [a ui:Group; ui:parts (\n [ ui:sequence 2; a ui:Comment; ui:contents """A classifier allows the user to which classes the item belongs to, given a common superclass of the allowed classes. Give the superclass here:""" ]\n\n [ ui:sequence 4; a ui:Choice; ui:canMintNew true; ui:property ui:category; ui:label "superclass"; ui:from s:Class]\n\n [ ui:sequence 6; a ui:Comment; ui:contents """(When the choice is made normally the item is given a rdf:type. Set this to rdf:type unless you want the form to set a different property.)""" ]\n\n [ ui:sequence 8; a ui:Choice; ui:canMintNew true; ui:property ui:property;\n ui:label "property"; ui:from owl:ObjectProperty; ui:default r:type] # @@ restriction\n\n ) ]];\n\n ui:case [ ui:for ui:Multiple; ui:use [a ui:Group; ui:parts (\n [ui:sequence 0; a ui:BooleanField; ui:property ui:ordered; ui:label "ordered"] # If this an ordered array or an unordered set?\n [ui:sequence 0; a ui:IntegerField; ui:property ui:min; ui:label "minimum number"] # If this an ordered array or an unordered set?\n [ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:property; ui:label "property"; ui:from r:Property]\n [ui:sequence 2; a ui:Choice; ui:canMintNew true; ui:property ui:part; ui:from ui:Form; ui:use FieldForm] # Form for details of the field part of the multiple\n ) ]];\n\n ui:case [ ui:for ui:Heading; ui:use [a ui:SingleLineTextField; ui:property ui:contents]];\n\n ui:case [ ui:for ui:Comment; ui:use [a ui:MultiLineTextField; ui:property ui:contents]]\n ]).\n\n\nCaseForm a ui:Group;\n dc:title "Form for a conditional case in a form";\n ui:parts (\n [ ui:sequence 1; a ui:Choice; ui:canMintNew true; ui:property ui:for; ui:label "when it is"; ui:canMintNew true; ui:from s:Class]\n [ui:sequence 2; a ui:Choice; ui:canMintNew true; ui:property ui:use; ui:from ui:Form; ui:canMintNew true; ui:use FieldForm] ). # Form for details of the field part of the multiple\n\n# ENDS\n'},240:e=>{e.exports='# Issue tracking - Workflow application definition ontology\n#\n# Finite state automaton ontology\n#\n# See requirements for tracking tools http://www.w3.org/2005/01/06-tool-req.html\n#\n@keywords a, is, of.\n\n@prefix : <http://www.w3.org/2005/01/wf/flow#>.\n@prefix wf: <http://www.w3.org/2005/01/wf/flow#>.\n\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix s: <http://www.w3.org/2000/01/rdf-schema#> .\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.\n\n@prefix doc: <http://www.w3.org/2000/10/swap/pim/doc#> .\n@prefix log: <http://www.w3.org/2000/10/swap/log#> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix contact: <http://www.w3.org/2000/10/swap/pim/contact#> .\n@prefix doap: <http://usefulinc.com/ns/doap#>.\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix dct: <http://purl.org/dc/terms/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n\n<> dc:title "Issue Tracking Ontology";\n\n dct:creator <http://www.w3.org/People/Berners-Lee/card#i>;\n\n s:comment """This ontology defines a very general class (Task)\n which can used for any kind of bug tracking, issue tracking,\n to-do-list management, action items, goal dependency, and so on.\n It captures the state of a task as a subclass, so that\n subsumption can be used.\n It captures a discussion thread about a task.\n It captures subtasks structure if necessary.\n A "Tracker" defines actual set of states, categories, etc.,\n which a task can be in. The data about the tracker\n guides the software managing the task.\n\n There is some workflow modeling finite state machine\n terms which are optional for more complex definition\n of the transitions allowed.\n """.\n\nTask a s:Class;\n s:label "task"@en; owl:disjointUnionOf (Open Closed);\n s:comment """Something to be done in a wide sense,\n an agenda item at a meeting is one example, but any\n issue, task, action item, goal, product, deliverable, milestone, can such a thing.\n The requirement for this framework was that it would allow\n one to customize ontologies for things such as agenda items,\n action items, working group issues with a spec, w3c Last Call issues,\n software bugs and administrative requests.\n In π-calculus, a process.\n Make your type of issue a subclass of Task.\n """.\n\nOpen a s:Class; s:subClassOf Task;\n s:label "open"@en, "ouvert"@fr;\n ui:backgroundColor "#d6f5d6"; # green like github for some reason\n s:comment """A task which needs attention. The very crude states of Open and Closed all\n interoperability between different systems if the states for a given\n application are made subclasses of either Open or Closed. This allows\n tasks from different systems to be mixed and treated together with\n limited but valuable functionality.\n """.\n\nClosed a s:Class; s:subClassOf Task;\n s:label "closed"@en, "fermé"@fr;\n ui:backgroundColor "#f5d6d6"; # pink\n s:comment """A task which does not need attention. It may be closed because\n has been abandoned or completed, for example.\n """.\n\n\n ActionItem a s:Class;\n s:subClassOf Task;\n s:label "action item"@en; owl:disjointUnionOf (Open Closed);\n s:comment """An obligation taken on by a person, typically at a meeting.\n """.\n\n\ndescription a rdf:Property;\n s:label "description";\n s:comment """The description, definition,\n or abstract. Information explaining what this is.\n Not arbitrary comment about anything, only about the subject.\n (Use this property for anything. There is no domain restriction.).""".\n\ndependent a rdf:Property;\n s:label "how"; owl:inverseOf [ s:label "why"];\n s:domain Task; s:range Task;\n s:comment """Another task upon which this depends, in the sense that\n this task cannot be completed without that task being done.\n You can\'t use this for dependencies on anything other than other tasks.\n (Note the US spelling of the URI. In the UK, a dependant is a something\n which is dependent on somehing else.)""".\n\nassignee a rdf:Property;\n s:label "assigned to"; owl:inverseOf [s:label "assignment"];\n# s:domain Task;\n s:range foaf:Agent;\n s:comment """The person or group to whom this has been assigned.""".\n\n# use dct:modified\n#modified a rdf:Property;\n# s:label "last changed".\n\nmodifiedBy a rdf:Property;\n s:range foaf:Agent;\n s:label "changed by".\n\n# use dct:created instead\n#created a rdf:Property;\n# s:range xsd:dateTime;\n#\n# Use foaf:maker instead\n#creator a rdf:Property;\n# s:range foaf:Agent;\n# s:label "changed by".\n\nsubscriber a rdf:Property;\n s:label "subscriber";\n s:range foaf:Agent.\n\n\n################## Products\n#\n#\n# History: The Tracker system included a cocept of a product,\n# such that an action could be associated with *either* an issue *or* a product.\n# Noah Mendelsohn for the TAG needed to be able make\n# and to give products: Goals, scuuess criteria,\n# deliverables with dates, schedules, TAG members assigned, related issues.\n#\n\n\nProduct a s:Class; s:subClassOf Task;\n s:label "product";\n s:comment """A product is a task which monitors something\n which must be produced.""".\n\ndeliverable a rdf:Property; s:subPropertyOf dependent;\n s:range Product;\n s:label "deliverable"@en;\n s:comment """Something which must be delivered to accomplish this""".\n\ngoalDescription a rdf:Property, owl:DatatypeProperty;\n s:domain Task; s:range xsd:string;\n s:label "goals";\n s:comment """A textual description of the goals of this product, etc.""".\n\nsuccessCriteria a rdf:Property, owl:DatatypeProperty;\n s:domain Task; s:range xsd:string;\n s:label "success criteria";\n s:comment """A textual description of the successs critera.\n How when we know this is done?""".\n\ndateDue a rdf:Property, owl:DatatypeProperty;\n s:domain Task; s:range xsd:date;\n s:label "due"@en;\n s:comment """The date this task is due.\n """.\n\n################## Attachments\n\nattachment a rdf:Property;\n s:label "attachment";\n s:comment """Something related is attached for information.""".\n\nscreenShot a rdf:Property; s:subPropertyOf attachment;\n s:label "screen shot"@en;\n s:comment """An image taken by capturing the state of a\n computer screen, for example to demonstrate a problem""".\n\ntestData a rdf:Property; s:subPropertyOf attachment;\n s:label "test data"@en;\n s:comment """A file which can be used as inpiut to a test\n or to demonstrate a problem. """.\n\n\nterminalOutput a rdf:Property; s:subPropertyOf attachment;\n s:label "terminal output"@en;\n s:comment """A file showing user interaction from a\n text terminal or console etc. """.\n\n\nmessage a rdf:Property; s:subPropertyOf attachment;\n s:label "message"@en;\n s:comment """A message about this. Attached for information.""".\n\n\nMessage a s:Class; s:label "message"@en.\nrecipent a rdf:Property; s:label "to"; s:domain Message; s:range foaf:Agent.\nsender a rdf:Property; s:label "from"; s:domain Message; s:range foaf:Agent.\n\n############################# A Tracker connects and manages issues\n\ntracker a rdf:Property;\n s:label "tracker";\n owl:inverseOf [ s:label "issue"];\n s:domain Task;\n s:range Tracker.\n\nTracker a s:Class;\n s:label "tracker";\n s:comment """A set of issues and\n the constraints on how they evolve.\n To use this ontology, craete a new tracker.\n Copy an existing one or make up your own.""".\n\nissueClass a rdf:Property;\n s:label "all issues must be in";\n s:domain Tracker;\n s:range s:Class, State;\n s:comment """The class of issues which are allowed in this tracker.\n This is essemtial to the operation of the tracker,\n as it defines which states an issue can be in.\n (The issueClass must be a disjointUnionOf the state classes)""".\n\nissueCategory a rdf:Property;\n s:label "issue category";\n s:domain Tracker;\n s:range s:Class;\n s:comment """Issues may be categorized according to the\n subclasses of this class""".\n\nstateStore a rdf:Property;\n s:label "state store";\n s:domain Tracker;\n s:range doc:Document;\n s:comment """A read-write document.\n The state of the issues is modified here.\n When you set up a trcaker, thgis must be set to point\n to a writeble data resource on the web.""".\n\ntransactionStore\n a rdf:Property;\n s:label "transaction store";\n s:domain Tracker;\n s:range doc:Document;\n s:comment """An appendable document. Transactions and messsages\n can be written into here""".\n\nasigneeClass\n a rdf:Property;\n s:label "assignees must be";\n s:domain Tracker;\n s:range s:Class; # Subclass of foaf:Agent\n s:comment """When an issue is assigned, the assignee must be from this class""".\n\ninitialState\n a rdf:Property;\n s:label "initial state"@en;\n s:label "état initial"@fr;\n s:domain Tracker;\n s:range State;\n s:comment """The initial state for a new issue""".\n\n# Use this to link a project to a tracker\ndoap:bug-database owl:inverseOf [ s:label "project"@en ].\n\n\n\n\n############################################################\n#\n# Finite state machines\n#\nChange a s:Class;\n s:label "change";\n s:comment """The universal class of things which\nchange the state of a task.\nIncluded now: Creation, Transition. (Maybe in the future\nmore π-calculus constructions such as splitting & merging tasks,\nand import/export of obligations to a foreign opaque system.)\n""".\n\nTransition a s:Class; s:subClassOf Change;\n s:label "transition";\n s:comment """A transition is a change of state of\na task. Typical properties include date and/or source\n(a document causing the transition), and a final state.""".\n\nCreation a s:Class; s:subClassOf Change;\n s:label "creation";\n s:comment """A creation is a change from existence\nto non-existence\na task. Typical properties include date and/or source\n(a document causing the transition), and a final state.""".\n\n\ndate s:range DateTime.\n\nfinal a rdf:Property;\n s:label "to";\n s:domain Transition;\n s:range State.\n\ntask a rdf:Property;\n s:range Task;\n s:label "task".\n\nrequires a rdf:Property;\n s:label "requires";\n s:domain Transition;\n s:range rdf:List; # Of properties for validation\n s:comment """To be a valid transition,\n a necessary (but not necessarily sufficuent) condition\n is that there be recorded these properties for the record""".\n\naffects a rdf:Property;\n s:label "affects";\n s:domain doc:Work;\n s:range Task.\n\n\n# { ?x a Transition; task ?t; source ?doc } => { ?doc affects ?t }.\n\n\ncreates a rdf:Property;\n s:label "creates";\n s:domain doc:Work;\n s:range Task.\n\n\nallowedTransitions a rdf:Property;\n s:domain State;\n s:range rdf:List; # @@@ of Action\n s:label "allowed transitions";\n s:comment """The state machine is defined\n by these lists of transition allowed for each issue.\n (An interesting option in the Web is to make an allowed transition\n to a state in soemone else\'s ontology, which in turn allows\n transitions into many ontologies. So a finite state maxchine\n may become very large. In practice this means that a task handed\n off to another organization may be processed on all kinds of ways.)""".\n\n# { ?x a TerminalState} => { ?x allowedTransitions () }.\n\nfinal a rdf:Property;\n s:label "to";\n s:range State.\n\nissue a rdf:Property;\n s:label "issue";\n s:comment\n """A transition changes the state of the given issue.""".\n\nsource a rdf:Property;\n s:label "source";\n s:comment """The source of a transition is\n the document by which it happened""";\n s:range doc:Work.\nTerminalState a s:Class;\n s:subClassOf State;\n s:label "terminal state";\n s:comment """A state from which there are no transitions.""".\n\nNonTerminalState a s:Class;\n s:label "non-terminal state";\n owl:disjointWith TerminalState;\n s:comment """A state from which there are transitions.""".\n\n######################################################\n\n#ends\n'},264:e=>{e.exports=a},324:(e,t,n)=>{n.d(t,{newIssueForm:()=>a});var r=n(426),i=n(264);function a(e,t,n,a,o){const s=e.createElement("div"),c=t.any(n,r.ns.wf("stateStore")),l=t.any(n,r.ns.wf("issueClass")),u=r.utils.label(l);s.innerHTML="<h2>Add new "+(a?"sub ":"")+u+"</h2><p>Title of new "+u+":</p>";const d=e.createElement("input");return d.setAttribute("type","text"),d.setAttribute("style","margin: 0.5em; font-size: 100%; padding: 0.3em;"),d.setAttribute("size","100"),d.setAttribute("maxLength","2048"),d.select(),d.addEventListener("keyup",function(e){13===e.keyCode&&function(){d.setAttribute("class","pendingedit"),d.disabled=!0;const e=[],l=t.anyValue(n,r.ns.wf("issueURITemplate")),u=l?t.sym(function(e){const t=new i.Literal(new Date),n=""+(new Date).getTime(),r=t.value.slice(0,4),a=t.value.slice(5,7),o=t.value.slice(8,10);return e.replace("{N}",n).replace("{YYYY}",r).replace("{MM}",a).replace("{DD}",o)}(i.uri.join(l,c.uri))):t.sym(c.uri+"#Iss"+(new Date).getTime()),p=u.doc(),f=t.literal(d.value);e.push(new i.Statement(u,r.ns.wf("tracker"),n,c)),e.push(new i.Statement(u,r.ns.dc("title"),f,c)),e.push(new i.Statement(u,r.ns.dct("created"),new Date,c));const h=a?t.each(a,r.ns.rdf("type"),null,a.doc()):t.each(n,r.ns.wf("initialState"));for(const t of h)e.push(new i.Statement(u,r.ns.rdf("type"),t,c));a&&e.push(new i.Statement(a,r.ns.wf("dependent"),u,c)),l&&(e.push(new i.Statement(u,r.ns.wf("tracker"),n,p)),e.push(new i.Statement(u,r.ns.rdfs("seeAlso"),c,p))),t.updater.update([],e,function(e,t,n){t&&(s.parentNode.removeChild(s),o(u))})}()},!1),s.appendChild(d),d.focus(),s}},426:e=>{e.exports=r},663:e=>{e.exports=i},685:(e,t,n)=>{n.d(t,{csvButton:()=>o});var r=n(426),i=n(663);function a(e){const t=e.replaceAll("\n"," ");if(!t.includes(","))return t;const n='"'+t.replaceAll('"','""')+'"';if(n.slice(1,-1).replaceAll('""',"").includes('"'))throw new Error("CSV inconsistecy");return n}function o(e,t){const n=e.createElement("div"),o=r.widgets.button(e,r.icons.iconBase+"noun_Document_998605.svg","Copy as CSV",async e=>{o.parentNode.parentNode.addEventListener("copy",e=>{const n=function(e,t){const n=e.any(t,r.ns.wf("stateStore")),i=e.each(null,r.ns.wf("tracker"),t,n),o=[{label:"Name",predicate:r.ns.dc("title")}],s={label:"State",category:e.any(t,r.ns.wf("issueClass"))};o.push(s);const c=e.each(t,r.ns.wf("issueCategory"));for(const e of c){const t={label:r.utils.label(e),category:e};o.push(t)}const l=e.any(t,r.ns.wf("extrasEntryForm"),null,null);if(l){const t=e.any(l,r.ns.ui("parts"),null,l.doc()).elements;for(const n of t){const t=e.any(n,r.ns.ui("property"));if(t){const e={label:r.utils.label(t),predicate:t};o.push(e)}}}o.push({label:"Description",predicate:r.ns.wf("description")});const u=o.map(e=>e.label).join(",")+"\n";return u+i.map(function(t){return o.map(n=>function(t,n){let i;if(n.predicate)return i=e.any(t,n.predicate),i?i.value:"--";if(!n.category)throw new Error("wot no pred or cat",n);{const a=e.each(t,r.ns.rdf("type"));for(const t of a)e.holds(t,r.ns.rdfs("subClassOf"),n.category)&&(i=t);if(!i)return"?"+r.utils.label(n.category)}return r.utils.label(i)}(t,n)).map(a).join(",")+"\n"}).join("")}(i.store,t);e.clipboardData.setData("text/plain",n),e.clipboardData.setData("text/csv",n),alert("Copy data: "+n),e.preventDefault()})});return n.appendChild(o),n}},719:(e,t,n)=>{n.d(t,{newTrackerButton:()=>c});var r=n(426),i=n(264),a=n(663);const o=r.ns,s=a.store.updater;function c(e,t){const n=r.login.newAppInstance(t.dom,{noun:"tracker"},function(n,a){function c(e){if(void 0!==e.elements)return e.elements.map(c);if(void 0===e.uri)return e;let t=e.uri;return t===p.uri?f:(t.slice(0,m.length)===m&&(t=a+t.slice(m.length)),d.sym(t))}const l="issuetracker.w3.org",u=r.ns.space,d=t.session.store;if(!a&&("/"!==(a=d.any(n,u("uriPrefix")).value).slice(-1)&&(i.log.error(l+": No / at end of uriPrefix "+a),a+="/"),a+=l+"/"+(new Date).getTime()+"/",!confirm("Make new tracker at "+a+"?")))return;const p=d.any(e,o.wf("stateStore")),f=d.sym(a+"store.ttl"),h=e.doc(),m=h.uri.slice(0,h.uri.lastIndexOf("/")+1),g=c(h),v=c(e),b=d.statementsMatching(void 0,void 0,void 0,h);for(let e=0;e<b.length;e++){const t=b[e];d.add(c(t.subject),c(t.predicate),c(t.object),g)}d.add(v,r.ns.space("inspiration"),e,p),d.add(v,r.ns.space("inspiration"),e,g),s.put(g,d.statementsMatching(void 0,void 0,void 0,g),"text/turtle",function(e,t,n){t&&s.put(f,[],"text/turtle",function(e,t,n){})})});return n.setAttribute("style","margin: 0.5em 1em;"),n}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};n.r(o),n.d(o,{default:()=>g});var s=n(426),c=n(663),l=n(85),u=n(178),d=n(719),p=n(324),f=n(685),h=n(264);const m=c.store,g={icon:s.icons.iconBase+"noun_122196.svg",name:"issue",audience:[],label:function(e,t){const n=m.findTypeURIs(e);return n["http://www.w3.org/2005/01/wf/flow#Task"]||m.holds(e,s.ns.wf("tracker"))?"issue":n["http://www.w3.org/2005/01/wf/flow#Tracker"]?"tracker":null},mintClass:s.ns.wf("Tracker"),mintNew:async function(e,t){const n=e.session.store;let r;t.newInstance?r=n.sym(t.newInstance.doc().uri+"_state.ttl"):(t.newInstance=n.sym(t.newBase+"index.ttl#this"),r=n.sym(t.newBase+"state.ttl"));const i=t.newInstance,a=i.doc(),o=c.authn.currentUser();o&&n.add(i,s.ns.dc("author"),o,a),n.add(i,s.ns.rdf("type"),s.ns.wf("Tracker"),a),n.add(i,s.ns.dc("created"),new Date,a),n.add(i,s.ns.wf("issueClass"),s.ns.wf("Task"),a),n.add(i,s.ns.wf("initialState"),s.ns.wf("Open"),a),n.add(i,s.ns.wf("stateStore"),r,a),n.add(i,s.ns.wf("assigneeClass"),s.ns.foaf("Person"),a),n.add(i,s.ns.wf("stateStore"),r,r);const l=n.statementsMatching(void 0,void 0,void 0,a).concat(n.statementsMatching(void 0,void 0,void 0,r));try{await async function(e,t){const r=e.concat(t).map(e=>e.why),i=Array.from(new Set(r)).map(r=>n.updater.update(e.filter(e=>e.why.sameTerm(r)),t.filter(e=>e.why.sameTerm(r))));return Promise.all(i)}([],l)}catch(t){return s.widgets.complain(e,"Error writing tracker configuration: "+t)}const u=e.dom;return t.div.appendChild(u.createElement("div")).innerHTML=`<h4>Success</h4>\n <p>Your <a href="${i.uri}">new tracker</a> has been made.\n Use the settings tab to configure it.\n </p>\n `,t},render:function(e,t){const r=t.dom,i=r.createElement("div");function a(e){i.appendChild(s.widgets.errorMessageBlock(r,e))}function o(e,t){e||a(t)}function g(e,n){const i=m.any(e,s.ns.wf("issueClass")),o=(n=n||i).sameTerm(i),c=m.any(n,s.ns.owl("disjointUnionOf"));if(!c)return a(`Configuration error: state ${i} does not have substates`);let d=c.elements;o&&d.length>2&&(d=d.filter(e=>m.holds(e,s.ns.rdfs("subClassOf"),s.ns.wf("Open"))||e.sameTerm(s.ns.wf("Open"))));const p={columnDropHandler:async function(e,r){const i=(0,u.getState)(e,n),a=m.the(e,s.ns.wf("tracker"),null,e.doc()),o=m.any(a,s.ns.wf("stateStore"));if(!r.sameTerm(i)){try{await m.updater.update([h.st(e,s.ns.rdf("type"),i,o)],[h.st(e,s.ns.rdf("type"),r,o)])}catch(e){s.widgets.complain(t,"Unable to change issue state: "+e)}f.refresh()}},filter:o?null:function(e){return!!m.findTypeURIs(e)[s.ns.wf("Open").uri]}};p.sortBy=s.ns.dct("created"),p.sortReverse=!0;const f=(0,l.board)(r,d,function(e){return(0,u.renderIssueCard)(e,t)},p);return f}function v(e){const n=r.createElement("div"),i=c.authn.currentUser(),a={div:n,dom:r,noun:"tracker",statusArea:n,me:i,refreshTarget:e},o=[t.session.paneRegistry.byName("issue")];return s.create.newThingUI(a,t,o),n}function b(){const n=m.any(k,s.ns.wf("issueClass")),i=[A,w,n].concat(m.each(k,s.ns.wf("issueCategory")));i.push(x);const a={renderMain:function(n,i){if(n.innerHTML="",i.sameTerm(y))n.appendChild(g(k));else if(i.sameTerm(w))n.appendChild(function(n){function i(){const e=new h.IndexedFormula;return l.pat.optional.push(e),e}const a=m.any(e,s.ns.wf("issueClass")),o=m.each(n,s.ns.wf("issueCategory")),c=["issue","state","created"],l=new h.Query(s.utils.label(e));for(let e=0;e<o.length;e++)c.push("_cat_"+e);const d={};c.forEach(function(e){l.vars.push(d[e]=h.variable(e))}),l.pat.add(d.issue,s.ns.wf("tracker"),n),l.pat.add(d.issue,s.ns.dct("created"),d.created),l.pat.add(d.issue,s.ns.rdf("type"),d.state),l.pat.add(d.state,s.ns.rdfs("subClassOf"),a),l.pat.optional=[];for(let e=0;e<o.length;e++){const t=i();t.add(d.issue,s.ns.rdf("type"),d["_cat_"+e]),t.add(d["_cat_"+e],s.ns.rdfs("subClassOf"),o[e])}const p=m.any(n,s.ns.wf("propertyList"));if(p){const e=p.elements;for(let t=0;t<e.length;t++){const n=e[t];let r="_prop_"+t;n.uri.indexOf("#")>=0&&(r=n.uri.split("#")[1]);const a=i();l.vars.push(d[r]=h.variable(r)),a.add(d.issue,n,d[r])}}const f={};m.each(void 0,s.ns.rdfs("subClassOf"),a).forEach(function(e){(m.holds(e,s.ns.rdfs("subClassOf"),s.ns.wf("Open"))||e.sameTerm(s.ns.wf("Open")))&&(f[e.uri]=!0)});const g=(0,s.table)(r,{query:l,keyVariable:"?issue",sortBy:"?created",sortReverse:!0,hints:{"?issue":{linkFunction:function(e){const n=h.sym(e);(0,u.exposeOverlay)(n,t)},label:"Title"},"?created":{cellFormat:"shortDate"},"?state":{initialSelection:f,label:"Status"}}}),v=m.any(e,s.ns.wf("stateStore"));return g.appendChild(function(e,t){return s.widgets.button(r,s.icons.iconBase+"noun_479395.svg","refresh table",async n=>{try{await m.fetcher.load(e,{force:!0,clearPreviousData:!0})}catch(e){return void alert(e)}s.widgets.refreshTree(t)})}(v,g)),g}(k));else if(i.sameTerm(x))n.appendChild(function(e){const t=r.createElement("div");t.appendChild((0,f.csvButton)(r,e));const n=m.any(e,s.ns.wf("issueClass")),i=[w,n].concat(m.each(e,s.ns.wf("issueCategory"))),a=t.appendChild(r.createElement("div"));s.widgets.renderNameValuePair(r,m,a,null,"Default view").appendChild(s.widgets.makeSelectForOptions(r,m,e,s.ns.wf("defaultView"),i,{},e.doc()));const c={dom:r,div:t,noun:"tracker"};return s.login.registrationControl(c,e,s.ns.wf("Tracker")).then(n=>{const i=s.ns.wf("TrackerSettingsForm");h.parse('@prefix : <http://www.w3.org/ns/ui#> .\n@prefix core: <http://www.w3.org/2005/01/wf/flow#>.\n@prefix dct: <http://purl.org/dc/terms/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix ui: <http://www.w3.org/ns/ui#> .\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix wf: <http://www.w3.org/2005/01/wf/flow#> .\n\n core:TrackerSettingsForm a :Form;\n <http://purl.org/dc/elements/1.1/title> "Tracker Configuration Form";\n :parts (\n\n [ a ui:Heading; ui:contents "About the tracker"@en ]\n\n [ a :SingleLineTextField;\n :label "Title of issue tracker";\n :maxLength "128";\n :property dct:title;\n :size "40" ]\n\n [ a :MultiLineTextField; :label "Description"; :property wf:description; :size "40" ]\n\n [ a ui:Choice; ui:canMintNew true; ui:use core:SuperClassForm; ui:follow true;\n ui:property wf:issueClass;\n ui:label "What states can an issue be in?";\n ui:from rdfs:Class;\n ui:default wf:Task ]\n\n [ a ui:Comment; ui:contents """You can optionally sort issues using (one or more) classification systems"""@en ]\n\n\n [ a ui:Multiple; ui:canMintNew true; ui:part core:ClassificationForm;\n ui:property wf:issueCategory; ui:label "Sort them into which category?"; ui:from rdfs:Class ]\n\n [ a :BooleanField;\n :label "Allow issues to have sub-issues";\n :property wf:allowSubIssues;\n :default false ]\n\n [ a ui:Heading; ui:contents "Table view:"@en ]\n\n [ a ui:Comment; ui:contents "Any extra properties to include?"@en ]\n\n\n [a ui:Multiple; ui:property wf:propertyList; ui:ordered true; ui:part core:PropertyForm; ui:follow true ]\n\n [ a ui:Heading; ui:contents "Details of issues"@en ]\n\n # Use a people picker ideally\n [ a ui:Choice; ui:canMintNew true; ui:use core:GroupForm;\n ui:property wf:assigneeGroup;\n ui:label "Assign issues to people from which group?";\n ui:from vcard:Group;\n ]\n\n # Optionally one form for extras\n\n [ a ui:Choice; ui:canMintNew true; ui:use ui:FormForm;\n ui:property wf:extrasEntryForm;\n ui:label "Other things to save about each issue?";\n ui:from ui:Form;\n ]\n\n\n ) .\n\n # Form for the superclass of all states\n # @@ also We must require each state class to be stated to be a subclass of EITHER Open OR Closed.\n core:SuperClassForm a ui:Form; dct:title "Form for managing states";\n ui:parts (\n [ a :SingleLineTextField;\n :label "Name of set of states";\n :defualt "States";\n :maxLength "128";\n :property rdfs:label;\n :size "40" ]\n [a ui:Multiple; ui:property owl:disjointUnionOf; ui:ordered true; ui:part core:StateForm ]\n # [ a ui:Multiple; ui:property rdfs:subClassOf; ui:reverse true; ui:part core:StateForm ]\n ) .\n\n core:StateForm a ui:Form; dct:title "Form for one state";\n ui:parts (\n [ a :SingleLineTextField;\n :label "Name of state";\n :maxLength "128";\n :property rdfs:label;\n :size "40" ]\n [ a :ColorField; :label "Background color"; :property :backgroundColor ]\n # @@ add icon for state\n\n ).\n\n\n # Form for Classification\n\n core:ClassificationForm a ui:Form; dct:title "Form for a classification by categpry";\n ui:parts (\n [ a :SingleLineTextField;\n :label "Name of classification:";\n :maxLength "128";\n :property rdfs:label;\n :size "40" ]\n [a ui:Multiple; ui:property owl:disjointUnionOf; ui:ordered true; ui:part core:CategoryForm ]\n ) .\n\n core:CategoryForm a ui:Form; dct:title "Form for a category";\n ui:parts (\n [ a :SingleLineTextField;\n :label "Name of category";\n :maxLength "128";\n :property rdfs:label;\n :size "40" ]\n [ a :ColorField; :label "Background color"; :property :backgroundColor ]\n\n ).\n\n core:PropertyForm a ui:Form; ui:parts ( # Internded for raed only only marking the\n [ a :SingleLineTextField;\n :label "(property name)";\n :maxLength "128";\n :property rdfs:label;\n :size "40" ]\n ).\n\n\n # Other ontology stuff we are otherwis missing\n\n # we can usde ui:label to give a decent abel when the ontology uses a really bad one\n rdfs:subClassOf ui:label "super class" .\n # We can also add a specific nice label for the inverse\n [] owl:inverse rdfs:subClassOf; rdfs:label "sub class" .\n owl:disjointUnionOf ui:label "option" .\n\n # Form for new group\n\n\n core:GroupForm a ui:Form; dct:title "Form for new contacts group"; ui:parts (\n [ a :SingleLineTextField;\n :label "Name of new group";\n :maxLength "128";\n :property vcard:fn;\n :size "60" ]\n\n [ a ui:Heading; ui:contents "Members of group"@en ]\n\n [ a ui:Multiple; ui:label "contacts in group"; ui:property vcard:member; ui:part core:PersonForm ]\n\n ).\n\n core:PersonForm a ui:Form; dct:title "New contact details form"; ui:parts (\n\n [ a :NamedNodeURIField; ui:label "Solid ID"; ui:property owl:sameAs; ui:size 60 ]\n\n [ a :SingleLineTextField;\n :label "Name of contact";\n :maxLength "128";\n :property vcard:fn;\n :size "60" ]\n\n [ a ui:PhoneField; :label "Phone"; :property vcard:phone; ] # @@ check property]\n\n [ a :EmailField; :label "Email"; :property vcard:email ] # @@ check property\n\n ).\n\n# classificattion owl:disjointUnionOf ()\n wf:Tracker :creationForm core:SettingsForm .\n',m,i.doc().uri,"text/turtle"),s.widgets.appendForm(r,t,{},e,i,e.doc(),o)}),t}(k));else if(i.sameTerm(A))n.appendChild(function(e){const t=r.createElement("div"),n={dom:r,div:t,noun:"tracker"};return s.login.registrationList(n,{public:!0,private:!0,type:e}).then(e=>{t.appendChild(v(t))}),t}(s.ns.wf("Tracker")));else{if(!m.holds(k,s.ns.wf("issueCategory"),i)&&!m.holds(k,s.ns.wf("issueClass"),i))throw new Error("Unexpected tab type: "+i);n.appendChild(g(k,i))}},items:i,selectedTab:m.any(k,s.ns.wf("defaultView"),null,k.doc())||w},c=A.doc();return m.add(A,s.ns.rdfs("label"),"My Trackers",c),m.add(x,s.ns.rdfs("label"),"Settings",c),m.add(n,s.ns.rdfs("label"),"By State",c),s.tabs.tabWidget(a)}t.paneDiv=i,i.setAttribute("class","issuePane");const y=s.ns.wf("BoardView"),w=s.ns.wf("TableView"),x=s.ns.wf("SettingsView"),A=s.ns.wf("InstancesView"),E=m.updater,C=m.findTypeURIs(e);let k;const _=s.ns.wf("").doc();m.holds(void 0,void 0,void 0,_)||h.parse(n(240),m,_.uri,"text/turtle");const S=s.ns.ui("").doc();let T;m.holds(void 0,void 0,void 0,S)||h.parse(n(197),m,S.uri,"text/turtle"),C["http://www.w3.org/2005/01/wf/flow#Task"]||m.holds(e,s.ns.wf("tracker"))?async function(){if(k=m.any(e,s.ns.wf("tracker")),!k)throw new Error("This issue "+e+"has no tracker");try{await t.session.store.fetcher.load(k.doc())}catch(e){return a("Failed to load tracker config "+k.doc()+": "+e)}const n=m.any(k,s.ns.wf("stateStore"));if(!n)return a("Tracker has no state store: "+k);try{await t.session.store.fetcher.load(e)}catch(e){return a("Failed to load issue state "+n+": "+e)}i.appendChild((0,u.renderIssue)(e,t)),E.addDownstreamChangeListener(n,function(){s.widgets.refreshTree(i)})}().then(()=>{}):C["http://www.w3.org/2005/01/wf/flow#Tracker"]&&async function(){function n(e){s.widgets.refreshTree(i),(0,u.exposeOverlay)(e,t),f.disabled=!1}k=e;try{await async function(e,t){async function n(t){const n=e.any(t,s.ns.owl("disjointUnionOf"),null,r);if(!n)throw new Error(`Classification ${t} has no disjointUnionOf`);if(!n.elements)throw new Error(`Classification ${t} has no array`);const i=new Set(n.elements.map(e=>e.uri)),a=new Set(e.each(null,s.ns.rdfs("subClassOf"),t,r).map(e=>e.uri)),o=[...a].filter(e=>!i.has(e)).map(n=>({action:"delete",st:h.st(e.sym(n),s.ns.rdfs("subClassOf"),t,r)})),c=[...i].filter(e=>!a.has(e)).map(n=>({action:"insert",st:h.st(e.sym(n),s.ns.rdfs("subClassOf"),t,r)}));return o.concat(c)}const r=t.doc(),i=e.any(t,s.ns.wf("issueClass")),a=e.each(t,s.ns.wf("issueCategory")).concat([i]);let o=[];for(const e of a)o=o.concat(await n(e));if(o.length){const t=o.filter(e=>"insert"===e.action).map(e=>e.st),n=o.filter(e=>"delete"===e.action).map(e=>e.st);confirm(`Fix ${o} inconsistent subclasses in tracker config?`)&&await e.updater.update(n,t)}}(m,k)}catch(e){}const a=m.any(e,s.ns.wf("issueClass"));if(!a)throw new Error("This tracker has no issueClass");const o=m.any(e,s.ns.wf("stateStore"));if(!o)throw new Error("This tracker has no stateStore");const c=r.createElement("h2");c.setAttribute("style","font-size: 150%"),i.appendChild(c);const l=s.utils.label(a);c.appendChild(r.createTextNode(l+" list"));const f=r.createElement("button"),g=r.createElement("div");f.setAttribute("type","button"),f.setAttribute("style","padding: 0.3em; font-size: 100%; margin: 0.5em;"),g.appendChild(f),i.appendChild(g);const v=r.createElement("img");v.setAttribute("src",s.icons.iconBase+"noun_19460_green.svg"),v.setAttribute("style","width: 1em; height: 1em; margin: 0.2em;"),f.appendChild(v);const y=r.createElement("span");y.innerHTML="New "+l,f.appendChild(y),f.addEventListener("click",function(e){f.disabled=!0,g.appendChild((0,p.newIssueForm)(r,m,k,null,n))},!1),t.session.store.fetcher.load([o]).then(function(n){const r=b();i.appendChild(r),r.refresh,i.appendChild((0,d.newTrackerButton)(e,t)),E.addDownstreamChangeListener(o,r.refresh)}).catch(function(e){})}().then(()=>{});const P=i.appendChild(r.createElement("div"));return t.overlay=P,P.style="position: fixed; z-index: 100; top: 1.51em; right: 2em; left: 2em; bottom:1.5em; border: 0.1em grey; overflow: scroll;",P.style.visibility="hidden",c.authn.checkUser().then(e=>{e?t.me=e:(T=s.login.loginStatusBox(r,e=>{e?(t.me=m.sym(e),i.removeChild(T)):t.me=null}),T.setAttribute("style","margin: 0.5em 1em;"),i.appendChild(T),t.statusArea||(t.statusArea=i.appendChild(r.createElement("div"))))}),i}};return o})())},1927(e,t,n){var r;r=(e,t,n)=>(()=>{"use strict";var r={264(e){e.exports=t},426(t){t.exports=e},663(e){e.exports=n}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={exports:{}};return r[e](n,n.exports,a),n.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};a.r(o),a.d(o,{default:()=>f});var s=a(426),c=a(264),l=a(663);const{typeIndex:u}=l.solidLogicSingleton,{loadTypeIndexesFor:d}=u,p=s.ns,f={icon:s.icons.iconBase+"noun_66617.svg",name:"meeting",audience:[p.solid("PowerUser")],label:function(e,t){const n=t.session.store,r=s.ns;return n.holds(e,r.rdf("type"),r.meeting("Meeting"))?"Meeting":null},mintClass:s.ns.meeting("Meeting"),mintNew:function(e,t){return new Promise(function(n,r){const i=e.session.store,a=s.ns;t.newInstance=t.newInstance||i.sym(t.newBase+"index.ttl#this");const o=t.newInstance,u=o.doc(),d=l.authn.currentUser();d&&i.add(o,a.dc("author"),d,u),i.add(o,a.rdf("type"),a.meeting("Meeting"),u),i.add(o,a.dc("created"),new Date,u),i.add(o,a.ui("backgroundColor"),new c.Literal("#ddddcc",void 0,a.xsd("color")),u);const p=new c.Collection;i.add(o,a.meeting("toolList"),p,u),p.elements.push(o),i.updater.put(u,i.statementsMatching(void 0,void 0,void 0,u),"text/turtle",function(e,i,a){i?n(t):r(new Error("Error writing meeting configuration: "+a))})})},render:function(e,t){const n=t.dom,r=t.session.store,i=s.ns,a=r.updater,o=this,u=function(e,t){const r=n.createElement("pre");r.setAttribute("style","background-color: "+t||0),g.appendChild(r),r.appendChild(n.createTextNode(e))},p=function(e,t){e||u(t)},f=e,h=e.doc(),m=e.dir().uri,g=n.createElement("div"),v=g.appendChild(n.createElement("table"));v.style="width: 100%; height: 100%; margin:0;";const b=v.appendChild(n.createElement("tr"));b.appendChild(n.createElement("div"));const y=v.appendChild(n.createElement("tr")),w=v.appendChild(n.createElement("td")).appendChild(n.createElement("table")).appendChild(n.createElement("tr"));b.setAttribute("style","height: 2em;");let x=null;const A=function(){a.put(h,r.statementsMatching(void 0,void 0,void 0,h),"text/turtle",function(e,t,n){t?(G.refresh(),$()):u(n="FAILED to save new thing at: "+h+" : "+n)})},E=function(e,t,n){const o=t.doc();n&&r.add(f,n,t,o),r.add(t,i.meeting("parentMeeting"),f,o),a.put(o,r.statementsMatching(void 0,void 0,void 0,o),"text/turtle",function(e,n,r){n?A():u("FAILED to save new tool at: "+t+" : "+r)})},C=function(e,t,n,a){t&&r.add(f,t,e,h);const o=s.widgets.newThing(h);return n&&r.add(o,i.rdfs("label"),n,h),a&&r.add(o,i.meeting("icon"),r.sym(a),h),r.add(o,i.rdf("type"),i.meeting("Tool"),h),r.add(o,i.meeting("target"),e,h),r.the(f,i.meeting("toolList")).elements.push(o),o};function k(e){const t=/https:\/\/www\.google\..*\/maps\//,n="https://www.google.com/maps/embed/v1/",r=e.uri;if(!r.match(t))return e;if(r.startsWith(n))return e;const i=r.replace(t,n)+"&key=AIzaSyB8aaT6bY9tcLCmc2oPCkdUYLmTOWM8R54";return c.sym(i)}const _=function(n){Promise.all(n.map(function(n){return function(n){return new Promise(function(a){const o=n.uri;if(o.startsWith("http:")&&o.indexOf("#")<0)return function(n){const a=i.wf("attachment");r.add(e,a,n,e.doc()),R({icon:"noun_160581.svg",limit:1,shareTab:!0},{newInstance:e,pane:t.session.paneRegistry.byName("link"),predicate:i.meeting("attachmentTool"),tabTitle:"Links",view:"link",noIndexHTML:!0})}(n),a(n);r.fetcher.nowOrWhenFetched(n,function(e,t){function l(e){e=k(e);const t=C(e,s.ns.wf("attachment"),s.utils.label(e),null);return r.add(t,s.ns.meeting("view"),"iframe",h),a(e)}if(e){const e=n,t=r.findTypeURIs(e);for(const e in t);if(i.vcard("Individual").uri in t||i.foaf("Person").uri in t||i.foaf("Agent").uri in t)return function(e){const t=r.any(e,i.foaf("preferredURI")),n=t?r.sym(t):e,a=r.any(f,i.meeting("attendeeGroup")),o=function(e,t){const n=[c.st(t,s.ns.vcard("hasMember"),e,t.doc())],a=r.any(e,i.vcard("fn"))||r.any(e,i.foaf("name"));a&&n.push(c.st(e,s.ns.vcard("fn"),a,t.doc())),r.fetcher.nowOrWhenFetched(t.doc(),void 0,function(e,i){e?r.updater.update([],n,function(e,t,n){p(t,n)}):u("Can't read group to add person"+t)})};a?o(n,a):F().then(function(e){const t=e.newInstance;o(n,t),r.fetcher.putBack(h,{contentType:"text/turtle"}).then(function(e){})}).catch(function(e){u(e)})}(n),a(n);if(o.startsWith("https:")&&o.indexOf("#")<0){const e=r.fetcher.getHeader(n,"x-frame-options");let t=!0;if(e)for(let n=0;n<e.length;n++)e[n].indexOf("sameorigin")<0&&(t=!1),e[n].indexOf("deny")<0&&(t=!1);if(t)return function(e){const t=C(e,s.ns.wf("attachment"),s.utils.label(e),null);r.add(t,s.ns.meeting("view"),"iframe",h)}(n=k(n)),a(n)}return l(n)}return l(n)})})}(c.sym(n))})).then(function(e){A()})},S=function(e){s.widgets.uploadFiles(r.fetcher,e,f.dir().uri+"Files",f.dir().uri+"Pictures",function(e,t){e.type.startsWith("image/")?T("Files"):P("Pictures")})},T=function(e){return R({icon:"noun_598334.svg",limit:1,shareTab:!0},{newInstance:r.sym(f.dir().uri+e+"/"),pane:t.session.paneRegistry.byName("folder"),predicate:i.meeting("pictures"),shareTab:!0,tabTitle:e,view:"slideshow",noIndexHTML:!0})},P=function(e){return R({icon:"noun_681601.svg",limit:1,shareTab:!0},{newInstance:r.sym(f.dir().uri+"Files/"),pane:t.session.paneRegistry.byName("folder"),predicate:i.meeting("materialsFolder"),tabTitle:"Materials",noIndexHTML:!0})},F=function(){return R({icon:"noun_339237.svg",limit:1,shareTab:!0},{newInstance:r.sym(f.dir().uri+"Attendees/index.ttl#this"),pane:t.session.paneRegistry.byName("contact"),predicate:i.meeting("attendeeGroup"),tabTitle:"Attendees",instanceClass:i.vcard("Group"),instanceName:s.utils.label(e)+" attendees",noIndexHTML:!0})};function R(e,n){return new Promise(function(r,i){const a=t.session.store;if(!n.useExisting){const t=a.any(f,n.predicate);if(t){if(e.limit&&1===e.limit&&!e.shareTab)return u("Already have "+t+" as "+s.utils.label(n.predicate)),u("Cant have two"),r(null);if(e.shareTab)return r({me:x,newInstance:t,instanceClass:n.instanceClass})}}x||n.me||i(new Error("Username not defined for new tool")),n.me=n.me||x,n.newInstance=n.useExisting||n.newInstance||a.sym(n.newBase+"index.ttl#this"),n.pane.mintNew(t,n).then(function(e){const t=C(e.newInstance,e.predicate,e.tabTitle,e.pane.icon);e.view&&a.add(t,s.ns.meeting("view"),e.view,h),A(),a.fetcher.putBack(h,{contentType:"text/turtle"}).then(function(t){r(e)}).catch(function(e){i(e)})}).catch(function(e){u(e),i(e)})})}const I=function(){const e=s.login.selectWorkspace(n,{noun:"meeting"},function(r,i){o.mintNew(t,{newBase:i}).then(function(t){const r=t.newInstance;j.removeChild(e);const i=j.appendChild(n.createElement("p"));i.setAttribute("style","font-size: 140%;"),i.innerHTML="Your <a target='_blank' href='"+r.uri+"'><b>new meeting</b></a> is ready to be set up. <br/><br/><a target='_blank' href='"+r.uri+"'>Go to your new meeting.</a>"}).catch(function(t){j.removeChild(e),j.appendChild(s.widgets.errorMessageBlock(n,t))})});j.appendChild(e)},N=[{icon:"noun_339237.svg",maker:function(e){const n=m+"Group/",r=t.session.store;let a=r.any(f,i.meeting("particpants"));a||(a=c.sym(n+"index.ttl#this"));const o=C(a,i.meeting("particpants"),"Particpants",s.icons.iconBase+"noun_339237.svg");r.add(o,s.ns.meeting("view"),"peoplePicker",h),A()},hint:"Make a group of people",limit:1},{icon:"noun_346777.svg",maker:function(e){return R(e,{useExisting:f,pane:t.session.paneRegistry.byName("schedule"),view:"schedule",tabTitle:"Schedule poll",noIndexHTML:!0})},hint:"Make a poll to schedule the meeting"},{icon:"noun_48218.svg",maker:function(e){},limit:1,hint:"Add an agenda list",disabled:!0},{icon:"noun_79217.svg",maker:function(e){return R(e,{newBase:m+"SharedNotes/",predicate:s.ns.meeting("sharedNotes"),tabTitle:"Shared Notes",pane:t.session.paneRegistry.byName("pad")})},hint:"Add a shared notepad"},{icon:"noun_346319.svg",maker:function(e){const n=m+"Chat/",r=t.session.store;if(r.holds(f,i.meeting("chat")))return;const a=r.sym(n+"chat.ttl");r.add(a,i.rdf("type"),i.meeting("Chat"),a),C(a,i.meeting("chat"),"Chat",s.icons.iconBase+"noun_346319.svg"),E(0,a,i.meeting("chat"))},limit:1,hint:"Add a chat channel for the meeting"},{icon:"noun_17020.svg",maker:function(e){const n=m+"Actions/",r=t.session.store;if(r.holds(f,i.meeting("actions")))return;const a=r.sym(n+"config.ttl"),o=r.sym(n+"config.ttl#this"),c=r.sym(n+"state.ttl");r.add(o,i.dc("title"),(r.anyValue(f,i.cal("summary"))||"Meeting ")+" actions",a),r.add(o,i.wf("issueClass"),i.wf("Task"),a),r.add(o,i.wf("initialState"),i.wf("Open"),a),r.add(o,i.wf("stateStore"),c,a),r.add(o,i.wf("assigneeClass"),i.foaf("Person"),a),r.add(o,i.rdf("type"),i.wf("Tracker"),a),r.add(o,i.rdf("type"),i.wf("Tracker"),a),C(o,i.meeting("actions"),"Actions",s.icons.iconBase+"noun_17020.svg"),E(0,o,i.meeting("actions"))},limit:1,hint:"Add a list of action items"},{icon:"noun_260227.svg",maker:function(e){const n=t.session.store,r=c.sym("https://meet.jit.si/"+s.utils.genUuid());if(n.holds(f,i.meeting("videoCallPage")))return;n.add(r,i.rdf("type"),i.meeting("VideoCallPage"),h);const a=C(r,i.meeting("videoCallPage"),"Video call",s.icons.iconBase+"noun_260227.svg");n.add(a,i.meeting("view"),"iframe",h),A()},limit:1,hint:"Add a video call for the meeting"},{icon:"noun_25830.svg",maker:function(e){s.widgets.askName(n,r,j,i.log("uri"),s.ns.rdf("Resource")).then(function(e){if(!e)return $();const n=t.session.store,r=s.ns,i=n.sym(e),a=C(i,r.wf("attachment"),s.utils.label(i),null);n.add(a,r.meeting("view"),"iframe",h),A()}).catch(function(e){u("Error making new sub-meeting: "+e)})},hint:"Attach meeting materials",disabled:!1},{icon:"noun_123691.svg",maker:function(e){const n=t.session.store,r=s.ns,i=f.dir();if(e.limit&&1===e.limit&&n.holds(f,r.wf("sharingControl")))return void u("Ignored - already have "+s.utils.label(V.predicate));const a=C(i,r.wf("sharingControl"),"Sharing",s.icons.iconBase+"noun_123691.svg");n.add(a,r.meeting("view"),"sharing",h),A()},limit:1,hint:"Control Sharing",disabled:!1},{icon:"noun_66617.svg",maker:function(e){s.widgets.askName(n,r,j,i.foaf("name"),s.ns.meeting("Meeting")).then(function(n){if(!n)return $();const r=encodeURIComponent(n),i={newBase:m+r+"/",predicate:s.ns.meeting("subMeeting"),tabTitle:n,pane:t.session.paneRegistry.byName("meeting")};return R(e,i)}).catch(function(e){u("Error making new sub-meeting: "+e)})},hint:"Make a sub meeting",disabled:!1}],L=c.sym("https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#settings");c.parse('@prefix : <http://www.w3.org/ns/ui#> .\n@prefix f: <#> .\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix meeting: <http://www.w3.org/ns/pim/meeting#>.\n@prefix ns: <http://www.w3.org/2006/vcard/ns#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix te: <http://purl.org/dc/terms/> .\n@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n\n f:main a :Form;\n cal:summary "Meeting Details";\n :part f:titleField, f:locationField, f:startField,\n f:endField, f:eventComment, f:colorField .\n\n f:titleField a :SingleLineTextField;\n :maxLength 256;\n :property cal:summary;\n :label "Name of meeting";\n :size 80 .\n\n f:locationField a :SingleLineTextField;\n :maxLength 128;\n :property cal:location;\n :size 40 .\n\n f:startField a :DateField;\n :label "Start";\n :property cal:dtstart .\n\n f:endField a :DateField;\n :label "End";\n :property cal:dtend .\n\n f:colorField a :ColorField;\n :label "Tab color";\n # :default "#ddddcc"^^xsd:color;\n :property ui:backgroundColor .\n\n f:eventComment\n a ui:MultiLineTextField;\n # ui:maxLength\n # "1048";\n # ui:size\n # "40".\n ui:property\n cal:comment.\n\n###################################################\n\nf:settings a :Form;\n dc:title "Tab settings";\n :part f:labelField, f:targetField, f:viewField.\n\n f:labelField a :SingleLineTextField;\n :maxLength 128;\n :property rdfs:label;\n :label "Label on tab";\n :size 40 .\n\n f:targetField a :NamedNodeURIField;\n :maxLength 1024; # Longer?\n :property meeting:target;\n :label "URL of resource";\n :size 80 .\n\n f:colorField2 a :ColorField;\n :label "Tab color";\n # :default "#ddddcc"^^xsd:color;\n :property ui:backgroundColor .\n\n f:viewField a :SingleLineTextField;\n :maxLength 128;\n :property meeting:view;\n :label "View mode (experts only)";\n :size 40 .\n\n#\n',r,L.doc().uri,"text/turtle");const B="padding: 1em; width: 3em; height: 3em;",O=w.appendChild(n.createElement("td")),j=w.appendChild(n.createElement("td")),D=O.appendChild(n.createElement("img"));let M=!1;D.setAttribute("src",s.icons.iconBase+"noun_19460_green.svg"),D.setAttribute("style",B+"opacity: 50%;"),D.setAttribute("title","Add another tool to the meeting");const U=function(e){M=!M,D.setAttribute("style",B+(M?"background-color: yellow;":"")),q(M?"":"display: none;")};let z;l.authn.checkUser().then(e=>{if(e)return x=e,D.addEventListener("click",U),void D.setAttribute("style",B);z=s.login.loginStatusBox(n,e=>{e?(x=r.sym(e),j.removeChild(z),D.addEventListener("click",U),D.setAttribute("style",B)):x=null}),z.setAttribute("style","margin: 0.5em 1em;"),j.appendChild(z)});const H=[];for(let e=0;e<N.length;e++)(function(){const t=N[e],r=O.appendChild(n.createElement("img"));r.setAttribute("src",s.icons.iconBase+t.icon),r.setAttribute("style",B+"display: none;"),H.push(r),r.tool=t;const i=t.maker;t.disabled||r.addEventListener("click",function(e){W(r),i(t)})})();const q=function(e){for(let t=0;t<H.length;t++){let n=B+e;N[t].disabled&&(n+="opacity: 0.3;"),H[t].setAttribute("style",n)}},$=function(){q("display: none;"),D.setAttribute("style",B)},W=function(e){q("display: none;"),e.setAttribute("style",B+"background-color: yellow;")},V={dom:n};V.predicate=i.meeting("toolList"),V.subject=e,V.ordered=!0,V.orientation=1,V.renderMain=function(e,a){let o,p=null,m=null;e.innerHTML="";const g=function(t,n){t||(e.textContent=""+n)},v=function(){e.appendChild(n.createElement("h3")).textContent="Details of meeting";const t=c.sym("https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#main");s.widgets.appendForm(document,e,{},f,t,f.doc(),g),e.appendChild(function(){const e=n.createElement("div"),t=e.appendChild(n.createElement("p"));return t.setAttribute("style","margin: 0em; padding:3em; color: #888;"),t.textContent="Tip: Drag URL-bar icons of web pages into the tab bar on the left to add new meeting materials.",e}()),x=l.authn.currentUser(),x&&r.add(f,i.dc("author"),x,h);const a={noun:"meeting",me:x,statusArea:e,div:e,dom:n};s.login.registrationControl(a,f,i.meeting("Meeting")).then(function(e){}),s.pad.manageParticipation(n,e,h,f,x,{});const o="height: 2em; width: 2em; margin:0.5em;",u=e.appendChild(n.createElement("div")),d=u.appendChild(n.createElement("img"));d.setAttribute("src",s.icons.iconBase+"noun_145978.svg"),d.setAttribute("title","Make a fresh new meeting"),d.addEventListener("click",I),d.setAttribute("style",o);const p=u.appendChild(n.createElement("a"));p.setAttribute("href","https://github.com/solid/solid-panes"),p.setAttribute("target","_blank");const m=p.appendChild(n.createElement("img"));m.setAttribute("src",s.icons.iconBase+"noun_368567.svg"),m.setAttribute("title","Fork me on github"),m.setAttribute("style",o+"opacity: 50%;")};if(r.holds(a,i.rdf("type"),i.meeting("Tool"))){const h=r.any(a,i.meeting("target"));if(h.sameTerm(f)&&!r.any(a,i.meeting("view")))v();else{let g=r.any(a,i.meeting("view"));g=g?g.value:null,"details"===g?v():"peoplePicker"===g?function(){const t={div:e,dom:n};e.appendChild(n.createElement("h4")).textContent="Meeting Participants";const a=function(e){const t=[c.st(f,i.meeting("particpantGroup"),e,f.doc())];r.updater.update([],t,function(t,n,r){n?m=e:u("Cant save participants group: "+r)})};m=r.any(f,i.meeting("particpantGroup")),l.authn.checkUser().then(e=>{e&&d(r.sym(e)).then(function(){const e={defaultNewGroupName:"Meeting Participants",selectedGroup:m};new s.widgets.PeoplePicker(t.div,t.index.private[0],a,e).render()})})}():"iframe"===g?function(t){const r=e.appendChild(n.createElement("iframe"));r.setAttribute("src",t.uri),r.setAttribute("style","border: none; margin: 0; padding: 0; height: 100%; width: 100%;"),r.setAttribute("allow","microphone camera"),r.setAttribute("name","disable-x-frame-options"),e.style.padding=0}(h):(p=g?t.session.paneRegistry.byName(g):null,o=e.appendChild(n.createElement("table")),o.style.width="100%",t.getOutliner(n).GotoSubject(h,!0,p,!1,void 0,o))}}else a.sameTerm(f)?v():(!a.sameTerm(a.doc())||r.holds(a,s.ns.rdf("type"),s.ns.meeting("Chat"))||r.holds(a,s.ns.rdf("type"),s.ns.meeting("PaneView")))&&(o=e.appendChild(n.createElement("table")),t.getOutliner(n).GotoSubject(a,!0,void 0,!1,void 0,o))},V.renderTab=function(e,t){if(r.holds(t,i.rdf("type"),i.meeting("Tool"))){const a=r.any(t,i.meeting("target"));let o=r.any(t,i.rdfs("label"));o=o?o.value:s.utils.label(a);const c=e.appendChild(n.createElement("div"));c.textContent=o,c.setAttribute("style","margin-left: 0.7em");const l=r.any(t,i.meeting("icon"));if(l){const t=e.appendChild(n.createElement("table")).appendChild(n.createElement("tr")),r=t.appendChild(n.createElement("td")),i=t.appendChild(n.createElement("td")),a=r.appendChild(n.createElement("img"));a.setAttribute("src",l.uri),a.setAttribute("style","width: 1.5em; height: 1.5em;"),a.setAttribute("title",o),i.appendChild(c)}else e.appendChild(c)}else e.textContent=s.utils.label(t)},V.renderTabSettings=function(e,t){if(e.innerHTML="",e.style+="border-color: #eed;",e.appendChild(n.createElement("h3")).textContent="Adjust this tab",r.holds(t,i.rdf("type"),i.meeting("Tool"))){const a=c.sym("https://solid.github.io/solid-panes/meeting/meetingDetailsForm.ttl#settings");s.widgets.appendForm(document,e,{},t,a,f.doc(),p),s.widgets.deleteButtonWithCheck(n,e,"tab",function(){const e=r.the(f,i.meeting("toolList"));for(let n=0;n<e.elements.length;n++)if(e.elements[n].sameTerm(t)){e.elements.splice(n,1);break}const n=r.any(t,i.meeting("target")),a=r.statementsMatching(t).concat(r.statementsMatching(void 0,void 0,t)).concat(r.statementsMatching(f,void 0,n));r.remove(a),A()}).setAttribute("style","width: 1.5em; height: 1.5em;")}else e.appendChild(n.createElement("h4")).textContent="(No adjustments available)"},V.backgroundColor=r.anyValue(e,i.ui("backgroundColor"))||"#ddddcc";const G=y.appendChild(s.tabs.tabWidget(V));return s.aclControl.preventBrowserDropEvents(n),s.widgets.makeDropTarget(G.tabContainer,_,S),s.widgets.makeDropTarget(O,_,S),g}};return o})(),e.exports=r(n(500),n(8230),n(9332))},7598(e,t,n){
@@ -367,7 +367,7 @@ var r=n(8287),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t
367
367
  *
368
368
  * This source code is licensed under the MIT license found in the
369
369
  * LICENSE file in the root directory of this source tree.
370
- */function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,i=e[r];if(!(0<a(i,t)))break e;e[r]=t,e[n]=i,n=r}}function r(e){return 0===e.length?null:e[0]}function i(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,i=e.length,o=i>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>a(c,n))l<i&&0>a(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else{if(!(l<i&&0>a(u,n)))break e;e[r]=u,e[l]=n,r=l}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}var l=[],u=[],d=1,p=null,f=3,h=!1,m=!1,g=!1,v=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=r(u);null!==t;){if(null===t.callback)i(u);else{if(!(t.startTime<=e))break;i(u),t.sortIndex=t.expirationTime,n(l,t)}t=r(u)}}function A(e){if(g=!1,x(e),!m)if(null!==r(l))m=!0,C||(C=!0,E());else{var t=r(u);null!==t&&I(A,t.startTime-e)}}var E,C=!1,k=-1,_=5,S=-1;function T(){return!!v||!(t.unstable_now()-S<_)}function P(){if(v=!1,C){var e=t.unstable_now();S=e;var n=!0;try{e:{m=!1,g&&(g=!1,y(k),k=-1),h=!0;var a=f;try{t:{for(x(e),p=r(l);null!==p&&!(p.expirationTime>e&&T());){var o=p.callback;if("function"==typeof o){p.callback=null,f=p.priorityLevel;var s=o(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,x(e),n=!0;break t}p===r(l)&&i(l),x(e)}else i(l);p=r(l)}if(null!==p)n=!0;else{var c=r(u);null!==c&&I(A,c.startTime-e),n=!1}}break e}finally{p=null,f=a,h=!1}n=void 0}}finally{n?E():C=!1}}}if("function"==typeof w)E=function(){w(P)};else if("undefined"!=typeof MessageChannel){var F=new MessageChannel,R=F.port2;F.port1.onmessage=P,E=function(){R.postMessage(null)}}else E=function(){b(P,0)};function I(e,n){k=b(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e||(_=0<e?Math.floor(1e3/e):5)},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_requestPaint=function(){v=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,i,a){var o=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0<a?o+a:o:a=o,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:i,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>o?(e.sortIndex=a,n(u,e),null===r(l)&&e===r(u)&&(g?(y(k),k=-1):g=!0,I(A,a-o))):(e.sortIndex=s,n(l,e),m||h||(m=!0,C||(C=!0,E()))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},9982(e,t,n){"use strict";e.exports=n(4477)},5386(e){const t={acl:"http://www.w3.org/ns/auth/acl#",arg:"http://www.w3.org/ns/pim/arg#",as:"https://www.w3.org/ns/activitystreams#",bookmark:"http://www.w3.org/2002/01/bookmark#",cal:"http://www.w3.org/2002/12/cal/ical#",cco:"http://www.ontologyrepository.com/CommonCoreOntologies/",cert:"http://www.w3.org/ns/auth/cert#",contact:"http://www.w3.org/2000/10/swap/pim/contact#",dc:"http://purl.org/dc/elements/1.1/",dct:"http://purl.org/dc/terms/",doap:"http://usefulinc.com/ns/doap#",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",gpx:"http://www.w3.org/ns/pim/gpx#",gr:"http://purl.org/goodrelations/v1#",http:"http://www.w3.org/2007/ont/http#",httph:"http://www.w3.org/2007/ont/httph#",icalTZ:"http://www.w3.org/2002/12/cal/icaltzd#",ldp:"http://www.w3.org/ns/ldp#",link:"http://www.w3.org/2007/ont/link#",log:"http://www.w3.org/2000/10/swap/log#",meeting:"http://www.w3.org/ns/pim/meeting#",mo:"http://purl.org/ontology/mo/",org:"http://www.w3.org/ns/org#",owl:"http://www.w3.org/2002/07/owl#",pad:"http://www.w3.org/ns/pim/pad#",patch:"http://www.w3.org/ns/pim/patch#",prov:"http://www.w3.org/ns/prov#",pto:"http://www.productontology.org/id/",qu:"http://www.w3.org/2000/10/swap/pim/qif#",trip:"http://www.w3.org/ns/pim/trip#",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",rss:"http://purl.org/rss/1.0/",sched:"http://www.w3.org/ns/pim/schedule#",schema:"http://schema.org/",sioc:"http://rdfs.org/sioc/ns#",skos:"http://www.w3.org/2004/02/skos/core#",solid:"http://www.w3.org/ns/solid/terms#",space:"http://www.w3.org/ns/pim/space#",stat:"http://www.w3.org/ns/posix/stat#",tab:"http://www.w3.org/2007/ont/link#",tabont:"http://www.w3.org/2007/ont/link#",ui:"http://www.w3.org/ns/ui#",vann:"http://purl.org/vocab/vann/",vcard:"http://www.w3.org/2006/vcard/ns#",wf:"http://www.w3.org/2005/01/wf/flow#",xsd:"http://www.w3.org/2001/XMLSchema#"};e.exports=function(e={namedNode:e=>e}){const n={};for(const r in t){const i=t[r];n[r]=function(t=""){return e.namedNode(i+t)}}return n}},8236(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RDFXMLPane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.RDFXMLPane={icon:r.icons.originalIconBase+"22-text-xml4.png",name:"RDFXML",audience:[o.solid("Developer")],label:function(e,t){const n=t.session.store;if("http://www.w3.org/2007/ont/link#ProtocolEvent"in n.findTypeURIs(e))return null;const r=n.statementsMatching(void 0,void 0,void 0,e).length;return 0===r?null:"As RDF/XML ("+r+")"},render:function(e,t){const n=t.dom,r=t.session.store,a=n.createElement("div");a.setAttribute("class","RDFXMLPane");const o=r.statementsMatching(void 0,void 0,void 0,e),s=i.Serializer(r);s.suggestNamespaces(r.namespaces),s.setBase(e.uri);const c=s.statementsToXML(o),l=n.createElement("PRE");return l.appendChild(n.createTextNode(c)),a.appendChild(l),a}}},6686(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_534313.svg",name:"audio",label:function(e,t){const n=t.session.store.findTypeURIs(e),r=i.Util.mediaTypeClass("audio/*").uri.split("*")[0];for(const e in n)if(e.startsWith(r))return"Play audio";return null},render:function(e,t){const n=t.session.store,r=t.dom,i=!1,a=!0,s=!0,c=!1,l=function(e){const t=e.lastIndexOf(".");if(t<0)return e;return t<e.lastIndexOf("/")?e:e.slice(0,t)},u=function(e){const t=e.uri.split("/").slice(-3),n=function(e){try{return decodeURIComponent(e)}catch(t){return e}};v.textContent=n(t[0]),b.textContent=n(t[1]),y.textContent=n(l(t[2]))},d=function(e,t){return new Promise(function(r){if(t=t||0,!a)return r(null);const i=n.any(void 0,o.ldp("contains"),e)||e.dir();if(!i)return r(null);n.fetcher.load(i).then(function(a){const l=n.each(i,o.ldp("contains"));let u;l.sort();for(let a=0;a<l.length;a++)if(e.uri===l[a].uri){if(u=(a+1)%l.length,0!==u)return r(l[u]);if(!s)return r(c?l[u]:null);if(1===t||!s)return r(null);d(i,t+1).then(function(e){e&&n.fetcher.load(e).then(function(t){const i=n.each(e,o.ldp("contains"));return 0===i.length?r(null):(i.sort(),r(i[0]))})})}})})},p=function(e){const t=n.sym(e.target.getAttribute("src"));if(!a)return;const r=function(t){d(t).then(function(t){t&&(!function(e){const t=n.any(void 0,o.ldp("contains"),e);if(!t)return!1;const r=n.each(t,o.ldp("contains"));if(r.length<2)return!1;const i=e.uri;for(let e=0;e<r.length;e++){const t=r[e].uri;if(i.length>t.length&&i.startsWith(l(t)))return!0;if(i.endsWith(".m4a")&&t.endsWith(".mp3")&&l(i)===l(t))return!0}return!1}(t)?(u(t),w.appendChild(f(t,!0)),w.removeChild(e.target)):r(t))})};r(t)},f=function(e,t){const i=r.createElement("audio");return i.setAttribute("controls","yes"),n.fetcher._fetch(e.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);i.setAttribute("src",t)}),t&&i.setAttribute("autoplay","autoplay"),i.addEventListener("ended",p,!1),i},h=r.createElement("div"),m=h.appendChild(r.createElement("table")),g="padding: 0.3em; color:white; background-color: black;",v=m.appendChild(r.createElement("tr"));v.style.cssText=g;const b=m.appendChild(r.createElement("tr"));b.style.cssText=g;const y=m.appendChild(r.createElement("tr"));y.style.cssText=g;const w=m.appendChild(r.createElement("tr"));return u(e),w.appendChild(f(e,i)),!n.holds(void 0,o.ldp("contains"),e)&&e.dir()&&n.fetcher.load(e.dir()),h}}},5382(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.classInstancePane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.classInstancePane={icon:r.icons.originalIconBase+"tango/22-folder-open.png",name:"classInstance",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store.each(void 0,o.rdf("type"),e).length;return n>0?"List ("+n+")":null},render:function(e,t){const n=t.dom,a=t.getOutliner(n),s=t.session.store,c=function(e,t){const r=n.createElement("pre");r.setAttribute("style","background-color: "+t||0),l.appendChild(r),r.appendChild(n.createTextNode(e))},l=n.createElement("div");l.setAttribute("class","instancePane"),l.setAttribute("style"," border-top: solid 1px #777; border-bottom: solid 1px #777; margin-top: 0.5em; margin-bottom: 0.5em ");const u=s.statementsMatching(void 0,o.rdf("type"),e);if(u.length>0){const t={},d=[];u.forEach(e=>{t[e.subject.toNT()]=e});for(const n in s.findMembersNT(e))t[n]||d.push(i.st(s.fromNT(n),o.rdf("type"),e));if(d.length&&c("There are "+u.length+" explicit and "+d.length+" implicit members of "+r.utils.label(e)),e.sameTerm(o.rdf("Property")));else if(e.sameTerm(o.rdfs("Class"))){const e=s.statementsMatching(void 0,o.rdf("type"),void 0),t={};e.forEach(function(e){t[e.object]=e});const n=[];for(const e in t)n.push(i.st(i.sym(e),o.rdf("type"),o.rdfs("Class")));c("Total of "+e.length+" type statements and "+n.length+" unique types.")}if(u.length>10){const e=n.createElement("TR");e.appendChild(n.createTextNode(""+u.length)),l.appendChild(e)}a.appendPropertyTRs(l,u,!0,function(e){return!0}),d.length&&(c("Implicit:"),a.appendPropertyTRs(l,d,!0,function(e){return!0}))}return l}}},6106(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.basicPreferencesPane=void 0;var r=n(8230),i=n(500);const a=t.basicPreferencesPane={icon:i.icons.iconBase+"noun_Sliders_341315_000000.svg",name:"basicPreferences",label:e=>null,render:(e,t)=>{const n=t.dom,a=t.session.store;function s(e,t){e||c.appendChild(i.widgets.errorMessageBlock(n,t,"#fee"))}const c=n.createElement("div"),l=function(e,t){const n=o(e,t,"User types"),r=n.appendChild(t.createElement("p"));r.innerText="Here you can self-assign user types to help the data browser know which views you would like to access.";const i=n.appendChild(t.createElement("a"));i.href="https://github.com/solidos/userguide/#role",i.innerText="Read more";const a=n.appendChild(t.createElement("div"));return a}(c,n);function u(e,t){e=e.doc(),a.holds(void 0,void 0,void 0,e)||(0,r.parse)(t,a,e.uri,"text/turtle",null)}const d=a.sym("urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this");u(d,'@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> "Basic preferences" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents "Personal information".\n\n:privateComment a ui:Comment;\n ui:contents "This information is private.".\n\n:categorizeUser a ui:Classifier;\n ui:label "Level of user"; ui:property rdf:type ; ui:category solid:User.\n');return u(a.sym("urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT"),'@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label "user"@en, "utilisateur"@fr;\n rdfs:comment """Any person who might use a Solid-based system""";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label "new user"@en;\n# rdfs:comment """A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.""";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label "power user"@en;\n rdfs:comment """A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.""";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label "Developer";\n rdfs:comment """Any person who might use a Solid-based system,\n who has software development skills.""";\n rdfs:subClassOf solid:User.\n'),async function(){const e=await i.login.ensureLoadedPreferences({dom:n,div:c});if(!e.preferencesFile)return;i.widgets.appendForm(n,l,{},e.me,d,e.preferencesFile,s).style.borderStyle="none";const r=t.session.paneRegistry.byName("trustedApplications");r&&c.appendChild(r.render(null,t)),function(e,t,n,r){const a=o(e,r,"Delete account"),s=t.each(n,i.ns.space("storage"),null,n.doc()),c=s.map(e=>e.value),l=a.appendChild(r.createElement("ul"));c.forEach(async e=>{const t=await async function(e,t){const n=t.createElement("a");n.textContent=`Delete your account at ${e}`;const r=await async function(e){const t=new URL(e),n=new URL(e);n.pathname=t.pathname="/account/delete";const r=n.hostname.split(".");n.hostname=r.slice(1).join(".");if((await fetch(n.href,{method:"HEAD"})).ok)return n.href;if((await fetch(t.href,{method:"HEAD"})).ok)return t.href;return null}(e);if("string"!=typeof r)return null;return n.href=r,n}(e,r);if(t){l.appendChild(r.createElement("li")).appendChild(t)}})}(c,a,e.me,n)}(),c}};t.default=a;function o(e,t,n){const r=e.appendChild(t.createElement("div"));r.style.border="0.3em solid #418d99",r.style.borderRadius="0.5em",r.style.padding="0.7em",r.style.marginTop="0.7em";return r.appendChild(t.createElement("h3")).innerText=n,r}},5682(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.dashboardPane=void 0;var r=n(500),i=n(9332),a=n(730);const o=t.dashboardPane={icon:r.icons.iconBase+"noun_547570.svg",name:"dashboard",label:e=>"NamedNode"===e.termType&&e.uri===e.site().uri?"Dashboard":null,render:(e,t)=>{const n=t.dom.createElement("div"),r=()=>{n.innerHTML="",function(e,t,n,r){const o=new URL(window.location.href).searchParams.get("uri");if(t&&(o||t.site().uri===r.site().uri))return function(e,t){const n=t.getOutliner(t.dom);n.getDashboard().then(t=>e.appendChild(t))}(e,n);(function(e,t){const n=document.createElement("div");e.appendChild(n);const r=n.attachShadow({mode:"open"}),o=document.createElement("link");o.rel="stylesheet",o.href="/common/css/bootstrap.min.css",r.appendChild(o),(0,a.generateHomepage)(t,i.store,i.store.fetcher).then(e=>r.appendChild(e))})(e,r)}(n,i.authn.currentUser()||null,t,e)};return i.authSession.events.on("login",()=>{r()}),i.authSession.events.on("sessionRestore",()=>{r()}),r(),n}};t.default=o},730(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateHomepage=async function(e,t,n){const a=await async function(e,t,n){const a=e.site().uri,o=(0,r.sym)(`${a}profile/card#me`);try{return await n.load(o),o}catch(e){}try{await n.load(e)}catch(t){return e}const s=t.any(e,i.ns.foaf("primaryTopic"),null,e.doc());if(s&&"NamedNode"===s.termType)try{return await n.load(s),s}catch(t){return e}return e}(e,t,n),o=function(e,t){return e.anyValue(t,i.ns.vcard("fn"),null,t.doc())||e.anyValue(t,i.ns.foaf("name"),null,t.doc())||new URL(t.uri).host.split(".")[0]}(t,a),s=document.createElement("div");return s.classList.add("container"),s.appendChild(function(e,t){const n=document.createElement("a");n.href=e,n.innerText=t;const r=document.createElement("span");r.innerText="'s Pod";const i=document.createElement("h1");return i.appendChild(n),i.appendChild(r),i}(a.uri,o)),s.appendChild(function(e){const t=document.createElement("section"),n=document.createElement("h2");n.innerText="Data",t.appendChild(n);const r=document.createElement("div");r.classList.add("list-group"),t.appendChild(r);const i=document.createElement("a");return i.classList.add("list-group-item"),i.href=window.document.location.href+"public/",i.innerText=`View ${e}'s files`,r.appendChild(i),t}(o)),s};var r=n(8230),i=n(500)},1424(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dataContentPane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.dataContentPane={icon:r.icons.originalIconBase+"rdf_flyer.24.gif",name:"dataContents",audience:[o.solid("Developer")],label:function(e,t){if("http://www.w3.org/2007/ont/link#ProtocolEvent"in t.session.store.findTypeURIs(e))return null;const n=t.session.store.statementsMatching(void 0,void 0,void 0,e).length;return 0===n?null:"Data ("+n+")"},statementsAsTables:function(e,t,n){const a=t.dom,o=a.createElement("table"),s=i.Serializer(t.session.store),c=s.rootSubjects(e);let l=c.roots;const u=c.subjects,d=c.loopBreakers;for(const e in d);const p={},f={};function h(e){const t=a.createElement("table");let n=null;const i=u[s.toStr(e)];if(!i)return t.appendChild(a.createTextNode("...")),t;i.sort();let o,c=0;for(let e=0;e<i.length;e++){const s=i[e],l=a.createElement("tr");if(s.predicate.uri!==n){n&&c>1&&o.setAttribute("rowspan",""+c),o=a.createElement("td"),o.setAttribute("class","pred");const e=a.createElement("a");e.setAttribute("href",s.predicate.uri),e.addEventListener("click",r.widgets.openHrefInOutlineMode,!0),e.appendChild(a.createTextNode(r.utils.predicateLabelForXML(s.predicate))),o.appendChild(e),l.appendChild(o),n=s.predicate.uri,c=0}c++;const u=a.createElement("td");u.appendChild(m(s.object)),l.appendChild(u),t.appendChild(l)}return n&&c>1&&o.setAttribute("rowspan",""+c),t}function m(e){let n,i;switch(e.termType){case"NamedNode":return i=a.createElement("a"),i.setAttribute("href",e.uri),i.addEventListener("click",r.widgets.openHrefInOutlineMode,!0),i.appendChild(a.createTextNode(r.utils.label(e))),i;case"Literal":return e.datatype&&e.datatype.uri?"http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"===e.datatype.uri?(n=a.createElement("div"),n.setAttribute("class","embeddedXHTML"),n.innerHTML=e.value,n):a.createTextNode(e.value):(n=a.createElement("div"),n.setAttribute("style","white-space: pre-wrap;"),n.textContent=e.value,n);case"BlankNode":{if(e.toNT()in p){f[e.toNT()]=!0;const t=a.createElement("a");return t.setAttribute("href","#"+e.toNT().slice(2)),t.setAttribute("class","bnodeRef"),t.textContent="*"+e.toNT().slice(3),t}p[e.toNT()]=!0;const t=h(e);return p[e.toNT()]=t,r.utils.ancestor(t,"TABLE")&&"white"===r.utils.ancestor(t,"TABLE").style.backgroundColor?t.style.backgroundColor="#eee":t.style.backgroundColor="white",t}case"Collection":n=a.createElement("table"),n.setAttribute("class","collectionAsTables");for(let t=0;t<e.elements.length;t++){const r=a.createElement("tr");n.appendChild(r),r.appendChild(m(e.elements[t]))}return n;case"Graph":return n=t.session.paneRegistry.byName("dataContents").statementsAsTables(e.statements,t),n.setAttribute("class","nestedFormula"),n;case"Variable":return n=a.createTextNode("?"+e.uri),n}throw new Error("Unhandled node type: "+e.termType)}n&&(l=n.concat(l.filter(function(e){for(let t=0;t<n.length;t++)if(e.sameTerm(n[t]))return!1;return!0})));for(let e=0;e<l.length;e++){const t=a.createElement("tr");t.setAttribute("style",`background-color: ${e%2==0?"#f0f0f0":"white"};`),o.appendChild(t);const n=a.createElement("td");t.appendChild(n);const i=a.createElement("td");t.appendChild(i);const s=l[e];"BlankNode"===s.termType?n.appendChild(a.createTextNode(r.utils.label(s))):n.appendChild(m(s)),i.appendChild(h(s))}for(const e in f){const t=p[e],n=a.createElement("a");n.setAttribute("id",e.slice(2)),n.setAttribute("class","bnodeDef"),n.textContent=e.slice(3)+")",t.insertBefore(n,t.firstChild)}return o},render:function(e,t){const n=t.dom;t.getOutliner(n);const i=t.session.store,a=n.createElement("div");a.setAttribute("class","dataContentPane");const o=i.statementsMatching(void 0,void 0,void 0,e);return function(){const n=[];i.holds(e,void 0,void 0,e)&&n.push(e);const s=i.any(e,r.ns.foaf("primaryTopic"),void 0,e);s&&n.push(s),a.appendChild(t.session.paneRegistry.byName("dataContents").statementsAsTables(o,t,n))}(),a}}},4064(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultPane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.defaultPane={icon:r.icons.originalIconBase+"about.png",name:"default",audience:[o.solid("Developer")],label:function(e){return"about "},render:function(e,t){const n=t.dom,a=function(e,n){return void 0===t.session.paneRegistry.byName("internal").predicates[e.uri]&&(!n||"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"!==e.uri)},o=t.getOutliner(n),s=t.session.store;r.log.info("@defaultPane.render, dom is now "+n.location),e=s.canon(e);const c=n.createElement("div");c.setAttribute("class","defaultPane");let l=s.statementsMatching(e);if(o.appendPropertyTRs(c,l,!1,a),l=s.statementsMatching(void 0,void 0,e),o.appendPropertyTRs(c,l,!0,a),"Literal"===e.termType&&"http://"===e.value.slice(0,7)&&o.appendPropertyTRs(c,[i.st(s.sym(e.value),r.ns.link("uri"),e)],!0,a),"NamedNode"===e.termType&&s.updater.editable(i.Util.uri.docpart(e.uri),s)||"BlankNode"===e.termType&&s.anyStatementMatching(e)&&s.anyStatementMatching(e).why&&s.anyStatementMatching(e).why.uri&&s.updater.editable(s.anyStatementMatching(e).why.uri)){const e=n.createElement("tr"),t=n.createElement("td");t.setAttribute("colspan","2"),t.setAttribute("notSelectable","true");const i=n.createElement("img");i.src=r.icons.originalIconBase+"tango/22-list-add-new.png",i.addEventListener("click",function(e){o.UserInput.addNewPredicateObject(e),e.stopPropagation(),e.preventDefault()}),i.className="bottom-border-active",c.appendChild(e).appendChild(t).appendChild(i)}return c}}},2970(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=c(n(500)),a=c(n(8230)),o=c(n(6049)),s=(r=n(3505))&&r.__esModule?r:{default:r};function c(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(c=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}t.default={icon:i.icons.iconBase+"dokieli-logo.png",name:"Dokieli",mintClass:i.ns.solid("DokieliDocument"),label:function(e,t){return null},mintNew:function(e,t){const n=e.session.store;let r=t.newInstance;if(!r){let e=t.newBase;e.endsWith("/")&&(e=e.slice(0,-1),t.newBase=e),r=n.sym(e)}const i=o.lookup(r.uri);i&&i.includes("html")||(r=a.sym(r.uri+".html")),t.newInstance=r;let c=s.default,l=r.uri.split("/").slice(-1)[0];l=decodeURIComponent(l.split(".")[0]);const u=l.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return c=c.replace("<title>","<title>"+u),c=c.replace("</article>","<h1>"+u+"</h1></article>"),new Promise(function(e){n.fetcher.webOperation("PUT",r.uri,{data:c,contentType:"text/html"}).then(function(){e(t)}).catch(function(e){})})}}},3505(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default='<!DOCTYPE html>\n<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">\n <head>\n <meta charset="utf-8" />\n <title></title>\n <meta content="width=device-width, initial-scale=1" name="viewport" />\n <link href="https://dokie.li/media/css/basic.css" media="all" rel="stylesheet" title="Basic" />\n <link href="https://dokie.li/media/css/dokieli.css" media="all" rel="stylesheet" />\n <script src="https://dokie.li/scripts/dokieli.js"><\/script>\n </head>\n\n <body about="" prefix="rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# rdfs: http://www.w3.org/2000/01/rdf-schema# owl: http://www.w3.org/2002/07/owl# xsd: http://www.w3.org/2001/XMLSchema# rdfa: http://www.w3.org/ns/rdfa# dcterms: http://purl.org/dc/terms/ dctypes: http://purl.org/dc/dcmitype/ foaf: http://xmlns.com/foaf/0.1/ pimspace: http://www.w3.org/ns/pim/space# skos: http://www.w3.org/2004/02/skos/core# prov: http://www.w3.org/ns/prov# mem: http://mementoweb.org/ns# qb: http://purl.org/linked-data/cube# schema: http://schema.org/ void: http://rdfs.org/ns/void# rsa: http://www.w3.org/ns/auth/rsa# cert: http://www.w3.org/ns/auth/cert# wgs: http://www.w3.org/2003/01/geo/wgs84_pos# bibo: http://purl.org/ontology/bibo/ sioc: http://rdfs.org/sioc/ns# doap: http://usefulinc.com/ns/doap# dbr: http://dbpedia.org/resource/ dbp: http://dbpedia.org/property/ sio: http://semanticscience.org/resource/ opmw: http://www.opmw.org/ontology/ deo: http://purl.org/spar/deo/ doco: http://purl.org/spar/doco/ cito: http://purl.org/spar/cito/ fabio: http://purl.org/spar/fabio/ oa: http://www.w3.org/ns/oa# as: https://www.w3.org/ns/activitystreams# ldp: http://www.w3.org/ns/ldp# solid: http://www.w3.org/ns/solid/terms# acl: http://www.w3.org/ns/auth/acl# earl: http://www.w3.org/ns/earl# spec: http://www.w3.org/ns/spec# odrl: http://www.w3.org/ns/odrl/2/ dio: https://w3id.org/dio# rel: https://www.w3.org/ns/iana/link-relations/relation#" typeof="schema:CreativeWork prov:Entity">\n <main>\n <article about="" typeof="schema:Article">\n\n </article>\n </main>\n </body>\n</html>\n'},5238(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formPane=void 0;var r=o(n(500)),i=n(9332),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=r.ns;t.formPane={icon:r.icons.iconBase+"noun_122196.svg",name:"form",audience:[s.solid("PowerUser")],label:function(e){const t=r.widgets.formsFor(e).length;return r.log.debug("Form pane: forms for "+e+": "+t),t?t+" forms":null},render:function(e,t){const n=t.session.store,o=t.dom,c=function(e,t){const n=o.createElement("p");return n.setAttribute("style",t||"color: grey; background-color: white"),p.appendChild(n).textContent=e,n},l=function(e,t){c(e,"style")},u=function(e,t){e||l("Sorry, failed to save your change:\n"+t)},d=i.authn.currentUser(),p=o.createElement("div");if(p.setAttribute("class","formPane"),d){0===n.each(d,s.ui("workspace")).length&&c("You don't seem to have any workspaces defined. A workspace is a place on the web (http://..) or in the file system (file:///) to store application data.\n")}else c("You are not logged in. If you log in and have workspaces then you would be able to select workspace in which to put this new information");const f=function(e,t){n.fetcher.nowOrWhenFetched(e.uri,t,function(n,i){if(!n)return l("Cannot load store "+e.uri+": "+i);const s=r.widgets.formsFor(t);for(let n=0;n<s.length;n++){const i=s[n],c=o.createElement("h4");if(p.appendChild(c),i.uri){const e=a.Util.uri.document(i.uri);if(e.uri!==i.uri){p.appendChild(r.widgets.editFormButton(o,p,i,e,u)).setAttribute("style","float: right;")}}const l=o.createElement("a");l.setAttribute("href",i.uri),c.appendChild(l),l.textContent=r.utils.label(i,!0),r.widgets.appendForm(o,p,{},t,i,e,u)}})};let h=null;const m=a.Util.uri.docpart(e.uri);if(e.uri!==m&&n.updater.editable(m,n)&&(h=e.doc()),h=h||n.any(n.sym(m),s.link("annotationStore")),!h){const t={},n=[];h.statementsMatching(e).forEach(function(e){t[e.why.uri]=1}),h.statementsMatching(void 0,void 0,e).forEach(function(e){t[e.why.uri]=2});for(const e in t)n.push(t[e],e);n.sort();for(let e=0;e<n.length;e++){const t=n[e][1];if(t&&h.updater.editable(t)){h=h.sym(t);break}}}const g="2014";if(h)f(h,e);else{l("No suitable store is known, to edit <"+e.uri+">.");const t=r.login.selectWorkspace(o,function(t){c("Workspace selected OK: "+t);const n=h.each(void 0,s.space("workspace"),t);for(let r=0;r<n.length;r++){const i=n[r],a=h.any(t,s.space("store")),o=h.any(t,s.cal("dtstart")).value(),c=h.any(t,s.cal("dtend")).value();if(a&&o&&c&&o<=g&&c>g){f(a,e);break}l("Note no suitable annotation store in activity: "+i)}});p.appendChild(t)}return p}}},8426(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(9332),i=n(500);const a={icon:i.icons.iconBase+"noun_547570.svg",global:!0,name:"home",label:function(){return"home"},render:function(e,t){const n=t.dom,a=n.createElement("div"),o=r.authn.currentUser();return async function(){const e={div:a,dom:n,statusArea:a,me:o};a.appendChild(n.createElement("h4")).textContent="Create new thing somewhere";const r={div:a.appendChild(n.createElement("div")),dom:n,statusArea:a,me:o},s=await i.login.filterAvailablePanes(t.session.paneRegistry.list);i.create.newThingUI(r,t,s),i.login.registrationList(e,{}).then(function(){})}(),a}};t.default=a},6380(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=n(500),a=n(8230),o=n(23),s=(r=n(5454))&&r.__esModule?r:{default:r};const c=e=>{if(!e)return!1;const t=e.split("?")[0].split("#")[0];return/\.(md|markdown|mdown|mkd|mkdn)$/i.test(t)},l=new Map,u={icon:function(e,t){if(e&&c(e.uri))return i.icons.iconBase+"markdown.svg";if(e){const n=t.session.store,r=l.get(e.uri);if("dokieli"===r)return i.icons.iconBase+"dokieli-logo.png";if("html"===r)return i.icons.originalIconBase+"tango/22-text-x-generic.png";const a=n.fetcher.getHeader(e.doc(),"content");if(a&&a.length>0){const t=a[0],n=t.includes('<script src="https://dokie.li/scripts/dokieli.js">')||t.includes("dokieli.css");return l.set(e.uri,n?"dokieli":"html"),n?i.icons.iconBase+"dokieli-logo.png":i.icons.originalIconBase+"tango/22-text-x-generic.png"}const o=n.fetcher.getHeader(e.doc(),"content-type");if("text/html"===(o?o[0].split(";",1)[0].trim():null))return n.fetcher._fetch(e.uri).then(e=>e.text()).then(t=>{const n=t.includes('<script src="https://dokie.li/scripts/dokieli.js">')||t.includes("dokieli.css");return l.set(e.uri,n?"dokieli":"html"),n?i.icons.iconBase+"dokieli-logo.png":i.icons.originalIconBase+"tango/22-text-x-generic.png"}).catch(()=>(l.set(e.uri,"html"),i.icons.originalIconBase+"tango/22-text-x-generic.png"))}return i.icons.originalIconBase+"tango/22-text-x-generic.png"},name:"humanReadable",label:function(e,t){const n=t.session.store,r=["text/plain","text/html","text/markdown","application/xhtml+xml","image/png","image/jpeg","application/pdf","video/mp4"];if(!e.uri)return null;if(n.findTypeURIs(e)[i.ns.link("WebPage").uri])return"view";if(c(e.uri))return"View";if(function(e,t,n){const r=e.fetcher.getHeader(t,"content-type");if(r)for(let e=0;e<r.length;e++)for(let t=0;t<n.length;t++)if(r[e].indexOf(n[t])>=0)return!0;return!1}(n,e,r)||function(e,t,n){const r=e.findTypeURIs(t);for(let e=0;e<n.length;e++)if(a.Util.mediaTypeClass(n[e]).uri in r)return!0;return!1}(n,e,r)){const t=n.fetcher.getHeader(e.doc(),"content-type");return"text/html"!==(t?t[0].split(";",1)[0].trim():null)||l.has(e.uri)||n.fetcher._fetch(e.uri).then(e=>e.text()).then(t=>{const n=t.includes('<script src="https://dokie.li/scripts/dokieli.js">')||t.includes("dokieli.css");l.set(e.uri,n?"dokieli":"html")}).catch(()=>{l.set(e.uri,"html")}),"View"}return null},render:function(e,t){const n=t.dom,r=n.createElement("div"),i=t.session.store,a=i.fetcher.getHeader(e.doc(),"content-type"),u=a?a[0].split(";",1)[0].trim():null,d="text/markdown"===u||c(e.uri);r.setAttribute("class","docView");const p=(t,n)=>{t.setAttribute("src",e.uri),t.setAttribute("class","doc"),t.setAttribute("style",`border: 1px solid; padding: 1em; height: ${n}em; width: 800px; resize: both; overflow: auto;`)};if(d){const t=n.createElement("DIV");!function(t){i.fetcher.webOperation("GET",e.uri).then(e=>{const n=e.responseText,r=Math.min(30,n.split(/\n/).length+5),i=o.marked.parse(n),a=s.default.sanitize(i);t.innerHTML=a,t.setAttribute("class","doc"),t.setAttribute("style",`border: 1px solid; padding: 1em; height: ${r}em; width: 800px; resize: both; overflow: auto;`)}).catch(e=>{t.innerHTML="<p>Error loading content</p>"})}(t);const a=n.createElement("TR");a.appendChild(t),r.appendChild(a)}else{const t=n.createElement("IFRAME");"text/html"!==u&&"application/xhtml+xml"!==u||t.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),i.fetcher.webOperation("GET",e.uri).then(n=>{const r=n.responseText,i=r.includes('<script src="https://dokie.li/scripts/dokieli.js">')?-10:5,a=Math.min(30,r.split(/\n/).length+i),o=r.includes('<script src="https://dokie.li/scripts/dokieli.js">')||r.includes("dokieli.css");l.set(e.uri,o?"dokieli":"html"),p(t,a)}).catch(e=>{p(t,30)});const a=n.createElement("TR");a.appendChild(t),r.appendChild(a)}return r}};t.default=u},2168(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.imagePane=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.imagePane={icon:r.icons.originalIconBase+"tango/22-image-x-generic.png",name:"image",label:function(e,t){const n=t.session.store;if(!n.anyStatementMatching(e,r.ns.rdf("type"),n.sym("http://purl.org/dc/terms/Image")))return null;return function(e,t,n){const r=e.fetcher.getHeader(t,"content-type");if(r)for(let e=0;e<r.length;e++)for(let t=0;t<n.length;t++)if(r[e].indexOf(n[t])>=0)return!0;return!1}(n,e,["application/pdf"])?null:"view"},render:function(e,t){const n=t.dom,r=t.session.store,i=n.createElement("div");i.setAttribute("class","imageView");const a=n.createElement("IMG");r.fetcher._fetch(e.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);a.setAttribute("src",t)}),a.setAttribute("style","max-width: 100%; max-height: 100%;");const o=n.createElement("TR");return o.appendChild(a),i.appendChild(o),i}}},7523(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"OutlineManager",{enumerable:!0,get:function(){return o.default}}),t.UI=void 0,Object.defineProperty(t,"byName",{enumerable:!0,get:function(){return c.byName}}),t.getOutliner=p,Object.defineProperty(t,"initMainPage",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"list",{enumerable:!0,get:function(){return c.list}}),Object.defineProperty(t,"paneForIcon",{enumerable:!0,get:function(){return c.paneForIcon}}),Object.defineProperty(t,"paneForPredicate",{enumerable:!0,get:function(){return c.paneForPredicate}}),Object.defineProperty(t,"register",{enumerable:!0,get:function(){return c.register}}),Object.defineProperty(t,"versionInfo",{enumerable:!0,get:function(){return r.default}});var r=d(n(4959)),i=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.UI=i;var a=n(9332),o=d(n(7981)),s=n(2371),c=n(4059),l=n(6813),u=d(n(5218));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if(!e.outlineManager){const t=(0,l.createContext)(e,{list:c.list,paneForIcon:c.paneForIcon,paneForPredicate:c.paneForPredicate,register:c.register,byName:c.byName},a.store,a.solidLogicSingleton);e.outlineManager=new o.default(t)}return e.outlineManager}"undefined"!=typeof window&&p(window.document),(0,s.registerPanes)(e=>(0,c.register)(e.default||e)),"undefined"!=typeof window&&(window.panes={getOutliner:p})},4930(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500),i=n(8230);const a={icon:r.icons.originalIconBase+"tango/22-emblem-system.png",name:"internal",label:function(){return"under the hood"},render:function(e,t){const n=t.dom,a=t.session.store,o=a.canon(e),s=a.findTypeURIs(o);function c(e){if(s["http://www.w3.org/2007/ont/link#ProtocolEvent"])return!0;const n=t.session.paneRegistry.byName("internal");return n&&n.predicates&&!(void 0===n.predicates[e.uri])}const l=n.createElement("div");function u(e,t){const n=e.fetcher;if(n)return new Promise(function(i,a){n.load(t).then(function(){const o=e.each(t,r.ns.ldp("contains")).map(t=>e.holds(t,r.ns.rdf("type"),r.ns.ldp("BasicContainer"))?u(e,t):n.webOperation("DELETE",t.uri));Promise.all(o).then(()=>{n.webOperation("DELETE",t.uri).then(()=>{i(void 0)}).catch(e=>{a(new Error("Unable to delete "+t+": "+e))}),i(void 0)},e=>{alert(e),a(e)})})})}l.setAttribute("class","internalPane"),l.setAttribute("style","background-color: #ddddff; padding: 0.5em; border-radius: 1em;");if(e.uri&&!e.uri.includes("#")){const t=l.appendChild(n.createElement("table"));t.style.width="100%",t.style.margin="1em";const i=t.appendChild(n.createElement("tr")),o=i.appendChild(n.createElement("td")),s=e.uri&&e.uri.endsWith("/")||a.holds(e,r.ns.rdf("type"),r.ns.ldp("Container")),c=s?"folder":"file";if(!function(e){const t=e.site().uri;return e.uri===t||e.uri===t+"profile/"||e.uri===t+"profile/card"||e.uri===t+"settings/"||e.uri===t+"settings/prefs.ttl"||e.uri===t+"settings/privateTypeIndex.ttl"||e.uri===t+"settings/publicTypeIndex.ttl"||e.uri===t+"settings/serverSide.ttl"}(e)){const t=r.widgets.deleteButtonWithCheck(n,o,c,function(){if(!confirm(`Are you sure you want to delete ${e}? This cannot be undone.`))return;if(!a.fetcher)throw new Error("Store has no fetcher");(s?u(a,e)||Promise.resolve():a.fetcher.webOperation("DELETE",e.uri)||Promise.resolve()).then(()=>{}).catch(t=>{alert("Unable to delete "+e+": "+t)})});t.style="height: 2em;",t.class="",o.appendChild(t)}const d=i.appendChild(n.createElement("td")),p=r.widgets.button(n,r.icons.iconBase+"noun_479395.svg","refresh");d.appendChild(p),p.addEventListener("click",()=>{if(!a.fetcher)throw new Error("Store has no fetcher");a.fetcher.refresh(e,function(t,n){let r;r=t?"Refreshed OK: "+e:"Error refreshing: "+e+": "+n,alert(r)})})}let d=a.statementsMatching(e),p="";if(!a.fetcher)throw new Error("Store has no fetcher");if(e.uri&&(d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/2007/ont/link#uri"),e.uri,a.fetcher.appNode)),e.uri.indexOf("#")>=0?(p=e.uri.split("#")[0],d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/2007/ont/link#documentURI"),e.uri.split("#")[0],a.fetcher.appNode)),d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/2007/ont/link#document"),(0,i.sym)(e.uri.split("#")[0]),a.fetcher.appNode))):p=e.uri),p){if(!a.updater)throw new Error("Store has no updater");const t=a.updater.editable(p);t&&d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/ns/rww#editable"),(0,i.literal)(t.toString()),a.fetcher.appNode))}const f=t.getOutliner(n);return f.appendPropertyTRs(l,d,!1,c),d=a.statementsMatching(void 0,void 0,e),f.appendPropertyTRs(l,d,!0,c),l},predicates:{"http://www.w3.org/2007/ont/link#request":1,"http://www.w3.org/2007/ont/link#requestedBy":1,"http://www.w3.org/2007/ont/link#source":1,"http://www.w3.org/2007/ont/link#session":2,"http://www.w3.org/2007/ont/link#uri":1,"http://www.w3.org/2007/ont/link#documentURI":1,"http://www.w3.org/2007/ont/link#document":1,"http://www.w3.org/2007/ont/link#all":1,"http://www.w3.org/2007/ont/link#Document":1,"http://www.w3.org/ns/rww#editable":1,"http://www.w3.org/2000/01/rdf-schema#seeAlso":1,"http://www.w3.org/2002/07/owl#":1},classes:{"http://www.w3.org/2007/ont/link#ProtocolEvent":1}};t.default=a},8399(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createFooter=function(e){(0,r.initFooter)(e,{solidProjectUrl:i,solidProjectName:a})};var r=n(500);const i="https://solidproject.org",a="solidproject.org"},3469(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createHeader=async function(e,t){(0,i.initHeader)(e,await async function(e){const t={label:l,onclick:()=>{r.authSession.logout()}};let n=[];return n=n.concat(await async function(e){const t=await e.getDashboardItems();return t.map(t=>({label:t.label,onclick:()=>async function(e,t){e.showDashboard({pane:t})}(e,t.tabName||t.paneName)}))}(e)),n.push(t),n}(t),{logo:o,helpIcon:a,helpMenuList:[{label:s,url:u,target:"_blank"},{label:c,url:d,target:"_blank"}]})};var r=n(9332),i=n(500);const a=i.icons.iconBase+"noun_help.svg",o="https://solidproject.org/assets/img/solid-emblem.svg",s="User guide",c="Report a problem",l="Log out",u="https://solidos.github.io/userguide/",d="https://github.com/solidos/solidos/issues"},5218(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=async function(e,t){const n=(0,r.getOutliner)(document);let o=t=t||window.location.href;"string"==typeof t&&(o=e.sym(t));n.GotoSubject(o,!0,void 0,!0,void 0);const s=await(0,i.createHeader)(e,n),c=(0,a.createFooter)(e);return Promise.all([s,c])};var r=n(7523),i=n(3469),a=n(8399)},7334(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.n3Pane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.n3Pane={icon:r.icons.originalIconBase+"w3c/n3_smaller.png",name:"n3",audience:[o.solid("Developer")],label:function(e,t){const n=t.session.store;if("http://www.w3.org/2007/ont/link#ProtocolEvent"in n.findTypeURIs(e))return null;const r=n.statementsMatching(void 0,void 0,void 0,e).length;return 0===r?null:"Data ("+r+") as N3"},render:function(e,t){const n=t.dom,r=t.session.store,a=n.createElement("div");a.setAttribute("class","n3Pane");const o=r.statementsMatching(void 0,void 0,void 0,e),s=i.Serializer(r);s.suggestNamespaces(r.namespaces),s.setBase(e.uri);const c=s.statementsToN3(o),l=n.createElement("PRE");return l.appendChild(n.createTextNode(c)),a.appendChild(l),a}}},6813(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createContext=function(e,t,n,i){return{dom:e,getOutliner:r.getOutliner,session:{paneRegistry:t,store:n,logic:i}}};var r=n(7523)},7981(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const t=e.dom;this.document=e.dom,this.outlineIcons=c.outlineIcons,this.labeller=this.labeller||{},this.labeller.LanguagePreference="";const d=this,p=this;let f=[];this.selection=f,this.ancestor=a.utils.ancestor,this.sparql=i.UpdateManager,this.kb=o.store;const h=o.store,m=o.store.fetcher;t.outline=this,this.qs=new u.QuerySource,this.UserInput=new l.UserInput(this),this.clipboardAddress="tabulator:clipboard",this.UserInput.clipboardInit(this.clipboardAddress);const g=this.outlineElement;async function v(e={}){const n=t.createElement("div"),i=o.authn.currentUser();if(!i)throw alert("Must be logged in for this"),new Error("Not logged in");const s=await b();return n.appendChild(a.tabs.tabWidget({dom:t,subject:i,items:s,renderMain:function(e,n){const i=r.byName(n.paneName);e.innerHTML="";const a=e.appendChild(t.createElement("table")),s=o.authn.currentUser();p.GotoSubject(n.subject||s,!0,i,!1,void 0,a)},renderTab:function(e,t){e.dataset.globalPaneName=t.tabName||t.paneName,e.textContent=t.label},ordered:!0,orientation:0,backgroundColor:"#eeeeee",selectedTab:e.selectedTab,onClose:e.onClose})),n}async function b(){const e=o.authn.currentUser();if(!e)return[];t.createElement("div");const[n]=await Promise.all([async function(){async function t(e){return await x(e),!!h.holds(e,$.rdf("type"),$.space("Storage"),e.doc())&&(n.push(e),!0)}try{await h.fetcher.load(e.doc())}catch(e){return[]}let n=h.each(e,$.space("storage"),null,e.doc());n.map(async e=>{await x(e)});try{const e=new URL(window.location.href).searchParams.get("uri")||window.location.href;await async function(e){const n=new URL(e);let r=n.pathname;for(;r.length;)if(r=r.substring(0,r.lastIndexOf("/")),await t(h.sym(`${n.origin}${r}/`)))return}(e)}catch(e){}return n=function(e){const t=[];return e.forEach(e=>{t.find(t=>t.equals(e))||t.push(e)}),t}(n),n.length?n.map((t,n)=>{function r(e){return e.uri.split("//")[1].slice(0,-1)}return{paneName:"folder",tabName:`folder-${n}`,label:r(e).startsWith(r(t))?"Your storage":r(t),subject:t,icon:a.icons.iconBase+"noun_Cabinet_251723.svg"}}):[]}()]);return[{paneName:"home",label:"Your stuff",icon:a.icons.iconBase+"noun_547570.svg"},{paneName:"basicPreferences",label:"Preferences",icon:a.icons.iconBase+"noun_Sliders_341315_00000.svg"},{paneName:"profile",label:"Your Profile",icon:a.icons.iconBase+"noun_15059.svg"},{paneName:"editProfile",label:"Edit your Profile",icon:a.icons.iconBase+"noun_492246.svg"}].concat(n)}function y(){return w("outline")}function w(e){return document.getElementById(e)||(()=>{const t=document.createElement("div");t.id=e;return(document.querySelector('[role="main"]')||document.body).appendChild(t)})()}async function x(e){if(!h.any(e,$.ldp("contains"),void 0,e.doc())){const t=(await h.fetcher.webOperation("GET",e.uri,h.fetcher.initFetchOptions(e.uri,{headers:{accept:"text/turtle"}}))).responseText;i.parse(t,h,e.uri,"text/turtle")}}async function A(n,r,i){const o=t.createElement("tr");i.hover&&o.setAttribute("class","hoverControl");const s=o.appendChild(t.createElement("td"));s.setAttribute("style","margin: 0.2em; border: none; padding: 0; vertical-align: top;display:flex; justify-content: space-between; flex-direction: row;"),s.setAttribute("notSelectable","true"),s.setAttribute("about",n.toNT()),s.setAttribute("colspan","2");const c=s.appendChild(t.createElement("div"));c.style="display:flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;";const l=!!r;if(!i.solo&&!l){c.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-collapse.png","collapse",void 0,t)).addEventListener("click",L);const e=c.appendChild(t.createElement("h1"));e.appendChild(t.createTextNode(a.utils.label(n))),e.style="font-size: 150%; margin: 0 0.6em 0 0; padding: 0.1em 0.4em;",a.widgets.makeDraggable(e,n)}return c.appendChild(await async function(i,s={}){const c="width: 24px; border-radius: 0.5em; border-top: solid #222 1px; border-left: solid #222 0.1em; border-bottom: solid #eee 0.1em; border-right: solid #eee 0.1em; margin-left: 1em; padding: 3px; background-color: #ffd;",l="width: 24px; border-radius: 0.5em; margin-left: 1em; padding: 3px",u=i.appendChild(t.createElement("nav"));u.style="display:flex; justify-content: flex-start; align-items: center;";const d=s.hideList?[]:await async function(e,t){e.uri.endsWith("/")&&await x(e);const n=t.session.paneRegistry,r=n.list.filter(n=>n.label(e,t)&&!n.global);if(0===r.length)return[n.byName("internal")];const i=await a.login.filterAvailablePanes(r);return 0===i.length?[r[0]]:n.list.indexOf(r[0])<n.list.indexOf(i[0])?[r[0]].concat(i):i}(n,e);o.firstPane=r||function(e,t){return e.find(e=>e.shouldGetFocus&&e.shouldGetFocus(t))||e[0]}(d,n);const p=d.indexOf(o.firstPane);return 1!==d.length&&d.forEach((r,d)=>{const f=r.label(n,e),h="function"==typeof r.icon?r.icon(n,e):r.icon,m=a.utils.AJARImage(h,f,f,t);h instanceof Promise&&h.then(e=>{m.setAttribute("src",e)}).catch(e=>{}),m.style=r===o.firstPane?c:l;!function(r,o){r.addEventListener("click",function(u){let d;for(d=i;d.parentNode&&"TABLE"!==d.nodeName;d=d.parentNode);if("TABLE"!==d.nodeName)throw new Error("outline: internal error.");const p=function(e){for(let n=d.firstChild;n;n=n.nextSibling)void 0!==n.pane&&(e&&n.pane!==e||(n.paneButton&&(n.paneButton.setAttribute("class","paneHidden"),n.paneButton.style=l),E(n),n.pane.requireQueryButton&&d.parentNode.className&&1===f&&t.getElementById("queryButton")&&t.getElementById("queryButton").setAttribute("style","display:none;")))};"paneHidden"===r.getAttribute("class")?(u.shiftKey||p(),function(i){let o;a.log.info("outline: Rendering pane (2): "+i.name);try{o=i.render(n,e,s)}catch(e){o=t.createElement("div"),o.setAttribute("class","exceptionPane");const n=t.createElement("pre");o.appendChild(n),n.appendChild(t.createTextNode(a.utils.stackString(e)))}i.requireQueryButton&&t.getElementById("queryButton")&&t.getElementById("queryButton").removeAttribute("style");const c=d.firstChild.nextSibling,l=t.createElement("tr");l.appendChild(t.createElement("td")).appendChild(o),c?d.insertBefore(l,c):d.appendChild(l),l.pane=i,l.paneButton=r}(o),r.setAttribute("class","paneShown"),r.style=c):(p(o),r.setAttribute("class","paneHidden"),r.style=l);let f=0;for(let e=d.firstChild;e;e=e.nextSibling)e.pane&&e.pane.requireQueryButton&&f++},!1)}(m,r),m.setAttribute("class",d!==p?"paneHidden":"paneShown"),d===p&&(o.paneButton=m),u.appendChild(m)}),u}(s,{hideList:l})),o.firstChild.tabulatorSelect=function(){R(this,!0)},o.firstChild.tabulatorDeselect=function(){R(this,!1)},o}function E(e){const n=e.parentNode,r=n.parentNode,i=t.createElement("table");i.classList.add("placeholderTable"),r.replaceChild(i,n),n.removeChild(e),r.replaceChild(n,i)}this.init=function(){y().outline=this},this.appendAccessIcons=function(e,t,n){if("NamedNode"!==n.termType)return;const r=e.uris(n);r.sort();let i=null;for(let e=0;e<r.length;e++)r[e]!==i&&(i=r[e],p.appendAccessIcon(t,i))},this.appendAccessIcon=function(e,n){if(!n)return"";const r=i.uri.docpart(n);if("http:"!==r.slice(0,5))return"";const o=m.getState(r);let s,l,u;switch(o){case"unrequested":s=c.outlineIcons.src.icon_unrequested,l="fetch",u=j;break;case"requested":s=c.outlineIcons.src.icon_requested,l="fetching",u=B;break;case"fetched":s=c.outlineIcons.src.icon_fetched,u=O,l="loaded";break;case"failed":s=c.outlineIcons.src.icon_failed,l="failed",u=B;break;case"unpermitted":s=c.outlineIcons.src.icon_failed,u=B,l="no perm";break;case"unfetchable":s=c.outlineIcons.src.icon_failed,u=B,l="cannot fetch";break;default:a.log.error("?? state = "+o)}const p=a.utils.AJARImage(s,l,c.outlineIcons.tooltips[s].replace(/[Tt]his resource/,r),t);return p.setAttribute("uri",n),p.addEventListener("click",u),function(e,t){a.log.debug("Button callbacks for "+t+" added");const n=function(n){return function(r){return r.indexOf("#"),!!e&&(!!d.ancestor(e,"DIV")&&(r===t&&(e.src=n,e.title=c.outlineIcons.tooltips[n]),!0))}};m.addCallback("request",n(c.outlineIcons.src.icon_requested)),m.addCallback("done",n(c.outlineIcons.src.icon_fetched)),m.addCallback("fail",n(c.outlineIcons.src.icon_failed))}(p,r),e.appendChild(p),p},this.outlineObjectTD=function(e,n,r,i){const o=t.createElement("td");o.classList.add("obj"),o.setAttribute("notSelectable","false"),o.style.margin="0.2em",o.style.border="none",o.style.padding="0",o.style.verticalAlign="top";return("NamedNode"===e.termType||"BlankNode"===e.termType||"Literal"===e.termType&&e.value.slice&&("ftp://"===e.value.slice(0,6)||"https://"===e.value.slice(0,8)||"http://"===e.value.slice(0,7)))&&(o.setAttribute("about",e.toNT()),o.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-expand-trans.png","expand",void 0,t)).addEventListener("click",N)),o.setAttribute("class","obj"),h.whether(e,a.ns.rdf("type"),a.ns.link("Request"))&&(o.className="undetermined"),n||(n=V),o.appendChild(n(e)),r&&function(e,n,r){const i=a.utils.AJARImage(c.outlineIcons.src.icon_remove_node,"remove",void 0,t);i.addEventListener("click",D),i.node=r,i.setAttribute("about",n.toNT()),i.style.marginLeft="5px",i.style.marginRight="10px",e.appendChild(i)}(o,e,r),o.tabulatorSelect=function(){R(this,!0)},o.tabulatorDeselect=function(){R(this,!1)},o.addEventListener("click",M),o},this.outlinePredicateTD=function(e,n,r,i){const o=t.createElement("TD");let s;switch(o.setAttribute("about",e.toNT()),o.setAttribute("class",i?"pred internal":"pred"),e.termType){case"BlankNode":o.className="undetermined";break;case"NamedNode":s=a.utils.predicateLabelForXML(e,r);break;case"Collection":s=a.utils.predicateLabelForXML(e.elements[0],r)}s=s?s.slice(0,1).toUpperCase()+s.slice(1):"...";const l=t.createElement("TD");l.classList.add("labelTD"),l.setAttribute("notSelectable","true"),l.appendChild(t.createTextNode(s)),o.appendChild(l),l.style.width="100%",o.appendChild(_.construct(t));for(const e in c.outlineIcons.termWidgets){if(!n||!n.AJAR_statement)break;c.outlineIcons.termWidgets[e].filter&&c.outlineIcons.termWidgets[e].filter(n.AJAR_statement,"pred",r)&&_.addIcon(o,c.outlineIcons.termWidgets[e])}return o.tabulatorSelect=function(){R(this,!0)},o.tabulatorDeselect=function(){R(this,!1)},o.addEventListener("click",M),o},this.getDashboard=v,this.getDashboardItems=b,this.showDashboard=async function(e={}){const t=w("GlobalDashboard"),n=y();if(t.childNodes.length>0&&e.pane){n.style.display="none",t.style.display="inherit";const r=t.querySelector(`[data-global-pane-name="${e.pane}"]`);if(r)return void r.click()}const r=await v({selectedTab:e.pane,onClose:a});o.authSession.events.on("logout",a),n.style.display="none",t.appendChild(r);const i=t.querySelector(`[data-global-pane-name="${e.pane}"]`);function a(){t.style.display="none",n.style.display="inherit"}i&&i.click()};const C=this.propertyTable=function(n,r,i,o){return a.log.debug("Property table for: "+n),n=h.canon(n),r?(a.log.info("Re-expand: "+r),r):((r=t.createElement("table")).classList.add("tableFullWidth"),A(n,i,o).then(i=>{if(r.appendChild(i),i.firstPane){let s;try{a.log.info("outline: Rendering pane (1): "+i.firstPane.name),s=i.firstPane.render(n,e,o)}catch(e){s=t.createElement("div"),s.setAttribute("class","exceptionPane");const n=t.createElement("pre");s.appendChild(n),n.appendChild(t.createTextNode(a.utils.stackString(e)))}const c=t.createElement("tr");c.appendChild(t.createElement("td")).appendChild(s),i.firstPane.requireQueryButton&&t.getElementById("queryButton")&&t.getElementById("queryButton").removeAttribute("style"),r.appendChild(c),c.pane=i.firstPane,c.paneButton=i.paneButton}}),r)};function k(e,t,n){const r=e.createElement("TR");r.AJAR_statement=t,r.AJAR_inverse=n,r.setAttribute("predTR","true");const i=p.outlinePredicateTD(t.predicate,r,n);return r.appendChild(i),r}this.propertyTR=k,this.appendPropertyTRs=function(e,n,r,i){if(a.log.debug("Property list length = "+n.length),0===n.length)return"";let o,s,c;r?(o=function(e){return e.subject},n=n.sort(a.utils.RDFComparePredicateSubject)):(o=function(e){return e.object},n=n.sort(a.utils.RDFComparePredicateObject));const l=n.length;for(s=0;s<l;s++){let u=n[s];if(i&&!i(u.predicate,r))continue;const f=k(t,u,r);e.appendChild(f);const m=f.firstChild;let g=W.defaults[u.predicate.uri],v=0,b=0,y=0;for(c=0;c+s<l&&n[s+c].predicate.sameTerm(u.predicate);c++)c>0&&o(n[s+c]).sameTerm(o(n[s+c-1]))&&v++,o(n[s+c]).lang&&d.labeller.LanguagePreference&&(b+=1,o(n[s+c]).lang.indexOf(d.labeller.LanguagePreference)>=0&&y++);if(y>0&&b===v+1){for(let e=s;e<=s+v;e++)if(d.labeller.LanguagePreference&&o(n[e]).lang.indexOf(d.labeller.LanguagePreference)>=0){f.appendChild(p.outlineObjectTD(o(n[e]),g,void 0,u));break}s+=v}else f.appendChild(p.outlineObjectTD(o(u),g,void 0,u)),f.showNobj=function(i){const l=c-v,d=2*i<l?i:l,f=[];if(1!==l){let v;m.setAttribute("rowspan",d===l?l:i+1),d<l&&1===d&&m.setAttribute("rowspan",2);let b=0;for(v=1;v<c;v++)if(h.canon(o(n[s+v])).sameTerm(h.canon(o(n[s+v-1]))))a.log.info("there are duplicates here: %s",n[s+v-1]);else{b++,u=n[s+v],g=W.defaults[u.predicate.uri];const i=t.createElement("tr");i.style.colspan="1",i.appendChild(p.outlineObjectTD(o(n[s+v]),g,void 0,u)),i.AJAR_statement=u,i.AJAR_inverse=r,e.appendChild(i),b>=d&&(i.style.display="none",f.push(i))}d===l&&m.setAttribute("rowspan",b+1)}if(d<l){const n=t.createElement("tr"),r=n.appendChild(t.createElement("td"));if(r.setAttribute("style","margin: 0.2em; border: none; padding: 0; vertical-align: top;"),r.setAttribute("notSelectable","false"),l>i){const e=t.createElement("a");r.appendChild(e);const n=function(n,r,i,o){return function(r){e.innerHTML="","none"===r?(e.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-more-trans.png","more","See all",t)),e.appendChild(t.createTextNode(l-o+" more...")),n.setAttribute("rowspan",o+1)):(e.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-shrink.png","(less)",void 0,t)),n.setAttribute("rowspan",l+1));for(let e=0;e<f.length;e++)f[e].style.display=r}}(m,0,0,i);let o="none";const s=function(e){return n(o),o="none"===o?"":"none",e&&e.stopPropagation(),!1};s(),e.addEventListener("click",s,!1)}e.appendChild(n)}},f.showAllobj=function(){f.showNobj(c-v)},f.showNobj(10),s+=c-1}};const _={};n.g.termWidget=_,_.construct=function(e){const t=(e=e||document).createElement("TD");return t.setAttribute("style","margin: 0.2em; border: none; padding: 0; vertical-align: top;"),t.setAttribute("class","iconTD"),t.setAttribute("notSelectable","true"),t.style.width="0px",t},_.addIcon=function(e,n,r){const i=e.childNodes[1];if(!i)return;let o=i.style.width;const s=a.utils.AJARImage(n.src,n.alt,n.tooltip,t);o=parseInt(o),o+=n.width,i.style.width=o+"px",i.appendChild(s),r&&s.addEventListener("click",r)},_.removeIcon=function(e,n){const r=e.childNodes[1];let a;if(!r)return;let o=r.style.width;o=parseInt(o),o-=n.width,r.style.width=o+"px";for(let e=0;e<r.childNodes.length;e++){const o=r.childNodes[e],s=o.src;try{a=t.location.href.split("?")[0]}catch(e){a=""}s===i.uri.join(n.src,a)&&r.removeChild(o)}},_.replaceIcon=function(e,t,n,r){_.removeIcon(e,t),_.addIcon(e,n,r)};function S(e){const t=e.getAttribute("class");return!!(t&&t.indexOf("selected")>=0)}function T(e){const t=p.targetOf(e).parentNode;_.replaceIcon(t.parentNode,c.outlineIcons.termWidgets.optOn,c.outlineIcons.termWidgets.optOff,P),t.parentNode.parentNode.removeAttribute("optional")}function P(e){const t=p.targetOf(e).parentNode;_.replaceIcon(t.parentNode,c.outlineIcons.termWidgets.optOff,c.outlineIcons.termWidgets.optOn,T),t.parentNode.parentNode.setAttribute("optional","true")}function F(e,t){const n=c.outlineIcons.termWidgets.optOn,r=c.outlineIcons.termWidgets.optOff;for(let i=e;i.parentNode;i=i.parentNode)for(;;){if(i.getAttribute("predTR")){let e=i.getAttribute("parentOfSelected");e=e?parseInt(e):0,0===e&&t>0&&_.addIcon(i.childNodes[0],i.getAttribute("optional")?n:r,i.getAttribute("optional")?T:P),e+=t,i.setAttribute("parentOfSelected",e),0===e&&(i.removeAttribute("parentOfSelected"),_.removeIcon(i.childNodes[0],i.getAttribute("optional")?n:r));break}if(!i.previousSibling||"TR"!==i.previousSibling.nodeName)break;i=i.previousSibling}}function R(e,t){if("TD"!==e.nodeName)throw a.log.debug("down"+e.nodeName),new Error("Expected TD in setSelected: "+e.nodeName+" : "+e.textContent);a.log.debug("pass");let n=e.getAttribute("class");if(n||(n=""),t){n+=" selected",(n.indexOf("pred")>=0||n.indexOf("obj")>=0)&&F(e,1),f.push(e);const t=a.utils.getTerm(e);p.showURI(t);let r=e.AJAR_statement;if(void 0===r&&e.parentNode&&(r=e.parentNode.AJAR_statement),r){const t=r.why,i=o.store.updater.editable(t.uri,h);i&&n.indexOf("pred")>=0&&_.addIcon(e,c.outlineIcons.termWidgets.addTri)}}else a.log.debug("cla=$"+n+"$"),"selected"===n&&(n=""),n=n.replace(" selected",""),(n.indexOf("pred")>=0||n.indexOf("obj")>=0)&&F(e,-1),n.indexOf("pred")>=0&&_.removeIcon(e,c.outlineIcons.termWidgets.addTri),f=f.filter(function(t){return t===e}),a.log.info("Deselecting "+e.textContent);"undefined"!=typeof sourceWidget&&p.showSource(),e.setAttribute("class",n)}function I(){for(let e=f.length-1;e>=0;e--)R(f[e],!1);f=[]}function N(e){const t=p.targetOf(e),n=t.parentNode,i=a.utils.getAbout(h,t);e.altKey&&r.byName("internal");e.shiftKey?q(n,i):e.altKey?z(n,i,{pane:r.byName("internal"),immediate:!0}):z(n,i)}function L(e){const t=p.targetOf(e),n=a.utils.getAbout(h,t);e.altKey&&r.byName("internal");H(t.parentNode.parentNode,n)}function B(e){const t=p.targetOf(e).getAttribute("uri");e.altKey?m.fetch(i.uri.docpart(t),{force:!0}):m.refresh(h.sym(i.uri.docpart(t)))}function O(e){const t=p.targetOf(e).getAttribute("uri");e.altKey?m.fetch(i.uri.docpart(t),{force:!0}):m.refresh(h.sym(i.uri.docpart(t)))}function j(e){const t=p.targetOf(e).getAttribute("uri");m.fetch(i.uri.docpart(t))}function D(e){const t=p.targetOf(e);let n=t.node;n.childNodes.length>1&&(n=t.parentNode),E(n)}function M(e){if(p.UserInput._tabulatorMode)return p.UserInput.Click(e);const t=p.targetOf(e);let n;for(n=a.utils.ancestor(t,"TD");n&&"false"!==n.getAttribute("notSelectable");n=a.utils.ancestor(n.parentNode,"TD"));if(!n)return;const r=S(n);if(a.log.debug("Was node selected before: "+r),e.altKey)R(n,!S(n));else if(e.shiftKey)R(n,!0);else{if(I(),p.UserInput.clearInputAndSave(e),R(n,!0),2===e.detail)return void e.stopPropagation();let t;if(n.parentNode&&(t=n.parentNode.AJAR_statement),!t)return;const i=t.why,a=o.store.updater.editable(i.uri,h);r&&a&&p.UserInput.Click(e,f[0])}a.log.debug("Was node selected after: "+S(n)+", count="+f.length),e.stopPropagation()}function U(e){t.title=a.utils.label(e),t.location.href.startsWith(e.site().uri)}function z(e,n,r){const o=(r=r||{}).pane;let s=!!r.already;const c=r.immediate;a.log.info("@outlineExpand, dom is now "+t.location),m.removeCallback("done","expand"),m.removeCallback("fail","expand");let l=h.canon(n);function u(){if(l=h.canon(l),!e||!e.parentNode||!e.parentNode.parentNode)return!1;let t;if(a.log.info("@@ REPAINTING "),s){for(a.log.info(" ... p is "+e),t=e.firstChild;t.nextSibling&&(a.log.info(" ... checking node "+t),"table"!==t.nodeName);t=t.nextSibling);t=C(l,t,o,r)}else t=C(l,void 0,o,r);s=!0,a.utils.ancestor(e,"TABLE")&&"white"===a.utils.ancestor(e,"TABLE").style.backgroundColor?t.style.backgroundColor="#eee":t.style.backgroundColor="white",a.utils.emptyNode(e).appendChild(t),p.focusTd=e,a.log.debug("expand: Node for "+l+" expanded");const n=h.each(l,a.ns.rdfs("seeAlso"));for(let e=0;e<n.length;e++)25===e&&a.log.warn("expand: Warning: many ("+n.length+") seeAlso links for "+l),m.lookUpThing(n[e],l)}function d(e){if(arguments[3])return!0;const t=h.canon(l);a.log.info("@@ expand: relevant subject="+t+", uri="+e+", already="+s);const n=h.sym(i.uri.docpart(e));if(e.indexOf("#")>=0)throw new Error("Internal error: hash in "+e);return!function(){if(!t.uri)return!0;const r=h.uris(t);if(!r)return!1;for(let t=0;t<r.length;t++)for(let n=i.uri.docpart(r[t]);n;n=h.HTTPRedirects[n])if(e===n)return!0;return!!h.anyStatementMatching(t,void 0,void 0,n)}()||(a.log.success("@@ expand OK: relevant subject="+t+", uri="+e+", source="+s),u(),!1)}r.solo&&U(l),a.log.debug("outlineExpand: dereferencing "+l);const f=t.createElement("span");e.appendChild(f),m.addCallback("done",d),m.addCallback("fail",d);const v=[];if(l.uri&&"rdf"===l.uri.split(":")[0])u();else{for(let e=0;e<v.length;e++){let t;if(t===v[e](l))return u(),a.log.debug("outline 1815"),void(t[1]&&g.removeChild(g.lastChild))}if(!l.uri||c||a.widgets.isAudio(l)||a.widgets.isVideo(l))u();else{const n=l.doc()&&l.doc().uri?l.doc().uri:""+l.doc(),i=function(r,i){if(e.querySelector&&n){if(e.querySelector('[data-outline-error-for="'+n+'"]'))return}const o=a.widgets.errorMessageBlock(t,r,"#fee",i instanceof Error?i:void 0);n&&o.setAttribute("data-outline-error-for",n),e.appendChild(o)};let o=!1;const s=m.nowOrWhenFetched(l.doc(),void 0,function(e,t){e?(m.lookUpThing(l),u(),r.solo&&U(l)):(o=!0,i(t,void 0))});s&&"function"==typeof s.catch&&s.catch(function(e){o||(o=!0,i(e,e))})}}}function H(e,t){let n,r,i,o,s=a.utils.ancestor(e,"TR");for(s=a.utils.ancestor(s.parentNode,"TR"),s&&(n=s.AJAR_statement),r=e.parentNode;"TD"!==r.tagName;r=r.parentNode)if(void 0===r)return void alert("Not enclosed in TD!");a.log.debug("Collapsing subject "+t),n&&(a.log.debug("looking up pred "+n.predicate.uri+"in defaults"),i=W.defaults[n.predicate.uri]),a.log.debug("view= "+i),"outline"===r.parentNode.parentNode.id&&(o=r.parentNode),p.replaceTD(p.outlineObjectTD(t,i,o,n),r)}function q(e,t){let n=null;for(let t=e.parentNode;t;t=t.parentNode)a.log.debug("level "+t.tagName),"TD"===t.tagName&&(n=t);a.utils.emptyNode(n).appendChild(C(t)),U(t),n.setAttribute("about",t.toNT())}new function(){this.pat=h.formula(),this.vars=[]},this.statusBarClick=function(e){const t=a.utils.getTarget(e);t.label&&(window.content.location=t.label)},this.showURI=function(e){e&&t.getElementById("UserURI")&&(t.getElementById("UserURI").value="NamedNode"===e.termType?e.uri:"")},this.showSource=function(){if("undefined"!=typeof sourceWidget){for(const e in sourceWidget.sources)sourceWidget.sources[e].setAttribute("class","");for(let e=0;e<f.length;e++){if(!f[e].parentNode)continue;const t=f[e].parentNode.AJAR_statement;if(!t)continue;const n=t.why;n&&n.uri&&sourceWidget.highlight(n,!0)}}},this.getSelection=function(){return f},this.targetOf=function(e){let t;if(e||(e=window.event),e.target)t=e.target;else{if(!e.srcElement)return a.log.error("can't get target for event "+e),!1;t=e.srcElement}return 3===t.nodeType&&(t=t.parentNode),t},this.walk=function(e,n){const r=n||f[0];let i;switch(e){case"down":try{i=r.parentNode.nextSibling.lastChild}catch(e){return void this.walk("up")}I(),R(i,!0);break;case"up":try{i=r.parentNode.previousSibling.lastChild}catch(e){return}I(),R(i,!0);break;case"right":if(I(),r.nextSibling||"strong"===r.lastChild.tagName)R(r.nextSibling,!0);else{R(t.evaluate("table/div/tr/td[2]",r,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,!0)}break;case"left":if(I(),r.previousSibling&&"undetermined"===r.previousSibling.className)return R(r.previousSibling,!0),!0;R(a.utils.ancestor(r.parentNode,"TD"),!0);break;case"moveTo":I(),R(n,!0)}"down"!==e&&"up"!==e||i.tabulatorSelect||this.walk(e)},this.OutlinerKeypressPanel=function(e){function n(e){e&&t.getElementById("UserURI")&&(t.getElementById("UserURI").value="NamedNode"===e.termType?e.uri:"")}function i(e){return arguments[3]||(u("right",l),n(a.utils.getAbout(h,f[0]))),!0}let s,c;if(a.log.info("Key "+e.keyCode+" pressed"),"TEXTAREA"===a.utils.getTarget(e).tagName)return;if("UserURI"===a.utils.getTarget(e).id)return;if(f.length>1)return;if(0===f.length)return void(13!==e.keyCode&&38!==e.keyCode&&40!==e.keyCode&&37!==e.keyCode&&39!==e.keyCode||(this.walk("right",p.focusTd),n(a.utils.getAbout(h,f[0]))));const l=f[0];switch(m.removeCallback("done","setSelectedAfterward"),m.removeCallback("fail","setSelectedAfterward"),e.keyCode){case 13:if("HTML"===a.utils.getTarget(e).tagName){const e=a.utils.getAbout(h,l);s=l.parentNode.AJAR_statement.why,c=o.store.updater.editable(s.uri,h),e?d.GotoSubject(e,!0):c&&p.UserInput.Enter(l)}else this.UserInput.Keypress(e),this.walk("down"),e.stopPropagation();return;case 38:this.walk("up"),e.stopPropagation(),e.preventDefault();break;case 40:this.walk("down"),e.stopPropagation(),e.preventDefault()}if("INPUT"===a.utils.getTarget(e).tagName)return;let u;switch(e.keyCode){case 46:case 8:s=l.parentNode.AJAR_statement.why,c=o.store.updater.editable(s.uri,h),c&&(e.preventDefault(),this.UserInput.Delete(l));break;case 37:{if(this.walk("left"))return;const e=a.utils.ancestor(l.parentNode,"TD");H(l,a.utils.getAbout(h,e));break}case 39:{const e=a.utils.getAbout(h,l);if(e){if(u=this.walk,l.nextSibling)return void this.walk("right");"TABLE"!==l.firstChild.tagName&&(m.addCallback("done",i),m.addCallback("fail",i),z(l,e,{pane:r.byName("defaultPane")})),i()}}break;case 38:case 40:break;default:switch(e.charCode){case 99:if(e.ctrlKey){p.UserInput.copyToClipboard(p.clipboardAddress,l);break}break;case 118:case 112:if(e.ctrlKey){p.UserInput.pasteFromClipboard(p.clipboardAddress,l);break}break;default:a.utils.getTarget(e).tagName}}if(n(a.utils.getAbout(h,f[0])),f[0]){const e=a.utils.findPos(f[0])[1];e+f[0].clientHeight>window.scrollY+window.innerHeight&&a.utils.getEyeFocus(f[0],!0,!0,window),e<window.scrollY+54&&a.utils.getEyeFocus(f[0],!0,void 0,window)}},this.OutlinerMouseclickPanel=function(e){switch(p.UserInput._tabulatorMode){case 0:!function(e){a.log.info("@TabulatorMousedown, dom.location is now "+t.location);const n=p.targetOf(e);if(!n)return;const r=n.tagName;"INPUT"!==r&&"TEXTAREA"!==r&&(p.UserInput.clearMenu(),p.UserInput.lastModified&&p.UserInput.lastModified.parentNode.nextSibling&&p.UserInput.backOut(),(!n.src||n.src.slice(n.src.indexOf("/icons/")+1)!==c.outlineIcons.src.icon_show_choices&&n.src.slice(n.src.indexOf("/icons/")+1)!==c.outlineIcons.src.icon_add_triple)&&p.UserInput.clearInputAndSave(e),n.src&&n.src.slice(n.src.indexOf("/icons/")+1)===c.outlineIcons.src.icon_show_choices||p.UserInput.clearMenu(),e&&e.stopPropagation())}(e);break;case 1:p.UserInput.Click(e)}},this.replaceTD=function(e,t){let n;S(t)&&(n=!0);for(let e=f.length-1;e>-1;e--)for(let n=f[e];n.parentNode;n=n.parentNode)n===t&&R(f[e],!1);t.parentNode.replaceChild(e,t),n&&R(e,!0)},d.outlineRefocus=q,this.GotoFormURI_enterKey=function(e){13===e.keyCode&&d.GotoFormURI(e)},this.GotoFormURI=function(e){!function(e){const t=h.sym(e);this.GotoSubject(t,!0)}(t.getElementById("UserURI").value)},this.GotoURIinit=function(e){const t=h.sym(e);this.GotoSubject(t)},this.GotoSubject=function(e,n,r,i,o,s){s=s||t.getElementById("outline"),i&&(a.utils.emptyNode(s),s.style.width="100%");const c=function(){const n=t.createElement("TR");n.style.verticalAlign="top",s.appendChild(n);const r=p.outlineObjectTD(e,void 0,n);return n.appendChild(r),r}();if(i&&U(e),n){z(c,e,{pane:r,solo:i});const t=c.parentNode;a.utils.getEyeFocus(t,!1,void 0,window)}if(i&&t&&t.defaultView&&t.defaultView.history&&document.location.href!==e.uri){const n=r?{paneName:r.name}:{};try{t.defaultView.history.pushState(n,e.uri,e.uri)}catch(e){}}return e};const $=a.ns,W=(0,s.propertyViews)(t);function V(n){let i;if("Literal"===n.termType){const e={integer:"text-align: right;",decimal:"text-align: '.';",double:"text-align: '.';"};i=t.createElement("span"),i.textContent=n.value;let r="";if(n.datatype&&n.datatype.uri){const t=a.ns.xsd("").uri;n.datatype.uri.slice(0,t.length)===t&&(r=e[n.datatype.uri.slice(t.length)])}i.setAttribute("style",r||"white-space: pre-wrap;")}else if("NamedNode"===n.termType||"BlankNode"===n.termType)if(i=t.createElement("span"),i.setAttribute("about",n.toNT()),p.appendAccessIcons(h,i,n),"NamedNode"===n.termType)if("tel:"===n.uri.slice(0,4)){const e=n.uri.slice(4),r=t.createElement("a");i.appendChild(t.createTextNode(e)),r.setAttribute("href",n.uri),r.appendChild(a.utils.AJARImage(c.outlineIcons.src.icon_telephone,"phone","phone "+e,t)),i.appendChild(r),r.firstChild.setAttribute("class","phoneIcon")}else{i.appendChild(t.createTextNode(a.utils.label(n)));const e=a.widgets.linkIcon(t,n);i.appendChild(e),a.widgets.makeDraggable(i,n)}else i.appendChild(t.createTextNode(a.utils.label(n)));else if("Collection"===n.termType){i=t.createElement("table"),i.classList.add("tableFullWidth"),i.setAttribute("about",n.toNT());for(let e=0;e<n.elements.length;e++){const r=n.elements[e],a=i.appendChild(t.createElement("tr")),o=a.appendChild(t.createElement("td"));o.classList.add("obj"),o.setAttribute("notSelectable","false"),o.setAttribute("about",n.toNT()),o.innerHTML=e+1+")",a.appendChild(p.outlineObjectTD(r))}}else"Graph"===n.termType?(i=r.byName("dataContentPane").statementsAsTables(n.statements,e),i.setAttribute("class","nestedFormula")):(a.log.error("Object "+n+" has unknown term type: "+n.termType),i=t.createTextNode("[unknownTermType:"+n.termType+"]"));return a.log.debug("contents: "+i.innerHTML),i}return this.createTabURI=function(){t.getElementById("UserURI").value=t.URL+"?uri="+t.getElementById("UserURI").value},this.UserInput.setSelected=R,this.UserInput.deselectAll=I,this.UserInput.views=W,this.outlineExpand=z,this};var r=d(n(4059));n(3824);var i=d(n(8230)),a=d(n(500)),o=n(9332),s=n(8071),c=n(7132),l=n(7339),u=d(n(2697));function d(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(d=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}},7132(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.outlineIcons=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));const i=t.outlineIcons={};i.src=[],i.tooltips=[],i.src.icon_expand=r.icons.originalIconBase+"tbl-expand-trans.png",i.src.icon_more=r.icons.originalIconBase+"tbl-more-trans.png",i.src.icon_collapse=r.icons.originalIconBase+"tbl-collapse.png",i.src.icon_internals=r.icons.originalIconBase+"tango/22-emblem-system.png",i.src.icon_instances=r.icons.originalIconBase+"tango/22-folder-open.png",i.src.icon_foaf=r.icons.originalIconBase+"foaf/foafTiny.gif",i.src.icon_social=r.icons.originalIconBase+"social/social.gif",i.src.icon_mb=r.icons.originalIconBase+"microblog/microblog.png",i.src.icon_shrink=r.icons.originalIconBase+"tbl-shrink.png",i.src.icon_rows=r.icons.originalIconBase+"tbl-rows.png",i.src.icon_unrequested=r.icons.originalIconBase+"16dot-blue.gif",i.src.icon_fetched=r.icons.originalIconBase+"16dot-green.gif",i.src.icon_failed=r.icons.originalIconBase+"16dot-red.gif",i.src.icon_requested=r.icons.originalIconBase+"16dot-yellow.gif",i.src.icon_CVPane=r.icons.originalIconBase+"CV.png",i.src.icon_defaultPane=r.icons.originalIconBase+"about.png",i.src.icon_visit=r.icons.originalIconBase+"tango/22-text-x-generic.png",i.src.icon_dataContents=r.icons.originalIconBase+"rdf_flyer.24.gif",i.src.icon_n3Pane=r.icons.originalIconBase+"w3c/n3_smaller.png",i.src.icon_RDFXMLPane=r.icons.originalIconBase+"22-text-xml4.png",i.src.icon_imageContents=r.icons.originalIconBase+"tango/22-image-x-generic.png",i.src.icon_airPane=r.icons.originalIconBase+"1pt5a.gif",i.src.icon_LawPane=r.icons.originalIconBase+"law.jpg",i.src.icon_pushbackPane=r.icons.originalIconBase+"pb-logo.png",i.src.icon_photoPane=r.icons.originalIconBase+"photo_small.png",i.src.icon_tagPane=r.icons.originalIconBase+"tag_small.png",i.src.icon_TinyTag=r.icons.originalIconBase+"tag_tiny.png",i.src.icon_photoBegin=r.icons.originalIconBase+"photo_begin.png",i.src.icon_photoNext=r.icons.originalIconBase+"photo_next.png",i.src.icon_photoBack=r.icons.originalIconBase+"photo_back.png",i.src.icon_photoEnd=r.icons.originalIconBase+"photo_end.png",i.src.icon_photoImportPane=r.icons.originalIconBase+"flickr_small.png",i.src.icon_retract=r.icons.originalIconBase+"retract.gif",i.src.icon_refresh=r.icons.originalIconBase+"refresh.gif",i.src.icon_optoff=r.icons.originalIconBase+"optional_off.PNG",i.src.icon_opton=r.icons.originalIconBase+"optional_on.PNG",i.src.icon_map=r.icons.originalIconBase+"compassrose.png",i.src.icon_retracted=i.src.icon_unrequested,i.src.icon_retracted=i.src.icon_unrequested,i.src.icon_time=r.icons.originalIconBase+"icons/Wclocksmall.png",i.src.icon_telephone=r.icons.originalIconBase+"silk/telephone.png",i.src.icon_time=r.icons.originalIconBase+"Wclocksmall.png",i.src.icon_remove_node=r.icons.originalIconBase+"tbl-x-small.png",i.src.icon_add_triple=r.icons.originalIconBase+"tango/22-list-add.png",i.src.icon_add_new_triple=r.icons.originalIconBase+"tango/22-list-add-new.png",i.src.icon_show_choices=r.icons.originalIconBase+"userinput_show_choices_temp.png",i.src.icon_display_reasons=r.icons.originalIconBase+"tango/22-help-browser.png",i.tooltips[i.src.icon_display_reasons]="Display explanations",i.tooltips[i.src.icon_add_triple]="Add more",i.tooltips[i.src.icon_add_new_triple]="Add one",i.tooltips[i.src.icon_remove_node]="Remove",i.tooltips[i.src.icon_expand]="View details.",i.tooltips[i.src.icon_collapse]="Hide details.",i.tooltips[i.src.icon_shrink]="Shrink list.",i.tooltips[i.src.icon_internals]="Under the hood",i.tooltips[i.src.icon_instances]="List",i.tooltips[i.src.icon_foaf]="Friends",i.tooltips[i.src.icon_rows]="Make a table of data like this",i.tooltips[i.src.icon_unrequested]="Fetch this.",i.tooltips[i.src.icon_fetched]="Fetched successfully.",i.tooltips[i.src.icon_failed]="Failed to load. Click to retry.",i.tooltips[i.src.icon_requested]="This is being fetched. Please wait...",i.tooltips[i.src.icon_visit]="View document",i.tooltips[i.src.icon_retract]="Remove this source and all its data from tabulator.",i.tooltips[i.src.icon_refresh]="Refresh this source and reload its triples.",i.OutlinerIcon=function(e,t,n,r,i){return this.src=e,this.alt=n,this.width=t,this.tooltip=r,this.filter=i,this},i.termWidgets={},i.termWidgets.optOn=new i.OutlinerIcon(i.src.icon_opton,20,"opt on","Make this branch of your query mandatory."),i.termWidgets.optOff=new i.OutlinerIcon(i.src.icon_optoff,20,"opt off","Make this branch of your query optional."),i.termWidgets.addTri=new i.OutlinerIcon(i.src.icon_add_triple,18,"add tri","Add one")},8071(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.propertyViews=function(e){const t={properties:[],defaults:[],classes:[]},n=(0,i.default)(e),o=(0,a.default)(e);return s(t,r.ns.foaf("depiction").uri,n,!0),s(t,r.ns.foaf("img").uri,n,!0),s(t,r.ns.foaf("thumbnail").uri,n,!0),s(t,r.ns.foaf("logo").uri,n,!0),s(t,r.ns.schema("image").uri,n,!0),s(t,r.ns.foaf("mbox").uri,o,!0),t},t.viewsAddPropertyView=s;var r=n(500),i=o(n(3660)),a=o(n(6357));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t,n,r){e.properties[t]||(e.properties[t]=[]),e.properties[t].push(n),r&&(e.defaults[t]=n)}},2697(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuerySource=function(){this.queries=[],this.listeners=[],this.addQuery=function(e){let t;for(null!==e.name&&""!==e.name||(e.name="Query #"+(this.queries.length+1)),e.id=this.queries.length,this.queries.push(e),t=0;t<this.listeners.length;t++)null!==this.listeners[t]&&this.listeners[t].addQuery(e)},this.removeQuery=function(e){let t;for(t=0;t<this.listeners.length;t++)null!==this.listeners[t]&&this.listeners[t].removeQuery(e);null!==this.queries[e.id]&&delete this.queries[e.id]},this.addListener=function(e){let t;for(this.listeners.push(e),t=0;t<this.queries.length;t++)null!==this.queries[t]&&e.addQuery(this.queries[t])},this.removeListener=function(e){let t;for(t=0;t<this.queries.length;t++)null!==this.queries[t]&&e.removeQuery(this.queries[t]);for(t=0;t<this.listeners.length;t++)this.listeners[t]===e&&delete this.listeners[t]}},t.makeQueryRow=l,t.viewAndSaveQuery=function(e,t){const n=e.qs;i.log.info("outline.doucment is now "+e.document.location);const r=function(e,t){const n=new a.Query,r=e.length;let o,s,c,u;for(o=0;o<r;o++)s=e[o],u=s.parentNode,c=u.AJAR_statement,i.log.debug("Statement "+c),s.getAttribute("class").indexOf("pred")>=0&&(i.log.info(" We have a predicate"),l(n,u)),s.getAttribute("class").indexOf("obj")>=0&&(i.log.info(" We have an object"),l(n,u,!0));function d(e){const t=e.statements.length;let n,r;for(let i=0;i<t;i++)n=e.statements[i],r=n.tr,void 0!==r&&(r.AJAR_pattern=null,r.AJAR_variable=null);for(const t in e.optional)d(e.optional[t])}return t.addQuery(n),d(n.pat),n}(t,n);for(let e=0;e<n.listeners.length;e++)n.listeners[e].getActiveView().view.drawQuery(r),n.listeners[e].updateQueryControls(n.listeners[e].getActiveView())};var r=n(9332),i=o(n(500)),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=[];function c(e){let t=e;for(;;){if(t.getAttribute("predTR"))return t;if(!t.previousSibling||"TR"!==t.previousSibling.nodeName)return e;t=t.previousSibling}}function l(e,t,n){const o=t.AJAR_inverse;let u,d,p;let f=null;for(d=t.parentNode;d;d=d.parentNode)if(void 0!==d.AJAR_statement){d.setAttribute("bla",d.AJAR_statement),d.AJAR_variable||l(e,d),u=d.AJAR_variable;const t=c(d);t.getAttribute("optionalSubqueriesIndex")&&(f=t.getAttribute("optionalSubqueriesIndex"),p=s[f]);break}p||(p=e.pat);const h=c(t),m=h.getAttribute("optional");if(m||(f?h.setAttribute("optionalSubqueriesIndex",f):h.removeAttribute("optionalSubqueriesIndex")),m){const e=r.store.formula();s.push(e),h.setAttribute("optionalSubqueriesIndex",s.length-1),p.optional.push(e),p=e}const g=t.AJAR_statement,v=t.AJAR_inverse?g.subject:g.object;let b=!0;v.isBlank&&n&&window.alert("You cannot constrain a query with a blank node. No constraint will be added."),u||(b=!1,u=o?g.object:g.subject);const y=t.AJAR_variable?t.AJAR_variable:r.store.variable(i.utils.newVariableName());e.vars.push(y),y.label=b?u.label:i.utils.label(u),y.label+=" "+i.utils.predicateLabelForXML(g.predicate,o);const w=(x=y,A=u,o?new a.Statement(x,g.predicate,A):new a.Statement(A,g.predicate,x));var x,A;return y.label=y.label.slice(0,1).toUpperCase()+y.label.slice(1),n&&(p.constraints[y]=new function(e){return this.describe=function(t){return t+" = "+e.toNT()},this.test=function(t){return e.sameTerm(t)},this}(v)),i.log.info("Pattern: "+w),w.tr=t,t.AJAR_pattern=w,t.AJAR_variable=y,i.log.debug("Query pattern: "+w),p.statements.push(w),y}},7339(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserInput=function e(t){const n=t.document;this.menuId="predicateMenu1";const s=function(e){},u=r.ns.rdf,d=o.Namespace("http://purl.org/ontology/bibo/"),p=o.Namespace("http://purl.org/dc/elements/1.1/");let f=!1;c||(c=new o.Formula,c.superFormula=i.store);l||(l=new o.IndexedFormula);l.name="TempFormula",i.store.updater||(i.store.updater=new o.UpdateManager(i.store));return{sparqler:i.store.updater,lastModified:null,lastModifiedStat:null,statIsInverse:!1,addNewPredicateObject:function(e){if("bottom-border-active"!==r.utils.getTarget(e).className)return;const a=t.UserInput,s=r.utils.getTarget(e),c=n.createElement("tr");r.utils.ancestor(s,"DIV").insertBefore(c,r.utils.ancestor(s,"TR"));const l=n.createElement("tr"),u=a.generateRequest("(TBD)",l,!0);c.appendChild(l.firstChild);const d=a.generateRequest("(Enter text or drag an object onto this field)",l,!1);if(c.appendChild(l.firstChild),r.utils.ancestor(s,"TR").previousSibling&&r.utils.ancestor(s,"TR").previousSibling.AJAR_statement){const e=r.utils.ancestor(s,"TR").previousSibling.AJAR_statement;a.formUndetStat(c,e.subject,u,d,e.why,!1)}else{const e=r.utils.getAbout(i.store,r.utils.ancestor(s.parentNode.parentNode,"TD")),t=i.store.sym(o.Util.uri.docpart(e.uri));a.formUndetStat(c,e,u,d,t,!1)}t.walk("moveTo",c.firstChild),r.log.info("addNewPredicateObject: selection = "+t.getSelection().map(function(e){return e.textContent}).join(", ")),this.startFillInText(t.getSelection()[0])},addNewObject:function(e){const n=r.utils.getTarget(e).parentNode.parentNode,i=n.parentNode.AJAR_inverse;this.lastModifiedStat=n.parentNode.AJAR_statement;const a=this.appendToPredicate(n),o=this.generateRequest(" (Error) ",a,!1),s=a.previousSibling.AJAR_statement;i?this.formUndetStat(a,o,s.predicate,s.object,s.why,!0):this.formUndetStat(a,s.subject,s.predicate,o,s.why,!1),t.walk("moveTo",a.lastChild),this.startFillInText(a.lastChild)},Delete:function(e){this.deleteTriple(e,!1)},Enter:function(e){this.literalModification(e)},Click:function(e){const t=r.utils.getTarget(e);"Literal"===r.utils.getTerm(t).termType&&(this.literalModification(t),e.preventDefault(),e.stopPropagation())},pasteFromClipboard:function(e,n){function i(e){const n=t.clipboard[e].shift();if(null!==n){switch(e){case"predicates":case"objects":{const e=t.clipboard.all;for(let t=0;;t++)if(n.sameTerm(e[t])){e.splice(t,1);break}break}case"all":throw new Error("hostorical code not understood - what is theCollection?")}return n}r.log.warn("no more element in clipboard!")}let a;switch(n.className){case"undetermined selected":if(a=n.nextSibling?i("predicates"):i("objects"),!a)return;break;case"pred selected":if(a=i("objects"),!a)return;break;case"selected":{const e=i("all");if(!e)return;return a=e[0],void this.insertTermTo(n,a,e[1])}}this.insertTermTo(n,a)},startFillInText:function(e){switch(this.whatSortOfEditCell(e)){case"DatatypeProperty-like":r.utils.emptyNode(e),this.lastModified=this.createInputBoxIn(e," (Please Input) "),this.lastModified.isNew=!1,this.lastModified.select();break;case"predicate":this.performAutoCompleteEdit(e,"PredicateAutoComplete");break;case"ObjectProperty-like":case"no-idea":this.performAutoCompleteEdit(e,"GeneralAutoComplete")}},literalModification:function(e){if(r.log.debug("entering literal Modification with "+e+e.textContent),-1!==e.className.indexOf(" pendingedit"))return r.log.warn("The node you attempted to edit has a request still pending.\nPlease wait for the request to finish (the text will turn black)\nbefore editing this node again."),!0;const t=e;if(!this.getStatementAbout(t))return;let a,o,s;try{a=r.utils.getTerm(t),o=r.utils.ancestor(t,"TR")}catch(n){r.log.warn("userinput.js: "+n+r.utils.getAbout(i.store,e)),r.log.error(t+" getStatement Error:"+n)}try{s=o.lastChild}catch(e){r.log.error(e+"@"+t)}if("Literal"===a.termType){if(s.removeChild(s.firstChild),a.value.match("\n")){const e=n.createElement("textarea");e.appendChild(n.createTextNode(a.value)),e.setAttribute("rows",(a.value.match(/\n/g).length+1).toString()),e.setAttribute("cols","100"),e.setAttribute("class","textinput"),s.appendChild(e),this.lastModified=e}else this.lastModified=this.createInputBoxIn(s,a.value);this.lastModified.isNew=!1,this.lastModified.select()}return!0},performAutoCompleteEdit:function(e,t){r.utils.emptyNode(e),this.lastModified=this.createInputBoxIn(e,""),this.lastModified.select(),this.lastModified.addEventListener("keypress",this.getAutoCompleteHandler(t),!1),this.getAutoCompleteHandler(t)(1)},backOut:function(){this.deleteTriple(this.lastModified.parentNode,!0),this.lastModified=null},clearMenu:function(){const e=n.getElementById(this.menuID);e&&e.parentNode.removeChild(e)},clearInputAndSave:function(e){let n;if(!this.lastModified)return;if(!this.lastModified.isNew)try{n=this.getStatementAbout(this.lastModified).object}catch(e){return}let s,c,l,d,p=this.lastModifiedStat;if(this.lastModified.value!==this.lastModified.defaultValue){let c;if(""===this.lastModified.value)return this.lastModified.value=this.lastModified.defaultValue,void this.clearInputAndSave();if(this.lastModified.isNew){p=new o.Statement(p.subject,p.predicate,i.store.literal(this.lastModified.value),p.why),s=this.views.defaults[p.predicate.uri],c=r.utils.ancestor(this.lastModified,"TR");try{i.store.updater.update([],[p],function(e,n,i){n||(r.log.error("Error occurs while inserting "+p+"\n\n"+i+"\n"),t.UserInput.deleteTriple(c.lastChild,!0))})}catch(e){return void r.log.error("Error inserting fact "+p+":\n\t"+e+"\n")}p=i.store.add(p.subject,p.predicate,i.store.literal(this.lastModified.value),p.why)}else{if(this.statIsInverse)return r.log.error("Invalid Input: a literal can't be a subject in RDF/XML"),void this.backOut();let s,l,d;switch(n.termType){case"Literal":{const t=this.lastModified.value;c=r.utils.ancestor(this.lastModified,"TR");const a=this.lastModified.defaultValue;l=o.st(p.subject,p.predicate,i.store.literal(this.lastModified.value),p.why);try{i.store.updater.update([p],[l],function(e,i,o){i?n.value=t:(r.log.warn("Error occurs while editing "+p+"\n\n"+o),c.lastChild.textContent=a),c.lastChild.className=c.lastChild.className.replace(/ pendingedit/g,"")})}catch(e){return void r.log.warn("Error occurs while editing "+p+":\n\t"+e)}break}case"BlankNode":{const n=i.store.literal(this.lastModified.value,"");if("Collection"!==p.predicate.termType)return void this.fillInRequest("object",this.lastModified.parentNode,i.store.literal(this.lastModified.value));{const f=p.predicate.elements[0];if(i.store.any(void 0,f,n)){if(!e){const t=this.lastModified.parentNode;(e={}).pageX=r.utils.findPos(t)[0],e.pageY=r.utils.findPos(t)[1]+t.clientHeight}this.showMenu(e,"DidYouMeanDialog",void 0,{dialogTerm:i.store.any(void 0,f,n),bnodeTerm:p.subject})}else{s=r.utils.ancestor(r.utils.ancestor(this.lastModified,"TR").parentNode,"TR").AJAR_statement,l=o.st(p.subject,f,n,p.why);const a=i.store.the(p.subject,u("type"));d=i.store.anyStatementMatching(p.subject,u("type"),a,p.why),c=r.utils.ancestor(r.utils.ancestor(this.lastModified,"TR"),"TD").parentNode;try{i.store.updater.update([],[s,l,d],function(e,n,r){n||t.UserInput.deleteTriple(c.lastChild,!0)})}catch(e){return}i.store.remove(p),i.store.add(p.subject,f,n,p.why)}const h=r.utils.ancestor(this.lastModified.parentNode.parentNode,"TD"),m=a.byName("default");t.outlineExpand(h,p.subject,{pane:m,already:!0}),t.walk("right",t.focusTd)}break}}}}else{if(this.lastModified.isNew)return c=r.utils.ancestor(this.lastModified,"TR"),l=this.generateRequest("(To be determined. Re-type of drag an object onto this field)"),d=c.previousSibling.AJAR_statement,this.formUndetStat(c,d.subject,d.predicate,l,d.why,!1),void(this.lastModified=null);if("Collection"===p.predicate.termType){i.store.removeMany(p.subject);const e=r.utils.ancestor(r.utils.ancestor(this.lastModified,"TR").parentNode,"TR");return d=e.AJAR_statement,l=this.generateRequest("(To be determined. Re-type of drag an object onto this field)"),this.formUndetStat(e,d.subject,d.predicate,l,d.why,!1),t.replaceTD(t.outlineObjectTD(l,s),e.lastChild),void(this.lastModified=null)}if(this.statIsInverse){if("BlankNode"===p.subject.termType)return void this.backOut()}else if("BlankNode"===p.object.termType)return void this.backOut()}c=r.utils.ancestor(this.lastModified,"TR"),this.statIsInverse?t.replaceTD(t.outlineObjectTD(p.subject,s),c.lastChild):t.replaceTD(t.outlineObjectTD(i.store.literal(this.lastModified.value),s),c.lastChild),this.lastModified.value!==this.lastModified.defaultValue&&(c.lastChild.className+=" pendingedit"),this.lastModified=null},deleteTriple:function(e,n){if(r.log.debug("deleteTriple entered"),!n&&-1!==e.className.indexOf(" pendingedit"))return void t.walk("up");const a=this.getStatementAbout(e);if(!(n||i.store.whether(a.object,u("type"),r.ns.link("Request"))||i.store.whether(a.predicate,u("type"),r.ns.link("Request"))||i.store.whether(a.subject,u("type"),r.ns.link("Request")))){r.log.debug("about to send SPARQLUpdate");try{i.store.updater.update([a],[],function(t,n,r){n?s():e.className=e.className.replace(/ pendingedit/g,"")}),e.className+=" pendingedit"}catch(e){return r.log.error(e),void r.log.warn("Error deleting statement "+a+":\n\t"+e)}r.log.debug("SPARQLUpdate sent")}r.log.debug("about to remove "+a),r.log.debug("removed"),t.walk("up");const o=e.parentNode;function s(){let e,t;for(e=o;1===e.childNodes.length;e=e.previousSibling);if(e===o){const n=e.nextSibling;n.nextSibling&&1===n.childNodes.length&&(t=e.firstChild,t.setAttribute("rowspan",parseInt(t.getAttribute("rowspan"))-1),n.insertBefore(e.firstChild,n.firstChild)),o.parentNode.removeChild(o)}else t=e.firstChild,t.setAttribute("rowspan",parseInt(t.getAttribute("rowspan"))-1),o.parentNode.removeChild(o)}n&&s()},clipboardInit:function(){t.clipboard={},t.clipboard.objects=[],t.clipboard.predicates=[],t.clipboard.all=[]},copyToClipboard:function(e,n){const i=r.utils.getTerm(n);switch(n.className){case"selected":case"obj selected":t.clipboard.objects.unshift(i);break;case"pred selected":case"pred internal selected":t.clipboard.predicates.unshift(i)}t.clipboard.all.unshift(i)},insertTermTo:function(e,a,o){let s,l;switch(e.className){case"undetermined selected":s=this.views.defaults[e.parentNode.AJAR_statement.predicate.uri],this.fillInRequest(e.nextSibling?"predicate":"object",e,a);break;case"pred selected":{const n=this.appendToPredicate(e);l=e.parentNode.AJAR_statement,s=this.views.defaults[l.predicate.uri],n.appendChild(t.outlineObjectTD(a,s));const o=e.parentNode.AJAR_inverse;o?n.AJAR_statemnet=i.store.add(a,l.predicate,l.object,l.why):n.AJAR_statement=i.store.add(l.subject,l.predicate,a,l.why);try{i.store.updater.update([],[n.AJAR_statement],function(e,t,i){t||r.log.error("userinput.js (pred selected): Fail trying to insert statement "+n.AJAR_statement+": "+i)})}catch(e){return void r.log.error("Exception trying to insert statement "+n.AJAR_statement+": "+r.utils.stackString(e))}n.AJAR_inverse=o,c.statements.push(n.AJAR_statement);break}case"selected":{const i=r.utils.ancestor(e,"TABLE").lastChild,s=i.insertBefore(n.createElement("tr"),i.lastChild);if(l=s.previousSibling.AJAR_statement,void 0===o&&(o=!0),o)this.formUndetStat(s,l.subject,this.generateRequest("(TBD)",s,!0),a,l.why,!1),s.appendChild(t.outlineObjectTD(a)),t.walk("moveTo",s.firstChild),this.startFillInText(s.firstChild);else{const e=this.generateRequest("(To be determined. Re-type of drag an object onto this field)",s);this.formUndetStat(s,l.subject,a,e,l.why,!1),s.insertBefore(t.outlinePredicateTD(a,s,!1,!1),s.firstChild),t.walk("moveTo",s.lastChild),this.startFillInText(s.lastChild)}break}}},Refill:function(e,t){r.log.info("Refill"+t.textContent);const n=t.nextSibling;let a;if(n){let s,c,l;if("undetermined"===t.nextSibling.className){s=r.utils.getAbout(i.store,r.utils.ancestor(t,"TABLE").parentNode),c=i.store.any(s,u("type")),l=[];const e=".\n";l[0]="SELECT ?pred WHERE{\n?pred "+u("type")+u("Property")+".\n?pred "+r.ns.rdfs("domain")+c+".}",l[1]="SELECT ?pred ?class\nWHERE{\n?pred "+u("type")+u("Property")+".\n"+c+r.ns.rdfs("subClassOf")+" ?class.\n?pred "+r.ns.rdfs("domain")+" ?class.\n}",l[2]="SELECT ?pred WHERE{\n"+s+u("type")+i.store.variable("subjectClass")+e+i.store.variable("pred")+r.ns.rdfs("domain")+i.store.variable("subjectClass")+e+"}",a=l.map(o.SPARQLToQuery)}else{s=r.utils.getAbout(i.store,r.utils.ancestor(t,"TABLE").parentNode),c=i.store.any(s,u("type"));const e=t.parentNode.AJAR_statement.object;l="SELECT ?pred WHERE{"+s+u("type")+"?subjectClass.\n"+e+u("type")+"?objectClass.\n?pred "+r.ns.rdfs("domain")+"?subjectClass.\n?pred "+r.ns.rdfs("range")+"?objectClass.\n}",a=o.SPARQLToQuery(l)}this.showMenu(e,"GeneralPredicateChoice",a,{isPredicate:n,selectedTd:t})}else{const a=t.parentNode.AJAR_statement.predicate;if((i.store.whether(a,u("type"),r.ns.owl("DatatypeProperty"))||"Collection"===a.termType||i.store.whether(a,r.ns.rdfs("range"),r.ns.rdfs("Literal")))&&(t.className="",r.utils.emptyNode(t),this.lastModified=this.createInputBoxIn(t," (Please Input) "),this.lastModified.isNew=!1,this.lastModified.select()),t.parentNode.AJAR_statement.predicate.sameTerm(u("type"))){const i="SELECT ?class WHERE{?class "+u("type")+r.ns.rdfs("Class")+".}",a=o.SPARQLToQuery(i);this.showMenu(e,"TypeChoice",a,{isPredicate:n,selectedTd:t})}}},getAutoCompleteHandler:function(e){let a;return"PredicateAutoComplete"===e?e="predicate":"JournalTAC"!==e&&(e="all"),a="JournalTAC"===e?n.getElementById("inpid_journal_title"):this.lastModified||t.getSelection()[0].firstChild,a.value,function(o){const s={},c=a.parentNode;e||(e=c.nextSibling?"predicate":"all"),s.pageX=r.utils.findPos(c)[0],s.pageY=r.utils.findPos(c)[1]+c.clientHeight,s.pageX,s.pageY;let l=n.getElementById(t.UserInput.menuID);function u(e){e&&(l.lastHighlight&&(l.lastHighlight.className=""),l.lastHighlight=e,l.lastHighlight.className="activeItem",t.showURI(r.utils.getAbout(i.store,l.lastHighlight)))}if(o){let d=a.value;if("object"==typeof o)switch(o.keyCode,o.stopPropagation(),l&&!l.lastHighlight&&u(l.firstChild.firstChild),o.keyCode){case 13:case 9:if(!l)return void t.UserInput.clearInputAndSave();if(!l.lastHighlight)return"JournalTAC"===e?(t.UserInput.clearMenu(),"no lastH"):void 0;if("INPUT"===l.lastHighlight.tagName)switch(l.lastHighlight.value){case"New...":t.UserInput.createNew();break;case"GiveURI":t.UserInput.inputURI()}else{if("JournalTAC"===e){if(f&&l.lastHighlight){const e=l.lastHighlight.firstChild.firstChild.innerHTML;let t=l.lastHighlight.firstChild.nextSibling.innerHTML;return t=t.slice(4,-4),["gotdptitle",e,t]}return"asGivenTxt"}const n=r.utils.getAbout(i.store,l.lastHighlight),o="predicate"===e?"predicate":"object";t.UserInput.clearMenu(),t.UserInput.fillInRequest(o,a.parentNode,n)}return;case 38:return f=!0,""!==d||"TR"!==l.lastHighlight.tagName||l.lastHighlight.previousSibling?u(l.lastHighlight.previousSibling):u(l.firstChild.firstChild),"I'm a little Arrow Up";case 40:return f=!0,"INPUT"===l.lastHighlight.tagName?u(l.childNodes[1].firstChild):u(l.lastHighlight.nextSibling),"I'm a little Down Arrow";case 37:case 39:return void("INPUT"===l.lastHighlight.tagName&&(37===o.keyCode?u(l.lastHighlight.previousSibling):u(l.lastHighlight.nextSibling)));case 8:d=d.slice(0,-1);break;case 27:return l?void t.UserInput.clearMenu():void t.UserInput.backOut();default:f=!1,d+=String.fromCharCode(o.charCode),o.charCode,String.fromCharCode(o.charCode)}if("all"===e?(t.UserInput.clearMenu(),t.UserInput.showMenu(s,"GeneralAutoComplete",void 0,{inputText:d,selectedTd:c}),0===d.length&&t.UserInput.WildCardButtons()):"predicate"===e?(t.UserInput.clearMenu(),t.UserInput.showMenu(s,"PredicateAutoComplete",void 0,{inputText:d,isPredicate:!0,selectedTd:c})):"JournalTAC"===e&&(t.UserInput.clearMenu(),t.UserInput.showMenu(s,"JournalTitleAutoComplete",void 0,{inputText:d},"orderisuseless")),l=n.getElementById(t.UserInput.menuID),!l)return;return u(l.firstChild.firstChild),t.showURI(r.utils.getAbout(i.store,l.lastHighlight)),"nothing to return"}}},WildCardButtons:function(){const e=n.getElementById(t.UserInput.menuID),i=e.insertBefore(n.createElement("div"),e.firstChild),a=i.appendChild(n.createElement("input")),o=i.appendChild(n.createElement("input"));a.type="button",a.value="New...",o.type="button",o.value="Know its URI",i.addEventListener("mouseover",function(e){const i=n.getElementById(t.UserInput.menuID);i.lastHighlight&&(i.lastHighlight.className=""),i.lastHighlight=r.utils.ancestor(r.utils.getTarget(e),"INPUT"),i.lastHighlight&&(i.lastHighlight.className="activeItem")},!1),a.addEventListener("click",this.createNew,!1),o.addEventListener("click",this.inputURI,!1)},Keypress:function(e){if(13===e.keyCode)if("TEXTAREA"!==t.targetOf(e).tagName)this.clearInputAndSave();else{const t=parseInt(this.lastModified.getAttribute("rows"));this.lastModified.setAttribute("rows",(t+1).toString()),e.stopPropagation()}},Mousedown:function(t){window.addEventListener("keypress",function(t){!t.ctrlKey||115!==t.charCode&&113!==t.charCode||e.switchMode()},!1),window.addEventListener("mousedown",e.Mousedown,!1),document.getElementById("outline").oncontextmenu=function(){return!1},2===t.button&&(e.switchMode(),t&&(t.preventDefault(),t.stopPropagation()))},Mouseover:function(e){if(this.className="bottom-border-active",1===this._tabulatorMode)switch(r.utils.getTarget(e).tagName){case"TD":{const t=r.utils.getTarget(e);"pred"===t.className&&(t.style.cursor="copy");break}case"DIV":{const t=r.utils.getTarget(e);"bottom-border"===r.utils.getTarget(e).className&&(t.style.borderColor="rgb(100%,65%,0%)",t.style.cursor="copy");break}}},Mouseout:function(e){if(this.className="bottom-border",1===this._tabulatorMode){const t=r.utils.getTarget(e);"bottom-border"===r.utils.getTarget(e).className&&(t.style.borderColor="transparent",t.style.cursor="auto")}},whatSortOfEditCell:function(e){if(e.nextSibling)return"predicate";const t=this.getStatementAbout(e).predicate;return i.store.whether(t,r.ns.rdf("type"),r.ns.owl("DatatypeProperty"))||i.store.whether(t,r.ns.rdfs("range"),r.ns.rdfs("Literal"))||"Collection"===t.termType?"DatatypeProperty-like":i.store.whether(t,u("type"),r.ns.owl("ObjectProperty"))?"ObjectProperty-like":"no-idea"},getStatementAbout:function(e){const t=r.utils.ancestor(e,"TR");if(!t)throw new Error("No ancestor TR for the TD we clicked on:"+e);let n;try{n=t.AJAR_statement}catch(n){throw new Error("No AJAR_statement!"+e+e.textContent+" has ancestor "+t)}return this.lastModifiedStat=t.AJAR_statement,this.statIsInverse=t.AJAR_inverse,n},createInputBoxIn:function(e,i){r.log.info("myDocument in createInputBoxIn is now "+n.location),r.log.info("outline.document is now "+t.document.location);const a=n.createElement("input");return a.setAttribute("value",i),a.setAttribute("class","textinput"),"undetermined selected"!==e.className&&(a.setAttribute("size","100"),a.addEventListener("keypress",function(e){38!==e.keyCode&&40!==e.keyCode||(t.OutlinerKeypressPanel(e),t.UserInput.clearInputAndSave())},!1)),e.appendChild(a),a},createNew:function(e){t.UserInput.clearMenu();const n=t.getSelection()[0],r=n.parentNode.AJAR_statement.why,a=i.store.nextSymbol(r);t.UserInput.fillInRequest("object",n,a),t.outlineExpand(t.getSelection()[0],a)},inputURI:function(e){const n=t.UserInput;n.clearMenu();const a=t.getSelection()[0];r.utils.emptyNode(a);const o=" (Type a URI) ";n.lastModified=n.createInputBoxIn(a,o),n.lastModified.select(),n.lastModified.addEventListener("keypress",function(e){switch(e.stopPropagation(),e.keyCode){case 13:case 9:if(this.value!==o){const e=this.value;n.fillInRequest("object",a,i.store.sym(e))}}},!1)},appendToPredicate:function(e){let t,r=!1;try{for(t=e.parentNode.nextSibling;1===t.childNodes.length&&t.AJAR_statement;t=t.nextSibling);}catch(e){r=!0}const i=n.createElement("tr");if(i.style.colspan="1",i.style.display="block",i.style.display="",e.hasAttribute("rowspan")&&e.setAttribute("rowspan",parseInt(e.getAttribute("rowspan"))+1),e.hasAttribute("rowspan")||e.setAttribute("rowspan","2"),r){const t=e.parentNode.parentNode;"defaultPane"===t.className?t.insertBefore(i,t.lastChild):t.appendChild(i)}else t.parentNode.insertBefore(i,t);return i},bnode2symbol:function(e,t){i.store.copyTo(e,t,["two-direction","delete"])},generateRequest:function(e,n,i,a){let o;a||(o=n||r.utils.ancestor(this.lastModified,"TR"),r.utils.emptyNode(o));const s=l,c=s.bnode();if(s.add(c,r.ns.rdf("type"),r.ns.link("Request")),e.length,s.add(c,r.ns.link("message"),s.literal(e)),s.add(c,r.ns.link("to"),s.literal("The User")),s.add(c,r.ns.link("from"),s.literal("The User")),!a){let n;n=i?o.appendChild(t.outlinePredicateTD(c,o,!1,!1)):o.appendChild(t.outlineObjectTD(c)),n.className="undetermined",n.textContent=e}return c},showMenu:function(e,a,c,l,f){r.log.info("myDocument is now "+n.location),r.log.info("outline.doucment is now "+t.document.location);const h=this,m=n.createElement("div");if(l)for(const e in l);m.id=this.menuID,m.className="outlineMenu",m.style.top=e.pageY+"px",m.style.left=e.pageX+"px";if("JournalTitleAutoComplete"===a){const e=function(e){let t=0,n=0,r=0,i=0,a=0,o=0;for(;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)a=e.offsetLeft,o=e.offsetTop,a!==r&&(t+=e.offsetLeft-e.scrollLeft),o!==i&&(n+=e.offsetTop-e.scrollTop),r=a,i=o,e=e.parentNode;return{top:n+54,left:t-38}}(n.getElementById("inpid_journal_title"));e.left-=n.getElementById("inpid_journal_title").scrollTop,m.style.top=e.top+"px",m.style.left=e.left+"px"}n.body.appendChild(m);const g=m.appendChild(n.createElement("table"));let v;switch(m.lastHighlight=null,g.addEventListener("mouseover",function(e){m.lastHighlight&&(m.lastHighlight.className=""),m.lastHighlight=r.utils.ancestor(r.utils.getTarget(e),"TR"),m.lastHighlight&&(m.lastHighlight.className="activeItem")},!1),a){case"DidYouMeanDialog":v=function(e){const n=r.utils.ancestor(r.utils.getTarget(e),"TR");2===n.childNodes.length&&n.nextSibling?(i.store.add(A,void 0,void 0),t.UserInput.clearMenu()):2===n.childNodes.length&&t.UserInput.clearMenu()};break;case"LimitedPredicateChoice":{const e=l.clickedTd;v=function(n){const a=r.utils.getAbout(i.store,r.utils.getTarget(n)),o=e.parentNode.AJAR_statement.predicate.elements;for(let e=0;e<o.length;e++)o[e].sameTerm(a)&&o.unshift(o.splice(e,1)[0]);t.UserInput.clearMenu();const s=e.parentNode,c=t.outlinePredicateTD(s.AJAR_statement.predicate,s);s.insertBefore(c,e),s.removeChild(e),h.lastModified.select()};break}case"PredicateAutoComplete":case"GeneralAutoComplete":case"GeneralPredicateChoice":case"JournalTitleAutoComplete":case"TypeChoice":{const e=l.isPredicate,n=l.selectedTd;v=function(a){const o=r.utils.getAbout(i.store,r.utils.getTarget(a));r.utils.getTarget(a),e?t.UserInput.fillInRequest("predicate",n,o)&&t.UserInput.clearMenu():t.UserInput.fillInRequest("object",n,o)&&t.UserInput.clearMenu()};break}default:throw new Error("userinput: unexpected mode")}g.addEventListener("click",v,!1);const b={};function y(e){g.firstChild&&"no-suggest"===g.firstChild.className&&g.removeChild(g.firstChild);const t=r.utils.predicateLabelForXML(e,!1);if(!e.uri)return;let i="??";for(const t in b)if(r.log.debug(b[t]),o.Util.string_startswith(e.uri,b[t])){i=t;break}const a=g.appendChild(n.createElement("tr"));a.setAttribute("about",e);a.appendChild(n.createElement("th")).appendChild(n.createElement("div")).appendChild(n.createTextNode(t)),a.appendChild(n.createElement("td")).appendChild(n.createTextNode(i.toUpperCase()))}function w(e){return function(t){y(t[e.vars[0]])}}let x,A,E,C;switch(i.store.each(void 0,r.ns.rdf("type"),r.ns.owl("Ontology")).forEach(function(e){const t=r.utils.label(e);if(!t)return;const n=t.value.match(/\((.+?)\)/);n?b[n[1]]=e.uri:b[t.value]=e.uri}),a){case"DidYouMeanDialog":{const e=l.dialogTerm;A=l.bnodeTerm,m.style.width="auto";const t=g.appendChild(n.createElement("tr")).appendChild(n.createElement("th"));t.appendChild(n.createTextNode("Did you mean..."));const a=i.store.statementsMatching(e);let o;for(o=0;o<a.length&&!i.store.whether(a[o].predicate,u("type"),r.ns.owl("InverseFunctionalProperty"));o++);const s=a[o].predicate,c=i.store.any(e,a[o].predicate),d=r.utils.label(e)+" who has "+r.utils.label(s)+" "+c+"?",p=g.appendChild(n.createElement("tr")).appendChild(n.createElement("th"));p.appendChild(n.createTextNode(d)),t.setAttribute("colspan","2"),p.setAttribute("colspan","2");const f=g.appendChild(n.createElement("tr"));f.appendChild(n.createElement("th")).appendChild(n.createTextNode("Yes")),f.appendChild(n.createElement("td")).appendChild(n.createTextNode("BOOLEAN"));const h=g.appendChild(n.createElement("tr"));h.appendChild(n.createElement("th")).appendChild(n.createTextNode("No")),h.appendChild(n.createElement("td")).appendChild(n.createTextNode("BOOLEAN"));break}case"PredicateAutoComplete":{x=l.inputText;const n=t.labeller.searchAdv(x,void 0,"predicate"),r=[];for(let t=0;t<n.length;t++){const r={vars:[]};r.vars.push("Kenny");const a={};a.Kenny=i.store.fromNT(n[t].NT);try{w(r)(a)}catch(e){throw new Error("I'll deal with bnodes later...[Kenny]"+e)}}const a=r[0];if(0===a.length)return void this.clearMenu();for(let e=0;e<a.length&&e<10;e++)y(a[e][1]);break}case"GeneralAutoComplete":{let i;x=l.inputText;try{i=t.labeller.search(x)}catch(e){}const a=i[0],o=i[1];if(0===a.length)return void this.clearMenu();for(let e=0;e<a.length&&e<10;e++){const t=a[e][1].toNT();E=g.appendChild(n.createElement("tr")),E.setAttribute("about",t),C=E.appendChild(n.createElement("th")),C.appendChild(n.createElement("div")).appendChild(n.createTextNode(a[e][0]));const i=o[e],s=i?r.utils.label(i):"";E.appendChild(n.createElement("td")).appendChild(n.createTextNode(s))}break}case"JournalTitleAutoComplete":{x=l.inputText;const e=i.store.each(void 0,u("type"),d("Journal")),t=[];for(let r=0;r<e.length;r++){const a=e[r],o=i.store.each(a,p("title"),void 0),c=o+"",l=x.toLowerCase();if(-1!==c.toLowerCase().search(l)){s(),t.push(o);const e=g.appendChild(n.createElement("tr"));e.setAttribute("about","journalTitle");e.appendChild(n.createElement("th")).appendChild(n.createElement("div")).appendChild(n.createTextNode(o)),e.appendChild(n.createElement("td")).appendChild(n.createTextNode(a))}}break}case"LimitedPredicateChoice":{const e=r.utils.getAbout(i.store,l.clickedTd);e.termType="Collection";const t=i.store.each(e,r.ns.link("element"));for(let e=0;e<t.length;e++)y(t[e]);break}default:{E=g.appendChild(n.createElement("tr")),E.className="no-suggest",C=E.appendChild(n.createElement("th")),C.appendChild(n.createElement("div")).appendChild(n.createTextNode("No suggested choices. Try to type instead.")),E.appendChild(n.createElement("td")).appendChild(n.createTextNode("OK")),E.addEventListener("click",function(e){h.clearMenu(),e.stopPropagation()},"false");const e=function(){};switch(c.constructor.name){case"Array":for(let t=0;t<c.length;t++)i.store.query(c[t],w(c[t]),e);break;case"undefined":throw new Error("addPredicateChoice: query is not defined");default:i.store.query(c,w(c),e)}}}},fillInRequest:function(e,n,a){const s=n.parentNode,u=s.AJAR_statement,d=s.AJAR_inverse,p="object"===e?u.object:u.predicate;let f,h=!1;if(i.store.any(p,r.ns.link("onfillin")),"predicate"===e){const e=t.outlinePredicateTD(a,s,!1,!1);if("undetermined"!==n.nextSibling.className){const t=new o.Statement(u.subject,a,u.object,u.why);try{i.store.updater.update([],[t],function(t,n,o){n?(f=i.store.anyStatementMatching(u.subject,a,u.object,u.why),s.AJAR_statement=f,e.className=e.className.replace(/ pendingedit/g,"")):r.log.warn("Failure occurs (#2) while inserting "+s.AJAR_statement+"\n\n"+o)})}catch(e){return r.log.error(e),void r.log.warn("Error when insert (#2) of statement "+t+":\n\t"+e)}e.className+=" pendingedit",this.lastModified=null}else this.formUndetStat(s,u.subject,a,u.object,u.why,!1),t.walk("right"),h=!0;t.replaceTD(e,n),l.remove(u)}else if("object"===e){const e=t.outlineObjectTD(a);if(t.replaceTD(e,n),n.previousSibling&&"undetermined"===n.previousSibling.className)t.walk("left"),h=!0;else{let t;t=d?new o.Statement(a,u.predicate,u.object,u.why):new o.Statement(u.subject,u.predicate,a,u.why);try{i.store.updater.update([],[t],function(n,o,c){let l;r.log.info("@@ usinput.js (object) callback ok="+o+" for statement:"+t+"\n "),o?(e.className=e.className.replace(/ pendingedit/g,""),l=d?i.store.statementsMatching(a,u.predicate,u.object,u.why):i.store.statementsMatching(u.subject,u.predicate,a,u.why),l.length||r.log.error("userinput.js 1711: Can't find statememt!"),s.AJAR_statement=l[0]):r.log.warn("userinput.js (object): Fail trying to insert statement "+t)})}catch(e){return r.log.error("userinput.js (object): exception trying to insert statement "+t+": "+r.utils.stackString(e)),void r.log.warn("Error trying to insert statement "+t+":\n"+e)}this.lastModified=null,e.className+=" pendingedit"}l.remove(u)}if(c.statements.push(f),!h)return!0;this.startFillInText(t.getSelection()[0])},formUndetStat:function(e,t,n,r,i,a){return e.AJAR_inverse=a,e.AJAR_statement=l.add(t,n,r,i),e.AJAR_statement}}};var r=s(n(500)),i=n(9332),a=s(n(4059)),o=s(n(8230));function s(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(s=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}let c,l},3660(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.default=e=>function(t){const n=r.utils.AJARImage(t.uri,r.utils.label(t),r.utils.label(t),e);return n.setAttribute("class","outlineImage"),n}},6357(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>function(t){const n=e.createElement("a");let r="NamedNode"===t.termType?t.uri:t.value;const i=r.indexOf("mailto:");return r=i>=0?r.slice(i+7):r,n.setAttribute("href","mailto:"+r),n.appendChild(e.createTextNode(r)),n}},9370(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500),i=n(9332),a=n(8230);const o={icon:r.icons.iconBase+"noun_79217.svg",name:"pad",audience:[r.ns.solid("PowerUser")],label:function(e,t){return t.session.store.findTypeURIs(e)["http://www.w3.org/ns/pim/pad#Notepad"]?"pad":null},mintClass:r.ns.pad("Notepad"),mintNew:function(e,t){const n=e.session.store,i=n.updater;if(t.me&&!t.me.uri)throw new Error("notepad mintNew: Invalid userid");const a=t.newInstance=t.newInstance||n.sym(t.newBase+"index.ttl#this"),o=a.doc();n.add(a,r.ns.rdf("type"),r.ns.pad("Notepad"),o),n.add(a,r.ns.dc("title"),"Shared Notes",o),n.add(a,r.ns.dc("created"),new Date,o),t.me&&n.add(a,r.ns.dc("author"),t.me,o);const s=n.sym(a.uri+"_line0");return n.add(a,r.ns.pad("next"),s,o),n.add(s,r.ns.pad("next"),a,o),n.add(s,r.ns.dc("author"),t.me,o),n.add(s,r.ns.sioc("content"),"",o),new Promise(function(e,r){i?i.put(o,n.statementsMatching(void 0,void 0,void 0,o),"text/turtle",function(n,i,a){i?e(t):r(new Error("FAILED to save new tool at: "+n+" : "+a))}):r(new Error("Have no updater"))})},render:function(e,t,n){const o=t.dom,s=t.session.store,c=function(e,t){e||C.appendChild(r.widgets.errorMessageBlock(o,t,"pink"))},l=function(e){for(;e.firstChild;)e.removeChild(e.firstChild);return e},u=function(e,t,n){const i=(0,a.graph)(),o=(0,a.Namespace)("http://www.w3.org/ns/auth/acl#");let s=i.sym(t+"#a1");const c=i.sym(t),l=i.sym(e);return i.add(s,r.ns.rdf("type"),o("Authorization"),c),i.add(s,o("accessTo"),l,c),i.add(s,o("agent"),y,c),i.add(s,o("mode"),o("Read"),c),i.add(s,o("mode"),o("Write"),c),i.add(s,o("mode"),o("Control"),c),s=i.sym(t+"#a2"),i.add(s,r.ns.rdf("type"),o("Authorization"),c),i.add(s,o("accessTo"),l,c),i.add(s,o("agentClass"),r.ns.foaf("Agent"),c),i.add(s,o("mode"),o("Read"),c),n&&i.add(s,o("mode"),o("Write"),c),(0,a.serialize)(c,i,t,"text/turtle")},d=function(e,t,n){const r=s.any((0,a.sym)(e),(0,a.sym)("http://www.iana.org/assignments/link-relations/acl"));if(!v)throw new Error("Have no fetcher");if(r){const i=u(e,r.uri,t);return v.webOperation("PUT",r.uri,{data:i,contentType:"text/turtle"}).then(()=>n(!0)).catch(e=>{n(!1,e.message)})}return v.load(e).catch(e=>{n(!1,"Getting headers for ACL: "+e)}).then(()=>{const n=s.any((0,a.sym)(e),(0,a.sym)("http://www.iana.org/assignments/link-relations/acl"));if(!n)throw new Error("No Link rel=ACL header for "+e);const r=u(e,n.uri,t);return v.webOperation("PUT",n.uri,{data:r,contentType:"text/turtle"})}).then(()=>n(!0)).catch(e=>{n(!1,e.message)})},p=function(e,t,n){const i=l(t);i.appendChild(r.login.newAppInstance(o,{noun:"notepad"},(e,t)=>f(new a.NamedNode(e||t)))),i.appendChild(o.createElement("hr"));i.appendChild(o.createElement("p")).textContent="Where would you like to store the data for the "+n+"? Give the URL of the directory where you would like the data stored.";const s=i.appendChild(o.createElement("input"));s.setAttribute("type","text"),s.size=80,s.label="base URL",s.autocomplete="on",i.appendChild(o.createElement("br"));const c=i.appendChild(o.createElement("button"));c.textContent="Start new "+n+" at this URI",c.addEventListener("click",function(t){let n=s.value;"/"!==n.slice(-1)&&(n+="/"),h(e,n)})},f=function(e){let t=s.any(e,r.ns.space("uriPrefix"));t=t?t.value:e.uri.split("#")[0],"/"!==t.slice(-1)&&(a.log.error(g+": No / at end of uriPrefix "+t),t+="/");const n=new Date;t+=g+"/id"+n.getTime()+"/",h(x,t)},h=function(e,t){const n=(0,a.sym)(e.uri.split("#")[0]),l=s.sym(t+"pad.ttl"),u=s.sym(t+"index.html"),p=[{local:"index.html",contentType:"text/html"}],f=s.sym(l.uri+"#thisPad"),h=[];let m;for(m=0;m<p.length;m++){const e=function(e){h.push(function(){const r=t+e.local;if(!s.fetcher)throw new Error("Store has no fetcher");s.fetcher.webCopy(n+e.local,t+e.local,e.contentType).then(()=>i.authn.checkUser()).then(e=>{y=e,d(r,!1,function(e,t){e?h.shift()():c(e,"FAILED to set ACL "+r+" : "+t)})}).catch(t=>{c(!1,"FAILED to copy "+n+e.local+" : "+t.message)})})};e(p[m])}h.push(function(){if(s.add(f,r.ns.rdf("type"),w("Notepad"),l),s.add(f,r.ns.dc("created"),new Date,l),y&&s.add(f,r.ns.dc("author"),y,l),s.add(f,w("next"),f,l),s.add(f,r.ns.space("inspiration"),e,A),s.add(f,r.ns.space("inspiration"),e,l),!b)throw new Error("Have no updater");b.put(l,s.statementsMatching(void 0,void 0,void 0,l),"text/turtle",function(e,t,n){t?h.shift()():c(t,"FAILED to save new notepad at: "+l.uri+" : "+n)})}),h.push(function(){d(l.uri,!0,function(e,t){c(e,"Failed to set Read-Write ACL on pad data file: "+t),e&&h.shift()()})}),h.push(function(){const e=C.appendChild(o.createElement("p"));e.setAttribute("style","font-size: 140%;"),e.innerHTML="Your <a href='"+u.uri+"'><b>new notepad</b></a> is ready. <br/><br/><a href='"+u.uri+"'>Go to new pad</a>"}),h.shift()()},m=function(t){y=i.authn.currentUser(),i.authn.checkUser().then(e=>{y=e});const a=s.any(e,r.ns.dc("title"))||s.any(e,r.ns.vcard("fn"));n.solo&&"undefined"!=typeof window&&a&&(window.document.title=a.value),B.exists=t,E=r.pad.notepad(o,A,e,y,B),S.appendChild(E);const c=s.any(e,r.ns.meeting("parentMeeting"))||e;if(r.pad.manageParticipation(o,F,A,c,y,B),!s.updater)throw new Error("Store has no updater");s.updater.setRefreshHandler(A,E.reloadAndSync)},g="app-pad.timbl.com",v=s.fetcher,b=s.updater;let y;const w=(0,a.Namespace)("http://www.w3.org/ns/pim/pad#"),x=e,A=e.doc();let E;const C=o.createElement("div"),k=C.appendChild(o.createElement("table"));k.setAttribute("style","background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;");const _=k.appendChild(o.createElement("tr"));_.appendChild(o.createElement("td")),_.appendChild(o.createElement("td")),_.appendChild(o.createElement("td"));const S=k.appendChild(o.createElement("tr")).appendChild(o.createElement("td"));S.setAttribute("colspan","3");const T=k.appendChild(o.createElement("tr")),P=T.appendChild(o.createElement("td")),F=T.appendChild(o.createElement("td")),R=T.appendChild(o.createElement("td")),I=k.appendChild(o.createElement("tr")).appendChild(o.createElement("div")),N=k.appendChild(o.createElement("tr")).appendChild(o.createElement("div")),L=k.appendChild(o.createElement("tr"));L.setAttribute("class","naviMenu"),L.appendChild(o.createElement("td")),L.appendChild(o.createElement("td")),L.appendChild(o.createElement("td"));const B={statusArea:I,timingArea:P};return function(){if(!v)throw new Error("Have no fetcher");v.nowOrWhenFetched(A.uri,void 0,function(t,n,i){if(t)l(S),s.holds(e,r.ns.rdf("type"),r.ns.wf("TemplateInstance"))&&p(e,S,"pad"),m(!0),R.appendChild(function(){const t=C.appendChild(o.createElement("button"));return t.textContent="Start another pad",t.addEventListener("click",function(){return p(e,N,"pad")}),t}());else if(404===i.status){if(!b)throw new Error("Have no updater");b.put(A,[],"text/turtle",function(e,t,n){t?(l(S),m(!1)):c(t,"FAILED to create results file at: "+A.uri+" : "+n)})}else c(t,"FAILED to read results file: "+n)})}(),C}};t.default=o},8912(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_1619.svg",name:"playlistSlot",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store;return n.anyStatementMatching(e,r.ns.rdf("type"),n.sym("http://purl.org/ontology/pbo/core#PlaylistSlot"))?"playlist slot":null},render:function(e,t){const n=t.dom;const a=function(e,t){if(!t)return e;const i=n.createElement("a");return i.setAttribute("href",t),i.appendChild(e),i.addEventListener("click",r.widgets.openHrefInOutlineMode,!0),i},o=function(e){return n.createTextNode(e)},s=t.session.store,c=s.any(e,i.sym("http://purl.org/ontology/pbo/core#playlist_item"));let l=s.any(e,i.sym("http://purl.org/ontology/olo/core#index")),u=c.uri;const d=function(e){if(!e)return{html5:!0};const t=e.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-_%]+)/i),n=e.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i),r=e.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i),i=e.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);return t?{youtube:t}:n?{vimeo:n}:r?{dailymotion:r}:i?{vk:i}:void 0}(u),p=n.createElement("div");let f,h;if(d&&d.youtube?(u=u.replace("watch?v=","embed/"),p.setAttribute("class","imageView"),f=n.createElement("IFRAME"),f.setAttribute("src",u),f.setAttribute("width",560),f.setAttribute("height",315),f.setAttribute("frameborder",0),f.setAttribute("style","max-width: 850px; max-height: 100%;"),f.setAttribute("allowfullscreen","true")):(p.setAttribute("class","imageView"),f=n.createElement("IMG"),f.setAttribute("src",c.value),f.setAttribute("width",560),f.setAttribute("height",315),f.setAttribute("style","max-width: 560; max-height: 315;")),l){const t=s.statementsMatching(null,i.sym("http://purl.org/ontology/olo/core#index")),r=[];for(let e=0;e<t.length;e++)t[e]&&r.push(parseInt(t[e].object.value,10));l=parseInt(l.value,10),h=n.createElement("div");const c=r[(r.indexOf(l)-1+r.length)%r.length],u=r[(r.indexOf(l)+1+r.length)%r.length],d=a(o("<<"),e.uri.split("#")[0]+"#"+c);h.appendChild(d);const p=n.createElement("span");p.innerHTML=" Playlist slot : "+l+" ",h.appendChild(p);const f=a(o(">>"),e.uri.split("#")[0]+"#"+u);h.appendChild(f)}const m=n.createElement("TR");return m.appendChild(f),h&&m.appendChild(h),p.appendChild(m),p}}},2371(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.registerPanes=function(e){e(r.default);const t=r.default.editor;e(t),e(i.default),e(a.default),e(o.default),e(s.default),e(c.default),e(l.default),e(u.default),e(d.default),e(p.default),e(f.default),e(h.default),e(m.longChatPane),e(m.shortChatPane),e(g.schedulePane),e(v.default),e(b.imagePane),e(y.default),e(w.default),e(x.default),e(A.default),e(E.default),e(C.classInstancePane),e(k.slideshowPane),e(_.socialPane),e(S.default),e(T.dataContentPane),e(P.default),e(F.n3Pane),e(R.RDFXMLPane),e(I.formPane),e(N.tableViewPane),e(L.defaultPane),e(B.default),e(O.default),e(j.default),e(D.default)};var r=M(n(2643)),i=M(n(1917)),a=M(n(5682)),o=M(n(6106)),s=M(n(3931)),c=M(n(3955)),l=M(n(8938)),u=M(n(9370)),d=M(n(2368)),p=M(n(8131)),f=M(n(1927)),h=M(n(4036)),m=n(7052),g=n(9814),v=M(n(5130)),b=n(2168),y=M(n(8912)),w=M(n(6778)),x=M(n(6686)),A=M(n(2970)),E=M(n(1838)),C=n(5382),k=n(7978),_=n(7350),S=M(n(6380)),T=n(1424),P=M(n(3385)),F=n(7334),R=n(8236),I=n(5238),N=n(3472),L=n(4064),B=M(n(6682)),O=M(n(6298)),j=M(n(4930)),D=M(n(8426));function M(e){return e&&e.__esModule?e:{default:e}}},9814(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.schedulePane=void 0;var r=o(n(500)),i=n(9332),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=r.ns,c=[s.sched("No"),s.sched("Maybe"),s.sched("Yes")];t.schedulePane={icon:r.icons.iconBase+"noun_346777.svg",name:"schedule",audience:[s.solid("PowerUser")],label:function(e,t){return t.session.store.findTypeURIs(e)["http://www.w3.org/ns/pim/schedule#SchedulableEvent"]?"Scheduling poll":null},mintClass:s.sched("SchedulableEvent"),mintNew:function(e,t){return new Promise(function(n,o){const s=r.ns,c=e.session.store;let l=t.newBase;const u=t.useExisting||a.sym(t.newBase+"index.ttl#this"),d=function(e,t){e||o(new Error(t))},p=function(e,t,n){const i=a.graph(),o=a.Namespace("http://www.w3.org/ns/auth/acl#");let c=i.sym(t+"#a1");const l=i.sym(t),u=i.sym(e);return i.add(c,r.ns.rdf("type"),o("Authorization"),l),i.add(c,o("accessTo"),u,l),i.add(c,o("agent"),g,l),i.add(c,o("mode"),o("Read"),l),i.add(c,o("mode"),o("Write"),l),i.add(c,o("mode"),o("Control"),l),c=i.sym(t+"#a2"),i.add(c,r.ns.rdf("type"),o("Authorization"),l),i.add(c,o("accessTo"),u,l),i.add(c,o("agentClass"),s.foaf("Agent"),l),i.add(c,o("mode"),o("Read"),l),n&&i.add(c,o("mode"),o("Write"),l),a.serialize(l,i,t,"text/turtle")},f=function(e,t,n){const r=c.any(c.sym(e),c.sym("http://www.iana.org/assignments/link-relations/acl"));if(r){const i=p(e,r.uri,t);return h.webOperation("PUT",r.uri,{data:i,contentType:"text/turtle"}).then(e=>n(!0)).catch(e=>{n(!1,e.message)})}return h.load(e).catch(e=>{n(!1,"Getting headers for ACL: "+e)}).then(()=>{const n=c.any(c.sym(e),c.sym("http://www.iana.org/assignments/link-relations/acl"));if(!n)throw new Error("No Link rel=ACL header for "+e);const r=p(e,n.uri,t);return h.webOperation("PUT",n.uri,{data:r,contentType:"text/turtle"})}).then(e=>n(!0)).catch(e=>{n(!1,e.message)})},h=c.fetcher,m=c.updater;let g=t.me||i.authn.currentUser();if(!g)return void alert("NOT LOGGED IN");const v=u.dir().uri;let b,y;if(t.useExisting){if(y=t.useExisting,l=u.dir().uri,b=y.doc(),t.newBase)throw new Error("mint new scheduler: Illegal - have both new base and existing event")}else b=c.sym(l+"details.ttl"),y=c.sym(b.uri+"#event");const w=c.sym(l+"results.ttl"),x=t.noIndexHTML?{}:[{local:"index.html",contentType:"text/html"}],A=[];for(let e=0;e<x.length;e++){const t=function(e){A.push(function(){const t=l+e.local;c.fetcher.webCopy(v+e.local,l+e.local,e.contentType).then(()=>i.authn.checkUser()).then(e=>{g=e,f(t,!1,function(e,n){e?A.shift()():d(e,"FAILED to set ACL "+t+" : "+n)})}).catch(t=>{d(!1,"FAILED to copy "+v+e.local+" : "+t.message)})})};t(x[e])}A.push(function(){c.add(y,s.rdf("type"),s.sched("SchedulableEvent"),b),g&&(c.add(y,s.dc("author"),g,b),c.add(y,s.foaf("maker"),g,b)),c.add(y,s.dc("created"),new Date,b),c.add(y,s.sched("resultsDocument"),b),m.put(b,c.statementsMatching(void 0,void 0,void 0,b),"text/turtle",function(e,t,n){t?A.shift()():d(t,"FAILED to save new scheduler at: "+b+" : "+n)})}),A.push(function(){c.fetcher.webOperation("PUT",w.uri,{data:"",contentType:"text/turtle"}).then(()=>{A.shift()()}).catch(e=>{d(!1,"Failed to initialize empty results file: "+e.message)})}),A.push(function(){f(w.uri,!0,function(e,t){d(e,"Failed to set Read-Write ACL on results file: "+t),e&&A.shift()()})}),A.push(function(){f(b.uri,!1,function(e,t){d(e,"Failed to set read ACL on configuration file: "+t),e&&A.shift()()})}),A.push(function(){t.newInstance=y,n(t)}),A.shift()()})},render:function(e,t){const n=t.dom,o=t.session.store,s=r.ns,l=e,u="app-when-can-we.w3.org",d=o.fetcher,p=o.updater;let f=!1;const h=e,m=e.doc(),g=m.dir().uri,v=a.sym(g+"results.ttl"),b="https://solidos.github.io/solid-panes/schedule/formsForSchedule.ttl",y=o.sym(b+"#form1"),w=o.sym(b+"#form2"),x=o.sym(b+"#form3");a.parse('@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n "Schedule event (single form).";\n a ui:Group;\n ui:parts ( <#form1> <#form2> <#form3> ).\n\n<#form1>\n dc:title\n "Schedule an event (wizard)";\n a ui:Form;\n ui:parts (\n <#form1header>\n <#eventTitle>\n <#eventLocation>\n <#eventType>\n <#eventSwitch>\n <#eventComment>\n <#eventAuthor> ).\n\n<#form1header> a ui:Heading; ui:contents "Schedule an event" .\n\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n "128";\n ui:property\n cal:summary;\n ui:size\n "40".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n "512";\n ui:property\n cal:location;\n ui:size\n "40".\n\n<#eventType> a ui:BooleanField;\n ui:property sched:allDay;\n ui:default true . # Used to be the only way\n\n<#eventSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm> ].\n\n <#AllDayForm> a ui:IntegerField ;\n ui:property sched:durationInDays;\n ui:label "How many days?";\n ui:min 1;\n ui:default 1 .\n\n <#NotAllDayForm> a ui:IntegerField ;\n ui:property sched:durationInMinutes;\n ui:label "Duration (mins)";\n ui:min 5;\n ui:default 55 .\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# "1048";\n# ui:size\n# "40".\n ui:property\n cal:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title "Select possible days or times"; a ui:Form;\n ui:parts ( <#id1118132113134> <#possibleSwitch> ).\n\n <#id1118132113134> a ui:Heading; ui:contents "Time proposals" .\n\n <#possibleSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm2> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].\n\n <#AllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.\n <#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label "date".\n\n <#NotAllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.\n <#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label "date and time".\n\n ##################################\n\n <#form3> dc:title "Select invited people"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .\n <#id1118132113135> a ui:Heading; ui:contents "Who to invite" .\n\n# ENDS\n',o,b,"text/turtle");const A="background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%",E="width: 1.8em; height: 1.8em;",C=function(e,t){e||D.appendChild(r.widgets.errorMessageBlock(n,t,"pink"))},k=function(e){for(;e.firstChild;)e.removeChild(e.firstChild);return e},_=function(e,t){const n=o.any(t,r.ns.ui("backgroundColor"));n&&e.setAttribute("style","padding: 0.3em; text-align: center; background-color: "+n+";")};let S;i.authn.checkUser().then(e=>{S=e,z&&z.refresh(),e&&f&&(f=!1,R())});const T=function(e){let t=o.any(e,s.space("uriPrefix"));t=t?t.value:e.uri.split("#")[0],"/"!==t.slice(-1)&&(a.log.error(u+": No / at end of uriPrefix "+t),t+="/");const n=new Date;t+=u+"/id"+n.getTime()+"/",P(h,t)},P=function(e,r){const i={thisInstance:e,newBase:r};this.mintNew(t,i).then(function(e){const t=D.appendChild(n.createElement("p"));t.setAttribute("style","font-size: 140%;"),t.innerHTML="Your <a href='"+e.newInstance.uri+"'><b>new scheduler</b></a> is ready to be set up. <br/><br/><a href='"+e.newInstance.uri+"'>Say when you what days work for you.</a>"}).catch(function(e){C(!1,"Error createing new scheduler at "+i.newInstance+": "+e)})},F=function(){d.nowOrWhenFetched(m.uri,void 0,function(e,t){if(!e)return C(e,t);R()})},R=function(){i.authn.checkUser().then(t=>{if(!t)return I();if(!o.updater.editable(m.uri,o)||o.holds(e,s.rdf("type"),s.wf("TemplateInstance")))return void N(D);o.any(e,s.sched("ready"))?O():B()})},I=function(){k(H);const e={div:D,dom:n};r.login.ensureLoggedIn(e).then(e=>{S=e.me,f=!1,R()})},N=function(){const e=k(H);e.appendChild(r.login.newAppInstance(n,{noun:"poll"},T)),e.appendChild(n.createElement("hr"));e.appendChild(n.createElement("p")).textContent="Where would you like to store the data for the poll? Give the URL of the directory where you would like the data stored.";const t=e.appendChild(n.createElement("input"));t.setAttribute("type","text"),t.size=80,t.label="base URL",t.autocomplete="on",e.appendChild(n.createElement("br"));const i=e.appendChild(n.createElement("button"));i.setAttribute("style",A),i.textContent="Start new poll at this URI",i.addEventListener("click",function(e){let n=t.value;"/"!==n.slice(-1)&&(n+="/"),P(h,n)})},L=n.createElement("button"),B=function(){k(W);let t=0,i=!1;{const a=[y,w,x],o=[];t=0;for(let t=0;t<a.length;t++){const i=n.createElement("div");r.widgets.appendForm(document,i,{},e,a[t],m,C),o.push(i)}const s=function(){k(H).appendChild(o[t]),0===t?c.setAttribute("disabled",""):c.removeAttribute("disabled"),t===o.length-1?(u.setAttribute("disabled",""),i||(W.appendChild(l),W.appendChild(L),i=!0)):u.removeAttribute("disabled")},c=k($).appendChild(n.createElement("button"));c.setAttribute("style",A),c.textContent="<- go back",c.addEventListener("click",function(e){t>0&&(t-=1,s())},!1);const u=k(V).appendChild(n.createElement("button"));u.setAttribute("style",A),u.textContent="continue ->",u.addEventListener("click",function(e){t<o.length-1&&(t+=1,s())},!1),s()}const c=[];c.push(a.st(e,s.sched("availabilityOptions"),s.sched("YesNoMaybe"),m)),c.push(a.st(e,s.sched("ready"),new Date,m)),c.push(a.st(e,s.sched("results"),v,m)),L.setAttribute("style",A),L.textContent="Go to poll",L.addEventListener("click",function(t){o.any(e,s.sched("ready"))?(O(),V.appendChild(l)):(V.appendChild(l),o.updater.update([],c,function(e,t,n){t?O():C(t,n)}))},!1);const l=n.createElement("button");l.setAttribute("style",A);const u=l.appendChild(n.createElement("img"));u.setAttribute("src",r.icons.iconBase+"noun_480183.svg"),u.setAttribute("style",E),l.addEventListener("click",function(t){const n=o.anyValue(e,s.cal("summary"))||o.anyValue(e,s.dc("title"))||"",r="mailto:"+o.each(e,s.sched("invitee")).map(function(e){const t=o.any(e,s.foaf("mbox"));return t?t.uri.replace("mailto:",""):""}).join(",")+"?subject="+encodeURIComponent(n+"-- When can we meet?")+"&body="+encodeURIComponent(n+"\n\nWhen can you?\n\nSee "+e+"\n");window.location.href=r},!1)};function O(){d.nowOrWhenFetched(v.uri,(e,t,n)=>{e?(k(H),j()):404===n.status?p.put(v,[],"text/turtle",function(e,t,n){t?(k(H),j()):C(t,"FAILED to create results file at: "+v.uri+" : "+n)}):C(e,"FAILED to read results file: "+t)})}function j(){const t=o.any(l,s.cal("summary")),i=o.any(l,s.cal("comment")),u=o.any(l,s.cal("location")),d=H;t&&(d.appendChild(n.createElement("h3")).textContent=t),u&&(d.appendChild(n.createElement("address")).textContent=u.value),i&&(d.appendChild(n.createElement("p")).textContent=i.value);const p=o.any(l,s.dc("author"));if(p){const e=o.any(p,s.foaf("name"));e&&(d.appendChild(n.createElement("p")).textContent=e)}const f=new a.Query("Responses"),h={};["time","author","value","resp","cell"].forEach(function(e){f.vars.push(h[e]=a.variable(e))}),f.pat.add(l,s.sched("response"),h.resp),f.pat.add(h.resp,s.dc("author"),h.author),f.pat.add(h.resp,s.sched("cell"),h.cell),f.pat.add(h.cell,s.sched("availabilty"),h.value),f.pat.add(h.cell,s.cal("dtstart"),h.time);const m={};m.set_x=o.each(e,s.sched("option")),m.set_x=m.set_x.map(function(e){return o.any(e,s.cal("dtstart"))}),m.set_y=o.each(e,s.sched("response")),m.set_y=m.set_y.map(function(e){return o.any(e,s.dc("author"))});const g=o.each(l,s.sched("option")).map(function(e){return o.any(e,s.cal("dtstart"))}),b=function(){const e=d.appendChild(r.matrix.matrixForQuery(n,f,h.time,h.author,h.value,m,function(){}));e.setAttribute("class","matrix");const t=n.createElement("button");t.setAttribute("style",A);const i=n.createElement("img");i.setAttribute("src",r.icons.iconBase+"noun_479395.svg"),i.setAttribute("style",E),t.appendChild(i),t.addEventListener("click",function(n){t.disabled=!0,o.fetcher.refresh(v,function(n,r){n&&(e.refresh(),t.disabled=!1)})},!1),k(W),W.appendChild(t)},y=[],w={div:W,dom:n};r.login.ensureLoggedIn(w).then(e=>{const t=e.me,i=v;m.set_y=m.set_y.filter(function(e){return!e.sameTerm(t)}),m.set_y.push(t),m.cellFunction=function(e,i,a,l){if(null!==l&&o.fetcher.nowOrWhenFetched(l.uri.split("#")[0],void 0,function(t,n){t&&_(e,l)}),a.sameTerm(t)){const t=function(){_(e,l)},a={},u=s.sched("availabilty"),d=y[i.toNT()],p=r.widgets.makeSelectForOptions(n,o,d,u,c,a,v,t);e.appendChild(p)}else null!==l&&(e.textContent=r.utils.label(l))};const u=o.each(l,s.sched("response"));let d=null;u.forEach(function(e){o.holds(e,s.dc("author"),t)&&(d=e)});const p=[],f=r.widgets.newThing(i).uri;if(null===d)d=a.sym(f+"_response"),p.push(a.st(l,s.sched("response"),d,i)),p.push(a.st(d,s.dc("author"),t,i));else{o.each(d,s.sched("cell")).forEach(function(e){const t=o.any(e,s.cal("dtstart"));y[t.toNT()]=e})}for(let e=0;e<g.length;e++){if(y[g[e].toNT()])continue;const t=a.sym(f+"_"+e);p.push(a.st(d,s.sched("cell"),t,i)),p.push(a.st(t,s.cal("dtstart"),g[e],i)),y[g[e].toNT()]=t}p.length?o.updater.update([],p,function(e,t,n){t?b():C(t,n)}):b()});const x=o.any(e,s.foaf("maker"));if(!x||x.sameTerm(S)){const e=n.createElement("button");e.setAttribute("style",A);const t=n.createElement("img");t.setAttribute("src",r.icons.iconBase+"noun_344563.svg"),t.setAttribute("style",E),e.appendChild(t),e.addEventListener("click",function(e){k(d),B()},!1),k($),$.appendChild(e)}k(V),V.appendChild(function(){const e=r.login.newAppInstance(n,{noun:"scheduler"},T);return e.firstChild.setAttribute("style",A),e}())}const D=n.createElement("div"),M=D.appendChild(n.createElement("table"));M.setAttribute("style","background-color: white; min-width: 40em; min-height: 13em;");const U=M.appendChild(n.createElement("tr"));U.appendChild(n.createElement("td")),U.appendChild(n.createElement("td")),U.appendChild(n.createElement("td"));const z=null,H=M.appendChild(n.createElement("tr")).appendChild(n.createElement("td"));H.setAttribute("colspan","3");const q=M.appendChild(n.createElement("tr"));q.setAttribute("class","naviMenu"),q.setAttribute("style"," text-align: middle; vertical-align: middle; padding-top: 4em; ");const $=q.appendChild(n.createElement("td")),W=q.appendChild(n.createElement("td")),V=q.appendChild(n.createElement("td"));return F(),D}}},6298(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500);const i={icon:r.icons.iconBase+"padlock-timbl.svg",name:"sharing",label:(e,t)=>{const n=t.session.store.findTypeURIs(e);return n[r.ns.ldp("Resource").uri]||n[r.ns.ldp("Container").uri]||n[r.ns.ldp("BasicContainer").uri]?"Sharing":null},render:(e,t)=>{const n=t.dom,i=t.session.store,a=function(){const t=i.findTypeURIs(e);if(t[r.ns.ldp("BasicContainer").uri]||t[r.ns.ldp("Container").uri])return"folder";return"file"}(),o=n.createElement("div");return o.classList.add("sharingPane"),r.aclControl.preventBrowserDropEvents(n),o.appendChild(r.aclControl.ACLControlBox5(e,t,a,i)),o}};t.default=i},7978(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.slideshowPane=void 0;var r,i=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500)),a=(r=n(6305))&&r.__esModule?r:{default:r};const o=i.ns;t.slideshowPane={icon:i.icons.iconBase+"noun_138712.svg",name:"slideshow",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store,r=i.ns,a=n.findTypeURIs(e);if(a[r.ldp("Container").uri]||a[r.ldp("BasicContainer").uri]){const t=n.each(e,r.ldp("contains"));let a=0;return t.forEach(function(e){i.widgets.isImage(e)&&a++}),a>0?"Slideshow":null}return null},render:function(e,t){const n=t.dom;i.widgets.addStyleSheet(n,"https://leemark.github.io/better-simple-slideshow/css/simple-slideshow-styles.css");const r=t.session.store,o=i.ns,s=n.createElement("div");s.setAttribute("class","bss-slides");const c=r.findTypeURIs(e);let l;(c[o.ldp("BasicContainer").uri]||c[o.ldp("Container").uri])&&(l=o.ldp("contains"));const u=r.each(e,l);u.sort();for(let e=0;e<u.length;e++){if(!i.widgets.isImage(u[e]))continue;const t=s.appendChild(n.createElement("figure")),a=t.appendChild(n.createElement("img"));r.fetcher._fetch(u[e].uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);a.setAttribute("src",t)}),a.setAttribute("width","100%"),t.appendChild(n.createElement("figcaption"))}const d={dom:n};return setTimeout(function(){(0,a.default)(".bss-slides",d)},1e3),s}}},7350(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.socialPane=void 0;var r=o(n(500)),i=n(9332),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}t.socialPane={icon:r.icons.originalIconBase+"foaf/foafTiny.gif",name:"social",label:function(e,t){const n=t.session.store.findTypeURIs(e);return n[r.ns.foaf("Person").uri]||n[r.ns.vcard("Individual").uri]?"Friends":null},render:function(e,t){const n=t.dom,o=function(e){const t=n.createElement("p");t.textContent=e,x.appendChild(t)},s=function(e,t){if(!t)return e;const r=n.createElement("a");return r.setAttribute("href",t),r.appendChild(e),r},c=function(e){return n.createTextNode(e)},l=t.getOutliner(n),u=t.session.store,d=n.createElement("div");d.setAttribute("class","socialPane");const p=r.ns.foaf,f=r.ns.vcard,h="background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;",m=d.appendChild(n.createElement("table")).appendChild(n.createElement("tr")),g=m.appendChild(n.createElement("td")),v=m.appendChild(n.createElement("td")),b=m.appendChild(n.createElement("td")),y=g;y.style.cssText=h;const w=v.appendChild(n.createElement("table"));w.style.cssText="background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;";const x=b;x.style.cssText=h;const A=u.any(e,p("img"))||u.any(e,p("depiction"));if(A){const e=n.createElement("IMG");e.setAttribute("src",A.uri),e.style.cssText=" width: 100% ; border: none; margin: 0; padding: 0;",y.appendChild(e)}const E=u.anyValue(e,p("name"))||"???";let C=n.createElement("H3");C.appendChild(n.createTextNode(E));let k=i.authn.currentUser();const _=k?k.uri:null,S=r.login.loginStatusBox(n,e=>{k=u.sym(e),r.widgets.refreshTree(d)});x.appendChild(S);const T=k&&u.sameThings(k,e),P=p("knows"),F=u.anyValue(e,p("givenname"))||u.anyValue(e,p("firstName"))||u.anyValue(e,p("nick"))||u.anyValue(e,p("name"))||u.anyValue(e,f("fn")),R=u.each(e,P);let I,N,L=null,B=!1;if(k){const t=u.each(void 0,p("primaryTopic"),k);let i="";for(let e=0;e<t.length;e++)if(u.whether(t[e],r.ns.rdf("type"),p("PersonalProfileDocument"))){if(B=l.UserInput.sparqler.editable(t[e].uri,u),B){L=t[e];break}i+="Your profile <"+r.utils.escapeForXML(t[e].uri)+"> is not remotely editable."}if(L?(o("Editing your profile "+L+"."),B=l.UserInput.sparqler.editable(L.uri,u)):o(i+"\nI couldn't find your editable personal profile document."),T);else{C=n.createElement("h3"),C.appendChild(n.createTextNode("You and "+F)),y.appendChild(C);const t=u.canon(k);I=u.whether(e,P,t),N=!1;const i=u.statementsMatching(t,P,e);i.length&&(N=!0,L||(L=i[0].why));const o=n.createElement("tr");y.appendChild(o);const d=function(){o.appendChild(s(c("You"),_)),o.appendChild(c(" and ")),o.appendChild(s(c(F),e.uri))};if(I?N?(d(),o.appendChild(c(" say you know each other."))):(o.appendChild(s(c(F),e.uri)),o.appendChild(c(" knows ")),o.appendChild(s(c("you"),_)),o.appendChild(c(" (unconfirmed).")),o.appendChild(c(" confirm you know ")),o.appendChild(s(c(F),e.uri)),o.appendChild(c("."))):N?(o.appendChild(s(c("You"),_)),o.appendChild(c(" know ")),o.appendChild(s(c(F),e.uri)),o.appendChild(c(" (unconfirmed)"))):(d(),o.appendChild(c(" have not said you know each other."))),B){const t=function(e,t,i){const a=n.createElement("form"),o=n.createElement("input");a.appendChild(o);const s=n.createTextNode(e);return s.className="question",a.appendChild(s),o.setAttribute("type","checkbox"),o.checked=i,o.addEventListener("click",function(e){if(s.className="pendingedit",this.checked)try{l.UserInput.sparqler.insert_statement(t,function(e,n,i){if(s.className="question",!n)return r.log.alert(null,"Message","Error occurs while inserting "+t+"\n\n"+i),void(o.checked=!1);u.add(t.subject,t.predicate,t.object,t.why)})}catch(e){r.log.error("Data write fails:"+e),r.log.alert("Data write fails:"+e),o.checked=!1,s.className="question"}else try{l.UserInput.sparqler.delete_statement(t,function(e,n,i){s.className="question",n?u.removeMany(t.subject,t.predicate,t.object,t.why):(r.log.alert("Error occurs while deleting "+t+"\n\n"+i),this.checked=!0)})}catch(e){r.log.alert("Delete fails:"+e),this.checked=!0}},!1),a}("You know "+F,new a.Statement(k,P,e,L),N);y.appendChild(t)}if(R){const e=u.each(k,p("knows"));if(e.length){const t=function(e,t){const n=[];for(let r=0;r<e.length;r++)for(let i=0;i<t.length;i++)if(t[i].sameTerm(e[r])){n.push(t[i]);break}return n}(R,e),i=n.createElement("tr");if(y.appendChild(i),i.appendChild(n.createTextNode("You"+(F?" and "+F:"")+" know"+function(e){let t=" ";return t+=e||"no",1===e?t+" person":t+" people"}(t.length)+" found in common")),t)for(let e=0;e<t.length;e++)i.appendChild(n.createTextNode(", "+r.utils.label(t[e])))}const t=n.createElement("tr");y.appendChild(t)}}}r.widgets.attachmentList(n,e,w,{doc:L,modify:!!B,predicate:p("knows"),noun:"friend"}),C=n.createElement("h3"),C.appendChild(n.createTextNode("Basic Information")),y.appendChild(C);const O=[r.ns.foaf("homepage"),r.ns.foaf("weblog"),r.ns.foaf("workplaceHomepage"),r.ns.foaf("schoolHomepage")];for(let t=0;t<O.length;t++){const i=O[t],a=u.statementsMatching(e,i);if(0===a.length);else{const e=[];for(let t=0;t<a.length;t++){const n=a[t];n.object.uri&&e.push(n.object.uri)}e.sort();let t,o="";for(let a=0;a<e.length;a++){const s=e[a];if(s===o)continue;o=s;let c="";if(t=r.utils.label(i),e.length>1){const e=s.indexOf("//");if(e>0){let t=s.indexOf("/",e+2);const n=s.lastIndexOf(".",t);n>0&&(t=n),c=s.slice(e+2,t)}}c&&(t=c+" "+t);const l=n.createTextNode(t),u=n.createElement("a");u.appendChild(l),u.setAttribute("href",s);const d=n.createElement("div");d.style.cssText="width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;",d.appendChild(u),y.appendChild(d)}}}const j=[r.ns.foaf("openid"),r.ns.foaf("nick")];for(let t=0;t<j.length;t++){const n=j[t],r=u.statementsMatching(e,n);0===r.length||l.appendPropertyTRs(y,r,!1,function(e){return!0})}return d}}},4036(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500);const i={icon:r.icons.iconBase+"noun_688606.svg",name:"tabbed",audience:[r.ns.solid("PowerUser")],label:(e,t)=>{const n=t.session.store.findTypeURIs(e);return r.ns.meeting("Cluster").uri in n?"Tabbed":null},render:(e,t)=>{const n=t.dom,i=t.session.store,a=n.createElement("div");return(async()=>{if(!i.fetcher)throw new Error("Store has no fetcher");await i.fetcher.load(e),a.appendChild(r.tabs.tabWidget({dom:n,subject:e,predicate:i.any(e,r.ns.meeting("predicate"))||r.ns.meeting("toolList"),ordered:!0,orientation:i.anyValue(e,r.ns.meeting("orientation"))||"0",renderMain:(e,n)=>{e.innerHTML="";const r=e.appendChild(t.dom.createElement("table"));t.getOutliner(t.dom).GotoSubject(n,!0,null,!1,void 0,r)},renderTab:(n,a)=>{const o=i.the(e,r.ns.meeting("predicate"));n.appendChild(r.widgets.personTR(t.dom,o,a,{}))},backgroundColor:i.anyValue(e,r.ns.ui("backgroundColor"))||"#ddddcc"}))})(),a}};t.default=i},3472(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tableViewPane=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.tableViewPane={icon:r.icons.originalIconBase+"table.png",name:"tableOfClass",label:function(e,t){const n=t.session.store;if(!n.any(void 0,r.ns.rdf("type"),e))return null;const i=n.statementsMatching(void 0,r.ns.rdf("type"),e).length;return 0===i||i>15?null:r.utils.label(e)+" table"},render:function(e,t){const n=t.dom,i=n.createElement("div");return i.setAttribute("class","tablePane"),i.appendChild(r.table(n,{tableClass:e})),i}}},2368(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_106746.svg",name:"transaction",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store,i=n.findTypeURIs(e);return i["http://www.w3.org/2000/10/swap/pim/qif#Transaction"]?"$$":n.any(e,r.ns.qu("amount"))?"$$$":i["http://www.w3.org/ns/pim/trip#Trip"]?"Trip $":null},render:function(e,t){const n=t.dom,a=t.session.store,s=a.fetcher,c=i.Namespace("http://www.w3.org/2000/10/swap/pim/qif#"),l=i.Namespace("http://www.w3.org/ns/pim/trip#"),u=n.createElement("div");u.setAttribute("class","transactionPane");const d=function(e){return function(e,t){void 0===t&&(t="color: grey");const r=n.createElement("pre");r.setAttribute("style",t),u.appendChild(r),r.appendChild(n.createTextNode(e))}(e,"color: #100; background-color: #fee")},p=a.statementsMatching(e),f=a.statementsMatching(void 0,void 0,e),h=a.findTypeURIs(e),m={},g=function(e){m[e.uri]=!0},v=function(e){if(void 0===e)return"";const t=""+e;return t.indexOf(".")>=0?t.split(".")[0]+"."+(t.split(".")[1]+"00").slice(0,2):t+".00"},b=function(e,t){const r=n.createElement("td");return 0+e===0&&t||(r.textContent=v(e)),r.setAttribute("style","width: 6em; text-align: right; "),r},y=function(e){const t=n.createElement("th");return t.textContent=e,t.setAttribute("style","text-align: right; "),t},w=function(e,t){const n=a.any(e,o.qu("date")),r=a.any(t,o.qu("date"));if(void 0!==n&&void 0!==r){if(n.value<r.value)return-1;if(n.value>r.value)return 1}return e.uri<t.uri?-1:e.uri>t.uri?1:0},x=function(e,n,r,i,a){n.expanded?(n.parentNode.removeChild(n.expanded),n.expanded=!1):function(e,n,r,i,a){const o=n.parentNode.children;if(a)for(let e=o.length-1;e>=0;e--)o[e].expanded&&(o[e].parentNode.removeChild(o[e].expanded),o[e].expanded=!1);const s=e.createElement("tr"),c=s.appendChild(e.createElement("td"));c.setAttribute("style","width: 98%; padding: 1em; border: 0.1em solid grey;");const l=n.children.length;n.nextSibling?n.parentNode.insertBefore(s,n.nextSibling):n.parentNode.appendChild(s),n.expanded=s,c.setAttribute("colspan",""+l),c.appendChild(function(e,t,n){const r=e.session.paneRegistry.byName(n).render(t,e);return r.setAttribute("style","border: 0.1em solid green;"),r}(t,r,i))}(e,n,r,i,a)};if(h["http://www.w3.org/2000/10/swap/pim/qif#Transaction"]||a.any(e,o.qu("toAccount"))){g(o.rdf("type"));const h=a.any(e,r.ns.qu("toAccount"));!function(e){let t="padding: 0.5em 1.5em 1em 1.5em; ";if(e){const n=a.any(e,r.ns.ui("backgroundColor"));n&&(t+="background-color: "+n.value+"; ")}u.setAttribute("style",t)}(h),h||d("(Error: There is no bank account known for this transaction <"+e.uri+">,\n -- every transaction needs one.)");let v=null;const b=a.any(e,r.ns.qu("accordingTo"));void 0===b?d("(Error: There is no back link to the original data source foir this transaction <"+e.uri+">,\nso I can't tell how to annotate it.)"):(v=void 0!==b?a.any(b,r.ns.qu("annotationStore")):null,void 0===v&&d("(There is no annotation document for this statement\n<"+b.uri+">,\nso you cannot classify this transaction.)"));const y=n.createElement("div");y.setAttribute("style","float:right"),u.appendChild(y);const w=function(t,i){g(t);const o=a.any(e,t);if(!o)return;const s=n.createElement("a");s.setAttribute("href",o.uri),s.setAttribute("style","float:right"),y.appendChild(s).textContent=i||r.utils.label(o),y.appendChild(n.createElement("br"))};w(r.ns.qu("toAccount")),w(r.ns.qu("accordingTo"),"Statement"),w(l("trip"));const x=n.createElement("table");u.appendChild(x);const A=["date","payee","amount","in_USD","currency"].map(c).map(function(t){g(t);const n=a.any(e,t),i=n?r.utils.labelForXML(n):"";return'<tr><td style="text-align: right; padding-right: 0.6em">'+r.utils.labelForXML(t)+'</td><td style="font-weight: bold;">'+i+"</td></tr>"}).join("\n");x.innerHTML=A;const E=function(e,t){e||d("Sorry, failed to save your change:\n"+t)};v&&a.fetcher.nowOrWhenFetched(v.uri,e,function(c,h){c||d("Cannot load store "+v+" "+h);const b=a.any(v,o.qu("calendarYear")),y=function(){u.insertBefore(r.widgets.makeSelectForNestedCategory(n,a,e,r.ns.qu("Classified"),v,E),x.nextSibling)};a.any(void 0,o.rdfs("subClassOf"),o.qu.Classified)?y():b&&s.load(b).then(function(e){s.load(a.each(b,o.rdfs("seeAlso"))).then(function(){y()}).catch(function(e){})}).catch(function(e){}),u.appendChild(r.widgets.makeDescription(n,a,e,r.ns.rdfs("comment"),v,E));let w=a.statementsMatching(void 0,l("trip"),void 0,v).map(function(e){return e.object});const A=a.each(void 0,r.ns.rdf("type"),l("Trip"));w=w.concat(A).sort();w=function(e,t,n,r){const i=t.map(function(t){let r=e.any(t,n);return r=r?r.value:"9999-12-31",[r,t]});return i.sort(),r&&i.reverse(),i.map(function(e){return e[1]})}(a,w,r.ns.cal("dtstart"),!0),w.length>1&&u.appendChild(r.widgets.makeSelectForOptions(n,a,e,l("trip"),w,{multiple:!1,nullLabel:"-- what trip? --",mint:"New Trip *",mintClass:l("Trip"),mintStatementsFun:function(e){const t=[];return t.push(i.st(e,r.ns.rdf("type"),l("Trip"),e.doc())),t}},v,E)),u.appendChild(n.createElement("br"));const C=t.getOutliner(n);g(o.rdfs("comment")),r.widgets.attachmentList(n,e,u),g(o.wf("attachment")),u.appendChild(n.createElement("tr")).setAttribute("style","height: 1em"),C.appendPropertyTRs(u,p,!1,function(e,t){return!(e.uri in m)}),C.appendPropertyTRs(u,f,!0,function(e,t){return!(e.uri in m)})})}else if(h["http://www.w3.org/ns/pim/trip#Trip"]){const t=function(){const t={},i={},s={},c=a.each(void 0,l("trip"),e),p=c.map(function(e){return e.doc()});a.fetcher.load(p).then(function(){c.forEach(function(e){const n=a.the(e,o.qu("date")),c=n?(""+n.value).slice(0,4):"????";let l=a.the(e,o.rdf("type"));if(l||(l=r.ns.qu("ErrorNoType")),l&&l.uri){const n=l.uri;i[c]||(i[c]=0),s[c]||(s[c]={}),t[n]||(t[n]=0),s[c][n]||(s[c][n]=0);const o=a.any(e,r.ns.qu("in_USD"));if(o||d("@@ No amount in USD: "+o+" for "+e),o){const e=parseFloat(o.value);t[n]+=e,s[c][n]+=e,i[c]+=e}}});const l=[];let p=0;const f=[];let h;for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&f.push(e);f.sort();const m=f.length;let g;const A=u.appendChild(n.createElement("table"));if(A.setAttribute("style","font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;"),m>1){const e=A.appendChild(n.createElement("tr"));for(e.appendChild(y("")),h=0;h<m;h++)e.appendChild(y(f[h]));e.appendChild(y("total"))}for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(l.push(e),p+=t[e]);let E,C,k;l.sort();for(let e=0;e<l.length;e++){const i=a.sym(l[e]);if(E=A.appendChild(n.createElement("tr")),C=E.appendChild(n.createElement("td")),C.textContent=r.utils.label(i),m>1)for(h=0;h<m;h++)k=s[f[h]][l[e]],g=E.appendChild(b(k,!0));E.appendChild(b(t[l[e]],!0))}if(l.length>1){if(E=A.appendChild(n.createElement("tr")),E.appendChild(y("total")),m>1)for(h=0;h<m;h++)k=i[f[h]],g=E.appendChild(b(k?v(k):""));g=E.appendChild(b(p)),g.setAttribute("style","font-weight: bold; text-align: right;")}const _=function(e,t,n){const i=e.createElement("table");i.setAttribute("style","padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;");const s=function(e,t){const n=e.createElement("tr"),i=a.any(t,o.qu("toAccount"));!function(e,t){let n="'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;";if(t){const e=a.any(t,r.ns.ui("backgroundColor"));e&&(n+="background-color: "+e.value+"; ")}e.setAttribute("style",n)}(n,i);const s=n.appendChild(e.createElement("td")),c=a.any(t,o.qu("date"));s.textContent=c?c.value.slice(0,10):"???",s.setAttribute("style","width: 7em;");const l=n.appendChild(e.createElement("td"));l.setAttribute("style","width: 36em;");const u=a.any(t,o.qu("payee"));l.textContent=u?u.value:"???";const d=l.appendChild(e.createElement("a"));d.textContent=" ➜",d.setAttribute("href",t.uri);const p=n.appendChild(e.createElement("td")),f=a.any(t,o.qu("in_USD"));return p.textContent=f?v(f.value):"???",p.setAttribute("style","width: 6em; text-align: right; "),n.addEventListener("click",function(r){x(e,n,t,"transaction",!r.shiftKey)},!1),n},c=n?t.filter(n):t.slice();c.sort(w);for(let t=0;t<c.length;t++)i.appendChild(s(e,c[t]));return i}(n,c);_.setAttribute("style","margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;"),u.appendChild(_),r.widgets.attachmentList(n,e,u)}).catch(function(e){d("Error loading transactions: "+e)})};t()}return u}}},8131(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));const i=r.ns;t.default={icon:r.icons.iconBase+"noun_142708.svg",name:"period",audience:[i.solid("PowerUser")],label:function(e,t){return t.session.store.findTypeURIs(e)["http://www.w3.org/2000/10/swap/pim/qif#Period"]?"period":null},render:function(e,t){const n=t.dom,i=t.session.store,a=r.ns,o=n.createElement("div");o.setAttribute("class","periodPane");const s=function(e,t){t||(t="color: grey;");const r=n.createElement("pre");r.setAttribute("style",t),o.appendChild(r),r.appendChild(n.createTextNode(e))},c=function(e){return s("✓ "+e,"color: #010; background-color: #efe")},l=function(e){return s(e,"color: #100; background-color: #fee")},u=function(){const s=i.any(e,a.cal("dtstart"));void 0===s&&l("(Error: There is no start date known for this period <"+e.uri+">,\n -- every period needs one.)");const u=i.any(e,a.cal("dtend"));void 0===u&&l("(Error: There is no end date known for this period <"+e.uri+">,\n -- every period needs one.)");const d={};var p;p=a.rdf("type"),d[p.uri]=!0;const f=function(e){return!!((t=i.any(e,a.qu("date")))&&t>=s&&t<u);var t},h=function(e,t){const n=i.any(e,a.qu("date")),r=i.any(t,a.qu("date"));if(void 0!==n&&void 0!==r){if(n.value<r.value)return-1;if(n.value>r.value)return 1}return e.uri<t.uri?-1:e.uri>t.uri?1:0};o.appendChild(n.createElement("h2")).textContent="Period "+s.value.slice(0,10)+" - "+u.value.slice(0,10);const m=function(e,n,r,i,a){n.expanded?(n.parentNode.removeChild(n.expanded),n.expanded=!1):function(e,n,r,i,a){const o=n.parentNode.children;if(a)for(let e=o.length-1;e>=0;e--)o[e].expanded&&(o[e].parentNode.removeChild(o[e].expanded),o[e].expanded=!1);const s=e.createElement("tr"),c=s.appendChild(e.createElement("td"));c.setAttribute("style","width: 98%; padding: 1em; border: 0.1em solid grey;");const l=n.children.length;n.nextSibling?n.parentNode.insertBefore(s,n.nextSibling):n.parentNode.appendChild(s),n.expanded=s,c.setAttribute("colspan",""+l),c.appendChild(function(e,t,n){const r=e.session.paneRegistry.byName(n).render(t,e);return r.setAttribute("style","border: 0.1em solid green;"),r}(t,r,i))}(e,n,r,i,a)},g=function(e,t){const n=e.createElement("table");n.setAttribute("style","margin-left: 100; font-size: 9pt; width: 85%;");const o=function(e,t){const n=e.createElement("tr"),o=i.any(t,a.qu("toAccount"));!function(e,t){let n="margin-left: 8em; padding-left: 5em;";if(t){const e=i.any(t,r.ns.ui("backgroundColor"));e&&(n+="background-color: "+e.value+"; ")}e.setAttribute("style",n)}(n,o);const s=n.appendChild(e.createElement("td")),c=i.any(t,a.qu("date"));s.textContent=c?c.value.slice(0,10):"???",s.setAttribute("style","width: 7em;");const l=n.appendChild(e.createElement("td"));l.setAttribute("style","width: 36em;");const u=i.any(t,a.qu("payee"));l.textContent=u?u.value:"???";const d=l.appendChild(e.createElement("a"));d.textContent=" ➜",d.setAttribute("href",t.uri);const p=n.appendChild(e.createElement("td")),f=i.any(t,a.qu("in_USD"));return p.textContent=f?function(e){const t=""+e;return t.indexOf(".")>=0?t.split(".")[0]+"."+(t.split(".")[1]+"00").slice(0,2):t+".00"}(f.value):"???",p.setAttribute("style","width: 6em; text-align: right; "),n.addEventListener("click",function(r){m(e,n,t,"transaction",!r.shiftKey)},!1),n},s=t.filter(f);s.sort(h);for(let t=0;t<s.length;t++)n.appendChild(o(e,s[t]));return n},v={"http://www.w3.org/2000/10/swap/pim/qif#Transaction":!0,"http://www.w3.org/2000/10/swap/pim/qif#Unclassified":!0,"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing":!0,"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome":!0},b=i.findMemberURIs(a.qu("Transaction")),y=[],w=[];let x,A,E,C;for(const e in b)if(Object.prototype.hasOwnProperty.call(b,e)){A=i.sym(e);const t=i.each(A,a.rdf("type"));let n=!1;for(let e=0;e<t.length;e++){void 0===v[t[e].uri]&&(n=!0)}n||(x=i.any(A,a.qu("in_USD")),void 0===x&&(x=i.any(A,a.qu("amount"))),x&&(""+x.value).indexOf("-")>=0?w.push(i.sym(e)):y.push(i.sym(e)))}y.length?(E=g(n,y),C=E.children.length,o.appendChild(n.createElement("h3")).textContent="Unclassified Income"+(C<4?"":" ("+C+")"),o.appendChild(E)):c("No unclassified income"),w.length?(E=g(n,w),C=E.children.length,o.appendChild(n.createElement("h3")).textContent="Unclassified Outgoings"+(C<4?"":" ("+C+")"),o.appendChild(E)):c("No unclassified outgoings ");const k=function(e,t){const s=function(e){const t=i.findSubClassesNT(a.qu("Transaction"));for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&n.slice(1,-1).split("#")[1]===e)return i.sym(n.slice(1,-1));return null}(e);let c;const u=[];let d=0;if(!s)return l("Error: No category correspnding to "+e),null;const p=i.each(void 0,a.rdf("type"),s);for(let e=0;e<p.length;e++)i.any(p[e],t)||u.push(p[e]);return u.length&&(c=g(n,u),d=c.children.length,o.appendChild(n.createElement("h3")).textContent=r.utils.label(s)+" with no "+r.utils.label(t)+(d<4?"":" ("+d+")"),o.appendChild(c)),d};0===k("Reimbursables",a.trip("trip"))&&c("Reimbursables all have trips"),0===k("Other_Inc_Speaking",a.trip("trip"))&&c("Speaking income all has trips")};if(i.findTypeURIs(e)["http://www.w3.org/2000/10/swap/pim/qif#Period"]){const t=i.each(e,a.rdfs("seeAlso"));i.fetcher.load(t).then(function(){u()})}return o}}},5130(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_62007.svg",name:"travel expenses",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store,i=n.findTypeURIs(e);return r.ns.qu("Transaction")in n.findSuperClassesNT(e)?"by Trip":i["http://www.w3.org/ns/pim/trip#Trip"]?"Trip $":null},render:function(e,t){const n=t.dom,a=t.store,o=r.ns,s=i.Namespace("http://www.w3.org/2002/12/cal/ical#"),c=i.Namespace("http://www.w3.org/ns/pim/trip#"),l=n.createElement("div");l.setAttribute("class","transactionPane"),l.innerHTML="<h2>Trip transactions</h2>";const u=function(e,t){void 0===t&&(t="color: grey");const r=n.createElement("pre");r.setAttribute("style",t),l.appendChild(r),r.appendChild(n.createTextNode(e))},d=a.findTypeURIs(e),p=function(e,t){const s=new i.Query(r.utils.label(e)),l={};["date","transaction","comment","type","in_USD"].forEach(function(e){s.vars.push(l[e]=i.variable(e))}),s.pat.add(l.transaction,c("trip"),e);const d=a.formula();d.add(l.transaction,o.rdf("type"),l.type),s.pat.optional.push(d),s.pat.add(l.transaction,r.ns.qu("date"),l.date),d.add(l.transaction,o.rdfs("comment"),l.comment),s.pat.optional.push(d),s.pat.add(l.transaction,r.ns.qu("in_USD"),l.in_USD);const p=r.table(n,{query:s,onDone:function(){const t={},n=a.each(void 0,c("trip"),e);n.forEach(function(e){let n=a.the(e,o.rdf("type"));if(n||(n=r.ns.qu("ErrorNoType")),n&&n.uri){const i=n.uri;t[i]||(t[i]=0);const o=a.any(e,r.ns.qu("in_USD"));o||u(" @@ No amount in USD: "+o+" for "+e),o&&(t[i]=t[i]+parseFloat(o.value))}});let i="",s=0,l=0;for(const e in t)i+=r.utils.label(a.sym(e))+": "+t[e]+"; ",s++,l+=t[e];u("Totals of "+n.length+" transactions: "+i,""),s>1&&u("Overall net: "+l,"text-treatment: bold;")}});t.appendChild(p)};if(r.ns.qu("Transaction")in a.findSuperClassesNT(e)){const t=a.each(void 0,o.rdf("type"),e),n=[],i=[];for(let e=0;e<t.length;e++){const o=t[e],s=a.any(o,c("trip"));if(s){o in i||(i[s]={total:0,transactions:[]});const e=a.any(o,r.ns.qu("in_USD"));e&&(i[s].total+=e);const t=a.any(o,r.ns.qu("date"));i[s.toNT()].transactions.push([t,o])}else n.push(o)}const u=[];for(const e in i){const t=a.fromNT(e);u.push([a.any(t,s("dtstart")),t])}u.sort();for(let e=0;e<u.length;e++){p(u[e][1],l)}}else d["http://www.w3.org/ns/pim/trip#Trip"]&&p(e,l);return l}}},5438(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createApplicationTable=function e(t){const n=c("table",{class:"results"}),r=l("tr",[u("th","Application URL"),u("th","Access modes"),u("th","Actions")]);return n.appendChild(r),a.store.each(t,i.ns.acl("trustedApp"),void 0,void 0).flatMap(e=>a.store.each(e,i.ns.acl("origin"),void 0,void 0).map(t=>({appModes:a.store.each(e,i.ns.acl("mode"),void 0,void 0),origin:t}))).sort((e,t)=>e.origin.value<t.origin.value?-1:1).forEach(({appModes:e,origin:r})=>n.appendChild(s(t,r,e,o))),n.appendChild(s(t,null,[i.ns.acl("Read")],o)),n;function o(){n.parentElement.replaceChild(e(t),n)}},t.createContainer=l,t.createText=u;var r=n(8230),i=n(500),a=n(9332),o=n(8847);function s(e,t,n,s){const p={origin:t,appModes:n,formElements:{modes:[],origin:void 0}};return l("tr",[l("td",[l("form",[c("input",{class:"textinput",placeholder:"Write new URL here",value:t?t.value:""},{},e=>{p.formElements.origin=e})],{},{submit:f})]),l("td",[l("form",d(p),{},{submit:f})]),l("td",[l("form",t?[u("button","Update",{class:"controlButton",style:"background: LightGreen;"}),u("button","Delete",{class:"controlButton",style:"background: LightCoral;"},{click:function(t){let n;t.preventDefault();try{n=(0,r.sym)(p.formElements.origin.value)}catch(e){return alert("Please provide an application URL you want to remove trust from")}const s=(0,o.getStatementsToDelete)(n,e,a.store,i.ns);if(!a.store.updater)throw new Error("Store has no updater");a.store.updater.update(s,[],h)}})]:[u("button","Add",{class:"controlButton",style:"background: LightGreen;"})],{},{submit:f})])]);function f(t){let n;t.preventDefault();try{n=(0,r.sym)(p.formElements.origin.value)}catch(e){return alert("Please provide an application URL you want to trust")}const s=p.formElements.modes.filter(e=>e.checked).map(e=>e.value),c=(0,o.getStatementsToDelete)(p.origin||n,e,a.store,i.ns),l=(0,o.getStatementsToAdd)(n,(0,o.generateRandomString)(),s,e,i.ns);if(!a.store.updater)throw new Error("Store has no updater");a.store.updater.update(c,l,h)}function h(e,t,n){if(t)return s()}}function c(e,t={},n={},r=null){const i=document.createElement(e);return r&&r(i),Object.keys(t).forEach(e=>{i.setAttribute(e,t[e])}),Object.keys(n).forEach(e=>{i.addEventListener(e,n[e])}),i}function l(e,t,n={},r={},i=null){const a=c(e,n,r,i);return t.forEach(e=>a.appendChild(e)),a}function u(e,t,n={},r={},i=null){const a=c(e,n,r,i);return a.textContent=t,a}function d({appModes:e,formElements:t}){return["Read","Write","Append","Control"].map(n=>l("label",[c("input",{type:"checkbox",...e.some(e=>e.value===i.ns.acl(n).value)?{checked:""}:{},value:i.ns.acl(n).uri},{},e=>t.modes.push(e)),u("span",n)]))}},8847(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateRandomString=function(){return Math.random().toString(36).substr(2,5)},t.getStatementsToAdd=function(e,t,n,i,a){const o=new r.BlankNode(`bn_${t}`);return[(0,r.st)(i,a.acl("trustedApp"),o,i.doc()),(0,r.st)(o,a.acl("origin"),e,i.doc()),...n.map(e=>(0,r.sym)(e)).map(e=>(0,r.st)(o,a.acl("mode"),e,i.doc()))]},t.getStatementsToDelete=function(e,t,n,r){const i=n.statementsMatching(null,r.acl("origin"),e);return i.reduce((e,i)=>e.concat(n.statementsMatching(t,r.acl("trustedApp"),i.subject)).concat(n.statementsMatching(i.subject)),[])};var r=n(8230)},1917(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500),i=n(9332),a=n(5438);const o={global:!0,icon:`${r.icons.iconBase}noun_15177.svg`,name:"trustedApplications",label:()=>null,render:(e,t)=>{const n=t.dom,o=n.createElement("div");o.classList.add("trusted-applications-pane"),o.setAttribute("style","border: 0.3em solid #418d99; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;");const s=o.appendChild(n.createElement("table")),c=s.appendChild(n.createElement("tr")),l=s.appendChild(n.createElement("tr")).appendChild(n.createElement("div"));return l.setAttribute("style","padding: 0.7em;"),async function(e,t,n){const o=await r.login.ensureLoadedProfile({dom:e,div:t,statusArea:n,me:null}),s=o.me,c=s.doc();if(!i.store.updater)throw new Error("Store has no updater");const l=i.store.updater.editable(c.uri,i.store);if(t.appendChild((0,a.createText)("h3","Manage your trusted applications")),!l)return void t.appendChild(r.widgets.errorMessageBlock(e,`Your profile ${s.doc().uri} is not editable, so we cannot do much here.`));t.appendChild((0,a.createText)("p","Here you can manage the applications you trust."));const u=(0,a.createApplicationTable)(s);t.appendChild(u),t.appendChild((0,a.createText)("h4","Notes")),t.appendChild((0,a.createContainer)("ol",[t.appendChild((0,a.createText)("li","Trusted applications will get access to all resources that you have access to.")),t.appendChild((0,a.createText)("li","You can limit which modes they have by default.")),t.appendChild((0,a.createText)("li","They will not gain more access than you have."))])),t.appendChild((0,a.createText)("p","Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app."))}(n,c,l).catch(e=>l.appendChild(r.widgets.errorMessageBlock(n,e))),o}};t.default=o},6682(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_170702.svg",name:"ui",audience:[o.solid("PowerUser")],label:function(e,t){const n=r.ns,i=t.session.store.findTypeURIs(e);return i[n.rdfs("Class").uri]?"creation forms":i[n.ui("Form").uri]?"edit form":null},render:function(e,t){const n=t.dom,a=t.session.store,o=r.ns,s=n.createElement("div");s.setAttribute("class","formPane");const c=r.utils.label(e),l=function(e,t){const r=n.createElement("p");return r.setAttribute("style",t||"color: grey; background-color: white"),s.appendChild(r).textContent=e,r},u=function(e,t){l(e,"style")},d=function(e,t){e||u("Sorry, failed to save your change:\n"+t)},p=a.findTypeURIs(e);let f,h,m=null;e.uri&&(f=i.Util.uri.docpart(e.uri),e.uri!==f&&a.updater.editable(f)&&(m=a.sym(i.Util.uri.docpart(e.uri)))),m||(m=a.any(a.sym(f),o.link("annotationStore"))),m||(m=r.widgets.defaultAnnotationStore(e)),m||(m=a.sym("https://formsregistry.solid.community/public/formRegistry/")),p[o.rdfs("Class").uri];const g=l("(Loading data from: "+m+")");return a.fetcher.nowOrWhenFetched(m.uri,e,function(i,f){if(i)if(s.removeChild(g),p[o.rdfs("Class").uri]){const i=function(i,p){const f=a.statementsMatching(e,i),h=t.getOutliner(n);if(f.length){for(let t=0;t<f.length;t++){h.appendPropertyTRs(s,[f[t]]);const i=f[t].object,c=n.createElement("td");s.lastChild.appendChild(c),p&&c.appendChild(r.widgets.newButton(n,a,null,null,e,i,m,function(e,t){e||u("Sorry, failed to save your change:\n"+t)}));let l=a.statementsMatching(i,o.rdf("type"));l.length||(l=a.statementsMatching(i)),l.length?r.widgets.editFormButton(n,s,i,l[0].why,d):u("No data about form")}s.appendChild(n.createElement("hr"))}else l("There are currently no known forms to make a "+c+".")};h=o.ui("creationForm"),s.appendChild(n.createElement("h2")).textContent=r.utils.label(h),l("Creation forms allow you to add information about a new thing, in this case a new "+c+"."),i(h,!0),s.appendChild(n.createElement("hr")),l("You can make a new creation form:"),s.appendChild(r.widgets.newButton(n,a,e,h,o.ui("Form"),null,m,d)),s.appendChild(n.createElement("hr")),h=o.ui("annotationForm"),s.appendChild(n.createElement("h2")).textContent=r.utils.label(h),l("Annotaion forms allow you to add extra information about a ,"+c+" we already know about."),i(h,!1),s.appendChild(n.createElement("hr")),l("You can make a new annotation form:"),s.appendChild(r.widgets.newButton(n,a,e,h,o.ui("Form"),null,m,d)),l("(Storing new forms in: "+m+")")}else p[o.ui("Form").uri]?r.widgets.appendForm(n,s,a,e,o.ui("FormForm"),m,d):u("ui/pane internal error -- Eh?");else u("Cannot load store "+m+" :"+f)}),s}}},4959(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={buildTime:"2026-03-12T13:32:05Z",commit:"8b545a571c834da1590de3469b0462678a183ee4",npmInfo:{"solid-panes":"4.2.3",npm:"11.11.1",node:"20.20.0",acorn:"8.15.0",ada:"2.9.2",ares:"1.34.6",brotli:"1.1.0",cjs_module_lexer:"2.1.0",cldr:"47.0",icu:"77.1",llhttp:"9.3.0",modules:"115",napi:"9",nghttp2:"1.61.0",openssl:"3.0.17",simdutf:"6.4.2",tz:"2025b",undici:"6.23.0",unicode:"16.0",uv:"1.46.0",uvwasi:"0.0.23",v8:"11.3.244.8-node.33",zlib:"1.3.1-470d3a2"}}},6778(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}t.default={icon:r.icons.iconBase+"noun_1619.svg",name:"video",label:function(e,t){const n=t.session.store.findTypeURIs(e),r=i.Util.mediaTypeClass("video/*").uri.split("*")[0];for(const e in n)if(e.startsWith(r))return"Play video";return null},render:function(e,t){const n=t.session.store,r=t.dom,i=r.createElement("div"),a=i.appendChild(r.createElement("video"));return a.setAttribute("controls","yes"),n.fetcher._fetch(e.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);a.setAttribute("src",t)}),a.setAttribute("width","100%"),i}}},500(e,t,n){var r;r=(e,t)=>(()=>{var n={49(e,t,n){"use strict";
370
+ */function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,i=e[r];if(!(0<a(i,t)))break e;e[r]=t,e[n]=i,n=r}}function r(e){return 0===e.length?null:e[0]}function i(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,i=e.length,o=i>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>a(c,n))l<i&&0>a(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else{if(!(l<i&&0>a(u,n)))break e;e[r]=u,e[l]=n,r=l}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}var l=[],u=[],d=1,p=null,f=3,h=!1,m=!1,g=!1,v=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function x(e){for(var t=r(u);null!==t;){if(null===t.callback)i(u);else{if(!(t.startTime<=e))break;i(u),t.sortIndex=t.expirationTime,n(l,t)}t=r(u)}}function A(e){if(g=!1,x(e),!m)if(null!==r(l))m=!0,C||(C=!0,E());else{var t=r(u);null!==t&&I(A,t.startTime-e)}}var E,C=!1,k=-1,_=5,S=-1;function T(){return!!v||!(t.unstable_now()-S<_)}function P(){if(v=!1,C){var e=t.unstable_now();S=e;var n=!0;try{e:{m=!1,g&&(g=!1,y(k),k=-1),h=!0;var a=f;try{t:{for(x(e),p=r(l);null!==p&&!(p.expirationTime>e&&T());){var o=p.callback;if("function"==typeof o){p.callback=null,f=p.priorityLevel;var s=o(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof s){p.callback=s,x(e),n=!0;break t}p===r(l)&&i(l),x(e)}else i(l);p=r(l)}if(null!==p)n=!0;else{var c=r(u);null!==c&&I(A,c.startTime-e),n=!1}}break e}finally{p=null,f=a,h=!1}n=void 0}}finally{n?E():C=!1}}}if("function"==typeof w)E=function(){w(P)};else if("undefined"!=typeof MessageChannel){var F=new MessageChannel,R=F.port2;F.port1.onmessage=P,E=function(){R.postMessage(null)}}else E=function(){b(P,0)};function I(e,n){k=b(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e||(_=0<e?Math.floor(1e3/e):5)},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_requestPaint=function(){v=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,i,a){var o=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0<a?o+a:o:a=o,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:i,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>o?(e.sortIndex=a,n(u,e),null===r(l)&&e===r(u)&&(g?(y(k),k=-1):g=!0,I(A,a-o))):(e.sortIndex=s,n(l,e),m||h||(m=!0,C||(C=!0,E()))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},9982(e,t,n){"use strict";e.exports=n(4477)},5386(e){const t={acl:"http://www.w3.org/ns/auth/acl#",arg:"http://www.w3.org/ns/pim/arg#",as:"https://www.w3.org/ns/activitystreams#",bookmark:"http://www.w3.org/2002/01/bookmark#",cal:"http://www.w3.org/2002/12/cal/ical#",cco:"http://www.ontologyrepository.com/CommonCoreOntologies/",cert:"http://www.w3.org/ns/auth/cert#",contact:"http://www.w3.org/2000/10/swap/pim/contact#",dc:"http://purl.org/dc/elements/1.1/",dct:"http://purl.org/dc/terms/",doap:"http://usefulinc.com/ns/doap#",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",gpx:"http://www.w3.org/ns/pim/gpx#",gr:"http://purl.org/goodrelations/v1#",http:"http://www.w3.org/2007/ont/http#",httph:"http://www.w3.org/2007/ont/httph#",icalTZ:"http://www.w3.org/2002/12/cal/icaltzd#",ldp:"http://www.w3.org/ns/ldp#",link:"http://www.w3.org/2007/ont/link#",log:"http://www.w3.org/2000/10/swap/log#",meeting:"http://www.w3.org/ns/pim/meeting#",mo:"http://purl.org/ontology/mo/",org:"http://www.w3.org/ns/org#",owl:"http://www.w3.org/2002/07/owl#",pad:"http://www.w3.org/ns/pim/pad#",patch:"http://www.w3.org/ns/pim/patch#",prov:"http://www.w3.org/ns/prov#",pto:"http://www.productontology.org/id/",qu:"http://www.w3.org/2000/10/swap/pim/qif#",trip:"http://www.w3.org/ns/pim/trip#",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",rss:"http://purl.org/rss/1.0/",sched:"http://www.w3.org/ns/pim/schedule#",schema:"http://schema.org/",sioc:"http://rdfs.org/sioc/ns#",skos:"http://www.w3.org/2004/02/skos/core#",solid:"http://www.w3.org/ns/solid/terms#",space:"http://www.w3.org/ns/pim/space#",stat:"http://www.w3.org/ns/posix/stat#",tab:"http://www.w3.org/2007/ont/link#",tabont:"http://www.w3.org/2007/ont/link#",ui:"http://www.w3.org/ns/ui#",vann:"http://purl.org/vocab/vann/",vcard:"http://www.w3.org/2006/vcard/ns#",wf:"http://www.w3.org/2005/01/wf/flow#",xsd:"http://www.w3.org/2001/XMLSchema#"};e.exports=function(e={namedNode:e=>e}){const n={};for(const r in t){const i=t[r];n[r]=function(t=""){return e.namedNode(i+t)}}return n}},8236(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RDFXMLPane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.RDFXMLPane={icon:r.icons.originalIconBase+"22-text-xml4.png",name:"RDFXML",audience:[o.solid("Developer")],label:function(e,t){const n=t.session.store;if("http://www.w3.org/2007/ont/link#ProtocolEvent"in n.findTypeURIs(e))return null;const r=n.statementsMatching(void 0,void 0,void 0,e).length;return 0===r?null:"As RDF/XML ("+r+")"},render:function(e,t){const n=t.dom,r=t.session.store,a=n.createElement("div");a.setAttribute("class","RDFXMLPane");const o=r.statementsMatching(void 0,void 0,void 0,e),s=i.Serializer(r);s.suggestNamespaces(r.namespaces),s.setBase(e.uri);const c=s.statementsToXML(o),l=n.createElement("PRE");return l.appendChild(n.createTextNode(c)),a.appendChild(l),a}}},6686(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_534313.svg",name:"audio",label:function(e,t){const n=t.session.store.findTypeURIs(e),r=i.Util.mediaTypeClass("audio/*").uri.split("*")[0];for(const e in n)if(e.startsWith(r))return"Play audio";return null},render:function(e,t){const n=t.session.store,r=t.dom,i=!1,a=!0,s=!0,c=!1,l=function(e){const t=e.lastIndexOf(".");if(t<0)return e;return t<e.lastIndexOf("/")?e:e.slice(0,t)},u=function(e){const t=e.uri.split("/").slice(-3),n=function(e){try{return decodeURIComponent(e)}catch(t){return e}};v.textContent=n(t[0]),b.textContent=n(t[1]),y.textContent=n(l(t[2]))},d=function(e,t){return new Promise(function(r){if(t=t||0,!a)return r(null);const i=n.any(void 0,o.ldp("contains"),e)||e.dir();if(!i)return r(null);n.fetcher.load(i).then(function(a){const l=n.each(i,o.ldp("contains"));let u;l.sort();for(let a=0;a<l.length;a++)if(e.uri===l[a].uri){if(u=(a+1)%l.length,0!==u)return r(l[u]);if(!s)return r(c?l[u]:null);if(1===t||!s)return r(null);d(i,t+1).then(function(e){e&&n.fetcher.load(e).then(function(t){const i=n.each(e,o.ldp("contains"));return 0===i.length?r(null):(i.sort(),r(i[0]))})})}})})},p=function(e){const t=n.sym(e.target.getAttribute("src"));if(!a)return;const r=function(t){d(t).then(function(t){t&&(!function(e){const t=n.any(void 0,o.ldp("contains"),e);if(!t)return!1;const r=n.each(t,o.ldp("contains"));if(r.length<2)return!1;const i=e.uri;for(let e=0;e<r.length;e++){const t=r[e].uri;if(i.length>t.length&&i.startsWith(l(t)))return!0;if(i.endsWith(".m4a")&&t.endsWith(".mp3")&&l(i)===l(t))return!0}return!1}(t)?(u(t),w.appendChild(f(t,!0)),w.removeChild(e.target)):r(t))})};r(t)},f=function(e,t){const i=r.createElement("audio");return i.setAttribute("controls","yes"),n.fetcher._fetch(e.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);i.setAttribute("src",t)}),t&&i.setAttribute("autoplay","autoplay"),i.addEventListener("ended",p,!1),i},h=r.createElement("div"),m=h.appendChild(r.createElement("table")),g="padding: 0.3em; color:white; background-color: black;",v=m.appendChild(r.createElement("tr"));v.style.cssText=g;const b=m.appendChild(r.createElement("tr"));b.style.cssText=g;const y=m.appendChild(r.createElement("tr"));y.style.cssText=g;const w=m.appendChild(r.createElement("tr"));return u(e),w.appendChild(f(e,i)),!n.holds(void 0,o.ldp("contains"),e)&&e.dir()&&n.fetcher.load(e.dir()),h}}},5382(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.classInstancePane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.classInstancePane={icon:r.icons.originalIconBase+"tango/22-folder-open.png",name:"classInstance",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store.each(void 0,o.rdf("type"),e).length;return n>0?"List ("+n+")":null},render:function(e,t){const n=t.dom,a=t.getOutliner(n),s=t.session.store,c=function(e,t){const r=n.createElement("pre");r.setAttribute("style","background-color: "+t||0),l.appendChild(r),r.appendChild(n.createTextNode(e))},l=n.createElement("div");l.setAttribute("class","instancePane"),l.setAttribute("style"," border-top: solid 1px #777; border-bottom: solid 1px #777; margin-top: 0.5em; margin-bottom: 0.5em ");const u=s.statementsMatching(void 0,o.rdf("type"),e);if(u.length>0){const t={},d=[];u.forEach(e=>{t[e.subject.toNT()]=e});for(const n in s.findMembersNT(e))t[n]||d.push(i.st(s.fromNT(n),o.rdf("type"),e));if(d.length&&c("There are "+u.length+" explicit and "+d.length+" implicit members of "+r.utils.label(e)),e.sameTerm(o.rdf("Property")));else if(e.sameTerm(o.rdfs("Class"))){const e=s.statementsMatching(void 0,o.rdf("type"),void 0),t={};e.forEach(function(e){t[e.object]=e});const n=[];for(const e in t)n.push(i.st(i.sym(e),o.rdf("type"),o.rdfs("Class")));c("Total of "+e.length+" type statements and "+n.length+" unique types.")}if(u.length>10){const e=n.createElement("TR");e.appendChild(n.createTextNode(""+u.length)),l.appendChild(e)}a.appendPropertyTRs(l,u,!0,function(e){return!0}),d.length&&(c("Implicit:"),a.appendPropertyTRs(l,d,!0,function(e){return!0}))}return l}}},6106(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.basicPreferencesPane=void 0;var r=n(8230),i=n(500);const a=t.basicPreferencesPane={icon:i.icons.iconBase+"noun_Sliders_341315_000000.svg",name:"basicPreferences",label:e=>null,render:(e,t)=>{const n=t.dom,a=t.session.store;function s(e,t){e||c.appendChild(i.widgets.errorMessageBlock(n,t,"#fee"))}const c=n.createElement("div"),l=function(e,t){const n=o(e,t,"User types"),r=n.appendChild(t.createElement("p"));r.innerText="Here you can self-assign user types to help the data browser know which views you would like to access.";const i=n.appendChild(t.createElement("a"));i.href="https://github.com/solidos/userguide/#role",i.innerText="Read more";const a=n.appendChild(t.createElement("div"));return a}(c,n);function u(e,t){e=e.doc(),a.holds(void 0,void 0,void 0,e)||(0,r.parse)(t,a,e.uri,"text/turtle",null)}const d=a.sym("urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597#this");u(d,'@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix : <#>.\n\n:this <http://purl.org/dc/elements/1.1/title> "Basic preferences" ;\n a ui:Form ;\n ui:part :categorizeUser, :privateComment, :personalInformationHeading;\n ui:parts ( :personalInformationHeading :privateComment :categorizeUser ).\n\n:personalInformationHeading a ui:Heading;\n ui:contents "Personal information".\n\n:privateComment a ui:Comment;\n ui:contents "This information is private.".\n\n:categorizeUser a ui:Classifier;\n ui:label "Level of user"; ui:property rdf:type ; ui:category solid:User.\n');return u(a.sym("urn:uuid:93774ba1-d3b6-41f2-85b6-4ae27ffd2597-ONT"),'@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix schema: <http:/schema.org/>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix : <#>.\n\nsolid:User a rdfs:Class;\n rdfs:label "user"@en, "utilisateur"@fr;\n rdfs:comment """Any person who might use a Solid-based system""";\n rdfs:subClassOf foaf:Person, schema:Person, vcard:Individual.\n\n# Since these options are opt-in, it is a bit strange to have new users opt in\n# That they are new users - also we do not use this class for anything specific\n# yet\n# solid:NewUser a rdfs:Class;\n# rdfs:label "new user"@en;\n# rdfs:comment """A person who might use a Solid-based system who has a low\n# level of familiarity with technical details.""";\n# rdfs:subClassOf solid:User.\n\nsolid:PowerUser a rdfs:Class;\n rdfs:label "power user"@en;\n rdfs:comment """A person who might use a Solid-based system\n who is prepared to be given a more complex interface in order\n to be provided with more pwerful features.""";\n rdfs:subClassOf solid:User.\n\n solid:Developer a rdfs:Class;\n rdfs:label "Developer";\n rdfs:comment """Any person who might use a Solid-based system,\n who has software development skills.""";\n rdfs:subClassOf solid:User.\n'),async function(){const e=await i.login.ensureLoadedPreferences({dom:n,div:c});if(!e.preferencesFile)return;i.widgets.appendForm(n,l,{},e.me,d,e.preferencesFile,s).style.borderStyle="none";const r=t.session.paneRegistry.byName("trustedApplications");r&&c.appendChild(r.render(null,t)),function(e,t,n,r){const a=o(e,r,"Delete account"),s=t.each(n,i.ns.space("storage"),null,n.doc()),c=s.map(e=>e.value),l=a.appendChild(r.createElement("ul"));c.forEach(async e=>{const t=await async function(e,t){const n=t.createElement("a");n.textContent=`Delete your account at ${e}`;const r=await async function(e){const t=new URL(e),n=new URL(e);n.pathname=t.pathname="/account/delete";const r=n.hostname.split(".");n.hostname=r.slice(1).join(".");if((await fetch(n.href,{method:"HEAD"})).ok)return n.href;if((await fetch(t.href,{method:"HEAD"})).ok)return t.href;return null}(e);if("string"!=typeof r)return null;return n.href=r,n}(e,r);if(t){l.appendChild(r.createElement("li")).appendChild(t)}})}(c,a,e.me,n)}(),c}};t.default=a;function o(e,t,n){const r=e.appendChild(t.createElement("div"));r.style.border="0.3em solid #418d99",r.style.borderRadius="0.5em",r.style.padding="0.7em",r.style.marginTop="0.7em";return r.appendChild(t.createElement("h3")).innerText=n,r}},5682(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.dashboardPane=void 0;var r=n(500),i=n(9332),a=n(730);const o=t.dashboardPane={icon:r.icons.iconBase+"noun_547570.svg",name:"dashboard",label:e=>"NamedNode"===e.termType&&e.uri===e.site().uri?"Dashboard":null,render:(e,t)=>{const n=t.dom.createElement("div"),r=()=>{n.innerHTML="",function(e,t,n,r){const o=new URL(window.location.href).searchParams.get("uri");if(t&&(o||t.site().uri===r.site().uri))return function(e,t){const n=t.getOutliner(t.dom);n.getDashboard().then(t=>e.appendChild(t))}(e,n);(function(e,t){const n=document.createElement("div");e.appendChild(n);const r=n.attachShadow({mode:"open"}),o=document.createElement("link");o.rel="stylesheet",o.href="/common/css/bootstrap.min.css",r.appendChild(o),(0,a.generateHomepage)(t,i.store,i.store.fetcher).then(e=>r.appendChild(e))})(e,r)}(n,i.authn.currentUser()||null,t,e)};return i.authSession.events.on("login",()=>{r()}),i.authSession.events.on("sessionRestore",()=>{r()}),r(),n}};t.default=o},730(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateHomepage=async function(e,t,n){const a=await async function(e,t,n){const a=e.site().uri,o=(0,r.sym)(`${a}profile/card#me`);try{return await n.load(o),o}catch(e){}try{await n.load(e)}catch(t){return e}const s=t.any(e,i.ns.foaf("primaryTopic"),null,e.doc());if(s&&"NamedNode"===s.termType)try{return await n.load(s),s}catch(t){return e}return e}(e,t,n),o=function(e,t){return e.anyValue(t,i.ns.vcard("fn"),null,t.doc())||e.anyValue(t,i.ns.foaf("name"),null,t.doc())||new URL(t.uri).host.split(".")[0]}(t,a),s=document.createElement("div");return s.classList.add("container"),s.appendChild(function(e,t){const n=document.createElement("a");n.href=e,n.innerText=t;const r=document.createElement("span");r.innerText="'s Pod";const i=document.createElement("h1");return i.appendChild(n),i.appendChild(r),i}(a.uri,o)),s.appendChild(function(e){const t=document.createElement("section"),n=document.createElement("h2");n.innerText="Data",t.appendChild(n);const r=document.createElement("div");r.classList.add("list-group"),t.appendChild(r);const i=document.createElement("a");return i.classList.add("list-group-item"),i.href=window.document.location.href+"public/",i.innerText=`View ${e}'s files`,r.appendChild(i),t}(o)),s};var r=n(8230),i=n(500)},1424(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dataContentPane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.dataContentPane={icon:r.icons.originalIconBase+"rdf_flyer.24.gif",name:"dataContents",audience:[o.solid("Developer")],label:function(e,t){if("http://www.w3.org/2007/ont/link#ProtocolEvent"in t.session.store.findTypeURIs(e))return null;const n=t.session.store.statementsMatching(void 0,void 0,void 0,e).length;return 0===n?null:"Data ("+n+")"},statementsAsTables:function(e,t,n){const a=t.dom,o=a.createElement("table"),s=i.Serializer(t.session.store),c=s.rootSubjects(e);let l=c.roots;const u=c.subjects,d=c.loopBreakers;for(const e in d);const p={},f={};function h(e){const t=a.createElement("table");let n=null;const i=u[s.toStr(e)];if(!i)return t.appendChild(a.createTextNode("...")),t;i.sort();let o,c=0;for(let e=0;e<i.length;e++){const s=i[e],l=a.createElement("tr");if(s.predicate.uri!==n){n&&c>1&&o.setAttribute("rowspan",""+c),o=a.createElement("td"),o.setAttribute("class","pred");const e=a.createElement("a");e.setAttribute("href",s.predicate.uri),e.addEventListener("click",r.widgets.openHrefInOutlineMode,!0),e.appendChild(a.createTextNode(r.utils.predicateLabelForXML(s.predicate))),o.appendChild(e),l.appendChild(o),n=s.predicate.uri,c=0}c++;const u=a.createElement("td");u.appendChild(m(s.object)),l.appendChild(u),t.appendChild(l)}return n&&c>1&&o.setAttribute("rowspan",""+c),t}function m(e){let n,i;switch(e.termType){case"NamedNode":return i=a.createElement("a"),i.setAttribute("href",e.uri),i.addEventListener("click",r.widgets.openHrefInOutlineMode,!0),i.appendChild(a.createTextNode(r.utils.label(e))),i;case"Literal":return e.datatype&&e.datatype.uri?"http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"===e.datatype.uri?(n=a.createElement("div"),n.setAttribute("class","embeddedXHTML"),n.innerHTML=e.value,n):a.createTextNode(e.value):(n=a.createElement("div"),n.setAttribute("style","white-space: pre-wrap;"),n.textContent=e.value,n);case"BlankNode":{if(e.toNT()in p){f[e.toNT()]=!0;const t=a.createElement("a");return t.setAttribute("href","#"+e.toNT().slice(2)),t.setAttribute("class","bnodeRef"),t.textContent="*"+e.toNT().slice(3),t}p[e.toNT()]=!0;const t=h(e);return p[e.toNT()]=t,r.utils.ancestor(t,"TABLE")&&"white"===r.utils.ancestor(t,"TABLE").style.backgroundColor?t.style.backgroundColor="#eee":t.style.backgroundColor="white",t}case"Collection":n=a.createElement("table"),n.setAttribute("class","collectionAsTables");for(let t=0;t<e.elements.length;t++){const r=a.createElement("tr");n.appendChild(r),r.appendChild(m(e.elements[t]))}return n;case"Graph":return n=t.session.paneRegistry.byName("dataContents").statementsAsTables(e.statements,t),n.setAttribute("class","nestedFormula"),n;case"Variable":return n=a.createTextNode("?"+e.uri),n}throw new Error("Unhandled node type: "+e.termType)}n&&(l=n.concat(l.filter(function(e){for(let t=0;t<n.length;t++)if(e.sameTerm(n[t]))return!1;return!0})));for(let e=0;e<l.length;e++){const t=a.createElement("tr");t.setAttribute("style",`background-color: ${e%2==0?"#f0f0f0":"white"};`),o.appendChild(t);const n=a.createElement("td");t.appendChild(n);const i=a.createElement("td");t.appendChild(i);const s=l[e];"BlankNode"===s.termType?n.appendChild(a.createTextNode(r.utils.label(s))):n.appendChild(m(s)),i.appendChild(h(s))}for(const e in f){const t=p[e],n=a.createElement("a");n.setAttribute("id",e.slice(2)),n.setAttribute("class","bnodeDef"),n.textContent=e.slice(3)+")",t.insertBefore(n,t.firstChild)}return o},render:function(e,t){const n=t.dom;t.getOutliner(n);const i=t.session.store,a=n.createElement("div");a.setAttribute("class","dataContentPane");const o=i.statementsMatching(void 0,void 0,void 0,e);return function(){const n=[];i.holds(e,void 0,void 0,e)&&n.push(e);const s=i.any(e,r.ns.foaf("primaryTopic"),void 0,e);s&&n.push(s),a.appendChild(t.session.paneRegistry.byName("dataContents").statementsAsTables(o,t,n))}(),a}}},4064(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultPane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.defaultPane={icon:r.icons.originalIconBase+"about.png",name:"default",audience:[o.solid("Developer")],label:function(e){return"about "},render:function(e,t){const n=t.dom,a=function(e,n){return void 0===t.session.paneRegistry.byName("internal").predicates[e.uri]&&(!n||"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"!==e.uri)},o=t.getOutliner(n),s=t.session.store;r.log.info("@defaultPane.render, dom is now "+n.location),e=s.canon(e);const c=n.createElement("div");c.setAttribute("class","defaultPane");let l=s.statementsMatching(e);if(o.appendPropertyTRs(c,l,!1,a),l=s.statementsMatching(void 0,void 0,e),o.appendPropertyTRs(c,l,!0,a),"Literal"===e.termType&&"http://"===e.value.slice(0,7)&&o.appendPropertyTRs(c,[i.st(s.sym(e.value),r.ns.link("uri"),e)],!0,a),"NamedNode"===e.termType&&s.updater.editable(i.Util.uri.docpart(e.uri),s)||"BlankNode"===e.termType&&s.anyStatementMatching(e)&&s.anyStatementMatching(e).why&&s.anyStatementMatching(e).why.uri&&s.updater.editable(s.anyStatementMatching(e).why.uri)){const e=n.createElement("tr"),t=n.createElement("td");t.setAttribute("colspan","2"),t.setAttribute("notSelectable","true");const i=n.createElement("img");i.src=r.icons.originalIconBase+"tango/22-list-add-new.png",i.addEventListener("click",function(e){o.UserInput.addNewPredicateObject(e),e.stopPropagation(),e.preventDefault()}),i.className="bottom-border-active",c.appendChild(e).appendChild(t).appendChild(i)}return c}}},2970(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=c(n(500)),a=c(n(8230)),o=c(n(6049)),s=(r=n(3505))&&r.__esModule?r:{default:r};function c(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(c=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}t.default={icon:i.icons.iconBase+"dokieli-logo.png",name:"Dokieli",mintClass:i.ns.solid("DokieliDocument"),label:function(e,t){return null},mintNew:function(e,t){const n=e.session.store;let r=t.newInstance;if(!r){let e=t.newBase;e.endsWith("/")&&(e=e.slice(0,-1),t.newBase=e),r=n.sym(e)}const i=o.lookup(r.uri);i&&i.includes("html")||(r=a.sym(r.uri+".html")),t.newInstance=r;let c=s.default,l=r.uri.split("/").slice(-1)[0];l=decodeURIComponent(l.split(".")[0]);const u=l.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return c=c.replace("<title>","<title>"+u),c=c.replace("</article>","<h1>"+u+"</h1></article>"),new Promise(function(e){n.fetcher.webOperation("PUT",r.uri,{data:c,contentType:"text/html"}).then(function(){e(t)}).catch(function(e){})})}}},3505(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default='<!DOCTYPE html>\n<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">\n <head>\n <meta charset="utf-8" />\n <title></title>\n <meta content="width=device-width, initial-scale=1" name="viewport" />\n <link href="https://dokie.li/media/css/basic.css" media="all" rel="stylesheet" title="Basic" />\n <link href="https://dokie.li/media/css/dokieli.css" media="all" rel="stylesheet" />\n <script src="https://dokie.li/scripts/dokieli.js"><\/script>\n </head>\n\n <body about="" prefix="rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# rdfs: http://www.w3.org/2000/01/rdf-schema# owl: http://www.w3.org/2002/07/owl# xsd: http://www.w3.org/2001/XMLSchema# rdfa: http://www.w3.org/ns/rdfa# dcterms: http://purl.org/dc/terms/ dctypes: http://purl.org/dc/dcmitype/ foaf: http://xmlns.com/foaf/0.1/ pimspace: http://www.w3.org/ns/pim/space# skos: http://www.w3.org/2004/02/skos/core# prov: http://www.w3.org/ns/prov# mem: http://mementoweb.org/ns# qb: http://purl.org/linked-data/cube# schema: http://schema.org/ void: http://rdfs.org/ns/void# rsa: http://www.w3.org/ns/auth/rsa# cert: http://www.w3.org/ns/auth/cert# wgs: http://www.w3.org/2003/01/geo/wgs84_pos# bibo: http://purl.org/ontology/bibo/ sioc: http://rdfs.org/sioc/ns# doap: http://usefulinc.com/ns/doap# dbr: http://dbpedia.org/resource/ dbp: http://dbpedia.org/property/ sio: http://semanticscience.org/resource/ opmw: http://www.opmw.org/ontology/ deo: http://purl.org/spar/deo/ doco: http://purl.org/spar/doco/ cito: http://purl.org/spar/cito/ fabio: http://purl.org/spar/fabio/ oa: http://www.w3.org/ns/oa# as: https://www.w3.org/ns/activitystreams# ldp: http://www.w3.org/ns/ldp# solid: http://www.w3.org/ns/solid/terms# acl: http://www.w3.org/ns/auth/acl# earl: http://www.w3.org/ns/earl# spec: http://www.w3.org/ns/spec# odrl: http://www.w3.org/ns/odrl/2/ dio: https://w3id.org/dio# rel: https://www.w3.org/ns/iana/link-relations/relation#" typeof="schema:CreativeWork prov:Entity">\n <main>\n <article about="" typeof="schema:Article">\n\n </article>\n </main>\n </body>\n</html>\n'},5238(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formPane=void 0;var r=o(n(500)),i=n(9332),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=r.ns;t.formPane={icon:r.icons.iconBase+"noun_122196.svg",name:"form",audience:[s.solid("PowerUser")],label:function(e){const t=r.widgets.formsFor(e).length;return r.log.debug("Form pane: forms for "+e+": "+t),t?t+" forms":null},render:function(e,t){const n=t.session.store,o=t.dom,c=function(e,t){const n=o.createElement("p");return n.setAttribute("style",t||"color: grey; background-color: white"),p.appendChild(n).textContent=e,n},l=function(e,t){c(e,"style")},u=function(e,t){e||l("Sorry, failed to save your change:\n"+t)},d=i.authn.currentUser(),p=o.createElement("div");if(p.setAttribute("class","formPane"),d){0===n.each(d,s.ui("workspace")).length&&c("You don't seem to have any workspaces defined. A workspace is a place on the web (http://..) or in the file system (file:///) to store application data.\n")}else c("You are not logged in. If you log in and have workspaces then you would be able to select workspace in which to put this new information");const f=function(e,t){n.fetcher.nowOrWhenFetched(e.uri,t,function(n,i){if(!n)return l("Cannot load store "+e.uri+": "+i);const s=r.widgets.formsFor(t);for(let n=0;n<s.length;n++){const i=s[n],c=o.createElement("h4");if(p.appendChild(c),i.uri){const e=a.Util.uri.document(i.uri);if(e.uri!==i.uri){p.appendChild(r.widgets.editFormButton(o,p,i,e,u)).setAttribute("style","float: right;")}}const l=o.createElement("a");l.setAttribute("href",i.uri),c.appendChild(l),l.textContent=r.utils.label(i,!0),r.widgets.appendForm(o,p,{},t,i,e,u)}})};let h=null;const m=a.Util.uri.docpart(e.uri);if(e.uri!==m&&n.updater.editable(m,n)&&(h=e.doc()),h=h||n.any(n.sym(m),s.link("annotationStore")),!h){const t={},n=[];h.statementsMatching(e).forEach(function(e){t[e.why.uri]=1}),h.statementsMatching(void 0,void 0,e).forEach(function(e){t[e.why.uri]=2});for(const e in t)n.push(t[e],e);n.sort();for(let e=0;e<n.length;e++){const t=n[e][1];if(t&&h.updater.editable(t)){h=h.sym(t);break}}}const g="2014";if(h)f(h,e);else{l("No suitable store is known, to edit <"+e.uri+">.");const t=r.login.selectWorkspace(o,function(t){c("Workspace selected OK: "+t);const n=h.each(void 0,s.space("workspace"),t);for(let r=0;r<n.length;r++){const i=n[r],a=h.any(t,s.space("store")),o=h.any(t,s.cal("dtstart")).value(),c=h.any(t,s.cal("dtend")).value();if(a&&o&&c&&o<=g&&c>g){f(a,e);break}l("Note no suitable annotation store in activity: "+i)}});p.appendChild(t)}return p}}},8426(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(9332),i=n(500);const a={icon:i.icons.iconBase+"noun_547570.svg",global:!0,name:"home",label:function(){return"home"},render:function(e,t){const n=t.dom,a=n.createElement("div"),o=r.authn.currentUser();return async function(){const e={div:a,dom:n,statusArea:a,me:o};a.appendChild(n.createElement("h4")).textContent="Create new thing somewhere";const r={div:a.appendChild(n.createElement("div")),dom:n,statusArea:a,me:o},s=await i.login.filterAvailablePanes(t.session.paneRegistry.list);i.create.newThingUI(r,t,s),i.login.registrationList(e,{}).then(function(){})}(),a}};t.default=a},6380(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=n(500),a=n(8230),o=n(23),s=(r=n(5454))&&r.__esModule?r:{default:r};const c=e=>{if(!e)return!1;const t=e.split("?")[0].split("#")[0];return/\.(md|markdown|mdown|mkd|mkdn)$/i.test(t)},l=new Map,u={icon:function(e,t){if(e&&c(e.uri))return i.icons.iconBase+"markdown.svg";if(e){const n=t.session.store,r=l.get(e.uri);if("dokieli"===r)return i.icons.iconBase+"dokieli-logo.png";if("html"===r)return i.icons.originalIconBase+"tango/22-text-x-generic.png";const a=n.fetcher.getHeader(e.doc(),"content");if(a&&a.length>0){const t=a[0],n=t.includes('<script src="https://dokie.li/scripts/dokieli.js">')||t.includes("dokieli.css");return l.set(e.uri,n?"dokieli":"html"),n?i.icons.iconBase+"dokieli-logo.png":i.icons.originalIconBase+"tango/22-text-x-generic.png"}const o=n.fetcher.getHeader(e.doc(),"content-type");if("text/html"===(o?o[0].split(";",1)[0].trim():null))return n.fetcher._fetch(e.uri).then(e=>e.text()).then(t=>{const n=t.includes('<script src="https://dokie.li/scripts/dokieli.js">')||t.includes("dokieli.css");return l.set(e.uri,n?"dokieli":"html"),n?i.icons.iconBase+"dokieli-logo.png":i.icons.originalIconBase+"tango/22-text-x-generic.png"}).catch(()=>(l.set(e.uri,"html"),i.icons.originalIconBase+"tango/22-text-x-generic.png"))}return i.icons.originalIconBase+"tango/22-text-x-generic.png"},name:"humanReadable",label:function(e,t){const n=t.session.store,r=["text/plain","text/html","text/markdown","application/xhtml+xml","image/png","image/jpeg","application/pdf","video/mp4"];if(!e.uri)return null;if(n.findTypeURIs(e)[i.ns.link("WebPage").uri])return"view";if(c(e.uri))return"View";if(function(e,t,n){const r=e.fetcher.getHeader(t,"content-type");if(r)for(let e=0;e<r.length;e++)for(let t=0;t<n.length;t++)if(r[e].indexOf(n[t])>=0)return!0;return!1}(n,e,r)||function(e,t,n){const r=e.findTypeURIs(t);for(let e=0;e<n.length;e++)if(a.Util.mediaTypeClass(n[e]).uri in r)return!0;return!1}(n,e,r)){const t=n.fetcher.getHeader(e.doc(),"content-type");return"text/html"!==(t?t[0].split(";",1)[0].trim():null)||l.has(e.uri)||n.fetcher._fetch(e.uri).then(e=>e.text()).then(t=>{const n=t.includes('<script src="https://dokie.li/scripts/dokieli.js">')||t.includes("dokieli.css");l.set(e.uri,n?"dokieli":"html")}).catch(()=>{l.set(e.uri,"html")}),"View"}return null},render:function(e,t){const n=t.dom,r=n.createElement("div"),i=t.session.store,a=i.fetcher.getHeader(e.doc(),"content-type"),u=a?a[0].split(";",1)[0].trim():null,d="text/markdown"===u||c(e.uri);r.setAttribute("class","docView");const p=(t,n)=>{t.setAttribute("src",e.uri),t.setAttribute("class","doc"),t.setAttribute("style",`border: 1px solid; padding: 1em; height: ${n}em; width: 800px; resize: both; overflow: auto;`)};if(d){const t=n.createElement("DIV");!function(t){i.fetcher.webOperation("GET",e.uri).then(e=>{const n=e.responseText,r=Math.min(30,n.split(/\n/).length+5),i=o.marked.parse(n),a=s.default.sanitize(i);t.innerHTML=a,t.setAttribute("class","doc"),t.setAttribute("style",`border: 1px solid; padding: 1em; height: ${r}em; width: 800px; resize: both; overflow: auto;`)}).catch(e=>{t.innerHTML="<p>Error loading content</p>"})}(t);const a=n.createElement("TR");a.appendChild(t),r.appendChild(a)}else{const t=n.createElement("IFRAME");"text/html"!==u&&"application/xhtml+xml"!==u||t.setAttribute("sandbox","allow-scripts allow-same-origin allow-forms"),i.fetcher.webOperation("GET",e.uri).then(n=>{const r=n.responseText,i=r.includes('<script src="https://dokie.li/scripts/dokieli.js">')?-10:5,a=Math.min(30,r.split(/\n/).length+i),o=r.includes('<script src="https://dokie.li/scripts/dokieli.js">')||r.includes("dokieli.css");l.set(e.uri,o?"dokieli":"html"),p(t,a)}).catch(e=>{p(t,30)});const a=n.createElement("TR");a.appendChild(t),r.appendChild(a)}return r}};t.default=u},2168(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.imagePane=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.imagePane={icon:r.icons.originalIconBase+"tango/22-image-x-generic.png",name:"image",label:function(e,t){const n=t.session.store;if(!n.anyStatementMatching(e,r.ns.rdf("type"),n.sym("http://purl.org/dc/terms/Image")))return null;return function(e,t,n){const r=e.fetcher.getHeader(t,"content-type");if(r)for(let e=0;e<r.length;e++)for(let t=0;t<n.length;t++)if(r[e].indexOf(n[t])>=0)return!0;return!1}(n,e,["application/pdf"])?null:"view"},render:function(e,t){const n=t.dom,r=t.session.store,i=n.createElement("div");i.setAttribute("class","imageView");const a=n.createElement("IMG");r.fetcher._fetch(e.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);a.setAttribute("src",t)}),a.setAttribute("style","max-width: 100%; max-height: 100%;");const o=n.createElement("TR");return o.appendChild(a),i.appendChild(o),i}}},7523(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"OutlineManager",{enumerable:!0,get:function(){return o.default}}),t.UI=void 0,Object.defineProperty(t,"byName",{enumerable:!0,get:function(){return c.byName}}),t.getOutliner=p,Object.defineProperty(t,"initMainPage",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"list",{enumerable:!0,get:function(){return c.list}}),Object.defineProperty(t,"paneForIcon",{enumerable:!0,get:function(){return c.paneForIcon}}),Object.defineProperty(t,"paneForPredicate",{enumerable:!0,get:function(){return c.paneForPredicate}}),Object.defineProperty(t,"register",{enumerable:!0,get:function(){return c.register}}),Object.defineProperty(t,"versionInfo",{enumerable:!0,get:function(){return r.default}});var r=d(n(4959)),i=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.UI=i;var a=n(9332),o=d(n(7981)),s=n(2371),c=n(4059),l=n(6813),u=d(n(5218));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if(!e.outlineManager){const t=(0,l.createContext)(e,{list:c.list,paneForIcon:c.paneForIcon,paneForPredicate:c.paneForPredicate,register:c.register,byName:c.byName},a.store,a.solidLogicSingleton);e.outlineManager=new o.default(t)}return e.outlineManager}"undefined"!=typeof window&&p(window.document),(0,s.registerPanes)(e=>(0,c.register)(e.default||e)),"undefined"!=typeof window&&(window.panes={getOutliner:p})},4930(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500),i=n(8230);const a={icon:r.icons.originalIconBase+"tango/22-emblem-system.png",name:"internal",label:function(){return"under the hood"},render:function(e,t){const n=t.dom,a=t.session.store,o=a.canon(e),s=a.findTypeURIs(o);function c(e){if(s["http://www.w3.org/2007/ont/link#ProtocolEvent"])return!0;const n=t.session.paneRegistry.byName("internal");return n&&n.predicates&&!(void 0===n.predicates[e.uri])}const l=n.createElement("div");function u(e,t){const n=e.fetcher;if(n)return new Promise(function(i,a){n.load(t).then(function(){const o=e.each(t,r.ns.ldp("contains")).map(t=>e.holds(t,r.ns.rdf("type"),r.ns.ldp("BasicContainer"))?u(e,t):n.webOperation("DELETE",t.uri));Promise.all(o).then(()=>{n.webOperation("DELETE",t.uri).then(()=>{i(void 0)}).catch(e=>{a(new Error("Unable to delete "+t+": "+e))}),i(void 0)},e=>{alert(e),a(e)})})})}l.setAttribute("class","internalPane"),l.setAttribute("style","background-color: #ddddff; padding: 0.5em; border-radius: 1em;");if(e.uri&&!e.uri.includes("#")){const t=l.appendChild(n.createElement("table"));t.style.width="100%",t.style.margin="1em";const i=t.appendChild(n.createElement("tr")),o=i.appendChild(n.createElement("td")),s=e.uri&&e.uri.endsWith("/")||a.holds(e,r.ns.rdf("type"),r.ns.ldp("Container")),c=s?"folder":"file";if(!function(e){const t=e.site().uri;return e.uri===t||e.uri===t+"profile/"||e.uri===t+"profile/card"||e.uri===t+"settings/"||e.uri===t+"settings/prefs.ttl"||e.uri===t+"settings/privateTypeIndex.ttl"||e.uri===t+"settings/publicTypeIndex.ttl"||e.uri===t+"settings/serverSide.ttl"}(e)){const t=r.widgets.deleteButtonWithCheck(n,o,c,function(){if(!confirm(`Are you sure you want to delete ${e}? This cannot be undone.`))return;if(!a.fetcher)throw new Error("Store has no fetcher");(s?u(a,e)||Promise.resolve():a.fetcher.webOperation("DELETE",e.uri)||Promise.resolve()).then(()=>{}).catch(t=>{alert("Unable to delete "+e+": "+t)})});t.style="height: 2em;",t.class="",o.appendChild(t)}const d=i.appendChild(n.createElement("td")),p=r.widgets.button(n,r.icons.iconBase+"noun_479395.svg","refresh");d.appendChild(p),p.addEventListener("click",()=>{if(!a.fetcher)throw new Error("Store has no fetcher");a.fetcher.refresh(e,function(t,n){let r;r=t?"Refreshed OK: "+e:"Error refreshing: "+e+": "+n,alert(r)})})}let d=a.statementsMatching(e),p="";if(!a.fetcher)throw new Error("Store has no fetcher");if(e.uri&&(d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/2007/ont/link#uri"),e.uri,a.fetcher.appNode)),e.uri.indexOf("#")>=0?(p=e.uri.split("#")[0],d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/2007/ont/link#documentURI"),e.uri.split("#")[0],a.fetcher.appNode)),d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/2007/ont/link#document"),(0,i.sym)(e.uri.split("#")[0]),a.fetcher.appNode))):p=e.uri),p){if(!a.updater)throw new Error("Store has no updater");const t=a.updater.editable(p);t&&d.push((0,i.st)(e,(0,i.sym)("http://www.w3.org/ns/rww#editable"),(0,i.literal)(t.toString()),a.fetcher.appNode))}const f=t.getOutliner(n);return f.appendPropertyTRs(l,d,!1,c),d=a.statementsMatching(void 0,void 0,e),f.appendPropertyTRs(l,d,!0,c),l},predicates:{"http://www.w3.org/2007/ont/link#request":1,"http://www.w3.org/2007/ont/link#requestedBy":1,"http://www.w3.org/2007/ont/link#source":1,"http://www.w3.org/2007/ont/link#session":2,"http://www.w3.org/2007/ont/link#uri":1,"http://www.w3.org/2007/ont/link#documentURI":1,"http://www.w3.org/2007/ont/link#document":1,"http://www.w3.org/2007/ont/link#all":1,"http://www.w3.org/2007/ont/link#Document":1,"http://www.w3.org/ns/rww#editable":1,"http://www.w3.org/2000/01/rdf-schema#seeAlso":1,"http://www.w3.org/2002/07/owl#":1},classes:{"http://www.w3.org/2007/ont/link#ProtocolEvent":1}};t.default=a},8399(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createFooter=function(e){(0,r.initFooter)(e,{solidProjectUrl:i,solidProjectName:a})};var r=n(500);const i="https://solidproject.org",a="solidproject.org"},3469(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createHeader=async function(e,t){(0,i.initHeader)(e,await async function(e){const t={label:l,onclick:()=>{r.authSession.logout()}};let n=[];return n=n.concat(await async function(e){const t=await e.getDashboardItems();return t.map(t=>({label:t.label,onclick:()=>async function(e,t){e.showDashboard({pane:t})}(e,t.tabName||t.paneName)}))}(e)),n.push(t),n}(t),{logo:o,helpIcon:a,helpMenuList:[{label:s,url:u,target:"_blank"},{label:c,url:d,target:"_blank"}]})};var r=n(9332),i=n(500);const a=i.icons.iconBase+"noun_help.svg",o="https://solidproject.org/assets/img/solid-emblem.svg",s="User guide",c="Report a problem",l="Log out",u="https://solidos.github.io/userguide/",d="https://github.com/solidos/solidos/issues"},5218(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=async function(e,t){const n=(0,r.getOutliner)(document);let o=t=t||window.location.href;"string"==typeof t&&(o=e.sym(t));n.GotoSubject(o,!0,void 0,!0,void 0);const s=await(0,i.createHeader)(e,n),c=(0,a.createFooter)(e);return Promise.all([s,c])};var r=n(7523),i=n(3469),a=n(8399)},7334(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.n3Pane=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.n3Pane={icon:r.icons.originalIconBase+"w3c/n3_smaller.png",name:"n3",audience:[o.solid("Developer")],label:function(e,t){const n=t.session.store;if("http://www.w3.org/2007/ont/link#ProtocolEvent"in n.findTypeURIs(e))return null;const r=n.statementsMatching(void 0,void 0,void 0,e).length;return 0===r?null:"Data ("+r+") as N3"},render:function(e,t){const n=t.dom,r=t.session.store,a=n.createElement("div");a.setAttribute("class","n3Pane");const o=r.statementsMatching(void 0,void 0,void 0,e),s=i.Serializer(r);s.suggestNamespaces(r.namespaces),s.setBase(e.uri);const c=s.statementsToN3(o),l=n.createElement("PRE");return l.appendChild(n.createTextNode(c)),a.appendChild(l),a}}},6813(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createContext=function(e,t,n,i){return{dom:e,getOutliner:r.getOutliner,session:{paneRegistry:t,store:n,logic:i}}};var r=n(7523)},7981(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const t=e.dom;this.document=e.dom,this.outlineIcons=c.outlineIcons,this.labeller=this.labeller||{},this.labeller.LanguagePreference="";const d=this,p=this;let f=[];this.selection=f,this.ancestor=a.utils.ancestor,this.sparql=i.UpdateManager,this.kb=o.store;const h=o.store,m=o.store.fetcher;t.outline=this,this.qs=new u.QuerySource,this.UserInput=new l.UserInput(this),this.clipboardAddress="tabulator:clipboard",this.UserInput.clipboardInit(this.clipboardAddress);const g=this.outlineElement;async function v(e={}){const n=t.createElement("div"),i=o.authn.currentUser();if(!i)throw alert("Must be logged in for this"),new Error("Not logged in");const s=await b();return n.appendChild(a.tabs.tabWidget({dom:t,subject:i,items:s,renderMain:function(e,n){const i=r.byName(n.paneName);e.innerHTML="";const a=e.appendChild(t.createElement("table")),s=o.authn.currentUser();p.GotoSubject(n.subject||s,!0,i,!1,void 0,a)},renderTab:function(e,t){e.dataset.globalPaneName=t.tabName||t.paneName,e.textContent=t.label},ordered:!0,orientation:0,backgroundColor:"#eeeeee",selectedTab:e.selectedTab,onClose:e.onClose})),n}async function b(){const e=o.authn.currentUser();if(!e)return[];t.createElement("div");const[n]=await Promise.all([async function(){async function t(e){return await x(e),!!h.holds(e,$.rdf("type"),$.space("Storage"),e.doc())&&(n.push(e),!0)}try{await h.fetcher.load(e.doc())}catch(e){return[]}let n=h.each(e,$.space("storage"),null,e.doc());n.map(async e=>{await x(e)});try{const e=new URL(window.location.href).searchParams.get("uri")||window.location.href;await async function(e){const n=new URL(e);let r=n.pathname;for(;r.length;)if(r=r.substring(0,r.lastIndexOf("/")),await t(h.sym(`${n.origin}${r}/`)))return}(e)}catch(e){}return n=function(e){const t=[];return e.forEach(e=>{t.find(t=>t.equals(e))||t.push(e)}),t}(n),n.length?n.map((t,n)=>{function r(e){return e.uri.split("//")[1].slice(0,-1)}return{paneName:"folder",tabName:`folder-${n}`,label:r(e).startsWith(r(t))?"Your storage":r(t),subject:t,icon:a.icons.iconBase+"noun_Cabinet_251723.svg"}}):[]}()]);return[{paneName:"home",label:"Your stuff",icon:a.icons.iconBase+"noun_547570.svg"},{paneName:"basicPreferences",label:"Preferences",icon:a.icons.iconBase+"noun_Sliders_341315_00000.svg"},{paneName:"profile",label:"Your Profile",icon:a.icons.iconBase+"noun_15059.svg"},{paneName:"editProfile",label:"Edit your Profile",icon:a.icons.iconBase+"noun_492246.svg"}].concat(n)}function y(){return w("outline")}function w(e){return document.getElementById(e)||(()=>{const t=document.createElement("div");t.id=e;return(document.querySelector('[role="main"]')||document.body).appendChild(t)})()}async function x(e){if(!h.any(e,$.ldp("contains"),void 0,e.doc())){const t=(await h.fetcher.webOperation("GET",e.uri,h.fetcher.initFetchOptions(e.uri,{headers:{accept:"text/turtle"}}))).responseText;i.parse(t,h,e.uri,"text/turtle")}}async function A(n,r,i){const o=t.createElement("tr");i.hover&&o.setAttribute("class","hoverControl");const s=o.appendChild(t.createElement("td"));s.setAttribute("style","margin: 0.2em; border: none; padding: 0; vertical-align: top;display:flex; justify-content: space-between; flex-direction: row;"),s.setAttribute("notSelectable","true"),s.setAttribute("about",n.toNT()),s.setAttribute("colspan","2");const c=s.appendChild(t.createElement("div"));c.style="display:flex; justify-content: flex-start; align-items: center; flex-wrap: wrap;";const l=!!r;if(!i.solo&&!l){c.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-collapse.png","collapse",void 0,t)).addEventListener("click",L);const e=c.appendChild(t.createElement("h1"));e.appendChild(t.createTextNode(a.utils.label(n))),e.style="font-size: 150%; margin: 0 0.6em 0 0; padding: 0.1em 0.4em;",a.widgets.makeDraggable(e,n)}return c.appendChild(await async function(i,s={}){const c="width: 24px; border-radius: 0.5em; border-top: solid #222 1px; border-left: solid #222 0.1em; border-bottom: solid #eee 0.1em; border-right: solid #eee 0.1em; margin-left: 1em; padding: 3px; background-color: #ffd;",l="width: 24px; border-radius: 0.5em; margin-left: 1em; padding: 3px",u=i.appendChild(t.createElement("nav"));u.style="display:flex; justify-content: flex-start; align-items: center;";const d=s.hideList?[]:await async function(e,t){e.uri.endsWith("/")&&await x(e);const n=t.session.paneRegistry,r=n.list.filter(n=>n.label(e,t)&&!n.global);if(0===r.length)return[n.byName("internal")];const i=await a.login.filterAvailablePanes(r);return 0===i.length?[r[0]]:n.list.indexOf(r[0])<n.list.indexOf(i[0])?[r[0]].concat(i):i}(n,e);o.firstPane=r||function(e,t){return e.find(e=>e.shouldGetFocus&&e.shouldGetFocus(t))||e[0]}(d,n);const p=d.indexOf(o.firstPane);return 1!==d.length&&d.forEach((r,d)=>{const f=r.label(n,e),h="function"==typeof r.icon?r.icon(n,e):r.icon,m=a.utils.AJARImage(h,f,f,t);h instanceof Promise&&h.then(e=>{m.setAttribute("src",e)}).catch(e=>{}),m.style=r===o.firstPane?c:l;!function(r,o){r.addEventListener("click",function(u){let d;for(d=i;d.parentNode&&"TABLE"!==d.nodeName;d=d.parentNode);if("TABLE"!==d.nodeName)throw new Error("outline: internal error.");const p=function(e){for(let n=d.firstChild;n;n=n.nextSibling)void 0!==n.pane&&(e&&n.pane!==e||(n.paneButton&&(n.paneButton.setAttribute("class","paneHidden"),n.paneButton.style=l),E(n),n.pane.requireQueryButton&&d.parentNode.className&&1===f&&t.getElementById("queryButton")&&t.getElementById("queryButton").setAttribute("style","display:none;")))};"paneHidden"===r.getAttribute("class")?(u.shiftKey||p(),function(i){let o;a.log.info("outline: Rendering pane (2): "+i.name);try{o=i.render(n,e,s)}catch(e){o=t.createElement("div"),o.setAttribute("class","exceptionPane");const n=t.createElement("pre");o.appendChild(n),n.appendChild(t.createTextNode(a.utils.stackString(e)))}i.requireQueryButton&&t.getElementById("queryButton")&&t.getElementById("queryButton").removeAttribute("style");const c=d.firstChild.nextSibling,l=t.createElement("tr");l.appendChild(t.createElement("td")).appendChild(o),c?d.insertBefore(l,c):d.appendChild(l),l.pane=i,l.paneButton=r}(o),r.setAttribute("class","paneShown"),r.style=c):(p(o),r.setAttribute("class","paneHidden"),r.style=l);let f=0;for(let e=d.firstChild;e;e=e.nextSibling)e.pane&&e.pane.requireQueryButton&&f++},!1)}(m,r),m.setAttribute("class",d!==p?"paneHidden":"paneShown"),d===p&&(o.paneButton=m),u.appendChild(m)}),u}(s,{hideList:l})),o.firstChild.tabulatorSelect=function(){R(this,!0)},o.firstChild.tabulatorDeselect=function(){R(this,!1)},o}function E(e){const n=e.parentNode,r=n.parentNode,i=t.createElement("table");i.classList.add("placeholderTable"),r.replaceChild(i,n),n.removeChild(e),r.replaceChild(n,i)}this.init=function(){y().outline=this},this.appendAccessIcons=function(e,t,n){if("NamedNode"!==n.termType)return;const r=e.uris(n);r.sort();let i=null;for(let e=0;e<r.length;e++)r[e]!==i&&(i=r[e],p.appendAccessIcon(t,i))},this.appendAccessIcon=function(e,n){if(!n)return"";const r=i.uri.docpart(n);if("http:"!==r.slice(0,5))return"";const o=m.getState(r);let s,l,u;switch(o){case"unrequested":s=c.outlineIcons.src.icon_unrequested,l="fetch",u=j;break;case"requested":s=c.outlineIcons.src.icon_requested,l="fetching",u=B;break;case"fetched":s=c.outlineIcons.src.icon_fetched,u=O,l="loaded";break;case"failed":s=c.outlineIcons.src.icon_failed,l="failed",u=B;break;case"unpermitted":s=c.outlineIcons.src.icon_failed,u=B,l="no perm";break;case"unfetchable":s=c.outlineIcons.src.icon_failed,u=B,l="cannot fetch";break;default:a.log.error("?? state = "+o)}const p=a.utils.AJARImage(s,l,c.outlineIcons.tooltips[s].replace(/[Tt]his resource/,r),t);return p.setAttribute("uri",n),p.addEventListener("click",u),function(e,t){a.log.debug("Button callbacks for "+t+" added");const n=function(n){return function(r){return r.indexOf("#"),!!e&&(!!d.ancestor(e,"DIV")&&(r===t&&(e.src=n,e.title=c.outlineIcons.tooltips[n]),!0))}};m.addCallback("request",n(c.outlineIcons.src.icon_requested)),m.addCallback("done",n(c.outlineIcons.src.icon_fetched)),m.addCallback("fail",n(c.outlineIcons.src.icon_failed))}(p,r),e.appendChild(p),p},this.outlineObjectTD=function(e,n,r,i){const o=t.createElement("td");o.classList.add("obj"),o.setAttribute("notSelectable","false"),o.style.margin="0.2em",o.style.border="none",o.style.padding="0",o.style.verticalAlign="top";return("NamedNode"===e.termType||"BlankNode"===e.termType||"Literal"===e.termType&&e.value.slice&&("ftp://"===e.value.slice(0,6)||"https://"===e.value.slice(0,8)||"http://"===e.value.slice(0,7)))&&(o.setAttribute("about",e.toNT()),o.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-expand-trans.png","expand",void 0,t)).addEventListener("click",N)),o.setAttribute("class","obj"),h.whether(e,a.ns.rdf("type"),a.ns.link("Request"))&&(o.className="undetermined"),n||(n=V),o.appendChild(n(e)),r&&function(e,n,r){const i=a.utils.AJARImage(c.outlineIcons.src.icon_remove_node,"remove",void 0,t);i.addEventListener("click",D),i.node=r,i.setAttribute("about",n.toNT()),i.style.marginLeft="5px",i.style.marginRight="10px",e.appendChild(i)}(o,e,r),o.tabulatorSelect=function(){R(this,!0)},o.tabulatorDeselect=function(){R(this,!1)},o.addEventListener("click",M),o},this.outlinePredicateTD=function(e,n,r,i){const o=t.createElement("TD");let s;switch(o.setAttribute("about",e.toNT()),o.setAttribute("class",i?"pred internal":"pred"),e.termType){case"BlankNode":o.className="undetermined";break;case"NamedNode":s=a.utils.predicateLabelForXML(e,r);break;case"Collection":s=a.utils.predicateLabelForXML(e.elements[0],r)}s=s?s.slice(0,1).toUpperCase()+s.slice(1):"...";const l=t.createElement("TD");l.classList.add("labelTD"),l.setAttribute("notSelectable","true"),l.appendChild(t.createTextNode(s)),o.appendChild(l),l.style.width="100%",o.appendChild(_.construct(t));for(const e in c.outlineIcons.termWidgets){if(!n||!n.AJAR_statement)break;c.outlineIcons.termWidgets[e].filter&&c.outlineIcons.termWidgets[e].filter(n.AJAR_statement,"pred",r)&&_.addIcon(o,c.outlineIcons.termWidgets[e])}return o.tabulatorSelect=function(){R(this,!0)},o.tabulatorDeselect=function(){R(this,!1)},o.addEventListener("click",M),o},this.getDashboard=v,this.getDashboardItems=b,this.showDashboard=async function(e={}){const t=w("GlobalDashboard"),n=y();if(t.childNodes.length>0&&e.pane){n.style.display="none",t.style.display="inherit";const r=t.querySelector(`[data-global-pane-name="${e.pane}"]`);if(r)return void r.click()}const r=await v({selectedTab:e.pane,onClose:a});o.authSession.events.on("logout",a),n.style.display="none",t.appendChild(r);const i=t.querySelector(`[data-global-pane-name="${e.pane}"]`);function a(){t.style.display="none",n.style.display="inherit"}i&&i.click()};const C=this.propertyTable=function(n,r,i,o){return a.log.debug("Property table for: "+n),n=h.canon(n),r?(a.log.info("Re-expand: "+r),r):((r=t.createElement("table")).classList.add("tableFullWidth"),A(n,i,o).then(i=>{if(r.appendChild(i),i.firstPane){let s;try{a.log.info("outline: Rendering pane (1): "+i.firstPane.name),s=i.firstPane.render(n,e,o)}catch(e){s=t.createElement("div"),s.setAttribute("class","exceptionPane");const n=t.createElement("pre");s.appendChild(n),n.appendChild(t.createTextNode(a.utils.stackString(e)))}const c=t.createElement("tr");c.appendChild(t.createElement("td")).appendChild(s),i.firstPane.requireQueryButton&&t.getElementById("queryButton")&&t.getElementById("queryButton").removeAttribute("style"),r.appendChild(c),c.pane=i.firstPane,c.paneButton=i.paneButton}}),r)};function k(e,t,n){const r=e.createElement("TR");r.AJAR_statement=t,r.AJAR_inverse=n,r.setAttribute("predTR","true");const i=p.outlinePredicateTD(t.predicate,r,n);return r.appendChild(i),r}this.propertyTR=k,this.appendPropertyTRs=function(e,n,r,i){if(a.log.debug("Property list length = "+n.length),0===n.length)return"";let o,s,c;r?(o=function(e){return e.subject},n=n.sort(a.utils.RDFComparePredicateSubject)):(o=function(e){return e.object},n=n.sort(a.utils.RDFComparePredicateObject));const l=n.length;for(s=0;s<l;s++){let u=n[s];if(i&&!i(u.predicate,r))continue;const f=k(t,u,r);e.appendChild(f);const m=f.firstChild;let g=W.defaults[u.predicate.uri],v=0,b=0,y=0;for(c=0;c+s<l&&n[s+c].predicate.sameTerm(u.predicate);c++)c>0&&o(n[s+c]).sameTerm(o(n[s+c-1]))&&v++,o(n[s+c]).lang&&d.labeller.LanguagePreference&&(b+=1,o(n[s+c]).lang.indexOf(d.labeller.LanguagePreference)>=0&&y++);if(y>0&&b===v+1){for(let e=s;e<=s+v;e++)if(d.labeller.LanguagePreference&&o(n[e]).lang.indexOf(d.labeller.LanguagePreference)>=0){f.appendChild(p.outlineObjectTD(o(n[e]),g,void 0,u));break}s+=v}else f.appendChild(p.outlineObjectTD(o(u),g,void 0,u)),f.showNobj=function(i){const l=c-v,d=2*i<l?i:l,f=[];if(1!==l){let v;m.setAttribute("rowspan",d===l?l:i+1),d<l&&1===d&&m.setAttribute("rowspan",2);let b=0;for(v=1;v<c;v++)if(h.canon(o(n[s+v])).sameTerm(h.canon(o(n[s+v-1]))))a.log.info("there are duplicates here: %s",n[s+v-1]);else{b++,u=n[s+v],g=W.defaults[u.predicate.uri];const i=t.createElement("tr");i.style.colspan="1",i.appendChild(p.outlineObjectTD(o(n[s+v]),g,void 0,u)),i.AJAR_statement=u,i.AJAR_inverse=r,e.appendChild(i),b>=d&&(i.style.display="none",f.push(i))}d===l&&m.setAttribute("rowspan",b+1)}if(d<l){const n=t.createElement("tr"),r=n.appendChild(t.createElement("td"));if(r.setAttribute("style","margin: 0.2em; border: none; padding: 0; vertical-align: top;"),r.setAttribute("notSelectable","false"),l>i){const e=t.createElement("a");r.appendChild(e);const n=function(n,r,i,o){return function(r){e.innerHTML="","none"===r?(e.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-more-trans.png","more","See all",t)),e.appendChild(t.createTextNode(l-o+" more...")),n.setAttribute("rowspan",o+1)):(e.appendChild(a.utils.AJARImage(a.icons.originalIconBase+"tbl-shrink.png","(less)",void 0,t)),n.setAttribute("rowspan",l+1));for(let e=0;e<f.length;e++)f[e].style.display=r}}(m,0,0,i);let o="none";const s=function(e){return n(o),o="none"===o?"":"none",e&&e.stopPropagation(),!1};s(),e.addEventListener("click",s,!1)}e.appendChild(n)}},f.showAllobj=function(){f.showNobj(c-v)},f.showNobj(10),s+=c-1}};const _={};n.g.termWidget=_,_.construct=function(e){const t=(e=e||document).createElement("TD");return t.setAttribute("style","margin: 0.2em; border: none; padding: 0; vertical-align: top;"),t.setAttribute("class","iconTD"),t.setAttribute("notSelectable","true"),t.style.width="0px",t},_.addIcon=function(e,n,r){const i=e.childNodes[1];if(!i)return;let o=i.style.width;const s=a.utils.AJARImage(n.src,n.alt,n.tooltip,t);o=parseInt(o),o+=n.width,i.style.width=o+"px",i.appendChild(s),r&&s.addEventListener("click",r)},_.removeIcon=function(e,n){const r=e.childNodes[1];let a;if(!r)return;let o=r.style.width;o=parseInt(o),o-=n.width,r.style.width=o+"px";for(let e=0;e<r.childNodes.length;e++){const o=r.childNodes[e],s=o.src;try{a=t.location.href.split("?")[0]}catch(e){a=""}s===i.uri.join(n.src,a)&&r.removeChild(o)}},_.replaceIcon=function(e,t,n,r){_.removeIcon(e,t),_.addIcon(e,n,r)};function S(e){const t=e.getAttribute("class");return!!(t&&t.indexOf("selected")>=0)}function T(e){const t=p.targetOf(e).parentNode;_.replaceIcon(t.parentNode,c.outlineIcons.termWidgets.optOn,c.outlineIcons.termWidgets.optOff,P),t.parentNode.parentNode.removeAttribute("optional")}function P(e){const t=p.targetOf(e).parentNode;_.replaceIcon(t.parentNode,c.outlineIcons.termWidgets.optOff,c.outlineIcons.termWidgets.optOn,T),t.parentNode.parentNode.setAttribute("optional","true")}function F(e,t){const n=c.outlineIcons.termWidgets.optOn,r=c.outlineIcons.termWidgets.optOff;for(let i=e;i.parentNode;i=i.parentNode)for(;;){if(i.getAttribute("predTR")){let e=i.getAttribute("parentOfSelected");e=e?parseInt(e):0,0===e&&t>0&&_.addIcon(i.childNodes[0],i.getAttribute("optional")?n:r,i.getAttribute("optional")?T:P),e+=t,i.setAttribute("parentOfSelected",e),0===e&&(i.removeAttribute("parentOfSelected"),_.removeIcon(i.childNodes[0],i.getAttribute("optional")?n:r));break}if(!i.previousSibling||"TR"!==i.previousSibling.nodeName)break;i=i.previousSibling}}function R(e,t){if("TD"!==e.nodeName)throw a.log.debug("down"+e.nodeName),new Error("Expected TD in setSelected: "+e.nodeName+" : "+e.textContent);a.log.debug("pass");let n=e.getAttribute("class");if(n||(n=""),t){n+=" selected",(n.indexOf("pred")>=0||n.indexOf("obj")>=0)&&F(e,1),f.push(e);const t=a.utils.getTerm(e);p.showURI(t);let r=e.AJAR_statement;if(void 0===r&&e.parentNode&&(r=e.parentNode.AJAR_statement),r){const t=r.why,i=o.store.updater.editable(t.uri,h);i&&n.indexOf("pred")>=0&&_.addIcon(e,c.outlineIcons.termWidgets.addTri)}}else a.log.debug("cla=$"+n+"$"),"selected"===n&&(n=""),n=n.replace(" selected",""),(n.indexOf("pred")>=0||n.indexOf("obj")>=0)&&F(e,-1),n.indexOf("pred")>=0&&_.removeIcon(e,c.outlineIcons.termWidgets.addTri),f=f.filter(function(t){return t===e}),a.log.info("Deselecting "+e.textContent);"undefined"!=typeof sourceWidget&&p.showSource(),e.setAttribute("class",n)}function I(){for(let e=f.length-1;e>=0;e--)R(f[e],!1);f=[]}function N(e){const t=p.targetOf(e),n=t.parentNode,i=a.utils.getAbout(h,t);e.altKey&&r.byName("internal");e.shiftKey?q(n,i):e.altKey?z(n,i,{pane:r.byName("internal"),immediate:!0}):z(n,i)}function L(e){const t=p.targetOf(e),n=a.utils.getAbout(h,t);e.altKey&&r.byName("internal");H(t.parentNode.parentNode,n)}function B(e){const t=p.targetOf(e).getAttribute("uri");e.altKey?m.fetch(i.uri.docpart(t),{force:!0}):m.refresh(h.sym(i.uri.docpart(t)))}function O(e){const t=p.targetOf(e).getAttribute("uri");e.altKey?m.fetch(i.uri.docpart(t),{force:!0}):m.refresh(h.sym(i.uri.docpart(t)))}function j(e){const t=p.targetOf(e).getAttribute("uri");m.fetch(i.uri.docpart(t))}function D(e){const t=p.targetOf(e);let n=t.node;n.childNodes.length>1&&(n=t.parentNode),E(n)}function M(e){if(p.UserInput._tabulatorMode)return p.UserInput.Click(e);const t=p.targetOf(e);let n;for(n=a.utils.ancestor(t,"TD");n&&"false"!==n.getAttribute("notSelectable");n=a.utils.ancestor(n.parentNode,"TD"));if(!n)return;const r=S(n);if(a.log.debug("Was node selected before: "+r),e.altKey)R(n,!S(n));else if(e.shiftKey)R(n,!0);else{if(I(),p.UserInput.clearInputAndSave(e),R(n,!0),2===e.detail)return void e.stopPropagation();let t;if(n.parentNode&&(t=n.parentNode.AJAR_statement),!t)return;const i=t.why,a=o.store.updater.editable(i.uri,h);r&&a&&p.UserInput.Click(e,f[0])}a.log.debug("Was node selected after: "+S(n)+", count="+f.length),e.stopPropagation()}function U(e){t.title=a.utils.label(e),t.location.href.startsWith(e.site().uri)}function z(e,n,r){const o=(r=r||{}).pane;let s=!!r.already;const c=r.immediate;a.log.info("@outlineExpand, dom is now "+t.location),m.removeCallback("done","expand"),m.removeCallback("fail","expand");let l=h.canon(n);function u(){if(l=h.canon(l),!e||!e.parentNode||!e.parentNode.parentNode)return!1;let t;if(a.log.info("@@ REPAINTING "),s){for(a.log.info(" ... p is "+e),t=e.firstChild;t.nextSibling&&(a.log.info(" ... checking node "+t),"table"!==t.nodeName);t=t.nextSibling);t=C(l,t,o,r)}else t=C(l,void 0,o,r);s=!0,a.utils.ancestor(e,"TABLE")&&"white"===a.utils.ancestor(e,"TABLE").style.backgroundColor?t.style.backgroundColor="#eee":t.style.backgroundColor="white",a.utils.emptyNode(e).appendChild(t),p.focusTd=e,a.log.debug("expand: Node for "+l+" expanded");const n=h.each(l,a.ns.rdfs("seeAlso"));for(let e=0;e<n.length;e++)25===e&&a.log.warn("expand: Warning: many ("+n.length+") seeAlso links for "+l),m.lookUpThing(n[e],l)}function d(e){if(arguments[3])return!0;const t=h.canon(l);a.log.info("@@ expand: relevant subject="+t+", uri="+e+", already="+s);const n=h.sym(i.uri.docpart(e));if(e.indexOf("#")>=0)throw new Error("Internal error: hash in "+e);return!function(){if(!t.uri)return!0;const r=h.uris(t);if(!r)return!1;for(let t=0;t<r.length;t++)for(let n=i.uri.docpart(r[t]);n;n=h.HTTPRedirects[n])if(e===n)return!0;return!!h.anyStatementMatching(t,void 0,void 0,n)}()||(a.log.success("@@ expand OK: relevant subject="+t+", uri="+e+", source="+s),u(),!1)}r.solo&&U(l),a.log.debug("outlineExpand: dereferencing "+l);const f=t.createElement("span");e.appendChild(f),m.addCallback("done",d),m.addCallback("fail",d);const v=[];if(l.uri&&"rdf"===l.uri.split(":")[0])u();else{for(let e=0;e<v.length;e++){let t;if(t===v[e](l))return u(),a.log.debug("outline 1815"),void(t[1]&&g.removeChild(g.lastChild))}if(!l.uri||c||a.widgets.isAudio(l)||a.widgets.isVideo(l))u();else{const n=l.doc()&&l.doc().uri?l.doc().uri:""+l.doc(),i=function(r,i){if(e.querySelector&&n){if(e.querySelector('[data-outline-error-for="'+n+'"]'))return}const o=a.widgets.errorMessageBlock(t,r,"#fee",i instanceof Error?i:void 0);n&&o.setAttribute("data-outline-error-for",n),e.appendChild(o)};let o=!1;const s=m.nowOrWhenFetched(l.doc(),void 0,function(e,t){e?(m.lookUpThing(l),u(),r.solo&&U(l)):(o=!0,i(t,void 0))});s&&"function"==typeof s.catch&&s.catch(function(e){o||(o=!0,i(e,e))})}}}function H(e,t){let n,r,i,o,s=a.utils.ancestor(e,"TR");for(s=a.utils.ancestor(s.parentNode,"TR"),s&&(n=s.AJAR_statement),r=e.parentNode;"TD"!==r.tagName;r=r.parentNode)if(void 0===r)return void alert("Not enclosed in TD!");a.log.debug("Collapsing subject "+t),n&&(a.log.debug("looking up pred "+n.predicate.uri+"in defaults"),i=W.defaults[n.predicate.uri]),a.log.debug("view= "+i),"outline"===r.parentNode.parentNode.id&&(o=r.parentNode),p.replaceTD(p.outlineObjectTD(t,i,o,n),r)}function q(e,t){let n=null;for(let t=e.parentNode;t;t=t.parentNode)a.log.debug("level "+t.tagName),"TD"===t.tagName&&(n=t);a.utils.emptyNode(n).appendChild(C(t)),U(t),n.setAttribute("about",t.toNT())}new function(){this.pat=h.formula(),this.vars=[]},this.statusBarClick=function(e){const t=a.utils.getTarget(e);t.label&&(window.content.location=t.label)},this.showURI=function(e){e&&t.getElementById("UserURI")&&(t.getElementById("UserURI").value="NamedNode"===e.termType?e.uri:"")},this.showSource=function(){if("undefined"!=typeof sourceWidget){for(const e in sourceWidget.sources)sourceWidget.sources[e].setAttribute("class","");for(let e=0;e<f.length;e++){if(!f[e].parentNode)continue;const t=f[e].parentNode.AJAR_statement;if(!t)continue;const n=t.why;n&&n.uri&&sourceWidget.highlight(n,!0)}}},this.getSelection=function(){return f},this.targetOf=function(e){let t;if(e||(e=window.event),e.target)t=e.target;else{if(!e.srcElement)return a.log.error("can't get target for event "+e),!1;t=e.srcElement}return 3===t.nodeType&&(t=t.parentNode),t},this.walk=function(e,n){const r=n||f[0];let i;switch(e){case"down":try{i=r.parentNode.nextSibling.lastChild}catch(e){return void this.walk("up")}I(),R(i,!0);break;case"up":try{i=r.parentNode.previousSibling.lastChild}catch(e){return}I(),R(i,!0);break;case"right":if(I(),r.nextSibling||"strong"===r.lastChild.tagName)R(r.nextSibling,!0);else{R(t.evaluate("table/div/tr/td[2]",r,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue,!0)}break;case"left":if(I(),r.previousSibling&&"undetermined"===r.previousSibling.className)return R(r.previousSibling,!0),!0;R(a.utils.ancestor(r.parentNode,"TD"),!0);break;case"moveTo":I(),R(n,!0)}"down"!==e&&"up"!==e||i.tabulatorSelect||this.walk(e)},this.OutlinerKeypressPanel=function(e){function n(e){e&&t.getElementById("UserURI")&&(t.getElementById("UserURI").value="NamedNode"===e.termType?e.uri:"")}function i(e){return arguments[3]||(u("right",l),n(a.utils.getAbout(h,f[0]))),!0}let s,c;if(a.log.info("Key "+e.keyCode+" pressed"),"TEXTAREA"===a.utils.getTarget(e).tagName)return;if("UserURI"===a.utils.getTarget(e).id)return;if(f.length>1)return;if(0===f.length)return void(13!==e.keyCode&&38!==e.keyCode&&40!==e.keyCode&&37!==e.keyCode&&39!==e.keyCode||(this.walk("right",p.focusTd),n(a.utils.getAbout(h,f[0]))));const l=f[0];switch(m.removeCallback("done","setSelectedAfterward"),m.removeCallback("fail","setSelectedAfterward"),e.keyCode){case 13:if("HTML"===a.utils.getTarget(e).tagName){const e=a.utils.getAbout(h,l);s=l.parentNode.AJAR_statement.why,c=o.store.updater.editable(s.uri,h),e?d.GotoSubject(e,!0):c&&p.UserInput.Enter(l)}else this.UserInput.Keypress(e),this.walk("down"),e.stopPropagation();return;case 38:this.walk("up"),e.stopPropagation(),e.preventDefault();break;case 40:this.walk("down"),e.stopPropagation(),e.preventDefault()}if("INPUT"===a.utils.getTarget(e).tagName)return;let u;switch(e.keyCode){case 46:case 8:s=l.parentNode.AJAR_statement.why,c=o.store.updater.editable(s.uri,h),c&&(e.preventDefault(),this.UserInput.Delete(l));break;case 37:{if(this.walk("left"))return;const e=a.utils.ancestor(l.parentNode,"TD");H(l,a.utils.getAbout(h,e));break}case 39:{const e=a.utils.getAbout(h,l);if(e){if(u=this.walk,l.nextSibling)return void this.walk("right");"TABLE"!==l.firstChild.tagName&&(m.addCallback("done",i),m.addCallback("fail",i),z(l,e,{pane:r.byName("defaultPane")})),i()}}break;case 38:case 40:break;default:switch(e.charCode){case 99:if(e.ctrlKey){p.UserInput.copyToClipboard(p.clipboardAddress,l);break}break;case 118:case 112:if(e.ctrlKey){p.UserInput.pasteFromClipboard(p.clipboardAddress,l);break}break;default:a.utils.getTarget(e).tagName}}if(n(a.utils.getAbout(h,f[0])),f[0]){const e=a.utils.findPos(f[0])[1];e+f[0].clientHeight>window.scrollY+window.innerHeight&&a.utils.getEyeFocus(f[0],!0,!0,window),e<window.scrollY+54&&a.utils.getEyeFocus(f[0],!0,void 0,window)}},this.OutlinerMouseclickPanel=function(e){switch(p.UserInput._tabulatorMode){case 0:!function(e){a.log.info("@TabulatorMousedown, dom.location is now "+t.location);const n=p.targetOf(e);if(!n)return;const r=n.tagName;"INPUT"!==r&&"TEXTAREA"!==r&&(p.UserInput.clearMenu(),p.UserInput.lastModified&&p.UserInput.lastModified.parentNode.nextSibling&&p.UserInput.backOut(),(!n.src||n.src.slice(n.src.indexOf("/icons/")+1)!==c.outlineIcons.src.icon_show_choices&&n.src.slice(n.src.indexOf("/icons/")+1)!==c.outlineIcons.src.icon_add_triple)&&p.UserInput.clearInputAndSave(e),n.src&&n.src.slice(n.src.indexOf("/icons/")+1)===c.outlineIcons.src.icon_show_choices||p.UserInput.clearMenu(),e&&e.stopPropagation())}(e);break;case 1:p.UserInput.Click(e)}},this.replaceTD=function(e,t){let n;S(t)&&(n=!0);for(let e=f.length-1;e>-1;e--)for(let n=f[e];n.parentNode;n=n.parentNode)n===t&&R(f[e],!1);t.parentNode.replaceChild(e,t),n&&R(e,!0)},d.outlineRefocus=q,this.GotoFormURI_enterKey=function(e){13===e.keyCode&&d.GotoFormURI(e)},this.GotoFormURI=function(e){!function(e){const t=h.sym(e);this.GotoSubject(t,!0)}(t.getElementById("UserURI").value)},this.GotoURIinit=function(e){const t=h.sym(e);this.GotoSubject(t)},this.GotoSubject=function(e,n,r,i,o,s){s=s||t.getElementById("outline"),i&&(a.utils.emptyNode(s),s.style.width="100%");const c=function(){const n=t.createElement("TR");n.style.verticalAlign="top",s.appendChild(n);const r=p.outlineObjectTD(e,void 0,n);return n.appendChild(r),r}();if(i&&U(e),n){z(c,e,{pane:r,solo:i});const t=c.parentNode;a.utils.getEyeFocus(t,!1,void 0,window)}if(i&&t&&t.defaultView&&t.defaultView.history&&document.location.href!==e.uri){const n=r?{paneName:r.name}:{};try{t.defaultView.history.pushState(n,e.uri,e.uri)}catch(e){}}return e};const $=a.ns,W=(0,s.propertyViews)(t);function V(n){let i;if("Literal"===n.termType){const e={integer:"text-align: right;",decimal:"text-align: '.';",double:"text-align: '.';"};i=t.createElement("span"),i.textContent=n.value;let r="";if(n.datatype&&n.datatype.uri){const t=a.ns.xsd("").uri;n.datatype.uri.slice(0,t.length)===t&&(r=e[n.datatype.uri.slice(t.length)])}i.setAttribute("style",r||"white-space: pre-wrap;")}else if("NamedNode"===n.termType||"BlankNode"===n.termType)if(i=t.createElement("span"),i.setAttribute("about",n.toNT()),p.appendAccessIcons(h,i,n),"NamedNode"===n.termType)if("tel:"===n.uri.slice(0,4)){const e=n.uri.slice(4),r=t.createElement("a");i.appendChild(t.createTextNode(e)),r.setAttribute("href",n.uri),r.appendChild(a.utils.AJARImage(c.outlineIcons.src.icon_telephone,"phone","phone "+e,t)),i.appendChild(r),r.firstChild.setAttribute("class","phoneIcon")}else{i.appendChild(t.createTextNode(a.utils.label(n)));const e=a.widgets.linkIcon(t,n);i.appendChild(e),a.widgets.makeDraggable(i,n)}else i.appendChild(t.createTextNode(a.utils.label(n)));else if("Collection"===n.termType){i=t.createElement("table"),i.classList.add("tableFullWidth"),i.setAttribute("about",n.toNT());for(let e=0;e<n.elements.length;e++){const r=n.elements[e],a=i.appendChild(t.createElement("tr")),o=a.appendChild(t.createElement("td"));o.classList.add("obj"),o.setAttribute("notSelectable","false"),o.setAttribute("about",n.toNT()),o.innerHTML=e+1+")",a.appendChild(p.outlineObjectTD(r))}}else"Graph"===n.termType?(i=r.byName("dataContentPane").statementsAsTables(n.statements,e),i.setAttribute("class","nestedFormula")):(a.log.error("Object "+n+" has unknown term type: "+n.termType),i=t.createTextNode("[unknownTermType:"+n.termType+"]"));return a.log.debug("contents: "+i.innerHTML),i}return this.createTabURI=function(){t.getElementById("UserURI").value=t.URL+"?uri="+t.getElementById("UserURI").value},this.UserInput.setSelected=R,this.UserInput.deselectAll=I,this.UserInput.views=W,this.outlineExpand=z,this};var r=d(n(4059));n(3824);var i=d(n(8230)),a=d(n(500)),o=n(9332),s=n(8071),c=n(7132),l=n(7339),u=d(n(2697));function d(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(d=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}},7132(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.outlineIcons=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));const i=t.outlineIcons={};i.src=[],i.tooltips=[],i.src.icon_expand=r.icons.originalIconBase+"tbl-expand-trans.png",i.src.icon_more=r.icons.originalIconBase+"tbl-more-trans.png",i.src.icon_collapse=r.icons.originalIconBase+"tbl-collapse.png",i.src.icon_internals=r.icons.originalIconBase+"tango/22-emblem-system.png",i.src.icon_instances=r.icons.originalIconBase+"tango/22-folder-open.png",i.src.icon_foaf=r.icons.originalIconBase+"foaf/foafTiny.gif",i.src.icon_social=r.icons.originalIconBase+"social/social.gif",i.src.icon_mb=r.icons.originalIconBase+"microblog/microblog.png",i.src.icon_shrink=r.icons.originalIconBase+"tbl-shrink.png",i.src.icon_rows=r.icons.originalIconBase+"tbl-rows.png",i.src.icon_unrequested=r.icons.originalIconBase+"16dot-blue.gif",i.src.icon_fetched=r.icons.originalIconBase+"16dot-green.gif",i.src.icon_failed=r.icons.originalIconBase+"16dot-red.gif",i.src.icon_requested=r.icons.originalIconBase+"16dot-yellow.gif",i.src.icon_CVPane=r.icons.originalIconBase+"CV.png",i.src.icon_defaultPane=r.icons.originalIconBase+"about.png",i.src.icon_visit=r.icons.originalIconBase+"tango/22-text-x-generic.png",i.src.icon_dataContents=r.icons.originalIconBase+"rdf_flyer.24.gif",i.src.icon_n3Pane=r.icons.originalIconBase+"w3c/n3_smaller.png",i.src.icon_RDFXMLPane=r.icons.originalIconBase+"22-text-xml4.png",i.src.icon_imageContents=r.icons.originalIconBase+"tango/22-image-x-generic.png",i.src.icon_airPane=r.icons.originalIconBase+"1pt5a.gif",i.src.icon_LawPane=r.icons.originalIconBase+"law.jpg",i.src.icon_pushbackPane=r.icons.originalIconBase+"pb-logo.png",i.src.icon_photoPane=r.icons.originalIconBase+"photo_small.png",i.src.icon_tagPane=r.icons.originalIconBase+"tag_small.png",i.src.icon_TinyTag=r.icons.originalIconBase+"tag_tiny.png",i.src.icon_photoBegin=r.icons.originalIconBase+"photo_begin.png",i.src.icon_photoNext=r.icons.originalIconBase+"photo_next.png",i.src.icon_photoBack=r.icons.originalIconBase+"photo_back.png",i.src.icon_photoEnd=r.icons.originalIconBase+"photo_end.png",i.src.icon_photoImportPane=r.icons.originalIconBase+"flickr_small.png",i.src.icon_retract=r.icons.originalIconBase+"retract.gif",i.src.icon_refresh=r.icons.originalIconBase+"refresh.gif",i.src.icon_optoff=r.icons.originalIconBase+"optional_off.PNG",i.src.icon_opton=r.icons.originalIconBase+"optional_on.PNG",i.src.icon_map=r.icons.originalIconBase+"compassrose.png",i.src.icon_retracted=i.src.icon_unrequested,i.src.icon_retracted=i.src.icon_unrequested,i.src.icon_time=r.icons.originalIconBase+"icons/Wclocksmall.png",i.src.icon_telephone=r.icons.originalIconBase+"silk/telephone.png",i.src.icon_time=r.icons.originalIconBase+"Wclocksmall.png",i.src.icon_remove_node=r.icons.originalIconBase+"tbl-x-small.png",i.src.icon_add_triple=r.icons.originalIconBase+"tango/22-list-add.png",i.src.icon_add_new_triple=r.icons.originalIconBase+"tango/22-list-add-new.png",i.src.icon_show_choices=r.icons.originalIconBase+"userinput_show_choices_temp.png",i.src.icon_display_reasons=r.icons.originalIconBase+"tango/22-help-browser.png",i.tooltips[i.src.icon_display_reasons]="Display explanations",i.tooltips[i.src.icon_add_triple]="Add more",i.tooltips[i.src.icon_add_new_triple]="Add one",i.tooltips[i.src.icon_remove_node]="Remove",i.tooltips[i.src.icon_expand]="View details.",i.tooltips[i.src.icon_collapse]="Hide details.",i.tooltips[i.src.icon_shrink]="Shrink list.",i.tooltips[i.src.icon_internals]="Under the hood",i.tooltips[i.src.icon_instances]="List",i.tooltips[i.src.icon_foaf]="Friends",i.tooltips[i.src.icon_rows]="Make a table of data like this",i.tooltips[i.src.icon_unrequested]="Fetch this.",i.tooltips[i.src.icon_fetched]="Fetched successfully.",i.tooltips[i.src.icon_failed]="Failed to load. Click to retry.",i.tooltips[i.src.icon_requested]="This is being fetched. Please wait...",i.tooltips[i.src.icon_visit]="View document",i.tooltips[i.src.icon_retract]="Remove this source and all its data from tabulator.",i.tooltips[i.src.icon_refresh]="Refresh this source and reload its triples.",i.OutlinerIcon=function(e,t,n,r,i){return this.src=e,this.alt=n,this.width=t,this.tooltip=r,this.filter=i,this},i.termWidgets={},i.termWidgets.optOn=new i.OutlinerIcon(i.src.icon_opton,20,"opt on","Make this branch of your query mandatory."),i.termWidgets.optOff=new i.OutlinerIcon(i.src.icon_optoff,20,"opt off","Make this branch of your query optional."),i.termWidgets.addTri=new i.OutlinerIcon(i.src.icon_add_triple,18,"add tri","Add one")},8071(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.propertyViews=function(e){const t={properties:[],defaults:[],classes:[]},n=(0,i.default)(e),o=(0,a.default)(e);return s(t,r.ns.foaf("depiction").uri,n,!0),s(t,r.ns.foaf("img").uri,n,!0),s(t,r.ns.foaf("thumbnail").uri,n,!0),s(t,r.ns.foaf("logo").uri,n,!0),s(t,r.ns.schema("image").uri,n,!0),s(t,r.ns.foaf("mbox").uri,o,!0),t},t.viewsAddPropertyView=s;var r=n(500),i=o(n(3660)),a=o(n(6357));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t,n,r){e.properties[t]||(e.properties[t]=[]),e.properties[t].push(n),r&&(e.defaults[t]=n)}},2697(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuerySource=function(){this.queries=[],this.listeners=[],this.addQuery=function(e){let t;for(null!==e.name&&""!==e.name||(e.name="Query #"+(this.queries.length+1)),e.id=this.queries.length,this.queries.push(e),t=0;t<this.listeners.length;t++)null!==this.listeners[t]&&this.listeners[t].addQuery(e)},this.removeQuery=function(e){let t;for(t=0;t<this.listeners.length;t++)null!==this.listeners[t]&&this.listeners[t].removeQuery(e);null!==this.queries[e.id]&&delete this.queries[e.id]},this.addListener=function(e){let t;for(this.listeners.push(e),t=0;t<this.queries.length;t++)null!==this.queries[t]&&e.addQuery(this.queries[t])},this.removeListener=function(e){let t;for(t=0;t<this.queries.length;t++)null!==this.queries[t]&&e.removeQuery(this.queries[t]);for(t=0;t<this.listeners.length;t++)this.listeners[t]===e&&delete this.listeners[t]}},t.makeQueryRow=l,t.viewAndSaveQuery=function(e,t){const n=e.qs;i.log.info("outline.doucment is now "+e.document.location);const r=function(e,t){const n=new a.Query,r=e.length;let o,s,c,u;for(o=0;o<r;o++)s=e[o],u=s.parentNode,c=u.AJAR_statement,i.log.debug("Statement "+c),s.getAttribute("class").indexOf("pred")>=0&&(i.log.info(" We have a predicate"),l(n,u)),s.getAttribute("class").indexOf("obj")>=0&&(i.log.info(" We have an object"),l(n,u,!0));function d(e){const t=e.statements.length;let n,r;for(let i=0;i<t;i++)n=e.statements[i],r=n.tr,void 0!==r&&(r.AJAR_pattern=null,r.AJAR_variable=null);for(const t in e.optional)d(e.optional[t])}return t.addQuery(n),d(n.pat),n}(t,n);for(let e=0;e<n.listeners.length;e++)n.listeners[e].getActiveView().view.drawQuery(r),n.listeners[e].updateQueryControls(n.listeners[e].getActiveView())};var r=n(9332),i=o(n(500)),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=[];function c(e){let t=e;for(;;){if(t.getAttribute("predTR"))return t;if(!t.previousSibling||"TR"!==t.previousSibling.nodeName)return e;t=t.previousSibling}}function l(e,t,n){const o=t.AJAR_inverse;let u,d,p;let f=null;for(d=t.parentNode;d;d=d.parentNode)if(void 0!==d.AJAR_statement){d.setAttribute("bla",d.AJAR_statement),d.AJAR_variable||l(e,d),u=d.AJAR_variable;const t=c(d);t.getAttribute("optionalSubqueriesIndex")&&(f=t.getAttribute("optionalSubqueriesIndex"),p=s[f]);break}p||(p=e.pat);const h=c(t),m=h.getAttribute("optional");if(m||(f?h.setAttribute("optionalSubqueriesIndex",f):h.removeAttribute("optionalSubqueriesIndex")),m){const e=r.store.formula();s.push(e),h.setAttribute("optionalSubqueriesIndex",s.length-1),p.optional.push(e),p=e}const g=t.AJAR_statement,v=t.AJAR_inverse?g.subject:g.object;let b=!0;v.isBlank&&n&&window.alert("You cannot constrain a query with a blank node. No constraint will be added."),u||(b=!1,u=o?g.object:g.subject);const y=t.AJAR_variable?t.AJAR_variable:r.store.variable(i.utils.newVariableName());e.vars.push(y),y.label=b?u.label:i.utils.label(u),y.label+=" "+i.utils.predicateLabelForXML(g.predicate,o);const w=(x=y,A=u,o?new a.Statement(x,g.predicate,A):new a.Statement(A,g.predicate,x));var x,A;return y.label=y.label.slice(0,1).toUpperCase()+y.label.slice(1),n&&(p.constraints[y]=new function(e){return this.describe=function(t){return t+" = "+e.toNT()},this.test=function(t){return e.sameTerm(t)},this}(v)),i.log.info("Pattern: "+w),w.tr=t,t.AJAR_pattern=w,t.AJAR_variable=y,i.log.debug("Query pattern: "+w),p.statements.push(w),y}},7339(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserInput=function e(t){const n=t.document;this.menuId="predicateMenu1";const s=function(e){},u=r.ns.rdf,d=o.Namespace("http://purl.org/ontology/bibo/"),p=o.Namespace("http://purl.org/dc/elements/1.1/");let f=!1;c||(c=new o.Formula,c.superFormula=i.store);l||(l=new o.IndexedFormula);l.name="TempFormula",i.store.updater||(i.store.updater=new o.UpdateManager(i.store));return{sparqler:i.store.updater,lastModified:null,lastModifiedStat:null,statIsInverse:!1,addNewPredicateObject:function(e){if("bottom-border-active"!==r.utils.getTarget(e).className)return;const a=t.UserInput,s=r.utils.getTarget(e),c=n.createElement("tr");r.utils.ancestor(s,"DIV").insertBefore(c,r.utils.ancestor(s,"TR"));const l=n.createElement("tr"),u=a.generateRequest("(TBD)",l,!0);c.appendChild(l.firstChild);const d=a.generateRequest("(Enter text or drag an object onto this field)",l,!1);if(c.appendChild(l.firstChild),r.utils.ancestor(s,"TR").previousSibling&&r.utils.ancestor(s,"TR").previousSibling.AJAR_statement){const e=r.utils.ancestor(s,"TR").previousSibling.AJAR_statement;a.formUndetStat(c,e.subject,u,d,e.why,!1)}else{const e=r.utils.getAbout(i.store,r.utils.ancestor(s.parentNode.parentNode,"TD")),t=i.store.sym(o.Util.uri.docpart(e.uri));a.formUndetStat(c,e,u,d,t,!1)}t.walk("moveTo",c.firstChild),r.log.info("addNewPredicateObject: selection = "+t.getSelection().map(function(e){return e.textContent}).join(", ")),this.startFillInText(t.getSelection()[0])},addNewObject:function(e){const n=r.utils.getTarget(e).parentNode.parentNode,i=n.parentNode.AJAR_inverse;this.lastModifiedStat=n.parentNode.AJAR_statement;const a=this.appendToPredicate(n),o=this.generateRequest(" (Error) ",a,!1),s=a.previousSibling.AJAR_statement;i?this.formUndetStat(a,o,s.predicate,s.object,s.why,!0):this.formUndetStat(a,s.subject,s.predicate,o,s.why,!1),t.walk("moveTo",a.lastChild),this.startFillInText(a.lastChild)},Delete:function(e){this.deleteTriple(e,!1)},Enter:function(e){this.literalModification(e)},Click:function(e){const t=r.utils.getTarget(e);"Literal"===r.utils.getTerm(t).termType&&(this.literalModification(t),e.preventDefault(),e.stopPropagation())},pasteFromClipboard:function(e,n){function i(e){const n=t.clipboard[e].shift();if(null!==n){switch(e){case"predicates":case"objects":{const e=t.clipboard.all;for(let t=0;;t++)if(n.sameTerm(e[t])){e.splice(t,1);break}break}case"all":throw new Error("hostorical code not understood - what is theCollection?")}return n}r.log.warn("no more element in clipboard!")}let a;switch(n.className){case"undetermined selected":if(a=n.nextSibling?i("predicates"):i("objects"),!a)return;break;case"pred selected":if(a=i("objects"),!a)return;break;case"selected":{const e=i("all");if(!e)return;return a=e[0],void this.insertTermTo(n,a,e[1])}}this.insertTermTo(n,a)},startFillInText:function(e){switch(this.whatSortOfEditCell(e)){case"DatatypeProperty-like":r.utils.emptyNode(e),this.lastModified=this.createInputBoxIn(e," (Please Input) "),this.lastModified.isNew=!1,this.lastModified.select();break;case"predicate":this.performAutoCompleteEdit(e,"PredicateAutoComplete");break;case"ObjectProperty-like":case"no-idea":this.performAutoCompleteEdit(e,"GeneralAutoComplete")}},literalModification:function(e){if(r.log.debug("entering literal Modification with "+e+e.textContent),-1!==e.className.indexOf(" pendingedit"))return r.log.warn("The node you attempted to edit has a request still pending.\nPlease wait for the request to finish (the text will turn black)\nbefore editing this node again."),!0;const t=e;if(!this.getStatementAbout(t))return;let a,o,s;try{a=r.utils.getTerm(t),o=r.utils.ancestor(t,"TR")}catch(n){r.log.warn("userinput.js: "+n+r.utils.getAbout(i.store,e)),r.log.error(t+" getStatement Error:"+n)}try{s=o.lastChild}catch(e){r.log.error(e+"@"+t)}if("Literal"===a.termType){if(s.removeChild(s.firstChild),a.value.match("\n")){const e=n.createElement("textarea");e.appendChild(n.createTextNode(a.value)),e.setAttribute("rows",(a.value.match(/\n/g).length+1).toString()),e.setAttribute("cols","100"),e.setAttribute("class","textinput"),s.appendChild(e),this.lastModified=e}else this.lastModified=this.createInputBoxIn(s,a.value);this.lastModified.isNew=!1,this.lastModified.select()}return!0},performAutoCompleteEdit:function(e,t){r.utils.emptyNode(e),this.lastModified=this.createInputBoxIn(e,""),this.lastModified.select(),this.lastModified.addEventListener("keypress",this.getAutoCompleteHandler(t),!1),this.getAutoCompleteHandler(t)(1)},backOut:function(){this.deleteTriple(this.lastModified.parentNode,!0),this.lastModified=null},clearMenu:function(){const e=n.getElementById(this.menuID);e&&e.parentNode.removeChild(e)},clearInputAndSave:function(e){let n;if(!this.lastModified)return;if(!this.lastModified.isNew)try{n=this.getStatementAbout(this.lastModified).object}catch(e){return}let s,c,l,d,p=this.lastModifiedStat;if(this.lastModified.value!==this.lastModified.defaultValue){let c;if(""===this.lastModified.value)return this.lastModified.value=this.lastModified.defaultValue,void this.clearInputAndSave();if(this.lastModified.isNew){p=new o.Statement(p.subject,p.predicate,i.store.literal(this.lastModified.value),p.why),s=this.views.defaults[p.predicate.uri],c=r.utils.ancestor(this.lastModified,"TR");try{i.store.updater.update([],[p],function(e,n,i){n||(r.log.error("Error occurs while inserting "+p+"\n\n"+i+"\n"),t.UserInput.deleteTriple(c.lastChild,!0))})}catch(e){return void r.log.error("Error inserting fact "+p+":\n\t"+e+"\n")}p=i.store.add(p.subject,p.predicate,i.store.literal(this.lastModified.value),p.why)}else{if(this.statIsInverse)return r.log.error("Invalid Input: a literal can't be a subject in RDF/XML"),void this.backOut();let s,l,d;switch(n.termType){case"Literal":{const t=this.lastModified.value;c=r.utils.ancestor(this.lastModified,"TR");const a=this.lastModified.defaultValue;l=o.st(p.subject,p.predicate,i.store.literal(this.lastModified.value),p.why);try{i.store.updater.update([p],[l],function(e,i,o){i?n.value=t:(r.log.warn("Error occurs while editing "+p+"\n\n"+o),c.lastChild.textContent=a),c.lastChild.className=c.lastChild.className.replace(/ pendingedit/g,"")})}catch(e){return void r.log.warn("Error occurs while editing "+p+":\n\t"+e)}break}case"BlankNode":{const n=i.store.literal(this.lastModified.value,"");if("Collection"!==p.predicate.termType)return void this.fillInRequest("object",this.lastModified.parentNode,i.store.literal(this.lastModified.value));{const f=p.predicate.elements[0];if(i.store.any(void 0,f,n)){if(!e){const t=this.lastModified.parentNode;(e={}).pageX=r.utils.findPos(t)[0],e.pageY=r.utils.findPos(t)[1]+t.clientHeight}this.showMenu(e,"DidYouMeanDialog",void 0,{dialogTerm:i.store.any(void 0,f,n),bnodeTerm:p.subject})}else{s=r.utils.ancestor(r.utils.ancestor(this.lastModified,"TR").parentNode,"TR").AJAR_statement,l=o.st(p.subject,f,n,p.why);const a=i.store.the(p.subject,u("type"));d=i.store.anyStatementMatching(p.subject,u("type"),a,p.why),c=r.utils.ancestor(r.utils.ancestor(this.lastModified,"TR"),"TD").parentNode;try{i.store.updater.update([],[s,l,d],function(e,n,r){n||t.UserInput.deleteTriple(c.lastChild,!0)})}catch(e){return}i.store.remove(p),i.store.add(p.subject,f,n,p.why)}const h=r.utils.ancestor(this.lastModified.parentNode.parentNode,"TD"),m=a.byName("default");t.outlineExpand(h,p.subject,{pane:m,already:!0}),t.walk("right",t.focusTd)}break}}}}else{if(this.lastModified.isNew)return c=r.utils.ancestor(this.lastModified,"TR"),l=this.generateRequest("(To be determined. Re-type of drag an object onto this field)"),d=c.previousSibling.AJAR_statement,this.formUndetStat(c,d.subject,d.predicate,l,d.why,!1),void(this.lastModified=null);if("Collection"===p.predicate.termType){i.store.removeMany(p.subject);const e=r.utils.ancestor(r.utils.ancestor(this.lastModified,"TR").parentNode,"TR");return d=e.AJAR_statement,l=this.generateRequest("(To be determined. Re-type of drag an object onto this field)"),this.formUndetStat(e,d.subject,d.predicate,l,d.why,!1),t.replaceTD(t.outlineObjectTD(l,s),e.lastChild),void(this.lastModified=null)}if(this.statIsInverse){if("BlankNode"===p.subject.termType)return void this.backOut()}else if("BlankNode"===p.object.termType)return void this.backOut()}c=r.utils.ancestor(this.lastModified,"TR"),this.statIsInverse?t.replaceTD(t.outlineObjectTD(p.subject,s),c.lastChild):t.replaceTD(t.outlineObjectTD(i.store.literal(this.lastModified.value),s),c.lastChild),this.lastModified.value!==this.lastModified.defaultValue&&(c.lastChild.className+=" pendingedit"),this.lastModified=null},deleteTriple:function(e,n){if(r.log.debug("deleteTriple entered"),!n&&-1!==e.className.indexOf(" pendingedit"))return void t.walk("up");const a=this.getStatementAbout(e);if(!(n||i.store.whether(a.object,u("type"),r.ns.link("Request"))||i.store.whether(a.predicate,u("type"),r.ns.link("Request"))||i.store.whether(a.subject,u("type"),r.ns.link("Request")))){r.log.debug("about to send SPARQLUpdate");try{i.store.updater.update([a],[],function(t,n,r){n?s():e.className=e.className.replace(/ pendingedit/g,"")}),e.className+=" pendingedit"}catch(e){return r.log.error(e),void r.log.warn("Error deleting statement "+a+":\n\t"+e)}r.log.debug("SPARQLUpdate sent")}r.log.debug("about to remove "+a),r.log.debug("removed"),t.walk("up");const o=e.parentNode;function s(){let e,t;for(e=o;1===e.childNodes.length;e=e.previousSibling);if(e===o){const n=e.nextSibling;n.nextSibling&&1===n.childNodes.length&&(t=e.firstChild,t.setAttribute("rowspan",parseInt(t.getAttribute("rowspan"))-1),n.insertBefore(e.firstChild,n.firstChild)),o.parentNode.removeChild(o)}else t=e.firstChild,t.setAttribute("rowspan",parseInt(t.getAttribute("rowspan"))-1),o.parentNode.removeChild(o)}n&&s()},clipboardInit:function(){t.clipboard={},t.clipboard.objects=[],t.clipboard.predicates=[],t.clipboard.all=[]},copyToClipboard:function(e,n){const i=r.utils.getTerm(n);switch(n.className){case"selected":case"obj selected":t.clipboard.objects.unshift(i);break;case"pred selected":case"pred internal selected":t.clipboard.predicates.unshift(i)}t.clipboard.all.unshift(i)},insertTermTo:function(e,a,o){let s,l;switch(e.className){case"undetermined selected":s=this.views.defaults[e.parentNode.AJAR_statement.predicate.uri],this.fillInRequest(e.nextSibling?"predicate":"object",e,a);break;case"pred selected":{const n=this.appendToPredicate(e);l=e.parentNode.AJAR_statement,s=this.views.defaults[l.predicate.uri],n.appendChild(t.outlineObjectTD(a,s));const o=e.parentNode.AJAR_inverse;o?n.AJAR_statemnet=i.store.add(a,l.predicate,l.object,l.why):n.AJAR_statement=i.store.add(l.subject,l.predicate,a,l.why);try{i.store.updater.update([],[n.AJAR_statement],function(e,t,i){t||r.log.error("userinput.js (pred selected): Fail trying to insert statement "+n.AJAR_statement+": "+i)})}catch(e){return void r.log.error("Exception trying to insert statement "+n.AJAR_statement+": "+r.utils.stackString(e))}n.AJAR_inverse=o,c.statements.push(n.AJAR_statement);break}case"selected":{const i=r.utils.ancestor(e,"TABLE").lastChild,s=i.insertBefore(n.createElement("tr"),i.lastChild);if(l=s.previousSibling.AJAR_statement,void 0===o&&(o=!0),o)this.formUndetStat(s,l.subject,this.generateRequest("(TBD)",s,!0),a,l.why,!1),s.appendChild(t.outlineObjectTD(a)),t.walk("moveTo",s.firstChild),this.startFillInText(s.firstChild);else{const e=this.generateRequest("(To be determined. Re-type of drag an object onto this field)",s);this.formUndetStat(s,l.subject,a,e,l.why,!1),s.insertBefore(t.outlinePredicateTD(a,s,!1,!1),s.firstChild),t.walk("moveTo",s.lastChild),this.startFillInText(s.lastChild)}break}}},Refill:function(e,t){r.log.info("Refill"+t.textContent);const n=t.nextSibling;let a;if(n){let s,c,l;if("undetermined"===t.nextSibling.className){s=r.utils.getAbout(i.store,r.utils.ancestor(t,"TABLE").parentNode),c=i.store.any(s,u("type")),l=[];const e=".\n";l[0]="SELECT ?pred WHERE{\n?pred "+u("type")+u("Property")+".\n?pred "+r.ns.rdfs("domain")+c+".}",l[1]="SELECT ?pred ?class\nWHERE{\n?pred "+u("type")+u("Property")+".\n"+c+r.ns.rdfs("subClassOf")+" ?class.\n?pred "+r.ns.rdfs("domain")+" ?class.\n}",l[2]="SELECT ?pred WHERE{\n"+s+u("type")+i.store.variable("subjectClass")+e+i.store.variable("pred")+r.ns.rdfs("domain")+i.store.variable("subjectClass")+e+"}",a=l.map(o.SPARQLToQuery)}else{s=r.utils.getAbout(i.store,r.utils.ancestor(t,"TABLE").parentNode),c=i.store.any(s,u("type"));const e=t.parentNode.AJAR_statement.object;l="SELECT ?pred WHERE{"+s+u("type")+"?subjectClass.\n"+e+u("type")+"?objectClass.\n?pred "+r.ns.rdfs("domain")+"?subjectClass.\n?pred "+r.ns.rdfs("range")+"?objectClass.\n}",a=o.SPARQLToQuery(l)}this.showMenu(e,"GeneralPredicateChoice",a,{isPredicate:n,selectedTd:t})}else{const a=t.parentNode.AJAR_statement.predicate;if((i.store.whether(a,u("type"),r.ns.owl("DatatypeProperty"))||"Collection"===a.termType||i.store.whether(a,r.ns.rdfs("range"),r.ns.rdfs("Literal")))&&(t.className="",r.utils.emptyNode(t),this.lastModified=this.createInputBoxIn(t," (Please Input) "),this.lastModified.isNew=!1,this.lastModified.select()),t.parentNode.AJAR_statement.predicate.sameTerm(u("type"))){const i="SELECT ?class WHERE{?class "+u("type")+r.ns.rdfs("Class")+".}",a=o.SPARQLToQuery(i);this.showMenu(e,"TypeChoice",a,{isPredicate:n,selectedTd:t})}}},getAutoCompleteHandler:function(e){let a;return"PredicateAutoComplete"===e?e="predicate":"JournalTAC"!==e&&(e="all"),a="JournalTAC"===e?n.getElementById("inpid_journal_title"):this.lastModified||t.getSelection()[0].firstChild,a.value,function(o){const s={},c=a.parentNode;e||(e=c.nextSibling?"predicate":"all"),s.pageX=r.utils.findPos(c)[0],s.pageY=r.utils.findPos(c)[1]+c.clientHeight,s.pageX,s.pageY;let l=n.getElementById(t.UserInput.menuID);function u(e){e&&(l.lastHighlight&&(l.lastHighlight.className=""),l.lastHighlight=e,l.lastHighlight.className="activeItem",t.showURI(r.utils.getAbout(i.store,l.lastHighlight)))}if(o){let d=a.value;if("object"==typeof o)switch(o.keyCode,o.stopPropagation(),l&&!l.lastHighlight&&u(l.firstChild.firstChild),o.keyCode){case 13:case 9:if(!l)return void t.UserInput.clearInputAndSave();if(!l.lastHighlight)return"JournalTAC"===e?(t.UserInput.clearMenu(),"no lastH"):void 0;if("INPUT"===l.lastHighlight.tagName)switch(l.lastHighlight.value){case"New...":t.UserInput.createNew();break;case"GiveURI":t.UserInput.inputURI()}else{if("JournalTAC"===e){if(f&&l.lastHighlight){const e=l.lastHighlight.firstChild.firstChild.innerHTML;let t=l.lastHighlight.firstChild.nextSibling.innerHTML;return t=t.slice(4,-4),["gotdptitle",e,t]}return"asGivenTxt"}const n=r.utils.getAbout(i.store,l.lastHighlight),o="predicate"===e?"predicate":"object";t.UserInput.clearMenu(),t.UserInput.fillInRequest(o,a.parentNode,n)}return;case 38:return f=!0,""!==d||"TR"!==l.lastHighlight.tagName||l.lastHighlight.previousSibling?u(l.lastHighlight.previousSibling):u(l.firstChild.firstChild),"I'm a little Arrow Up";case 40:return f=!0,"INPUT"===l.lastHighlight.tagName?u(l.childNodes[1].firstChild):u(l.lastHighlight.nextSibling),"I'm a little Down Arrow";case 37:case 39:return void("INPUT"===l.lastHighlight.tagName&&(37===o.keyCode?u(l.lastHighlight.previousSibling):u(l.lastHighlight.nextSibling)));case 8:d=d.slice(0,-1);break;case 27:return l?void t.UserInput.clearMenu():void t.UserInput.backOut();default:f=!1,d+=String.fromCharCode(o.charCode),o.charCode,String.fromCharCode(o.charCode)}if("all"===e?(t.UserInput.clearMenu(),t.UserInput.showMenu(s,"GeneralAutoComplete",void 0,{inputText:d,selectedTd:c}),0===d.length&&t.UserInput.WildCardButtons()):"predicate"===e?(t.UserInput.clearMenu(),t.UserInput.showMenu(s,"PredicateAutoComplete",void 0,{inputText:d,isPredicate:!0,selectedTd:c})):"JournalTAC"===e&&(t.UserInput.clearMenu(),t.UserInput.showMenu(s,"JournalTitleAutoComplete",void 0,{inputText:d},"orderisuseless")),l=n.getElementById(t.UserInput.menuID),!l)return;return u(l.firstChild.firstChild),t.showURI(r.utils.getAbout(i.store,l.lastHighlight)),"nothing to return"}}},WildCardButtons:function(){const e=n.getElementById(t.UserInput.menuID),i=e.insertBefore(n.createElement("div"),e.firstChild),a=i.appendChild(n.createElement("input")),o=i.appendChild(n.createElement("input"));a.type="button",a.value="New...",o.type="button",o.value="Know its URI",i.addEventListener("mouseover",function(e){const i=n.getElementById(t.UserInput.menuID);i.lastHighlight&&(i.lastHighlight.className=""),i.lastHighlight=r.utils.ancestor(r.utils.getTarget(e),"INPUT"),i.lastHighlight&&(i.lastHighlight.className="activeItem")},!1),a.addEventListener("click",this.createNew,!1),o.addEventListener("click",this.inputURI,!1)},Keypress:function(e){if(13===e.keyCode)if("TEXTAREA"!==t.targetOf(e).tagName)this.clearInputAndSave();else{const t=parseInt(this.lastModified.getAttribute("rows"));this.lastModified.setAttribute("rows",(t+1).toString()),e.stopPropagation()}},Mousedown:function(t){window.addEventListener("keypress",function(t){!t.ctrlKey||115!==t.charCode&&113!==t.charCode||e.switchMode()},!1),window.addEventListener("mousedown",e.Mousedown,!1),document.getElementById("outline").oncontextmenu=function(){return!1},2===t.button&&(e.switchMode(),t&&(t.preventDefault(),t.stopPropagation()))},Mouseover:function(e){if(this.className="bottom-border-active",1===this._tabulatorMode)switch(r.utils.getTarget(e).tagName){case"TD":{const t=r.utils.getTarget(e);"pred"===t.className&&(t.style.cursor="copy");break}case"DIV":{const t=r.utils.getTarget(e);"bottom-border"===r.utils.getTarget(e).className&&(t.style.borderColor="rgb(100%,65%,0%)",t.style.cursor="copy");break}}},Mouseout:function(e){if(this.className="bottom-border",1===this._tabulatorMode){const t=r.utils.getTarget(e);"bottom-border"===r.utils.getTarget(e).className&&(t.style.borderColor="transparent",t.style.cursor="auto")}},whatSortOfEditCell:function(e){if(e.nextSibling)return"predicate";const t=this.getStatementAbout(e).predicate;return i.store.whether(t,r.ns.rdf("type"),r.ns.owl("DatatypeProperty"))||i.store.whether(t,r.ns.rdfs("range"),r.ns.rdfs("Literal"))||"Collection"===t.termType?"DatatypeProperty-like":i.store.whether(t,u("type"),r.ns.owl("ObjectProperty"))?"ObjectProperty-like":"no-idea"},getStatementAbout:function(e){const t=r.utils.ancestor(e,"TR");if(!t)throw new Error("No ancestor TR for the TD we clicked on:"+e);let n;try{n=t.AJAR_statement}catch(n){throw new Error("No AJAR_statement!"+e+e.textContent+" has ancestor "+t)}return this.lastModifiedStat=t.AJAR_statement,this.statIsInverse=t.AJAR_inverse,n},createInputBoxIn:function(e,i){r.log.info("myDocument in createInputBoxIn is now "+n.location),r.log.info("outline.document is now "+t.document.location);const a=n.createElement("input");return a.setAttribute("value",i),a.setAttribute("class","textinput"),"undetermined selected"!==e.className&&(a.setAttribute("size","100"),a.addEventListener("keypress",function(e){38!==e.keyCode&&40!==e.keyCode||(t.OutlinerKeypressPanel(e),t.UserInput.clearInputAndSave())},!1)),e.appendChild(a),a},createNew:function(e){t.UserInput.clearMenu();const n=t.getSelection()[0],r=n.parentNode.AJAR_statement.why,a=i.store.nextSymbol(r);t.UserInput.fillInRequest("object",n,a),t.outlineExpand(t.getSelection()[0],a)},inputURI:function(e){const n=t.UserInput;n.clearMenu();const a=t.getSelection()[0];r.utils.emptyNode(a);const o=" (Type a URI) ";n.lastModified=n.createInputBoxIn(a,o),n.lastModified.select(),n.lastModified.addEventListener("keypress",function(e){switch(e.stopPropagation(),e.keyCode){case 13:case 9:if(this.value!==o){const e=this.value;n.fillInRequest("object",a,i.store.sym(e))}}},!1)},appendToPredicate:function(e){let t,r=!1;try{for(t=e.parentNode.nextSibling;1===t.childNodes.length&&t.AJAR_statement;t=t.nextSibling);}catch(e){r=!0}const i=n.createElement("tr");if(i.style.colspan="1",i.style.display="block",i.style.display="",e.hasAttribute("rowspan")&&e.setAttribute("rowspan",parseInt(e.getAttribute("rowspan"))+1),e.hasAttribute("rowspan")||e.setAttribute("rowspan","2"),r){const t=e.parentNode.parentNode;"defaultPane"===t.className?t.insertBefore(i,t.lastChild):t.appendChild(i)}else t.parentNode.insertBefore(i,t);return i},bnode2symbol:function(e,t){i.store.copyTo(e,t,["two-direction","delete"])},generateRequest:function(e,n,i,a){let o;a||(o=n||r.utils.ancestor(this.lastModified,"TR"),r.utils.emptyNode(o));const s=l,c=s.bnode();if(s.add(c,r.ns.rdf("type"),r.ns.link("Request")),e.length,s.add(c,r.ns.link("message"),s.literal(e)),s.add(c,r.ns.link("to"),s.literal("The User")),s.add(c,r.ns.link("from"),s.literal("The User")),!a){let n;n=i?o.appendChild(t.outlinePredicateTD(c,o,!1,!1)):o.appendChild(t.outlineObjectTD(c)),n.className="undetermined",n.textContent=e}return c},showMenu:function(e,a,c,l,f){r.log.info("myDocument is now "+n.location),r.log.info("outline.doucment is now "+t.document.location);const h=this,m=n.createElement("div");if(l)for(const e in l);m.id=this.menuID,m.className="outlineMenu",m.style.top=e.pageY+"px",m.style.left=e.pageX+"px";if("JournalTitleAutoComplete"===a){const e=function(e){let t=0,n=0,r=0,i=0,a=0,o=0;for(;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)a=e.offsetLeft,o=e.offsetTop,a!==r&&(t+=e.offsetLeft-e.scrollLeft),o!==i&&(n+=e.offsetTop-e.scrollTop),r=a,i=o,e=e.parentNode;return{top:n+54,left:t-38}}(n.getElementById("inpid_journal_title"));e.left-=n.getElementById("inpid_journal_title").scrollTop,m.style.top=e.top+"px",m.style.left=e.left+"px"}n.body.appendChild(m);const g=m.appendChild(n.createElement("table"));let v;switch(m.lastHighlight=null,g.addEventListener("mouseover",function(e){m.lastHighlight&&(m.lastHighlight.className=""),m.lastHighlight=r.utils.ancestor(r.utils.getTarget(e),"TR"),m.lastHighlight&&(m.lastHighlight.className="activeItem")},!1),a){case"DidYouMeanDialog":v=function(e){const n=r.utils.ancestor(r.utils.getTarget(e),"TR");2===n.childNodes.length&&n.nextSibling?(i.store.add(A,void 0,void 0),t.UserInput.clearMenu()):2===n.childNodes.length&&t.UserInput.clearMenu()};break;case"LimitedPredicateChoice":{const e=l.clickedTd;v=function(n){const a=r.utils.getAbout(i.store,r.utils.getTarget(n)),o=e.parentNode.AJAR_statement.predicate.elements;for(let e=0;e<o.length;e++)o[e].sameTerm(a)&&o.unshift(o.splice(e,1)[0]);t.UserInput.clearMenu();const s=e.parentNode,c=t.outlinePredicateTD(s.AJAR_statement.predicate,s);s.insertBefore(c,e),s.removeChild(e),h.lastModified.select()};break}case"PredicateAutoComplete":case"GeneralAutoComplete":case"GeneralPredicateChoice":case"JournalTitleAutoComplete":case"TypeChoice":{const e=l.isPredicate,n=l.selectedTd;v=function(a){const o=r.utils.getAbout(i.store,r.utils.getTarget(a));r.utils.getTarget(a),e?t.UserInput.fillInRequest("predicate",n,o)&&t.UserInput.clearMenu():t.UserInput.fillInRequest("object",n,o)&&t.UserInput.clearMenu()};break}default:throw new Error("userinput: unexpected mode")}g.addEventListener("click",v,!1);const b={};function y(e){g.firstChild&&"no-suggest"===g.firstChild.className&&g.removeChild(g.firstChild);const t=r.utils.predicateLabelForXML(e,!1);if(!e.uri)return;let i="??";for(const t in b)if(r.log.debug(b[t]),o.Util.string_startswith(e.uri,b[t])){i=t;break}const a=g.appendChild(n.createElement("tr"));a.setAttribute("about",e);a.appendChild(n.createElement("th")).appendChild(n.createElement("div")).appendChild(n.createTextNode(t)),a.appendChild(n.createElement("td")).appendChild(n.createTextNode(i.toUpperCase()))}function w(e){return function(t){y(t[e.vars[0]])}}let x,A,E,C;switch(i.store.each(void 0,r.ns.rdf("type"),r.ns.owl("Ontology")).forEach(function(e){const t=r.utils.label(e);if(!t)return;const n=t.value.match(/\((.+?)\)/);n?b[n[1]]=e.uri:b[t.value]=e.uri}),a){case"DidYouMeanDialog":{const e=l.dialogTerm;A=l.bnodeTerm,m.style.width="auto";const t=g.appendChild(n.createElement("tr")).appendChild(n.createElement("th"));t.appendChild(n.createTextNode("Did you mean..."));const a=i.store.statementsMatching(e);let o;for(o=0;o<a.length&&!i.store.whether(a[o].predicate,u("type"),r.ns.owl("InverseFunctionalProperty"));o++);const s=a[o].predicate,c=i.store.any(e,a[o].predicate),d=r.utils.label(e)+" who has "+r.utils.label(s)+" "+c+"?",p=g.appendChild(n.createElement("tr")).appendChild(n.createElement("th"));p.appendChild(n.createTextNode(d)),t.setAttribute("colspan","2"),p.setAttribute("colspan","2");const f=g.appendChild(n.createElement("tr"));f.appendChild(n.createElement("th")).appendChild(n.createTextNode("Yes")),f.appendChild(n.createElement("td")).appendChild(n.createTextNode("BOOLEAN"));const h=g.appendChild(n.createElement("tr"));h.appendChild(n.createElement("th")).appendChild(n.createTextNode("No")),h.appendChild(n.createElement("td")).appendChild(n.createTextNode("BOOLEAN"));break}case"PredicateAutoComplete":{x=l.inputText;const n=t.labeller.searchAdv(x,void 0,"predicate"),r=[];for(let t=0;t<n.length;t++){const r={vars:[]};r.vars.push("Kenny");const a={};a.Kenny=i.store.fromNT(n[t].NT);try{w(r)(a)}catch(e){throw new Error("I'll deal with bnodes later...[Kenny]"+e)}}const a=r[0];if(0===a.length)return void this.clearMenu();for(let e=0;e<a.length&&e<10;e++)y(a[e][1]);break}case"GeneralAutoComplete":{let i;x=l.inputText;try{i=t.labeller.search(x)}catch(e){}const a=i[0],o=i[1];if(0===a.length)return void this.clearMenu();for(let e=0;e<a.length&&e<10;e++){const t=a[e][1].toNT();E=g.appendChild(n.createElement("tr")),E.setAttribute("about",t),C=E.appendChild(n.createElement("th")),C.appendChild(n.createElement("div")).appendChild(n.createTextNode(a[e][0]));const i=o[e],s=i?r.utils.label(i):"";E.appendChild(n.createElement("td")).appendChild(n.createTextNode(s))}break}case"JournalTitleAutoComplete":{x=l.inputText;const e=i.store.each(void 0,u("type"),d("Journal")),t=[];for(let r=0;r<e.length;r++){const a=e[r],o=i.store.each(a,p("title"),void 0),c=o+"",l=x.toLowerCase();if(-1!==c.toLowerCase().search(l)){s(),t.push(o);const e=g.appendChild(n.createElement("tr"));e.setAttribute("about","journalTitle");e.appendChild(n.createElement("th")).appendChild(n.createElement("div")).appendChild(n.createTextNode(o)),e.appendChild(n.createElement("td")).appendChild(n.createTextNode(a))}}break}case"LimitedPredicateChoice":{const e=r.utils.getAbout(i.store,l.clickedTd);e.termType="Collection";const t=i.store.each(e,r.ns.link("element"));for(let e=0;e<t.length;e++)y(t[e]);break}default:{E=g.appendChild(n.createElement("tr")),E.className="no-suggest",C=E.appendChild(n.createElement("th")),C.appendChild(n.createElement("div")).appendChild(n.createTextNode("No suggested choices. Try to type instead.")),E.appendChild(n.createElement("td")).appendChild(n.createTextNode("OK")),E.addEventListener("click",function(e){h.clearMenu(),e.stopPropagation()},"false");const e=function(){};switch(c.constructor.name){case"Array":for(let t=0;t<c.length;t++)i.store.query(c[t],w(c[t]),e);break;case"undefined":throw new Error("addPredicateChoice: query is not defined");default:i.store.query(c,w(c),e)}}}},fillInRequest:function(e,n,a){const s=n.parentNode,u=s.AJAR_statement,d=s.AJAR_inverse,p="object"===e?u.object:u.predicate;let f,h=!1;if(i.store.any(p,r.ns.link("onfillin")),"predicate"===e){const e=t.outlinePredicateTD(a,s,!1,!1);if("undetermined"!==n.nextSibling.className){const t=new o.Statement(u.subject,a,u.object,u.why);try{i.store.updater.update([],[t],function(t,n,o){n?(f=i.store.anyStatementMatching(u.subject,a,u.object,u.why),s.AJAR_statement=f,e.className=e.className.replace(/ pendingedit/g,"")):r.log.warn("Failure occurs (#2) while inserting "+s.AJAR_statement+"\n\n"+o)})}catch(e){return r.log.error(e),void r.log.warn("Error when insert (#2) of statement "+t+":\n\t"+e)}e.className+=" pendingedit",this.lastModified=null}else this.formUndetStat(s,u.subject,a,u.object,u.why,!1),t.walk("right"),h=!0;t.replaceTD(e,n),l.remove(u)}else if("object"===e){const e=t.outlineObjectTD(a);if(t.replaceTD(e,n),n.previousSibling&&"undetermined"===n.previousSibling.className)t.walk("left"),h=!0;else{let t;t=d?new o.Statement(a,u.predicate,u.object,u.why):new o.Statement(u.subject,u.predicate,a,u.why);try{i.store.updater.update([],[t],function(n,o,c){let l;r.log.info("@@ usinput.js (object) callback ok="+o+" for statement:"+t+"\n "),o?(e.className=e.className.replace(/ pendingedit/g,""),l=d?i.store.statementsMatching(a,u.predicate,u.object,u.why):i.store.statementsMatching(u.subject,u.predicate,a,u.why),l.length||r.log.error("userinput.js 1711: Can't find statememt!"),s.AJAR_statement=l[0]):r.log.warn("userinput.js (object): Fail trying to insert statement "+t)})}catch(e){return r.log.error("userinput.js (object): exception trying to insert statement "+t+": "+r.utils.stackString(e)),void r.log.warn("Error trying to insert statement "+t+":\n"+e)}this.lastModified=null,e.className+=" pendingedit"}l.remove(u)}if(c.statements.push(f),!h)return!0;this.startFillInText(t.getSelection()[0])},formUndetStat:function(e,t,n,r,i,a){return e.AJAR_inverse=a,e.AJAR_statement=l.add(t,n,r,i),e.AJAR_statement}}};var r=s(n(500)),i=n(9332),a=s(n(4059)),o=s(n(8230));function s(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(s=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}let c,l},3660(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.default=e=>function(t){const n=r.utils.AJARImage(t.uri,r.utils.label(t),r.utils.label(t),e);return n.setAttribute("class","outlineImage"),n}},6357(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>function(t){const n=e.createElement("a");let r="NamedNode"===t.termType?t.uri:t.value;const i=r.indexOf("mailto:");return r=i>=0?r.slice(i+7):r,n.setAttribute("href","mailto:"+r),n.appendChild(e.createTextNode(r)),n}},9370(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500),i=n(9332),a=n(8230);const o={icon:r.icons.iconBase+"noun_79217.svg",name:"pad",audience:[r.ns.solid("PowerUser")],label:function(e,t){return t.session.store.findTypeURIs(e)["http://www.w3.org/ns/pim/pad#Notepad"]?"pad":null},mintClass:r.ns.pad("Notepad"),mintNew:function(e,t){const n=e.session.store,i=n.updater;if(t.me&&!t.me.uri)throw new Error("notepad mintNew: Invalid userid");const a=t.newInstance=t.newInstance||n.sym(t.newBase+"index.ttl#this"),o=a.doc();n.add(a,r.ns.rdf("type"),r.ns.pad("Notepad"),o),n.add(a,r.ns.dc("title"),"Shared Notes",o),n.add(a,r.ns.dc("created"),new Date,o),t.me&&n.add(a,r.ns.dc("author"),t.me,o);const s=n.sym(a.uri+"_line0");return n.add(a,r.ns.pad("next"),s,o),n.add(s,r.ns.pad("next"),a,o),n.add(s,r.ns.dc("author"),t.me,o),n.add(s,r.ns.sioc("content"),"",o),new Promise(function(e,r){i?i.put(o,n.statementsMatching(void 0,void 0,void 0,o),"text/turtle",function(n,i,a){i?e(t):r(new Error("FAILED to save new tool at: "+n+" : "+a))}):r(new Error("Have no updater"))})},render:function(e,t,n){const o=t.dom,s=t.session.store,c=function(e,t){e||C.appendChild(r.widgets.errorMessageBlock(o,t,"pink"))},l=function(e){for(;e.firstChild;)e.removeChild(e.firstChild);return e},u=function(e,t,n){const i=(0,a.graph)(),o=(0,a.Namespace)("http://www.w3.org/ns/auth/acl#");let s=i.sym(t+"#a1");const c=i.sym(t),l=i.sym(e);return i.add(s,r.ns.rdf("type"),o("Authorization"),c),i.add(s,o("accessTo"),l,c),i.add(s,o("agent"),y,c),i.add(s,o("mode"),o("Read"),c),i.add(s,o("mode"),o("Write"),c),i.add(s,o("mode"),o("Control"),c),s=i.sym(t+"#a2"),i.add(s,r.ns.rdf("type"),o("Authorization"),c),i.add(s,o("accessTo"),l,c),i.add(s,o("agentClass"),r.ns.foaf("Agent"),c),i.add(s,o("mode"),o("Read"),c),n&&i.add(s,o("mode"),o("Write"),c),(0,a.serialize)(c,i,t,"text/turtle")},d=function(e,t,n){const r=s.any((0,a.sym)(e),(0,a.sym)("http://www.iana.org/assignments/link-relations/acl"));if(!v)throw new Error("Have no fetcher");if(r){const i=u(e,r.uri,t);return v.webOperation("PUT",r.uri,{data:i,contentType:"text/turtle"}).then(()=>n(!0)).catch(e=>{n(!1,e.message)})}return v.load(e).catch(e=>{n(!1,"Getting headers for ACL: "+e)}).then(()=>{const n=s.any((0,a.sym)(e),(0,a.sym)("http://www.iana.org/assignments/link-relations/acl"));if(!n)throw new Error("No Link rel=ACL header for "+e);const r=u(e,n.uri,t);return v.webOperation("PUT",n.uri,{data:r,contentType:"text/turtle"})}).then(()=>n(!0)).catch(e=>{n(!1,e.message)})},p=function(e,t,n){const i=l(t);i.appendChild(r.login.newAppInstance(o,{noun:"notepad"},(e,t)=>f(new a.NamedNode(e||t)))),i.appendChild(o.createElement("hr"));i.appendChild(o.createElement("p")).textContent="Where would you like to store the data for the "+n+"? Give the URL of the directory where you would like the data stored.";const s=i.appendChild(o.createElement("input"));s.setAttribute("type","text"),s.size=80,s.label="base URL",s.autocomplete="on",i.appendChild(o.createElement("br"));const c=i.appendChild(o.createElement("button"));c.textContent="Start new "+n+" at this URI",c.addEventListener("click",function(t){let n=s.value;"/"!==n.slice(-1)&&(n+="/"),h(e,n)})},f=function(e){let t=s.any(e,r.ns.space("uriPrefix"));t=t?t.value:e.uri.split("#")[0],"/"!==t.slice(-1)&&(a.log.error(g+": No / at end of uriPrefix "+t),t+="/");const n=new Date;t+=g+"/id"+n.getTime()+"/",h(x,t)},h=function(e,t){const n=(0,a.sym)(e.uri.split("#")[0]),l=s.sym(t+"pad.ttl"),u=s.sym(t+"index.html"),p=[{local:"index.html",contentType:"text/html"}],f=s.sym(l.uri+"#thisPad"),h=[];let m;for(m=0;m<p.length;m++){const e=function(e){h.push(function(){const r=t+e.local;if(!s.fetcher)throw new Error("Store has no fetcher");s.fetcher.webCopy(n+e.local,t+e.local,e.contentType).then(()=>i.authn.checkUser()).then(e=>{y=e,d(r,!1,function(e,t){e?h.shift()():c(e,"FAILED to set ACL "+r+" : "+t)})}).catch(t=>{c(!1,"FAILED to copy "+n+e.local+" : "+t.message)})})};e(p[m])}h.push(function(){if(s.add(f,r.ns.rdf("type"),w("Notepad"),l),s.add(f,r.ns.dc("created"),new Date,l),y&&s.add(f,r.ns.dc("author"),y,l),s.add(f,w("next"),f,l),s.add(f,r.ns.space("inspiration"),e,A),s.add(f,r.ns.space("inspiration"),e,l),!b)throw new Error("Have no updater");b.put(l,s.statementsMatching(void 0,void 0,void 0,l),"text/turtle",function(e,t,n){t?h.shift()():c(t,"FAILED to save new notepad at: "+l.uri+" : "+n)})}),h.push(function(){d(l.uri,!0,function(e,t){c(e,"Failed to set Read-Write ACL on pad data file: "+t),e&&h.shift()()})}),h.push(function(){const e=C.appendChild(o.createElement("p"));e.setAttribute("style","font-size: 140%;"),e.innerHTML="Your <a href='"+u.uri+"'><b>new notepad</b></a> is ready. <br/><br/><a href='"+u.uri+"'>Go to new pad</a>"}),h.shift()()},m=function(t){y=i.authn.currentUser(),i.authn.checkUser().then(e=>{y=e});const a=s.any(e,r.ns.dc("title"))||s.any(e,r.ns.vcard("fn"));n.solo&&"undefined"!=typeof window&&a&&(window.document.title=a.value),B.exists=t,E=r.pad.notepad(o,A,e,y,B),S.appendChild(E);const c=s.any(e,r.ns.meeting("parentMeeting"))||e;if(r.pad.manageParticipation(o,F,A,c,y,B),!s.updater)throw new Error("Store has no updater");s.updater.setRefreshHandler(A,E.reloadAndSync)},g="app-pad.timbl.com",v=s.fetcher,b=s.updater;let y;const w=(0,a.Namespace)("http://www.w3.org/ns/pim/pad#"),x=e,A=e.doc();let E;const C=o.createElement("div"),k=C.appendChild(o.createElement("table"));k.setAttribute("style","background-color: white; min-width: 94%; margin-right:3% margin-left: 3%; min-height: 13em;");const _=k.appendChild(o.createElement("tr"));_.appendChild(o.createElement("td")),_.appendChild(o.createElement("td")),_.appendChild(o.createElement("td"));const S=k.appendChild(o.createElement("tr")).appendChild(o.createElement("td"));S.setAttribute("colspan","3");const T=k.appendChild(o.createElement("tr")),P=T.appendChild(o.createElement("td")),F=T.appendChild(o.createElement("td")),R=T.appendChild(o.createElement("td")),I=k.appendChild(o.createElement("tr")).appendChild(o.createElement("div")),N=k.appendChild(o.createElement("tr")).appendChild(o.createElement("div")),L=k.appendChild(o.createElement("tr"));L.setAttribute("class","naviMenu"),L.appendChild(o.createElement("td")),L.appendChild(o.createElement("td")),L.appendChild(o.createElement("td"));const B={statusArea:I,timingArea:P};return function(){if(!v)throw new Error("Have no fetcher");v.nowOrWhenFetched(A.uri,void 0,function(t,n,i){if(t)l(S),s.holds(e,r.ns.rdf("type"),r.ns.wf("TemplateInstance"))&&p(e,S,"pad"),m(!0),R.appendChild(function(){const t=C.appendChild(o.createElement("button"));return t.textContent="Start another pad",t.addEventListener("click",function(){return p(e,N,"pad")}),t}());else if(404===i.status){if(!b)throw new Error("Have no updater");b.put(A,[],"text/turtle",function(e,t,n){t?(l(S),m(!1)):c(t,"FAILED to create results file at: "+A.uri+" : "+n)})}else c(t,"FAILED to read results file: "+n)})}(),C}};t.default=o},8912(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_1619.svg",name:"playlistSlot",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store;return n.anyStatementMatching(e,r.ns.rdf("type"),n.sym("http://purl.org/ontology/pbo/core#PlaylistSlot"))?"playlist slot":null},render:function(e,t){const n=t.dom;const a=function(e,t){if(!t)return e;const i=n.createElement("a");return i.setAttribute("href",t),i.appendChild(e),i.addEventListener("click",r.widgets.openHrefInOutlineMode,!0),i},o=function(e){return n.createTextNode(e)},s=t.session.store,c=s.any(e,i.sym("http://purl.org/ontology/pbo/core#playlist_item"));let l=s.any(e,i.sym("http://purl.org/ontology/olo/core#index")),u=c.uri;const d=function(e){if(!e)return{html5:!0};const t=e.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-_%]+)/i),n=e.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i),r=e.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i),i=e.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);return t?{youtube:t}:n?{vimeo:n}:r?{dailymotion:r}:i?{vk:i}:void 0}(u),p=n.createElement("div");let f,h;if(d&&d.youtube?(u=u.replace("watch?v=","embed/"),p.setAttribute("class","imageView"),f=n.createElement("IFRAME"),f.setAttribute("src",u),f.setAttribute("width",560),f.setAttribute("height",315),f.setAttribute("frameborder",0),f.setAttribute("style","max-width: 850px; max-height: 100%;"),f.setAttribute("allowfullscreen","true")):(p.setAttribute("class","imageView"),f=n.createElement("IMG"),f.setAttribute("src",c.value),f.setAttribute("width",560),f.setAttribute("height",315),f.setAttribute("style","max-width: 560; max-height: 315;")),l){const t=s.statementsMatching(null,i.sym("http://purl.org/ontology/olo/core#index")),r=[];for(let e=0;e<t.length;e++)t[e]&&r.push(parseInt(t[e].object.value,10));l=parseInt(l.value,10),h=n.createElement("div");const c=r[(r.indexOf(l)-1+r.length)%r.length],u=r[(r.indexOf(l)+1+r.length)%r.length],d=a(o("<<"),e.uri.split("#")[0]+"#"+c);h.appendChild(d);const p=n.createElement("span");p.innerHTML=" Playlist slot : "+l+" ",h.appendChild(p);const f=a(o(">>"),e.uri.split("#")[0]+"#"+u);h.appendChild(f)}const m=n.createElement("TR");return m.appendChild(f),h&&m.appendChild(h),p.appendChild(m),p}}},2371(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.registerPanes=function(e){e(r.default);const t=r.default.editor;e(t),e(i.default),e(a.default),e(o.default),e(s.default),e(c.default),e(l.default),e(u.default),e(d.default),e(p.default),e(f.default),e(h.default),e(m.longChatPane),e(m.shortChatPane),e(g.schedulePane),e(v.default),e(b.imagePane),e(y.default),e(w.default),e(x.default),e(A.default),e(E.default),e(C.classInstancePane),e(k.slideshowPane),e(_.socialPane),e(S.default),e(T.dataContentPane),e(P.default),e(F.n3Pane),e(R.RDFXMLPane),e(I.formPane),e(N.tableViewPane),e(L.defaultPane),e(B.default),e(O.default),e(j.default),e(D.default)};var r=M(n(2643)),i=M(n(1917)),a=M(n(5682)),o=M(n(6106)),s=M(n(3931)),c=M(n(3955)),l=M(n(8938)),u=M(n(9370)),d=M(n(2368)),p=M(n(8131)),f=M(n(1927)),h=M(n(4036)),m=n(7052),g=n(9814),v=M(n(5130)),b=n(2168),y=M(n(8912)),w=M(n(6778)),x=M(n(6686)),A=M(n(2970)),E=M(n(1838)),C=n(5382),k=n(7978),_=n(7350),S=M(n(6380)),T=n(1424),P=M(n(3385)),F=n(7334),R=n(8236),I=n(5238),N=n(3472),L=n(4064),B=M(n(6682)),O=M(n(6298)),j=M(n(4930)),D=M(n(8426));function M(e){return e&&e.__esModule?e:{default:e}}},9814(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.schedulePane=void 0;var r=o(n(500)),i=n(9332),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const s=r.ns,c=[s.sched("No"),s.sched("Maybe"),s.sched("Yes")];t.schedulePane={icon:r.icons.iconBase+"noun_346777.svg",name:"schedule",audience:[s.solid("PowerUser")],label:function(e,t){return t.session.store.findTypeURIs(e)["http://www.w3.org/ns/pim/schedule#SchedulableEvent"]?"Scheduling poll":null},mintClass:s.sched("SchedulableEvent"),mintNew:function(e,t){return new Promise(function(n,o){const s=r.ns,c=e.session.store;let l=t.newBase;const u=t.useExisting||a.sym(t.newBase+"index.ttl#this"),d=function(e,t){e||o(new Error(t))},p=function(e,t,n){const i=a.graph(),o=a.Namespace("http://www.w3.org/ns/auth/acl#");let c=i.sym(t+"#a1");const l=i.sym(t),u=i.sym(e);return i.add(c,r.ns.rdf("type"),o("Authorization"),l),i.add(c,o("accessTo"),u,l),i.add(c,o("agent"),g,l),i.add(c,o("mode"),o("Read"),l),i.add(c,o("mode"),o("Write"),l),i.add(c,o("mode"),o("Control"),l),c=i.sym(t+"#a2"),i.add(c,r.ns.rdf("type"),o("Authorization"),l),i.add(c,o("accessTo"),u,l),i.add(c,o("agentClass"),s.foaf("Agent"),l),i.add(c,o("mode"),o("Read"),l),n&&i.add(c,o("mode"),o("Write"),l),a.serialize(l,i,t,"text/turtle")},f=function(e,t,n){const r=c.any(c.sym(e),c.sym("http://www.iana.org/assignments/link-relations/acl"));if(r){const i=p(e,r.uri,t);return h.webOperation("PUT",r.uri,{data:i,contentType:"text/turtle"}).then(e=>n(!0)).catch(e=>{n(!1,e.message)})}return h.load(e).catch(e=>{n(!1,"Getting headers for ACL: "+e)}).then(()=>{const n=c.any(c.sym(e),c.sym("http://www.iana.org/assignments/link-relations/acl"));if(!n)throw new Error("No Link rel=ACL header for "+e);const r=p(e,n.uri,t);return h.webOperation("PUT",n.uri,{data:r,contentType:"text/turtle"})}).then(e=>n(!0)).catch(e=>{n(!1,e.message)})},h=c.fetcher,m=c.updater;let g=t.me||i.authn.currentUser();if(!g)return void alert("NOT LOGGED IN");const v=u.dir().uri;let b,y;if(t.useExisting){if(y=t.useExisting,l=u.dir().uri,b=y.doc(),t.newBase)throw new Error("mint new scheduler: Illegal - have both new base and existing event")}else b=c.sym(l+"details.ttl"),y=c.sym(b.uri+"#event");const w=c.sym(l+"results.ttl"),x=t.noIndexHTML?{}:[{local:"index.html",contentType:"text/html"}],A=[];for(let e=0;e<x.length;e++){const t=function(e){A.push(function(){const t=l+e.local;c.fetcher.webCopy(v+e.local,l+e.local,e.contentType).then(()=>i.authn.checkUser()).then(e=>{g=e,f(t,!1,function(e,n){e?A.shift()():d(e,"FAILED to set ACL "+t+" : "+n)})}).catch(t=>{d(!1,"FAILED to copy "+v+e.local+" : "+t.message)})})};t(x[e])}A.push(function(){c.add(y,s.rdf("type"),s.sched("SchedulableEvent"),b),g&&(c.add(y,s.dc("author"),g,b),c.add(y,s.foaf("maker"),g,b)),c.add(y,s.dc("created"),new Date,b),c.add(y,s.sched("resultsDocument"),b),m.put(b,c.statementsMatching(void 0,void 0,void 0,b),"text/turtle",function(e,t,n){t?A.shift()():d(t,"FAILED to save new scheduler at: "+b+" : "+n)})}),A.push(function(){c.fetcher.webOperation("PUT",w.uri,{data:"",contentType:"text/turtle"}).then(()=>{A.shift()()}).catch(e=>{d(!1,"Failed to initialize empty results file: "+e.message)})}),A.push(function(){f(w.uri,!0,function(e,t){d(e,"Failed to set Read-Write ACL on results file: "+t),e&&A.shift()()})}),A.push(function(){f(b.uri,!1,function(e,t){d(e,"Failed to set read ACL on configuration file: "+t),e&&A.shift()()})}),A.push(function(){t.newInstance=y,n(t)}),A.shift()()})},render:function(e,t){const n=t.dom,o=t.session.store,s=r.ns,l=e,u="app-when-can-we.w3.org",d=o.fetcher,p=o.updater;let f=!1;const h=e,m=e.doc(),g=m.dir().uri,v=a.sym(g+"results.ttl"),b="https://solidos.github.io/solid-panes/schedule/formsForSchedule.ttl",y=o.sym(b+"#form1"),w=o.sym(b+"#form2"),x=o.sym(b+"#form3");a.parse('@prefix dc: <http://purl.org/dc/elements/1.1/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix cal: <http://www.w3.org/2002/12/cal/ical#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix sched: <http://www.w3.org/ns/pim/schedule#>.\n\n cal:Vevent ui:annotationForm <#form2>, <#form3>; ui:creationForm <#form1> .\n\n<#bigForm>\n dc:title\n "Schedule event (single form).";\n a ui:Group;\n ui:parts ( <#form1> <#form2> <#form3> ).\n\n<#form1>\n dc:title\n "Schedule an event (wizard)";\n a ui:Form;\n ui:parts (\n <#form1header>\n <#eventTitle>\n <#eventLocation>\n <#eventType>\n <#eventSwitch>\n <#eventComment>\n <#eventAuthor> ).\n\n<#form1header> a ui:Heading; ui:contents "Schedule an event" .\n\n<#eventTitle>\n a ui:SingleLineTextField;\n ui:maxLength\n "128";\n ui:property\n cal:summary;\n ui:size\n "40".\n\n<#eventLocation>\n a ui:SingleLineTextField;\n ui:maxLength\n "512";\n ui:property\n cal:location;\n ui:size\n "40".\n\n<#eventType> a ui:BooleanField;\n ui:property sched:allDay;\n ui:default true . # Used to be the only way\n\n<#eventSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm> ].\n\n <#AllDayForm> a ui:IntegerField ;\n ui:property sched:durationInDays;\n ui:label "How many days?";\n ui:min 1;\n ui:default 1 .\n\n <#NotAllDayForm> a ui:IntegerField ;\n ui:property sched:durationInMinutes;\n ui:label "Duration (mins)";\n ui:min 5;\n ui:default 55 .\n\n<#eventComment>\n a ui:MultiLineTextField;\n# ui:maxLength\n# "1048";\n# ui:size\n# "40".\n ui:property\n cal:comment.\n\n<#eventAuthor>\n a ui:Multiple; ui:min 1; ui:part <#eventAuthorGroup>; ui:property dc:author.\n\n <#eventAuthorGroup> a ui:Group; ui:parts ( <#authorName> <#authorEmail> ) .\n <#authorName> a ui:SingleLineTextField; ui:property foaf:name .\n <#authorEmail> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .\n\n\n#####################\n\n<#form2> dc:title "Select possible days or times"; a ui:Form;\n ui:parts ( <#id1118132113134> <#possibleSwitch> ).\n\n <#id1118132113134> a ui:Heading; ui:contents "Time proposals" .\n\n <#possibleSwitch> a ui:Options;\n ui:dependingOn sched:allDay;\n ui:case [ ui:for true; ui:use <#AllDayForm2> ];\n ui:case [ ui:for false; ui:use <#NotAllDayForm2> ].\n\n <#AllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleDate>; ui:property sched:option.\n <#posssibleDate> a ui:DateField; ui:property cal:dtstart; ui:label "date".\n\n <#NotAllDayForm2>\n a ui:Multiple; ui:min 2; ui:part <#posssibleTime>; ui:property sched:option.\n <#posssibleTime> a ui:DateTimeField; ui:property cal:dtstart; ui:label "date and time".\n\n ##################################\n\n <#form3> dc:title "Select invited people"; a ui:Form; ui:parts ( <#id1118132113135> <#id1417314641301b> ) .\n<#id1417314641301b>\n a ui:Multiple; ui:min 1; ui:part <#id1417314674292b>; ui:property sched:invitee.\n <#id1417314674292b> a ui:EmailField; ui:label "email"; ui:property foaf:mbox .\n <#id1118132113135> a ui:Heading; ui:contents "Who to invite" .\n\n# ENDS\n',o,b,"text/turtle");const A="background-color: #eef; padding: 0.5em; border: .5em solid white; font-size: 100%",E="width: 1.8em; height: 1.8em;",C=function(e,t){e||D.appendChild(r.widgets.errorMessageBlock(n,t,"pink"))},k=function(e){for(;e.firstChild;)e.removeChild(e.firstChild);return e},_=function(e,t){const n=o.any(t,r.ns.ui("backgroundColor"));n&&e.setAttribute("style","padding: 0.3em; text-align: center; background-color: "+n+";")};let S;i.authn.checkUser().then(e=>{S=e,z&&z.refresh(),e&&f&&(f=!1,R())});const T=function(e){let t=o.any(e,s.space("uriPrefix"));t=t?t.value:e.uri.split("#")[0],"/"!==t.slice(-1)&&(a.log.error(u+": No / at end of uriPrefix "+t),t+="/");const n=new Date;t+=u+"/id"+n.getTime()+"/",P(h,t)},P=function(e,r){const i={thisInstance:e,newBase:r};this.mintNew(t,i).then(function(e){const t=D.appendChild(n.createElement("p"));t.setAttribute("style","font-size: 140%;"),t.innerHTML="Your <a href='"+e.newInstance.uri+"'><b>new scheduler</b></a> is ready to be set up. <br/><br/><a href='"+e.newInstance.uri+"'>Say when you what days work for you.</a>"}).catch(function(e){C(!1,"Error createing new scheduler at "+i.newInstance+": "+e)})},F=function(){d.nowOrWhenFetched(m.uri,void 0,function(e,t){if(!e)return C(e,t);R()})},R=function(){i.authn.checkUser().then(t=>{if(!t)return I();if(!o.updater.editable(m.uri,o)||o.holds(e,s.rdf("type"),s.wf("TemplateInstance")))return void N(D);o.any(e,s.sched("ready"))?O():B()})},I=function(){k(H);const e={div:D,dom:n};r.login.ensureLoggedIn(e).then(e=>{S=e.me,f=!1,R()})},N=function(){const e=k(H);e.appendChild(r.login.newAppInstance(n,{noun:"poll"},T)),e.appendChild(n.createElement("hr"));e.appendChild(n.createElement("p")).textContent="Where would you like to store the data for the poll? Give the URL of the directory where you would like the data stored.";const t=e.appendChild(n.createElement("input"));t.setAttribute("type","text"),t.size=80,t.label="base URL",t.autocomplete="on",e.appendChild(n.createElement("br"));const i=e.appendChild(n.createElement("button"));i.setAttribute("style",A),i.textContent="Start new poll at this URI",i.addEventListener("click",function(e){let n=t.value;"/"!==n.slice(-1)&&(n+="/"),P(h,n)})},L=n.createElement("button"),B=function(){k(W);let t=0,i=!1;{const a=[y,w,x],o=[];t=0;for(let t=0;t<a.length;t++){const i=n.createElement("div");r.widgets.appendForm(document,i,{},e,a[t],m,C),o.push(i)}const s=function(){k(H).appendChild(o[t]),0===t?c.setAttribute("disabled",""):c.removeAttribute("disabled"),t===o.length-1?(u.setAttribute("disabled",""),i||(W.appendChild(l),W.appendChild(L),i=!0)):u.removeAttribute("disabled")},c=k($).appendChild(n.createElement("button"));c.setAttribute("style",A),c.textContent="<- go back",c.addEventListener("click",function(e){t>0&&(t-=1,s())},!1);const u=k(V).appendChild(n.createElement("button"));u.setAttribute("style",A),u.textContent="continue ->",u.addEventListener("click",function(e){t<o.length-1&&(t+=1,s())},!1),s()}const c=[];c.push(a.st(e,s.sched("availabilityOptions"),s.sched("YesNoMaybe"),m)),c.push(a.st(e,s.sched("ready"),new Date,m)),c.push(a.st(e,s.sched("results"),v,m)),L.setAttribute("style",A),L.textContent="Go to poll",L.addEventListener("click",function(t){o.any(e,s.sched("ready"))?(O(),V.appendChild(l)):(V.appendChild(l),o.updater.update([],c,function(e,t,n){t?O():C(t,n)}))},!1);const l=n.createElement("button");l.setAttribute("style",A);const u=l.appendChild(n.createElement("img"));u.setAttribute("src",r.icons.iconBase+"noun_480183.svg"),u.setAttribute("style",E),l.addEventListener("click",function(t){const n=o.anyValue(e,s.cal("summary"))||o.anyValue(e,s.dc("title"))||"",r="mailto:"+o.each(e,s.sched("invitee")).map(function(e){const t=o.any(e,s.foaf("mbox"));return t?t.uri.replace("mailto:",""):""}).join(",")+"?subject="+encodeURIComponent(n+"-- When can we meet?")+"&body="+encodeURIComponent(n+"\n\nWhen can you?\n\nSee "+e+"\n");window.location.href=r},!1)};function O(){d.nowOrWhenFetched(v.uri,(e,t,n)=>{e?(k(H),j()):404===n.status?p.put(v,[],"text/turtle",function(e,t,n){t?(k(H),j()):C(t,"FAILED to create results file at: "+v.uri+" : "+n)}):C(e,"FAILED to read results file: "+t)})}function j(){const t=o.any(l,s.cal("summary")),i=o.any(l,s.cal("comment")),u=o.any(l,s.cal("location")),d=H;t&&(d.appendChild(n.createElement("h3")).textContent=t),u&&(d.appendChild(n.createElement("address")).textContent=u.value),i&&(d.appendChild(n.createElement("p")).textContent=i.value);const p=o.any(l,s.dc("author"));if(p){const e=o.any(p,s.foaf("name"));e&&(d.appendChild(n.createElement("p")).textContent=e)}const f=new a.Query("Responses"),h={};["time","author","value","resp","cell"].forEach(function(e){f.vars.push(h[e]=a.variable(e))}),f.pat.add(l,s.sched("response"),h.resp),f.pat.add(h.resp,s.dc("author"),h.author),f.pat.add(h.resp,s.sched("cell"),h.cell),f.pat.add(h.cell,s.sched("availabilty"),h.value),f.pat.add(h.cell,s.cal("dtstart"),h.time);const m={};m.set_x=o.each(e,s.sched("option")),m.set_x=m.set_x.map(function(e){return o.any(e,s.cal("dtstart"))}),m.set_y=o.each(e,s.sched("response")),m.set_y=m.set_y.map(function(e){return o.any(e,s.dc("author"))});const g=o.each(l,s.sched("option")).map(function(e){return o.any(e,s.cal("dtstart"))}),b=function(){const e=d.appendChild(r.matrix.matrixForQuery(n,f,h.time,h.author,h.value,m,function(){}));e.setAttribute("class","matrix");const t=n.createElement("button");t.setAttribute("style",A);const i=n.createElement("img");i.setAttribute("src",r.icons.iconBase+"noun_479395.svg"),i.setAttribute("style",E),t.appendChild(i),t.addEventListener("click",function(n){t.disabled=!0,o.fetcher.refresh(v,function(n,r){n&&(e.refresh(),t.disabled=!1)})},!1),k(W),W.appendChild(t)},y=[],w={div:W,dom:n};r.login.ensureLoggedIn(w).then(e=>{const t=e.me,i=v;m.set_y=m.set_y.filter(function(e){return!e.sameTerm(t)}),m.set_y.push(t),m.cellFunction=function(e,i,a,l){if(null!==l&&o.fetcher.nowOrWhenFetched(l.uri.split("#")[0],void 0,function(t,n){t&&_(e,l)}),a.sameTerm(t)){const t=function(){_(e,l)},a={},u=s.sched("availabilty"),d=y[i.toNT()],p=r.widgets.makeSelectForOptions(n,o,d,u,c,a,v,t);e.appendChild(p)}else null!==l&&(e.textContent=r.utils.label(l))};const u=o.each(l,s.sched("response"));let d=null;u.forEach(function(e){o.holds(e,s.dc("author"),t)&&(d=e)});const p=[],f=r.widgets.newThing(i).uri;if(null===d)d=a.sym(f+"_response"),p.push(a.st(l,s.sched("response"),d,i)),p.push(a.st(d,s.dc("author"),t,i));else{o.each(d,s.sched("cell")).forEach(function(e){const t=o.any(e,s.cal("dtstart"));y[t.toNT()]=e})}for(let e=0;e<g.length;e++){if(y[g[e].toNT()])continue;const t=a.sym(f+"_"+e);p.push(a.st(d,s.sched("cell"),t,i)),p.push(a.st(t,s.cal("dtstart"),g[e],i)),y[g[e].toNT()]=t}p.length?o.updater.update([],p,function(e,t,n){t?b():C(t,n)}):b()});const x=o.any(e,s.foaf("maker"));if(!x||x.sameTerm(S)){const e=n.createElement("button");e.setAttribute("style",A);const t=n.createElement("img");t.setAttribute("src",r.icons.iconBase+"noun_344563.svg"),t.setAttribute("style",E),e.appendChild(t),e.addEventListener("click",function(e){k(d),B()},!1),k($),$.appendChild(e)}k(V),V.appendChild(function(){const e=r.login.newAppInstance(n,{noun:"scheduler"},T);return e.firstChild.setAttribute("style",A),e}())}const D=n.createElement("div"),M=D.appendChild(n.createElement("table"));M.setAttribute("style","background-color: white; min-width: 40em; min-height: 13em;");const U=M.appendChild(n.createElement("tr"));U.appendChild(n.createElement("td")),U.appendChild(n.createElement("td")),U.appendChild(n.createElement("td"));const z=null,H=M.appendChild(n.createElement("tr")).appendChild(n.createElement("td"));H.setAttribute("colspan","3");const q=M.appendChild(n.createElement("tr"));q.setAttribute("class","naviMenu"),q.setAttribute("style"," text-align: middle; vertical-align: middle; padding-top: 4em; ");const $=q.appendChild(n.createElement("td")),W=q.appendChild(n.createElement("td")),V=q.appendChild(n.createElement("td"));return F(),D}}},6298(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500);const i={icon:r.icons.iconBase+"padlock-timbl.svg",name:"sharing",label:(e,t)=>{const n=t.session.store.findTypeURIs(e);return n[r.ns.ldp("Resource").uri]||n[r.ns.ldp("Container").uri]||n[r.ns.ldp("BasicContainer").uri]?"Sharing":null},render:(e,t)=>{const n=t.dom,i=t.session.store,a=function(){const t=i.findTypeURIs(e);if(t[r.ns.ldp("BasicContainer").uri]||t[r.ns.ldp("Container").uri])return"folder";return"file"}(),o=n.createElement("div");return o.classList.add("sharingPane"),r.aclControl.preventBrowserDropEvents(n),o.appendChild(r.aclControl.ACLControlBox5(e,t,a,i)),o}};t.default=i},7978(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.slideshowPane=void 0;var r,i=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500)),a=(r=n(6305))&&r.__esModule?r:{default:r};const o=i.ns;t.slideshowPane={icon:i.icons.iconBase+"noun_138712.svg",name:"slideshow",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store,r=i.ns,a=n.findTypeURIs(e);if(a[r.ldp("Container").uri]||a[r.ldp("BasicContainer").uri]){const t=n.each(e,r.ldp("contains"));let a=0;return t.forEach(function(e){i.widgets.isImage(e)&&a++}),a>0?"Slideshow":null}return null},render:function(e,t){const n=t.dom;i.widgets.addStyleSheet(n,"https://leemark.github.io/better-simple-slideshow/css/simple-slideshow-styles.css");const r=t.session.store,o=i.ns,s=n.createElement("div");s.setAttribute("class","bss-slides");const c=r.findTypeURIs(e);let l;(c[o.ldp("BasicContainer").uri]||c[o.ldp("Container").uri])&&(l=o.ldp("contains"));const u=r.each(e,l);u.sort();for(let e=0;e<u.length;e++){if(!i.widgets.isImage(u[e]))continue;const t=s.appendChild(n.createElement("figure")),a=t.appendChild(n.createElement("img"));r.fetcher._fetch(u[e].uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);a.setAttribute("src",t)}),a.setAttribute("width","100%"),t.appendChild(n.createElement("figcaption"))}const d={dom:n};return setTimeout(function(){(0,a.default)(".bss-slides",d)},1e3),s}}},7350(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.socialPane=void 0;var r=o(n(500)),i=n(9332),a=o(n(8230));function o(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(o=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}t.socialPane={icon:r.icons.originalIconBase+"foaf/foafTiny.gif",name:"social",label:function(e,t){const n=t.session.store.findTypeURIs(e);return n[r.ns.foaf("Person").uri]||n[r.ns.vcard("Individual").uri]?"Friends":null},render:function(e,t){const n=t.dom,o=function(e){const t=n.createElement("p");t.textContent=e,x.appendChild(t)},s=function(e,t){if(!t)return e;const r=n.createElement("a");return r.setAttribute("href",t),r.appendChild(e),r},c=function(e){return n.createTextNode(e)},l=t.getOutliner(n),u=t.session.store,d=n.createElement("div");d.setAttribute("class","socialPane");const p=r.ns.foaf,f=r.ns.vcard,h="background-color: #eee; width: 25%; border: 0; padding: 0.5em; margin: 0;",m=d.appendChild(n.createElement("table")).appendChild(n.createElement("tr")),g=m.appendChild(n.createElement("td")),v=m.appendChild(n.createElement("td")),b=m.appendChild(n.createElement("td")),y=g;y.style.cssText=h;const w=v.appendChild(n.createElement("table"));w.style.cssText="background-color: #fff; color: #000; width: 46%; margin: 0; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0;";const x=b;x.style.cssText=h;const A=u.any(e,p("img"))||u.any(e,p("depiction"));if(A){const e=n.createElement("IMG");e.setAttribute("src",A.uri),e.style.cssText=" width: 100% ; border: none; margin: 0; padding: 0;",y.appendChild(e)}const E=u.anyValue(e,p("name"))||"???";let C=n.createElement("H3");C.appendChild(n.createTextNode(E));let k=i.authn.currentUser();const _=k?k.uri:null,S=r.login.loginStatusBox(n,e=>{k=u.sym(e),r.widgets.refreshTree(d)});x.appendChild(S);const T=k&&u.sameThings(k,e),P=p("knows"),F=u.anyValue(e,p("givenname"))||u.anyValue(e,p("firstName"))||u.anyValue(e,p("nick"))||u.anyValue(e,p("name"))||u.anyValue(e,f("fn")),R=u.each(e,P);let I,N,L=null,B=!1;if(k){const t=u.each(void 0,p("primaryTopic"),k);let i="";for(let e=0;e<t.length;e++)if(u.whether(t[e],r.ns.rdf("type"),p("PersonalProfileDocument"))){if(B=l.UserInput.sparqler.editable(t[e].uri,u),B){L=t[e];break}i+="Your profile <"+r.utils.escapeForXML(t[e].uri)+"> is not remotely editable."}if(L?(o("Editing your profile "+L+"."),B=l.UserInput.sparqler.editable(L.uri,u)):o(i+"\nI couldn't find your editable personal profile document."),T);else{C=n.createElement("h3"),C.appendChild(n.createTextNode("You and "+F)),y.appendChild(C);const t=u.canon(k);I=u.whether(e,P,t),N=!1;const i=u.statementsMatching(t,P,e);i.length&&(N=!0,L||(L=i[0].why));const o=n.createElement("tr");y.appendChild(o);const d=function(){o.appendChild(s(c("You"),_)),o.appendChild(c(" and ")),o.appendChild(s(c(F),e.uri))};if(I?N?(d(),o.appendChild(c(" say you know each other."))):(o.appendChild(s(c(F),e.uri)),o.appendChild(c(" knows ")),o.appendChild(s(c("you"),_)),o.appendChild(c(" (unconfirmed).")),o.appendChild(c(" confirm you know ")),o.appendChild(s(c(F),e.uri)),o.appendChild(c("."))):N?(o.appendChild(s(c("You"),_)),o.appendChild(c(" know ")),o.appendChild(s(c(F),e.uri)),o.appendChild(c(" (unconfirmed)"))):(d(),o.appendChild(c(" have not said you know each other."))),B){const t=function(e,t,i){const a=n.createElement("form"),o=n.createElement("input");a.appendChild(o);const s=n.createTextNode(e);return s.className="question",a.appendChild(s),o.setAttribute("type","checkbox"),o.checked=i,o.addEventListener("click",function(e){if(s.className="pendingedit",this.checked)try{l.UserInput.sparqler.insert_statement(t,function(e,n,i){if(s.className="question",!n)return r.log.alert(null,"Message","Error occurs while inserting "+t+"\n\n"+i),void(o.checked=!1);u.add(t.subject,t.predicate,t.object,t.why)})}catch(e){r.log.error("Data write fails:"+e),r.log.alert("Data write fails:"+e),o.checked=!1,s.className="question"}else try{l.UserInput.sparqler.delete_statement(t,function(e,n,i){s.className="question",n?u.removeMany(t.subject,t.predicate,t.object,t.why):(r.log.alert("Error occurs while deleting "+t+"\n\n"+i),this.checked=!0)})}catch(e){r.log.alert("Delete fails:"+e),this.checked=!0}},!1),a}("You know "+F,new a.Statement(k,P,e,L),N);y.appendChild(t)}if(R){const e=u.each(k,p("knows"));if(e.length){const t=function(e,t){const n=[];for(let r=0;r<e.length;r++)for(let i=0;i<t.length;i++)if(t[i].sameTerm(e[r])){n.push(t[i]);break}return n}(R,e),i=n.createElement("tr");if(y.appendChild(i),i.appendChild(n.createTextNode("You"+(F?" and "+F:"")+" know"+function(e){let t=" ";return t+=e||"no",1===e?t+" person":t+" people"}(t.length)+" found in common")),t)for(let e=0;e<t.length;e++)i.appendChild(n.createTextNode(", "+r.utils.label(t[e])))}const t=n.createElement("tr");y.appendChild(t)}}}r.widgets.attachmentList(n,e,w,{doc:L,modify:!!B,predicate:p("knows"),noun:"friend"}),C=n.createElement("h3"),C.appendChild(n.createTextNode("Basic Information")),y.appendChild(C);const O=[r.ns.foaf("homepage"),r.ns.foaf("weblog"),r.ns.foaf("workplaceHomepage"),r.ns.foaf("schoolHomepage")];for(let t=0;t<O.length;t++){const i=O[t],a=u.statementsMatching(e,i);if(0===a.length);else{const e=[];for(let t=0;t<a.length;t++){const n=a[t];n.object.uri&&e.push(n.object.uri)}e.sort();let t,o="";for(let a=0;a<e.length;a++){const s=e[a];if(s===o)continue;o=s;let c="";if(t=r.utils.label(i),e.length>1){const e=s.indexOf("//");if(e>0){let t=s.indexOf("/",e+2);const n=s.lastIndexOf(".",t);n>0&&(t=n),c=s.slice(e+2,t)}}c&&(t=c+" "+t);const l=n.createTextNode(t),u=n.createElement("a");u.appendChild(l),u.setAttribute("href",s);const d=n.createElement("div");d.style.cssText="width: 80%; background-color: #fff; border: solid 0.05em #ccc; margin-top: 0.1em; margin-bottom: 0.1em; padding: 0.1em; text-align: center;",d.appendChild(u),y.appendChild(d)}}}const j=[r.ns.foaf("openid"),r.ns.foaf("nick")];for(let t=0;t<j.length;t++){const n=j[t],r=u.statementsMatching(e,n);0===r.length||l.appendPropertyTRs(y,r,!1,function(e){return!0})}return d}}},4036(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500);const i={icon:r.icons.iconBase+"noun_688606.svg",name:"tabbed",audience:[r.ns.solid("PowerUser")],label:(e,t)=>{const n=t.session.store.findTypeURIs(e);return r.ns.meeting("Cluster").uri in n?"Tabbed":null},render:(e,t)=>{const n=t.dom,i=t.session.store,a=n.createElement("div");return(async()=>{if(!i.fetcher)throw new Error("Store has no fetcher");await i.fetcher.load(e),a.appendChild(r.tabs.tabWidget({dom:n,subject:e,predicate:i.any(e,r.ns.meeting("predicate"))||r.ns.meeting("toolList"),ordered:!0,orientation:i.anyValue(e,r.ns.meeting("orientation"))||"0",renderMain:(e,n)=>{e.innerHTML="";const r=e.appendChild(t.dom.createElement("table"));t.getOutliner(t.dom).GotoSubject(n,!0,null,!1,void 0,r)},renderTab:(n,a)=>{const o=i.the(e,r.ns.meeting("predicate"));n.appendChild(r.widgets.personTR(t.dom,o,a,{}))},backgroundColor:i.anyValue(e,r.ns.ui("backgroundColor"))||"#ddddcc"}))})(),a}};t.default=i},3472(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tableViewPane=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));t.tableViewPane={icon:r.icons.originalIconBase+"table.png",name:"tableOfClass",label:function(e,t){const n=t.session.store;if(!n.any(void 0,r.ns.rdf("type"),e))return null;const i=n.statementsMatching(void 0,r.ns.rdf("type"),e).length;return 0===i||i>15?null:r.utils.label(e)+" table"},render:function(e,t){const n=t.dom,i=n.createElement("div");return i.setAttribute("class","tablePane"),i.appendChild(r.table(n,{tableClass:e})),i}}},2368(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_106746.svg",name:"transaction",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store,i=n.findTypeURIs(e);return i["http://www.w3.org/2000/10/swap/pim/qif#Transaction"]?"$$":n.any(e,r.ns.qu("amount"))?"$$$":i["http://www.w3.org/ns/pim/trip#Trip"]?"Trip $":null},render:function(e,t){const n=t.dom,a=t.session.store,s=a.fetcher,c=i.Namespace("http://www.w3.org/2000/10/swap/pim/qif#"),l=i.Namespace("http://www.w3.org/ns/pim/trip#"),u=n.createElement("div");u.setAttribute("class","transactionPane");const d=function(e){return function(e,t){void 0===t&&(t="color: grey");const r=n.createElement("pre");r.setAttribute("style",t),u.appendChild(r),r.appendChild(n.createTextNode(e))}(e,"color: #100; background-color: #fee")},p=a.statementsMatching(e),f=a.statementsMatching(void 0,void 0,e),h=a.findTypeURIs(e),m={},g=function(e){m[e.uri]=!0},v=function(e){if(void 0===e)return"";const t=""+e;return t.indexOf(".")>=0?t.split(".")[0]+"."+(t.split(".")[1]+"00").slice(0,2):t+".00"},b=function(e,t){const r=n.createElement("td");return 0+e===0&&t||(r.textContent=v(e)),r.setAttribute("style","width: 6em; text-align: right; "),r},y=function(e){const t=n.createElement("th");return t.textContent=e,t.setAttribute("style","text-align: right; "),t},w=function(e,t){const n=a.any(e,o.qu("date")),r=a.any(t,o.qu("date"));if(void 0!==n&&void 0!==r){if(n.value<r.value)return-1;if(n.value>r.value)return 1}return e.uri<t.uri?-1:e.uri>t.uri?1:0},x=function(e,n,r,i,a){n.expanded?(n.parentNode.removeChild(n.expanded),n.expanded=!1):function(e,n,r,i,a){const o=n.parentNode.children;if(a)for(let e=o.length-1;e>=0;e--)o[e].expanded&&(o[e].parentNode.removeChild(o[e].expanded),o[e].expanded=!1);const s=e.createElement("tr"),c=s.appendChild(e.createElement("td"));c.setAttribute("style","width: 98%; padding: 1em; border: 0.1em solid grey;");const l=n.children.length;n.nextSibling?n.parentNode.insertBefore(s,n.nextSibling):n.parentNode.appendChild(s),n.expanded=s,c.setAttribute("colspan",""+l),c.appendChild(function(e,t,n){const r=e.session.paneRegistry.byName(n).render(t,e);return r.setAttribute("style","border: 0.1em solid green;"),r}(t,r,i))}(e,n,r,i,a)};if(h["http://www.w3.org/2000/10/swap/pim/qif#Transaction"]||a.any(e,o.qu("toAccount"))){g(o.rdf("type"));const h=a.any(e,r.ns.qu("toAccount"));!function(e){let t="padding: 0.5em 1.5em 1em 1.5em; ";if(e){const n=a.any(e,r.ns.ui("backgroundColor"));n&&(t+="background-color: "+n.value+"; ")}u.setAttribute("style",t)}(h),h||d("(Error: There is no bank account known for this transaction <"+e.uri+">,\n -- every transaction needs one.)");let v=null;const b=a.any(e,r.ns.qu("accordingTo"));void 0===b?d("(Error: There is no back link to the original data source foir this transaction <"+e.uri+">,\nso I can't tell how to annotate it.)"):(v=void 0!==b?a.any(b,r.ns.qu("annotationStore")):null,void 0===v&&d("(There is no annotation document for this statement\n<"+b.uri+">,\nso you cannot classify this transaction.)"));const y=n.createElement("div");y.setAttribute("style","float:right"),u.appendChild(y);const w=function(t,i){g(t);const o=a.any(e,t);if(!o)return;const s=n.createElement("a");s.setAttribute("href",o.uri),s.setAttribute("style","float:right"),y.appendChild(s).textContent=i||r.utils.label(o),y.appendChild(n.createElement("br"))};w(r.ns.qu("toAccount")),w(r.ns.qu("accordingTo"),"Statement"),w(l("trip"));const x=n.createElement("table");u.appendChild(x);const A=["date","payee","amount","in_USD","currency"].map(c).map(function(t){g(t);const n=a.any(e,t),i=n?r.utils.labelForXML(n):"";return'<tr><td style="text-align: right; padding-right: 0.6em">'+r.utils.labelForXML(t)+'</td><td style="font-weight: bold;">'+i+"</td></tr>"}).join("\n");x.innerHTML=A;const E=function(e,t){e||d("Sorry, failed to save your change:\n"+t)};v&&a.fetcher.nowOrWhenFetched(v.uri,e,function(c,h){c||d("Cannot load store "+v+" "+h);const b=a.any(v,o.qu("calendarYear")),y=function(){u.insertBefore(r.widgets.makeSelectForNestedCategory(n,a,e,r.ns.qu("Classified"),v,E),x.nextSibling)};a.any(void 0,o.rdfs("subClassOf"),o.qu.Classified)?y():b&&s.load(b).then(function(e){s.load(a.each(b,o.rdfs("seeAlso"))).then(function(){y()}).catch(function(e){})}).catch(function(e){}),u.appendChild(r.widgets.makeDescription(n,a,e,r.ns.rdfs("comment"),v,E));let w=a.statementsMatching(void 0,l("trip"),void 0,v).map(function(e){return e.object});const A=a.each(void 0,r.ns.rdf("type"),l("Trip"));w=w.concat(A).sort();w=function(e,t,n,r){const i=t.map(function(t){let r=e.any(t,n);return r=r?r.value:"9999-12-31",[r,t]});return i.sort(),r&&i.reverse(),i.map(function(e){return e[1]})}(a,w,r.ns.cal("dtstart"),!0),w.length>1&&u.appendChild(r.widgets.makeSelectForOptions(n,a,e,l("trip"),w,{multiple:!1,nullLabel:"-- what trip? --",mint:"New Trip *",mintClass:l("Trip"),mintStatementsFun:function(e){const t=[];return t.push(i.st(e,r.ns.rdf("type"),l("Trip"),e.doc())),t}},v,E)),u.appendChild(n.createElement("br"));const C=t.getOutliner(n);g(o.rdfs("comment")),r.widgets.attachmentList(n,e,u),g(o.wf("attachment")),u.appendChild(n.createElement("tr")).setAttribute("style","height: 1em"),C.appendPropertyTRs(u,p,!1,function(e,t){return!(e.uri in m)}),C.appendPropertyTRs(u,f,!0,function(e,t){return!(e.uri in m)})})}else if(h["http://www.w3.org/ns/pim/trip#Trip"]){const t=function(){const t={},i={},s={},c=a.each(void 0,l("trip"),e),p=c.map(function(e){return e.doc()});a.fetcher.load(p).then(function(){c.forEach(function(e){const n=a.the(e,o.qu("date")),c=n?(""+n.value).slice(0,4):"????";let l=a.the(e,o.rdf("type"));if(l||(l=r.ns.qu("ErrorNoType")),l&&l.uri){const n=l.uri;i[c]||(i[c]=0),s[c]||(s[c]={}),t[n]||(t[n]=0),s[c][n]||(s[c][n]=0);const o=a.any(e,r.ns.qu("in_USD"));if(o||d("@@ No amount in USD: "+o+" for "+e),o){const e=parseFloat(o.value);t[n]+=e,s[c][n]+=e,i[c]+=e}}});const l=[];let p=0;const f=[];let h;for(const e in s)Object.prototype.hasOwnProperty.call(s,e)&&f.push(e);f.sort();const m=f.length;let g;const A=u.appendChild(n.createElement("table"));if(A.setAttribute("style","font-size: 120%; margin-left:auto; margin-right:1em; margin-top: 1em; border: 0.05em solid gray; padding: 1em;"),m>1){const e=A.appendChild(n.createElement("tr"));for(e.appendChild(y("")),h=0;h<m;h++)e.appendChild(y(f[h]));e.appendChild(y("total"))}for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(l.push(e),p+=t[e]);let E,C,k;l.sort();for(let e=0;e<l.length;e++){const i=a.sym(l[e]);if(E=A.appendChild(n.createElement("tr")),C=E.appendChild(n.createElement("td")),C.textContent=r.utils.label(i),m>1)for(h=0;h<m;h++)k=s[f[h]][l[e]],g=E.appendChild(b(k,!0));E.appendChild(b(t[l[e]],!0))}if(l.length>1){if(E=A.appendChild(n.createElement("tr")),E.appendChild(y("total")),m>1)for(h=0;h<m;h++)k=i[f[h]],g=E.appendChild(b(k?v(k):""));g=E.appendChild(b(p)),g.setAttribute("style","font-weight: bold; text-align: right;")}const _=function(e,t,n){const i=e.createElement("table");i.setAttribute("style","padding-left: 0.5em; padding-right: 0.5em; font-size: 9pt; width: 85%;");const s=function(e,t){const n=e.createElement("tr"),i=a.any(t,o.qu("toAccount"));!function(e,t){let n="'padding-left: 0.5em; padding-right: 0.5em; padding-top: 0.1em;";if(t){const e=a.any(t,r.ns.ui("backgroundColor"));e&&(n+="background-color: "+e.value+"; ")}e.setAttribute("style",n)}(n,i);const s=n.appendChild(e.createElement("td")),c=a.any(t,o.qu("date"));s.textContent=c?c.value.slice(0,10):"???",s.setAttribute("style","width: 7em;");const l=n.appendChild(e.createElement("td"));l.setAttribute("style","width: 36em;");const u=a.any(t,o.qu("payee"));l.textContent=u?u.value:"???";const d=l.appendChild(e.createElement("a"));d.textContent=" ➜",d.setAttribute("href",t.uri);const p=n.appendChild(e.createElement("td")),f=a.any(t,o.qu("in_USD"));return p.textContent=f?v(f.value):"???",p.setAttribute("style","width: 6em; text-align: right; "),n.addEventListener("click",function(r){x(e,n,t,"transaction",!r.shiftKey)},!1),n},c=n?t.filter(n):t.slice();c.sort(w);for(let t=0;t<c.length;t++)i.appendChild(s(e,c[t]));return i}(n,c);_.setAttribute("style","margin-left:auto; margin-right:1em; margin-top: 1em; border: padding: 1em;"),u.appendChild(_),r.widgets.attachmentList(n,e,u)}).catch(function(e){d("Error loading transactions: "+e)})};t()}return u}}},8131(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o}(e,t)}(n(500));const i=r.ns;t.default={icon:r.icons.iconBase+"noun_142708.svg",name:"period",audience:[i.solid("PowerUser")],label:function(e,t){return t.session.store.findTypeURIs(e)["http://www.w3.org/2000/10/swap/pim/qif#Period"]?"period":null},render:function(e,t){const n=t.dom,i=t.session.store,a=r.ns,o=n.createElement("div");o.setAttribute("class","periodPane");const s=function(e,t){t||(t="color: grey;");const r=n.createElement("pre");r.setAttribute("style",t),o.appendChild(r),r.appendChild(n.createTextNode(e))},c=function(e){return s("✓ "+e,"color: #010; background-color: #efe")},l=function(e){return s(e,"color: #100; background-color: #fee")},u=function(){const s=i.any(e,a.cal("dtstart"));void 0===s&&l("(Error: There is no start date known for this period <"+e.uri+">,\n -- every period needs one.)");const u=i.any(e,a.cal("dtend"));void 0===u&&l("(Error: There is no end date known for this period <"+e.uri+">,\n -- every period needs one.)");const d={};var p;p=a.rdf("type"),d[p.uri]=!0;const f=function(e){return!!((t=i.any(e,a.qu("date")))&&t>=s&&t<u);var t},h=function(e,t){const n=i.any(e,a.qu("date")),r=i.any(t,a.qu("date"));if(void 0!==n&&void 0!==r){if(n.value<r.value)return-1;if(n.value>r.value)return 1}return e.uri<t.uri?-1:e.uri>t.uri?1:0};o.appendChild(n.createElement("h2")).textContent="Period "+s.value.slice(0,10)+" - "+u.value.slice(0,10);const m=function(e,n,r,i,a){n.expanded?(n.parentNode.removeChild(n.expanded),n.expanded=!1):function(e,n,r,i,a){const o=n.parentNode.children;if(a)for(let e=o.length-1;e>=0;e--)o[e].expanded&&(o[e].parentNode.removeChild(o[e].expanded),o[e].expanded=!1);const s=e.createElement("tr"),c=s.appendChild(e.createElement("td"));c.setAttribute("style","width: 98%; padding: 1em; border: 0.1em solid grey;");const l=n.children.length;n.nextSibling?n.parentNode.insertBefore(s,n.nextSibling):n.parentNode.appendChild(s),n.expanded=s,c.setAttribute("colspan",""+l),c.appendChild(function(e,t,n){const r=e.session.paneRegistry.byName(n).render(t,e);return r.setAttribute("style","border: 0.1em solid green;"),r}(t,r,i))}(e,n,r,i,a)},g=function(e,t){const n=e.createElement("table");n.setAttribute("style","margin-left: 100; font-size: 9pt; width: 85%;");const o=function(e,t){const n=e.createElement("tr"),o=i.any(t,a.qu("toAccount"));!function(e,t){let n="margin-left: 8em; padding-left: 5em;";if(t){const e=i.any(t,r.ns.ui("backgroundColor"));e&&(n+="background-color: "+e.value+"; ")}e.setAttribute("style",n)}(n,o);const s=n.appendChild(e.createElement("td")),c=i.any(t,a.qu("date"));s.textContent=c?c.value.slice(0,10):"???",s.setAttribute("style","width: 7em;");const l=n.appendChild(e.createElement("td"));l.setAttribute("style","width: 36em;");const u=i.any(t,a.qu("payee"));l.textContent=u?u.value:"???";const d=l.appendChild(e.createElement("a"));d.textContent=" ➜",d.setAttribute("href",t.uri);const p=n.appendChild(e.createElement("td")),f=i.any(t,a.qu("in_USD"));return p.textContent=f?function(e){const t=""+e;return t.indexOf(".")>=0?t.split(".")[0]+"."+(t.split(".")[1]+"00").slice(0,2):t+".00"}(f.value):"???",p.setAttribute("style","width: 6em; text-align: right; "),n.addEventListener("click",function(r){m(e,n,t,"transaction",!r.shiftKey)},!1),n},s=t.filter(f);s.sort(h);for(let t=0;t<s.length;t++)n.appendChild(o(e,s[t]));return n},v={"http://www.w3.org/2000/10/swap/pim/qif#Transaction":!0,"http://www.w3.org/2000/10/swap/pim/qif#Unclassified":!0,"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedOutgoing":!0,"http://www.w3.org/2000/10/swap/pim/qif#UnclassifiedIncome":!0},b=i.findMemberURIs(a.qu("Transaction")),y=[],w=[];let x,A,E,C;for(const e in b)if(Object.prototype.hasOwnProperty.call(b,e)){A=i.sym(e);const t=i.each(A,a.rdf("type"));let n=!1;for(let e=0;e<t.length;e++){void 0===v[t[e].uri]&&(n=!0)}n||(x=i.any(A,a.qu("in_USD")),void 0===x&&(x=i.any(A,a.qu("amount"))),x&&(""+x.value).indexOf("-")>=0?w.push(i.sym(e)):y.push(i.sym(e)))}y.length?(E=g(n,y),C=E.children.length,o.appendChild(n.createElement("h3")).textContent="Unclassified Income"+(C<4?"":" ("+C+")"),o.appendChild(E)):c("No unclassified income"),w.length?(E=g(n,w),C=E.children.length,o.appendChild(n.createElement("h3")).textContent="Unclassified Outgoings"+(C<4?"":" ("+C+")"),o.appendChild(E)):c("No unclassified outgoings ");const k=function(e,t){const s=function(e){const t=i.findSubClassesNT(a.qu("Transaction"));for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&n.slice(1,-1).split("#")[1]===e)return i.sym(n.slice(1,-1));return null}(e);let c;const u=[];let d=0;if(!s)return l("Error: No category correspnding to "+e),null;const p=i.each(void 0,a.rdf("type"),s);for(let e=0;e<p.length;e++)i.any(p[e],t)||u.push(p[e]);return u.length&&(c=g(n,u),d=c.children.length,o.appendChild(n.createElement("h3")).textContent=r.utils.label(s)+" with no "+r.utils.label(t)+(d<4?"":" ("+d+")"),o.appendChild(c)),d};0===k("Reimbursables",a.trip("trip"))&&c("Reimbursables all have trips"),0===k("Other_Inc_Speaking",a.trip("trip"))&&c("Speaking income all has trips")};if(i.findTypeURIs(e)["http://www.w3.org/2000/10/swap/pim/qif#Period"]){const t=i.each(e,a.rdfs("seeAlso"));i.fetcher.load(t).then(function(){u()})}return o}}},5130(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_62007.svg",name:"travel expenses",audience:[o.solid("PowerUser")],label:function(e,t){const n=t.session.store,i=n.findTypeURIs(e);return r.ns.qu("Transaction")in n.findSuperClassesNT(e)?"by Trip":i["http://www.w3.org/ns/pim/trip#Trip"]?"Trip $":null},render:function(e,t){const n=t.dom,a=t.store,o=r.ns,s=i.Namespace("http://www.w3.org/2002/12/cal/ical#"),c=i.Namespace("http://www.w3.org/ns/pim/trip#"),l=n.createElement("div");l.setAttribute("class","transactionPane"),l.innerHTML="<h2>Trip transactions</h2>";const u=function(e,t){void 0===t&&(t="color: grey");const r=n.createElement("pre");r.setAttribute("style",t),l.appendChild(r),r.appendChild(n.createTextNode(e))},d=a.findTypeURIs(e),p=function(e,t){const s=new i.Query(r.utils.label(e)),l={};["date","transaction","comment","type","in_USD"].forEach(function(e){s.vars.push(l[e]=i.variable(e))}),s.pat.add(l.transaction,c("trip"),e);const d=a.formula();d.add(l.transaction,o.rdf("type"),l.type),s.pat.optional.push(d),s.pat.add(l.transaction,r.ns.qu("date"),l.date),d.add(l.transaction,o.rdfs("comment"),l.comment),s.pat.optional.push(d),s.pat.add(l.transaction,r.ns.qu("in_USD"),l.in_USD);const p=r.table(n,{query:s,onDone:function(){const t={},n=a.each(void 0,c("trip"),e);n.forEach(function(e){let n=a.the(e,o.rdf("type"));if(n||(n=r.ns.qu("ErrorNoType")),n&&n.uri){const i=n.uri;t[i]||(t[i]=0);const o=a.any(e,r.ns.qu("in_USD"));o||u(" @@ No amount in USD: "+o+" for "+e),o&&(t[i]=t[i]+parseFloat(o.value))}});let i="",s=0,l=0;for(const e in t)i+=r.utils.label(a.sym(e))+": "+t[e]+"; ",s++,l+=t[e];u("Totals of "+n.length+" transactions: "+i,""),s>1&&u("Overall net: "+l,"text-treatment: bold;")}});t.appendChild(p)};if(r.ns.qu("Transaction")in a.findSuperClassesNT(e)){const t=a.each(void 0,o.rdf("type"),e),n=[],i=[];for(let e=0;e<t.length;e++){const o=t[e],s=a.any(o,c("trip"));if(s){o in i||(i[s]={total:0,transactions:[]});const e=a.any(o,r.ns.qu("in_USD"));e&&(i[s].total+=e);const t=a.any(o,r.ns.qu("date"));i[s.toNT()].transactions.push([t,o])}else n.push(o)}const u=[];for(const e in i){const t=a.fromNT(e);u.push([a.any(t,s("dtstart")),t])}u.sort();for(let e=0;e<u.length;e++){p(u[e][1],l)}}else d["http://www.w3.org/ns/pim/trip#Trip"]&&p(e,l);return l}}},5438(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createApplicationTable=function e(t){const n=c("table",{class:"results"}),r=l("tr",[u("th","Application URL"),u("th","Access modes"),u("th","Actions")]);return n.appendChild(r),a.store.each(t,i.ns.acl("trustedApp"),void 0,void 0).flatMap(e=>a.store.each(e,i.ns.acl("origin"),void 0,void 0).map(t=>({appModes:a.store.each(e,i.ns.acl("mode"),void 0,void 0),origin:t}))).sort((e,t)=>e.origin.value<t.origin.value?-1:1).forEach(({appModes:e,origin:r})=>n.appendChild(s(t,r,e,o))),n.appendChild(s(t,null,[i.ns.acl("Read")],o)),n;function o(){n.parentElement.replaceChild(e(t),n)}},t.createContainer=l,t.createText=u;var r=n(8230),i=n(500),a=n(9332),o=n(8847);function s(e,t,n,s){const p={origin:t,appModes:n,formElements:{modes:[],origin:void 0}};return l("tr",[l("td",[l("form",[c("input",{class:"textinput",placeholder:"Write new URL here",value:t?t.value:""},{},e=>{p.formElements.origin=e})],{},{submit:f})]),l("td",[l("form",d(p),{},{submit:f})]),l("td",[l("form",t?[u("button","Update",{class:"controlButton",style:"background: LightGreen;"}),u("button","Delete",{class:"controlButton",style:"background: LightCoral;"},{click:function(t){let n;t.preventDefault();try{n=(0,r.sym)(p.formElements.origin.value)}catch(e){return alert("Please provide an application URL you want to remove trust from")}const s=(0,o.getStatementsToDelete)(n,e,a.store,i.ns);if(!a.store.updater)throw new Error("Store has no updater");a.store.updater.update(s,[],h)}})]:[u("button","Add",{class:"controlButton",style:"background: LightGreen;"})],{},{submit:f})])]);function f(t){let n;t.preventDefault();try{n=(0,r.sym)(p.formElements.origin.value)}catch(e){return alert("Please provide an application URL you want to trust")}const s=p.formElements.modes.filter(e=>e.checked).map(e=>e.value),c=(0,o.getStatementsToDelete)(p.origin||n,e,a.store,i.ns),l=(0,o.getStatementsToAdd)(n,(0,o.generateRandomString)(),s,e,i.ns);if(!a.store.updater)throw new Error("Store has no updater");a.store.updater.update(c,l,h)}function h(e,t,n){if(t)return s()}}function c(e,t={},n={},r=null){const i=document.createElement(e);return r&&r(i),Object.keys(t).forEach(e=>{i.setAttribute(e,t[e])}),Object.keys(n).forEach(e=>{i.addEventListener(e,n[e])}),i}function l(e,t,n={},r={},i=null){const a=c(e,n,r,i);return t.forEach(e=>a.appendChild(e)),a}function u(e,t,n={},r={},i=null){const a=c(e,n,r,i);return a.textContent=t,a}function d({appModes:e,formElements:t}){return["Read","Write","Append","Control"].map(n=>l("label",[c("input",{type:"checkbox",...e.some(e=>e.value===i.ns.acl(n).value)?{checked:""}:{},value:i.ns.acl(n).uri},{},e=>t.modes.push(e)),u("span",n)]))}},8847(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateRandomString=function(){return Math.random().toString(36).substr(2,5)},t.getStatementsToAdd=function(e,t,n,i,a){const o=new r.BlankNode(`bn_${t}`);return[(0,r.st)(i,a.acl("trustedApp"),o,i.doc()),(0,r.st)(o,a.acl("origin"),e,i.doc()),...n.map(e=>(0,r.sym)(e)).map(e=>(0,r.st)(o,a.acl("mode"),e,i.doc()))]},t.getStatementsToDelete=function(e,t,n,r){const i=n.statementsMatching(null,r.acl("origin"),e);return i.reduce((e,i)=>e.concat(n.statementsMatching(t,r.acl("trustedApp"),i.subject)).concat(n.statementsMatching(i.subject)),[])};var r=n(8230)},1917(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(500),i=n(9332),a=n(5438);const o={global:!0,icon:`${r.icons.iconBase}noun_15177.svg`,name:"trustedApplications",label:()=>null,render:(e,t)=>{const n=t.dom,o=n.createElement("div");o.classList.add("trusted-applications-pane"),o.setAttribute("style","border: 0.3em solid #418d99; border-radius: 0.5em; padding: 0.7em; margin-top:0.7em;");const s=o.appendChild(n.createElement("table")),c=s.appendChild(n.createElement("tr")),l=s.appendChild(n.createElement("tr")).appendChild(n.createElement("div"));return l.setAttribute("style","padding: 0.7em;"),async function(e,t,n){const o=await r.login.ensureLoadedProfile({dom:e,div:t,statusArea:n,me:null}),s=o.me,c=s.doc();if(!i.store.updater)throw new Error("Store has no updater");const l=i.store.updater.editable(c.uri,i.store);if(t.appendChild((0,a.createText)("h3","Manage your trusted applications")),!l)return void t.appendChild(r.widgets.errorMessageBlock(e,`Your profile ${s.doc().uri} is not editable, so we cannot do much here.`));t.appendChild((0,a.createText)("p","Here you can manage the applications you trust."));const u=(0,a.createApplicationTable)(s);t.appendChild(u),t.appendChild((0,a.createText)("h4","Notes")),t.appendChild((0,a.createContainer)("ol",[t.appendChild((0,a.createText)("li","Trusted applications will get access to all resources that you have access to.")),t.appendChild((0,a.createText)("li","You can limit which modes they have by default.")),t.appendChild((0,a.createText)("li","They will not gain more access than you have."))])),t.appendChild((0,a.createText)("p","Application URLs must be valid URL. Examples are http://localhost:3000, https://trusted.app, and https://sub.trusted.app."))}(n,c,l).catch(e=>l.appendChild(r.widgets.errorMessageBlock(n,e))),o}};t.default=o},6682(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}const o=r.ns;t.default={icon:r.icons.iconBase+"noun_170702.svg",name:"ui",audience:[o.solid("PowerUser")],label:function(e,t){const n=r.ns,i=t.session.store.findTypeURIs(e);return i[n.rdfs("Class").uri]?"creation forms":i[n.ui("Form").uri]?"edit form":null},render:function(e,t){const n=t.dom,a=t.session.store,o=r.ns,s=n.createElement("div");s.setAttribute("class","formPane");const c=r.utils.label(e),l=function(e,t){const r=n.createElement("p");return r.setAttribute("style",t||"color: grey; background-color: white"),s.appendChild(r).textContent=e,r},u=function(e,t){l(e,"style")},d=function(e,t){e||u("Sorry, failed to save your change:\n"+t)},p=a.findTypeURIs(e);let f,h,m=null;e.uri&&(f=i.Util.uri.docpart(e.uri),e.uri!==f&&a.updater.editable(f)&&(m=a.sym(i.Util.uri.docpart(e.uri)))),m||(m=a.any(a.sym(f),o.link("annotationStore"))),m||(m=r.widgets.defaultAnnotationStore(e)),m||(m=a.sym("https://formsregistry.solid.community/public/formRegistry/")),p[o.rdfs("Class").uri];const g=l("(Loading data from: "+m+")");return a.fetcher.nowOrWhenFetched(m.uri,e,function(i,f){if(i)if(s.removeChild(g),p[o.rdfs("Class").uri]){const i=function(i,p){const f=a.statementsMatching(e,i),h=t.getOutliner(n);if(f.length){for(let t=0;t<f.length;t++){h.appendPropertyTRs(s,[f[t]]);const i=f[t].object,c=n.createElement("td");s.lastChild.appendChild(c),p&&c.appendChild(r.widgets.newButton(n,a,null,null,e,i,m,function(e,t){e||u("Sorry, failed to save your change:\n"+t)}));let l=a.statementsMatching(i,o.rdf("type"));l.length||(l=a.statementsMatching(i)),l.length?r.widgets.editFormButton(n,s,i,l[0].why,d):u("No data about form")}s.appendChild(n.createElement("hr"))}else l("There are currently no known forms to make a "+c+".")};h=o.ui("creationForm"),s.appendChild(n.createElement("h2")).textContent=r.utils.label(h),l("Creation forms allow you to add information about a new thing, in this case a new "+c+"."),i(h,!0),s.appendChild(n.createElement("hr")),l("You can make a new creation form:"),s.appendChild(r.widgets.newButton(n,a,e,h,o.ui("Form"),null,m,d)),s.appendChild(n.createElement("hr")),h=o.ui("annotationForm"),s.appendChild(n.createElement("h2")).textContent=r.utils.label(h),l("Annotaion forms allow you to add extra information about a ,"+c+" we already know about."),i(h,!1),s.appendChild(n.createElement("hr")),l("You can make a new annotation form:"),s.appendChild(r.widgets.newButton(n,a,e,h,o.ui("Form"),null,m,d)),l("(Storing new forms in: "+m+")")}else p[o.ui("Form").uri]?r.widgets.appendForm(n,s,a,e,o.ui("FormForm"),m,d):u("ui/pane internal error -- Eh?");else u("Cannot load store "+m+" :"+f)}),s}}},4959(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={buildTime:"2026-03-13T13:33:44Z",commit:"2d694e9f4e7df87987d422de48258935ec12ab13",npmInfo:{"solid-panes":"4.2.3",npm:"11.11.1",node:"22.22.0",acorn:"8.15.0",ada:"2.9.2",amaro:"1.1.4",ares:"1.34.6",brotli:"1.1.0",cjs_module_lexer:"2.1.0",cldr:"47.0",icu:"77.1",llhttp:"9.3.0",modules:"127",napi:"10",nbytes:"0.1.1",ncrypto:"0.0.1",nghttp2:"1.64.0",openssl:"3.5.4",simdjson:"3.13.0",simdutf:"6.4.2",sqlite:"3.50.4",tz:"2025b",undici:"6.23.0",unicode:"16.0",uv:"1.51.0",uvwasi:"0.0.23",v8:"12.4.254.21-node.33",zlib:"1.3.1-470d3a2",zstd:"1.5.7"}}},6778(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(500)),i=a(n(8230));function a(e,t){if("function"==typeof WeakMap)var n=new WeakMap,r=new WeakMap;return(a=function(e,t){if(!t&&e&&e.__esModule)return e;var i,a,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(i=t?r:n){if(i.has(e))return i.get(e);i.set(e,o)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(i=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?i(o,t,a):o[t]=e[t]);return o})(e,t)}t.default={icon:r.icons.iconBase+"noun_1619.svg",name:"video",label:function(e,t){const n=t.session.store.findTypeURIs(e),r=i.Util.mediaTypeClass("video/*").uri.split("*")[0];for(const e in n)if(e.startsWith(r))return"Play video";return null},render:function(e,t){const n=t.session.store,r=t.dom,i=r.createElement("div"),a=i.appendChild(r.createElement("video"));return a.setAttribute("controls","yes"),n.fetcher._fetch(e.uri).then(function(e){return e.blob()}).then(function(e){const t=URL.createObjectURL(e);a.setAttribute("src",t)}),a.setAttribute("width","100%"),i}}},500(e,t,n){var r;r=(e,t)=>(()=>{var n={49(e,t,n){"use strict";
371
371
  /*!
372
372
  * mime-types
373
373
  * Copyright(c) 2014 Jonathan Ong
@@ -458,5 +458,5 @@ var se=function(){var e=new RegExp('(?:false|true|null|[\\{\\}\\[\\]]|(?:-?\\b(?
458
458
  */
459
459
  var r=n(30),i=n(31),a=n(32);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return d(this,e)}return l(this,e,t,n)}function l(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=p(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|h(t,n),i=(e=s(e,r)).write(t,n);return i!==r&&(e=e.slice(0,i)),e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|f(t.length);return 0===(e=s(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||function(e){return e!=e}(t.length)?s(e,0):p(e,t);if("Buffer"===t.type&&a(t.data))return p(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function d(e,t){if(u(t),e=s(e,t<0?0:0|f(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e,t){var n=t.length<0?0:0|f(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function f(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function h(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return _(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){var a,o=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,c/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(a=n;a<s;a++)if(l(e,a)===l(t,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===c)return u*o}else-1!==u&&(a-=a-u),u=-1}else for(n+c>s&&(n=s-c),a=n;a>=0;a--){for(var d=!0,p=0;p<c;p++)if(l(e,a+p)!==l(t,p)){d=!1;break}if(d)return a}return-1}function y(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[n+o]=s}return o}function w(e,t,n,r){return q(z(t,e.length-n),e,n,r)}function x(e,t,n,r){return q(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function A(e,t,n,r){return x(e,t,n,r)}function E(e,t,n,r){return q(H(t),e,n,r)}function C(e,t,n,r){return q(function(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function k(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function _(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a,o,s,c,l=e[i],u=null,d=l>239?4:l>223?3:l>191?2:1;if(i+d<=n)switch(d){case 1:l<128&&(u=l);break;case 2:128==(192&(a=e[i+1]))&&(c=(31&l)<<6|63&a)>127&&(u=c);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(c=(15&l)<<12|(63&a)<<6|63&o)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return function(e){var t=e.length;if(t<=S)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=S));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){return+e!=e&&(e=0),c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return l(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return u(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return d(null,e)},c.allocUnsafeSlow=function(e){return d(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},c.byteLength=h,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?_(this,0,e):m.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),l=this.slice(r,i),u=e.slice(t,n),d=0;d<s;++d)if(l[d]!==u[d]){a=l[d],o=u[d];break}return a<o?-1:o<a?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var S=4096;function T(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function F(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=U(e[a]);return i}function R(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function I(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,i,a){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i<a;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function B(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i<a;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function O(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,a){return a||O(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function D(e,t,n,r,a){return a||O(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var i=t-e;n=new c(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},c.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||N(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||N(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a<n&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o|0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return D(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return D(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,a=r-n;if(this===e&&n<t&&t<r)for(i=a-1;i>=0;--i)e[i+t]=this[i+n];else if(a<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=c.isBuffer(e)?e:z(new c(e,r).toString()),s=o.length;for(a=0;a<n-t;++a)this[a+t]=o[a%s]}return this};var M=/[^+\/0-9A-Za-z-_]/g;function U(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){var n;t=t||1/0;for(var r=e.length,i=null,a=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(M,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(29))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=c(e),o=r[0],s=r[1],l=new a(function(e,t,n){return 3*(t+n)/4-n}(0,o,s)),u=0,d=s>0?o-4:o;for(n=0;n<d;n+=4)t=i[e.charCodeAt(n)]<<18|i[e.charCodeAt(n+1)]<<12|i[e.charCodeAt(n+2)]<<6|i[e.charCodeAt(n+3)],l[u++]=t>>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===s&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,l[u++]=255&t),1===s&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,a=[],o=16383,s=0,c=n-i;s<c;s+=o)a.push(l(e,s,s+o>c?c:s+o));return 1===i?(t=e[n-1],a.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],a.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),a.join("")};for(var r=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)r[s]=o[s],i[o.charCodeAt(s)]=s;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var i,a,o=[],s=t;s<n;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),o.push(r[(a=i)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){
460
460
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
461
- t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,c=(1<<s)-1,l=c>>1,u=-7,d=n?i-1:0,p=n?-1:1,f=e[t+d];for(d+=p,a=f&(1<<-u)-1,f>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=p,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=p,u-=8);if(0===a)a=1-l;else{if(a===c)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,r),a-=l}return(f?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,c,l=8*a-i-1,u=(1<<l)-1,d=u>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:a-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+d>=1?p/c:p*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*c-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&s,f+=h,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+f]=255&o,f+=h,o/=256,l-=8);e[n+f-h]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.jws,n=e.KeyUtil,i=e.X509,a=e.crypto,o=e.hextob64u,s=e.b64tohex,c=e.AllowedSigningAlgs;return function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.parseJwt=function e(n){r.Log.debug("JoseUtil.parseJwt");try{var i=t.JWS.parse(n);return{header:i.headerObj,payload:i.payloadObj}}catch(e){r.Log.error(e)}},e.validateJwt=function(t,a,o,c,l,u,d){r.Log.debug("JoseUtil.validateJwt");try{if("RSA"===a.kty)if(a.e&&a.n)a=n.getKey(a);else{if(!a.x5c||!a.x5c.length)return r.Log.error("JoseUtil.validateJwt: RSA key missing key material",a),Promise.reject(new Error("RSA key missing key material"));var p=s(a.x5c[0]);a=i.getPublicKeyFromCertHex(p)}else{if("EC"!==a.kty)return r.Log.error("JoseUtil.validateJwt: Unsupported key type",a&&a.kty),Promise.reject(new Error(a.kty));if(!(a.crv&&a.x&&a.y))return r.Log.error("JoseUtil.validateJwt: EC key missing key material",a),Promise.reject(new Error("EC key missing key material"));a=n.getKey(a)}return e._validateJwt(t,a,o,c,l,u,d)}catch(e){return r.Log.error(e&&e.message||e),Promise.reject("JWT validation failed")}},e.validateJwtAttributes=function(t,n,i,a,o,s){a||(a=0),o||(o=parseInt(Date.now()/1e3));var c=e.parseJwt(t).payload;if(!c.iss)return r.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(c.iss!==n)return r.Log.error("JoseUtil._validateJwt: Invalid issuer in token",c.iss),Promise.reject(new Error("Invalid issuer in token: "+c.iss));if(!c.aud)return r.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));if(!(c.aud===i||Array.isArray(c.aud)&&c.aud.indexOf(i)>=0))return r.Log.error("JoseUtil._validateJwt: Invalid audience in token",c.aud),Promise.reject(new Error("Invalid audience in token: "+c.aud));if(c.azp&&c.azp!==i)return r.Log.error("JoseUtil._validateJwt: Invalid azp in token",c.azp),Promise.reject(new Error("Invalid azp in token: "+c.azp));if(!s){var l=o+a,u=o-a;if(!c.iat)return r.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(l<c.iat)return r.Log.error("JoseUtil._validateJwt: iat is in the future",c.iat),Promise.reject(new Error("iat is in the future: "+c.iat));if(c.nbf&&l<c.nbf)return r.Log.error("JoseUtil._validateJwt: nbf is in the future",c.nbf),Promise.reject(new Error("nbf is in the future: "+c.nbf));if(!c.exp)return r.Log.error("JoseUtil._validateJwt: exp was not provided"),Promise.reject(new Error("exp was not provided"));if(c.exp<u)return r.Log.error("JoseUtil._validateJwt: exp is in the past",c.exp),Promise.reject(new Error("exp is in the past:"+c.exp))}return Promise.resolve(c)},e._validateJwt=function(n,i,a,o,s,l,u){return e.validateJwtAttributes(n,a,o,s,l,u).then(function(e){try{return t.JWS.verify(n,i,c)?e:(r.Log.error("JoseUtil._validateJwt: signature validation failed"),Promise.reject(new Error("signature validation failed")))}catch(e){return r.Log.error(e&&e.message||e),Promise.reject(new Error("signature validation failed"))}})},e.hashString=function e(t,n){try{return a.Util.hashString(t,n)}catch(e){r.Log.error(e)}},e.hexToBase64Url=function e(t){try{return o(t)}catch(e){r.Log.error(e)}},e}()};var r=n(0);e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SigninResponse=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(3);t.SigninResponse=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var r=i.UrlUtility.parseUrlFragment(t,n);this.error=r.error,this.error_description=r.error_description,this.error_uri=r.error_uri,this.code=r.code,this.state=r.state,this.id_token=r.id_token,this.session_state=r.session_state,this.access_token=r.access_token,this.token_type=r.token_type,this.scope=r.scope,this.profile=void 0,this.expires_in=r.expires_in}return r(e,[{key:"expires_in",get:function(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function(e){var t=parseInt(e);if("number"==typeof t&&t>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+t}}},{key:"expired",get:function(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SignoutRequest=void 0;var r=n(0),i=n(3),a=n(9);t.SignoutRequest=function e(t){var n=t.url,o=t.id_token_hint,s=t.post_logout_redirect_uri,c=t.data,l=t.extraQueryParams,u=t.request_type;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!n)throw r.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");for(var d in o&&(n=i.UrlUtility.addQueryParam(n,"id_token_hint",o)),s&&(n=i.UrlUtility.addQueryParam(n,"post_logout_redirect_uri",s),c&&(this.state=new a.State({data:c,request_type:u}),n=i.UrlUtility.addQueryParam(n,"state",this.state.id))),l)n=i.UrlUtility.addQueryParam(n,d,l[d]);this.url=n}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SignoutResponse=void 0;var r=n(3);t.SignoutResponse=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var n=r.UrlUtility.parseUrlFragment(t,"?");this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.state=n.state}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.InMemoryWebStorage=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0);t.InMemoryWebStorage=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._data={}}return e.prototype.getItem=function(e){return i.Log.debug("InMemoryWebStorage.getItem",e),this._data[e]},e.prototype.setItem=function(e,t){i.Log.debug("InMemoryWebStorage.setItem",e),this._data[e]=t},e.prototype.removeItem=function(e){i.Log.debug("InMemoryWebStorage.removeItem",e),delete this._data[e]},e.prototype.key=function(e){return Object.getOwnPropertyNames(this._data)[e]},r(e,[{key:"length",get:function(){return Object.getOwnPropertyNames(this._data).length}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.UserManager=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=n(10),o=n(39),s=n(15),c=n(45),l=n(47),u=n(18),d=n(8),p=n(20),f=n(11),h=n(4);t.UserManager=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.SilentRenewService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.SessionMonitor,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:p.TokenRevocationClient,d=arguments.length>4&&void 0!==arguments[4]?arguments[4]:f.TokenClient,m=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.JoseUtil;(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,t),n instanceof o.UserManagerSettings||(n=new o.UserManagerSettings(n));var g=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n));return g._events=new c.UserManagerEvents(n),g._silentRenewService=new r(g),g.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),g.startSilentRenew()),g.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),g._sessionMonitor=new a(g)),g._tokenRevocationClient=new s(g._settings),g._tokenClient=new d(g._settings),g._joseUtil=m,g}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getUser=function(){var e=this;return this._loadUser().then(function(t){return t?(i.Log.info("UserManager.getUser: user loaded"),e._events.load(t,!1),t):(i.Log.info("UserManager.getUser: user not found in storage"),null)})},t.prototype.removeUser=function(){var e=this;return this.storeUser(null).then(function(){i.Log.info("UserManager.removeUser: user removed from storage"),e._events.unload()})},t.prototype.signinRedirect=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:r";var t={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,t).then(function(){i.Log.info("UserManager.signinRedirect: successful")})},t.prototype.signinRedirectCallback=function(e){return this._signinEnd(e||this._redirectNavigator.url).then(function(e){return e.profile&&e.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub"),e})},t.prototype.signinPopup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:p";var t=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return t?(e.redirect_uri=t,e.display="popup",this._signin(e,this._popupNavigator,{startUrl:t,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),e})):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},t.prototype.signinPopupCallback=function(e){return this._signinCallback(e,this._popupNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),e}).catch(function(e){i.Log.error(e.message)})},t.prototype.signinSilent=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=Object.assign({},t),this._loadUser().then(function(n){return n&&n.refresh_token?(t.refresh_token=n.refresh_token,e._useRefreshToken(t)):(t.request_type="si:s",t.id_token_hint=t.id_token_hint||e.settings.includeIdTokenInSilentRenew&&n&&n.id_token,n&&e._settings.validateSubOnSilentRenew&&(i.Log.debug("UserManager.signinSilent, subject prior to silent renew: ",n.profile.sub),t.current_sub=n.profile.sub),e._signinSilentIframe(t))})},t.prototype._useRefreshToken=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(t).then(function(t){return t?t.access_token?e._loadUser().then(function(n){if(n){var r=Promise.resolve();return t.id_token&&(r=e._validateIdTokenFromTokenRefreshToken(n.profile,t.id_token)),r.then(function(){return i.Log.debug("UserManager._useRefreshToken: refresh token response success"),n.id_token=t.id_token||n.id_token,n.access_token=t.access_token,n.refresh_token=t.refresh_token||n.refresh_token,n.expires_in=t.expires_in,e.storeUser(n).then(function(){return e._events.load(n),n})})}return null}):(i.Log.error("UserManager._useRefreshToken: No access token returned from token endpoint"),Promise.reject("No access token returned from token endpoint")):(i.Log.error("UserManager._useRefreshToken: No response returned from token endpoint"),Promise.reject("No response returned from token endpoint"))})},t.prototype._validateIdTokenFromTokenRefreshToken=function(e,t){var n=this;return this._metadataService.getIssuer().then(function(r){return n.settings.getEpochTime().then(function(a){return n._joseUtil.validateJwtAttributes(t,r,n._settings.client_id,n._settings.clockSkew,a).then(function(t){return t?t.sub!==e.sub?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub"),Promise.reject(new Error("sub in id_token does not match current sub"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time"),Promise.reject(new Error("auth_time in id_token does not match original auth_time"))):t.azp&&t.azp!==e.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp"),Promise.reject(new Error("azp in id_token does not match original azp"))):!t.azp&&e.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token"),Promise.reject(new Error("azp not in id_token, but present in original id_token"))):void 0:(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token"),Promise.reject(new Error("Failed to validate id_token")))})})})},t.prototype._signinSilentIframe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return t?(e.redirect_uri=t,e.prompt=e.prompt||"none",this._signin(e,this._iframeNavigator,{startUrl:t,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),e})):(i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},t.prototype.signinSilentCallback=function(e){return this._signinCallback(e,this._iframeNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),e})},t.prototype.signinCallback=function(e){var t=this;return this.readSigninResponseState(e).then(function(n){var r=n.state;return n.response,"si:r"===r.request_type?t.signinRedirectCallback(e):"si:p"===r.request_type?t.signinPopupCallback(e):"si:s"===r.request_type?t.signinSilentCallback(e):Promise.reject(new Error("invalid response_type in state"))})},t.prototype.signoutCallback=function(e,t){var n=this;return this.readSignoutResponseState(e).then(function(r){var i=r.state,a=r.response;return i?"so:r"===i.request_type?n.signoutRedirectCallback(e):"so:p"===i.request_type?n.signoutPopupCallback(e,t):Promise.reject(new Error("invalid response_type in state")):a})},t.prototype.querySessionStatus=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:s";var n=t.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(t.redirect_uri=n,t.prompt="none",t.response_type=t.response_type||this.settings.query_status_response_type,t.scope=t.scope||"openid",t.skipUserInfo=!0,this._signinStart(t,this._iframeNavigator,{startUrl:n,silentRequestTimeout:t.silentRequestTimeout||this.settings.silentRequestTimeout}).then(function(t){return e.processSigninResponse(t.url).then(function(e){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),e.session_state&&e.profile.sub)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",e.profile.sub),{session_state:e.session_state,sub:e.profile.sub,sid:e.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")}).catch(function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&("login_required"==t.message||"consent_required"==t.message||"interaction_required"==t.message||"account_selection_required"==t.message))return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for anonymous user"),{session_state:t.session_state};throw t})})):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},t.prototype._signin=function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,t,r).then(function(t){return n._signinEnd(t.url,e)})},t.prototype._signinStart=function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.prepare(r).then(function(t){return i.Log.debug("UserManager._signinStart: got navigator window handle"),n.createSigninRequest(e).then(function(e){return i.Log.debug("UserManager._signinStart: got signin request"),r.url=e.url,r.id=e.state.id,t.navigate(r)}).catch(function(e){throw t.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),t.close()),e})})},t.prototype._signinEnd=function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then(function(e){i.Log.debug("UserManager._signinEnd: got signin response");var r=new s.User(e);if(n.current_sub){if(n.current_sub!==r.profile.sub)return i.Log.debug("UserManager._signinEnd: current user does not match user returned from signin. sub from signin: ",r.profile.sub),Promise.reject(new Error("login_required"));i.Log.debug("UserManager._signinEnd: current user matches user returned from signin")}return t.storeUser(r).then(function(){return i.Log.debug("UserManager._signinEnd: user stored"),t._events.load(r),r})})},t.prototype._signinCallback=function(e,t){i.Log.debug("UserManager._signinCallback");var n="query"===this._settings.response_mode||!this._settings.response_mode&&d.SigninRequest.isCode(this._settings.response_type)?"?":"#";return t.callback(e,void 0,n)},t.prototype.signoutRedirect=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="so:r";var t=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;t&&(e.post_logout_redirect_uri=t);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then(function(){i.Log.info("UserManager.signoutRedirect: successful")})},t.prototype.signoutRedirectCallback=function(e){return this._signoutEnd(e||this._redirectNavigator.url).then(function(e){return i.Log.info("UserManager.signoutRedirectCallback: successful"),e})},t.prototype.signoutPopup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="so:p";var t=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=t,e.display="popup",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:t,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(){i.Log.info("UserManager.signoutPopup: successful")})},t.prototype.signoutPopupCallback=function(e,t){return void 0===t&&"boolean"==typeof e&&(t=e,e=null),this._popupNavigator.callback(e,t,"?").then(function(){i.Log.info("UserManager.signoutPopupCallback: successful")})},t.prototype._signout=function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,t,r).then(function(e){return n._signoutEnd(e.url)})},t.prototype._signoutStart=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return arguments[1].prepare(n).then(function(r){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),t._loadUser().then(function(a){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(t._settings.revokeAccessTokenOnSignout?t._revokeInternal(a):Promise.resolve()).then(function(){var o=e.id_token_hint||a&&a.id_token;return o&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),e.id_token_hint=o),t.removeUser().then(function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),t.createSignoutRequest(e).then(function(e){return i.Log.debug("UserManager._signoutStart: got signout request"),n.url=e.url,e.state&&(n.id=e.state.id),r.navigate(n)})})})}).catch(function(e){throw r.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),r.close()),e})})},t.prototype._signoutEnd=function(e){return this.processSignoutResponse(e).then(function(e){return i.Log.debug("UserManager._signoutEnd: got signout response"),e})},t.prototype.revokeAccessToken=function(){var e=this;return this._loadUser().then(function(t){return e._revokeInternal(t,!0).then(function(n){if(n)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then(function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),e._events.load(t)})})}).then(function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")})},t.prototype._revokeInternal=function(e,t){var n=this;if(e){var r=e.access_token,a=e.refresh_token;return this._revokeAccessTokenInternal(r,t).then(function(e){return n._revokeRefreshTokenInternal(a,t).then(function(t){return e||t||i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format"),e||t})})}return Promise.resolve(!1)},t.prototype._revokeAccessTokenInternal=function(e,t){return!e||e.indexOf(".")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,t).then(function(){return!0})},t.prototype._revokeRefreshTokenInternal=function(e,t){return e?this._tokenRevocationClient.revoke(e,t,"refresh_token").then(function(){return!0}):Promise.resolve(!1)},t.prototype.startSilentRenew=function(){this._silentRenewService.start()},t.prototype.stopSilentRenew=function(){this._silentRenewService.stop()},t.prototype._loadUser=function(){return this._userStore.get(this._userStoreKey).then(function(e){return e?(i.Log.debug("UserManager._loadUser: user storageString loaded"),s.User.fromStorageString(e)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)})},t.prototype.storeUser=function(e){if(e){i.Log.debug("UserManager.storeUser: storing user");var t=e.toStorageString();return this._userStore.set(this._userStoreKey,t)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},r(t,[{key:"_redirectNavigator",get:function(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function(){return this.settings.iframeNavigator}},{key:"_userStore",get:function(){return this.settings.userStore}},{key:"events",get:function(){return this._events}},{key:"_userStoreKey",get:function(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),t}(a.OidcClient)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.UserManagerSettings=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=(n(0),n(5)),a=n(40),o=n(41),s=n(43),c=n(6),l=n(1),u=n(8);t.UserManagerSettings=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.popup_redirect_uri,i=n.popup_post_logout_redirect_uri,d=n.popupWindowFeatures,p=n.popupWindowTarget,f=n.silent_redirect_uri,h=n.silentRequestTimeout,m=n.automaticSilentRenew,g=void 0!==m&&m,v=n.validateSubOnSilentRenew,b=void 0!==v&&v,y=n.includeIdTokenInSilentRenew,w=void 0===y||y,x=n.monitorSession,A=void 0===x||x,E=n.monitorAnonymousSession,C=void 0!==E&&E,k=n.checkSessionInterval,_=void 0===k?2e3:k,S=n.stopCheckSessionOnError,T=void 0===S||S,P=n.query_status_response_type,F=n.revokeAccessTokenOnSignout,R=void 0!==F&&F,I=n.accessTokenExpiringNotificationTime,N=void 0===I?60:I,L=n.redirectNavigator,B=void 0===L?new a.RedirectNavigator:L,O=n.popupNavigator,j=void 0===O?new o.PopupNavigator:O,D=n.iframeNavigator,M=void 0===D?new s.IFrameNavigator:D,U=n.userStore,z=void 0===U?new c.WebStorageStateStore({store:l.Global.sessionStorage}):U;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var H=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,arguments[0]));return H._popup_redirect_uri=r,H._popup_post_logout_redirect_uri=i,H._popupWindowFeatures=d,H._popupWindowTarget=p,H._silent_redirect_uri=f,H._silentRequestTimeout=h,H._automaticSilentRenew=g,H._validateSubOnSilentRenew=b,H._includeIdTokenInSilentRenew=w,H._accessTokenExpiringNotificationTime=N,H._monitorSession=A,H._monitorAnonymousSession=C,H._checkSessionInterval=_,H._stopCheckSessionOnError=T,P?H._query_status_response_type=P:arguments[0]&&arguments[0].response_type?H._query_status_response_type=u.SigninRequest.isOidc(arguments[0].response_type)?"id_token":"code":H._query_status_response_type="id_token",H._revokeAccessTokenOnSignout=R,H._redirectNavigator=B,H._popupNavigator=j,H._iframeNavigator=M,H._userStore=z,H}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"popup_redirect_uri",get:function(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function(){return this._automaticSilentRenew}},{key:"validateSubOnSilentRenew",get:function(){return this._validateSubOnSilentRenew}},{key:"includeIdTokenInSilentRenew",get:function(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function(){return this._monitorSession}},{key:"monitorAnonymousSession",get:function(){return this._monitorAnonymousSession}},{key:"checkSessionInterval",get:function(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function(){return this._stopCheckSessionOnError}},{key:"query_status_response_type",get:function(){return this._query_status_response_type}},{key:"revokeAccessTokenOnSignout",get:function(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function(){return this._redirectNavigator}},{key:"popupNavigator",get:function(){return this._popupNavigator}},{key:"iframeNavigator",get:function(){return this._iframeNavigator}},{key:"userStore",get:function(){return this._userStore}}]),t}(i.OidcClientSettings)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.RedirectNavigator=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0);t.RedirectNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(){return Promise.resolve(this)},e.prototype.navigate=function(e){return e&&e.url?(e.useReplaceToNavigate?window.location.replace(e.url):window.location=e.url,Promise.resolve()):(i.Log.error("RedirectNavigator.navigate: No url provided"),Promise.reject(new Error("No url provided")))},r(e,[{key:"url",get:function(){return window.location.href}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.PopupNavigator=void 0;var r=n(0),i=n(42);t.PopupNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){var t=new i.PopupWindow(e);return Promise.resolve(t)},e.prototype.callback=function e(t,n,a){r.Log.debug("PopupNavigator.callback");try{return i.PopupWindow.notifyOpener(t,n,a),Promise.resolve()}catch(e){return Promise.reject(e)}},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.PopupWindow=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=n(3);t.PopupWindow=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._promise=new Promise(function(e,t){n._resolve=e,n._reject=t});var r=t.popupWindowTarget||"_blank",a=t.popupWindowFeatures||"location=no,toolbar=no,width=500,height=500,left=100,top=100;";this._popup=window.open("",r,a),this._popup&&(i.Log.debug("PopupWindow.ctor: popup successfully created"),this._checkForPopupClosedTimer=window.setInterval(this._checkForPopupClosed.bind(this),500))}return e.prototype.navigate=function(e){return this._popup?e&&e.url?(i.Log.debug("PopupWindow.navigate: Setting URL in popup"),this._id=e.id,this._id&&(window["popupCallback_"+e.id]=this._callback.bind(this)),this._popup.focus(),this._popup.window.location=e.url):(this._error("PopupWindow.navigate: no url provided"),this._error("No url provided")):this._error("PopupWindow.navigate: Error opening popup window"),this.promise},e.prototype._success=function(e){i.Log.debug("PopupWindow.callback: Successful response from popup window"),this._cleanup(),this._resolve(e)},e.prototype._error=function(e){i.Log.error("PopupWindow.error: ",e),this._cleanup(),this._reject(new Error(e))},e.prototype.close=function(){this._cleanup(!1)},e.prototype._cleanup=function(e){i.Log.debug("PopupWindow.cleanup"),window.clearInterval(this._checkForPopupClosedTimer),this._checkForPopupClosedTimer=null,delete window["popupCallback_"+this._id],this._popup&&!e&&this._popup.close(),this._popup=null},e.prototype._checkForPopupClosed=function(){this._popup&&!this._popup.closed||this._error("Popup window closed")},e.prototype._callback=function(e,t){this._cleanup(t),e?(i.Log.debug("PopupWindow.callback success"),this._success({url:e})):(i.Log.debug("PopupWindow.callback: Invalid response from popup"),this._error("Invalid response from popup"))},e.notifyOpener=function(e,t,n){if(window.opener){if(e=e||window.location.href){var r=a.UrlUtility.parseUrlFragment(e,n);if(r.state){var o="popupCallback_"+r.state,s=window.opener[o];s?(i.Log.debug("PopupWindow.notifyOpener: passing url message to opener"),s(e,t)):i.Log.warn("PopupWindow.notifyOpener: no matching callback found on opener")}else i.Log.warn("PopupWindow.notifyOpener: no state found in response url")}}else i.Log.warn("PopupWindow.notifyOpener: no window.opener. Can't complete notification.")},r(e,[{key:"promise",get:function(){return this._promise}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameNavigator=void 0;var r=n(0),i=n(44);t.IFrameNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){var t=new i.IFrameWindow(e);return Promise.resolve(t)},e.prototype.callback=function e(t){r.Log.debug("IFrameNavigator.callback");try{return i.IFrameWindow.notifyParent(t),Promise.resolve()}catch(e){return Promise.reject(e)}},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameWindow=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0);t.IFrameWindow=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._promise=new Promise(function(e,t){n._resolve=e,n._reject=t}),this._boundMessageEvent=this._message.bind(this),window.addEventListener("message",this._boundMessageEvent,!1),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.width=0,this._frame.height=0,window.document.body.appendChild(this._frame)}return e.prototype.navigate=function(e){if(e&&e.url){var t=e.silentRequestTimeout||1e4;i.Log.debug("IFrameWindow.navigate: Using timeout of:",t),this._timer=window.setTimeout(this._timeout.bind(this),t),this._frame.src=e.url}else this._error("No url provided");return this.promise},e.prototype._success=function(e){this._cleanup(),i.Log.debug("IFrameWindow: Successful response from frame window"),this._resolve(e)},e.prototype._error=function(e){this._cleanup(),i.Log.error(e),this._reject(new Error(e))},e.prototype.close=function(){this._cleanup()},e.prototype._cleanup=function(){this._frame&&(i.Log.debug("IFrameWindow: cleanup"),window.removeEventListener("message",this._boundMessageEvent,!1),window.clearTimeout(this._timer),window.document.body.removeChild(this._frame),this._timer=null,this._frame=null,this._boundMessageEvent=null)},e.prototype._timeout=function(){i.Log.debug("IFrameWindow.timeout"),this._error("Frame window timed out")},e.prototype._message=function(e){if(i.Log.debug("IFrameWindow.message"),this._timer&&e.origin===this._origin&&e.source===this._frame.contentWindow&&"string"==typeof e.data&&(e.data.startsWith("http://")||e.data.startsWith("https://"))){var t=e.data;t?this._success({url:t}):this._error("Invalid response from frame")}},e.notifyParent=function(e){i.Log.debug("IFrameWindow.notifyParent"),(e=e||window.location.href)&&(i.Log.debug("IFrameWindow.notifyParent: posting url message to parent"),window.parent.postMessage(e,location.protocol+"//"+location.host))},r(e,[{key:"promise",get:function(){return this._promise}},{key:"_origin",get:function(){return location.protocol+"//"+location.host}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.UserManagerEvents=void 0;var r=n(0),i=n(16),a=n(17);t.UserManagerEvents=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n));return r._userLoaded=new a.Event("User loaded"),r._userUnloaded=new a.Event("User unloaded"),r._silentRenewError=new a.Event("Silent renew error"),r._userSignedIn=new a.Event("User signed in"),r._userSignedOut=new a.Event("User signed out"),r._userSessionChanged=new a.Event("User session changed"),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.load=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r.Log.debug("UserManagerEvents.load"),e.prototype.load.call(this,t),n&&this._userLoaded.raise(t)},t.prototype.unload=function(){r.Log.debug("UserManagerEvents.unload"),e.prototype.unload.call(this),this._userUnloaded.raise()},t.prototype.addUserLoaded=function(e){this._userLoaded.addHandler(e)},t.prototype.removeUserLoaded=function(e){this._userLoaded.removeHandler(e)},t.prototype.addUserUnloaded=function(e){this._userUnloaded.addHandler(e)},t.prototype.removeUserUnloaded=function(e){this._userUnloaded.removeHandler(e)},t.prototype.addSilentRenewError=function(e){this._silentRenewError.addHandler(e)},t.prototype.removeSilentRenewError=function(e){this._silentRenewError.removeHandler(e)},t.prototype._raiseSilentRenewError=function(e){r.Log.debug("UserManagerEvents._raiseSilentRenewError",e.message),this._silentRenewError.raise(e)},t.prototype.addUserSignedIn=function(e){this._userSignedIn.addHandler(e)},t.prototype.removeUserSignedIn=function(e){this._userSignedIn.removeHandler(e)},t.prototype._raiseUserSignedIn=function(){r.Log.debug("UserManagerEvents._raiseUserSignedIn"),this._userSignedIn.raise()},t.prototype.addUserSignedOut=function(e){this._userSignedOut.addHandler(e)},t.prototype.removeUserSignedOut=function(e){this._userSignedOut.removeHandler(e)},t.prototype._raiseUserSignedOut=function(){r.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise()},t.prototype.addUserSessionChanged=function(e){this._userSessionChanged.addHandler(e)},t.prototype.removeUserSessionChanged=function(e){this._userSessionChanged.removeHandler(e)},t.prototype._raiseUserSessionChanged=function(){r.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise()},t}(i.AccessTokenEvents)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.Timer=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=n(1),o=n(17);t.Timer=function(e){function t(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n));return o._timer=r,o._nowFunc=i||function(){return Date.now()/1e3},o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.init=function(e){e<=0&&(e=1),e=parseInt(e);var t=this.now+e;if(this.expiration===t&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",e),this._expiration=t;var n=5;e<n&&(n=e),this._timerHandle=this._timer.setInterval(this._callback.bind(this),1e3*n)}},t.prototype.cancel=function(){this._timerHandle&&(i.Log.debug("Timer.cancel: ",this._name),this._timer.clearInterval(this._timerHandle),this._timerHandle=null)},t.prototype._callback=function(){var t=this._expiration-this.now;i.Log.debug("Timer.callback; "+this._name+" timer expires in:",t),this._expiration<=this.now&&(this.cancel(),e.prototype.raise.call(this))},r(t,[{key:"now",get:function(){return parseInt(this._nowFunc())}},{key:"expiration",get:function(){return this._expiration}}]),t}(o.Event)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SilentRenewService=void 0;var r=n(0);t.SilentRenewService=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._userManager=t}return e.prototype.start=function(){this._callback||(this._callback=this._tokenExpiring.bind(this),this._userManager.events.addAccessTokenExpiring(this._callback),this._userManager.getUser().then(function(e){}).catch(function(e){r.Log.error("SilentRenewService.start: Error from getUser:",e.message)}))},e.prototype.stop=function(){this._callback&&(this._userManager.events.removeAccessTokenExpiring(this._callback),delete this._callback)},e.prototype._tokenExpiring=function(){var e=this;this._userManager.signinSilent().then(function(e){r.Log.debug("SilentRenewService._tokenExpiring: Silent token renewal successful")},function(t){r.Log.error("SilentRenewService._tokenExpiring: Error from signinSilent:",t.message),e._userManager.events._raiseSilentRenewError(t)})},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.CordovaPopupNavigator=void 0;var r=n(21);t.CordovaPopupNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){var t=new r.CordovaPopupWindow(e);return Promise.resolve(t)},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.CordovaIFrameNavigator=void 0;var r=n(21);t.CordovaIFrameNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){e.popupWindowFeatures="hidden=yes";var t=new r.CordovaPopupWindow(e);return Promise.resolve(t)},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.Version="1.11.6"}])},e.exports=t()},7(e){var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,a,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,n)}(e,i,{once:!0})})},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var o=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var i,a,o;if(s(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),void 0===o)o=a[t]=n,++e._eventsCount;else if("function"==typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(i=c(e))>0&&o.length>i&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,console&&console.warn}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=u.bind(r);return i.listener=n,r.wrapFn=i,i}function p(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):h(i,i.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function m(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)})}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return c(this)},a.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i="error"===e,a=this._events;if(void 0!==a)i=i&&void 0===a.error;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var c=a[e];if(void 0===c)return!1;if("function"==typeof c)r(c,this,t);else{var l=c.length,u=h(c,l);for(n=0;n<l;++n)r(u[n],this,t)}return!0},a.prototype.addListener=function(e,t){return l(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return l(this,e,t,!0)},a.prototype.once=function(e,t){return s(t),this.on(e,d(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,d(this,e,t)),this},a.prototype.removeListener=function(e,t){var n,r,i,a,o;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r<a.length;++r)"removeListener"!==(i=a[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},a.prototype.listenerCount=f,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},386(e){const t={acl:"http://www.w3.org/ns/auth/acl#",arg:"http://www.w3.org/ns/pim/arg#",as:"https://www.w3.org/ns/activitystreams#",bookmark:"http://www.w3.org/2002/01/bookmark#",cal:"http://www.w3.org/2002/12/cal/ical#",cco:"http://www.ontologyrepository.com/CommonCoreOntologies/",cert:"http://www.w3.org/ns/auth/cert#",contact:"http://www.w3.org/2000/10/swap/pim/contact#",dc:"http://purl.org/dc/elements/1.1/",dct:"http://purl.org/dc/terms/",doap:"http://usefulinc.com/ns/doap#",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",gpx:"http://www.w3.org/ns/pim/gpx#",gr:"http://purl.org/goodrelations/v1#",http:"http://www.w3.org/2007/ont/http#",httph:"http://www.w3.org/2007/ont/httph#",icalTZ:"http://www.w3.org/2002/12/cal/icaltzd#",ldp:"http://www.w3.org/ns/ldp#",link:"http://www.w3.org/2007/ont/link#",log:"http://www.w3.org/2000/10/swap/log#",meeting:"http://www.w3.org/ns/pim/meeting#",mo:"http://purl.org/ontology/mo/",org:"http://www.w3.org/ns/org#",owl:"http://www.w3.org/2002/07/owl#",pad:"http://www.w3.org/ns/pim/pad#",patch:"http://www.w3.org/ns/pim/patch#",prov:"http://www.w3.org/ns/prov#",pto:"http://www.productontology.org/id/",qu:"http://www.w3.org/2000/10/swap/pim/qif#",trip:"http://www.w3.org/ns/pim/trip#",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",rss:"http://purl.org/rss/1.0/",sched:"http://www.w3.org/ns/pim/schedule#",schema:"http://schema.org/",sioc:"http://rdfs.org/sioc/ns#",skos:"http://www.w3.org/2004/02/skos/core#",solid:"http://www.w3.org/ns/solid/terms#",space:"http://www.w3.org/ns/pim/space#",stat:"http://www.w3.org/ns/posix/stat#",tab:"http://www.w3.org/2007/ont/link#",tabont:"http://www.w3.org/2007/ont/link#",ui:"http://www.w3.org/ns/ui#",vann:"http://purl.org/vocab/vann/",vcard:"http://www.w3.org/2006/vcard/ns#",wf:"http://www.w3.org/2005/01/wf/flow#",xsd:"http://www.w3.org/2001/XMLSchema#"};e.exports=function(e={namedNode:e=>e}){const n={};for(const r in t){const i=t[r];n[r]=function(t=""){return e.namedNode(i+t)}}return n}}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return i[e].call(n.exports,n,n.exports,o),n.exports}function s(...e){}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const c=new TextEncoder,l=new TextDecoder;function u(...e){const t=e.reduce((e,{length:t})=>e+t,0),n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}const d=e=>(e=>{let t=e;"string"==typeof t&&(t=c.encode(t));const n=[];for(let e=0;e<t.length;e+=32768)n.push(String.fromCharCode.apply(null,t.subarray(e,e+32768)));return btoa(n.join(""))})(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),p=e=>{let t=e;t instanceof Uint8Array&&(t=l.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return(e=>{const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n})(t)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}};class f extends Error{constructor(e,t){super(e,t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}f.code="ERR_JOSE_GENERIC";class h extends f{constructor(e,t,n="unspecified",r="unspecified"){super(e,{cause:{claim:n,reason:r,payload:t}}),this.code="ERR_JWT_CLAIM_VALIDATION_FAILED",this.claim=n,this.reason=r,this.payload=t}}h.code="ERR_JWT_CLAIM_VALIDATION_FAILED";class m extends f{constructor(e,t,n="unspecified",r="unspecified"){super(e,{cause:{claim:n,reason:r,payload:t}}),this.code="ERR_JWT_EXPIRED",this.claim=n,this.reason=r,this.payload=t}}m.code="ERR_JWT_EXPIRED";class g extends f{constructor(){super(...arguments),this.code="ERR_JOSE_ALG_NOT_ALLOWED"}}g.code="ERR_JOSE_ALG_NOT_ALLOWED";class v extends f{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}}v.code="ERR_JOSE_NOT_SUPPORTED";(class extends f{constructor(e="decryption operation failed",t){super(e,t),this.code="ERR_JWE_DECRYPTION_FAILED"}}).code="ERR_JWE_DECRYPTION_FAILED";(class extends f{constructor(){super(...arguments),this.code="ERR_JWE_INVALID"}}).code="ERR_JWE_INVALID";class b extends f{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}}b.code="ERR_JWS_INVALID";class y extends f{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}}y.code="ERR_JWT_INVALID";(class extends f{constructor(){super(...arguments),this.code="ERR_JWK_INVALID"}}).code="ERR_JWK_INVALID";class w extends f{constructor(){super(...arguments),this.code="ERR_JWKS_INVALID"}}w.code="ERR_JWKS_INVALID";class x extends f{constructor(e="no applicable key found in the JSON Web Key Set",t){super(e,t),this.code="ERR_JWKS_NO_MATCHING_KEY"}}x.code="ERR_JWKS_NO_MATCHING_KEY";class A extends f{constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t),this.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS"}}Symbol.asyncIterator,A.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";class E extends f{constructor(e="request timed out",t){super(e,t),this.code="ERR_JWKS_TIMEOUT"}}E.code="ERR_JWKS_TIMEOUT";class C extends f{constructor(e="signature verification failed",t){super(e,t),this.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED"}}function k(e,t){const n=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:n,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:n,name:"RSA-PSS",saltLength:e.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:n,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:n,name:"ECDSA",namedCurve:t.namedCurve};case"Ed25519":return{name:"Ed25519"};case"EdDSA":return{name:t.name};default:throw new v(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}C.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";const _=crypto,S=e=>e instanceof CryptoKey,T=(e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:n}=t.algorithm;if("number"!=typeof n||n<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}};function P(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function F(e,t){return e.name===t}function R(e){return parseInt(e.name.slice(4),10)}function I(e,t){if(t.length&&!t.some(t=>e.usages.includes(t))){let e="CryptoKey does not support this operation, its usages must include ";if(t.length>2){const n=t.pop();e+=`one of ${t.join(", ")}, or ${n}.`}else 2===t.length?e+=`one of ${t[0]} or ${t[1]}.`:e+=`${t[0]}.`;throw new TypeError(e)}}function N(e,t,...n){switch(t){case"HS256":case"HS384":case"HS512":{if(!F(e.algorithm,"HMAC"))throw P("HMAC");const n=parseInt(t.slice(2),10);if(R(e.algorithm.hash)!==n)throw P(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!F(e.algorithm,"RSASSA-PKCS1-v1_5"))throw P("RSASSA-PKCS1-v1_5");const n=parseInt(t.slice(2),10);if(R(e.algorithm.hash)!==n)throw P(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!F(e.algorithm,"RSA-PSS"))throw P("RSA-PSS");const n=parseInt(t.slice(2),10);if(R(e.algorithm.hash)!==n)throw P(`SHA-${n}`,"algorithm.hash");break}case"EdDSA":if("Ed25519"!==e.algorithm.name&&"Ed448"!==e.algorithm.name)throw P("Ed25519 or Ed448");break;case"Ed25519":if(!F(e.algorithm,"Ed25519"))throw P("Ed25519");break;case"ES256":case"ES384":case"ES512":{if(!F(e.algorithm,"ECDSA"))throw P("ECDSA");const n=function(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}(t);if(e.algorithm.namedCurve!==n)throw P(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}I(e,n)}function L(e,t,...n){if((n=n.filter(Boolean)).length>2){const t=n.pop();e+=`one of type ${n.join(", ")}, or ${t}.`}else 2===n.length?e+=`one of type ${n[0]} or ${n[1]}.`:e+=`of type ${n[0]}.`;return null==t?e+=` Received ${t}`:"function"==typeof t&&t.name?e+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}const B=(e,...t)=>L("Key must be ",e,...t);function O(e,t,...n){return L(`Key for the ${e} algorithm must be `,t,...n)}const j=e=>!!S(e)||"KeyObject"===e?.[Symbol.toStringTag],D=["CryptoKey"];function M(e){if("object"!=typeof(t=e)||null===t||"[object Object]"!==Object.prototype.toString.call(e))return!1;var t;if(null===Object.getPrototypeOf(e))return!0;let n=e;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}function U(e){return M(e)&&"string"==typeof e.kty}const z=async e=>{if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:n}=function(e){let t,n;switch(e.kty){case"RSA":switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},n=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},n=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},n=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},n=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},n=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},n=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},n=e.d?["deriveBits"]:[];break;default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"OKP":switch(e.alg){case"Ed25519":t={name:"Ed25519"},n=e.d?["sign"]:["verify"];break;case"EdDSA":t={name:e.crv},n=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},n=e.d?["deriveBits"]:[];break;default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;default:throw new v('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:n}}(e),r=[t,e.ext??!1,e.key_ops??n],i={...e};return delete i.alg,delete i.use,_.subtle.importKey("jwk",i,...r)},H=e=>p(e);let q,$;const W=e=>"KeyObject"===e?.[Symbol.toStringTag],V=async(e,t,n,r,i=!1)=>{let a=e.get(t);if(a?.[r])return a[r];const o=await z({...n,alg:r});return i&&Object.freeze(t),a?a[r]=o:e.set(t,{[r]:o}),o},G=(e,t)=>{if(W(e)){let n=e.export({format:"jwk"});return delete n.d,delete n.dp,delete n.dq,delete n.p,delete n.q,delete n.qi,n.k?H(n.k):($||($=new WeakMap),V($,e,n,t))}if(U(e)){if(e.k)return p(e.k);$||($=new WeakMap);return V($,e,e,t,!0)}return e},K=(e,t)=>{if(W(e)){let n=e.export({format:"jwk"});return n.k?H(n.k):(q||(q=new WeakMap),V(q,e,n,t))}if(U(e)){if(e.k)return p(e.k);q||(q=new WeakMap);return V(q,e,e,t,!0)}return e};async function J(e,t,n){if("sign"===n&&(t=await K(t,e)),"verify"===n&&(t=await G(t,e)),S(t))return N(t,e,n),t;if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(B(t,...D));return _.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[n])}throw new TypeError(B(t,...D,"Uint8Array","JSON Web Key"))}const Y=async(e,t,n,r)=>{const i=await J(e,t,"verify");T(e,i);const a=k(e,i.algorithm);try{return await _.subtle.verify(a,i,n,r)}catch{return!1}},Q=(...e)=>{const t=e.filter(Boolean);if(0===t.length||1===t.length)return!0;let n;for(const e of t){const t=Object.keys(e);if(n&&0!==n.size)for(const e of t){if(n.has(e))return!1;n.add(e)}else n=new Set(t)}return!0},X=e=>e?.[Symbol.toStringTag],Z=(e,t,n)=>{if(void 0!==t.use&&"sig"!==t.use)throw new TypeError("Invalid key for this operation, when present its use must be sig");if(void 0!==t.key_ops&&!0!==t.key_ops.includes?.(n))throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${n}`);if(void 0!==t.alg&&t.alg!==e)throw new TypeError(`Invalid key for this operation, when present its alg must be ${e}`);return!0},ee=(e,t,n,r)=>{if(!(t instanceof Uint8Array)){if(r&&U(t)){if(function(e){return U(e)&&"oct"===e.kty&&"string"==typeof e.k}(t)&&Z(e,t,n))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!j(t))throw new TypeError(O(e,t,...D,"Uint8Array",r?"JSON Web Key":null));if("secret"!==t.type)throw new TypeError(`${X(t)} instances for symmetric algorithms must be of type "secret"`)}};function te(e,t,n,r){t.startsWith("HS")||"dir"===t||t.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(t)?ee(t,n,r,e):((e,t,n,r)=>{if(r&&U(t))switch(n){case"sign":if(function(e){return"oct"!==e.kty&&"string"==typeof e.d}(t)&&Z(e,t,n))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(function(e){return"oct"!==e.kty&&void 0===e.d}(t)&&Z(e,t,n))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!j(t))throw new TypeError(O(e,t,...D,r?"JSON Web Key":null));if("secret"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithms must not be of type "secret"`);if("sign"===n&&"public"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm signing must be of type "private"`);if("decrypt"===n&&"public"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm decryption must be of type "private"`);if(t.algorithm&&"verify"===n&&"private"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm verifying must be of type "public"`);if(t.algorithm&&"encrypt"===n&&"private"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm encryption must be of type "public"`)})(t,n,r,e)}te.bind(void 0,!1);const ne=te.bind(void 0,!0);const re=function(e,t,n,r,i){if(void 0!==i.crit&&void 0===r?.crit)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!r||void 0===r.crit)return new Set;if(!Array.isArray(r.crit)||0===r.crit.length||r.crit.some(e=>"string"!=typeof e||0===e.length))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let a;a=void 0!==n?new Map([...Object.entries(n),...t.entries()]):t;for(const t of r.crit){if(!a.has(t))throw new v(`Extension Header Parameter "${t}" is not recognized`);if(void 0===i[t])throw new e(`Extension Header Parameter "${t}" is missing`);if(a.get(t)&&void 0===r[t])throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return new Set(r.crit)},ie=(e,t)=>{if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)};async function ae(e,t){if(!M(e))throw new TypeError("JWK must be an object");switch(t||(t=e.alg),e.kty){case"oct":if("string"!=typeof e.k||!e.k)throw new TypeError('missing "k" (Key Value) Parameter value');return p(e.k);case"RSA":if("oth"in e&&void 0!==e.oth)throw new v('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return z({...e,alg:t});default:throw new v('Unsupported "kty" (Key Type) Parameter value')}}async function oe(e,t,n){if(e instanceof Uint8Array&&(e=l.decode(e)),"string"!=typeof e)throw new b("Compact JWS must be a string or Uint8Array");const{0:r,1:i,2:a,length:o}=e.split(".");if(3!==o)throw new b("Invalid Compact JWS");const s=await async function(e,t,n){if(!M(e))throw new b("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new b('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new b("JWS Protected Header incorrect type");if(void 0===e.payload)throw new b("JWS Payload missing");if("string"!=typeof e.signature)throw new b("JWS Signature missing or incorrect type");if(void 0!==e.header&&!M(e.header))throw new b("JWS Unprotected Header incorrect type");let r={};if(e.protected)try{const t=p(e.protected);r=JSON.parse(l.decode(t))}catch{throw new b("JWS Protected Header is invalid")}if(!Q(r,e.header))throw new b("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const i={...r,...e.header};let a=!0;if(re(b,new Map([["b64",!0]]),n?.crit,r,i).has("b64")&&(a=r.b64,"boolean"!=typeof a))throw new b('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:o}=i;if("string"!=typeof o||!o)throw new b('JWS "alg" (Algorithm) Header Parameter missing or invalid');const s=n&&ie("algorithms",n.algorithms);if(s&&!s.has(o))throw new g('"alg" (Algorithm) Header Parameter value not allowed');if(a){if("string"!=typeof e.payload)throw new b("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new b("JWS Payload must be a string or an Uint8Array instance");let d=!1;"function"==typeof t?(t=await t(r,e),d=!0,ne(o,t,"verify"),U(t)&&(t=await ae(t,o))):ne(o,t,"verify");const f=u(c.encode(e.protected??""),c.encode("."),"string"==typeof e.payload?c.encode(e.payload):e.payload);let h,m;try{h=p(e.signature)}catch{throw new b("Failed to base64url decode the signature")}if(!await Y(o,t,h,f))throw new C;if(a)try{m=p(e.payload)}catch{throw new b("Failed to base64url decode the payload")}else m="string"==typeof e.payload?c.encode(e.payload):e.payload;const v={payload:m};return void 0!==e.protected&&(v.protectedHeader=r),void 0!==e.header&&(v.unprotectedHeader=e.header),d?{...v,key:t}:v}({payload:i,protected:r,signature:a},t,n),d={payload:s.payload,protectedHeader:s.protectedHeader};return"function"==typeof t?{...d,key:s.key}:d}const se=e=>Math.floor(e.getTime()/1e3),ce=86400,le=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,ue=e=>{const t=le.exec(e);if(!t||t[4]&&t[1])throw new TypeError("Invalid time period format");const n=parseFloat(t[2]);let r;switch(t[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":r=Math.round(n);break;case"minute":case"minutes":case"min":case"mins":case"m":r=Math.round(60*n);break;case"hour":case"hours":case"hr":case"hrs":case"h":r=Math.round(3600*n);break;case"day":case"days":case"d":r=Math.round(n*ce);break;case"week":case"weeks":case"w":r=Math.round(604800*n);break;default:r=Math.round(31557600*n)}return"-"===t[1]||"ago"===t[4]?-r:r},de=e=>e.toLowerCase().replace(/^application\//,""),pe=(e,t,n={})=>{let r;try{r=JSON.parse(l.decode(t))}catch{}if(!M(r))throw new y("JWT Claims Set must be a top-level JSON object");const{typ:i}=n;if(i&&("string"!=typeof e.typ||de(e.typ)!==de(i)))throw new h('unexpected "typ" JWT header value',r,"typ","check_failed");const{requiredClaims:a=[],issuer:o,subject:s,audience:c,maxTokenAge:u}=n,d=[...a];void 0!==u&&d.push("iat"),void 0!==c&&d.push("aud"),void 0!==s&&d.push("sub"),void 0!==o&&d.push("iss");for(const e of new Set(d.reverse()))if(!(e in r))throw new h(`missing required "${e}" claim`,r,e,"missing");if(o&&!(Array.isArray(o)?o:[o]).includes(r.iss))throw new h('unexpected "iss" claim value',r,"iss","check_failed");if(s&&r.sub!==s)throw new h('unexpected "sub" claim value',r,"sub","check_failed");if(c&&(p=r.aud,f="string"==typeof c?[c]:c,!("string"==typeof p?f.includes(p):Array.isArray(p)&&f.some(Set.prototype.has.bind(new Set(p))))))throw new h('unexpected "aud" claim value',r,"aud","check_failed");var p,f;let g;switch(typeof n.clockTolerance){case"string":g=ue(n.clockTolerance);break;case"number":g=n.clockTolerance;break;case"undefined":g=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:v}=n,b=se(v||new Date);if((void 0!==r.iat||u)&&"number"!=typeof r.iat)throw new h('"iat" claim must be a number',r,"iat","invalid");if(void 0!==r.nbf){if("number"!=typeof r.nbf)throw new h('"nbf" claim must be a number',r,"nbf","invalid");if(r.nbf>b+g)throw new h('"nbf" claim timestamp check failed',r,"nbf","check_failed")}if(void 0!==r.exp){if("number"!=typeof r.exp)throw new h('"exp" claim must be a number',r,"exp","invalid");if(r.exp<=b-g)throw new m('"exp" claim timestamp check failed',r,"exp","check_failed")}if(u){const e=b-r.iat;if(e-g>("number"==typeof u?u:ue(u)))throw new m('"iat" claim timestamp check failed (too far in the past)',r,"iat","check_failed");if(e<0-g)throw new h('"iat" claim timestamp check failed (it should be in the past)',r,"iat","check_failed")}return r};const fe=async(e,t,n)=>{let r,i,a=!1;"function"==typeof AbortController&&(r=new AbortController,i=setTimeout(()=>{a=!0,r.abort()},t));const o=await fetch(e.href,{signal:r?r.signal:void 0,redirect:"manual",headers:n.headers}).catch(e=>{if(a)throw new E;throw e});if(void 0!==i&&clearTimeout(i),200!==o.status)throw new f("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await o.json()}catch{throw new f("Failed to parse the JSON Web Key Set HTTP response as JSON")}};function he(e){return M(e)}function me(e){return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}class ge{constructor(e){if(this._cached=new WeakMap,!function(e){return e&&"object"==typeof e&&Array.isArray(e.keys)&&e.keys.every(he)}(e))throw new w("JSON Web Key Set malformed");this._jwks=me(e)}async getKey(e,t){const{alg:n,kid:r}={...e,...t?.header},i=function(e){switch("string"==typeof e&&e.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";default:throw new v('Unsupported "alg" value for a JSON Web Key Set')}}(n),a=this._jwks.keys.filter(e=>{let t=i===e.kty;if(t&&"string"==typeof r&&(t=r===e.kid),t&&"string"==typeof e.alg&&(t=n===e.alg),t&&"string"==typeof e.use&&(t="sig"===e.use),t&&Array.isArray(e.key_ops)&&(t=e.key_ops.includes("verify")),t)switch(n){case"ES256":t="P-256"===e.crv;break;case"ES256K":t="secp256k1"===e.crv;break;case"ES384":t="P-384"===e.crv;break;case"ES512":t="P-521"===e.crv;break;case"Ed25519":t="Ed25519"===e.crv;break;case"EdDSA":t="Ed25519"===e.crv||"Ed448"===e.crv}return t}),{0:o,length:s}=a;if(0===s)throw new x;if(1!==s){const e=new A,{_cached:t}=this;throw e[Symbol.asyncIterator]=async function*(){for(const e of a)try{yield await ve(t,e,n)}catch{}},e}return ve(this._cached,o,n)}}async function ve(e,t,n){const r=e.get(t)||e.set(t,{}).get(t);if(void 0===r[n]){const e=await ae({...t,ext:!0},n);if(e instanceof Uint8Array||"public"!==e.type)throw new w("JSON Web Key Set members must be public keys");r[n]=e}return r[n]}function be(e){const t=new ge(e),n=async(e,n)=>t.getKey(e,n);return Object.defineProperties(n,{jwks:{value:()=>me(t._jwks),enumerable:!0,configurable:!1,writable:!1}}),n}let ye;if("undefined"==typeof navigator||!navigator.userAgent?.startsWith?.("Mozilla/5.0 ")){ye=`${"jose"}/${"v5.10.0"}`}const we=Symbol();class xe{constructor(e,t){if(!(e instanceof URL))throw new TypeError("url must be an instance of URL");var n,r;this._url=new URL(e.href),this._options={agent:t?.agent,headers:t?.headers},this._timeoutDuration="number"==typeof t?.timeoutDuration?t?.timeoutDuration:5e3,this._cooldownDuration="number"==typeof t?.cooldownDuration?t?.cooldownDuration:3e4,this._cacheMaxAge="number"==typeof t?.cacheMaxAge?t?.cacheMaxAge:6e5,void 0!==t?.[we]&&(this._cache=t?.[we],n=t?.[we],r=this._cacheMaxAge,"object"==typeof n&&null!==n&&"uat"in n&&"number"==typeof n.uat&&!(Date.now()-n.uat>=r)&&"jwks"in n&&M(n.jwks)&&Array.isArray(n.jwks.keys)&&Array.prototype.every.call(n.jwks.keys,M)&&(this._jwksTimestamp=this._cache.uat,this._local=be(this._cache.jwks)))}coolingDown(){return"number"==typeof this._jwksTimestamp&&Date.now()<this._jwksTimestamp+this._cooldownDuration}fresh(){return"number"==typeof this._jwksTimestamp&&Date.now()<this._jwksTimestamp+this._cacheMaxAge}async getKey(e,t){this._local&&this.fresh()||await this.reload();try{return await this._local(e,t)}catch(n){if(n instanceof x&&!1===this.coolingDown())return await this.reload(),this._local(e,t);throw n}}async reload(){this._pendingFetch&&("undefined"!=typeof WebSocketPair||"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"undefined"!=typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(this._pendingFetch=void 0);const e=new Headers(this._options.headers);ye&&!e.has("User-Agent")&&(e.set("User-Agent",ye),this._options.headers=Object.fromEntries(e.entries())),this._pendingFetch||(this._pendingFetch=fe(this._url,this._timeoutDuration,this._options).then(e=>{this._local=be(e),this._cache&&(this._cache.uat=Date.now(),this._cache.jwks=e),this._jwksTimestamp=Date.now(),this._pendingFetch=void 0}).catch(e=>{throw this._pendingFetch=void 0,e})),await this._pendingFetch}}const Ae=async e=>{if(e instanceof Uint8Array)return{kty:"oct",k:d(e)};if(!S(e))throw new TypeError(B(e,...D,"Uint8Array"));if(!e.extractable)throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");const{ext:t,key_ops:n,alg:r,use:i,...a}=await _.subtle.exportKey("jwk",e);return a};async function Ee(e){return Ae(e)}const Ce=async(e,t,n)=>{const r=await J(e,t,"sign");T(e,r);const i=await _.subtle.sign(k(e,r.algorithm),r,n);return new Uint8Array(i)};class ke{constructor(e){if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=e}setProtectedHeader(e){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=e,this}setUnprotectedHeader(e){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=e,this}async sign(e,t){if(!this._protectedHeader&&!this._unprotectedHeader)throw new b("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!Q(this._protectedHeader,this._unprotectedHeader))throw new b("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const n={...this._protectedHeader,...this._unprotectedHeader};let r=!0;if(re(b,new Map([["b64",!0]]),t?.crit,this._protectedHeader,n).has("b64")&&(r=this._protectedHeader.b64,"boolean"!=typeof r))throw new b('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:i}=n;if("string"!=typeof i||!i)throw new b('JWS "alg" (Algorithm) Header Parameter missing or invalid');ne(i,e,"sign");let a,o=this._payload;r&&(o=c.encode(d(o))),a=this._protectedHeader?c.encode(d(JSON.stringify(this._protectedHeader))):c.encode("");const s=u(a,c.encode("."),o),p=await Ce(i,e,s),f={signature:d(p),payload:""};return r&&(f.payload=l.decode(o)),this._unprotectedHeader&&(f.header=this._unprotectedHeader),this._protectedHeader&&(f.protected=l.decode(a)),f}}class _e{constructor(e){this._flattened=new ke(e)}setProtectedHeader(e){return this._flattened.setProtectedHeader(e),this}async sign(e,t){const n=await this._flattened.sign(e,t);if(void 0===n.payload)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${n.protected}.${n.payload}.${n.signature}`}}function Se(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}class Te{constructor(e={}){if(!M(e))throw new TypeError("JWT Claims Set MUST be an object");this._payload=e}setIssuer(e){return this._payload={...this._payload,iss:e},this}setSubject(e){return this._payload={...this._payload,sub:e},this}setAudience(e){return this._payload={...this._payload,aud:e},this}setJti(e){return this._payload={...this._payload,jti:e},this}setNotBefore(e){return"number"==typeof e?this._payload={...this._payload,nbf:Se("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:Se("setNotBefore",se(e))}:this._payload={...this._payload,nbf:se(new Date)+ue(e)},this}setExpirationTime(e){return"number"==typeof e?this._payload={...this._payload,exp:Se("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:Se("setExpirationTime",se(e))}:this._payload={...this._payload,exp:se(new Date)+ue(e)},this}setIssuedAt(e){return void 0===e?this._payload={...this._payload,iat:se(new Date)}:e instanceof Date?this._payload={...this._payload,iat:Se("setIssuedAt",se(e))}:this._payload="string"==typeof e?{...this._payload,iat:Se("setIssuedAt",se(new Date)+ue(e))}:{...this._payload,iat:Se("setIssuedAt",e)},this}}class Pe extends Te{setProtectedHeader(e){return this._protectedHeader=e,this}async sign(e,t){const n=new _e(c.encode(JSON.stringify(this._payload)));if(n.setProtectedHeader(this._protectedHeader),Array.isArray(this._protectedHeader?.crit)&&this._protectedHeader.crit.includes("b64")&&!1===this._protectedHeader.b64)throw new y("JWTs MUST NOT use unencoded payload");return n.sign(e,t)}}function Fe(e){const t=e?.modulusLength??2048;if("number"!=typeof t||t<2048)throw new v("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");return t}async function Re(e,t){return async function(e,t){let n,r;switch(e){case"PS256":case"PS384":case"PS512":n={name:"RSA-PSS",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:Fe(t)},r=["sign","verify"];break;case"RS256":case"RS384":case"RS512":n={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:Fe(t)},r=["sign","verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":n={name:"RSA-OAEP",hash:`SHA-${parseInt(e.slice(-3),10)||1}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:Fe(t)},r=["decrypt","unwrapKey","encrypt","wrapKey"];break;case"ES256":n={name:"ECDSA",namedCurve:"P-256"},r=["sign","verify"];break;case"ES384":n={name:"ECDSA",namedCurve:"P-384"},r=["sign","verify"];break;case"ES512":n={name:"ECDSA",namedCurve:"P-521"},r=["sign","verify"];break;case"Ed25519":n={name:"Ed25519"},r=["sign","verify"];break;case"EdDSA":{r=["sign","verify"];const e=t?.crv??"Ed25519";switch(e){case"Ed25519":case"Ed448":n={name:e};break;default:throw new v("Invalid or unsupported crv option provided")}break}case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{r=["deriveKey","deriveBits"];const e=t?.crv??"P-256";switch(e){case"P-256":case"P-384":case"P-521":n={name:"ECDH",namedCurve:e};break;case"X25519":case"X448":n={name:e};break;default:throw new v("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448")}break}default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}return _.subtle.generateKey(n,t?.extractable??!1,r)}(e,t)}const Ie={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let Ne;const Le=new Uint8Array(16);const Be=[];for(let e=0;e<256;++e)Be.push((e+256).toString(16).slice(1));function Oe(e,t=0){return(Be[e[t+0]]+Be[e[t+1]]+Be[e[t+2]]+Be[e[t+3]]+"-"+Be[e[t+4]]+Be[e[t+5]]+"-"+Be[e[t+6]]+Be[e[t+7]]+"-"+Be[e[t+8]]+Be[e[t+9]]+"-"+Be[e[t+10]]+Be[e[t+11]]+Be[e[t+12]]+Be[e[t+13]]+Be[e[t+14]]+Be[e[t+15]]).toLowerCase()}const je=function(e,t,n){if(Ie.randomUUID&&!t&&!e)return Ie.randomUUID();const r=(e=e||{}).random??e.rng?.()??function(){if(!Ne){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ne=crypto.getRandomValues.bind(crypto)}return Ne(Le)}();if(r.length<16)throw new Error("Random bytes length must be >= 16");if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){if((n=n||0)<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=r[e];return t}return Oe(r)},De="solidClientAuthn:",Me=["ES256","RS256"],Ue="error",ze="login",He="logout",qe="newRefreshToken",$e="sessionExpired",We="sessionExtended",Ve="sessionRestore",Ge="timeoutSet",Ke=["openid","offline_access","webid"];class Je{handleables;constructor(e){this.handleables=e,this.handleables=e}async getProperHandler(e){const t=await Promise.all(this.handleables.map(t=>t.canHandle(...e)));for(let e=0;e<t.length;e+=1)if(t[e])return this.handleables[e];return null}async canHandle(...e){return null!==await this.getProperHandler(e)}async handle(...e){const t=await this.getProperHandler(e);if(t)return t.handle(...e);throw new Error(`[${this.constructor.name}] cannot find a suitable handler for: ${e.map(e=>{try{return JSON.stringify(e)}catch(t){return e.toString()}}).join(", ")}`)}}async function Ye(e,t,n,r){let i,a;try{const{payload:a}=await async function(e,t,n){const r=await oe(e,t,n);if(r.protectedHeader.crit?.includes("b64")&&!1===r.protectedHeader.b64)throw new y("JWTs MUST NOT use unencoded payload");const i={payload:pe(r.protectedHeader,r.payload,n),protectedHeader:r.protectedHeader};return"function"==typeof t?{...i,key:r.key}:i}(e,function(e,t){const n=new xe(e,t),r=async(e,t)=>n.getKey(e,t);return Object.defineProperties(r,{coolingDown:{get:()=>n.coolingDown(),enumerable:!0,configurable:!1},fresh:{get:()=>n.fresh(),enumerable:!0,configurable:!1},reload:{value:()=>n.reload(),enumerable:!0,configurable:!1,writable:!1},reloading:{get:()=>!!n._pendingFetch,enumerable:!0,configurable:!1},jwks:{value:()=>n._local?.jwks(),enumerable:!0,configurable:!1,writable:!1}}),r}(new URL(t)),{issuer:n,audience:r});i=a}catch(e){throw new Error(`Token verification failed: ${e.stack}`)}if("string"==typeof i.azp&&(a=i.azp),"string"==typeof i.webid)return{webId:i.webid,clientId:a};if("string"!=typeof i.sub)throw new Error(`The token ${JSON.stringify(i)} is invalid: it has no 'webid' claim and no 'sub' claim.`);try{return new URL(i.sub),{webId:i.sub,clientId:a}}catch(e){throw new Error(`The token has no 'webid' claim, and its 'sub' claim of [${i.sub}] is invalid as a URL - error [${e}].`)}}function Qe(e){try{const t=new URL(e),n=!t.searchParams.has("code")&&!t.searchParams.has("state"),r=""===t.hash;return n&&r}catch(e){return!1}}function Xe(e){const t=new URL(e);return t.searchParams.delete("state"),t.searchParams.delete("code"),t.searchParams.delete("error"),t.searchParams.delete("error_description"),t.searchParams.delete("iss"),t}class Ze{storageUtility;redirector;constructor(e,t){this.storageUtility=e,this.redirector=t,this.storageUtility=e,this.redirector=t}parametersGuard=e=>void 0!==e.issuerConfiguration.grantTypesSupported&&e.issuerConfiguration.grantTypesSupported.indexOf("authorization_code")>-1&&void 0!==e.redirectUrl;async canHandle(e){return this.parametersGuard(e)}async setupRedirectHandler({oidcLoginOptions:e,state:t,codeVerifier:n,targetUrl:r}){if(!this.parametersGuard(e))throw new Error("The authorization code grant requires a redirectUrl.");var i,a;await Promise.all([this.storageUtility.setForUser(t,{sessionId:e.sessionId}),this.storageUtility.setForUser(e.sessionId,{codeVerifier:n,issuer:e.issuer.toString(),redirectUrl:e.redirectUrl,dpop:Boolean(e.dpop).toString(),keepAlive:(i=e.keepAlive,a=!0,"boolean"==typeof i?Boolean(i):Boolean(a)).toString()})]),this.redirector.redirect(r,{handleRedirect:e.handleRedirect})}}class et{sessionInfoManager;constructor(e){this.sessionInfoManager=e,this.sessionInfoManager=e}async canHandle(){return!0}async handle(e){await this.sessionInfoManager.clear(e)}}class tt{redirector;constructor(e){this.redirector=e,this.redirector=e}async canHandle(e,t){return"idp"===t?.logoutType}async handle(e,t){if("idp"!==t?.logoutType)throw new Error("Attempting to call idp logout handler to perform app logout");if(void 0===t.toLogoutUrl)throw new Error("Cannot perform IDP logout. Did you log in using the OIDC authentication flow?");this.redirector.redirect(t.toLogoutUrl(t),{handleRedirect:t.handleRedirect})}}class nt{handlers;constructor(e,t){this.handlers=[new et(e),new tt(t)]}async canHandle(){return!0}async handle(e,t){for(const n of this.handlers)await n.canHandle(e,t)&&await n.handle(e,t)}}function rt(){return{isLoggedIn:!1,sessionId:je(),fetch:(...e)=>fetch(...e)}}async function it(e,t){await Promise.all([t.deleteAllUserData(e,{secure:!1}),t.deleteAllUserData(e,{secure:!0})])}class at{storageUtility;constructor(e){this.storageUtility=e,this.storageUtility=e}update(e,t){throw new Error("Not Implemented")}set(e,t){throw new Error("Not Implemented")}get(e){throw new Error("Not implemented")}async getAll(){throw new Error("Not implemented")}async clear(e){return it(e,this.storageUtility)}async register(e){throw new Error("Not implemented")}async getRegisteredSessionIdAll(){throw new Error("Not implemented")}async clearAll(){throw new Error("Not implemented")}async setOidcContext(e,t){throw new Error("Not implemented")}}function ot({endSessionEndpoint:e,idTokenHint:t}){if(void 0!==e)return function({state:n,postLogoutUrl:r}){return function({endSessionEndpoint:e,idTokenHint:t,postLogoutRedirectUri:n,state:r}){const i=new URL(e);return void 0!==t&&i.searchParams.append("id_token_hint",t),void 0!==n&&(i.searchParams.append("post_logout_redirect_uri",n),void 0!==r&&i.searchParams.append("state",r)),i.toString()}({endSessionEndpoint:e,idTokenHint:t,state:n,postLogoutRedirectUri:r})}}function st(e){try{return new URL(e),!0}catch{return!1}}async function ct(e,t,n,r){let i;if(function(e,t){return t.scopesSupported.includes("webid")&&void 0!==e.clientId&&st(e.clientId)}(e,t))i={clientId:e.clientId,clientName:e.clientName,clientType:"solid-oidc"};else{if(!function(e){return void 0!==e.clientId&&!st(e.clientId)}(e))return r.getClient({sessionId:e.sessionId,clientName:e.clientName,redirectUrl:e.redirectUrl},t);i={clientId:e.clientId,clientSecret:e.clientSecret,clientName:e.clientName,clientType:"static"}}const a={clientId:i.clientId,clientType:i.clientType};return"static"===i.clientType&&(a.clientSecret=i.clientSecret),i.clientName&&(a.clientName=i.clientName),await n.setForUser(e.sessionId,a),i}const lt=(e,t)=>fetch(e,t);class ut{loginHandler;redirectHandler;logoutHandler;sessionInfoManager;issuerConfigFetcher;boundLogout;constructor(e,t,n,r,i){this.loginHandler=e,this.redirectHandler=t,this.logoutHandler=n,this.sessionInfoManager=r,this.issuerConfigFetcher=i,this.loginHandler=e,this.redirectHandler=t,this.logoutHandler=n,this.sessionInfoManager=r,this.issuerConfigFetcher=i}fetch=lt;logout=async(e,t)=>{await this.logoutHandler.handle(e,"idp"===t?.logoutType?{...t,toLogoutUrl:this.boundLogout}:t),this.fetch=lt,delete this.boundLogout};getSessionInfo=async e=>this.sessionInfoManager.get(e);getAllSessionInfo=async()=>this.sessionInfoManager.getAll()}async function dt(e,t,n){try{const[r,i,a,o,s]=await Promise.all([t.getForUser(e,"issuer",{errorIfNull:!0}),t.getForUser(e,"codeVerifier"),t.getForUser(e,"redirectUrl"),t.getForUser(e,"dpop",{errorIfNull:!0}),t.getForUser(e,"keepAlive")]);await t.deleteForUser(e,"codeVerifier");return{codeVerifier:i,redirectUrl:a,issuerConfig:await n.fetchConfig(r),dpop:"true"===o,keepAlive:"string"!=typeof s||"true"===s}}catch(t){throw new Error(`Failed to retrieve OIDC context from storage associated with session [${e}]: ${t}`)}}class pt{secureStorage;insecureStorage;constructor(e,t){this.secureStorage=e,this.insecureStorage=t,this.secureStorage=e,this.insecureStorage=t}getKey(e){return`solidClientAuthenticationUser:${e}`}async getUserData(e,t){const n=await(t?this.secureStorage:this.insecureStorage).get(this.getKey(e));if(void 0===n)return{};try{return JSON.parse(n)}catch(r){throw new Error(`Data for user [${e}] in [${t?"secure":"unsecure"}] storage is corrupted - expected valid JSON, but got: ${n}`)}}async setUserData(e,t,n){await(n?this.secureStorage:this.insecureStorage).set(this.getKey(e),JSON.stringify(t))}async get(e,t){const n=await(t?.secure?this.secureStorage:this.insecureStorage).get(e);if(void 0===n&&t?.errorIfNull)throw new Error(`[${e}] is not stored`);return n}async set(e,t,n){return(n?.secure?this.secureStorage:this.insecureStorage).set(e,t)}async delete(e,t){return(t?.secure?this.secureStorage:this.insecureStorage).delete(e)}async getForUser(e,t,n){const r=await this.getUserData(e,n?.secure);let i;if(r&&r[t]||(i=void 0),i=r[t],void 0===i&&n?.errorIfNull)throw new Error(`Field [${t}] for user [${e}] is not stored`);return i||void 0}async setForUser(e,t,n){let r;try{r=await this.getUserData(e,n?.secure)}catch{r={}}await this.setUserData(e,{...r,...t},n?.secure)}async deleteForUser(e,t,n){const r=await this.getUserData(e,n?.secure);delete r[t],await this.setUserData(e,r,n?.secure)}async deleteAllUserData(e,t){await(t?.secure?this.secureStorage:this.insecureStorage).delete(this.getKey(e))}}class ft{map={};async get(e){return this.map[e]||void 0}async set(e,t){this.map[e]=t}async delete(e){delete this.map[e]}}class ht extends Error{constructor(e){super(e)}}Error;class mt extends Error{missingFields;constructor(e){super(`Invalid response from OIDC provider: missing fields ${e}`),this.missingFields=e}}class gt extends Error{error;errorDescription;constructor(e,t,n){super(e),this.error=t,this.errorDescription=n}}function vt(e){const t=new URL(e);return new URL(t.pathname,t.origin).toString()}async function bt(e,t,n){return new Pe({htu:vt(e),htm:t.toUpperCase(),jti:je()}).setProtectedHeader({alg:Me[0],jwk:n.publicKey,typ:"dpop+jwt"}).setIssuedAt().sign(n.privateKey,{})}async function yt(e,t,n,r){if(void 0!==n)return async function(e,t,n,r){const i=new Headers(r?.headers);return i.set("Authorization",`DPoP ${t}`),i.set("DPoP",await bt(e,r?.method??"get",n)),{...r,headers:i}}(e,t,n,r);const i=new Headers(r?.headers);return i.set("Authorization",`Bearer ${t}`),{...r,headers:i}}async function wt(e,t,n,r,i=fetch){return i(t,await yt(t.toString(),e,r,n))}const xt=e=>void 0!==e?e-5>0?e-5:e:600;function At(e,t){let n,r=e;const i=t?.refreshOptions;if(void 0!==i){const e=async()=>{try{const{accessToken:a,refreshToken:o,expiresIn:s}=await async function(e,t,n){const r=await e.tokenRefresher.refresh(e.sessionId,e.refreshToken,t);return n?.emit(We,r.expiresIn??600),{accessToken:r.accessToken,refreshToken:r.refreshToken,expiresIn:r.expiresIn}}(i,t.dpopKey,t.eventEmitter);r=a,void 0!==o&&(i.refreshToken=o),clearTimeout(n),n=setTimeout(e,1e3*xt(s)),t.eventEmitter?.emit(Ge,n)}catch(e){e instanceof gt&&(t?.eventEmitter?.emit(Ue,e.error,e.errorDescription),t?.eventEmitter?.emit($e)),e instanceof mt&&e.missingFields.includes("access_token")&&t?.eventEmitter?.emit($e)}};n=setTimeout(e,1e3*xt(t.expiresIn)),t.eventEmitter?.emit(Ge,n)}else if(void 0!==t&&void 0!==t.eventEmitter){const e=setTimeout(()=>{t.eventEmitter.emit($e)},1e3*xt(t.expiresIn));t.eventEmitter.emit(Ge,e)}return async(e,n)=>{let i=await wt(r,e,n,t?.dpopKey,t?.fetch);const a=!i.ok&&(o=i.status,![401,403].includes(o));var o;if(i.ok||a)return i;return i.url!==e&&void 0!==t?.dpopKey&&(i=await wt(r,i.url,n,t.dpopKey,t.fetch)),i}}var Et=o(7),Ct=o(516);function kt(e,t){if("string"!=typeof e.client_id)throw new Error(`Dynamic client registration failed: no client_id has been found on ${JSON.stringify(e)}`);if(t.redirectUrl&&function(e){return Array.isArray(e.redirect_uris)&&e.redirect_uris.every(e=>"string"==typeof e)}(e)&&e.redirect_uris[0]!==t.redirectUrl.toString())throw new Error(`Dynamic client registration failed: the returned redirect URIs ${JSON.stringify(e.redirect_uris)} don't match the provided ${JSON.stringify([t.redirectUrl.toString()])}`);return!0}async function _t(e,t){if(!t.registrationEndpoint)throw new Error("Dynamic Registration could not be completed because the issuer has no registration endpoint.");if(!Array.isArray(t.idTokenSigningAlgValuesSupported))throw new Error("The OIDC issuer discovery profile is missing the 'id_token_signing_alg_values_supported' value, which is mandatory.");const n=(r=t.idTokenSigningAlgValuesSupported,Me.find(e=>r.includes(e))??null);var r;const i={client_name:e.clientName,application_type:"web",redirect_uris:[e.redirectUrl?.toString()],subject_type:"public",token_endpoint_auth_method:"client_secret_basic",id_token_signed_response_alg:n,grant_types:["authorization_code","refresh_token"]},a=await fetch(t.registrationEndpoint.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(a.ok){const t=await a.json();return kt(t,e),{clientId:t.client_id,clientSecret:t.client_secret,expiresAt:t.client_secret_expires_at,idTokenSignedResponseAlg:t.id_token_signed_response_alg,clientType:"dynamic"}}throw 400===a.status&&function(e,t){if("invalid_redirect_uri"===e.error)throw new Error(`Dynamic client registration failed: the provided redirect uri [${t.redirectUrl?.toString()}] is invalid - ${e.error_description??""}`);if("invalid_client_metadata"===e.error)throw new Error(`Dynamic client registration failed: the provided client metadata ${JSON.stringify(t)} is invalid - ${e.error_description??""}`);throw new Error(`Dynamic client registration failed: ${e.error} - ${e.error_description??""}`)}(await a.json(),e),new Error(`Dynamic client registration failed: the server returned ${a.status} ${a.statusText} - ${await a.text()}`)}function St(e){return void 0!==e.error_description&&"string"==typeof e.error_description}function Tt(e,t){if(void 0!==(n=e).error&&"string"==typeof n.error)throw new gt(`Token endpoint returned error [${e.error}]${St(e)?`: ${e.error_description}`:""}${function(e){return void 0!==e.error_uri&&"string"==typeof e.error_uri}(e)?` (see ${e.error_uri})`:""}`,e.error,St(e)?e.error_description:void 0);var n;if(!function(e){return void 0!==e.access_token&&"string"==typeof e.access_token}(e))throw new mt(["access_token"]);if(!function(e){return void 0!==e.id_token&&"string"==typeof e.id_token}(e))throw new mt(["id_token"]);if(!function(e){return void 0!==e.token_type&&"string"==typeof e.token_type}(e))throw new mt(["token_type"]);if(!function(e){return void 0===e.expires_in||"number"==typeof e.expires_in}(e))throw new mt(["expires_in"]);if(!t&&"bearer"!==e.token_type.toLowerCase())throw new Error(`Invalid token endpoint response: requested a [Bearer] token, but got a 'token_type' value of [${e.token_type}].`);return e}async function Pt(e,t,n,r){!function(e,t){if(t.grantType&&(!e.grantTypesSupported||!e.grantTypesSupported.includes(t.grantType)))throw new Error(`The issuer [${e.issuer}] does not support the [${t.grantType}] grant`);if(!e.tokenEndpoint)throw new Error(`This issuer [${e.issuer}] does not have a token endpoint`)}(e,n);const i={"content-type":"application/x-www-form-urlencoded"};let a;r&&(a=await async function(){const{privateKey:e,publicKey:t}=await Re(Me[0]),n={privateKey:e,publicKey:await Ee(t)};return[n.publicKey.alg]=Me,n}(),i.DPoP=await bt(e.tokenEndpoint,"POST",a)),t.clientSecret&&(i.Authorization=`Basic ${btoa(`${t.clientId}:${t.clientSecret}`)}`);const o={grant_type:n.grantType,redirect_uri:n.redirectUrl,code:n.code,code_verifier:n.codeVerifier,client_id:t.clientId},s={method:"POST",headers:i,body:new URLSearchParams(o).toString()},c=await fetch(e.tokenEndpoint,s),l=Tt(await c.json(),r),{webId:u,clientId:d}=await Ye(l.id_token,e.jwksUri,e.issuer,t.clientId);return{accessToken:l.access_token,idToken:l.id_token,refreshToken:(p=l,void 0!==p.refresh_token&&"string"==typeof p.refresh_token?l.refresh_token:void 0),webId:u,clientId:d,dpopKey:a,expiresIn:l.expires_in};var p}async function Ft(e,t,n,r){if(void 0===n.clientId)throw new Error("No client ID available when trying to refresh the access token.");const i={grant_type:"refresh_token",refresh_token:e};let a={};void 0!==r&&(a={DPoP:await bt(t.tokenEndpoint,"POST",r)});let o={};void 0!==n.clientSecret?o={Authorization:`Basic ${btoa(`${n.clientId}:${n.clientSecret}`)}`}:(e=>{try{return new URL(e),!0}catch{return!1}})(n.clientId)&&(i.client_id=n.clientId);const s=await fetch(t.tokenEndpoint,{method:"POST",body:new URLSearchParams(i).toString(),headers:{...a,...o,"Content-Type":"application/x-www-form-urlencoded"}});let c;try{c=await s.json()}catch(e){throw new Error(`The token endpoint of issuer ${t.issuer} returned a malformed response.`)}const l=Tt(c,void 0!==r),{webId:u}=await Ye(l.id_token,t.jwksUri,t.issuer,n.clientId);return{accessToken:l.access_token,idToken:l.id_token,refreshToken:"string"==typeof l.refresh_token?l.refresh_token:void 0,webId:u,dpopKey:r,expiresIn:l.expires_in}}class Rt extends pt{constructor(e,t){super(e,t)}}class It extends ut{login=async(e,t)=>{"none"!==e.prompt&&await this.sessionInfoManager.clear(e.sessionId);const n=e.redirectUrl??function(e){const t=Xe(e);return t.hash="",e.includes(`${t.origin}/`)?t.href:`${t.origin}${t.href.substring(t.origin.length+1)}`}(window.location.href);if(!Qe(n))throw new Error(`${n} is not a valid redirect URL, it is either a malformed IRI, includes a hash fragment, or reserved query parameters ('code' or 'state').`);await this.loginHandler.handle({...e,redirectUrl:n,clientName:e.clientName??e.clientId,eventEmitter:t})};validateCurrentSession=async e=>{const t=await this.sessionInfoManager.get(e);return void 0===t||void 0===t.clientAppId||void 0===t.issuer?null:t};handleIncomingRedirect=async(e,t)=>{try{const n=await this.redirectHandler.handle(e,t,void 0);return this.fetch=n.fetch.bind(window),this.boundLogout=n.getLogoutUrl,await this.cleanUrlAfterRedirect(e),{isLoggedIn:n.isLoggedIn,webId:n.webId,sessionId:n.sessionId,expirationDate:n.expirationDate,clientAppId:n.clientAppId}}catch(n){return await this.cleanUrlAfterRedirect(e),void t.emit(Ue,"redirect",n)}};async cleanUrlAfterRedirect(e){const t=Xe(e).href;for(window.history.replaceState(null,"",t);window.location.href!==t;)await new Promise(e=>{setTimeout(()=>e(),1)})}}function Nt(e){return"string"==typeof e.oidcIssuer}function Lt(e){return"string"==typeof e.redirectUrl}class Bt{storageUtility;oidcHandler;issuerConfigFetcher;clientRegistrar;constructor(e,t,n,r){this.storageUtility=e,this.oidcHandler=t,this.issuerConfigFetcher=n,this.clientRegistrar=r,this.storageUtility=e,this.oidcHandler=t,this.issuerConfigFetcher=n,this.clientRegistrar=r}async canHandle(e){return Nt(e)&&Lt(e)}async handle(e){if(!Nt(e))throw new ht(`OidcLoginHandler requires an OIDC issuer: missing property 'oidcIssuer' in ${JSON.stringify(e)}`);if(!Lt(e))throw new ht(`OidcLoginHandler requires a redirect URL: missing property 'redirectUrl' in ${JSON.stringify(e)}`);const t=await this.issuerConfigFetcher.fetchConfig(e.oidcIssuer),n=await ct(e,t,this.storageUtility,this.clientRegistrar),r={issuer:t.issuer,dpop:"dpop"===e.tokenType.toLowerCase(),...e,issuerConfiguration:t,client:n,scopes:(i=e.customScopes,Array.isArray(i)?Array.from(new Set([...Ke,...i.filter(e=>"string"==typeof e&&!e.includes(" "))])):Ke)};var i;return this.oidcHandler.handle(r)}}class Ot extends Ze{async handle(e){const t={authority:e.issuer.toString(),client_id:e.client.clientId,client_secret:e.client.clientSecret,redirect_uri:e.redirectUrl,response_type:"code",scope:e.scopes.join(" "),filterProtocolClaims:!0,loadUserInfo:!1,code_verifier:!0,prompt:e.prompt??"consent"},n=new Ct.OidcClient(t);try{const t=await n.createSigninRequest();return await this.setupRedirectHandler({oidcLoginOptions:e,state:t.state._id,codeVerifier:t.state._code_verifier,targetUrl:t.url.toString()})}catch(e){}}}const jt={issuer:{toKey:"issuer",convertToUrl:!0},authorization_endpoint:{toKey:"authorizationEndpoint",convertToUrl:!0},token_endpoint:{toKey:"tokenEndpoint",convertToUrl:!0},userinfo_endpoint:{toKey:"userinfoEndpoint",convertToUrl:!0},jwks_uri:{toKey:"jwksUri",convertToUrl:!0},registration_endpoint:{toKey:"registrationEndpoint",convertToUrl:!0},end_session_endpoint:{toKey:"endSessionEndpoint",convertToUrl:!0},scopes_supported:{toKey:"scopesSupported"},response_types_supported:{toKey:"responseTypesSupported"},response_modes_supported:{toKey:"responseModesSupported"},grant_types_supported:{toKey:"grantTypesSupported"},acr_values_supported:{toKey:"acrValuesSupported"},subject_types_supported:{toKey:"subjectTypesSupported"},id_token_signing_alg_values_supported:{toKey:"idTokenSigningAlgValuesSupported"},id_token_encryption_alg_values_supported:{toKey:"idTokenEncryptionAlgValuesSupported"},id_token_encryption_enc_values_supported:{toKey:"idTokenEncryptionEncValuesSupported"},userinfo_signing_alg_values_supported:{toKey:"userinfoSigningAlgValuesSupported"},userinfo_encryption_alg_values_supported:{toKey:"userinfoEncryptionAlgValuesSupported"},userinfo_encryption_enc_values_supported:{toKey:"userinfoEncryptionEncValuesSupported"},request_object_signing_alg_values_supported:{toKey:"requestObjectSigningAlgValuesSupported"},request_object_encryption_alg_values_supported:{toKey:"requestObjectEncryptionAlgValuesSupported"},request_object_encryption_enc_values_supported:{toKey:"requestObjectEncryptionEncValuesSupported"},token_endpoint_auth_methods_supported:{toKey:"tokenEndpointAuthMethodsSupported"},token_endpoint_auth_signing_alg_values_supported:{toKey:"tokenEndpointAuthSigningAlgValuesSupported"},display_values_supported:{toKey:"displayValuesSupported"},claim_types_supported:{toKey:"claimTypesSupported"},claims_supported:{toKey:"claimsSupported"},service_documentation:{toKey:"serviceDocumentation"},claims_locales_supported:{toKey:"claimsLocalesSupported"},ui_locales_supported:{toKey:"uiLocalesSupported"},claims_parameter_supported:{toKey:"claimsParameterSupported"},request_parameter_supported:{toKey:"requestParameterSupported"},request_uri_parameter_supported:{toKey:"requestUriParameterSupported"},require_request_uri_registration:{toKey:"requireRequestUriRegistration"},op_policy_uri:{toKey:"opPolicyUri",convertToUrl:!0},op_tos_uri:{toKey:"opTosUri",convertToUrl:!0}};class Dt{storageUtility;constructor(e){this.storageUtility=e,this.storageUtility=e}static getLocalStorageKey(e){return`issuerConfig:${e}`}async fetchConfig(e){let t;const n=new URL(".well-known/openid-configuration",e.endsWith("/")?e:`${e}/`).href,r=await fetch(n);try{t=function(e){const t={};return Object.keys(e).forEach(n=>{jt[n]&&(t[jt[n].toKey]=e[n])}),Array.isArray(t.scopesSupported)||(t.scopesSupported=["openid"]),t}(await r.json())}catch(t){throw new ht(`[${e.toString()}] has an invalid configuration: ${t.message}`)}return await this.storageUtility.set(Dt.getLocalStorageKey(e),JSON.stringify(t)),t}}async function Mt(e,t){await it(e,t),await async function(){const e=new Ct.OidcClient({response_mode:"query"});await e.clearStaleState(new Ct.WebStorageStateStore({}));const t=window.localStorage,n=[];for(let e=0;e<=t.length;e+=1){const r=t.key(e);r&&(r.match(/^oidc\..+$/)||r.match(/^solidClientAuthenticationUser:.+$/))&&n.push(r)}n.forEach(e=>t.removeItem(e))}()}class Ut extends at{async get(e){const[t,n,r,i,a,o,s,c]=await Promise.all([this.storageUtility.getForUser(e,"isLoggedIn",{secure:!0}),this.storageUtility.getForUser(e,"webId",{secure:!0}),this.storageUtility.getForUser(e,"clientId",{secure:!1}),this.storageUtility.getForUser(e,"clientSecret",{secure:!1}),this.storageUtility.getForUser(e,"redirectUrl",{secure:!1}),this.storageUtility.getForUser(e,"refreshToken",{secure:!0}),this.storageUtility.getForUser(e,"issuer",{secure:!1}),this.storageUtility.getForUser(e,"tokenType",{secure:!1})]);if("string"!=typeof a||Qe(a)){if(void 0!==c&&("string"!=typeof(l=c)||!["DPoP","Bearer"].includes(l)))throw new Error(`Tokens of type [${c}] are not supported.`);var l;if(void 0!==r||void 0!==t||void 0!==n||void 0!==o)return{sessionId:e,webId:n,isLoggedIn:"true"===t,redirectUrl:a,refreshToken:o,issuer:s,clientAppId:r,clientAppSecret:i,tokenType:c??"DPoP"}}else await Promise.all([this.storageUtility.deleteAllUserData(e,{secure:!1}),this.storageUtility.deleteAllUserData(e,{secure:!0})])}async clear(e){return Mt(e,this.storageUtility)}}class zt{async canHandle(e){try{return new URL(e),!0}catch(t){throw new Error(`[${e}] is not a valid URL, and cannot be used as a redirect URL: ${t}`)}}async handle(e){return rt()}}class Ht{storageUtility;sessionInfoManager;issuerConfigFetcher;clientRegistrar;tokerRefresher;constructor(e,t,n,r,i){this.storageUtility=e,this.sessionInfoManager=t,this.issuerConfigFetcher=n,this.clientRegistrar=r,this.tokerRefresher=i,this.storageUtility=e,this.sessionInfoManager=t,this.issuerConfigFetcher=n,this.clientRegistrar=r,this.tokerRefresher=i}async canHandle(e){try{const t=new URL(e);return null!==t.searchParams.get("code")&&null!==t.searchParams.get("state")}catch(t){throw new Error(`[${e}] is not a valid URL, and cannot be used as a redirect URL: ${t}`)}}async handle(e,t){if(!await this.canHandle(e))throw new Error(`AuthCodeRedirectHandler cannot handle [${e}]: it is missing one of [code, state].`);const n=new URL(e),r=n.searchParams.get("state"),i=await this.storageUtility.getForUser(r,"sessionId",{errorIfNull:!0}),{issuerConfig:a,codeVerifier:o,redirectUrl:s,dpop:c}=await dt(i,this.storageUtility,this.issuerConfigFetcher),l=n.searchParams.get("iss");if("string"==typeof l&&l!==a.issuer)throw new Error(`The value of the iss parameter (${l}) does not match the issuer identifier of the authorization server (${a.issuer}). See [rfc9207](https://www.rfc-editor.org/rfc/rfc9207.html#section-2.3-3.1.1)`);if(void 0===o)throw new Error(`The code verifier for session ${i} is missing from storage.`);if(void 0===s)throw new Error(`The redirect URL for session ${i} is missing from storage.`);const u=await this.clientRegistrar.getClient({sessionId:i},a),d=Date.now(),p=await Pt(a,u,{grantType:"authorization_code",code:n.searchParams.get("code"),codeVerifier:o,redirectUrl:s},c);let f;window.localStorage.removeItem(`oidc.${r}`),void 0!==p.refreshToken&&(f={sessionId:i,refreshToken:p.refreshToken,tokenRefresher:this.tokerRefresher});const h=At(p.accessToken,{dpopKey:p.dpopKey,refreshOptions:f,eventEmitter:t,expiresIn:p.expiresIn});await async function(e,t,n,r,i,a,o,s){void 0!==a&&await e.setForUser(t,{refreshToken:a},{secure:o}),void 0!==n&&await e.setForUser(t,{webId:n},{secure:o}),void 0!==r&&await e.setForUser(t,{clientId:r},{secure:o}),void 0!==i&&await e.setForUser(t,{isLoggedIn:i},{secure:o}),void 0!==s&&await e.setForUser(t,{publicKey:JSON.stringify(s.publicKey),privateKey:JSON.stringify(await Ee(s.privateKey))},{secure:o})}(this.storageUtility,i,p.webId,p.clientId,"true",void 0,!0);const m=await this.sessionInfoManager.get(i);if(!m)throw new Error(`Could not retrieve session: [${i}].`);return Object.assign(m,{fetch:h,getLogoutUrl:ot({idTokenHint:p.idToken,endSessionEndpoint:a.endSessionEndpoint}),expirationDate:"number"==typeof p.expiresIn?d+1e3*p.expiresIn:void 0})}}class qt extends Je{constructor(e){super(e)}}class $t{get storage(){return window.localStorage}async get(e){return this.storage.getItem(e)||void 0}async set(e,t){this.storage.setItem(e,t)}async delete(e){this.storage.removeItem(e)}}class Wt{redirect(e,t){t&&t.handleRedirect?t.handleRedirect(e):t&&t.redirectByReplacingState?window.history.replaceState({},"",e):window.location.href=e}}class Vt{storageUtility;constructor(e){this.storageUtility=e,this.storageUtility=e}async getClient(e,t){const[n,r,i,a,o]=await Promise.all([this.storageUtility.getForUser(e.sessionId,"clientId",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"clientSecret",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"expiresAt",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"clientName",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"clientType",{secure:!1})]),s=void 0!==i?Number.parseInt(i,10):-1,c=void 0!==r&&0!==s&&Math.floor(Date.now()/1e3)>s;if(n&&("string"==typeof(l=o)&&["dynamic","static","solid-oidc"].includes(l))&&!c)return void 0!==r?{clientId:n,clientSecret:r,clientName:a,clientType:"dynamic",expiresAt:s}:{clientId:n,clientName:a,clientType:o};var l;try{const n=await _t(e,t),r={clientId:n.clientId,clientType:"dynamic"};return void 0!==n.clientSecret&&(r.clientSecret=n.clientSecret,r.expiresAt=String(n.expiresAt)),n.idTokenSignedResponseAlg&&(r.idTokenSignedResponseAlg=n.idTokenSignedResponseAlg),await this.storageUtility.setForUser(e.sessionId,r,{secure:!1}),n}catch(e){throw new Error("Client registration failed.",{cause:e})}}}class Gt{async canHandle(e){try{return new URL(e).searchParams.has("error")}catch(t){throw new Error(`[${e}] is not a valid URL, and cannot be used as a redirect URL: ${t}`)}}async handle(e,t){if(void 0!==t){const n=new URL(e),r=n.searchParams.get("error"),i=n.searchParams.get("error_description");t.emit(Ue,r,i)}return rt()}}class Kt{storageUtility;issuerConfigFetcher;clientRegistrar;constructor(e,t,n){this.storageUtility=e,this.issuerConfigFetcher=t,this.clientRegistrar=n,this.storageUtility=e,this.issuerConfigFetcher=t,this.clientRegistrar=n}async refresh(e,t,n,r){const i=await dt(e,this.storageUtility,this.issuerConfigFetcher),a=await this.clientRegistrar.getClient({sessionId:e},i.issuerConfig);if(void 0===t)throw new Error(`Session [${e}] has no refresh token to allow it to refresh its access token.`);if(i.dpop&&void 0===n)throw new Error(`For session [${e}], the key bound to the DPoP access token must be provided to refresh said access token.`);const o=await Ft(t,i.issuerConfig,a,n);return void 0!==o.refreshToken&&r?.emit(qe,o.refreshToken),o}}function Jt(e){const t=new ft,n=e.secureStorage||t,r=e.insecureStorage||new $t,i=new Rt(n,r),a=new Dt(i),o=new Vt(i),s=new Ut(i),c=new Kt(i,a,o),l=new Wt,u=new Bt(i,new Ot(i,l),a,o),d=new qt([new Gt,new Ht(i,s,a,o,c),new zt]);return new It(u,d,new nt(s,l),s,a)}const Yt=`${De}currentSession`,Qt=`${De}currentUrl`;class Xt{info;events;clientAuthentication;tokenRequestInProgress=!1;constructor(e={},t=void 0){this.events=new Et,e.clientAuthentication?this.clientAuthentication=e.clientAuthentication:e.secureStorage&&e.insecureStorage?this.clientAuthentication=Jt({secureStorage:e.secureStorage,insecureStorage:e.insecureStorage}):this.clientAuthentication=Jt({}),e.sessionInfo?this.info={sessionId:e.sessionInfo.sessionId,isLoggedIn:!1,webId:e.sessionInfo.webId,clientAppId:e.sessionInfo.clientAppId}:this.info={sessionId:t??je(),isLoggedIn:!1},this.events.on(ze,()=>window.localStorage.setItem(Yt,this.info.sessionId)),this.events.on($e,()=>this.internalLogout(!1)),this.events.on(Ue,()=>this.internalLogout(!1))}login=async e=>(await this.clientAuthentication.login({sessionId:this.info.sessionId,...e,tokenType:e.tokenType??"DPoP"},this.events),new Promise(()=>{}));fetch=(e,t)=>this.clientAuthentication.fetch(e,t);internalLogout=async(e,t)=>{window.localStorage.removeItem(Yt),await this.clientAuthentication.logout(this.info.sessionId,t),this.info.isLoggedIn=!1,e&&this.events.emit(He)};logout=async e=>this.internalLogout(!0,e);handleIncomingRedirect=async(e={})=>{if(this.info.isLoggedIn)return this.info;if(this.tokenRequestInProgress)return;const t="string"==typeof e?{url:e}:e,n=t.url??window.location.href;this.tokenRequestInProgress=!0;const r=await this.clientAuthentication.handleIncomingRedirect(n,this.events);if(function(e){return!!e?.isLoggedIn}(r)){this.setSessionInfo(r);const e=window.localStorage.getItem(Qt);null===e?this.events.emit(ze):(window.localStorage.removeItem(Qt),this.events.emit(Ve,e))}else if(!0===t.restorePreviousSession){const e=window.localStorage.getItem(Yt);if(null!==e){if(await async function(e,t,n){const r=await t.validateCurrentSession(e);return null!==r&&(window.localStorage.setItem(Qt,window.location.href),await t.login({sessionId:e,prompt:"none",oidcIssuer:r.issuer,redirectUrl:r.redirectUrl,clientId:r.clientAppId,clientSecret:r.clientAppSecret,tokenType:r.tokenType??"DPoP"},n.events),!0)}(e,this.clientAuthentication,this))return new Promise(()=>{})}}return this.tokenRequestInProgress=!1,r};setSessionInfo(e){this.info.isLoggedIn=e.isLoggedIn,this.info.webId=e.webId,this.info.sessionId=e.sessionId,this.info.clientAppId=e.clientAppId,this.info.expirationDate=e.expirationDate,this.events.on(We,e=>{this.info.expirationDate=Date.now()+1e3*e})}}const Zt=new Xt,en=r;var tn=o(386);const nn=o.n(tn)()(en),rn=(0,en.sym)("http://www.iana.org/assignments/link-relations/acl");function an(e){const t=nn;function n(e,n,r,i={}){const a=i.public||[],o=(0,en.graph)(),s=(0,en.Namespace)("http://www.w3.org/ns/auth/acl#");let c=o.sym(`${r}#a1`);const l=o.sym(r),u=o.sym(e);if(o.add(c,t.rdf("type"),s("Authorization"),l),o.add(c,s("accessTo"),u,l),i.defaultForNew&&o.add(c,s("default"),u,l),o.add(c,s("agent"),n,l),o.add(c,s("mode"),s("Read"),l),o.add(c,s("mode"),s("Write"),l),o.add(c,s("mode"),s("Control"),l),a.length){c=o.sym(`${r}#a2`),o.add(c,t.rdf("type"),s("Authorization"),l),o.add(c,s("accessTo"),u,l),o.add(c,s("agentClass"),t.foaf("Agent"),l);for(let e=0;e<a.length;e++)o.add(c,s("mode"),s(a[e]),l)}return(0,en.serialize)(l,o,r)}return{findAclDocUrl:async function(t){await e.fetcher.load(t);const n=e.any(t,rn);if(!n)throw new Error(`No ACL link discovered for ${t}`);return n.value},setACLUserPublic:function(t,r,i){const a=e.any(e.sym(t),rn);return Promise.resolve().then(()=>a||function(t){const n=e.fetcher;if(!n)throw new Error("Cannot fetch ACL rel, store has no fetcher");return n.load(t).then(n=>{if(!n.ok)throw new Error("fetchACLRel: While loading:"+n.error);const r=e.any(e.sym(t),rn);if(!r)throw new Error("fetchACLRel: No Link rel=ACL header for "+t);return r})}(t).catch(e=>{throw new Error(`Error fetching rel=ACL header for ${t}: ${e}`)})).then(a=>{const o=n(t,r,a.uri,i);if(!e.fetcher)throw new Error("Cannot PUT this, store has no fetcher");return e.fetcher.webOperation("PUT",a.uri,{data:o,contentType:"text/turtle"}).then(e=>{if(!e.ok)throw new Error("Error writing ACL text: "+e.error);return a})})},genACLText:n}}const on=()=>{let{SolidAppContext:e}=window;if(e||(e={}),e.viewingNoAuthPage=!1,e.noAuth&&window.document){if(window.document.location.href.startsWith(e.noAuth)){e.viewingNoAuthPage=!0;const t=new URLSearchParams(window.document.location.search);if(t){let n=e.viewedPage=t.get("uri")||null;if(n&&(n=decodeURI(n),!n.startsWith(e.noAuth))){const t=n.split(/\//);e.idp=t[0]+"//"+t[2],e.viewingNoAuthPage=!1}}}}return e};function sn(){const{$SolidTestEnvironment:e}=window;if(void 0!==e&&e.username)return e.username,(0,en.sym)(e.username);if("undefined"!=typeof document&&document.location&&"http://localhost"===(""+document.location).slice(0,16)){const e=document.getElementById("appTarget");if(!e)return null;const t=e.getAttribute("testID");return t?(0,en.sym)(t):null}return null}class cn{constructor(e){this.session=e}get authSession(){return this.session}currentUser(){const e=on();return e.viewingNoAuthPage?(0,en.sym)(e.webId):this&&this.session&&this.session.info&&this.session.info.webId&&this.session.info.isLoggedIn?(0,en.sym)(this.session.info.webId):sn()}async checkUser(e){const t=new URL(window.location.href).hash;t&&window.localStorage.setItem("preLoginRedirectHash",t),this.session.events.on(Ve,e=>{document.location.toString()!==e&&history.replaceState(null,"",e)});const n=new URL(window.location.href);n.hash="",await this.session.handleIncomingRedirect({restorePreviousSession:!0,url:n.href});const r=window.localStorage.getItem("preLoginRedirectHash");if(r){const e=new URL(window.location.href);e.hash!==r&&(history.pushState?history.pushState(null,document.title,r):location.hash=r,e.hash=r),window.localStorage.setItem("preLoginRedirectHash","")}let i=sn();if(i)return Promise.resolve(e?e(i):i);const a=this.webIdFromSession(this.session.info);return a&&(i=this.saveUser(a)),Promise.resolve(e?e(i):i)}saveUser(e,t){let n;if(e){n="string"==typeof e?e:e.uri;const r=(0,en.namedNode)(n);return t&&(t.me=r),r}return null}webIdFromSession(e){return(null==e?void 0:e.webId)&&e.isLoggedIn?e.webId:null}}function ln(e){return(0,en.sym)(e.uri+"#id"+Date.now())}function un(e){return!e||`${window.location.origin}/`!==new URL(e.value).origin}const dn="index.ttl#this";function pn(e,t){const n=nn;async function r(t,n,r){await e.fetcher.load(t);const i=e.any(t,new en.NamedNode("http://www.iana.org/assignments/link-relations/acl"));if(!i)throw new Error("Chat ACL doc not found!");const a=`\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n <#owner>\n a acl:Authorization;\n acl:agent <${n.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Write, acl:Control.\n <#invitee>\n a acl:Authorization;\n acl:agent <${r.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Append.\n `;await e.fetcher.webOperation("PUT",i.value,{data:a,contentType:"text/turtle"})}async function i(t,r){const i=e.any(r,n.solid("privateTypeIndex"));if(!i)throw new Error("Private type index not found!");await e.fetcher.load(i);const a=ln(i),o=[(0,en.st)(a,n.rdf("type"),n.solid("TypeRegistration"),i.doc()),(0,en.st)(a,n.solid("forClass"),n.meeting("LongChat"),i.doc()),(0,en.st)(a,n.solid("instance"),t,i.doc())];await new Promise((t,n)=>{e.updater.update([],o,function(e,r,i){r?t(null):n(new Error(i))})})}async function a(n){const r=await t.loadMe(),i=function(e,t){const n=new URL(`IndividualChats/${new URL(e.value).host}/`,t.value).toString();return new en.NamedNode(n)}(n,await t.getPodRoot(r));let a=!0;try{await e.fetcher.load(new en.NamedNode(i.value+"index.ttl#this"))}catch(e){a=!1}return{me:r,chatContainer:i,exists:a}}async function o(e,t){return(await s({me:t,newBase:e.value})).newInstance}function s(t){const r=e,i=r.updater;if(t.me&&!t.me.uri)throw new Error("chat mintNew: Invalid userid "+t.me);const a=t.newInstance=t.newInstance||r.sym(t.newBase+dn),o=a.doc();return r.add(a,n.rdf("type"),n.meeting("LongChat"),o),r.add(a,n.dc("title"),"Chat channel",o),r.add(a,n.dc("created"),(0,en.term)(new Date(Date.now())),o),t.me&&r.add(a,n.dc("author"),t.me,o),new Promise(function(e,n){null==i||i.put(o,r.statementsMatching(void 0,void 0,void 0,o),"text/turtle",function(r,i,o){i?e({...t,newInstance:a}):n(new Error("FAILED to save new chat channel at: "+r+" : "+o))})})}async function c(t,r){var i;await e.fetcher.load(t.doc());const a=e.any(t,n.ldp("inbox"),void 0,t.doc());if(!a)throw new Error(`Invitee inbox not found! ${t.value}`);const o=`\n <> a <http://www.w3.org/ns/pim/meeting#LongChatInvite> ;\n ${n.rdf("seeAlso")} <${r.value}> .\n `,s=await(null===(i=e.fetcher)||void 0===i?void 0:i.webOperation("POST",a.value,{data:o,contentType:"text/turtle"}));if(!(null==s?void 0:s.headers.get("location")))throw new Error(`Invite sending returned a ${null==s?void 0:s.status}`)}return{setAcl:r,addToPrivateTypeIndex:i,findChat:a,createChatThing:o,getChat:async function(e,t=!0){const{me:n,chatContainer:s,exists:l}=await a(e);if(l)return new en.NamedNode(s.value+dn);if(t){const t=await o(s,n);return await c(e,t),await r(s,n,e),await i(t,n),t}return null},sendInvite:c,mintNew:s}}function fn(e,t,n,r,i){return{createInboxFor:async function(e,i){const a=await t.loadMe(),o=`${(await t.getPodRoot(a)).value}p2p-inboxes/${encodeURIComponent(i)}/`;return await r.createContainer(o),await n.setSinglePeerAccess({ownerWebId:a.value,peerWebId:e,accessToModes:"acl:Append",target:o}),o},getNewMessages:async function(e){e||(e=await t.loadMe());const n=await t.getMainInbox(e);return(await r.getContainerMembers(n)).filter(e=>!r.isContainer(e))},markAsRead:async function(t,n){const r=await e.fetcher._fetch(t);if(200!==r.status)throw new Error(`Not OK! ${t}`);const i=function(e,t){const n=t.getUTCFullYear(),r=("0"+(t.getUTCMonth()+1)).slice(-2),i=("0"+t.getUTCDate()).slice(-2),a=e.split("/"),o=a[a.length-1];return new URL(`./archive/${n}/${r}/${i}/${o}`,e).toString()}(t,n),a={method:"PUT",body:await r.text(),headers:[["Content-Type",r.headers.get("Content-Type")||"application/octet-stream"]]};"2"===(await e.fetcher._fetch(i,a)).status.toString()[0]&&await e.fetcher._fetch(t,{method:"DELETE"})}}}class hn extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype),this.name=new.target.name}}class mn extends hn{}class gn extends hn{}class vn extends hn{}class bn extends hn{}class yn extends hn{}class wn extends hn{}class xn extends hn{constructor(e,t){super(t),this.status=e}}function An(e,t,n){const r=nn;async function i(t){await a(t);const i=function(e){const t=e.uri.replace("/profile/","/").replace("/public/","/").split("/").slice(0,-1).join("/")+"/Settings/Preferences.ttl";return(0,en.sym)(t)}(t);let o;try{o=await n.followOrCreateLink(t,r.space("preferencesFile"),i,t.doc())}catch(e){if(e instanceof yn)throw e;if(e instanceof wn)throw e;if(e instanceof mn)throw e;if(e instanceof gn)throw e;if(e instanceof vn)throw e;if(e instanceof xn)throw e;throw e}try{await e.fetcher.load(o)}catch(e){const n=`Unable to load preference of user ${t}: ${e}`;if(401===e.response.status)throw new mn;if(403===e.response.status){if(un(o))throw new gn;throw new vn}throw new Error(n)}return o}async function a(t){if(!t)throw new Error("loadProfile: no user given.");try{await e.fetcher.load(t.doc())}catch(e){throw new Error(`Unable to load profile of user ${t}: ${e}`)}return t.doc()}function o(t){return e.any(t,r.space("storage"),void 0,t.doc())}return{loadMe:async function(){const n=t.currentUser();if(null===n)throw new Error("Current user not found! Not logged in?");return await e.fetcher.load(n.doc()),n},getPodRoot:function(e){const t=o(e);if(!t)throw new Error("User pod root not found!");return t},getMainInbox:async function(t){await e.fetcher.load(t);const n=e.any(t,r.ldp("inbox"),void 0,t.doc());if(!n)throw new Error("User main inbox not found!");return n},findStorage:o,loadPreferences:i,loadProfile:a,silencedLoadPreferences:async function(e){try{return await i(e)}catch(e){return}}}}function En(e,t,n,r){const i=nn;function a(e){return!!e&&(e.startsWith("https://")||e.startsWith("http://"))}async function o(t){if(!t)throw new Error("loadTypeIndexesFor: No user given");const a=await n.loadProfile(t);let o,s=null;try{s=p(t)}catch(e){}try{o=e.any(t,i.solid("publicTypeIndex"),void 0,a)||(s?await r.followOrCreateLink(t,i.solid("publicTypeIndex"),s,a):null)}catch(e){}const c=o?[{label:"public",index:o,agent:t}]:[];let l,u;try{l=await n.silencedLoadPreferences(t)}catch(e){l=null}if(l){let n,o=null;try{o=f(l)}catch(e){}try{n=e.any(t,i.solid("privateTypeIndex"),void 0,a)||(o?await r.followOrCreateLink(t,i.solid("privateTypeIndex"),o,l):null)}catch(e){}u=n?[{label:"private",index:n,agent:t}]:[]}else u=[];const d=c.concat(u);if(0===d.length)return d;const h=d.map(e=>e.index);try{await e.fetcher.load(h)}catch(e){}return d}async function c(t){let r;try{r=await n.silencedLoadPreferences(t)}catch(e){}if(r){const n=e.each(t,i.solid("community"),void 0,r).concat(e.each(t,i.solid("community"),void 0,t.doc()));let c=[];for(const e of n)if("NamedNode"===e.termType&&a(e.uri))try{c=c.concat(await o(e))}catch(t){s(e.uri)}else s();return c}return[]}async function l(e){return(await o(e)).concat(await c(e))}async function u(e,t){const n=await l(t);let r=[];for(const t of n){const n=await h(t,e);r=r.concat(n)}return r}function d(e){const t=e.doc(),n=t.dir();if((null==n?void 0:n.uri)&&a(n.uri))return n.uri;const r=t.uri;if(!r||!a(r))return null==e||e.uri,null;const i=r.split("#")[0],o=i.lastIndexOf("/");return-1===o?null:i.slice(0,o+1)}function p(e){const t=d(e);if(!t)throw new Error(`suggestPublicTypeIndex: Cannot derive directory for ${e.uri}`);return(0,en.sym)(t+"publicTypeIndex.ttl")}function f(e){const t=d(e);if(!t)throw new Error(`suggestPrivateTypeIndex: Cannot derive directory for ${e.uri}`);return(0,en.sym)(t+"privateTypeIndex.ttl")}async function h(t,n){const r=t.index,a=[],o=e.statementsMatching(null,i.solid("instance"),null,r).concat(e.statementsMatching(null,i.solid("instanceContainer"),null,r)).map(e=>e.subject);for(const s of o){const o=e.any(s,i.solid("forClass"),null,r);if(!n||o.sameTerm(n)){const n=e.each(s,i.solid("instance"),null,r);for(const e of n)a.push({instance:e,type:o,scope:t});const c=e.each(s,i.solid("instanceContainer"),null,r);for(const n of c)await e.fetcher.load(n),a.push({instance:(0,en.sym)(n.value),type:o,scope:t})}}return a}return{registerInTypeIndex:async function(t,n,r){const a=ln(n),o=[(0,en.st)(a,i.rdf("type"),i.solid("TypeRegistration"),n),(0,en.st)(a,i.solid("forClass"),r,n),(0,en.st)(a,i.solid("instance"),t,n)];try{await e.updater.update([],o)}catch(e){return null}return a},getRegistrations:function(t,n){return e.each(void 0,i.solid("instance"),t).filter(t=>e.holds(t,i.solid("forClass"),n))},loadTypeIndexesFor:o,loadCommunityTypeIndexes:c,loadAllTypeIndexes:l,getScopedAppInstances:u,getAppInstances:async function(e){const n=t.currentUser();if(!n)throw new Error("getAppInstances: Must be logged in to find apps.");return(await u(e,n)).map(e=>e.instance)},suggestPublicTypeIndex:p,suggestPrivateTypeIndex:f,deleteTypeIndexRegistration:async function(t){const n=e.the(null,i.solid("instance"),t.instance,t.scope.index);if(!n)throw new Error(`deleteTypeIndexRegistration: No registration found for ${t.instance}`);const r=e.statementsMatching(n,null,null,t.scope.index);await e.updater.update(r,[])},getScopedAppsFromIndex:h}}function Cn(e,t){const n=en.graph();en.fetcher(n,{fetch:e.fetch}),n.updater=new en.UpdateManager(n),n.features=[];const r=new cn(t),i=an(n),a=function(e){function t(t){return e.statementsMatching(t,(0,en.sym)("http://www.w3.org/ns/ldp#contains"),void 0).map(e=>e.object)}function n(e){const t=e.value;return"/"===t.charAt(t.length-1)}return{isContainer:n,createContainer:async function(t){if(!n((0,en.sym)(t)))throw new Error(`Not a container URL ${t}`);const r=await e.fetcher._fetch(t,{method:"PUT",headers:{"Content-Type":"text/turtle","If-None-Match":"*",Link:'<http://www.w3.org/ns/ldp#BasicContainer>; rel="type"'},body:" "});if("2"!==r.status.toString()[0])throw new Error(`Not OK: got ${r.status} response while creating container at ${t}`)},getContainerElements:t,getContainerMembers:async function(n){return await e.fetcher.load(n),t(n)}}}(n),o=function(e,t,n){async function r(t){let n;try{n=await e.fetcher.load(t)}catch(n){if(404!==n.response.status){if(401===n.response.status)throw new mn;if(403===n.response.status){if(un(t))throw new gn;throw new vn}const e="createIfNotExists doc load error NOT 404: "+t+": "+n;throw new xn(n.status,n.message+e)}try{await e.fetcher.webOperation("PUT",t,{data:"",contentType:"text/turtle"})}catch(e){throw new wn("createIfNotExists: PUT FAILED: "+t+": "+e)}await e.fetcher.load(t)}return n}return{recursiveDelete:async function r(i){try{if(n.isContainer(i)){const a=await t.findAclDocUrl(i);await e.fetcher._fetch(a,{method:"DELETE"});const o=await n.getContainerMembers(i);await Promise.all(o.map(e=>r(e)))}const a=i.value;return e.fetcher._fetch(a,{method:"DELETE"})}catch(e){i.value}},setSinglePeerAccess:async function(n){let r=["@prefix acl: <http://www.w3.org/ns/auth/acl#>.","",`<#alice> a acl:Authorization;\n acl:agent <${n.ownerWebId}>;`,` acl:accessTo <${n.target}>;`,` acl:default <${n.target}>;`," acl:mode acl:Read, acl:Write, acl:Control.",""].join("\n");n.accessToModes&&(r+=["<#bobAccessTo> a acl:Authorization;",` acl:agent <${n.peerWebId}>;`,` acl:accessTo <${n.target}>;`,` acl:mode ${n.accessToModes}.`,""].join("\n")),n.defaultModes&&(r+=["<#bobDefault> a acl:Authorization;",` acl:agent <${n.peerWebId}>;`,` acl:default <${n.target}>;`,` acl:mode ${n.defaultModes}.`,""].join("\n"));const i=await t.findAclDocUrl((0,en.sym)(n.target));return e.fetcher._fetch(i,{method:"PUT",body:r,headers:[["Content-Type","text/turtle"]]})},createEmptyRdfDoc:async function(t,n){await e.fetcher.webOperation("PUT",t.uri,{data:`# ${new Date} ${n}\n `,contentType:"text/turtle"})},followOrCreateLink:async function(t,n,i,a){await e.fetcher.load(a);const o=e.any(t,n,null,a);if(o)return o;if(!e.updater.editable(a)){const e=`followOrCreateLink: cannot edit ${a.value}`;throw new yn(e)}try{await e.updater.update([],[(0,en.st)(t,n,i,a)])}catch(e){throw new wn(e)}try{await r(i)}catch(e){throw e}return i},loadOrCreateIfNotExists:r}}(n,i,a),s=An(n,r,o),c=pn(n,s),l=fn(n,s,o,a),u=En(n,r,s,o);return{store:n,authn:r,acl:i,inbox:l,chat:c,profile:s,typeIndex:u,load:function(e){return n.fetcher.load(e)},updatePromise:function(e,t=[]){return new Promise((r,i)=>{n.updater.update(e,t,function(e,t,n){t?r():i(new Error(n))})})},clearStore:function(){n.statements.slice().forEach(n.remove.bind(n))}}}const kn=async(e,t)=>{const n=t&&t.credentials&&"omit"==t.credentials;return Zt.info.webId&&!n?Zt.fetch(e,t):window.fetch(e,t)},_n=Symbol.for("solid-logic-singleton"),Sn="undefined"!=typeof window?window:o.g;const Tn=(Sn[_n]||(Sn[_n]=Cn({fetch:kn},Zt)),Sn[_n]),Pn=[{name:"Solid Community",uri:"https://solidcommunity.net"},{name:"Solid Web",uri:"https://solidweb.org"},{name:"Solid Web ME",uri:"https://solidweb.me"},{name:"Inrupt.com",uri:"https://login.inrupt.com"}];function Fn(){const e=[...Pn],{host:t,origin:n}=new URL(location.href),r=e.map(({uri:e})=>new URL(e).host);return r.includes(t)||r.some(e=>function(e,t){const n=e.length-t.length-1;return n>0&&"."===e[n]&&e.endsWith(t)}(t,e))||e.unshift({name:t,uri:n}),e}const Rn=Tn.authn,In=Tn.authn.authSession,Nn=Tn.store},1813(e){"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/ace+json":{"source":"iana","compressible":true},"application/ace-groupcomm+cbor":{"source":"iana"},"application/ace-trl+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/aif+cbor":{"source":"iana"},"application/aif+json":{"source":"iana","compressible":true},"application/alto-cdni+json":{"source":"iana","compressible":true},"application/alto-cdnifilter+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-propmap+json":{"source":"iana","compressible":true},"application/alto-propmapparams+json":{"source":"iana","compressible":true},"application/alto-tips+json":{"source":"iana","compressible":true},"application/alto-tipsparams+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/appinstaller":{"compressible":false,"extensions":["appinstaller"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/appx":{"compressible":false,"extensions":["appx"]},"application/appxbundle":{"compressible":false,"extensions":["appxbundle"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/automationml-aml+xml":{"source":"iana","compressible":true,"extensions":["aml"]},"application/automationml-amlx+zip":{"source":"iana","compressible":false,"extensions":["amlx"]},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/bufr":{"source":"iana"},"application/c2pa":{"source":"iana"},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/ce+cbor":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/cid-edhoc+cbor-seq":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/city+json-seq":{"source":"iana"},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-eap":{"source":"iana"},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/concise-problem-details+cbor":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cose-x509":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwl":{"source":"iana","extensions":["cwl"]},"application/cwl+json":{"source":"iana","compressible":true},"application/cwl+yaml":{"source":"iana"},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana","extensions":["dcm"]},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dpop+jwt":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/eat+cwt":{"source":"iana"},"application/eat+jwt":{"source":"iana"},"application/eat-bun+cbor":{"source":"iana"},"application/eat-bun+json":{"source":"iana","compressible":true},"application/eat-ucs+cbor":{"source":"iana"},"application/eat-ucs+json":{"source":"iana","compressible":true},"application/ecmascript":{"source":"apache","compressible":true,"extensions":["ecma"]},"application/edhoc+cbor-seq":{"source":"iana"},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.legacyesn+json":{"source":"iana","compressible":true},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/entity-statement+jwt":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdf":{"source":"iana","extensions":["fdf"]},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geopose+json":{"source":"iana","compressible":true},"application/geoxacml+json":{"source":"iana","compressible":true},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gnap-binding-jws":{"source":"iana"},"application/gnap-binding-jwsd":{"source":"iana"},"application/gnap-binding-rotation-jws":{"source":"iana"},"application/gnap-binding-rotation-jwsd":{"source":"iana"},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/grib":{"source":"iana"},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"iana","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"apache","charset":"UTF-8","compressible":true,"extensions":["js"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/jscontact+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jsonpath":{"source":"iana"},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwk-set+jwt":{"source":"iana"},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/linkset":{"source":"iana"},"application/linkset+json":{"source":"iana","compressible":true},"application/load-control+xml":{"source":"iana","compressible":true},"application/logout+jwt":{"source":"iana"},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4","mpg4","mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msix":{"compressible":false,"extensions":["msix"]},"application/msixbundle":{"compressible":false,"extensions":["msixbundle"]},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":true,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/ohttp-keys":{"source":"iana"},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg","one","onea"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["sig","asc"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/private-token-issuer-directory":{"source":"iana"},"application/private-token-request":{"source":"iana"},"application/private-token-response":{"source":"iana"},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/provided-claims+jwt":{"source":"iana"},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.implied-document+xml":{"source":"iana","compressible":true},"application/prs.implied-executable":{"source":"iana"},"application/prs.implied-object+json":{"source":"iana","compressible":true},"application/prs.implied-object+json-seq":{"source":"iana"},"application/prs.implied-object+yaml":{"source":"iana"},"application/prs.implied-structure":{"source":"iana"},"application/prs.mayfile":{"source":"iana"},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.vcfbzip2":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true,"extensions":["xsf"]},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"apache"},"application/reputon+json":{"source":"iana","compressible":true},"application/resolve-response+jwt":{"source":"iana"},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-checklist":{"source":"iana"},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-signed-tal":{"source":"iana"},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"apache"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana","extensions":["sql"]},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/sslkeylogfile":{"source":"iana"},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/st2110-41":{"source":"iana"},"application/stix+json":{"source":"iana","compressible":true},"application/stratum":{"source":"iana"},"application/swid+cbor":{"source":"iana"},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tm+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/toc+cbor":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"source":"iana","compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/trust-chain+json":{"source":"iana","compressible":true},"application/trust-mark+jwt":{"source":"iana"},"application/trust-mark-delegation+jwt":{"source":"iana"},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/uccs+cbor":{"source":"iana"},"application/ujcs+json":{"source":"iana","compressible":true},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vc":{"source":"iana"},"application/vc+cose":{"source":"iana"},"application/vc+jwt":{"source":"iana"},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.1ob":{"source":"iana"},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3a+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ach+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc8+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.5gsa2x":{"source":"iana"},"application/vnd.3gpp.5gsa2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gsv2x":{"source":"iana"},"application/vnd.3gpp.5gsv2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.crs+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.current-location-discovery+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-regroup+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-regroup+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-regroup+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.pinapp-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.seal-group-doc+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-network-qos-management-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-ue-config-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-unicast-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-user-profile-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.v2x":{"source":"iana"},"application/vnd.3gpp.vae-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acm.addressxfer+json":{"source":"iana","compressible":true},"application/vnd.acm.chatbot+json":{"source":"iana","compressible":true},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"apache","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"apache"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.parquet":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.apexlang":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"apache"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autodesk.fbx":{"extensions":["fbx"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.belightsoft.lhzd+zip":{"source":"iana","compressible":false},"application/vnd.belightsoft.lhzl+zip":{"source":"iana","compressible":false},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.bzip3":{"source":"iana"},"application/vnd.c3voc.schedule+xml":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.cncf.helm.chart.content.v1.tar+gzip":{"source":"iana"},"application/vnd.cncf.helm.chart.provenance.v1.prov":{"source":"iana"},"application/vnd.cncf.helm.config.v1+json":{"source":"iana","compressible":true},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datalog":{"source":"iana"},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.dcmp+xml":{"source":"iana","compressible":true,"extensions":["dcmp"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.eln+zip":{"source":"iana","compressible":false},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.erofs":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"apache","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.fdsn.stationxml+xml":{"source":"iana","charset":"XML-BASED","compressible":true},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.freelog.comic":{"source":"iana"},"application/vnd.frogans.fnc":{"source":"apache","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"apache","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.ga4gh.passport+jwt":{"source":"iana"},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.genozip":{"source":"iana"},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.gentoo.catmetadata+xml":{"source":"iana","compressible":true},"application/vnd.gentoo.ebuild":{"source":"iana"},"application/vnd.gentoo.eclass":{"source":"iana"},"application/vnd.gentoo.gpkg":{"source":"iana"},"application/vnd.gentoo.manifest":{"source":"iana"},"application/vnd.gentoo.pkgmetadata+xml":{"source":"iana","compressible":true},"application/vnd.gentoo.xpak":{"source":"iana"},"application/vnd.geo+json":{"source":"apache","compressible":true},"application/vnd.geocube+xml":{"source":"apache","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.pinboard":{"source":"iana"},"application/vnd.geogebra.slides":{"source":"iana","extensions":["ggs"]},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.gnu.taler.exchange+json":{"source":"iana","compressible":true},"application/vnd.gnu.taler.merchant+json":{"source":"iana","compressible":true},"application/vnd.google-apps.audio":{},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.drawing":{"compressible":false,"extensions":["gdraw"]},"application/vnd.google-apps.drive-sdk":{"compressible":false},"application/vnd.google-apps.file":{},"application/vnd.google-apps.folder":{"compressible":false},"application/vnd.google-apps.form":{"compressible":false,"extensions":["gform"]},"application/vnd.google-apps.fusiontable":{},"application/vnd.google-apps.jam":{"compressible":false,"extensions":["gjam"]},"application/vnd.google-apps.mail-layout":{},"application/vnd.google-apps.map":{"compressible":false,"extensions":["gmap"]},"application/vnd.google-apps.photo":{},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.script":{"compressible":false,"extensions":["gscript"]},"application/vnd.google-apps.shortcut":{},"application/vnd.google-apps.site":{"compressible":false,"extensions":["gsite"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-apps.unknown":{},"application/vnd.google-apps.video":{},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"apache","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true,"extensions":["xdcf"]},"application/vnd.gpxsee.map+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.hsl":{"source":"iana"},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"apache"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"apache","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"apache"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.ipfs.ipns-record":{"source":"iana"},"application/vnd.ipld.car":{"source":"iana"},"application/vnd.ipld.dag-cbor":{"source":"iana"},"application/vnd.ipld.dag-json":{"source":"iana"},"application/vnd.ipld.raw":{"source":"iana"},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kdl":{"source":"iana"},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.keyman.kmp+zip":{"source":"iana","compressible":false},"application/vnd.keyman.kmx":{"source":"iana"},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.ldev.productlicensing":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.mdl":{"source":"iana"},"application/vnd.mdl-mbsdf":{"source":"iana"},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.medicalholodeck.recordxr":{"source":"iana"},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mermaid":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.modl":{"source":"iana"},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-visio.viewer":{"extensions":["vdx"]},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msgpack":{"source":"iana"},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.nato.bindingdataobject+cbor":{"source":"iana"},"application/vnd.nato.bindingdataobject+json":{"source":"iana","compressible":true},"application/vnd.nato.bindingdataobject+xml":{"source":"iana","compressible":true,"extensions":["bdo"]},"application/vnd.nato.openxmlformats-package.iepd+zip":{"source":"iana","compressible":false},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"apache","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oai.workflows":{"source":"iana"},"application/vnd.oai.workflows+json":{"source":"iana","compressible":true},"application/vnd.oai.workflows+yaml":{"source":"iana"},"application/vnd.oasis.opendocument.base":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"apache","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-master-template":{"source":"iana"},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"apache","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"apache","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.onvif.metadata":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openvpi.dspx+json":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.procrate.brushset":{"extensions":["brushset"]},"application/vnd.procreate.brush":{"extensions":["brush"]},"application/vnd.procreate.dream":{"extensions":["drm"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.pt.mundusmundi":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true,"extensions":["xhtm"]},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.relpipe":{"source":"iana"},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.sketchometry":{"source":"iana"},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.smintio.portals.archive":{"source":"iana"},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sybyl.mol2":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uic.osdm+json":{"source":"iana","compressible":true},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml","uo"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.veraison.tsm-report+cbor":{"source":"iana"},"application/vnd.veraison.tsm-report+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw","vsdx","vtx"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vocalshaper.vsp4":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.wasmflow.wafl":{"source":"iana"},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordlift":{"source":"iana"},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xarin.cpj":{"source":"iana"},"application/vnd.xecrets-encrypted":{"source":"iana"},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/voucher-jws+json":{"source":"iana","compressible":true},"application/vp":{"source":"iana"},"application/vp+cose":{"source":"iana"},"application/vp+jwt":{"source":"iana"},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blender":{"extensions":["blend"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-compressed":{"extensions":["rar"]},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-ipynb+json":{"compressible":true,"extensions":["ipynb"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zip-compressed":{"extensions":["zip"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xfdf":{"source":"iana","extensions":["xfdf"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yaml":{"source":"iana"},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+cbor":{"source":"iana"},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yang-sid+json":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zip+dotlottie":{"extensions":["lottie"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana","extensions":["adts","aac"]},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flac":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/matroska":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/midi-clip":{"source":"iana"},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a","m4b"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"apache"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"source":"iana","compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp","dib"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/dpx":{"source":"iana","extensions":["dpx"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/j2c":{"source":"iana"},"image/jaii":{"source":"iana","extensions":["jaii"]},"image/jais":{"source":"iana","extensions":["jais"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpg","jpeg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm","jpgm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxl":{"source":"iana","extensions":["jxl"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false,"extensions":["jfif"]},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif","btf"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.clip":{"source":"iana"},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"iana","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-adobe-dng":{"extensions":["dng"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-emf":{"source":"iana"},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-wmf":{"source":"iana"},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/bhttp":{"source":"iana"},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/mls":{"source":"iana"},"message/news":{"source":"apache"},"message/ohttp-req":{"source":"iana"},"message/ohttp-res":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime","mht","mhtml"]},"message/s-http":{"source":"apache"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"apache"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/jt":{"source":"iana","extensions":["jt"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/prc":{"source":"iana","extensions":["prc"]},"model/step":{"source":"iana","extensions":["step","stp","stpnc","p21","210"]},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/u3d":{"source":"iana","extensions":["u3d"]},"model/vnd.bary":{"source":"iana","extensions":["bary"]},"model/vnd.cld":{"source":"iana","extensions":["cld"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana","extensions":["pyo","pyox"]},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usda":{"source":"iana","extensions":["usda"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"apache"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/hl7v2":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["md","markdown"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/prs.texi":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.exchangeable":{"source":"iana"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"apache"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.vcf":{"source":"iana"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vnd.zoo.kcl":{"source":"iana"},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/wgsl":{"source":"iana","extensions":["wgsl"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/evc":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/h266":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/lottie+json":{"source":"iana","compressible":true},"video/matroska":{"source":"iana"},"video/matroska-3d":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts","m2t","m2ts","mts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.planar":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"apache"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(n.exports,n,n.exports,s),n.loaded=!0,n.exports}s.m=a,s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var i=Object.create(null);s.r(i);var a={};t=t||[null,n({}),n([]),n(n)];for(var o=2&r&&e;("object"==typeof o||"function"==typeof o)&&!~t.indexOf(o);o=n(o))Object.getOwnPropertyNames(o).forEach(t=>a[t]=()=>e[t]);return a.default=()=>e,s.d(i,a),i},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,n)=>(s.f[n](e,t),t),[])),s.u=e=>e+".mashlib.min.js",s.miniCssF=e=>{},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},i="Mashlib:",s.l=(e,t,n,a)=>{if(r[e])r[e].push(t);else{var o,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==i+n){o=d;break}}o||(c=!0,(o=document.createElement("script")).charset="utf-8",s.nc&&o.setAttribute("nonce",s.nc),o.setAttribute("data-webpack",i+n),o.src=e),r[e]=[t];var p=(t,n)=>{o.onerror=o.onload=null,clearTimeout(f);var i=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach(e=>e(n)),t)return t(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=p.bind(null,o.onerror),o.onload=p.bind(null,o.onload),c&&document.head.appendChild(o)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.p="/",(()=>{var e={792:0};s.f.j=(t,n)=>{var r=s.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var i=new Promise((n,i)=>r=e[t]=[n,i]);n.push(r[2]=i);var a=s.p+s.u(t),o=new Error;s.l(a,n=>{if(s.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var i=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",o.name="ChunkLoadError",o.type=i,o.request=a,r[1](o)}},"chunk-"+t,t)}};var t=(t,n)=>{var r,i,[a,o,c]=n,l=0;if(a.some(t=>0!==e[t])){for(r in o)s.o(o,r)&&(s.m[r]=o[r]);if(c)c(s)}for(t&&t(n);l<a.length;l++)i=a[l],s.o(e,i)&&e[i]&&e[i][0](),e[i]=0},n=self.webpackChunkMashlib=self.webpackChunkMashlib||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var c={};return(()=>{"use strict";s.r(c),s.d(c,{versionInfo:()=>r});var e=s(8230),t=s(7523),n=s(9332);const r={buildTime:"2026-03-12T13:33:20Z",commit:"e1941a6329a0d2666cfebf1fca9a73fdd04fd20e",npmInfo:{mashlib:"2.1.3",npm:"11.11.1",node:"20.20.0",acorn:"8.15.0",ada:"2.9.2",ares:"1.34.6",brotli:"1.1.0",cjs_module_lexer:"2.1.0",cldr:"47.0",icu:"77.1",llhttp:"9.3.0",modules:"115",napi:"9",nghttp2:"1.61.0",openssl:"3.0.17",simdutf:"6.4.2",tz:"2025b",undici:"6.23.0",unicode:"16.0",uv:"1.46.0",uvwasi:"0.0.23",v8:"11.3.244.8-node.33",zlib:"1.3.1-470d3a2"}},i=window,a=()=>{const e=localStorage.getItem("mashlib-theme"),t=window.matchMedia("(prefers-color-scheme: dark)").matches;"dark"===(e||(t?"dark":"light"))?document.documentElement.setAttribute("data-theme","dark"):document.documentElement.removeAttribute("data-theme")};a(),i.$rdf=e,i.panes=t,i.SolidLogic={authn:n.authn,authSession:n.authSession,store:n.store,solidLogicSingleton:n.solidLogicSingleton},i.mashlib={versionInfo:r,theme:{set:e=>{"dark"===e?document.documentElement.setAttribute("data-theme","dark"):document.documentElement.removeAttribute("data-theme"),localStorage.setItem("mashlib-theme",e)},get:()=>"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light",init:a}},i.panes.runDataBrowser=function(r){e.Fetcher.crossSiteProxyTemplate=window.origin+"/xss/?uri={uri}";try{const e=document.createElement("meta");e.setAttribute("name","monetization"),e.setAttribute("content",`$${window.location.host}`),document.head.appendChild(e)}catch(e){}n.authn.checkUser().then(function(e){return t.initMainPage(n.solidLogicSingleton.store,r)})},window.onpopstate=function(t){i.document.outline.GotoSubject(e.sym(window.document.location.href),!0,void 0,!0,void 0)},i.dump=function(e){}})(),c})());
461
+ t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,c=(1<<s)-1,l=c>>1,u=-7,d=n?i-1:0,p=n?-1:1,f=e[t+d];for(d+=p,a=f&(1<<-u)-1,f>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=p,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=p,u-=8);if(0===a)a=1-l;else{if(a===c)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,r),a-=l}return(f?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,c,l=8*a-i-1,u=(1<<l)-1,d=u>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:a-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+d>=1?p/c:p*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*c-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&s,f+=h,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+f]=255&o,f+=h,o/=256,l-=8);e[n+f-h]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.jws,n=e.KeyUtil,i=e.X509,a=e.crypto,o=e.hextob64u,s=e.b64tohex,c=e.AllowedSigningAlgs;return function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.parseJwt=function e(n){r.Log.debug("JoseUtil.parseJwt");try{var i=t.JWS.parse(n);return{header:i.headerObj,payload:i.payloadObj}}catch(e){r.Log.error(e)}},e.validateJwt=function(t,a,o,c,l,u,d){r.Log.debug("JoseUtil.validateJwt");try{if("RSA"===a.kty)if(a.e&&a.n)a=n.getKey(a);else{if(!a.x5c||!a.x5c.length)return r.Log.error("JoseUtil.validateJwt: RSA key missing key material",a),Promise.reject(new Error("RSA key missing key material"));var p=s(a.x5c[0]);a=i.getPublicKeyFromCertHex(p)}else{if("EC"!==a.kty)return r.Log.error("JoseUtil.validateJwt: Unsupported key type",a&&a.kty),Promise.reject(new Error(a.kty));if(!(a.crv&&a.x&&a.y))return r.Log.error("JoseUtil.validateJwt: EC key missing key material",a),Promise.reject(new Error("EC key missing key material"));a=n.getKey(a)}return e._validateJwt(t,a,o,c,l,u,d)}catch(e){return r.Log.error(e&&e.message||e),Promise.reject("JWT validation failed")}},e.validateJwtAttributes=function(t,n,i,a,o,s){a||(a=0),o||(o=parseInt(Date.now()/1e3));var c=e.parseJwt(t).payload;if(!c.iss)return r.Log.error("JoseUtil._validateJwt: issuer was not provided"),Promise.reject(new Error("issuer was not provided"));if(c.iss!==n)return r.Log.error("JoseUtil._validateJwt: Invalid issuer in token",c.iss),Promise.reject(new Error("Invalid issuer in token: "+c.iss));if(!c.aud)return r.Log.error("JoseUtil._validateJwt: aud was not provided"),Promise.reject(new Error("aud was not provided"));if(!(c.aud===i||Array.isArray(c.aud)&&c.aud.indexOf(i)>=0))return r.Log.error("JoseUtil._validateJwt: Invalid audience in token",c.aud),Promise.reject(new Error("Invalid audience in token: "+c.aud));if(c.azp&&c.azp!==i)return r.Log.error("JoseUtil._validateJwt: Invalid azp in token",c.azp),Promise.reject(new Error("Invalid azp in token: "+c.azp));if(!s){var l=o+a,u=o-a;if(!c.iat)return r.Log.error("JoseUtil._validateJwt: iat was not provided"),Promise.reject(new Error("iat was not provided"));if(l<c.iat)return r.Log.error("JoseUtil._validateJwt: iat is in the future",c.iat),Promise.reject(new Error("iat is in the future: "+c.iat));if(c.nbf&&l<c.nbf)return r.Log.error("JoseUtil._validateJwt: nbf is in the future",c.nbf),Promise.reject(new Error("nbf is in the future: "+c.nbf));if(!c.exp)return r.Log.error("JoseUtil._validateJwt: exp was not provided"),Promise.reject(new Error("exp was not provided"));if(c.exp<u)return r.Log.error("JoseUtil._validateJwt: exp is in the past",c.exp),Promise.reject(new Error("exp is in the past:"+c.exp))}return Promise.resolve(c)},e._validateJwt=function(n,i,a,o,s,l,u){return e.validateJwtAttributes(n,a,o,s,l,u).then(function(e){try{return t.JWS.verify(n,i,c)?e:(r.Log.error("JoseUtil._validateJwt: signature validation failed"),Promise.reject(new Error("signature validation failed")))}catch(e){return r.Log.error(e&&e.message||e),Promise.reject(new Error("signature validation failed"))}})},e.hashString=function e(t,n){try{return a.Util.hashString(t,n)}catch(e){r.Log.error(e)}},e.hexToBase64Url=function e(t){try{return o(t)}catch(e){r.Log.error(e)}},e}()};var r=n(0);e.exports=t.default},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SigninResponse=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(3);t.SigninResponse=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var r=i.UrlUtility.parseUrlFragment(t,n);this.error=r.error,this.error_description=r.error_description,this.error_uri=r.error_uri,this.code=r.code,this.state=r.state,this.id_token=r.id_token,this.session_state=r.session_state,this.access_token=r.access_token,this.token_type=r.token_type,this.scope=r.scope,this.profile=void 0,this.expires_in=r.expires_in}return r(e,[{key:"expires_in",get:function(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function(e){var t=parseInt(e);if("number"==typeof t&&t>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+t}}},{key:"expired",get:function(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:"scopes",get:function(){return(this.scope||"").split(" ")}},{key:"isOpenIdConnect",get:function(){return this.scopes.indexOf("openid")>=0||!!this.id_token}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SignoutRequest=void 0;var r=n(0),i=n(3),a=n(9);t.SignoutRequest=function e(t){var n=t.url,o=t.id_token_hint,s=t.post_logout_redirect_uri,c=t.data,l=t.extraQueryParams,u=t.request_type;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!n)throw r.Log.error("SignoutRequest.ctor: No url passed"),new Error("url");for(var d in o&&(n=i.UrlUtility.addQueryParam(n,"id_token_hint",o)),s&&(n=i.UrlUtility.addQueryParam(n,"post_logout_redirect_uri",s),c&&(this.state=new a.State({data:c,request_type:u}),n=i.UrlUtility.addQueryParam(n,"state",this.state.id))),l)n=i.UrlUtility.addQueryParam(n,d,l[d]);this.url=n}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SignoutResponse=void 0;var r=n(3);t.SignoutResponse=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var n=r.UrlUtility.parseUrlFragment(t,"?");this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.state=n.state}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.InMemoryWebStorage=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0);t.InMemoryWebStorage=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._data={}}return e.prototype.getItem=function(e){return i.Log.debug("InMemoryWebStorage.getItem",e),this._data[e]},e.prototype.setItem=function(e,t){i.Log.debug("InMemoryWebStorage.setItem",e),this._data[e]=t},e.prototype.removeItem=function(e){i.Log.debug("InMemoryWebStorage.removeItem",e),delete this._data[e]},e.prototype.key=function(e){return Object.getOwnPropertyNames(this._data)[e]},r(e,[{key:"length",get:function(){return Object.getOwnPropertyNames(this._data).length}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.UserManager=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=n(10),o=n(39),s=n(15),c=n(45),l=n(47),u=n(18),d=n(8),p=n(20),f=n(11),h=n(4);t.UserManager=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.SilentRenewService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.SessionMonitor,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:p.TokenRevocationClient,d=arguments.length>4&&void 0!==arguments[4]?arguments[4]:f.TokenClient,m=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.JoseUtil;(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,t),n instanceof o.UserManagerSettings||(n=new o.UserManagerSettings(n));var g=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n));return g._events=new c.UserManagerEvents(n),g._silentRenewService=new r(g),g.settings.automaticSilentRenew&&(i.Log.debug("UserManager.ctor: automaticSilentRenew is configured, setting up silent renew"),g.startSilentRenew()),g.settings.monitorSession&&(i.Log.debug("UserManager.ctor: monitorSession is configured, setting up session monitor"),g._sessionMonitor=new a(g)),g._tokenRevocationClient=new s(g._settings),g._tokenClient=new d(g._settings),g._joseUtil=m,g}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getUser=function(){var e=this;return this._loadUser().then(function(t){return t?(i.Log.info("UserManager.getUser: user loaded"),e._events.load(t,!1),t):(i.Log.info("UserManager.getUser: user not found in storage"),null)})},t.prototype.removeUser=function(){var e=this;return this.storeUser(null).then(function(){i.Log.info("UserManager.removeUser: user removed from storage"),e._events.unload()})},t.prototype.signinRedirect=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:r";var t={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,t).then(function(){i.Log.info("UserManager.signinRedirect: successful")})},t.prototype.signinRedirectCallback=function(e){return this._signinEnd(e||this._redirectNavigator.url).then(function(e){return e.profile&&e.profile.sub?i.Log.info("UserManager.signinRedirectCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinRedirectCallback: no sub"),e})},t.prototype.signinPopup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="si:p";var t=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return t?(e.redirect_uri=t,e.display="popup",this._signin(e,this._popupNavigator,{startUrl:t,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinPopup: signinPopup successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinPopup: no sub")),e})):(i.Log.error("UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured"),Promise.reject(new Error("No popup_redirect_uri or redirect_uri configured")))},t.prototype.signinPopupCallback=function(e){return this._signinCallback(e,this._popupNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinPopupCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinPopupCallback: no sub")),e}).catch(function(e){i.Log.error(e.message)})},t.prototype.signinSilent=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t=Object.assign({},t),this._loadUser().then(function(n){return n&&n.refresh_token?(t.refresh_token=n.refresh_token,e._useRefreshToken(t)):(t.request_type="si:s",t.id_token_hint=t.id_token_hint||e.settings.includeIdTokenInSilentRenew&&n&&n.id_token,n&&e._settings.validateSubOnSilentRenew&&(i.Log.debug("UserManager.signinSilent, subject prior to silent renew: ",n.profile.sub),t.current_sub=n.profile.sub),e._signinSilentIframe(t))})},t.prototype._useRefreshToken=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(t).then(function(t){return t?t.access_token?e._loadUser().then(function(n){if(n){var r=Promise.resolve();return t.id_token&&(r=e._validateIdTokenFromTokenRefreshToken(n.profile,t.id_token)),r.then(function(){return i.Log.debug("UserManager._useRefreshToken: refresh token response success"),n.id_token=t.id_token||n.id_token,n.access_token=t.access_token,n.refresh_token=t.refresh_token||n.refresh_token,n.expires_in=t.expires_in,e.storeUser(n).then(function(){return e._events.load(n),n})})}return null}):(i.Log.error("UserManager._useRefreshToken: No access token returned from token endpoint"),Promise.reject("No access token returned from token endpoint")):(i.Log.error("UserManager._useRefreshToken: No response returned from token endpoint"),Promise.reject("No response returned from token endpoint"))})},t.prototype._validateIdTokenFromTokenRefreshToken=function(e,t){var n=this;return this._metadataService.getIssuer().then(function(r){return n.settings.getEpochTime().then(function(a){return n._joseUtil.validateJwtAttributes(t,r,n._settings.client_id,n._settings.clockSkew,a).then(function(t){return t?t.sub!==e.sub?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub"),Promise.reject(new Error("sub in id_token does not match current sub"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time"),Promise.reject(new Error("auth_time in id_token does not match original auth_time"))):t.azp&&t.azp!==e.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp"),Promise.reject(new Error("azp in id_token does not match original azp"))):!t.azp&&e.azp?(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token"),Promise.reject(new Error("azp not in id_token, but present in original id_token"))):void 0:(i.Log.error("UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token"),Promise.reject(new Error("Failed to validate id_token")))})})})},t.prototype._signinSilentIframe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return t?(e.redirect_uri=t,e.prompt=e.prompt||"none",this._signin(e,this._iframeNavigator,{startUrl:t,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinSilent: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinSilent: no sub")),e})):(i.Log.error("UserManager.signinSilent: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},t.prototype.signinSilentCallback=function(e){return this._signinCallback(e,this._iframeNavigator).then(function(e){return e&&(e.profile&&e.profile.sub?i.Log.info("UserManager.signinSilentCallback: successful, signed in sub: ",e.profile.sub):i.Log.info("UserManager.signinSilentCallback: no sub")),e})},t.prototype.signinCallback=function(e){var t=this;return this.readSigninResponseState(e).then(function(n){var r=n.state;return n.response,"si:r"===r.request_type?t.signinRedirectCallback(e):"si:p"===r.request_type?t.signinPopupCallback(e):"si:s"===r.request_type?t.signinSilentCallback(e):Promise.reject(new Error("invalid response_type in state"))})},t.prototype.signoutCallback=function(e,t){var n=this;return this.readSignoutResponseState(e).then(function(r){var i=r.state,a=r.response;return i?"so:r"===i.request_type?n.signoutRedirectCallback(e):"so:p"===i.request_type?n.signoutPopupCallback(e,t):Promise.reject(new Error("invalid response_type in state")):a})},t.prototype.querySessionStatus=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(t=Object.assign({},t)).request_type="si:s";var n=t.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(t.redirect_uri=n,t.prompt="none",t.response_type=t.response_type||this.settings.query_status_response_type,t.scope=t.scope||"openid",t.skipUserInfo=!0,this._signinStart(t,this._iframeNavigator,{startUrl:n,silentRequestTimeout:t.silentRequestTimeout||this.settings.silentRequestTimeout}).then(function(t){return e.processSigninResponse(t.url).then(function(e){if(i.Log.debug("UserManager.querySessionStatus: got signin response"),e.session_state&&e.profile.sub)return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for sub: ",e.profile.sub),{session_state:e.session_state,sub:e.profile.sub,sid:e.profile.sid};i.Log.info("querySessionStatus successful, user not authenticated")}).catch(function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&("login_required"==t.message||"consent_required"==t.message||"interaction_required"==t.message||"account_selection_required"==t.message))return i.Log.info("UserManager.querySessionStatus: querySessionStatus success for anonymous user"),{session_state:t.session_state};throw t})})):(i.Log.error("UserManager.querySessionStatus: No silent_redirect_uri configured"),Promise.reject(new Error("No silent_redirect_uri configured")))},t.prototype._signin=function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,t,r).then(function(t){return n._signinEnd(t.url,e)})},t.prototype._signinStart=function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.prepare(r).then(function(t){return i.Log.debug("UserManager._signinStart: got navigator window handle"),n.createSigninRequest(e).then(function(e){return i.Log.debug("UserManager._signinStart: got signin request"),r.url=e.url,r.id=e.state.id,t.navigate(r)}).catch(function(e){throw t.close&&(i.Log.debug("UserManager._signinStart: Error after preparing navigator, closing navigator window"),t.close()),e})})},t.prototype._signinEnd=function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then(function(e){i.Log.debug("UserManager._signinEnd: got signin response");var r=new s.User(e);if(n.current_sub){if(n.current_sub!==r.profile.sub)return i.Log.debug("UserManager._signinEnd: current user does not match user returned from signin. sub from signin: ",r.profile.sub),Promise.reject(new Error("login_required"));i.Log.debug("UserManager._signinEnd: current user matches user returned from signin")}return t.storeUser(r).then(function(){return i.Log.debug("UserManager._signinEnd: user stored"),t._events.load(r),r})})},t.prototype._signinCallback=function(e,t){i.Log.debug("UserManager._signinCallback");var n="query"===this._settings.response_mode||!this._settings.response_mode&&d.SigninRequest.isCode(this._settings.response_type)?"?":"#";return t.callback(e,void 0,n)},t.prototype.signoutRedirect=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="so:r";var t=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;t&&(e.post_logout_redirect_uri=t);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then(function(){i.Log.info("UserManager.signoutRedirect: successful")})},t.prototype.signoutRedirectCallback=function(e){return this._signoutEnd(e||this._redirectNavigator.url).then(function(e){return i.Log.info("UserManager.signoutRedirectCallback: successful"),e})},t.prototype.signoutPopup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type="so:p";var t=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=t,e.display="popup",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:t,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then(function(){i.Log.info("UserManager.signoutPopup: successful")})},t.prototype.signoutPopupCallback=function(e,t){return void 0===t&&"boolean"==typeof e&&(t=e,e=null),this._popupNavigator.callback(e,t,"?").then(function(){i.Log.info("UserManager.signoutPopupCallback: successful")})},t.prototype._signout=function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,t,r).then(function(e){return n._signoutEnd(e.url)})},t.prototype._signoutStart=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return arguments[1].prepare(n).then(function(r){return i.Log.debug("UserManager._signoutStart: got navigator window handle"),t._loadUser().then(function(a){return i.Log.debug("UserManager._signoutStart: loaded current user from storage"),(t._settings.revokeAccessTokenOnSignout?t._revokeInternal(a):Promise.resolve()).then(function(){var o=e.id_token_hint||a&&a.id_token;return o&&(i.Log.debug("UserManager._signoutStart: Setting id_token into signout request"),e.id_token_hint=o),t.removeUser().then(function(){return i.Log.debug("UserManager._signoutStart: user removed, creating signout request"),t.createSignoutRequest(e).then(function(e){return i.Log.debug("UserManager._signoutStart: got signout request"),n.url=e.url,e.state&&(n.id=e.state.id),r.navigate(n)})})})}).catch(function(e){throw r.close&&(i.Log.debug("UserManager._signoutStart: Error after preparing navigator, closing navigator window"),r.close()),e})})},t.prototype._signoutEnd=function(e){return this.processSignoutResponse(e).then(function(e){return i.Log.debug("UserManager._signoutEnd: got signout response"),e})},t.prototype.revokeAccessToken=function(){var e=this;return this._loadUser().then(function(t){return e._revokeInternal(t,!0).then(function(n){if(n)return i.Log.debug("UserManager.revokeAccessToken: removing token properties from user and re-storing"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then(function(){i.Log.debug("UserManager.revokeAccessToken: user stored"),e._events.load(t)})})}).then(function(){i.Log.info("UserManager.revokeAccessToken: access token revoked successfully")})},t.prototype._revokeInternal=function(e,t){var n=this;if(e){var r=e.access_token,a=e.refresh_token;return this._revokeAccessTokenInternal(r,t).then(function(e){return n._revokeRefreshTokenInternal(a,t).then(function(t){return e||t||i.Log.debug("UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format"),e||t})})}return Promise.resolve(!1)},t.prototype._revokeAccessTokenInternal=function(e,t){return!e||e.indexOf(".")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,t).then(function(){return!0})},t.prototype._revokeRefreshTokenInternal=function(e,t){return e?this._tokenRevocationClient.revoke(e,t,"refresh_token").then(function(){return!0}):Promise.resolve(!1)},t.prototype.startSilentRenew=function(){this._silentRenewService.start()},t.prototype.stopSilentRenew=function(){this._silentRenewService.stop()},t.prototype._loadUser=function(){return this._userStore.get(this._userStoreKey).then(function(e){return e?(i.Log.debug("UserManager._loadUser: user storageString loaded"),s.User.fromStorageString(e)):(i.Log.debug("UserManager._loadUser: no user storageString"),null)})},t.prototype.storeUser=function(e){if(e){i.Log.debug("UserManager.storeUser: storing user");var t=e.toStorageString();return this._userStore.set(this._userStoreKey,t)}return i.Log.debug("storeUser.storeUser: removing user"),this._userStore.remove(this._userStoreKey)},r(t,[{key:"_redirectNavigator",get:function(){return this.settings.redirectNavigator}},{key:"_popupNavigator",get:function(){return this.settings.popupNavigator}},{key:"_iframeNavigator",get:function(){return this.settings.iframeNavigator}},{key:"_userStore",get:function(){return this.settings.userStore}},{key:"events",get:function(){return this._events}},{key:"_userStoreKey",get:function(){return"user:"+this.settings.authority+":"+this.settings.client_id}}]),t}(a.OidcClient)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.UserManagerSettings=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=(n(0),n(5)),a=n(40),o=n(41),s=n(43),c=n(6),l=n(1),u=n(8);t.UserManagerSettings=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.popup_redirect_uri,i=n.popup_post_logout_redirect_uri,d=n.popupWindowFeatures,p=n.popupWindowTarget,f=n.silent_redirect_uri,h=n.silentRequestTimeout,m=n.automaticSilentRenew,g=void 0!==m&&m,v=n.validateSubOnSilentRenew,b=void 0!==v&&v,y=n.includeIdTokenInSilentRenew,w=void 0===y||y,x=n.monitorSession,A=void 0===x||x,E=n.monitorAnonymousSession,C=void 0!==E&&E,k=n.checkSessionInterval,_=void 0===k?2e3:k,S=n.stopCheckSessionOnError,T=void 0===S||S,P=n.query_status_response_type,F=n.revokeAccessTokenOnSignout,R=void 0!==F&&F,I=n.accessTokenExpiringNotificationTime,N=void 0===I?60:I,L=n.redirectNavigator,B=void 0===L?new a.RedirectNavigator:L,O=n.popupNavigator,j=void 0===O?new o.PopupNavigator:O,D=n.iframeNavigator,M=void 0===D?new s.IFrameNavigator:D,U=n.userStore,z=void 0===U?new c.WebStorageStateStore({store:l.Global.sessionStorage}):U;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var H=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,arguments[0]));return H._popup_redirect_uri=r,H._popup_post_logout_redirect_uri=i,H._popupWindowFeatures=d,H._popupWindowTarget=p,H._silent_redirect_uri=f,H._silentRequestTimeout=h,H._automaticSilentRenew=g,H._validateSubOnSilentRenew=b,H._includeIdTokenInSilentRenew=w,H._accessTokenExpiringNotificationTime=N,H._monitorSession=A,H._monitorAnonymousSession=C,H._checkSessionInterval=_,H._stopCheckSessionOnError=T,P?H._query_status_response_type=P:arguments[0]&&arguments[0].response_type?H._query_status_response_type=u.SigninRequest.isOidc(arguments[0].response_type)?"id_token":"code":H._query_status_response_type="id_token",H._revokeAccessTokenOnSignout=R,H._redirectNavigator=B,H._popupNavigator=j,H._iframeNavigator=M,H._userStore=z,H}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"popup_redirect_uri",get:function(){return this._popup_redirect_uri}},{key:"popup_post_logout_redirect_uri",get:function(){return this._popup_post_logout_redirect_uri}},{key:"popupWindowFeatures",get:function(){return this._popupWindowFeatures}},{key:"popupWindowTarget",get:function(){return this._popupWindowTarget}},{key:"silent_redirect_uri",get:function(){return this._silent_redirect_uri}},{key:"silentRequestTimeout",get:function(){return this._silentRequestTimeout}},{key:"automaticSilentRenew",get:function(){return this._automaticSilentRenew}},{key:"validateSubOnSilentRenew",get:function(){return this._validateSubOnSilentRenew}},{key:"includeIdTokenInSilentRenew",get:function(){return this._includeIdTokenInSilentRenew}},{key:"accessTokenExpiringNotificationTime",get:function(){return this._accessTokenExpiringNotificationTime}},{key:"monitorSession",get:function(){return this._monitorSession}},{key:"monitorAnonymousSession",get:function(){return this._monitorAnonymousSession}},{key:"checkSessionInterval",get:function(){return this._checkSessionInterval}},{key:"stopCheckSessionOnError",get:function(){return this._stopCheckSessionOnError}},{key:"query_status_response_type",get:function(){return this._query_status_response_type}},{key:"revokeAccessTokenOnSignout",get:function(){return this._revokeAccessTokenOnSignout}},{key:"redirectNavigator",get:function(){return this._redirectNavigator}},{key:"popupNavigator",get:function(){return this._popupNavigator}},{key:"iframeNavigator",get:function(){return this._iframeNavigator}},{key:"userStore",get:function(){return this._userStore}}]),t}(i.OidcClientSettings)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.RedirectNavigator=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0);t.RedirectNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(){return Promise.resolve(this)},e.prototype.navigate=function(e){return e&&e.url?(e.useReplaceToNavigate?window.location.replace(e.url):window.location=e.url,Promise.resolve()):(i.Log.error("RedirectNavigator.navigate: No url provided"),Promise.reject(new Error("No url provided")))},r(e,[{key:"url",get:function(){return window.location.href}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.PopupNavigator=void 0;var r=n(0),i=n(42);t.PopupNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){var t=new i.PopupWindow(e);return Promise.resolve(t)},e.prototype.callback=function e(t,n,a){r.Log.debug("PopupNavigator.callback");try{return i.PopupWindow.notifyOpener(t,n,a),Promise.resolve()}catch(e){return Promise.reject(e)}},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.PopupWindow=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=n(3);t.PopupWindow=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._promise=new Promise(function(e,t){n._resolve=e,n._reject=t});var r=t.popupWindowTarget||"_blank",a=t.popupWindowFeatures||"location=no,toolbar=no,width=500,height=500,left=100,top=100;";this._popup=window.open("",r,a),this._popup&&(i.Log.debug("PopupWindow.ctor: popup successfully created"),this._checkForPopupClosedTimer=window.setInterval(this._checkForPopupClosed.bind(this),500))}return e.prototype.navigate=function(e){return this._popup?e&&e.url?(i.Log.debug("PopupWindow.navigate: Setting URL in popup"),this._id=e.id,this._id&&(window["popupCallback_"+e.id]=this._callback.bind(this)),this._popup.focus(),this._popup.window.location=e.url):(this._error("PopupWindow.navigate: no url provided"),this._error("No url provided")):this._error("PopupWindow.navigate: Error opening popup window"),this.promise},e.prototype._success=function(e){i.Log.debug("PopupWindow.callback: Successful response from popup window"),this._cleanup(),this._resolve(e)},e.prototype._error=function(e){i.Log.error("PopupWindow.error: ",e),this._cleanup(),this._reject(new Error(e))},e.prototype.close=function(){this._cleanup(!1)},e.prototype._cleanup=function(e){i.Log.debug("PopupWindow.cleanup"),window.clearInterval(this._checkForPopupClosedTimer),this._checkForPopupClosedTimer=null,delete window["popupCallback_"+this._id],this._popup&&!e&&this._popup.close(),this._popup=null},e.prototype._checkForPopupClosed=function(){this._popup&&!this._popup.closed||this._error("Popup window closed")},e.prototype._callback=function(e,t){this._cleanup(t),e?(i.Log.debug("PopupWindow.callback success"),this._success({url:e})):(i.Log.debug("PopupWindow.callback: Invalid response from popup"),this._error("Invalid response from popup"))},e.notifyOpener=function(e,t,n){if(window.opener){if(e=e||window.location.href){var r=a.UrlUtility.parseUrlFragment(e,n);if(r.state){var o="popupCallback_"+r.state,s=window.opener[o];s?(i.Log.debug("PopupWindow.notifyOpener: passing url message to opener"),s(e,t)):i.Log.warn("PopupWindow.notifyOpener: no matching callback found on opener")}else i.Log.warn("PopupWindow.notifyOpener: no state found in response url")}}else i.Log.warn("PopupWindow.notifyOpener: no window.opener. Can't complete notification.")},r(e,[{key:"promise",get:function(){return this._promise}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameNavigator=void 0;var r=n(0),i=n(44);t.IFrameNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){var t=new i.IFrameWindow(e);return Promise.resolve(t)},e.prototype.callback=function e(t){r.Log.debug("IFrameNavigator.callback");try{return i.IFrameWindow.notifyParent(t),Promise.resolve()}catch(e){return Promise.reject(e)}},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameWindow=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0);t.IFrameWindow=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._promise=new Promise(function(e,t){n._resolve=e,n._reject=t}),this._boundMessageEvent=this._message.bind(this),window.addEventListener("message",this._boundMessageEvent,!1),this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="absolute",this._frame.width=0,this._frame.height=0,window.document.body.appendChild(this._frame)}return e.prototype.navigate=function(e){if(e&&e.url){var t=e.silentRequestTimeout||1e4;i.Log.debug("IFrameWindow.navigate: Using timeout of:",t),this._timer=window.setTimeout(this._timeout.bind(this),t),this._frame.src=e.url}else this._error("No url provided");return this.promise},e.prototype._success=function(e){this._cleanup(),i.Log.debug("IFrameWindow: Successful response from frame window"),this._resolve(e)},e.prototype._error=function(e){this._cleanup(),i.Log.error(e),this._reject(new Error(e))},e.prototype.close=function(){this._cleanup()},e.prototype._cleanup=function(){this._frame&&(i.Log.debug("IFrameWindow: cleanup"),window.removeEventListener("message",this._boundMessageEvent,!1),window.clearTimeout(this._timer),window.document.body.removeChild(this._frame),this._timer=null,this._frame=null,this._boundMessageEvent=null)},e.prototype._timeout=function(){i.Log.debug("IFrameWindow.timeout"),this._error("Frame window timed out")},e.prototype._message=function(e){if(i.Log.debug("IFrameWindow.message"),this._timer&&e.origin===this._origin&&e.source===this._frame.contentWindow&&"string"==typeof e.data&&(e.data.startsWith("http://")||e.data.startsWith("https://"))){var t=e.data;t?this._success({url:t}):this._error("Invalid response from frame")}},e.notifyParent=function(e){i.Log.debug("IFrameWindow.notifyParent"),(e=e||window.location.href)&&(i.Log.debug("IFrameWindow.notifyParent: posting url message to parent"),window.parent.postMessage(e,location.protocol+"//"+location.host))},r(e,[{key:"promise",get:function(){return this._promise}},{key:"_origin",get:function(){return location.protocol+"//"+location.host}}]),e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.UserManagerEvents=void 0;var r=n(0),i=n(16),a=n(17);t.UserManagerEvents=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n));return r._userLoaded=new a.Event("User loaded"),r._userUnloaded=new a.Event("User unloaded"),r._silentRenewError=new a.Event("Silent renew error"),r._userSignedIn=new a.Event("User signed in"),r._userSignedOut=new a.Event("User signed out"),r._userSessionChanged=new a.Event("User session changed"),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.load=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r.Log.debug("UserManagerEvents.load"),e.prototype.load.call(this,t),n&&this._userLoaded.raise(t)},t.prototype.unload=function(){r.Log.debug("UserManagerEvents.unload"),e.prototype.unload.call(this),this._userUnloaded.raise()},t.prototype.addUserLoaded=function(e){this._userLoaded.addHandler(e)},t.prototype.removeUserLoaded=function(e){this._userLoaded.removeHandler(e)},t.prototype.addUserUnloaded=function(e){this._userUnloaded.addHandler(e)},t.prototype.removeUserUnloaded=function(e){this._userUnloaded.removeHandler(e)},t.prototype.addSilentRenewError=function(e){this._silentRenewError.addHandler(e)},t.prototype.removeSilentRenewError=function(e){this._silentRenewError.removeHandler(e)},t.prototype._raiseSilentRenewError=function(e){r.Log.debug("UserManagerEvents._raiseSilentRenewError",e.message),this._silentRenewError.raise(e)},t.prototype.addUserSignedIn=function(e){this._userSignedIn.addHandler(e)},t.prototype.removeUserSignedIn=function(e){this._userSignedIn.removeHandler(e)},t.prototype._raiseUserSignedIn=function(){r.Log.debug("UserManagerEvents._raiseUserSignedIn"),this._userSignedIn.raise()},t.prototype.addUserSignedOut=function(e){this._userSignedOut.addHandler(e)},t.prototype.removeUserSignedOut=function(e){this._userSignedOut.removeHandler(e)},t.prototype._raiseUserSignedOut=function(){r.Log.debug("UserManagerEvents._raiseUserSignedOut"),this._userSignedOut.raise()},t.prototype.addUserSessionChanged=function(e){this._userSessionChanged.addHandler(e)},t.prototype.removeUserSessionChanged=function(e){this._userSessionChanged.removeHandler(e)},t.prototype._raiseUserSessionChanged=function(){r.Log.debug("UserManagerEvents._raiseUserSessionChanged"),this._userSessionChanged.raise()},t}(i.AccessTokenEvents)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.Timer=void 0;var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=n(1),o=n(17);t.Timer=function(e){function t(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n));return o._timer=r,o._nowFunc=i||function(){return Date.now()/1e3},o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.init=function(e){e<=0&&(e=1),e=parseInt(e);var t=this.now+e;if(this.expiration===t&&this._timerHandle)i.Log.debug("Timer.init timer "+this._name+" skipping initialization since already initialized for expiration:",this.expiration);else{this.cancel(),i.Log.debug("Timer.init timer "+this._name+" for duration:",e),this._expiration=t;var n=5;e<n&&(n=e),this._timerHandle=this._timer.setInterval(this._callback.bind(this),1e3*n)}},t.prototype.cancel=function(){this._timerHandle&&(i.Log.debug("Timer.cancel: ",this._name),this._timer.clearInterval(this._timerHandle),this._timerHandle=null)},t.prototype._callback=function(){var t=this._expiration-this.now;i.Log.debug("Timer.callback; "+this._name+" timer expires in:",t),this._expiration<=this.now&&(this.cancel(),e.prototype.raise.call(this))},r(t,[{key:"now",get:function(){return parseInt(this._nowFunc())}},{key:"expiration",get:function(){return this._expiration}}]),t}(o.Event)},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.SilentRenewService=void 0;var r=n(0);t.SilentRenewService=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._userManager=t}return e.prototype.start=function(){this._callback||(this._callback=this._tokenExpiring.bind(this),this._userManager.events.addAccessTokenExpiring(this._callback),this._userManager.getUser().then(function(e){}).catch(function(e){r.Log.error("SilentRenewService.start: Error from getUser:",e.message)}))},e.prototype.stop=function(){this._callback&&(this._userManager.events.removeAccessTokenExpiring(this._callback),delete this._callback)},e.prototype._tokenExpiring=function(){var e=this;this._userManager.signinSilent().then(function(e){r.Log.debug("SilentRenewService._tokenExpiring: Silent token renewal successful")},function(t){r.Log.error("SilentRenewService._tokenExpiring: Error from signinSilent:",t.message),e._userManager.events._raiseSilentRenewError(t)})},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.CordovaPopupNavigator=void 0;var r=n(21);t.CordovaPopupNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){var t=new r.CordovaPopupWindow(e);return Promise.resolve(t)},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.CordovaIFrameNavigator=void 0;var r=n(21);t.CordovaIFrameNavigator=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.prepare=function(e){e.popupWindowFeatures="hidden=yes";var t=new r.CordovaPopupWindow(e);return Promise.resolve(t)},e}()},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.Version="1.11.6"}])},e.exports=t()},7(e){var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,a,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,n)}(e,i,{once:!0})})},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var o=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var i,a,o;if(s(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),void 0===o)o=a[t]=n,++e._eventsCount;else if("function"==typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(i=c(e))>0&&o.length>i&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,console&&console.warn}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=u.bind(r);return i.listener=n,r.wrapFn=i,i}function p(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):h(i,i.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function m(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)})}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return c(this)},a.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i="error"===e,a=this._events;if(void 0!==a)i=i&&void 0===a.error;else if(!i)return!1;if(i){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var c=a[e];if(void 0===c)return!1;if("function"==typeof c)r(c,this,t);else{var l=c.length,u=h(c,l);for(n=0;n<l;++n)r(u[n],this,t)}return!0},a.prototype.addListener=function(e,t){return l(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return l(this,e,t,!0)},a.prototype.once=function(e,t){return s(t),this.on(e,d(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,d(this,e,t)),this},a.prototype.removeListener=function(e,t){var n,r,i,a,o;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r<a.length;++r)"removeListener"!==(i=a[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},a.prototype.listenerCount=f,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},386(e){const t={acl:"http://www.w3.org/ns/auth/acl#",arg:"http://www.w3.org/ns/pim/arg#",as:"https://www.w3.org/ns/activitystreams#",bookmark:"http://www.w3.org/2002/01/bookmark#",cal:"http://www.w3.org/2002/12/cal/ical#",cco:"http://www.ontologyrepository.com/CommonCoreOntologies/",cert:"http://www.w3.org/ns/auth/cert#",contact:"http://www.w3.org/2000/10/swap/pim/contact#",dc:"http://purl.org/dc/elements/1.1/",dct:"http://purl.org/dc/terms/",doap:"http://usefulinc.com/ns/doap#",foaf:"http://xmlns.com/foaf/0.1/",geo:"http://www.w3.org/2003/01/geo/wgs84_pos#",gpx:"http://www.w3.org/ns/pim/gpx#",gr:"http://purl.org/goodrelations/v1#",http:"http://www.w3.org/2007/ont/http#",httph:"http://www.w3.org/2007/ont/httph#",icalTZ:"http://www.w3.org/2002/12/cal/icaltzd#",ldp:"http://www.w3.org/ns/ldp#",link:"http://www.w3.org/2007/ont/link#",log:"http://www.w3.org/2000/10/swap/log#",meeting:"http://www.w3.org/ns/pim/meeting#",mo:"http://purl.org/ontology/mo/",org:"http://www.w3.org/ns/org#",owl:"http://www.w3.org/2002/07/owl#",pad:"http://www.w3.org/ns/pim/pad#",patch:"http://www.w3.org/ns/pim/patch#",prov:"http://www.w3.org/ns/prov#",pto:"http://www.productontology.org/id/",qu:"http://www.w3.org/2000/10/swap/pim/qif#",trip:"http://www.w3.org/ns/pim/trip#",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",rss:"http://purl.org/rss/1.0/",sched:"http://www.w3.org/ns/pim/schedule#",schema:"http://schema.org/",sioc:"http://rdfs.org/sioc/ns#",skos:"http://www.w3.org/2004/02/skos/core#",solid:"http://www.w3.org/ns/solid/terms#",space:"http://www.w3.org/ns/pim/space#",stat:"http://www.w3.org/ns/posix/stat#",tab:"http://www.w3.org/2007/ont/link#",tabont:"http://www.w3.org/2007/ont/link#",ui:"http://www.w3.org/ns/ui#",vann:"http://purl.org/vocab/vann/",vcard:"http://www.w3.org/2006/vcard/ns#",wf:"http://www.w3.org/2005/01/wf/flow#",xsd:"http://www.w3.org/2001/XMLSchema#"};e.exports=function(e={namedNode:e=>e}){const n={};for(const r in t){const i=t[r];n[r]=function(t=""){return e.namedNode(i+t)}}return n}}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return i[e].call(n.exports,n,n.exports,o),n.exports}function s(...e){}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const c=new TextEncoder,l=new TextDecoder;function u(...e){const t=e.reduce((e,{length:t})=>e+t,0),n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}const d=e=>(e=>{let t=e;"string"==typeof t&&(t=c.encode(t));const n=[];for(let e=0;e<t.length;e+=32768)n.push(String.fromCharCode.apply(null,t.subarray(e,e+32768)));return btoa(n.join(""))})(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),p=e=>{let t=e;t instanceof Uint8Array&&(t=l.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return(e=>{const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n})(t)}catch{throw new TypeError("The input to be decoded is not correctly encoded.")}};class f extends Error{constructor(e,t){super(e,t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}f.code="ERR_JOSE_GENERIC";class h extends f{constructor(e,t,n="unspecified",r="unspecified"){super(e,{cause:{claim:n,reason:r,payload:t}}),this.code="ERR_JWT_CLAIM_VALIDATION_FAILED",this.claim=n,this.reason=r,this.payload=t}}h.code="ERR_JWT_CLAIM_VALIDATION_FAILED";class m extends f{constructor(e,t,n="unspecified",r="unspecified"){super(e,{cause:{claim:n,reason:r,payload:t}}),this.code="ERR_JWT_EXPIRED",this.claim=n,this.reason=r,this.payload=t}}m.code="ERR_JWT_EXPIRED";class g extends f{constructor(){super(...arguments),this.code="ERR_JOSE_ALG_NOT_ALLOWED"}}g.code="ERR_JOSE_ALG_NOT_ALLOWED";class v extends f{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}}v.code="ERR_JOSE_NOT_SUPPORTED";(class extends f{constructor(e="decryption operation failed",t){super(e,t),this.code="ERR_JWE_DECRYPTION_FAILED"}}).code="ERR_JWE_DECRYPTION_FAILED";(class extends f{constructor(){super(...arguments),this.code="ERR_JWE_INVALID"}}).code="ERR_JWE_INVALID";class b extends f{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}}b.code="ERR_JWS_INVALID";class y extends f{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}}y.code="ERR_JWT_INVALID";(class extends f{constructor(){super(...arguments),this.code="ERR_JWK_INVALID"}}).code="ERR_JWK_INVALID";class w extends f{constructor(){super(...arguments),this.code="ERR_JWKS_INVALID"}}w.code="ERR_JWKS_INVALID";class x extends f{constructor(e="no applicable key found in the JSON Web Key Set",t){super(e,t),this.code="ERR_JWKS_NO_MATCHING_KEY"}}x.code="ERR_JWKS_NO_MATCHING_KEY";class A extends f{constructor(e="multiple matching keys found in the JSON Web Key Set",t){super(e,t),this.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS"}}Symbol.asyncIterator,A.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS";class E extends f{constructor(e="request timed out",t){super(e,t),this.code="ERR_JWKS_TIMEOUT"}}E.code="ERR_JWKS_TIMEOUT";class C extends f{constructor(e="signature verification failed",t){super(e,t),this.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED"}}function k(e,t){const n=`SHA-${e.slice(-3)}`;switch(e){case"HS256":case"HS384":case"HS512":return{hash:n,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:n,name:"RSA-PSS",saltLength:e.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:n,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:n,name:"ECDSA",namedCurve:t.namedCurve};case"Ed25519":return{name:"Ed25519"};case"EdDSA":return{name:t.name};default:throw new v(`alg ${e} is not supported either by JOSE or your javascript runtime`)}}C.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";const _=crypto,S=e=>e instanceof CryptoKey,T=(e,t)=>{if(e.startsWith("RS")||e.startsWith("PS")){const{modulusLength:n}=t.algorithm;if("number"!=typeof n||n<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)}};function P(e,t="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${t} must be ${e}`)}function F(e,t){return e.name===t}function R(e){return parseInt(e.name.slice(4),10)}function I(e,t){if(t.length&&!t.some(t=>e.usages.includes(t))){let e="CryptoKey does not support this operation, its usages must include ";if(t.length>2){const n=t.pop();e+=`one of ${t.join(", ")}, or ${n}.`}else 2===t.length?e+=`one of ${t[0]} or ${t[1]}.`:e+=`${t[0]}.`;throw new TypeError(e)}}function N(e,t,...n){switch(t){case"HS256":case"HS384":case"HS512":{if(!F(e.algorithm,"HMAC"))throw P("HMAC");const n=parseInt(t.slice(2),10);if(R(e.algorithm.hash)!==n)throw P(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!F(e.algorithm,"RSASSA-PKCS1-v1_5"))throw P("RSASSA-PKCS1-v1_5");const n=parseInt(t.slice(2),10);if(R(e.algorithm.hash)!==n)throw P(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!F(e.algorithm,"RSA-PSS"))throw P("RSA-PSS");const n=parseInt(t.slice(2),10);if(R(e.algorithm.hash)!==n)throw P(`SHA-${n}`,"algorithm.hash");break}case"EdDSA":if("Ed25519"!==e.algorithm.name&&"Ed448"!==e.algorithm.name)throw P("Ed25519 or Ed448");break;case"Ed25519":if(!F(e.algorithm,"Ed25519"))throw P("Ed25519");break;case"ES256":case"ES384":case"ES512":{if(!F(e.algorithm,"ECDSA"))throw P("ECDSA");const n=function(e){switch(e){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}(t);if(e.algorithm.namedCurve!==n)throw P(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}I(e,n)}function L(e,t,...n){if((n=n.filter(Boolean)).length>2){const t=n.pop();e+=`one of type ${n.join(", ")}, or ${t}.`}else 2===n.length?e+=`one of type ${n[0]} or ${n[1]}.`:e+=`of type ${n[0]}.`;return null==t?e+=` Received ${t}`:"function"==typeof t&&t.name?e+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor?.name&&(e+=` Received an instance of ${t.constructor.name}`),e}const B=(e,...t)=>L("Key must be ",e,...t);function O(e,t,...n){return L(`Key for the ${e} algorithm must be `,t,...n)}const j=e=>!!S(e)||"KeyObject"===e?.[Symbol.toStringTag],D=["CryptoKey"];function M(e){if("object"!=typeof(t=e)||null===t||"[object Object]"!==Object.prototype.toString.call(e))return!1;var t;if(null===Object.getPrototypeOf(e))return!0;let n=e;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}function U(e){return M(e)&&"string"==typeof e.kty}const z=async e=>{if(!e.alg)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');const{algorithm:t,keyUsages:n}=function(e){let t,n;switch(e.kty){case"RSA":switch(e.alg){case"PS256":case"PS384":case"PS512":t={name:"RSA-PSS",hash:`SHA-${e.alg.slice(-3)}`},n=e.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":t={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.alg.slice(-3)}`},n=e.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":t={name:"RSA-OAEP",hash:`SHA-${parseInt(e.alg.slice(-3),10)||1}`},n=e.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(e.alg){case"ES256":t={name:"ECDSA",namedCurve:"P-256"},n=e.d?["sign"]:["verify"];break;case"ES384":t={name:"ECDSA",namedCurve:"P-384"},n=e.d?["sign"]:["verify"];break;case"ES512":t={name:"ECDSA",namedCurve:"P-521"},n=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:"ECDH",namedCurve:e.crv},n=e.d?["deriveBits"]:[];break;default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"OKP":switch(e.alg){case"Ed25519":t={name:"Ed25519"},n=e.d?["sign"]:["verify"];break;case"EdDSA":t={name:e.crv},n=e.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":t={name:e.crv},n=e.d?["deriveBits"]:[];break;default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;default:throw new v('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:t,keyUsages:n}}(e),r=[t,e.ext??!1,e.key_ops??n],i={...e};return delete i.alg,delete i.use,_.subtle.importKey("jwk",i,...r)},H=e=>p(e);let q,$;const W=e=>"KeyObject"===e?.[Symbol.toStringTag],V=async(e,t,n,r,i=!1)=>{let a=e.get(t);if(a?.[r])return a[r];const o=await z({...n,alg:r});return i&&Object.freeze(t),a?a[r]=o:e.set(t,{[r]:o}),o},G=(e,t)=>{if(W(e)){let n=e.export({format:"jwk"});return delete n.d,delete n.dp,delete n.dq,delete n.p,delete n.q,delete n.qi,n.k?H(n.k):($||($=new WeakMap),V($,e,n,t))}if(U(e)){if(e.k)return p(e.k);$||($=new WeakMap);return V($,e,e,t,!0)}return e},K=(e,t)=>{if(W(e)){let n=e.export({format:"jwk"});return n.k?H(n.k):(q||(q=new WeakMap),V(q,e,n,t))}if(U(e)){if(e.k)return p(e.k);q||(q=new WeakMap);return V(q,e,e,t,!0)}return e};async function J(e,t,n){if("sign"===n&&(t=await K(t,e)),"verify"===n&&(t=await G(t,e)),S(t))return N(t,e,n),t;if(t instanceof Uint8Array){if(!e.startsWith("HS"))throw new TypeError(B(t,...D));return _.subtle.importKey("raw",t,{hash:`SHA-${e.slice(-3)}`,name:"HMAC"},!1,[n])}throw new TypeError(B(t,...D,"Uint8Array","JSON Web Key"))}const Y=async(e,t,n,r)=>{const i=await J(e,t,"verify");T(e,i);const a=k(e,i.algorithm);try{return await _.subtle.verify(a,i,n,r)}catch{return!1}},Q=(...e)=>{const t=e.filter(Boolean);if(0===t.length||1===t.length)return!0;let n;for(const e of t){const t=Object.keys(e);if(n&&0!==n.size)for(const e of t){if(n.has(e))return!1;n.add(e)}else n=new Set(t)}return!0},X=e=>e?.[Symbol.toStringTag],Z=(e,t,n)=>{if(void 0!==t.use&&"sig"!==t.use)throw new TypeError("Invalid key for this operation, when present its use must be sig");if(void 0!==t.key_ops&&!0!==t.key_ops.includes?.(n))throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${n}`);if(void 0!==t.alg&&t.alg!==e)throw new TypeError(`Invalid key for this operation, when present its alg must be ${e}`);return!0},ee=(e,t,n,r)=>{if(!(t instanceof Uint8Array)){if(r&&U(t)){if(function(e){return U(e)&&"oct"===e.kty&&"string"==typeof e.k}(t)&&Z(e,t,n))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!j(t))throw new TypeError(O(e,t,...D,"Uint8Array",r?"JSON Web Key":null));if("secret"!==t.type)throw new TypeError(`${X(t)} instances for symmetric algorithms must be of type "secret"`)}};function te(e,t,n,r){t.startsWith("HS")||"dir"===t||t.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(t)?ee(t,n,r,e):((e,t,n,r)=>{if(r&&U(t))switch(n){case"sign":if(function(e){return"oct"!==e.kty&&"string"==typeof e.d}(t)&&Z(e,t,n))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(function(e){return"oct"!==e.kty&&void 0===e.d}(t)&&Z(e,t,n))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!j(t))throw new TypeError(O(e,t,...D,r?"JSON Web Key":null));if("secret"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithms must not be of type "secret"`);if("sign"===n&&"public"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm signing must be of type "private"`);if("decrypt"===n&&"public"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm decryption must be of type "private"`);if(t.algorithm&&"verify"===n&&"private"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm verifying must be of type "public"`);if(t.algorithm&&"encrypt"===n&&"private"===t.type)throw new TypeError(`${X(t)} instances for asymmetric algorithm encryption must be of type "public"`)})(t,n,r,e)}te.bind(void 0,!1);const ne=te.bind(void 0,!0);const re=function(e,t,n,r,i){if(void 0!==i.crit&&void 0===r?.crit)throw new e('"crit" (Critical) Header Parameter MUST be integrity protected');if(!r||void 0===r.crit)return new Set;if(!Array.isArray(r.crit)||0===r.crit.length||r.crit.some(e=>"string"!=typeof e||0===e.length))throw new e('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let a;a=void 0!==n?new Map([...Object.entries(n),...t.entries()]):t;for(const t of r.crit){if(!a.has(t))throw new v(`Extension Header Parameter "${t}" is not recognized`);if(void 0===i[t])throw new e(`Extension Header Parameter "${t}" is missing`);if(a.get(t)&&void 0===r[t])throw new e(`Extension Header Parameter "${t}" MUST be integrity protected`)}return new Set(r.crit)},ie=(e,t)=>{if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e)))throw new TypeError(`"${e}" option must be an array of strings`);if(t)return new Set(t)};async function ae(e,t){if(!M(e))throw new TypeError("JWK must be an object");switch(t||(t=e.alg),e.kty){case"oct":if("string"!=typeof e.k||!e.k)throw new TypeError('missing "k" (Key Value) Parameter value');return p(e.k);case"RSA":if("oth"in e&&void 0!==e.oth)throw new v('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return z({...e,alg:t});default:throw new v('Unsupported "kty" (Key Type) Parameter value')}}async function oe(e,t,n){if(e instanceof Uint8Array&&(e=l.decode(e)),"string"!=typeof e)throw new b("Compact JWS must be a string or Uint8Array");const{0:r,1:i,2:a,length:o}=e.split(".");if(3!==o)throw new b("Invalid Compact JWS");const s=await async function(e,t,n){if(!M(e))throw new b("Flattened JWS must be an object");if(void 0===e.protected&&void 0===e.header)throw new b('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==e.protected&&"string"!=typeof e.protected)throw new b("JWS Protected Header incorrect type");if(void 0===e.payload)throw new b("JWS Payload missing");if("string"!=typeof e.signature)throw new b("JWS Signature missing or incorrect type");if(void 0!==e.header&&!M(e.header))throw new b("JWS Unprotected Header incorrect type");let r={};if(e.protected)try{const t=p(e.protected);r=JSON.parse(l.decode(t))}catch{throw new b("JWS Protected Header is invalid")}if(!Q(r,e.header))throw new b("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const i={...r,...e.header};let a=!0;if(re(b,new Map([["b64",!0]]),n?.crit,r,i).has("b64")&&(a=r.b64,"boolean"!=typeof a))throw new b('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:o}=i;if("string"!=typeof o||!o)throw new b('JWS "alg" (Algorithm) Header Parameter missing or invalid');const s=n&&ie("algorithms",n.algorithms);if(s&&!s.has(o))throw new g('"alg" (Algorithm) Header Parameter value not allowed');if(a){if("string"!=typeof e.payload)throw new b("JWS Payload must be a string")}else if("string"!=typeof e.payload&&!(e.payload instanceof Uint8Array))throw new b("JWS Payload must be a string or an Uint8Array instance");let d=!1;"function"==typeof t?(t=await t(r,e),d=!0,ne(o,t,"verify"),U(t)&&(t=await ae(t,o))):ne(o,t,"verify");const f=u(c.encode(e.protected??""),c.encode("."),"string"==typeof e.payload?c.encode(e.payload):e.payload);let h,m;try{h=p(e.signature)}catch{throw new b("Failed to base64url decode the signature")}if(!await Y(o,t,h,f))throw new C;if(a)try{m=p(e.payload)}catch{throw new b("Failed to base64url decode the payload")}else m="string"==typeof e.payload?c.encode(e.payload):e.payload;const v={payload:m};return void 0!==e.protected&&(v.protectedHeader=r),void 0!==e.header&&(v.unprotectedHeader=e.header),d?{...v,key:t}:v}({payload:i,protected:r,signature:a},t,n),d={payload:s.payload,protectedHeader:s.protectedHeader};return"function"==typeof t?{...d,key:s.key}:d}const se=e=>Math.floor(e.getTime()/1e3),ce=86400,le=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,ue=e=>{const t=le.exec(e);if(!t||t[4]&&t[1])throw new TypeError("Invalid time period format");const n=parseFloat(t[2]);let r;switch(t[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":r=Math.round(n);break;case"minute":case"minutes":case"min":case"mins":case"m":r=Math.round(60*n);break;case"hour":case"hours":case"hr":case"hrs":case"h":r=Math.round(3600*n);break;case"day":case"days":case"d":r=Math.round(n*ce);break;case"week":case"weeks":case"w":r=Math.round(604800*n);break;default:r=Math.round(31557600*n)}return"-"===t[1]||"ago"===t[4]?-r:r},de=e=>e.toLowerCase().replace(/^application\//,""),pe=(e,t,n={})=>{let r;try{r=JSON.parse(l.decode(t))}catch{}if(!M(r))throw new y("JWT Claims Set must be a top-level JSON object");const{typ:i}=n;if(i&&("string"!=typeof e.typ||de(e.typ)!==de(i)))throw new h('unexpected "typ" JWT header value',r,"typ","check_failed");const{requiredClaims:a=[],issuer:o,subject:s,audience:c,maxTokenAge:u}=n,d=[...a];void 0!==u&&d.push("iat"),void 0!==c&&d.push("aud"),void 0!==s&&d.push("sub"),void 0!==o&&d.push("iss");for(const e of new Set(d.reverse()))if(!(e in r))throw new h(`missing required "${e}" claim`,r,e,"missing");if(o&&!(Array.isArray(o)?o:[o]).includes(r.iss))throw new h('unexpected "iss" claim value',r,"iss","check_failed");if(s&&r.sub!==s)throw new h('unexpected "sub" claim value',r,"sub","check_failed");if(c&&(p=r.aud,f="string"==typeof c?[c]:c,!("string"==typeof p?f.includes(p):Array.isArray(p)&&f.some(Set.prototype.has.bind(new Set(p))))))throw new h('unexpected "aud" claim value',r,"aud","check_failed");var p,f;let g;switch(typeof n.clockTolerance){case"string":g=ue(n.clockTolerance);break;case"number":g=n.clockTolerance;break;case"undefined":g=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:v}=n,b=se(v||new Date);if((void 0!==r.iat||u)&&"number"!=typeof r.iat)throw new h('"iat" claim must be a number',r,"iat","invalid");if(void 0!==r.nbf){if("number"!=typeof r.nbf)throw new h('"nbf" claim must be a number',r,"nbf","invalid");if(r.nbf>b+g)throw new h('"nbf" claim timestamp check failed',r,"nbf","check_failed")}if(void 0!==r.exp){if("number"!=typeof r.exp)throw new h('"exp" claim must be a number',r,"exp","invalid");if(r.exp<=b-g)throw new m('"exp" claim timestamp check failed',r,"exp","check_failed")}if(u){const e=b-r.iat;if(e-g>("number"==typeof u?u:ue(u)))throw new m('"iat" claim timestamp check failed (too far in the past)',r,"iat","check_failed");if(e<0-g)throw new h('"iat" claim timestamp check failed (it should be in the past)',r,"iat","check_failed")}return r};const fe=async(e,t,n)=>{let r,i,a=!1;"function"==typeof AbortController&&(r=new AbortController,i=setTimeout(()=>{a=!0,r.abort()},t));const o=await fetch(e.href,{signal:r?r.signal:void 0,redirect:"manual",headers:n.headers}).catch(e=>{if(a)throw new E;throw e});if(void 0!==i&&clearTimeout(i),200!==o.status)throw new f("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await o.json()}catch{throw new f("Failed to parse the JSON Web Key Set HTTP response as JSON")}};function he(e){return M(e)}function me(e){return"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e))}class ge{constructor(e){if(this._cached=new WeakMap,!function(e){return e&&"object"==typeof e&&Array.isArray(e.keys)&&e.keys.every(he)}(e))throw new w("JSON Web Key Set malformed");this._jwks=me(e)}async getKey(e,t){const{alg:n,kid:r}={...e,...t?.header},i=function(e){switch("string"==typeof e&&e.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";default:throw new v('Unsupported "alg" value for a JSON Web Key Set')}}(n),a=this._jwks.keys.filter(e=>{let t=i===e.kty;if(t&&"string"==typeof r&&(t=r===e.kid),t&&"string"==typeof e.alg&&(t=n===e.alg),t&&"string"==typeof e.use&&(t="sig"===e.use),t&&Array.isArray(e.key_ops)&&(t=e.key_ops.includes("verify")),t)switch(n){case"ES256":t="P-256"===e.crv;break;case"ES256K":t="secp256k1"===e.crv;break;case"ES384":t="P-384"===e.crv;break;case"ES512":t="P-521"===e.crv;break;case"Ed25519":t="Ed25519"===e.crv;break;case"EdDSA":t="Ed25519"===e.crv||"Ed448"===e.crv}return t}),{0:o,length:s}=a;if(0===s)throw new x;if(1!==s){const e=new A,{_cached:t}=this;throw e[Symbol.asyncIterator]=async function*(){for(const e of a)try{yield await ve(t,e,n)}catch{}},e}return ve(this._cached,o,n)}}async function ve(e,t,n){const r=e.get(t)||e.set(t,{}).get(t);if(void 0===r[n]){const e=await ae({...t,ext:!0},n);if(e instanceof Uint8Array||"public"!==e.type)throw new w("JSON Web Key Set members must be public keys");r[n]=e}return r[n]}function be(e){const t=new ge(e),n=async(e,n)=>t.getKey(e,n);return Object.defineProperties(n,{jwks:{value:()=>me(t._jwks),enumerable:!0,configurable:!1,writable:!1}}),n}let ye;if("undefined"==typeof navigator||!navigator.userAgent?.startsWith?.("Mozilla/5.0 ")){ye=`${"jose"}/${"v5.10.0"}`}const we=Symbol();class xe{constructor(e,t){if(!(e instanceof URL))throw new TypeError("url must be an instance of URL");var n,r;this._url=new URL(e.href),this._options={agent:t?.agent,headers:t?.headers},this._timeoutDuration="number"==typeof t?.timeoutDuration?t?.timeoutDuration:5e3,this._cooldownDuration="number"==typeof t?.cooldownDuration?t?.cooldownDuration:3e4,this._cacheMaxAge="number"==typeof t?.cacheMaxAge?t?.cacheMaxAge:6e5,void 0!==t?.[we]&&(this._cache=t?.[we],n=t?.[we],r=this._cacheMaxAge,"object"==typeof n&&null!==n&&"uat"in n&&"number"==typeof n.uat&&!(Date.now()-n.uat>=r)&&"jwks"in n&&M(n.jwks)&&Array.isArray(n.jwks.keys)&&Array.prototype.every.call(n.jwks.keys,M)&&(this._jwksTimestamp=this._cache.uat,this._local=be(this._cache.jwks)))}coolingDown(){return"number"==typeof this._jwksTimestamp&&Date.now()<this._jwksTimestamp+this._cooldownDuration}fresh(){return"number"==typeof this._jwksTimestamp&&Date.now()<this._jwksTimestamp+this._cacheMaxAge}async getKey(e,t){this._local&&this.fresh()||await this.reload();try{return await this._local(e,t)}catch(n){if(n instanceof x&&!1===this.coolingDown())return await this.reload(),this._local(e,t);throw n}}async reload(){this._pendingFetch&&("undefined"!=typeof WebSocketPair||"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"undefined"!=typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(this._pendingFetch=void 0);const e=new Headers(this._options.headers);ye&&!e.has("User-Agent")&&(e.set("User-Agent",ye),this._options.headers=Object.fromEntries(e.entries())),this._pendingFetch||(this._pendingFetch=fe(this._url,this._timeoutDuration,this._options).then(e=>{this._local=be(e),this._cache&&(this._cache.uat=Date.now(),this._cache.jwks=e),this._jwksTimestamp=Date.now(),this._pendingFetch=void 0}).catch(e=>{throw this._pendingFetch=void 0,e})),await this._pendingFetch}}const Ae=async e=>{if(e instanceof Uint8Array)return{kty:"oct",k:d(e)};if(!S(e))throw new TypeError(B(e,...D,"Uint8Array"));if(!e.extractable)throw new TypeError("non-extractable CryptoKey cannot be exported as a JWK");const{ext:t,key_ops:n,alg:r,use:i,...a}=await _.subtle.exportKey("jwk",e);return a};async function Ee(e){return Ae(e)}const Ce=async(e,t,n)=>{const r=await J(e,t,"sign");T(e,r);const i=await _.subtle.sign(k(e,r.algorithm),r,n);return new Uint8Array(i)};class ke{constructor(e){if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=e}setProtectedHeader(e){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=e,this}setUnprotectedHeader(e){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=e,this}async sign(e,t){if(!this._protectedHeader&&!this._unprotectedHeader)throw new b("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!Q(this._protectedHeader,this._unprotectedHeader))throw new b("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const n={...this._protectedHeader,...this._unprotectedHeader};let r=!0;if(re(b,new Map([["b64",!0]]),t?.crit,this._protectedHeader,n).has("b64")&&(r=this._protectedHeader.b64,"boolean"!=typeof r))throw new b('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:i}=n;if("string"!=typeof i||!i)throw new b('JWS "alg" (Algorithm) Header Parameter missing or invalid');ne(i,e,"sign");let a,o=this._payload;r&&(o=c.encode(d(o))),a=this._protectedHeader?c.encode(d(JSON.stringify(this._protectedHeader))):c.encode("");const s=u(a,c.encode("."),o),p=await Ce(i,e,s),f={signature:d(p),payload:""};return r&&(f.payload=l.decode(o)),this._unprotectedHeader&&(f.header=this._unprotectedHeader),this._protectedHeader&&(f.protected=l.decode(a)),f}}class _e{constructor(e){this._flattened=new ke(e)}setProtectedHeader(e){return this._flattened.setProtectedHeader(e),this}async sign(e,t){const n=await this._flattened.sign(e,t);if(void 0===n.payload)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${n.protected}.${n.payload}.${n.signature}`}}function Se(e,t){if(!Number.isFinite(t))throw new TypeError(`Invalid ${e} input`);return t}class Te{constructor(e={}){if(!M(e))throw new TypeError("JWT Claims Set MUST be an object");this._payload=e}setIssuer(e){return this._payload={...this._payload,iss:e},this}setSubject(e){return this._payload={...this._payload,sub:e},this}setAudience(e){return this._payload={...this._payload,aud:e},this}setJti(e){return this._payload={...this._payload,jti:e},this}setNotBefore(e){return"number"==typeof e?this._payload={...this._payload,nbf:Se("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:Se("setNotBefore",se(e))}:this._payload={...this._payload,nbf:se(new Date)+ue(e)},this}setExpirationTime(e){return"number"==typeof e?this._payload={...this._payload,exp:Se("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:Se("setExpirationTime",se(e))}:this._payload={...this._payload,exp:se(new Date)+ue(e)},this}setIssuedAt(e){return void 0===e?this._payload={...this._payload,iat:se(new Date)}:e instanceof Date?this._payload={...this._payload,iat:Se("setIssuedAt",se(e))}:this._payload="string"==typeof e?{...this._payload,iat:Se("setIssuedAt",se(new Date)+ue(e))}:{...this._payload,iat:Se("setIssuedAt",e)},this}}class Pe extends Te{setProtectedHeader(e){return this._protectedHeader=e,this}async sign(e,t){const n=new _e(c.encode(JSON.stringify(this._payload)));if(n.setProtectedHeader(this._protectedHeader),Array.isArray(this._protectedHeader?.crit)&&this._protectedHeader.crit.includes("b64")&&!1===this._protectedHeader.b64)throw new y("JWTs MUST NOT use unencoded payload");return n.sign(e,t)}}function Fe(e){const t=e?.modulusLength??2048;if("number"!=typeof t||t<2048)throw new v("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");return t}async function Re(e,t){return async function(e,t){let n,r;switch(e){case"PS256":case"PS384":case"PS512":n={name:"RSA-PSS",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:Fe(t)},r=["sign","verify"];break;case"RS256":case"RS384":case"RS512":n={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${e.slice(-3)}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:Fe(t)},r=["sign","verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":n={name:"RSA-OAEP",hash:`SHA-${parseInt(e.slice(-3),10)||1}`,publicExponent:new Uint8Array([1,0,1]),modulusLength:Fe(t)},r=["decrypt","unwrapKey","encrypt","wrapKey"];break;case"ES256":n={name:"ECDSA",namedCurve:"P-256"},r=["sign","verify"];break;case"ES384":n={name:"ECDSA",namedCurve:"P-384"},r=["sign","verify"];break;case"ES512":n={name:"ECDSA",namedCurve:"P-521"},r=["sign","verify"];break;case"Ed25519":n={name:"Ed25519"},r=["sign","verify"];break;case"EdDSA":{r=["sign","verify"];const e=t?.crv??"Ed25519";switch(e){case"Ed25519":case"Ed448":n={name:e};break;default:throw new v("Invalid or unsupported crv option provided")}break}case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":{r=["deriveKey","deriveBits"];const e=t?.crv??"P-256";switch(e){case"P-256":case"P-384":case"P-521":n={name:"ECDH",namedCurve:e};break;case"X25519":case"X448":n={name:e};break;default:throw new v("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448")}break}default:throw new v('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}return _.subtle.generateKey(n,t?.extractable??!1,r)}(e,t)}const Ie={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let Ne;const Le=new Uint8Array(16);const Be=[];for(let e=0;e<256;++e)Be.push((e+256).toString(16).slice(1));function Oe(e,t=0){return(Be[e[t+0]]+Be[e[t+1]]+Be[e[t+2]]+Be[e[t+3]]+"-"+Be[e[t+4]]+Be[e[t+5]]+"-"+Be[e[t+6]]+Be[e[t+7]]+"-"+Be[e[t+8]]+Be[e[t+9]]+"-"+Be[e[t+10]]+Be[e[t+11]]+Be[e[t+12]]+Be[e[t+13]]+Be[e[t+14]]+Be[e[t+15]]).toLowerCase()}const je=function(e,t,n){if(Ie.randomUUID&&!t&&!e)return Ie.randomUUID();const r=(e=e||{}).random??e.rng?.()??function(){if(!Ne){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ne=crypto.getRandomValues.bind(crypto)}return Ne(Le)}();if(r.length<16)throw new Error("Random bytes length must be >= 16");if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){if((n=n||0)<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=r[e];return t}return Oe(r)},De="solidClientAuthn:",Me=["ES256","RS256"],Ue="error",ze="login",He="logout",qe="newRefreshToken",$e="sessionExpired",We="sessionExtended",Ve="sessionRestore",Ge="timeoutSet",Ke=["openid","offline_access","webid"];class Je{handleables;constructor(e){this.handleables=e,this.handleables=e}async getProperHandler(e){const t=await Promise.all(this.handleables.map(t=>t.canHandle(...e)));for(let e=0;e<t.length;e+=1)if(t[e])return this.handleables[e];return null}async canHandle(...e){return null!==await this.getProperHandler(e)}async handle(...e){const t=await this.getProperHandler(e);if(t)return t.handle(...e);throw new Error(`[${this.constructor.name}] cannot find a suitable handler for: ${e.map(e=>{try{return JSON.stringify(e)}catch(t){return e.toString()}}).join(", ")}`)}}async function Ye(e,t,n,r){let i,a;try{const{payload:a}=await async function(e,t,n){const r=await oe(e,t,n);if(r.protectedHeader.crit?.includes("b64")&&!1===r.protectedHeader.b64)throw new y("JWTs MUST NOT use unencoded payload");const i={payload:pe(r.protectedHeader,r.payload,n),protectedHeader:r.protectedHeader};return"function"==typeof t?{...i,key:r.key}:i}(e,function(e,t){const n=new xe(e,t),r=async(e,t)=>n.getKey(e,t);return Object.defineProperties(r,{coolingDown:{get:()=>n.coolingDown(),enumerable:!0,configurable:!1},fresh:{get:()=>n.fresh(),enumerable:!0,configurable:!1},reload:{value:()=>n.reload(),enumerable:!0,configurable:!1,writable:!1},reloading:{get:()=>!!n._pendingFetch,enumerable:!0,configurable:!1},jwks:{value:()=>n._local?.jwks(),enumerable:!0,configurable:!1,writable:!1}}),r}(new URL(t)),{issuer:n,audience:r});i=a}catch(e){throw new Error(`Token verification failed: ${e.stack}`)}if("string"==typeof i.azp&&(a=i.azp),"string"==typeof i.webid)return{webId:i.webid,clientId:a};if("string"!=typeof i.sub)throw new Error(`The token ${JSON.stringify(i)} is invalid: it has no 'webid' claim and no 'sub' claim.`);try{return new URL(i.sub),{webId:i.sub,clientId:a}}catch(e){throw new Error(`The token has no 'webid' claim, and its 'sub' claim of [${i.sub}] is invalid as a URL - error [${e}].`)}}function Qe(e){try{const t=new URL(e),n=!t.searchParams.has("code")&&!t.searchParams.has("state"),r=""===t.hash;return n&&r}catch(e){return!1}}function Xe(e){const t=new URL(e);return t.searchParams.delete("state"),t.searchParams.delete("code"),t.searchParams.delete("error"),t.searchParams.delete("error_description"),t.searchParams.delete("iss"),t}class Ze{storageUtility;redirector;constructor(e,t){this.storageUtility=e,this.redirector=t,this.storageUtility=e,this.redirector=t}parametersGuard=e=>void 0!==e.issuerConfiguration.grantTypesSupported&&e.issuerConfiguration.grantTypesSupported.indexOf("authorization_code")>-1&&void 0!==e.redirectUrl;async canHandle(e){return this.parametersGuard(e)}async setupRedirectHandler({oidcLoginOptions:e,state:t,codeVerifier:n,targetUrl:r}){if(!this.parametersGuard(e))throw new Error("The authorization code grant requires a redirectUrl.");var i,a;await Promise.all([this.storageUtility.setForUser(t,{sessionId:e.sessionId}),this.storageUtility.setForUser(e.sessionId,{codeVerifier:n,issuer:e.issuer.toString(),redirectUrl:e.redirectUrl,dpop:Boolean(e.dpop).toString(),keepAlive:(i=e.keepAlive,a=!0,"boolean"==typeof i?Boolean(i):Boolean(a)).toString()})]),this.redirector.redirect(r,{handleRedirect:e.handleRedirect})}}class et{sessionInfoManager;constructor(e){this.sessionInfoManager=e,this.sessionInfoManager=e}async canHandle(){return!0}async handle(e){await this.sessionInfoManager.clear(e)}}class tt{redirector;constructor(e){this.redirector=e,this.redirector=e}async canHandle(e,t){return"idp"===t?.logoutType}async handle(e,t){if("idp"!==t?.logoutType)throw new Error("Attempting to call idp logout handler to perform app logout");if(void 0===t.toLogoutUrl)throw new Error("Cannot perform IDP logout. Did you log in using the OIDC authentication flow?");this.redirector.redirect(t.toLogoutUrl(t),{handleRedirect:t.handleRedirect})}}class nt{handlers;constructor(e,t){this.handlers=[new et(e),new tt(t)]}async canHandle(){return!0}async handle(e,t){for(const n of this.handlers)await n.canHandle(e,t)&&await n.handle(e,t)}}function rt(){return{isLoggedIn:!1,sessionId:je(),fetch:(...e)=>fetch(...e)}}async function it(e,t){await Promise.all([t.deleteAllUserData(e,{secure:!1}),t.deleteAllUserData(e,{secure:!0})])}class at{storageUtility;constructor(e){this.storageUtility=e,this.storageUtility=e}update(e,t){throw new Error("Not Implemented")}set(e,t){throw new Error("Not Implemented")}get(e){throw new Error("Not implemented")}async getAll(){throw new Error("Not implemented")}async clear(e){return it(e,this.storageUtility)}async register(e){throw new Error("Not implemented")}async getRegisteredSessionIdAll(){throw new Error("Not implemented")}async clearAll(){throw new Error("Not implemented")}async setOidcContext(e,t){throw new Error("Not implemented")}}function ot({endSessionEndpoint:e,idTokenHint:t}){if(void 0!==e)return function({state:n,postLogoutUrl:r}){return function({endSessionEndpoint:e,idTokenHint:t,postLogoutRedirectUri:n,state:r}){const i=new URL(e);return void 0!==t&&i.searchParams.append("id_token_hint",t),void 0!==n&&(i.searchParams.append("post_logout_redirect_uri",n),void 0!==r&&i.searchParams.append("state",r)),i.toString()}({endSessionEndpoint:e,idTokenHint:t,state:n,postLogoutRedirectUri:r})}}function st(e){try{return new URL(e),!0}catch{return!1}}async function ct(e,t,n,r){let i;if(function(e,t){return t.scopesSupported.includes("webid")&&void 0!==e.clientId&&st(e.clientId)}(e,t))i={clientId:e.clientId,clientName:e.clientName,clientType:"solid-oidc"};else{if(!function(e){return void 0!==e.clientId&&!st(e.clientId)}(e))return r.getClient({sessionId:e.sessionId,clientName:e.clientName,redirectUrl:e.redirectUrl},t);i={clientId:e.clientId,clientSecret:e.clientSecret,clientName:e.clientName,clientType:"static"}}const a={clientId:i.clientId,clientType:i.clientType};return"static"===i.clientType&&(a.clientSecret=i.clientSecret),i.clientName&&(a.clientName=i.clientName),await n.setForUser(e.sessionId,a),i}const lt=(e,t)=>fetch(e,t);class ut{loginHandler;redirectHandler;logoutHandler;sessionInfoManager;issuerConfigFetcher;boundLogout;constructor(e,t,n,r,i){this.loginHandler=e,this.redirectHandler=t,this.logoutHandler=n,this.sessionInfoManager=r,this.issuerConfigFetcher=i,this.loginHandler=e,this.redirectHandler=t,this.logoutHandler=n,this.sessionInfoManager=r,this.issuerConfigFetcher=i}fetch=lt;logout=async(e,t)=>{await this.logoutHandler.handle(e,"idp"===t?.logoutType?{...t,toLogoutUrl:this.boundLogout}:t),this.fetch=lt,delete this.boundLogout};getSessionInfo=async e=>this.sessionInfoManager.get(e);getAllSessionInfo=async()=>this.sessionInfoManager.getAll()}async function dt(e,t,n){try{const[r,i,a,o,s]=await Promise.all([t.getForUser(e,"issuer",{errorIfNull:!0}),t.getForUser(e,"codeVerifier"),t.getForUser(e,"redirectUrl"),t.getForUser(e,"dpop",{errorIfNull:!0}),t.getForUser(e,"keepAlive")]);await t.deleteForUser(e,"codeVerifier");return{codeVerifier:i,redirectUrl:a,issuerConfig:await n.fetchConfig(r),dpop:"true"===o,keepAlive:"string"!=typeof s||"true"===s}}catch(t){throw new Error(`Failed to retrieve OIDC context from storage associated with session [${e}]: ${t}`)}}class pt{secureStorage;insecureStorage;constructor(e,t){this.secureStorage=e,this.insecureStorage=t,this.secureStorage=e,this.insecureStorage=t}getKey(e){return`solidClientAuthenticationUser:${e}`}async getUserData(e,t){const n=await(t?this.secureStorage:this.insecureStorage).get(this.getKey(e));if(void 0===n)return{};try{return JSON.parse(n)}catch(r){throw new Error(`Data for user [${e}] in [${t?"secure":"unsecure"}] storage is corrupted - expected valid JSON, but got: ${n}`)}}async setUserData(e,t,n){await(n?this.secureStorage:this.insecureStorage).set(this.getKey(e),JSON.stringify(t))}async get(e,t){const n=await(t?.secure?this.secureStorage:this.insecureStorage).get(e);if(void 0===n&&t?.errorIfNull)throw new Error(`[${e}] is not stored`);return n}async set(e,t,n){return(n?.secure?this.secureStorage:this.insecureStorage).set(e,t)}async delete(e,t){return(t?.secure?this.secureStorage:this.insecureStorage).delete(e)}async getForUser(e,t,n){const r=await this.getUserData(e,n?.secure);let i;if(r&&r[t]||(i=void 0),i=r[t],void 0===i&&n?.errorIfNull)throw new Error(`Field [${t}] for user [${e}] is not stored`);return i||void 0}async setForUser(e,t,n){let r;try{r=await this.getUserData(e,n?.secure)}catch{r={}}await this.setUserData(e,{...r,...t},n?.secure)}async deleteForUser(e,t,n){const r=await this.getUserData(e,n?.secure);delete r[t],await this.setUserData(e,r,n?.secure)}async deleteAllUserData(e,t){await(t?.secure?this.secureStorage:this.insecureStorage).delete(this.getKey(e))}}class ft{map={};async get(e){return this.map[e]||void 0}async set(e,t){this.map[e]=t}async delete(e){delete this.map[e]}}class ht extends Error{constructor(e){super(e)}}Error;class mt extends Error{missingFields;constructor(e){super(`Invalid response from OIDC provider: missing fields ${e}`),this.missingFields=e}}class gt extends Error{error;errorDescription;constructor(e,t,n){super(e),this.error=t,this.errorDescription=n}}function vt(e){const t=new URL(e);return new URL(t.pathname,t.origin).toString()}async function bt(e,t,n){return new Pe({htu:vt(e),htm:t.toUpperCase(),jti:je()}).setProtectedHeader({alg:Me[0],jwk:n.publicKey,typ:"dpop+jwt"}).setIssuedAt().sign(n.privateKey,{})}async function yt(e,t,n,r){if(void 0!==n)return async function(e,t,n,r){const i=new Headers(r?.headers);return i.set("Authorization",`DPoP ${t}`),i.set("DPoP",await bt(e,r?.method??"get",n)),{...r,headers:i}}(e,t,n,r);const i=new Headers(r?.headers);return i.set("Authorization",`Bearer ${t}`),{...r,headers:i}}async function wt(e,t,n,r,i=fetch){return i(t,await yt(t.toString(),e,r,n))}const xt=e=>void 0!==e?e-5>0?e-5:e:600;function At(e,t){let n,r=e;const i=t?.refreshOptions;if(void 0!==i){const e=async()=>{try{const{accessToken:a,refreshToken:o,expiresIn:s}=await async function(e,t,n){const r=await e.tokenRefresher.refresh(e.sessionId,e.refreshToken,t);return n?.emit(We,r.expiresIn??600),{accessToken:r.accessToken,refreshToken:r.refreshToken,expiresIn:r.expiresIn}}(i,t.dpopKey,t.eventEmitter);r=a,void 0!==o&&(i.refreshToken=o),clearTimeout(n),n=setTimeout(e,1e3*xt(s)),t.eventEmitter?.emit(Ge,n)}catch(e){e instanceof gt&&(t?.eventEmitter?.emit(Ue,e.error,e.errorDescription),t?.eventEmitter?.emit($e)),e instanceof mt&&e.missingFields.includes("access_token")&&t?.eventEmitter?.emit($e)}};n=setTimeout(e,1e3*xt(t.expiresIn)),t.eventEmitter?.emit(Ge,n)}else if(void 0!==t&&void 0!==t.eventEmitter){const e=setTimeout(()=>{t.eventEmitter.emit($e)},1e3*xt(t.expiresIn));t.eventEmitter.emit(Ge,e)}return async(e,n)=>{let i=await wt(r,e,n,t?.dpopKey,t?.fetch);const a=!i.ok&&(o=i.status,![401,403].includes(o));var o;if(i.ok||a)return i;return i.url!==e&&void 0!==t?.dpopKey&&(i=await wt(r,i.url,n,t.dpopKey,t.fetch)),i}}var Et=o(7),Ct=o(516);function kt(e,t){if("string"!=typeof e.client_id)throw new Error(`Dynamic client registration failed: no client_id has been found on ${JSON.stringify(e)}`);if(t.redirectUrl&&function(e){return Array.isArray(e.redirect_uris)&&e.redirect_uris.every(e=>"string"==typeof e)}(e)&&e.redirect_uris[0]!==t.redirectUrl.toString())throw new Error(`Dynamic client registration failed: the returned redirect URIs ${JSON.stringify(e.redirect_uris)} don't match the provided ${JSON.stringify([t.redirectUrl.toString()])}`);return!0}async function _t(e,t){if(!t.registrationEndpoint)throw new Error("Dynamic Registration could not be completed because the issuer has no registration endpoint.");if(!Array.isArray(t.idTokenSigningAlgValuesSupported))throw new Error("The OIDC issuer discovery profile is missing the 'id_token_signing_alg_values_supported' value, which is mandatory.");const n=(r=t.idTokenSigningAlgValuesSupported,Me.find(e=>r.includes(e))??null);var r;const i={client_name:e.clientName,application_type:"web",redirect_uris:[e.redirectUrl?.toString()],subject_type:"public",token_endpoint_auth_method:"client_secret_basic",id_token_signed_response_alg:n,grant_types:["authorization_code","refresh_token"]},a=await fetch(t.registrationEndpoint.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(a.ok){const t=await a.json();return kt(t,e),{clientId:t.client_id,clientSecret:t.client_secret,expiresAt:t.client_secret_expires_at,idTokenSignedResponseAlg:t.id_token_signed_response_alg,clientType:"dynamic"}}throw 400===a.status&&function(e,t){if("invalid_redirect_uri"===e.error)throw new Error(`Dynamic client registration failed: the provided redirect uri [${t.redirectUrl?.toString()}] is invalid - ${e.error_description??""}`);if("invalid_client_metadata"===e.error)throw new Error(`Dynamic client registration failed: the provided client metadata ${JSON.stringify(t)} is invalid - ${e.error_description??""}`);throw new Error(`Dynamic client registration failed: ${e.error} - ${e.error_description??""}`)}(await a.json(),e),new Error(`Dynamic client registration failed: the server returned ${a.status} ${a.statusText} - ${await a.text()}`)}function St(e){return void 0!==e.error_description&&"string"==typeof e.error_description}function Tt(e,t){if(void 0!==(n=e).error&&"string"==typeof n.error)throw new gt(`Token endpoint returned error [${e.error}]${St(e)?`: ${e.error_description}`:""}${function(e){return void 0!==e.error_uri&&"string"==typeof e.error_uri}(e)?` (see ${e.error_uri})`:""}`,e.error,St(e)?e.error_description:void 0);var n;if(!function(e){return void 0!==e.access_token&&"string"==typeof e.access_token}(e))throw new mt(["access_token"]);if(!function(e){return void 0!==e.id_token&&"string"==typeof e.id_token}(e))throw new mt(["id_token"]);if(!function(e){return void 0!==e.token_type&&"string"==typeof e.token_type}(e))throw new mt(["token_type"]);if(!function(e){return void 0===e.expires_in||"number"==typeof e.expires_in}(e))throw new mt(["expires_in"]);if(!t&&"bearer"!==e.token_type.toLowerCase())throw new Error(`Invalid token endpoint response: requested a [Bearer] token, but got a 'token_type' value of [${e.token_type}].`);return e}async function Pt(e,t,n,r){!function(e,t){if(t.grantType&&(!e.grantTypesSupported||!e.grantTypesSupported.includes(t.grantType)))throw new Error(`The issuer [${e.issuer}] does not support the [${t.grantType}] grant`);if(!e.tokenEndpoint)throw new Error(`This issuer [${e.issuer}] does not have a token endpoint`)}(e,n);const i={"content-type":"application/x-www-form-urlencoded"};let a;r&&(a=await async function(){const{privateKey:e,publicKey:t}=await Re(Me[0]),n={privateKey:e,publicKey:await Ee(t)};return[n.publicKey.alg]=Me,n}(),i.DPoP=await bt(e.tokenEndpoint,"POST",a)),t.clientSecret&&(i.Authorization=`Basic ${btoa(`${t.clientId}:${t.clientSecret}`)}`);const o={grant_type:n.grantType,redirect_uri:n.redirectUrl,code:n.code,code_verifier:n.codeVerifier,client_id:t.clientId},s={method:"POST",headers:i,body:new URLSearchParams(o).toString()},c=await fetch(e.tokenEndpoint,s),l=Tt(await c.json(),r),{webId:u,clientId:d}=await Ye(l.id_token,e.jwksUri,e.issuer,t.clientId);return{accessToken:l.access_token,idToken:l.id_token,refreshToken:(p=l,void 0!==p.refresh_token&&"string"==typeof p.refresh_token?l.refresh_token:void 0),webId:u,clientId:d,dpopKey:a,expiresIn:l.expires_in};var p}async function Ft(e,t,n,r){if(void 0===n.clientId)throw new Error("No client ID available when trying to refresh the access token.");const i={grant_type:"refresh_token",refresh_token:e};let a={};void 0!==r&&(a={DPoP:await bt(t.tokenEndpoint,"POST",r)});let o={};void 0!==n.clientSecret?o={Authorization:`Basic ${btoa(`${n.clientId}:${n.clientSecret}`)}`}:(e=>{try{return new URL(e),!0}catch{return!1}})(n.clientId)&&(i.client_id=n.clientId);const s=await fetch(t.tokenEndpoint,{method:"POST",body:new URLSearchParams(i).toString(),headers:{...a,...o,"Content-Type":"application/x-www-form-urlencoded"}});let c;try{c=await s.json()}catch(e){throw new Error(`The token endpoint of issuer ${t.issuer} returned a malformed response.`)}const l=Tt(c,void 0!==r),{webId:u}=await Ye(l.id_token,t.jwksUri,t.issuer,n.clientId);return{accessToken:l.access_token,idToken:l.id_token,refreshToken:"string"==typeof l.refresh_token?l.refresh_token:void 0,webId:u,dpopKey:r,expiresIn:l.expires_in}}class Rt extends pt{constructor(e,t){super(e,t)}}class It extends ut{login=async(e,t)=>{"none"!==e.prompt&&await this.sessionInfoManager.clear(e.sessionId);const n=e.redirectUrl??function(e){const t=Xe(e);return t.hash="",e.includes(`${t.origin}/`)?t.href:`${t.origin}${t.href.substring(t.origin.length+1)}`}(window.location.href);if(!Qe(n))throw new Error(`${n} is not a valid redirect URL, it is either a malformed IRI, includes a hash fragment, or reserved query parameters ('code' or 'state').`);await this.loginHandler.handle({...e,redirectUrl:n,clientName:e.clientName??e.clientId,eventEmitter:t})};validateCurrentSession=async e=>{const t=await this.sessionInfoManager.get(e);return void 0===t||void 0===t.clientAppId||void 0===t.issuer?null:t};handleIncomingRedirect=async(e,t)=>{try{const n=await this.redirectHandler.handle(e,t,void 0);return this.fetch=n.fetch.bind(window),this.boundLogout=n.getLogoutUrl,await this.cleanUrlAfterRedirect(e),{isLoggedIn:n.isLoggedIn,webId:n.webId,sessionId:n.sessionId,expirationDate:n.expirationDate,clientAppId:n.clientAppId}}catch(n){return await this.cleanUrlAfterRedirect(e),void t.emit(Ue,"redirect",n)}};async cleanUrlAfterRedirect(e){const t=Xe(e).href;for(window.history.replaceState(null,"",t);window.location.href!==t;)await new Promise(e=>{setTimeout(()=>e(),1)})}}function Nt(e){return"string"==typeof e.oidcIssuer}function Lt(e){return"string"==typeof e.redirectUrl}class Bt{storageUtility;oidcHandler;issuerConfigFetcher;clientRegistrar;constructor(e,t,n,r){this.storageUtility=e,this.oidcHandler=t,this.issuerConfigFetcher=n,this.clientRegistrar=r,this.storageUtility=e,this.oidcHandler=t,this.issuerConfigFetcher=n,this.clientRegistrar=r}async canHandle(e){return Nt(e)&&Lt(e)}async handle(e){if(!Nt(e))throw new ht(`OidcLoginHandler requires an OIDC issuer: missing property 'oidcIssuer' in ${JSON.stringify(e)}`);if(!Lt(e))throw new ht(`OidcLoginHandler requires a redirect URL: missing property 'redirectUrl' in ${JSON.stringify(e)}`);const t=await this.issuerConfigFetcher.fetchConfig(e.oidcIssuer),n=await ct(e,t,this.storageUtility,this.clientRegistrar),r={issuer:t.issuer,dpop:"dpop"===e.tokenType.toLowerCase(),...e,issuerConfiguration:t,client:n,scopes:(i=e.customScopes,Array.isArray(i)?Array.from(new Set([...Ke,...i.filter(e=>"string"==typeof e&&!e.includes(" "))])):Ke)};var i;return this.oidcHandler.handle(r)}}class Ot extends Ze{async handle(e){const t={authority:e.issuer.toString(),client_id:e.client.clientId,client_secret:e.client.clientSecret,redirect_uri:e.redirectUrl,response_type:"code",scope:e.scopes.join(" "),filterProtocolClaims:!0,loadUserInfo:!1,code_verifier:!0,prompt:e.prompt??"consent"},n=new Ct.OidcClient(t);try{const t=await n.createSigninRequest();return await this.setupRedirectHandler({oidcLoginOptions:e,state:t.state._id,codeVerifier:t.state._code_verifier,targetUrl:t.url.toString()})}catch(e){}}}const jt={issuer:{toKey:"issuer",convertToUrl:!0},authorization_endpoint:{toKey:"authorizationEndpoint",convertToUrl:!0},token_endpoint:{toKey:"tokenEndpoint",convertToUrl:!0},userinfo_endpoint:{toKey:"userinfoEndpoint",convertToUrl:!0},jwks_uri:{toKey:"jwksUri",convertToUrl:!0},registration_endpoint:{toKey:"registrationEndpoint",convertToUrl:!0},end_session_endpoint:{toKey:"endSessionEndpoint",convertToUrl:!0},scopes_supported:{toKey:"scopesSupported"},response_types_supported:{toKey:"responseTypesSupported"},response_modes_supported:{toKey:"responseModesSupported"},grant_types_supported:{toKey:"grantTypesSupported"},acr_values_supported:{toKey:"acrValuesSupported"},subject_types_supported:{toKey:"subjectTypesSupported"},id_token_signing_alg_values_supported:{toKey:"idTokenSigningAlgValuesSupported"},id_token_encryption_alg_values_supported:{toKey:"idTokenEncryptionAlgValuesSupported"},id_token_encryption_enc_values_supported:{toKey:"idTokenEncryptionEncValuesSupported"},userinfo_signing_alg_values_supported:{toKey:"userinfoSigningAlgValuesSupported"},userinfo_encryption_alg_values_supported:{toKey:"userinfoEncryptionAlgValuesSupported"},userinfo_encryption_enc_values_supported:{toKey:"userinfoEncryptionEncValuesSupported"},request_object_signing_alg_values_supported:{toKey:"requestObjectSigningAlgValuesSupported"},request_object_encryption_alg_values_supported:{toKey:"requestObjectEncryptionAlgValuesSupported"},request_object_encryption_enc_values_supported:{toKey:"requestObjectEncryptionEncValuesSupported"},token_endpoint_auth_methods_supported:{toKey:"tokenEndpointAuthMethodsSupported"},token_endpoint_auth_signing_alg_values_supported:{toKey:"tokenEndpointAuthSigningAlgValuesSupported"},display_values_supported:{toKey:"displayValuesSupported"},claim_types_supported:{toKey:"claimTypesSupported"},claims_supported:{toKey:"claimsSupported"},service_documentation:{toKey:"serviceDocumentation"},claims_locales_supported:{toKey:"claimsLocalesSupported"},ui_locales_supported:{toKey:"uiLocalesSupported"},claims_parameter_supported:{toKey:"claimsParameterSupported"},request_parameter_supported:{toKey:"requestParameterSupported"},request_uri_parameter_supported:{toKey:"requestUriParameterSupported"},require_request_uri_registration:{toKey:"requireRequestUriRegistration"},op_policy_uri:{toKey:"opPolicyUri",convertToUrl:!0},op_tos_uri:{toKey:"opTosUri",convertToUrl:!0}};class Dt{storageUtility;constructor(e){this.storageUtility=e,this.storageUtility=e}static getLocalStorageKey(e){return`issuerConfig:${e}`}async fetchConfig(e){let t;const n=new URL(".well-known/openid-configuration",e.endsWith("/")?e:`${e}/`).href,r=await fetch(n);try{t=function(e){const t={};return Object.keys(e).forEach(n=>{jt[n]&&(t[jt[n].toKey]=e[n])}),Array.isArray(t.scopesSupported)||(t.scopesSupported=["openid"]),t}(await r.json())}catch(t){throw new ht(`[${e.toString()}] has an invalid configuration: ${t.message}`)}return await this.storageUtility.set(Dt.getLocalStorageKey(e),JSON.stringify(t)),t}}async function Mt(e,t){await it(e,t),await async function(){const e=new Ct.OidcClient({response_mode:"query"});await e.clearStaleState(new Ct.WebStorageStateStore({}));const t=window.localStorage,n=[];for(let e=0;e<=t.length;e+=1){const r=t.key(e);r&&(r.match(/^oidc\..+$/)||r.match(/^solidClientAuthenticationUser:.+$/))&&n.push(r)}n.forEach(e=>t.removeItem(e))}()}class Ut extends at{async get(e){const[t,n,r,i,a,o,s,c]=await Promise.all([this.storageUtility.getForUser(e,"isLoggedIn",{secure:!0}),this.storageUtility.getForUser(e,"webId",{secure:!0}),this.storageUtility.getForUser(e,"clientId",{secure:!1}),this.storageUtility.getForUser(e,"clientSecret",{secure:!1}),this.storageUtility.getForUser(e,"redirectUrl",{secure:!1}),this.storageUtility.getForUser(e,"refreshToken",{secure:!0}),this.storageUtility.getForUser(e,"issuer",{secure:!1}),this.storageUtility.getForUser(e,"tokenType",{secure:!1})]);if("string"!=typeof a||Qe(a)){if(void 0!==c&&("string"!=typeof(l=c)||!["DPoP","Bearer"].includes(l)))throw new Error(`Tokens of type [${c}] are not supported.`);var l;if(void 0!==r||void 0!==t||void 0!==n||void 0!==o)return{sessionId:e,webId:n,isLoggedIn:"true"===t,redirectUrl:a,refreshToken:o,issuer:s,clientAppId:r,clientAppSecret:i,tokenType:c??"DPoP"}}else await Promise.all([this.storageUtility.deleteAllUserData(e,{secure:!1}),this.storageUtility.deleteAllUserData(e,{secure:!0})])}async clear(e){return Mt(e,this.storageUtility)}}class zt{async canHandle(e){try{return new URL(e),!0}catch(t){throw new Error(`[${e}] is not a valid URL, and cannot be used as a redirect URL: ${t}`)}}async handle(e){return rt()}}class Ht{storageUtility;sessionInfoManager;issuerConfigFetcher;clientRegistrar;tokerRefresher;constructor(e,t,n,r,i){this.storageUtility=e,this.sessionInfoManager=t,this.issuerConfigFetcher=n,this.clientRegistrar=r,this.tokerRefresher=i,this.storageUtility=e,this.sessionInfoManager=t,this.issuerConfigFetcher=n,this.clientRegistrar=r,this.tokerRefresher=i}async canHandle(e){try{const t=new URL(e);return null!==t.searchParams.get("code")&&null!==t.searchParams.get("state")}catch(t){throw new Error(`[${e}] is not a valid URL, and cannot be used as a redirect URL: ${t}`)}}async handle(e,t){if(!await this.canHandle(e))throw new Error(`AuthCodeRedirectHandler cannot handle [${e}]: it is missing one of [code, state].`);const n=new URL(e),r=n.searchParams.get("state"),i=await this.storageUtility.getForUser(r,"sessionId",{errorIfNull:!0}),{issuerConfig:a,codeVerifier:o,redirectUrl:s,dpop:c}=await dt(i,this.storageUtility,this.issuerConfigFetcher),l=n.searchParams.get("iss");if("string"==typeof l&&l!==a.issuer)throw new Error(`The value of the iss parameter (${l}) does not match the issuer identifier of the authorization server (${a.issuer}). See [rfc9207](https://www.rfc-editor.org/rfc/rfc9207.html#section-2.3-3.1.1)`);if(void 0===o)throw new Error(`The code verifier for session ${i} is missing from storage.`);if(void 0===s)throw new Error(`The redirect URL for session ${i} is missing from storage.`);const u=await this.clientRegistrar.getClient({sessionId:i},a),d=Date.now(),p=await Pt(a,u,{grantType:"authorization_code",code:n.searchParams.get("code"),codeVerifier:o,redirectUrl:s},c);let f;window.localStorage.removeItem(`oidc.${r}`),void 0!==p.refreshToken&&(f={sessionId:i,refreshToken:p.refreshToken,tokenRefresher:this.tokerRefresher});const h=At(p.accessToken,{dpopKey:p.dpopKey,refreshOptions:f,eventEmitter:t,expiresIn:p.expiresIn});await async function(e,t,n,r,i,a,o,s){void 0!==a&&await e.setForUser(t,{refreshToken:a},{secure:o}),void 0!==n&&await e.setForUser(t,{webId:n},{secure:o}),void 0!==r&&await e.setForUser(t,{clientId:r},{secure:o}),void 0!==i&&await e.setForUser(t,{isLoggedIn:i},{secure:o}),void 0!==s&&await e.setForUser(t,{publicKey:JSON.stringify(s.publicKey),privateKey:JSON.stringify(await Ee(s.privateKey))},{secure:o})}(this.storageUtility,i,p.webId,p.clientId,"true",void 0,!0);const m=await this.sessionInfoManager.get(i);if(!m)throw new Error(`Could not retrieve session: [${i}].`);return Object.assign(m,{fetch:h,getLogoutUrl:ot({idTokenHint:p.idToken,endSessionEndpoint:a.endSessionEndpoint}),expirationDate:"number"==typeof p.expiresIn?d+1e3*p.expiresIn:void 0})}}class qt extends Je{constructor(e){super(e)}}class $t{get storage(){return window.localStorage}async get(e){return this.storage.getItem(e)||void 0}async set(e,t){this.storage.setItem(e,t)}async delete(e){this.storage.removeItem(e)}}class Wt{redirect(e,t){t&&t.handleRedirect?t.handleRedirect(e):t&&t.redirectByReplacingState?window.history.replaceState({},"",e):window.location.href=e}}class Vt{storageUtility;constructor(e){this.storageUtility=e,this.storageUtility=e}async getClient(e,t){const[n,r,i,a,o]=await Promise.all([this.storageUtility.getForUser(e.sessionId,"clientId",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"clientSecret",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"expiresAt",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"clientName",{secure:!1}),this.storageUtility.getForUser(e.sessionId,"clientType",{secure:!1})]),s=void 0!==i?Number.parseInt(i,10):-1,c=void 0!==r&&0!==s&&Math.floor(Date.now()/1e3)>s;if(n&&("string"==typeof(l=o)&&["dynamic","static","solid-oidc"].includes(l))&&!c)return void 0!==r?{clientId:n,clientSecret:r,clientName:a,clientType:"dynamic",expiresAt:s}:{clientId:n,clientName:a,clientType:o};var l;try{const n=await _t(e,t),r={clientId:n.clientId,clientType:"dynamic"};return void 0!==n.clientSecret&&(r.clientSecret=n.clientSecret,r.expiresAt=String(n.expiresAt)),n.idTokenSignedResponseAlg&&(r.idTokenSignedResponseAlg=n.idTokenSignedResponseAlg),await this.storageUtility.setForUser(e.sessionId,r,{secure:!1}),n}catch(e){throw new Error("Client registration failed.",{cause:e})}}}class Gt{async canHandle(e){try{return new URL(e).searchParams.has("error")}catch(t){throw new Error(`[${e}] is not a valid URL, and cannot be used as a redirect URL: ${t}`)}}async handle(e,t){if(void 0!==t){const n=new URL(e),r=n.searchParams.get("error"),i=n.searchParams.get("error_description");t.emit(Ue,r,i)}return rt()}}class Kt{storageUtility;issuerConfigFetcher;clientRegistrar;constructor(e,t,n){this.storageUtility=e,this.issuerConfigFetcher=t,this.clientRegistrar=n,this.storageUtility=e,this.issuerConfigFetcher=t,this.clientRegistrar=n}async refresh(e,t,n,r){const i=await dt(e,this.storageUtility,this.issuerConfigFetcher),a=await this.clientRegistrar.getClient({sessionId:e},i.issuerConfig);if(void 0===t)throw new Error(`Session [${e}] has no refresh token to allow it to refresh its access token.`);if(i.dpop&&void 0===n)throw new Error(`For session [${e}], the key bound to the DPoP access token must be provided to refresh said access token.`);const o=await Ft(t,i.issuerConfig,a,n);return void 0!==o.refreshToken&&r?.emit(qe,o.refreshToken),o}}function Jt(e){const t=new ft,n=e.secureStorage||t,r=e.insecureStorage||new $t,i=new Rt(n,r),a=new Dt(i),o=new Vt(i),s=new Ut(i),c=new Kt(i,a,o),l=new Wt,u=new Bt(i,new Ot(i,l),a,o),d=new qt([new Gt,new Ht(i,s,a,o,c),new zt]);return new It(u,d,new nt(s,l),s,a)}const Yt=`${De}currentSession`,Qt=`${De}currentUrl`;class Xt{info;events;clientAuthentication;tokenRequestInProgress=!1;constructor(e={},t=void 0){this.events=new Et,e.clientAuthentication?this.clientAuthentication=e.clientAuthentication:e.secureStorage&&e.insecureStorage?this.clientAuthentication=Jt({secureStorage:e.secureStorage,insecureStorage:e.insecureStorage}):this.clientAuthentication=Jt({}),e.sessionInfo?this.info={sessionId:e.sessionInfo.sessionId,isLoggedIn:!1,webId:e.sessionInfo.webId,clientAppId:e.sessionInfo.clientAppId}:this.info={sessionId:t??je(),isLoggedIn:!1},this.events.on(ze,()=>window.localStorage.setItem(Yt,this.info.sessionId)),this.events.on($e,()=>this.internalLogout(!1)),this.events.on(Ue,()=>this.internalLogout(!1))}login=async e=>(await this.clientAuthentication.login({sessionId:this.info.sessionId,...e,tokenType:e.tokenType??"DPoP"},this.events),new Promise(()=>{}));fetch=(e,t)=>this.clientAuthentication.fetch(e,t);internalLogout=async(e,t)=>{window.localStorage.removeItem(Yt),await this.clientAuthentication.logout(this.info.sessionId,t),this.info.isLoggedIn=!1,e&&this.events.emit(He)};logout=async e=>this.internalLogout(!0,e);handleIncomingRedirect=async(e={})=>{if(this.info.isLoggedIn)return this.info;if(this.tokenRequestInProgress)return;const t="string"==typeof e?{url:e}:e,n=t.url??window.location.href;this.tokenRequestInProgress=!0;const r=await this.clientAuthentication.handleIncomingRedirect(n,this.events);if(function(e){return!!e?.isLoggedIn}(r)){this.setSessionInfo(r);const e=window.localStorage.getItem(Qt);null===e?this.events.emit(ze):(window.localStorage.removeItem(Qt),this.events.emit(Ve,e))}else if(!0===t.restorePreviousSession){const e=window.localStorage.getItem(Yt);if(null!==e){if(await async function(e,t,n){const r=await t.validateCurrentSession(e);return null!==r&&(window.localStorage.setItem(Qt,window.location.href),await t.login({sessionId:e,prompt:"none",oidcIssuer:r.issuer,redirectUrl:r.redirectUrl,clientId:r.clientAppId,clientSecret:r.clientAppSecret,tokenType:r.tokenType??"DPoP"},n.events),!0)}(e,this.clientAuthentication,this))return new Promise(()=>{})}}return this.tokenRequestInProgress=!1,r};setSessionInfo(e){this.info.isLoggedIn=e.isLoggedIn,this.info.webId=e.webId,this.info.sessionId=e.sessionId,this.info.clientAppId=e.clientAppId,this.info.expirationDate=e.expirationDate,this.events.on(We,e=>{this.info.expirationDate=Date.now()+1e3*e})}}const Zt=new Xt,en=r;var tn=o(386);const nn=o.n(tn)()(en),rn=(0,en.sym)("http://www.iana.org/assignments/link-relations/acl");function an(e){const t=nn;function n(e,n,r,i={}){const a=i.public||[],o=(0,en.graph)(),s=(0,en.Namespace)("http://www.w3.org/ns/auth/acl#");let c=o.sym(`${r}#a1`);const l=o.sym(r),u=o.sym(e);if(o.add(c,t.rdf("type"),s("Authorization"),l),o.add(c,s("accessTo"),u,l),i.defaultForNew&&o.add(c,s("default"),u,l),o.add(c,s("agent"),n,l),o.add(c,s("mode"),s("Read"),l),o.add(c,s("mode"),s("Write"),l),o.add(c,s("mode"),s("Control"),l),a.length){c=o.sym(`${r}#a2`),o.add(c,t.rdf("type"),s("Authorization"),l),o.add(c,s("accessTo"),u,l),o.add(c,s("agentClass"),t.foaf("Agent"),l);for(let e=0;e<a.length;e++)o.add(c,s("mode"),s(a[e]),l)}return(0,en.serialize)(l,o,r)}return{findAclDocUrl:async function(t){await e.fetcher.load(t);const n=e.any(t,rn);if(!n)throw new Error(`No ACL link discovered for ${t}`);return n.value},setACLUserPublic:function(t,r,i){const a=e.any(e.sym(t),rn);return Promise.resolve().then(()=>a||function(t){const n=e.fetcher;if(!n)throw new Error("Cannot fetch ACL rel, store has no fetcher");return n.load(t).then(n=>{if(!n.ok)throw new Error("fetchACLRel: While loading:"+n.error);const r=e.any(e.sym(t),rn);if(!r)throw new Error("fetchACLRel: No Link rel=ACL header for "+t);return r})}(t).catch(e=>{throw new Error(`Error fetching rel=ACL header for ${t}: ${e}`)})).then(a=>{const o=n(t,r,a.uri,i);if(!e.fetcher)throw new Error("Cannot PUT this, store has no fetcher");return e.fetcher.webOperation("PUT",a.uri,{data:o,contentType:"text/turtle"}).then(e=>{if(!e.ok)throw new Error("Error writing ACL text: "+e.error);return a})})},genACLText:n}}const on=()=>{let{SolidAppContext:e}=window;if(e||(e={}),e.viewingNoAuthPage=!1,e.noAuth&&window.document){if(window.document.location.href.startsWith(e.noAuth)){e.viewingNoAuthPage=!0;const t=new URLSearchParams(window.document.location.search);if(t){let n=e.viewedPage=t.get("uri")||null;if(n&&(n=decodeURI(n),!n.startsWith(e.noAuth))){const t=n.split(/\//);e.idp=t[0]+"//"+t[2],e.viewingNoAuthPage=!1}}}}return e};function sn(){const{$SolidTestEnvironment:e}=window;if(void 0!==e&&e.username)return e.username,(0,en.sym)(e.username);if("undefined"!=typeof document&&document.location&&"http://localhost"===(""+document.location).slice(0,16)){const e=document.getElementById("appTarget");if(!e)return null;const t=e.getAttribute("testID");return t?(0,en.sym)(t):null}return null}class cn{constructor(e){this.session=e}get authSession(){return this.session}currentUser(){const e=on();return e.viewingNoAuthPage?(0,en.sym)(e.webId):this&&this.session&&this.session.info&&this.session.info.webId&&this.session.info.isLoggedIn?(0,en.sym)(this.session.info.webId):sn()}async checkUser(e){const t=new URL(window.location.href).hash;t&&window.localStorage.setItem("preLoginRedirectHash",t),this.session.events.on(Ve,e=>{document.location.toString()!==e&&history.replaceState(null,"",e)});const n=new URL(window.location.href);n.hash="",await this.session.handleIncomingRedirect({restorePreviousSession:!0,url:n.href});const r=window.localStorage.getItem("preLoginRedirectHash");if(r){const e=new URL(window.location.href);e.hash!==r&&(history.pushState?history.pushState(null,document.title,r):location.hash=r,e.hash=r),window.localStorage.setItem("preLoginRedirectHash","")}let i=sn();if(i)return Promise.resolve(e?e(i):i);const a=this.webIdFromSession(this.session.info);return a&&(i=this.saveUser(a)),Promise.resolve(e?e(i):i)}saveUser(e,t){let n;if(e){n="string"==typeof e?e:e.uri;const r=(0,en.namedNode)(n);return t&&(t.me=r),r}return null}webIdFromSession(e){return(null==e?void 0:e.webId)&&e.isLoggedIn?e.webId:null}}function ln(e){return(0,en.sym)(e.uri+"#id"+Date.now())}function un(e){return!e||`${window.location.origin}/`!==new URL(e.value).origin}const dn="index.ttl#this";function pn(e,t){const n=nn;async function r(t,n,r){await e.fetcher.load(t);const i=e.any(t,new en.NamedNode("http://www.iana.org/assignments/link-relations/acl"));if(!i)throw new Error("Chat ACL doc not found!");const a=`\n @prefix acl: <http://www.w3.org/ns/auth/acl#>.\n <#owner>\n a acl:Authorization;\n acl:agent <${n.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Write, acl:Control.\n <#invitee>\n a acl:Authorization;\n acl:agent <${r.value}>;\n acl:accessTo <.>;\n acl:default <.>;\n acl:mode\n acl:Read, acl:Append.\n `;await e.fetcher.webOperation("PUT",i.value,{data:a,contentType:"text/turtle"})}async function i(t,r){const i=e.any(r,n.solid("privateTypeIndex"));if(!i)throw new Error("Private type index not found!");await e.fetcher.load(i);const a=ln(i),o=[(0,en.st)(a,n.rdf("type"),n.solid("TypeRegistration"),i.doc()),(0,en.st)(a,n.solid("forClass"),n.meeting("LongChat"),i.doc()),(0,en.st)(a,n.solid("instance"),t,i.doc())];await new Promise((t,n)=>{e.updater.update([],o,function(e,r,i){r?t(null):n(new Error(i))})})}async function a(n){const r=await t.loadMe(),i=function(e,t){const n=new URL(`IndividualChats/${new URL(e.value).host}/`,t.value).toString();return new en.NamedNode(n)}(n,await t.getPodRoot(r));let a=!0;try{await e.fetcher.load(new en.NamedNode(i.value+"index.ttl#this"))}catch(e){a=!1}return{me:r,chatContainer:i,exists:a}}async function o(e,t){return(await s({me:t,newBase:e.value})).newInstance}function s(t){const r=e,i=r.updater;if(t.me&&!t.me.uri)throw new Error("chat mintNew: Invalid userid "+t.me);const a=t.newInstance=t.newInstance||r.sym(t.newBase+dn),o=a.doc();return r.add(a,n.rdf("type"),n.meeting("LongChat"),o),r.add(a,n.dc("title"),"Chat channel",o),r.add(a,n.dc("created"),(0,en.term)(new Date(Date.now())),o),t.me&&r.add(a,n.dc("author"),t.me,o),new Promise(function(e,n){null==i||i.put(o,r.statementsMatching(void 0,void 0,void 0,o),"text/turtle",function(r,i,o){i?e({...t,newInstance:a}):n(new Error("FAILED to save new chat channel at: "+r+" : "+o))})})}async function c(t,r){var i;await e.fetcher.load(t.doc());const a=e.any(t,n.ldp("inbox"),void 0,t.doc());if(!a)throw new Error(`Invitee inbox not found! ${t.value}`);const o=`\n <> a <http://www.w3.org/ns/pim/meeting#LongChatInvite> ;\n ${n.rdf("seeAlso")} <${r.value}> .\n `,s=await(null===(i=e.fetcher)||void 0===i?void 0:i.webOperation("POST",a.value,{data:o,contentType:"text/turtle"}));if(!(null==s?void 0:s.headers.get("location")))throw new Error(`Invite sending returned a ${null==s?void 0:s.status}`)}return{setAcl:r,addToPrivateTypeIndex:i,findChat:a,createChatThing:o,getChat:async function(e,t=!0){const{me:n,chatContainer:s,exists:l}=await a(e);if(l)return new en.NamedNode(s.value+dn);if(t){const t=await o(s,n);return await c(e,t),await r(s,n,e),await i(t,n),t}return null},sendInvite:c,mintNew:s}}function fn(e,t,n,r,i){return{createInboxFor:async function(e,i){const a=await t.loadMe(),o=`${(await t.getPodRoot(a)).value}p2p-inboxes/${encodeURIComponent(i)}/`;return await r.createContainer(o),await n.setSinglePeerAccess({ownerWebId:a.value,peerWebId:e,accessToModes:"acl:Append",target:o}),o},getNewMessages:async function(e){e||(e=await t.loadMe());const n=await t.getMainInbox(e);return(await r.getContainerMembers(n)).filter(e=>!r.isContainer(e))},markAsRead:async function(t,n){const r=await e.fetcher._fetch(t);if(200!==r.status)throw new Error(`Not OK! ${t}`);const i=function(e,t){const n=t.getUTCFullYear(),r=("0"+(t.getUTCMonth()+1)).slice(-2),i=("0"+t.getUTCDate()).slice(-2),a=e.split("/"),o=a[a.length-1];return new URL(`./archive/${n}/${r}/${i}/${o}`,e).toString()}(t,n),a={method:"PUT",body:await r.text(),headers:[["Content-Type",r.headers.get("Content-Type")||"application/octet-stream"]]};"2"===(await e.fetcher._fetch(i,a)).status.toString()[0]&&await e.fetcher._fetch(t,{method:"DELETE"})}}}class hn extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype),this.name=new.target.name}}class mn extends hn{}class gn extends hn{}class vn extends hn{}class bn extends hn{}class yn extends hn{}class wn extends hn{}class xn extends hn{constructor(e,t){super(t),this.status=e}}function An(e,t,n){const r=nn;async function i(t){await a(t);const i=function(e){const t=e.uri.replace("/profile/","/").replace("/public/","/").split("/").slice(0,-1).join("/")+"/Settings/Preferences.ttl";return(0,en.sym)(t)}(t);let o;try{o=await n.followOrCreateLink(t,r.space("preferencesFile"),i,t.doc())}catch(e){if(e instanceof yn)throw e;if(e instanceof wn)throw e;if(e instanceof mn)throw e;if(e instanceof gn)throw e;if(e instanceof vn)throw e;if(e instanceof xn)throw e;throw e}try{await e.fetcher.load(o)}catch(e){const n=`Unable to load preference of user ${t}: ${e}`;if(401===e.response.status)throw new mn;if(403===e.response.status){if(un(o))throw new gn;throw new vn}throw new Error(n)}return o}async function a(t){if(!t)throw new Error("loadProfile: no user given.");try{await e.fetcher.load(t.doc())}catch(e){throw new Error(`Unable to load profile of user ${t}: ${e}`)}return t.doc()}function o(t){return e.any(t,r.space("storage"),void 0,t.doc())}return{loadMe:async function(){const n=t.currentUser();if(null===n)throw new Error("Current user not found! Not logged in?");return await e.fetcher.load(n.doc()),n},getPodRoot:function(e){const t=o(e);if(!t)throw new Error("User pod root not found!");return t},getMainInbox:async function(t){await e.fetcher.load(t);const n=e.any(t,r.ldp("inbox"),void 0,t.doc());if(!n)throw new Error("User main inbox not found!");return n},findStorage:o,loadPreferences:i,loadProfile:a,silencedLoadPreferences:async function(e){try{return await i(e)}catch(e){return}}}}function En(e,t,n,r){const i=nn;function a(e){return!!e&&(e.startsWith("https://")||e.startsWith("http://"))}async function o(t){if(!t)throw new Error("loadTypeIndexesFor: No user given");const a=await n.loadProfile(t);let o,s=null;try{s=p(t)}catch(e){}try{o=e.any(t,i.solid("publicTypeIndex"),void 0,a)||(s?await r.followOrCreateLink(t,i.solid("publicTypeIndex"),s,a):null)}catch(e){}const c=o?[{label:"public",index:o,agent:t}]:[];let l,u;try{l=await n.silencedLoadPreferences(t)}catch(e){l=null}if(l){let n,o=null;try{o=f(l)}catch(e){}try{n=e.any(t,i.solid("privateTypeIndex"),void 0,a)||(o?await r.followOrCreateLink(t,i.solid("privateTypeIndex"),o,l):null)}catch(e){}u=n?[{label:"private",index:n,agent:t}]:[]}else u=[];const d=c.concat(u);if(0===d.length)return d;const h=d.map(e=>e.index);try{await e.fetcher.load(h)}catch(e){}return d}async function c(t){let r;try{r=await n.silencedLoadPreferences(t)}catch(e){}if(r){const n=e.each(t,i.solid("community"),void 0,r).concat(e.each(t,i.solid("community"),void 0,t.doc()));let c=[];for(const e of n)if("NamedNode"===e.termType&&a(e.uri))try{c=c.concat(await o(e))}catch(t){s(e.uri)}else s();return c}return[]}async function l(e){return(await o(e)).concat(await c(e))}async function u(e,t){const n=await l(t);let r=[];for(const t of n){const n=await h(t,e);r=r.concat(n)}return r}function d(e){const t=e.doc(),n=t.dir();if((null==n?void 0:n.uri)&&a(n.uri))return n.uri;const r=t.uri;if(!r||!a(r))return null==e||e.uri,null;const i=r.split("#")[0],o=i.lastIndexOf("/");return-1===o?null:i.slice(0,o+1)}function p(e){const t=d(e);if(!t)throw new Error(`suggestPublicTypeIndex: Cannot derive directory for ${e.uri}`);return(0,en.sym)(t+"publicTypeIndex.ttl")}function f(e){const t=d(e);if(!t)throw new Error(`suggestPrivateTypeIndex: Cannot derive directory for ${e.uri}`);return(0,en.sym)(t+"privateTypeIndex.ttl")}async function h(t,n){const r=t.index,a=[],o=e.statementsMatching(null,i.solid("instance"),null,r).concat(e.statementsMatching(null,i.solid("instanceContainer"),null,r)).map(e=>e.subject);for(const s of o){const o=e.any(s,i.solid("forClass"),null,r);if(!n||o.sameTerm(n)){const n=e.each(s,i.solid("instance"),null,r);for(const e of n)a.push({instance:e,type:o,scope:t});const c=e.each(s,i.solid("instanceContainer"),null,r);for(const n of c)await e.fetcher.load(n),a.push({instance:(0,en.sym)(n.value),type:o,scope:t})}}return a}return{registerInTypeIndex:async function(t,n,r){const a=ln(n),o=[(0,en.st)(a,i.rdf("type"),i.solid("TypeRegistration"),n),(0,en.st)(a,i.solid("forClass"),r,n),(0,en.st)(a,i.solid("instance"),t,n)];try{await e.updater.update([],o)}catch(e){return null}return a},getRegistrations:function(t,n){return e.each(void 0,i.solid("instance"),t).filter(t=>e.holds(t,i.solid("forClass"),n))},loadTypeIndexesFor:o,loadCommunityTypeIndexes:c,loadAllTypeIndexes:l,getScopedAppInstances:u,getAppInstances:async function(e){const n=t.currentUser();if(!n)throw new Error("getAppInstances: Must be logged in to find apps.");return(await u(e,n)).map(e=>e.instance)},suggestPublicTypeIndex:p,suggestPrivateTypeIndex:f,deleteTypeIndexRegistration:async function(t){const n=e.the(null,i.solid("instance"),t.instance,t.scope.index);if(!n)throw new Error(`deleteTypeIndexRegistration: No registration found for ${t.instance}`);const r=e.statementsMatching(n,null,null,t.scope.index);await e.updater.update(r,[])},getScopedAppsFromIndex:h}}function Cn(e,t){const n=en.graph();en.fetcher(n,{fetch:e.fetch}),n.updater=new en.UpdateManager(n),n.features=[];const r=new cn(t),i=an(n),a=function(e){function t(t){return e.statementsMatching(t,(0,en.sym)("http://www.w3.org/ns/ldp#contains"),void 0).map(e=>e.object)}function n(e){const t=e.value;return"/"===t.charAt(t.length-1)}return{isContainer:n,createContainer:async function(t){if(!n((0,en.sym)(t)))throw new Error(`Not a container URL ${t}`);const r=await e.fetcher._fetch(t,{method:"PUT",headers:{"Content-Type":"text/turtle","If-None-Match":"*",Link:'<http://www.w3.org/ns/ldp#BasicContainer>; rel="type"'},body:" "});if("2"!==r.status.toString()[0])throw new Error(`Not OK: got ${r.status} response while creating container at ${t}`)},getContainerElements:t,getContainerMembers:async function(n){return await e.fetcher.load(n),t(n)}}}(n),o=function(e,t,n){async function r(t){let n;try{n=await e.fetcher.load(t)}catch(n){if(404!==n.response.status){if(401===n.response.status)throw new mn;if(403===n.response.status){if(un(t))throw new gn;throw new vn}const e="createIfNotExists doc load error NOT 404: "+t+": "+n;throw new xn(n.status,n.message+e)}try{await e.fetcher.webOperation("PUT",t,{data:"",contentType:"text/turtle"})}catch(e){throw new wn("createIfNotExists: PUT FAILED: "+t+": "+e)}await e.fetcher.load(t)}return n}return{recursiveDelete:async function r(i){try{if(n.isContainer(i)){const a=await t.findAclDocUrl(i);await e.fetcher._fetch(a,{method:"DELETE"});const o=await n.getContainerMembers(i);await Promise.all(o.map(e=>r(e)))}const a=i.value;return e.fetcher._fetch(a,{method:"DELETE"})}catch(e){i.value}},setSinglePeerAccess:async function(n){let r=["@prefix acl: <http://www.w3.org/ns/auth/acl#>.","",`<#alice> a acl:Authorization;\n acl:agent <${n.ownerWebId}>;`,` acl:accessTo <${n.target}>;`,` acl:default <${n.target}>;`," acl:mode acl:Read, acl:Write, acl:Control.",""].join("\n");n.accessToModes&&(r+=["<#bobAccessTo> a acl:Authorization;",` acl:agent <${n.peerWebId}>;`,` acl:accessTo <${n.target}>;`,` acl:mode ${n.accessToModes}.`,""].join("\n")),n.defaultModes&&(r+=["<#bobDefault> a acl:Authorization;",` acl:agent <${n.peerWebId}>;`,` acl:default <${n.target}>;`,` acl:mode ${n.defaultModes}.`,""].join("\n"));const i=await t.findAclDocUrl((0,en.sym)(n.target));return e.fetcher._fetch(i,{method:"PUT",body:r,headers:[["Content-Type","text/turtle"]]})},createEmptyRdfDoc:async function(t,n){await e.fetcher.webOperation("PUT",t.uri,{data:`# ${new Date} ${n}\n `,contentType:"text/turtle"})},followOrCreateLink:async function(t,n,i,a){await e.fetcher.load(a);const o=e.any(t,n,null,a);if(o)return o;if(!e.updater.editable(a)){const e=`followOrCreateLink: cannot edit ${a.value}`;throw new yn(e)}try{await e.updater.update([],[(0,en.st)(t,n,i,a)])}catch(e){throw new wn(e)}try{await r(i)}catch(e){throw e}return i},loadOrCreateIfNotExists:r}}(n,i,a),s=An(n,r,o),c=pn(n,s),l=fn(n,s,o,a),u=En(n,r,s,o);return{store:n,authn:r,acl:i,inbox:l,chat:c,profile:s,typeIndex:u,load:function(e){return n.fetcher.load(e)},updatePromise:function(e,t=[]){return new Promise((r,i)=>{n.updater.update(e,t,function(e,t,n){t?r():i(new Error(n))})})},clearStore:function(){n.statements.slice().forEach(n.remove.bind(n))}}}const kn=async(e,t)=>{const n=t&&t.credentials&&"omit"==t.credentials;return Zt.info.webId&&!n?Zt.fetch(e,t):window.fetch(e,t)},_n=Symbol.for("solid-logic-singleton"),Sn="undefined"!=typeof window?window:o.g;const Tn=(Sn[_n]||(Sn[_n]=Cn({fetch:kn},Zt)),Sn[_n]),Pn=[{name:"Solid Community",uri:"https://solidcommunity.net"},{name:"Solid Web",uri:"https://solidweb.org"},{name:"Solid Web ME",uri:"https://solidweb.me"},{name:"Inrupt.com",uri:"https://login.inrupt.com"}];function Fn(){const e=[...Pn],{host:t,origin:n}=new URL(location.href),r=e.map(({uri:e})=>new URL(e).host);return r.includes(t)||r.some(e=>function(e,t){const n=e.length-t.length-1;return n>0&&"."===e[n]&&e.endsWith(t)}(t,e))||e.unshift({name:t,uri:n}),e}const Rn=Tn.authn,In=Tn.authn.authSession,Nn=Tn.store},1813(e){"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/ace+json":{"source":"iana","compressible":true},"application/ace-groupcomm+cbor":{"source":"iana"},"application/ace-trl+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/aif+cbor":{"source":"iana"},"application/aif+json":{"source":"iana","compressible":true},"application/alto-cdni+json":{"source":"iana","compressible":true},"application/alto-cdnifilter+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-propmap+json":{"source":"iana","compressible":true},"application/alto-propmapparams+json":{"source":"iana","compressible":true},"application/alto-tips+json":{"source":"iana","compressible":true},"application/alto-tipsparams+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/appinstaller":{"compressible":false,"extensions":["appinstaller"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/appx":{"compressible":false,"extensions":["appx"]},"application/appxbundle":{"compressible":false,"extensions":["appxbundle"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/automationml-aml+xml":{"source":"iana","compressible":true,"extensions":["aml"]},"application/automationml-amlx+zip":{"source":"iana","compressible":false,"extensions":["amlx"]},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/bufr":{"source":"iana"},"application/c2pa":{"source":"iana"},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/ce+cbor":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/cid-edhoc+cbor-seq":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/city+json-seq":{"source":"iana"},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-eap":{"source":"iana"},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/concise-problem-details+cbor":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cose-x509":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwl":{"source":"iana","extensions":["cwl"]},"application/cwl+json":{"source":"iana","compressible":true},"application/cwl+yaml":{"source":"iana"},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana","extensions":["dcm"]},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dpop+jwt":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/eat+cwt":{"source":"iana"},"application/eat+jwt":{"source":"iana"},"application/eat-bun+cbor":{"source":"iana"},"application/eat-bun+json":{"source":"iana","compressible":true},"application/eat-ucs+cbor":{"source":"iana"},"application/eat-ucs+json":{"source":"iana","compressible":true},"application/ecmascript":{"source":"apache","compressible":true,"extensions":["ecma"]},"application/edhoc+cbor-seq":{"source":"iana"},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.legacyesn+json":{"source":"iana","compressible":true},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/entity-statement+jwt":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdf":{"source":"iana","extensions":["fdf"]},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geopose+json":{"source":"iana","compressible":true},"application/geoxacml+json":{"source":"iana","compressible":true},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gnap-binding-jws":{"source":"iana"},"application/gnap-binding-jwsd":{"source":"iana"},"application/gnap-binding-rotation-jws":{"source":"iana"},"application/gnap-binding-rotation-jwsd":{"source":"iana"},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/grib":{"source":"iana"},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"iana","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"apache","charset":"UTF-8","compressible":true,"extensions":["js"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/jscontact+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jsonpath":{"source":"iana"},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwk-set+jwt":{"source":"iana"},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/linkset":{"source":"iana"},"application/linkset+json":{"source":"iana","compressible":true},"application/load-control+xml":{"source":"iana","compressible":true},"application/logout+jwt":{"source":"iana"},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4","mpg4","mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msix":{"compressible":false,"extensions":["msix"]},"application/msixbundle":{"compressible":false,"extensions":["msixbundle"]},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":true,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/ohttp-keys":{"source":"iana"},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg","one","onea"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["sig","asc"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/private-token-issuer-directory":{"source":"iana"},"application/private-token-request":{"source":"iana"},"application/private-token-response":{"source":"iana"},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/provided-claims+jwt":{"source":"iana"},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.implied-document+xml":{"source":"iana","compressible":true},"application/prs.implied-executable":{"source":"iana"},"application/prs.implied-object+json":{"source":"iana","compressible":true},"application/prs.implied-object+json-seq":{"source":"iana"},"application/prs.implied-object+yaml":{"source":"iana"},"application/prs.implied-structure":{"source":"iana"},"application/prs.mayfile":{"source":"iana"},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.vcfbzip2":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true,"extensions":["xsf"]},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"apache"},"application/reputon+json":{"source":"iana","compressible":true},"application/resolve-response+jwt":{"source":"iana"},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-checklist":{"source":"iana"},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-signed-tal":{"source":"iana"},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"apache"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana","extensions":["sql"]},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/sslkeylogfile":{"source":"iana"},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/st2110-41":{"source":"iana"},"application/stix+json":{"source":"iana","compressible":true},"application/stratum":{"source":"iana"},"application/swid+cbor":{"source":"iana"},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tm+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/toc+cbor":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"source":"iana","compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/trust-chain+json":{"source":"iana","compressible":true},"application/trust-mark+jwt":{"source":"iana"},"application/trust-mark-delegation+jwt":{"source":"iana"},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/uccs+cbor":{"source":"iana"},"application/ujcs+json":{"source":"iana","compressible":true},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vc":{"source":"iana"},"application/vc+cose":{"source":"iana"},"application/vc+jwt":{"source":"iana"},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.1ob":{"source":"iana"},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3a+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ach+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc8+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.5gsa2x":{"source":"iana"},"application/vnd.3gpp.5gsa2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gsv2x":{"source":"iana"},"application/vnd.3gpp.5gsv2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.crs+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.current-location-discovery+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-regroup+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-regroup+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-regroup+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.pinapp-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.seal-group-doc+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-network-qos-management-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-ue-config-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-unicast-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.seal-user-profile-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.v2x":{"source":"iana"},"application/vnd.3gpp.vae-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acm.addressxfer+json":{"source":"iana","compressible":true},"application/vnd.acm.chatbot+json":{"source":"iana","compressible":true},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"apache","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"apache"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.parquet":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.apexlang":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"apache"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autodesk.fbx":{"extensions":["fbx"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.belightsoft.lhzd+zip":{"source":"iana","compressible":false},"application/vnd.belightsoft.lhzl+zip":{"source":"iana","compressible":false},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.bzip3":{"source":"iana"},"application/vnd.c3voc.schedule+xml":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.cncf.helm.chart.content.v1.tar+gzip":{"source":"iana"},"application/vnd.cncf.helm.chart.provenance.v1.prov":{"source":"iana"},"application/vnd.cncf.helm.config.v1+json":{"source":"iana","compressible":true},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datalog":{"source":"iana"},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.dcmp+xml":{"source":"iana","compressible":true,"extensions":["dcmp"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.eln+zip":{"source":"iana","compressible":false},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.erofs":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"apache","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.fdsn.stationxml+xml":{"source":"iana","charset":"XML-BASED","compressible":true},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.freelog.comic":{"source":"iana"},"application/vnd.frogans.fnc":{"source":"apache","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"apache","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.ga4gh.passport+jwt":{"source":"iana"},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.genozip":{"source":"iana"},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.gentoo.catmetadata+xml":{"source":"iana","compressible":true},"application/vnd.gentoo.ebuild":{"source":"iana"},"application/vnd.gentoo.eclass":{"source":"iana"},"application/vnd.gentoo.gpkg":{"source":"iana"},"application/vnd.gentoo.manifest":{"source":"iana"},"application/vnd.gentoo.pkgmetadata+xml":{"source":"iana","compressible":true},"application/vnd.gentoo.xpak":{"source":"iana"},"application/vnd.geo+json":{"source":"apache","compressible":true},"application/vnd.geocube+xml":{"source":"apache","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.pinboard":{"source":"iana"},"application/vnd.geogebra.slides":{"source":"iana","extensions":["ggs"]},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.gnu.taler.exchange+json":{"source":"iana","compressible":true},"application/vnd.gnu.taler.merchant+json":{"source":"iana","compressible":true},"application/vnd.google-apps.audio":{},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.drawing":{"compressible":false,"extensions":["gdraw"]},"application/vnd.google-apps.drive-sdk":{"compressible":false},"application/vnd.google-apps.file":{},"application/vnd.google-apps.folder":{"compressible":false},"application/vnd.google-apps.form":{"compressible":false,"extensions":["gform"]},"application/vnd.google-apps.fusiontable":{},"application/vnd.google-apps.jam":{"compressible":false,"extensions":["gjam"]},"application/vnd.google-apps.mail-layout":{},"application/vnd.google-apps.map":{"compressible":false,"extensions":["gmap"]},"application/vnd.google-apps.photo":{},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.script":{"compressible":false,"extensions":["gscript"]},"application/vnd.google-apps.shortcut":{},"application/vnd.google-apps.site":{"compressible":false,"extensions":["gsite"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-apps.unknown":{},"application/vnd.google-apps.video":{},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"apache","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true,"extensions":["xdcf"]},"application/vnd.gpxsee.map+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.hsl":{"source":"iana"},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"apache"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"apache","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"apache"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.ipfs.ipns-record":{"source":"iana"},"application/vnd.ipld.car":{"source":"iana"},"application/vnd.ipld.dag-cbor":{"source":"iana"},"application/vnd.ipld.dag-json":{"source":"iana"},"application/vnd.ipld.raw":{"source":"iana"},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kdl":{"source":"iana"},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.keyman.kmp+zip":{"source":"iana","compressible":false},"application/vnd.keyman.kmx":{"source":"iana"},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.ldev.productlicensing":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.mdl":{"source":"iana"},"application/vnd.mdl-mbsdf":{"source":"iana"},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.medicalholodeck.recordxr":{"source":"iana"},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mermaid":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.modl":{"source":"iana"},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-visio.viewer":{"extensions":["vdx"]},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msgpack":{"source":"iana"},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.nato.bindingdataobject+cbor":{"source":"iana"},"application/vnd.nato.bindingdataobject+json":{"source":"iana","compressible":true},"application/vnd.nato.bindingdataobject+xml":{"source":"iana","compressible":true,"extensions":["bdo"]},"application/vnd.nato.openxmlformats-package.iepd+zip":{"source":"iana","compressible":false},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"apache","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oai.workflows":{"source":"iana"},"application/vnd.oai.workflows+json":{"source":"iana","compressible":true},"application/vnd.oai.workflows+yaml":{"source":"iana"},"application/vnd.oasis.opendocument.base":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"apache","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-master-template":{"source":"iana"},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"apache","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"apache","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.onvif.metadata":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openvpi.dspx+json":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.procrate.brushset":{"extensions":["brushset"]},"application/vnd.procreate.brush":{"extensions":["brush"]},"application/vnd.procreate.dream":{"extensions":["drm"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.pt.mundusmundi":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true,"extensions":["xhtm"]},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.relpipe":{"source":"iana"},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.sketchometry":{"source":"iana"},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.smintio.portals.archive":{"source":"iana"},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sybyl.mol2":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uic.osdm+json":{"source":"iana","compressible":true},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml","uo"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.veraison.tsm-report+cbor":{"source":"iana"},"application/vnd.veraison.tsm-report+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw","vsdx","vtx"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vocalshaper.vsp4":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.wasmflow.wafl":{"source":"iana"},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordlift":{"source":"iana"},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xarin.cpj":{"source":"iana"},"application/vnd.xecrets-encrypted":{"source":"iana"},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/voucher-jws+json":{"source":"iana","compressible":true},"application/vp":{"source":"iana"},"application/vp+cose":{"source":"iana"},"application/vp+jwt":{"source":"iana"},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blender":{"extensions":["blend"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-compressed":{"extensions":["rar"]},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-ipynb+json":{"compressible":true,"extensions":["ipynb"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zip-compressed":{"extensions":["zip"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xfdf":{"source":"iana","extensions":["xfdf"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yaml":{"source":"iana"},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+cbor":{"source":"iana"},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yang-sid+json":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zip+dotlottie":{"extensions":["lottie"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana","extensions":["adts","aac"]},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flac":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/matroska":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/midi-clip":{"source":"iana"},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a","m4b"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"apache"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"source":"iana","compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp","dib"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/dpx":{"source":"iana","extensions":["dpx"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/j2c":{"source":"iana"},"image/jaii":{"source":"iana","extensions":["jaii"]},"image/jais":{"source":"iana","extensions":["jais"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpg","jpeg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm","jpgm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxl":{"source":"iana","extensions":["jxl"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false,"extensions":["jfif"]},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif","btf"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.clip":{"source":"iana"},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"iana","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-adobe-dng":{"extensions":["dng"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-emf":{"source":"iana"},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-wmf":{"source":"iana"},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/bhttp":{"source":"iana"},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/mls":{"source":"iana"},"message/news":{"source":"apache"},"message/ohttp-req":{"source":"iana"},"message/ohttp-res":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime","mht","mhtml"]},"message/s-http":{"source":"apache"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"apache"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/jt":{"source":"iana","extensions":["jt"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/prc":{"source":"iana","extensions":["prc"]},"model/step":{"source":"iana","extensions":["step","stp","stpnc","p21","210"]},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/u3d":{"source":"iana","extensions":["u3d"]},"model/vnd.bary":{"source":"iana","extensions":["bary"]},"model/vnd.cld":{"source":"iana","extensions":["cld"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana","extensions":["pyo","pyox"]},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usda":{"source":"iana","extensions":["usda"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"apache"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/hl7v2":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["md","markdown"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/prs.texi":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.exchangeable":{"source":"iana"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"apache"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.vcf":{"source":"iana"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vnd.zoo.kcl":{"source":"iana"},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/wgsl":{"source":"iana","extensions":["wgsl"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/evc":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/h266":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/lottie+json":{"source":"iana","compressible":true},"video/matroska":{"source":"iana"},"video/matroska-3d":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts","m2t","m2ts","mts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.planar":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"apache"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(n.exports,n,n.exports,s),n.loaded=!0,n.exports}s.m=a,s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var i=Object.create(null);s.r(i);var a={};t=t||[null,n({}),n([]),n(n)];for(var o=2&r&&e;("object"==typeof o||"function"==typeof o)&&!~t.indexOf(o);o=n(o))Object.getOwnPropertyNames(o).forEach(t=>a[t]=()=>e[t]);return a.default=()=>e,s.d(i,a),i},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,n)=>(s.f[n](e,t),t),[])),s.u=e=>e+".mashlib.min.js",s.miniCssF=e=>{},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},i="Mashlib:",s.l=(e,t,n,a)=>{if(r[e])r[e].push(t);else{var o,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==i+n){o=d;break}}o||(c=!0,(o=document.createElement("script")).charset="utf-8",s.nc&&o.setAttribute("nonce",s.nc),o.setAttribute("data-webpack",i+n),o.src=e),r[e]=[t];var p=(t,n)=>{o.onerror=o.onload=null,clearTimeout(f);var i=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach(e=>e(n)),t)return t(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=p.bind(null,o.onerror),o.onload=p.bind(null,o.onload),c&&document.head.appendChild(o)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.p="/",(()=>{var e={792:0};s.f.j=(t,n)=>{var r=s.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var i=new Promise((n,i)=>r=e[t]=[n,i]);n.push(r[2]=i);var a=s.p+s.u(t),o=new Error;s.l(a,n=>{if(s.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var i=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",o.name="ChunkLoadError",o.type=i,o.request=a,r[1](o)}},"chunk-"+t,t)}};var t=(t,n)=>{var r,i,[a,o,c]=n,l=0;if(a.some(t=>0!==e[t])){for(r in o)s.o(o,r)&&(s.m[r]=o[r]);if(c)c(s)}for(t&&t(n);l<a.length;l++)i=a[l],s.o(e,i)&&e[i]&&e[i][0](),e[i]=0},n=self.webpackChunkMashlib=self.webpackChunkMashlib||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var c={};return(()=>{"use strict";s.r(c),s.d(c,{versionInfo:()=>r});var e=s(8230),t=s(7523),n=s(9332);const r={buildTime:"2026-03-13T13:34:57Z",commit:"e1941a6329a0d2666cfebf1fca9a73fdd04fd20e",npmInfo:{mashlib:"2.1.3",npm:"11.11.1",node:"22.22.0",acorn:"8.15.0",ada:"2.9.2",amaro:"1.1.4",ares:"1.34.6",brotli:"1.1.0",cjs_module_lexer:"2.1.0",cldr:"47.0",icu:"77.1",llhttp:"9.3.0",modules:"127",napi:"10",nbytes:"0.1.1",ncrypto:"0.0.1",nghttp2:"1.64.0",openssl:"3.5.4",simdjson:"3.13.0",simdutf:"6.4.2",sqlite:"3.50.4",tz:"2025b",undici:"6.23.0",unicode:"16.0",uv:"1.51.0",uvwasi:"0.0.23",v8:"12.4.254.21-node.33",zlib:"1.3.1-470d3a2",zstd:"1.5.7"}},i=window,a=()=>{const e=localStorage.getItem("mashlib-theme"),t=window.matchMedia("(prefers-color-scheme: dark)").matches;"dark"===(e||(t?"dark":"light"))?document.documentElement.setAttribute("data-theme","dark"):document.documentElement.removeAttribute("data-theme")};a(),i.$rdf=e,i.panes=t,i.SolidLogic={authn:n.authn,authSession:n.authSession,store:n.store,solidLogicSingleton:n.solidLogicSingleton},i.mashlib={versionInfo:r,theme:{set:e=>{"dark"===e?document.documentElement.setAttribute("data-theme","dark"):document.documentElement.removeAttribute("data-theme"),localStorage.setItem("mashlib-theme",e)},get:()=>"dark"===document.documentElement.getAttribute("data-theme")?"dark":"light",init:a}},i.panes.runDataBrowser=function(r){e.Fetcher.crossSiteProxyTemplate=window.origin+"/xss/?uri={uri}";try{const e=document.createElement("meta");e.setAttribute("name","monetization"),e.setAttribute("content",`$${window.location.host}`),document.head.appendChild(e)}catch(e){}n.authn.checkUser().then(function(e){return t.initMainPage(n.solidLogicSingleton.store,r)})},window.onpopstate=function(t){i.document.outline.GotoSubject(e.sym(window.document.location.href),!0,void 0,!0,void 0)},i.dump=function(e){}})(),c})());
462
462
  //# sourceMappingURL=mashlib.min.js.map